function smarty_function_addonobjectid($params, $smarty) { extract($params, EXTR_SKIP); if (empty($params['reference']) && empty($params['ref'])) { return ''; } if (!empty($params['ref'])) { $ref = $params['ref']; } else { $ref = $params['reference']; } if (!empty($params['profile'])) { $profile = $params['profile']; } else { $profile = ''; } if (!empty($params['package'])) { $package = $params['package']; } else { $package = $smarty->getTemplateVars('tikiaddon_package'); } if (!$package) { return tra('Package is not specified'); } $utilities = new TikiAddons_Utilities(); return $utilities->getObjectId($package, $ref, $profile); }
protected function execute(InputInterface $input, OutputInterface $output) { $addon_utilities = new \TikiAddons_Utilities(); $addonName = $input->getArgument('addon'); if (strpos($addonName, '/') !== false && strpos($addonName, '_') === false) { $package = $addonName; $folder = str_replace('/', '_', $addonName); } else { $package = str_replace('_', '/', $addonName); $folder = $addonName; } $repository = 'file://addons/' . $folder . '/profiles'; $reapply = $input->getOption('reapply'); $ignoredepends = $input->getOption('ignoredepends'); if (empty(glob(TIKI_PATH . '/addons/' . $folder . '/profiles/*.yml'))) { $output->writeln("<error>No profiles found.</error>"); return false; } if (!$ignoredepends) { $addon_utilities->checkDependencies($folder); } $addons = \TikiAddons::getInstalled(); $tikilib = \TikiLib::lib('tiki'); $installer = new \Tiki_Profile_Installer(); foreach (glob(TIKI_PATH . '/addons/' . $folder . '/profiles/*.yml') as $file) { $profileName = str_replace('.yml', '', basename($file)); $profile = \Tiki_Profile::fromNames($repository, $profileName); if (!$profile) { $output->writeln("<error>Profile {$profileName} not found.</error>"); continue; } $isInstalled = $installer->isInstalled($profile); if ($isInstalled && $reapply) { $installer->forget($profile); $isInstalled = false; } if (!$isInstalled) { $transaction = $tikilib->begin(); if ($installer->install($profile)) { $addon_utilities->updateProfile($folder, $addons[$package]->version, $profileName); $transaction->commit(); $output->writeln("Profile {$profileName} applied."); } else { $output->writeln("<error>Profile {$profileName} installation failed:</error>"); foreach ($installer->getFeedback() as $error) { $output->writeln("<error>{$error}</error>"); } } } else { $output->writeln("<info>Profile {$profileName} was already applied. Nothing happened.</info>"); } } }
function getBroker($addonpackage = '') { if ($addonpackage) { $utilities = new TikiAddons_Utilities(); if (!$utilities->isInstalled(str_replace('.', '/', $addonpackage))) { $addonpackage = ''; } } if ($addonpackage && !isset($this->addonbrokers[$addonpackage])) { $this->addonbrokers[$addonpackage] = new Services_Broker(TikiInit::getContainer(), $addonpackage); } else { if (!$this->broker) { $this->broker = new Services_Broker(TikiInit::getContainer()); } } if ($addonpackage) { return $this->addonbrokers[$addonpackage]; } else { return $this->broker; } }
protected function execute(InputInterface $input, OutputInterface $output) { $addon_utilities = new \TikiAddons_Utilities(); $addonName = $input->getArgument('addon'); if (strpos($addonName, '/') !== false && strpos($addonName, '_') === false) { $package = $addonName; $folder = str_replace('/', '_', $addonName); } else { $package = str_replace('_', '/', $addonName); $folder = $addonName; } $repository = 'file://addons/' . $folder . '/profiles'; $ignoredepends = $input->getOption('ignoredepends'); $confirm = $input->getOption('confirm'); if (empty(glob(TIKI_PATH . '/addons/' . $folder . '/profiles/*.yml'))) { $output->writeln("<error>No profiles found.</error>"); return; } if (!$ignoredepends) { $addon_utilities->checkDependencies($folder); } $upgradeInfo = json_decode(file_get_contents(TIKI_PATH . '/addons/' . $folder . '/upgrade.json')); $validVersions = array(); foreach ($upgradeInfo as $version => $info) { $validVersions[] = $version; } $config = null; $lastVersionInstalled = $addon_utilities->getLastVersionInstalled($folder); $reapplyProfiles = array(); $forgetProfiles = array(); $removeItems = array(); foreach ($validVersions as $v) { if ($addon_utilities->checkVersionMatch($lastVersionInstalled, $v)) { $config = $upgradeInfo->{$v}; $removeItems = $config->remove; $forgetProfiles = $config->forget; $reapplyProfiles = $config->reapply; break; } } $addons = \TikiAddons::getInstalled(); if (!$config) { if (strnatcmp($lastVersionInstalled, $addons[$package]->version) <= 0) { $output->writeln("<error>Currently installed version ({$lastVersionInstalled}) is already up to date.</error>"); } else { $output->writeln("<error>No valid versions currently installed to upgrade found.</error>"); } return false; } $installedProfiles = $addon_utilities->getInstalledProfiles($folder); $installedProfileNames = array_keys($installedProfiles); $willRemove = false; foreach ($removeItems as $remove) { if (empty($remove->profile)) { $profile = ''; } else { $profile = $remove->profile; } $objectId = $addon_utilities->getObjectId($folder, $remove->ref, $profile); $objectType = $remove->type; if ($objectId) { if ($confirm) { $addon_utilities->removeObject($objectId, $objectType); $output->writeln("{$objectType} '{$objectId}' has been deleted."); } else { $output->writeln("<info>{$objectType} '{$objectId}' will be deleted.</info>"); } $willRemove = true; } } $tikilib = \TikiLib::lib('tiki'); $installer = new \Tiki_Profile_Installer(); // First forget profiles that need to be forgotten foreach ($forgetProfiles as $toForget) { if (in_array($toForget, $installedProfileNames)) { if ($confirm || !$willRemove) { $addon_utilities->forgetProfileAllVersions($folder, $toForget); $profile = \Tiki_Profile::fromNames($repository, $toForget); if (!$profile) { $output->writeln("<error>Profile {$toForget} not found.</error>"); } else { $installer->forget($profile); } } else { $output->writeln("<info>The installed profile {$toForget} will be forgotten.</info>"); } } } if (!$confirm && $willRemove) { $output->writeln("<error>There will be NO undo, and all data in the above objects will be deleted as part of the upgrade.</error>"); $output->writeln("<info>Use the --confirm option to proceed with removal and upgrade.</info>"); } if ($confirm || !$willRemove) { // Finally install profiles foreach (glob(TIKI_PATH . '/addons/' . $folder . '/profiles/*.yml') as $file) { $profileName = str_replace('.yml', '', basename($file)); $profile = \Tiki_Profile::fromNames($repository, $profileName); if (in_array($profileName, $reapplyProfiles)) { $reapply = true; } else { $reapply = false; } if (!$profile) { $output->writeln("<error>Profile {$profileName} not found.</error>"); continue; } $isInstalled = $installer->isInstalled($profile); if ($isInstalled && $reapply) { $installer->forget($profile); $isInstalled = false; } if (!$isInstalled) { $transaction = $tikilib->begin(); if ($installer->install($profile)) { $addon_utilities->updateProfile($folder, $addons[$package]->version, $profileName); $transaction->commit(); $output->writeln("Profile {$profileName} applied."); } else { $output->writeln("<error>Profile {$profileName} installation failed:</error>"); foreach ($installer->getFeedback() as $error) { $output->writeln("<error>{$error}</error>"); } } } else { $output->writeln("<info>Profile {$profileName} was already applied. Nothing happened.</info>"); } } } }
protected function execute(InputInterface $input, OutputInterface $output) { $addon_utilities = new \TikiAddons_Utilities(); $addonName = $input->getArgument('addon'); if (strpos($addonName, '/') !== false && strpos($addonName, '_') === false) { $package = $addonName; $folder = str_replace('/', '_', $addonName); } else { $package = str_replace('_', '/', $addonName); $folder = $addonName; } $repository = 'file://addons/' . $folder . '/profiles'; $confirm = $input->getOption('confirm'); $uninstallInfo = json_decode(file_get_contents(TIKI_PATH . '/addons/' . $folder . '/uninstall.json')); $removeItems = $uninstallInfo->remove; $willRemove = false; foreach ($removeItems as $remove) { if (empty($remove->profile)) { $profile = ''; } else { $profile = $remove->profile; } if (empty($remove->domain)) { $domain = ''; } else { $domain = $remove->domain; } $objectId = $addon_utilities->getObjectId($folder, $remove->ref, $profile, $domain); if (is_array($objectId)) { $objectIds = $objectId; } else { $objectIds = [$objectId]; } foreach ($objectIds as $objectId) { $objectType = $remove->type; if ($objectId) { if ($confirm) { $addon_utilities->removeObject($objectId, $objectType); $output->writeln("{$objectType} '{$objectId}' has been deleted."); } else { $output->writeln("<info>{$objectType} '{$objectId}' will be deleted.</info>"); } $willRemove = true; } } } $installedProfiles = $addon_utilities->getInstalledProfiles($folder); if (!$confirm && ($willRemove || !empty($installedProfiles))) { $output->writeln("<error>There will be NO undo, and all data in the above objects will be deleted.</error>"); $output->writeln("<info>Use the --confirm option to proceed with removal.</info>"); } elseif (!$willRemove) { $output->writeln("<info>It looks like the objects for this addon have been removed already.</info>"); } if (empty($installedProfiles)) { $output->writeln("<info>It looks like the profiles for this addon have been removed from addon registry already.</info>"); } $tikilib = \TikiLib::lib('tiki'); $installer = new \Tiki_Profile_Installer(); if ($confirm) { foreach (array_keys($installedProfiles) as $profileName) { $profile = \Tiki_Profile::fromNames($repository, $profileName); if (!$profile) { $output->writeln("<error>Profile {$profileName} not found.</error>"); continue; } $isInstalled = $installer->isInstalled($profile); if ($isInstalled) { $transaction = $tikilib->begin(); $installer->forget($profile); $transaction->commit(); $output->writeln("Profile {$profileName} forgotten."); } else { $output->writeln("<info>Profile {$profileName} was not installed or did not create any objects.</info>"); } $addon_utilities->forgetProfileAllVersions($folder, $profileName); $output->writeln("Profile {$profileName} forgotten from addon registry."); } } }
function parse_wiki_argvariable(&$data) { global $prefs, $user; $tikilib = TikiLib::lib('tiki'); $smarty = TikiLib::lib('smarty'); if ($prefs['feature_wiki_argvariable'] == 'y' && !$this->option['ck_editor']) { if (preg_match_all("/\\{\\{((\\w+)(\\|([^\\}]*))?)\\}\\}/", $data, $args, PREG_SET_ORDER)) { $needles = array(); $replacements = array(); foreach ($args as $arg) { $value = isset($arg[4]) ? $arg[4] : ''; $name = $arg[2]; switch ($name) { case 'user': $value = $user; break; case 'page': $value = $this->option['page']; break; case 'pageid': if ($_REQUEST['page'] != null) { $value = $tikilib->get_page_id_from_name($_REQUEST['page']); break; } else { $value = ''; break; } case 'domain': if ($smarty->getTemplateVars('url_host') != null) { $value = $smarty->getTemplateVars('url_host'); break; } else { $value = ''; break; } case 'domainslash': if ($smarty->getTemplateVars('url_host') != null) { $value = $smarty->getTemplateVars('url_host') . '/'; break; } else { $value = ''; break; } case 'domainslash_if_multitiki': if (is_file('db/virtuals.inc')) { $virtuals = array_map('trim', file('db/virtuals.inc')); } if ($virtuals && $smarty->getTemplateVars('url_host') != null) { $value = $smarty->getTemplateVars('url_host') . '/'; break; } else { $value = ''; break; } case 'lastVersion': $histlib = TikiLib::lib('hist'); // get_page_history arguments: page name, page contents (set to "false" to save memory), history_offset (none, therefore "0"), max. records (just one for this case); $history = $histlib->get_page_history($this->option['page'], false, 0, 1); if ($history[0]['version'] != null) { $value = $history[0]['version']; break; } else { $value = ''; break; } case 'lastAuthor': $histlib = TikiLib::lib('hist'); // get_page_history arguments: page name, page contents (set to "false" to save memory), history_offset (none, therefore "0"), max. records (just one for this case); $history = $histlib->get_page_history($this->option['page'], false, 0, 1); if ($history[0]['user'] != null) { if ($prefs['user_show_realnames'] == 'y') { $value = TikiLib::lib('user')->clean_user($history[0]['user']); break; } else { $value = $history[0]['user']; break; } } else { $value = ''; break; } case 'lastModif': $histlib = TikiLib::lib('hist'); // get_page_history arguments: page name, page contents (set to "false" to save memory), history_offset (none, therefore "0"), max. records (just one for this case); $history = $histlib->get_page_history($this->option['page'], false, 0, 1); if ($history[0]['lastModif'] != null) { $value = $tikilib->get_short_datetime($history[0]['lastModif']); break; } else { $value = ''; break; } case 'lastItemVersion': $trklib = TikiLib::lib('trk'); $auto_query_args = array('itemId'); if (!empty($_REQUEST['itemId'])) { $item_info = $trklib->get_item_info($_REQUEST['itemId']); $perms = Perms::get(array('type' => 'tracker', 'object' => $item_info['trackerId'])); if (!$perms->view_trackers) { $smarty->assign('errortype', 401); $smarty->assign('msg', tra('You do not have permission to view this information from this tracker.')); $smarty->display('error.tpl'); die; } $fieldId = empty($_REQUEST['fieldId']) ? 0 : $_REQUEST['fieldId']; $filter = array(); if (!empty($_REQUEST['version'])) { $filter['version'] = $_REQUEST['version']; } $offset = empty($_REQUEST['offset']) ? 0 : $_REQUEST['offset']; $history = $trklib->get_item_history($item_info, $fieldId, $filter, $offset, $prefs['maxRecords']); $value = $history['data'][0]['version']; break; } else { $value = ''; break; } case 'lastItemAuthor': $trklib = TikiLib::lib('trk'); $auto_query_args = array('itemId'); if (!empty($_REQUEST['itemId'])) { $item_info = $trklib->get_item_info($_REQUEST['itemId']); $perms = Perms::get(array('type' => 'tracker', 'object' => $item_info['trackerId'])); if (!$perms->view_trackers) { $smarty->assign('errortype', 401); $smarty->assign('msg', tra('You do not have permission to view this information from this tracker.')); $smarty->display('error.tpl'); die; } if ($item_info['lastModifBy'] != null) { if ($prefs['user_show_realnames'] == 'y') { $value = TikiLib::lib('user')->clean_user($item_info['lastModifBy']); break; } else { $value = $item_info['lastModifBy']; break; } } break; } else { $value = ''; break; } case 'lastItemModif': $trklib = TikiLib::lib('trk'); $auto_query_args = array('itemId'); if (!empty($_REQUEST['itemId'])) { $item_info = $trklib->get_item_info($_REQUEST['itemId']); $perms = Perms::get(array('type' => 'tracker', 'object' => $item_info['trackerId'])); if (!$perms->view_trackers) { $smarty->assign('errortype', 401); $smarty->assign('msg', tra('You do not have permission to view this information from this tracker.')); $smarty->display('error.tpl'); die; } $value = $tikilib->get_short_datetime($item_info['lastModif']); break; } else { $value = ''; break; } case 'lastApprover': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { if ($version_info = $flaggedrevisionlib->get_version_with($this->option['page'], 'moderation', 'OK')) { if ($this->content_to_render === null) { $revision_displayed = $version_info['version']; $approval = $flaggedrevisionlib->find_approval_information($this->option['page'], $revision_displayed); } } } } if ($approval['user'] != null) { if ($prefs['user_show_realnames'] == 'y') { $value = TikiLib::lib('user')->clean_user($approval['user']); break; } else { $value = $approval['user']; break; } } else { $value = ''; break; } case 'lastApproval': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { if ($version_info = $flaggedrevisionlib->get_version_with($this->option['page'], 'moderation', 'OK')) { if ($this->content_to_render === null) { $revision_displayed = $version_info['version']; $approval = $flaggedrevisionlib->find_approval_information($this->option['page'], $revision_displayed); } } } } if ($approval['lastModif'] != null) { $value = $tikilib->get_short_datetime($approval['lastModif']); break; } else { $value = ''; break; } case 'lastApprovedVersion': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { $version_info = $flaggedrevisionlib->get_version_with($this->option['page'], 'moderation', 'OK'); } } if ($version_info['version'] != null) { $value = $version_info['version']; break; } else { $value = ''; break; } case 'currentVersion': if (isset($_REQUEST['preview'])) { $value = (int) $_REQUEST["preview"]; break; } elseif (isset($_REQUEST['version'])) { $value = (int) $_REQUEST["version"]; break; } elseif ($prefs['flaggedrev_approval'] == 'y' && !isset($_REQUEST['latest'])) { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { $version_info = $flaggedrevisionlib->get_version_with($this->option['page'], 'moderation', 'OK'); } if ($version_info['version'] != null) { $value = $version_info['version']; break; } } else { $histlib = TikiLib::lib('hist'); // get_page_history arguments: page name, page contents (set to "false" to save memory), history_offset (none, therefore "0"), max. records (just one for this case); $history = $histlib->get_page_history($this->option['page'], false, 0, 1); if ($history[0]['version'] != null) { $value = $history[0]['version']; break; } else { $value = ''; break; } } case 'currentVersionApprover': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { if ($versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK')) { if (isset($_REQUEST['preview'])) { $revision_displayed = (int) $_REQUEST["preview"]; } elseif (isset($_REQUEST['version'])) { $revision_displayed = (int) $_REQUEST["version"]; } elseif (isset($_REQUEST['latest'])) { $revision_displayed = NULL; } else { $versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK'); $revision_displayed = $versions_info[0]; } if ($this->content_to_render === null) { $approval = $flaggedrevisionlib->find_approval_information($this->option['page'], $revision_displayed); } } } } if ($approval['user'] != null) { if ($prefs['user_show_realnames'] == 'y') { $value = TikiLib::lib('user')->clean_user($approval['user']); break; } else { $value = $approval['user']; break; } } else { $value = ''; break; } case 'currentVersionApproval': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { if ($versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK')) { if (isset($_REQUEST['preview'])) { $revision_displayed = (int) $_REQUEST["preview"]; } elseif (isset($_REQUEST['version'])) { $revision_displayed = (int) $_REQUEST["version"]; } elseif (isset($_REQUEST['latest'])) { $revision_displayed = NULL; } else { $versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK'); $revision_displayed = $versions_info[0]; } if ($this->content_to_render === null) { $approval = $flaggedrevisionlib->find_approval_information($this->option['page'], $revision_displayed); } } } } if ($approval['lastModif'] != null) { $value = $tikilib->get_short_datetime($approval['lastModif']); break; } else { $value = ''; break; } case 'currentVersionApproved': global $prefs, $user; $tikilib = TikiLib::lib('tiki'); if ($prefs['flaggedrev_approval'] == 'y') { $flaggedrevisionlib = TikiLib::lib('flaggedrevision'); if ($flaggedrevisionlib->page_requires_approval($this->option['page'])) { //$versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK'); if (isset($_REQUEST['preview'])) { $revision_displayed = (int) $_REQUEST["preview"]; } elseif (isset($_REQUEST['version'])) { $revision_displayed = (int) $_REQUEST["version"]; } elseif (isset($_REQUEST['latest'])) { $revision_displayed = NULL; } else { $versions_info = $flaggedrevisionlib->get_versions_with($this->option['page'], 'moderation', 'OK'); $revision_displayed = $versions_info[0]; } } } if ($revision_displayed != null && ($approval = $flaggedrevisionlib->find_approval_information($this->option['page'], $revision_displayed))) { $value = tr("yes"); break; } else { $value = tr("no"); break; } case 'cat': if (empty($_GET['cat']) && !empty($_REQUEST['organicgroup']) && !empty($this->option['page'])) { $utilities = new TikiAddons_Utilities(); if ($folder = $utilities->getFolderFromObject('wiki page', $this->option['page'])) { $ogname = $folder . '_' . $_REQUEST['organicgroup']; $cat = TikiLib::lib('categ')->get_category_id($ogname); $value = $cat; } else { $value = ''; } } elseif (!empty($_GET['cat'])) { $value = $_GET['cat']; } else { $value = ''; } break; default: if (isset($_GET[$name])) { $value = $_GET[$name]; } else { $value = ''; include_once 'lib/wiki-plugins/wikiplugin_showpref.php'; if ($prefs['wikiplugin_showpref'] == 'y' && ($showpref = wikiplugin_showpref('', array('pref' => $name)))) { $value = $showpref; } } break; } $needles[] = $arg[0]; $replacements[] = $value; } $data = str_replace($needles, $replacements, $data); } } }
$smarty->assign('lm_searchresults', ''); $smarty->assign('lm_error', ''); } $smarty->assign('indexNeedsRebuilding', $prefslib->indexNeedsRebuilding()); if (isset($_REQUEST['prefrebuild'])) { $prefslib->rebuildIndex(); header('Location: ' . $base_url . 'tiki-admin.php'); } $admin_icons = array("general" => array('title' => tr('General'), 'description' => tr('Global site configuration, date formats, admin password, etc.'), 'help' => 'General+Admin'), "features" => array('title' => tr('Features'), 'description' => tr('Switches for major features'), 'help' => 'Features+Admin'), "login" => array('title' => tr('Log in'), 'description' => tr('User registration, remember me cookie settings and authentication methods'), 'help' => 'Login+Config'), "community" => array('title' => tr('Community'), 'description' => tr('User specific features and settings'), 'help' => 'Community'), "profiles" => array('title' => tr('Profiles'), 'description' => tr('Repository configuration, browse and apply profiles'), 'help' => 'Profiles'), "look" => array('title' => tr('Look & Feel'), 'description' => tr('Theme selection, layout settings and UI effect controls'), 'help' => 'Look+and+Feel'), "textarea" => array('title' => tr('Editing and Plugins'), 'description' => tr('Text editing settings applicable to many areas. Plugin activation and plugin alias management'), 'help' => 'Text+area'), "module" => array('title' => tr('Modules'), 'description' => tr('Module appearance settings'), 'help' => 'Module'), "metatags" => array('title' => tr('Meta Tags'), 'description' => tr('Information to include in the header of each page'), 'help' => 'Meta+Tags'), "i18n" => array('title' => tr('i18n'), 'description' => tr('Internationalization and localization - multilingual features'), 'help' => 'i18n'), "maps" => array('title' => tr('Maps'), 'description' => tr('Settings and features for maps'), 'help' => 'Maps', 'disabled' => false), "performance" => array('title' => tr('Performance'), 'description' => tr('Server performance settings'), 'help' => 'Performance'), "security" => array('title' => tr('Security'), 'description' => tr('Site security settings'), 'help' => 'Security'), "comments" => array('title' => tr('Comments'), 'description' => tr('Comments settings'), 'help' => 'Comments'), "rss" => array('title' => tr('Feeds'), 'help' => 'Feeds User', 'description' => tr('Outgoing RSS feed setup')), "connect" => array('title' => tr('Connect'), 'help' => 'Connect', 'description' => tr('Tiki Connect - join in!')), "rating" => array('title' => tr('Rating'), 'help' => 'Rating', 'description' => tr('Rating settings'), 'disabled' => $prefs['wiki_simple_ratings'] !== 'y' && $prefs['wiki_comments_simple_ratings'] !== 'y' && $prefs['comments_vote'] !== 'y' && $prefs['rating_advanced'] !== 'y' && $prefs['trackerfield_rating'] !== 'y' && $prefs['article_user_rating'] !== 'y' && $prefs['rating_results_detailed'] !== 'y' && $prefs['rating_smileys'] !== 'y'), "search" => array('title' => tr('Search'), 'description' => tr('Search configuration'), 'help' => 'Search', 'disabled' => $prefs['feature_search'] !== 'y' && $prefs['feature_search_fulltext'] !== 'y'), "wiki" => array('title' => tr('Wiki'), 'disabled' => $prefs['feature_wiki'] != 'y', 'description' => tr('Wiki page settings and features'), 'help' => 'Wiki+Config'), "fgal" => array('title' => tr('File Galleries'), 'disabled' => $prefs['feature_file_galleries'] != 'y', 'description' => tr('Defaults and configuration for file galleries'), 'help' => 'File+Gallery'), "blogs" => array('title' => tr('Blogs'), 'disabled' => $prefs['feature_blogs'] != 'y', 'description' => tr('Settings for blogs'), 'help' => 'Blog'), "gal" => array('title' => tr('Image Galleries'), 'disabled' => $prefs['feature_galleries'] != 'y', 'description' => tr('Defaults and configuration for image galleries (will be phased out in favour of file galleries)'), 'help' => 'Image+Gallery'), "articles" => array('title' => tr('Articles'), 'disabled' => $prefs['feature_articles'] != 'y', 'description' => tr('Settings and features for articles'), 'help' => 'Articles'), "forums" => array('title' => tr('Forums'), 'disabled' => $prefs['feature_forums'] != 'y', 'description' => tr('Settings and features for forums'), 'help' => 'Forum'), "trackers" => array('title' => tr('Trackers'), 'disabled' => $prefs['feature_trackers'] != 'y', 'description' => tr('Settings and features for trackers'), 'help' => 'Trackers'), "polls" => array('title' => tr('Polls'), 'disabled' => $prefs['feature_polls'] != 'y', 'description' => tr('Settings and features for polls'), 'help' => 'Polls'), "calendar" => array('title' => tr('Calendar'), 'disabled' => $prefs['feature_calendar'] != 'y', 'description' => tr('Settings and features for calendars'), 'help' => 'Calendar'), "category" => array('title' => tr('Categories'), 'disabled' => $prefs['feature_categories'] != 'y', 'description' => tr('Settings and features for categories'), 'help' => 'Category'), "workspace" => array('title' => tr('Workspaces'), 'disabled' => $prefs['workspace_ui'] != 'y' && $prefs['feature_areas'] != 'y', 'description' => tr('Configure workspace feature'), 'help' => 'workspace'), "score" => array('title' => tr('Score'), 'disabled' => $prefs['feature_score'] != 'y', 'description' => tr('Values of actions for users rank score'), 'help' => 'Score'), "freetags" => array('title' => tr('Tags'), 'disabled' => $prefs['feature_freetags'] != 'y', 'description' => tr('Settings and features for tags'), 'help' => 'Tags'), "faqs" => array('title' => tr('FAQs'), 'disabled' => $prefs['feature_faqs'] != 'y', 'description' => tr('Settings and features for FAQs'), 'help' => 'FAQ'), "directory" => array('title' => tr('Directory'), 'disabled' => $prefs['feature_directory'] != 'y', 'description' => tr('Settings and features for directory of links'), 'help' => 'Directory'), "copyright" => array('title' => tr('Copyright'), 'disabled' => $prefs['feature_copyright'] != 'y', 'description' => tr('Site-wide copyright information'), 'help' => 'Copyright'), "messages" => array('title' => tr('Messages'), 'disabled' => $prefs['feature_messages'] != 'y', 'description' => tr('Message settings'), 'help' => 'Inter-User+Messages'), "userfiles" => array('title' => tr('User Files'), 'disabled' => $prefs['feature_userfiles'] != 'y', 'description' => tr('User files settings'), 'help' => 'User+Files'), "webmail" => array('title' => tr('Webmail'), 'disabled' => $prefs['feature_webmail'] != 'y', 'description' => tr('Webmail settings'), 'help' => 'Webmail'), "wysiwyg" => array('title' => tr('Wysiwyg'), 'disabled' => $prefs['feature_wysiwyg'] != 'y', 'description' => tr('Options for WYSIWYG editor'), 'help' => 'Wysiwyg'), "ads" => array('title' => tr('Banners'), 'disabled' => $prefs['feature_banners'] != 'y', 'description' => tr('Site advertisements and notices'), 'help' => 'Look+and+Feel'), "intertiki" => array('title' => tr('InterTiki'), 'disabled' => $prefs['feature_intertiki'] != 'y', 'description' => tr('Set up links between Tiki servers'), 'help' => 'InterTiki'), "semantic" => array('title' => tr('Semantic Links'), 'disabled' => $prefs['feature_semantic'] != 'y', 'description' => tr('Manage semantic wiki links'), 'help' => 'Semantic+Admin'), "webservices" => array('title' => tr('Webservices'), 'disabled' => $prefs['feature_webservices'] != 'y', 'description' => tr('Register and manage web services'), 'help' => 'WebServices'), "sefurl" => array('title' => tr('SEF URL'), 'disabled' => $prefs['feature_sefurl'] != 'y' && $prefs['feature_canonical_url'] != 'y', 'description' => tr('Search Engine Friendly URLs'), 'help' => 'Rewrite+Rules'), "video" => array('title' => tr('Video'), 'disabled' => $prefs['feature_kaltura'] != 'y', 'description' => tr('Video integration configuration'), 'help' => 'Kaltura+Config'), "payment" => array('title' => tr('Payment'), 'disabled' => $prefs['payment_feature'] != 'y', 'description' => tr('Payment settings'), 'help' => 'Payment'), "socialnetworks" => array('title' => tr('Social networks'), 'disabled' => $prefs['feature_socialnetworks'] != 'y', 'description' => tr('Configure social networks integration'), 'help' => 'Social+Networks'), "share" => array('title' => tr('Share'), 'disabled' => $prefs['feature_share'] != 'y', 'description' => tr('Configure share feature'), 'help' => 'share')); if (isset($_REQUEST['page'])) { $adminPage = $_REQUEST['page']; $check = key_get(null, null, null, false); $smarty->assign('ticket', $check['ticket']); // Check if the associated incude_*.php file exists. If not, check to see if it might exist in the Addons. // If it exists, include the associated file and generate the ticket. $utilities = new TikiAddons_Utilities(); if (file_exists("admin/include_{$adminPage}.php")) { include_once "admin/include_{$adminPage}.php"; } elseif ($filepath = $utilities->getAddonFilePath("admin/include_{$adminPage}.php")) { include_once $filepath; } $url = 'tiki-admin.php' . '?page=' . $adminPage; if (isset($admin_icons[$adminPage])) { $admin_icon = $admin_icons[$adminPage]; $admintitle = $admin_icon['title']; $description = isset($admin_icon['description']) ? $admin_icon['description'] : ''; $helpUrl = isset($admin_icon['help']) ? $admin_icon['help'] : ''; } $helpDescription = tr("Help on %0 Config", $admintitle); $smarty->assign('include', $adminPage); if (!empty($changes) && key_check(null, false)) {