コード例 #1
0
ファイル: PluginManager.php プロジェクト: Maxlander/shixi
 /**
  * @param string $pluginName
  * @return bool
  */
 public static function isPluginActive($pluginName)
 {
     $plugin = SJB_PluginManager::getPluginByName($pluginName);
     return $plugin && $plugin['active'] == '1';
 }
コード例 #2
0
ファイル: plugins.php プロジェクト: Maxlander/shixi
 public function execute()
 {
     $tp = SJB_System::getTemplateProcessor();
     $saved = false;
     $action = SJB_Request::getVar('action');
     $form_submitted = SJB_Request::getVar('submit');
     $template = 'plugins.tpl';
     $errors = array();
     if (SJB_Request::getVar('error', false)) {
         $errors[] = SJB_Request::getVar('error', false);
     }
     $messages = array();
     if (SJB_Request::getVar('message', false)) {
         $messages[] = SJB_Request::getVar('message', false);
     }
     switch ($action) {
         case 'save':
             $paths = SJB_Request::getVar('path');
             $active = SJB_Request::getVar('active');
             $subAdminSID = SJB_SubAdmin::getSubAdminSID();
             if (SJB_System::getSystemSettings('isDemo')) {
                 $errors[] = 'You don\'t have permissions for it. This is a Demo version of the software.';
             } else {
                 foreach ($paths as $key => $path) {
                     $config = SJB_PluginManager::getPluginConfigFromIniFile($path);
                     // check subadmins permissions
                     if ($subAdminSID) {
                         switch ($key) {
                             case 'FacebookSocialPlugin':
                                 if (!$this->acl->isAllowed('set_facebook_plug-in', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'LinkedinSocialPlugin':
                                 if (!$this->acl->isAllowed('set_linkedin_plug-in', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'PhpBBBridgePlugin':
                                 if (!$this->acl->isAllowed('set_phpbb_plug-in', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'TwitterIntegrationPlugin':
                                 if (!$this->acl->isAllowed('set_twitter_plug-in', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'WordPressBridgePlugin':
                                 if (!$this->acl->isAllowed('set_wordpress_plug-in', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'ShareThisPlugin':
                                 if (!$this->acl->isAllowed('set_sharethisplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'CaptchaPlugin':
                                 if (!$this->acl->isAllowed('set_captchaplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'IndeedPlugin':
                                 if (!$this->acl->isAllowed('set_indeedplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'JujuPlugin':
                                 if (!$this->acl->isAllowed('set_jujuplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'SimplyHiredPlugin':
                                 if (!$this->acl->isAllowed('set_simplyhiredplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'GoogleAnalyticsPlugin':
                                 if (!$this->acl->isAllowed('set_googleanalyticsplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                             case 'BeyondPlugin':
                                 if (!$this->acl->isAllowed('set_beyondplugin', $subAdminSID)) {
                                     continue 2;
                                 }
                                 break;
                         }
                     }
                     $config['active'] = $active[$key];
                     $saved = SJB_PluginManager::savePluginConfigIntoIniFile($path, $config);
                     if (!$saved) {
                         $errors[] = 'Failed to save ' . $key . ' settings';
                     }
                 }
             }
             SJB_PluginManager::reloadPlugins();
             break;
         case 'save_settings':
             $request = $_REQUEST;
             $request = self::checkRequiredFields($request);
             if (!isset($request['setting_errors'])) {
                 SJB_Settings::updateSettings($request);
                 if ($form_submitted == 'save') {
                     break;
                 } else {
                     if ($form_submitted == 'apply') {
                         $pluginName = SJB_Request::getVar('plugin');
                         SJB_HelperFunctions::redirect('?action=settings&plugin=' . $pluginName);
                     }
                 }
             } else {
                 unset($request['setting_errors']);
                 $errors = $request;
             }
         case 'settings':
             $pluginName = SJB_Request::getVar('plugin');
             $plugin = SJB_PluginManager::getPluginByName($pluginName);
             if (isset($plugin['name'])) {
                 $pluginObj = new $plugin['name']();
                 $settings = $pluginObj->pluginSettings();
                 $template = 'plugin_settings.tpl';
                 $savedSettings = SJB_Settings::getSettings();
                 SJB_Event::dispatch('RedefineSavedSetting', $savedSettings, true);
                 SJB_Event::dispatch('RedefineTemplateName', $template, true);
                 $tp->assign('plugin', $plugin);
                 $tp->assign('settings', $settings);
                 $tp->assign('savedSettings', $savedSettings);
             }
             break;
         case 'editCaptcha':
             $info = $_REQUEST;
             SJB_Event::dispatch('editCaptcha', $info, true);
             foreach ($info as $key => $val) {
                 $tp->assign($key, $val);
             }
             $template = $info['template'];
             break;
     }
     $listPlugins = SJB_PluginManager::getAllPluginsList();
     $plugins = array();
     foreach ($listPlugins as $key => $plugin) {
         $group = !empty($plugin['group']) ? $plugin['group'] : 'Common';
         $plugins[$group][$key] = $plugin;
         if (array_key_exists($key, $this->socialMediaPlugins)) {
             $plugins[$group][$key]['socialMedia'] = $this->socialMediaPlugins[$key];
         }
     }
     $tp->assign('saved', $saved);
     $tp->assign('groups', $plugins);
     $tp->assign('errors', $errors);
     $tp->assign('messages', $messages);
     $tp->display($template);
 }