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(); }
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(); }
<?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'));