62 lines
1.8 KiB
PHP
62 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @file plugins/oaiMetadataFormats/marc/OAIMetadataFormat_MARC.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 OAIMetadataFormat_MARC
|
|
*
|
|
* @ingroup oai_format
|
|
*
|
|
* @see OAI
|
|
*
|
|
* @brief OAI metadata format class -- MARC.
|
|
*/
|
|
|
|
namespace APP\plugins\oaiMetadataFormats\marc;
|
|
|
|
use APP\template\TemplateManager;
|
|
use PKP\core\PKPString;
|
|
use PKP\i18n\LocaleConversion;
|
|
use PKP\oai\OAIMetadataFormat;
|
|
use PKP\plugins\PluginRegistry;
|
|
|
|
class OAIMetadataFormat_MARC extends OAIMetadataFormat
|
|
{
|
|
/**
|
|
* @see OAIMetadataFormat#toXml
|
|
*
|
|
* @param null|mixed $format
|
|
*/
|
|
public function toXml($record, $format = null)
|
|
{
|
|
$article = $record->getData('article');
|
|
$journal = $record->getData('journal');
|
|
|
|
$templateMgr = TemplateManager::getManager();
|
|
$templateMgr->assign([
|
|
'journal' => $journal,
|
|
'article' => $article,
|
|
'issue' => $record->getData('issue'),
|
|
'section' => $record->getData('section')
|
|
]);
|
|
|
|
$subjects = array_merge_recursive(
|
|
stripAssocArray((array) $article->getDiscipline(null)),
|
|
stripAssocArray((array) $article->getSubject(null))
|
|
);
|
|
|
|
$templateMgr->assign([
|
|
'subject' => isset($subjects[$journal->getPrimaryLocale()]) ? $subjects[$journal->getPrimaryLocale()] : '',
|
|
'abstract' => PKPString::html2text($article->getAbstract($article->getLocale())),
|
|
'language' => LocaleConversion::get3LetterIsoFromLocale($article->getLocale())
|
|
]);
|
|
|
|
$plugin = PluginRegistry::getPlugin('oaiMetadataFormats', 'OAIFormatPlugin_MARC');
|
|
return $templateMgr->fetch($plugin->getTemplateResource('record.tpl'));
|
|
}
|
|
}
|