/** * @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; } }
/** * @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; } }