From 638e21e8d3ff50aecf8e28bafa2976e7c4a86bf2 Mon Sep 17 00:00:00 2001 From: Alexander Purr <purr@ub.uni-leipzig.de> Date: Wed, 19 Aug 2020 13:08:54 +0200 Subject: [PATCH] refs #18058 [finc] add some RecordDriver functions * add marc driver function for getting performer note (marc 511 |a) * display additional authors ** add role value to getAdditionalAuthors marc function ** add template * add corporations / corporate authors template * add rvk notation template --- .../finc/RecordDriver/SolrMarcFincTrait.php | 20 +++++++- .../data-additionalAuthors.phtml | 22 ++++++++ .../DefaultRecord/data-corporateAuthors.phtml | 14 ++++++ .../data-publicationDetails.phtml | 50 ++++++++++--------- .../DefaultRecord/data-rvkNotation.phtml | 26 ++++++++++ 5 files changed, 108 insertions(+), 24 deletions(-) create mode 100644 themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml create mode 100644 themes/finc/templates/RecordDriver/DefaultRecord/data-corporateAuthors.phtml create mode 100644 themes/finc/templates/RecordDriver/DefaultRecord/data-rvkNotation.phtml diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php index a6594df4bd0..f85b2edc14f 100644 --- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php +++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php @@ -1367,8 +1367,9 @@ trait SolrMarcFincTrait ? $line->getSubfield('d')->getData() : ''; $retval[$key]['relator'] = ($line->getSubfield('e')) ? $line->getSubfield('e')->getData() : ''; + $retval[$key]['role'] = ($line->getSubfield('4')) + ? $line->getSubfield('4')->getData() : ''; } - // echo "<pre>"; print_r($retval); echo "</pre>"; return $retval; } @@ -2473,4 +2474,21 @@ trait SolrMarcFincTrait { return $this->getFieldArray('508', ['a']); } + + /** + * Return performer note of marc 511 |a + * + * @return mixed + */ + public function getPerformerNote() + { + $field = $this->getMarcRecord()->getField('511'); + if($field){ + $subfield = $field->getSubfield('a'); + if($subfield) { + return $subfield->getData(); + } + } + return null; + } } \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml new file mode 100644 index 00000000000..17ba1d06e62 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-additionalAuthors.phtml @@ -0,0 +1,22 @@ +<!-- finc: RecordDriver - DefaultRecord - data-additionalAuthors --> +<?php if (!empty($data)): ?> + <?php if (is_array($data)): ?> + <?php foreach ($data as $author): ?> + <? if(isset($author['name'])): ?> + <a href="<?=$this->record($this->driver)->getLink('author', $author['name'])?>"> + <?= $author['name'] ?> + </a> + <? endif; ?> + <?php if(isset($author['dates'])): ?> + <?= $author['dates'] ?> + <?php endif; ?> + <?php if(isset($author['role'])): ?> + [<?= $this->transEsc("CreatorRoles::" . $author['role']) ?>] + <?php endif; ?> + <?php if(next($data)): ?> + • + <?php endif; ?> + <?php endforeach; ?> + <?php endif; ?> +<?php endif; ?> +<!-- finc: RecordDriver - DefaultRecord - data-additionalAuthors - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-corporateAuthors.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-corporateAuthors.phtml new file mode 100644 index 00000000000..b888d0f2191 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-corporateAuthors.phtml @@ -0,0 +1,14 @@ +<!-- finc: RecordDriver - DefaultRecord - data-corporateAuthors --> +<?php if (!empty($data)): ?> + <?php if (is_array($data)): ?> + <?php foreach ($data as $author): ?> + <a href="<?=$this->record($this->driver)->getLink('author', $author)?>"> + <?= $author ?> + </a> + <?php if(next($data)): ?> + <br> + <?php endif; ?> + <?php endforeach; ?> + <?php endif; ?> +<?php endif; ?> +<!-- finc: RecordDriver - DefaultRecord - data-corporateAuthors - END --> \ No newline at end of file diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-publicationDetails.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-publicationDetails.phtml index fdb11ee471b..430b5d61896 100644 --- a/themes/finc/templates/RecordDriver/DefaultRecord/data-publicationDetails.phtml +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-publicationDetails.phtml @@ -1,30 +1,34 @@ <!-- finc: RecordDriver - DefaultRecord - data-publicationDetails --> <?php if (!empty($data)): ?> <div itemscope itemtype="http://schema.org/publisher"> - <?php foreach ($data as $field): ?> - <span property="publisher" typeof="Organization"> - <?php $pubPlace = $field->getPlace(); - if (!empty($pubPlace)): ?> - <span property="location" typeof="Place"> - <span property="name"><?=$this->escapeHtml($pubPlace)?></span> - </span> + <?php if (is_array($data)): ?> + <?php foreach ($data as $field): ?> + <span property="publisher" typeof="Organization"> + <?php $pubPlace = $field->getPlace(); + if (!empty($pubPlace)): ?> + <span property="location" typeof="Place"> + <span property="name"><?=$this->escapeHtml($pubPlace)?></span> + </span> + <?php endif; ?> + <?php $pubName = $field->getName(); + if (!empty($pubName)): ?> + <span property="name"><?=$this->escapeHtml($pubName)?></span> + <?php endif; ?> + </span> + <span property="datePublished"> + <?php /* do not show solr publish date #13993 - GG */ ?> + <?php /*$pubDateSort = $this->driver->tryMethod('getPublishDateSort');*/ ?> + <?php $pubDate = $field->getDate(); + if (!empty($pubDate)): ?> + <?=$this->escapeHtml($pubDate)?> + <?php /*else: ?> + <?=$this->escapeHtml($pubDateSort)*/ ?> <?php endif; ?> - <?php $pubName = $field->getName(); - if (!empty($pubName)): ?> - <span property="name"><?=$this->escapeHtml($pubName)?></span> - <?php endif; ?> - </span> - <span property="datePublished"> - <?php /* do not show solr publish date #13993 - GG */ ?> - <?php /*$pubDateSort = $this->driver->tryMethod('getPublishDateSort');*/ ?> - <?php $pubDate = $field->getDate(); - if (!empty($pubDate)): ?> - <?=$this->escapeHtml($pubDate)?> - <?php /*else: ?> - <?=$this->escapeHtml($pubDateSort)*/ ?> - <?php endif; ?> - </span><br/> - <?php endforeach; ?> + </span><br/> + <?php endforeach; ?> + <?php else: ?> + <?=$this->escapeHtml($data)?> + <?php endif; ?> </div> <?php endif ?> <!-- finc: RecordDriver - DefaultRecord - data-publicationDetails - END --> diff --git a/themes/finc/templates/RecordDriver/DefaultRecord/data-rvkNotation.phtml b/themes/finc/templates/RecordDriver/DefaultRecord/data-rvkNotation.phtml new file mode 100644 index 00000000000..ace98595279 --- /dev/null +++ b/themes/finc/templates/RecordDriver/DefaultRecord/data-rvkNotation.phtml @@ -0,0 +1,26 @@ +<!-- finc: RecordDriver - DefaultRecord - data-rvkNotation --> +<?php /* partial copied from themes/finc/templates/RecordTab/topics.phtml */ ?> +<?php $i = 0; foreach ($data as $item): ?> + <?=($i>0?"<br />":"") //no linebreak after last item ?> + <?php if (isset($item['level']) ): ?> + <?php + $tooltip_content = "<ul class='no-bullet'>"; + if (isset($item['level']) && count($item['level'])) { + foreach ($item['level'] as $level) { + $tooltip_content .= "<li>" . $level . "</li>"; + } + } + $tooltip_content .= "</ul>"; + ?> + <?php endif; ?> + <span <?=(isset($tooltip_content) ? 'data-toggle="tooltip" data-html="true" title="' . $tooltip_content . '"' : "")?>> + <a href="<?=$this->record($this->driver)->getLink('rvk', $item['rvk'])?>"> + <?=$item['rvk']?> + </a> + </span> + <?php if(isset($item['name'])): ?> + <span><?=$item['name']?></span> + <?php endif; ?> + <?php $i++; ?> +<?php endforeach; ?> +<!-- finc: RecordDriver - DefaultRecord - data-rvkNotation - END --> \ No newline at end of file -- GitLab