Example #1
0
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);
}
Example #2
0
 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>");
         }
     }
 }
Example #3
0
 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;
     }
 }
Example #4
0
 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>");
             }
         }
     }
 }
Example #5
0
 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.");
         }
     }
 }
Example #6
0
 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);
         }
     }
 }
Example #7
0
    $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)) {