diff --git a/languages/de.ini b/languages/de.ini index 9df0d1593686e8b4bfe573985a7c96dffefbe310..6d7119ac9568b3e5a97345dca0d0b2803aeba228 100644 --- a/languages/de.ini +++ b/languages/de.ini @@ -594,6 +594,7 @@ Provider = "Provider" Public = "Öffentlich" Publication = Verlag Publication Frequency = "Erscheinungshäufigkeit" +Publication_Place = "Erscheinungsort" Published = Veröffentlicht Published in = "Veröffentlicht in" Publisher = Verlag diff --git a/languages/en.ini b/languages/en.ini index 3ba7cbf4d6c0baeb60a8c97df64d69efebcb8938..5a5c8eee53e36847bbf57eefc15d561fd6ab4b70 100644 --- a/languages/en.ini +++ b/languages/en.ini @@ -668,6 +668,7 @@ Provider = Provider Public = Public Publication = Publication Publication Frequency = "Publication Frequency" +Publication_Place = "Place of Publication" Publication Information = "Publication Information" Publication Type = "Publication Type" Published = Published diff --git a/languages/fr.ini b/languages/fr.ini index 878da4bce57697d78b633c006f87b6f4cef2df55..c0c5fe405cc3b766454a4e7dc1aabe45cb4d7dad 100644 --- a/languages/fr.ini +++ b/languages/fr.ini @@ -590,7 +590,8 @@ profile_update = "Votre profil a été mis à jour comme souhaité" Provider = Fournisseur Public = Publique Publication = Publication -Publication Frequency = "Fréquence de publication" +Publication Frequency = "Fréquence de publication" +Publication_Place = "Lieu de publication" Published = Publié Published in = "Publié dans" Publisher = Éditeur diff --git a/languages/it.ini b/languages/it.ini index fb344f2203126bcb760d17ef2870380fa1b1e154..94485c1d6c00f30a62b634380aa307c69dae74d8 100644 --- a/languages/it.ini +++ b/languages/it.ini @@ -591,6 +591,7 @@ Provider = Provider Public = Pubblico Publication = Pubblicazione Publication Frequency = "Frequenza della pubblicazione" +Publication_Place = "Luogo di pubblicazione" Published = Pubblicazione Published in = "Pubblicato in" Publisher = Editore diff --git a/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php b/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php index b31d4283706e01ebb9f4d89cef04ed86b3ef1430..d426f144b56453cca0cc733dcbee2976eb0d5964 100644 --- a/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php +++ b/module/VuFind/src/VuFind/RecordDriver/SolrDefault.php @@ -1188,6 +1188,17 @@ class SolrDefault extends AbstractBase ? $this->fields['contents'] : array(); } + /** + * Get hierarchical place names + * + * @return array + */ + public function getHierarchicalPlaceNames() + { + // Not currently stored in the Solr index + return array(); + } + /** * Return an array of associative URL arrays with one or more of the following * keys: diff --git a/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php b/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php index 79457125d18ff9788d724037496033146ffcde99..4d8b18c7f4332b249d5d7c1a5163ed103a57203a 100644 --- a/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php +++ b/module/VuFind/src/VuFind/RecordDriver/SolrMarc.php @@ -653,6 +653,32 @@ class SolrMarc extends SolrDefault return $toc; } + /** + * Get hierarchical place names (MARC field 752) + * + * returns an array of formatted hierarchical place names, consisting of all + * alpha-subfields, concatenated for display + * + * @return array + */ + public function getHierarchicalPlaceNames() + { + $placeNames = array(); + if ($fields = $this->marcRecord->getFields('752')) { + foreach ($fields as $field) { + $subfields = $field->getSubfields(); + $current = array(); + foreach ($subfields as $subfield) { + if (!is_numeric($subfield->getCode())) { + $current[] = $subfield->getData(); + } + } + $placeNames[] = implode(' -- ', $current); + } + } + return $placeNames; + } + /** * Return an array of associative URL arrays with one or more of the following * keys: diff --git a/themes/blueprint/templates/RecordTab/description.phtml b/themes/blueprint/templates/RecordTab/description.phtml index 0f968597e70732f57cd36ee370d99f1134c34bfb..c665704ce8990f718b77e9d205dbd4263186f80e 100644 --- a/themes/blueprint/templates/RecordTab/description.phtml +++ b/themes/blueprint/templates/RecordTab/description.phtml @@ -203,6 +203,18 @@ </tr> <? endif; ?> + <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?> + <? $contentDisplayed = true; ?> + <tr valign="top"> + <th><?=$this->transEsc('Publication_Place')?>: </th> + <td> + <? foreach ($publicationPlaces as $field): ?> + <?=$this->escapeHtml($field)?><br/> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? $authorNotes = empty($isbn) ? array() : $this->authorNotes($isbn); if (!empty($authorNotes)): ?> <? $contentDisplayed = true; ?> <tr valign="top"> diff --git a/themes/bootstrap/templates/RecordTab/description.phtml b/themes/bootstrap/templates/RecordTab/description.phtml index 6f5532be3b6eb60923832451e8b910d03021132f..14efbab9151a08d7e612ee26e08ec369f1397591 100644 --- a/themes/bootstrap/templates/RecordTab/description.phtml +++ b/themes/bootstrap/templates/RecordTab/description.phtml @@ -203,6 +203,18 @@ </tr> <? endif; ?> + <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?> + <? $contentDisplayed = true; ?> + <tr valign="top"> + <th><?=$this->transEsc('Publication_Place')?>: </th> + <td> + <? foreach ($publicationPlaces as $field): ?> + <?=$this->escapeHtml($field)?><br/> + <? endforeach; ?> + </td> + </tr> + <? endif; ?> + <? $authorNotes = empty($isbn) ? array() : $this->authorNotes($isbn); if (!empty($authorNotes)): ?> <? $contentDisplayed = true; ?> <tr valign="top"> diff --git a/themes/jquerymobile/templates/RecordTab/description.phtml b/themes/jquerymobile/templates/RecordTab/description.phtml index 6b33128ee56faa5e022262f983927000e273a433..dce6e5909d92890e4d4bad49e284cde22aa0e882 100644 --- a/themes/jquerymobile/templates/RecordTab/description.phtml +++ b/themes/jquerymobile/templates/RecordTab/description.phtml @@ -171,6 +171,16 @@ </dd> <? endif; ?> + <? $publicationPlaces = $this->driver->getHierarchicalPlaceNames(); if (!empty($publicationPlaces)): ?> + <? $contentDisplayed = true; ?> + <dt><?=$this->transEsc('Publication_Place')?>: </dt> + <dd> + <? foreach ($publicationPlaces as $field): ?> + <p><?=$this->escapeHtml($field)?></p> + <? endforeach; ?> + </dd> + <? endif; ?> + <? if (!isset($contentDisplayed) || !$contentDisplayed): // Avoid errors if there were no rows above ?> <dd><p><?=$this->transEsc('no_description')?></p></dd> <? endif; ?>