function createJournalIssueNode($doc, $issue, $journalLocalePrecedence)
{
$deployment = $this->getDeployment();
$journalIssueNode = $doc->createElementNS($deployment->getNamespace(), 'JournalIssue');
// Volume
$volume = $issue->getVolume();
if (!empty($volume) && $issue->getShowVolume()) {
$journalIssueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'JournalVolumeNumber', htmlspecialchars($volume, ENT_COMPAT, 'UTF-8')));
}
// Number
$number = $issue->getNumber();
if (!empty($number) && $issue->getShowNumber()) {
$journalIssueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'JournalIssueNumber', htmlspecialchars($number, ENT_COMPAT, 'UTF-8')));
}
// Identification
$identification = $issue->getIssueIdentification();
if (!empty($identification)) {
$journalIssueNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'JournalIssueDesignation', htmlspecialchars($identification, ENT_COMPAT, 'UTF-8')));
}
assert(!(empty($number) && empty($identification)));
// Nominal Year
$year = (string) $issue->getYear();
$yearlen = strlen($year);
if ($issue->getShowYear() && !empty($year) && ($yearlen == 2 || $yearlen == 4)) {
$issueDateNode = $doc->createElementNS($deployment->getNamespace(), 'JournalIssueDate');
$issueDateNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'DateFormat', O4DOI_DATE_FORMAT_YYYY));
// Try to extend the year if necessary.
if ($yearlen == 2) {
// Assume that the issue date will never be
// more than one year in the future.
if ((int) $year <= (int) date('y') + 1) {
$year = '20' . $year;
} else {
$year = '19' . $year;
}
}
$issueDateNode->appendChild($node = $doc->createElementNS($deployment->getNamespace(), 'Date', $year));
$journalIssueNode->appendChild($issueDateNode);
}
return $journalIssueNode;
}