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);
 }
Esempio n. 2
0
 /**
  * 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;
 }