function displayArchiveForm(&$form, &$templateMgr) { $this->import('OAIHarvester'); parent::displayArchiveForm($form, $templateMgr); $templateMgr->assign('oaiIndexMethods', array(OAI_INDEX_METHOD_LIST_RECORDS => __('plugins.harvesters.oai.archive.form.oaiIndexMethod.ListRecords'), OAI_INDEX_METHOD_LIST_IDENTIFIERS => __('plugins.harvesters.oai.archive.form.oaiIndexMethod.ListIdentifiers'))); // Build a list of supported metadata formats. $schemaDao = DAORegistry::getDAO('SchemaDAO'); $aliases =& $schemaDao->getSchemaAliases(); $plugins =& PluginRegistry::loadCategory('schemas'); $archive =& $form->_data['archive']; $oaiHarvester = new OAIHarvester($archive); $metadataFormats = $oaiHarvester->getMetadataFormats($form->getData('harvesterUrl'), $form->getData('isStatic')); $supportedFormats = array(); if (is_array($metadataFormats)) { foreach ($metadataFormats as $format) { if (isset($aliases[$format]) && isset($plugins[$aliases[$format]])) { $pluginName = $aliases[$format]; $plugin =& $plugins[$pluginName]; $supportedFormats[$pluginName] = $plugin->getSchemaDisplayName(); unset($plugin); } } } if ($archive) { $templateMgr->assign('metadataFormat', $archive->getSchemaPluginName()); } $templateMgr->assign('metadataFormats', $supportedFormats); }
/** * Get the metadata format. */ function getMetadataFormat($default = DUBLIN_CORE_METADATA_PREFIX) { if (isset($this->metadataFormat)) { return $this->metadataFormat; } $archive =& $this->getArchive(); $schemaPluginName = $archive->getSchemaPluginName(); if (empty($schemaPluginName)) { return $this->metadataFormat = $default; } $schemaDao = DAORegistry::getDAO('SchemaDAO'); $aliases = array_keys($schemaDao->getSchemaAliases($schemaPluginName)); $supportedFormats = OAIHarvester::getMetadataFormats($archive->getSetting('harvesterUrl'), $archive->getSetting('isStatic')); // Return the first common format between the aliases for this // plugin and the archive's supported formats. $this->metadataFormat = array_shift(array_intersect((array) $aliases, (array) $supportedFormats)); if (empty($this->metadataFormat)) { $this->metadataFormat = $default; } return $this->metadataFormat; }