function display($args, $request)
{
parent::display($args, $request);
$context = $request->getContext();
switch (array_shift($args)) {
case 'index':
case '':
// Check for configuration errors:
$configurationErrors = array();
// 1) missing DOI prefix
$doiPrefix = $exportArticles = $exportIssues = null;
$pubIdPlugins = PluginRegistry::loadCategory('pubIds', true);
if (isset($pubIdPlugins['doipubidplugin'])) {
$doiPlugin = $pubIdPlugins['doipubidplugin'];
$doiPrefix = $doiPlugin->getSetting($context->getId(), $doiPlugin->getPrefixFieldName());
$exportArticles = $doiPlugin->getSetting($context->getId(), 'enableSubmissionDoi');
$exportIssues = $doiPlugin->getSetting($context->getId(), 'enableIssueDoi');
$exportRepresentations = $doiPlugin->getSetting($context->getId(), 'enableRepresentationDoi');
}
if (empty($doiPrefix)) {
$configurationErrors[] = DOI_EXPORT_CONFIG_ERROR_DOIPREFIX;
}
// 2) missing plugin settings
$form = $this->_instantiateSettingsForm($context);
foreach ($form->getFormFields() as $fieldName => $fieldType) {
if ($form->isOptional($fieldName)) {
continue;
}
$pluginSetting = $this->getSetting($context->getId(), $fieldName);
if (empty($pluginSetting)) {
$configurationErrors[] = DOI_EXPORT_CONFIG_ERROR_SETTINGS;
break;
}
}
// Add link actions
$actions = $this->getExportActions($context);
$actionNames = array_intersect_key($this->getExportActionNames(), array_flip($actions));
import('lib.pkp.classes.linkAction.request.NullAction');
$linkActions = array();
foreach ($actionNames as $action => $actionName) {
$linkActions[] = new LinkAction($action, new NullAction(), $actionName);
}
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign(array('plugin' => $this, 'actionNames' => $actionNames, 'configurationErrors' => $configurationErrors, 'exportArticles' => $exportArticles, 'exportIssues' => $exportIssues, 'exportRepresentations' => $exportRepresentations));
$templateMgr->display($this->getTemplatePath() . 'index.tpl');
break;
}
}