| Server IP : 195.134.90.114 / Your IP : 216.73.216.86 Web Server : Apache/2.4.58 System : Linux nepub 6.8.0-88-generic #89-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 01:02:46 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.2.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/public_html/lib/pkp/classes/plugins/ |
Upload File : |
<?php
/**
* @file classes/plugins/MetadataPlugin.inc.php
*
* Copyright (c) 2014-2021 Simon Fraser University
* Copyright (c) 2003-2021 John Willinsky
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
*
* @class MetadataPlugin
* @ingroup plugins
*
* @brief Abstract class for metadata plugins
*/
import('lib.pkp.classes.plugins.Plugin');
// Define the well-known file name for controlled vocabulary data.
define('METADATA_PLUGIN_VOCAB_DATAFILE', 'controlledVocabs.xml');
abstract class MetadataPlugin extends Plugin {
//
// Override public methods from Plugin
//
/**
* @copydoc Plugin::register()
*/
function register($category, $path, $mainContextId = null) {
if (!parent::register($category, $path, $mainContextId)) return false;
$this->addLocaleData();
return true;
}
/**
* This implementation looks for files that contain controlled
* vocabulary data. It can discover and return more than one file.
* @see Plugin::getInstallControlledVocabFiles()
* @return array|null
*/
function getInstallControlledVocabFiles() {
// Search the well-known locations for vocabulary data files. If
// one is found then return it.
$pluginPath = $this->getPluginPath();
$wellKnownVocabLocations = array(
'./'.$pluginPath.'/schema/'.METADATA_PLUGIN_VOCAB_DATAFILE,
'./lib/pkp/'.$pluginPath.'/schema/'.METADATA_PLUGIN_VOCAB_DATAFILE
);
$controlledVocabFiles = parent::getInstallControlledVocabFiles();
foreach ($wellKnownVocabLocations as $wellKnownVocabLocation) {
if (file_exists($wellKnownVocabLocation)) $controlledVocabFiles[] = $wellKnownVocabLocation;
}
return $controlledVocabFiles;
}
/**
* Get a unique id for this metadata format
*
* @param $format string The format to check for support.
* @return string
*/
abstract function supportsFormat($format);
/**
* Instantiate and return the schema object for this metadata format
*
* @param $format string The format to return the schema object for in case
* the plugin supports multiple formats.
* @return mixed
*/
abstract function getSchemaObject($format);
}