diff --git a/plugins/importexport/onix30/filter/MonographONIX30XmlFilter.php b/plugins/importexport/onix30/filter/MonographONIX30XmlFilter.php index bff6c408fcb..30612ea971e 100644 --- a/plugins/importexport/onix30/filter/MonographONIX30XmlFilter.php +++ b/plugins/importexport/onix30/filter/MonographONIX30XmlFilter.php @@ -251,6 +251,28 @@ public function createProductNode($doc, $submission, $publicationFormat) $descDetailNode->appendChild($this->_buildTextNode($doc, 'EpubTechnicalProtection', $publicationFormat->getTechnicalProtectionCode())); } + /* --- License information --- */ + + $publication = $submission->getCurrentPublication(); + + if ($publication->isCCLicense()) { + $licenseOpts = Application::getCCLicenseOptions(); + $licenseUrl = $publication->getData('licenseUrl'); + if (array_key_exists($licenseUrl, $licenseOpts)) { + $licenseName = (__($licenseOpts[$licenseUrl], [], $publication->getData('locale'))); + + $epubLicenseNode = $doc->createElementNS($deployment->getNamespace(), 'EpubLicense'); + $descDetailNode->appendChild($epubLicenseNode); + $epubLicenseNode->appendChild($this->_buildTextNode($doc, 'EpubLicenseName', $licenseName)); + + $epubLicenseExpressionNode = $doc->createElementNS($deployment->getNamespace(), 'EpubLicenseExpression'); + $epubLicenseNode->appendChild($epubLicenseExpressionNode); + + $epubLicenseExpressionNode->appendChild($this->_buildTextNode($doc, 'EpubLicenseExpressionType', '02')); + $epubLicenseExpressionNode->appendChild($this->_buildTextNode($doc, 'EpubLicenseExpressionLink', $licenseUrl)); + } + } + /* --- Collection information, first for series and then for product --- */ /* --- Series information, if this monograph is part of one. --- */ @@ -303,7 +325,6 @@ public function createProductNode($doc, $submission, $publicationFormat) $productTitleDetailNode->appendChild($titleElementNode); - $publication = $submission->getCurrentPublication(); if (!$publication->getLocalizedData('prefix') || !$publication->getLocalizedData('title')) { $titleElementNode->appendChild($this->_buildTextNode($doc, 'TitleText', trim($publication->getLocalizedData('prefix') ?? $publication->getLocalizedTitle()))); } else {