private function doInstall(Tiki_Profile $profile)
 {
     global $tikilib, $prefs;
     $this->setFeedback(tra('Applying profile') . ': ' . $profile->profile);
     $this->installed[$profile->getProfileKey()] = $profile;
     $preferences = $profile->getPreferences();
     $profile->replaceReferences($preferences, $this->userData);
     foreach ($preferences as $pref => $value) {
         if ($this->allowedGlobalPreferences === false || in_array($pref, $this->allowedGlobalPreferences)) {
             global $prefslib;
             include_once 'lib/prefslib.php';
             $pinfo = $prefslib->getPreference($pref);
             if (!empty($pinfo['separator']) && !is_array($value)) {
                 $value = explode($pinfo['separator'], $value);
             }
             if ($prefs[$pref] != $value) {
                 $this->setFeedback(tra('Preference set') . ': ' . $pref . '=' . $value);
             }
             $tikilib->set_preference($pref, $value);
         }
     }
     require_once 'lib/setup/events.php';
     tiki_setup_events();
     foreach ($profile->getObjects() as $object) {
         $this->getInstallHandler($object)->install();
         $this->setFeedback(tra('Added (or modified)') . ': ' . $object->getDescription());
     }
     $groupMap = $profile->getGroupMap();
     $profile->replaceReferences($groupMap, $this->userData);
     $permissions = $profile->getPermissions($groupMap);
     $profile->replaceReferences($permissions, $this->userData);
     foreach ($permissions as $groupName => $info) {
         $this->setFeedback(tra('Group changed (or modified)') . ': ' . $groupName);
         $this->setupGroup($groupName, $info['general'], $info['permissions'], $info['objects'], $groupMap);
     }
     tiki_setup_events();
 }
Exemple #2
0
 private function doInstall(Tiki_Profile $profile)
 {
     $this->setFeedback(tra('Applying profile') . ': ' . $profile->profile);
     $this->installed[$profile->getProfileKey()] = $profile;
     $preferences = $profile->getPreferences();
     $leftovers = $this->applyPreferences($profile, $preferences, true);
     require_once 'lib/setup/events.php';
     tiki_setup_events();
     foreach ($profile->getObjects() as $object) {
         $installer = $this->getInstallHandler($object);
         $installer->install();
         $description = $object->getDescription();
         $installer->replaceReferences($description);
         $this->setFeedback(tra('Added (or modified)') . ': ' . $description);
     }
     $groupMap = $profile->getGroupMap();
     $profile->replaceReferences($groupMap, $this->userData);
     $permissions = $profile->getPermissions($groupMap);
     $profile->replaceReferences($permissions, $this->userData);
     foreach ($permissions as $groupName => $info) {
         $this->setFeedback(tra('Group changed (or modified)') . ': ' . $groupName);
         $this->setupGroup($groupName, $info['general'], $info['permissions'], $info['objects'], $groupMap);
     }
     $this->applyPreferences($profile, $leftovers);
     tiki_setup_events();
 }
Exemple #3
0
<?php

// (c) Copyright 2002-2013 by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id: events.php 44444 2013-01-05 21:24:24Z changi67 $
tiki_setup_events();
function tiki_setup_events()
{
    global $prefs;
    $events = TikiLib::events();
    $events->reset();
    if ($prefs['feature_wiki'] == 'y') {
        if ($prefs['quantify_changes'] == 'y' && $prefs['feature_multilingual'] == 'y') {
            $events->bind('tiki.wiki.save', Event_Lib::defer('quantify', 'wiki_update'));
        }
        $prefix = $prefs['feature_wiki_userpage_prefix'];
        if ($prefs['feature_wiki_userpage'] && !empty($prefix)) {
            $events->bind('tiki.wiki.save', function ($args) use($events, $prefix) {
                global $prefs;
                if ($prefix == substr($args['object'], 0, strlen($prefix))) {
                    $user = substr($args['object'], strlen($prefix));
                    $events->trigger('tiki.user.update', array('type' => 'user', 'object' => $user));
                }
            });
        }
    }
    if ($prefs['feature_trackers'] == 'y') {
        $events->bind('tiki.trackeritem.save', Event_Lib::defer('trk', 'send_replace_item_notifications'));
        $events->bind('tiki.trackeritem.save', Event_Lib::defer('trk', 'sync_item_geo'));