Example #1
0
 /**
  * @see GenericPlugin::manage()
  */
 function manage($verb, $args, &$message, &$messageParams)
 {
     if (!parent::manage($verb, $args, $message, $messageParams)) {
         return false;
     }
     switch ($verb) {
         case 'settings':
             $templateMgr =& TemplateManager::getManager();
             $templateMgr->register_function('plugin_url', array(&$this, 'smartyPluginUrl'));
             $this->import('classes.form.LuceneSettingsForm');
             $form = new LuceneSettingsForm($this);
             if (Request::getUserVar('save')) {
                 $form->readInputData();
                 if ($form->validate()) {
                     $form->execute();
                     Request::redirect(null, 'manager', 'plugins', 'generic');
                     return false;
                 } else {
                     $this->_setBreadCrumbs();
                     $form->display();
                 }
             } else {
                 $this->_setBreadCrumbs();
                 $form->initData();
                 $form->display();
             }
             return true;
         default:
             // Unknown management verb
             assert(false);
             return false;
     }
 }
Example #2
0
 /**
  * @see Plugin::manage()
  */
 function manage($verb, $args, &$message, &$messageParams, &$pluginModalContent = null)
 {
     if (!parent::manage($verb, $args, $message, $messageParams)) {
         return false;
     }
     $request = $this->getRequest();
     switch ($verb) {
         case 'settings':
             // Prepare the template manager.
             $templateMgr = TemplateManager::getManager($request);
             $templateMgr->register_function('plugin_url', array($this, 'smartyPluginUrl'));
             // Instantiate an embedded server instance.
             $this->import('classes.EmbeddedServer');
             $embeddedServer = new EmbeddedServer();
             // Instantiate the settings form.
             $this->import('classes.form.LuceneSettingsForm');
             $form = new LuceneSettingsForm($this, $embeddedServer);
             // Handle request to save configuration data.
             if ($request->getUserVar('save')) {
                 $form->readInputData();
                 if ($form->validate()) {
                     $form->execute();
                     $request->redirect(null, 'manager', 'plugins', 'generic');
                     return false;
                 } else {
                     $form->display($request);
                 }
                 // Handle administrative request.
             } else {
                 // Re-init data. It should be visible to users
                 // that whatever data they may have entered into
                 // the form was not saved.
                 $form->initData();
                 // Index rebuild.
                 if ($request->getUserVar('rebuildIndex')) {
                     // Check whether we got valid index rebuild options.
                     if ($form->validate()) {
                         // Check whether a journal was selected.
                         $journal = null;
                         $journalId = $request->getUserVar('journalToReindex');
                         if (!empty($journalId)) {
                             $journalDao = DAORegistry::getDAO('JournalDAO');
                             /* @var $journalDao JournalDAO */
                             $journal = $journalDao->getById($journalId);
                             if (!is_a($journal, 'Journal')) {
                                 $journal = null;
                             }
                         }
                         if (empty($journalId) || !empty($journalId) && is_a($journal, 'Journal')) {
                             // Rebuild index and dictionaries.
                             $messages = null;
                             $this->_rebuildIndex(false, $journal, true, true, true, $messages);
                             // Transfer indexing output to the form template.
                             $form->setData('rebuildIndexMessages', $messages);
                         }
                     }
                     // Dictionary rebuild.
                 } elseif ($request->getUserVar('rebuildDictionaries')) {
                     // Rebuild dictionaries.
                     $journal = null;
                     $this->_rebuildIndex(false, null, false, true, false, $messages);
                     // Transfer indexing output to the form template.
                     $form->setData('rebuildIndexMessages', $messages);
                     // Boost File Update.
                 } elseif ($request->getUserVar('updateBoostFile')) {
                     $this->_updateBoostFiles();
                     // Start/Stop solr server.
                 } elseif ($request->getUserVar('stopServer')) {
                     // As this is a system plug-in we follow usual
                     // plug-in policy and allow journal managers to start/
                     // stop the server although this will affect all journals
                     // of the installation.
                     $embeddedServer->stopAndWait();
                 } elseif ($request->getUserVar('startServer')) {
                     $embeddedServer->start();
                 }
                 // Re-display the settings page after executing
                 // an administrative task.
                 $form->display($request);
             }
             return true;
         default:
             // Unknown management verb
             assert(false);
             return false;
     }
 }