1.8 Mehrere Goobi viewer
Allgemein
Wenn zwei oder mehr Goobi viewer Instanzen aus einem Goobi workflow beliefert werden sollen, sind verschiedene Voraussetzungen zu erfüllen. An dieser Stelle ist die Konfiguration von gängigen Fragen für Goobi workflow und Goobi viewer beschrieben.
Erfassen und Auswerten der Instanz
Goobi workflow
In Goobi workflow muss erfasst werden in welcher Instanz das Werk angezeigt werden soll. Dafür muss im Regelsatz ein neues Metadatum ViewerInstance
hinzugefügt werden. Dieses wird dann bei DocStructs
, die das Metadatum CatalogIDDigital
als Pflichtmetadatum konfiguriert hatten, ebenfalls hinzugefügt.
Die relevanten Teile aus dem Regelsatz sind:
<MetadataType>
<Name>ViewerInstance</Name>
<language name="de">Anzeige in</language>
<language name="en">Show in</language>
</MetadataType>
<!-- [...] -->
<metadata num="1o" DefaultDisplay="true">ViewerInstance</metadata>
<!-- [...] -->
<NamespaceDefinition>
<URI>https://intranda.com/MODS/</URI>
<prefix>intranda</prefix>
</NamespaceDefinition>
<!-- [...] -->
<Metadata>
<InternalName>ViewerInstance</InternalName>
<WriteXPath>./mods:mods/mods:extension/#intranda:viewerinstance</WriteXPath>
</Metadata>
In der Konfigurationsdatei goobi_metadataDisplayRules.xml
wird ein DropDown Menü mit den gewünschten Goobi viewer Instanzen vergeben:
<context projectName="*">
<select1 ref="ViewerInstance">
<item selected="true">
<label>Viewer 1</label>
<value>viewer1</value>
</item>
<item selected="false">
<label>Viewer 2</label>
<value>viewer2</value>
</item>
<item selected="false">
<label>Viewer 3</label>
<value>viewer3</value>
</item>
<item selected="false">
<label>Viewer 1 and Viewer 2</label>
<value>viewer1_and_viewer2</value>
</item>
<item selected="false">
<label>Viewer 1 and Viewer 3</label>
<value>viewer1_and_viewer3</value>
</item>
<item selected="false">
<label>Viewer 2 and Viewer 3</label>
<value>viewer2_and_viewer3</value>
</item>
<item selected="false">
<label>All instances</label>
<value>all</value>
</item>
</select1>
</context>
Goobi viewer Indexer
Das Metadatum ViewerInstance
wird innerhalb des Solr Index in ein eigenständiges Feld geschrieben. Dafür muss in der Konfigurationsdatei config_indexer.xml
folgende Felddefinition hinzugefügt werden:
<init>
<namespaces>
<list>
<intranda>https://intranda.com/MODS/</intranda>
</list>
</namespaces>
<init>
<!-- [...] -->
<fields>
<MD2_VIEWERINSTANCE>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:extension/intranda:viewerinstance</xpath>
<addToDefault>false</addToDefault>
<addUntokenizedVersion>false</addUntokenizedVersion>
<addToChildren>true</addToChildren>
<addToPages>true</addToPages>
</item>
</list>
</MD2_VIEWERINSTANCE>
</fields>
Mit addToChildren=true
und addToPages=true
wird sichergestellt, dass nach Metadaten in Unterelementen und Seiten weiterhin gesucht werden kann, wenn die Instanz-Einschränkung gesetzt ist.
Goobi viewer Core
Pro Goobi viewer Instanz muss nun ein staticQuerySuffix definiert werden, der angibt welche Bedingung erfüllt sein muss damit Werke angezeigt werden:
<search>
<staticQuerySuffix>+(MD2_VIEWERINSTANCE:viewer1 MD2_VIEWERINSTANCE:viewer1_and_viewer2 MD2_VIEWERINSTANCE:viewer1_and_viewer3 MD2_VIEWERINSTANCE:all)</staticQuerySuffix>
</search>
Das +
steht für ein "UND". Die Klammern fassen alles darin stehende zusammen. Wenn innerhalb einer Query Bedingungen nicht explizit miteinander verknüpft sind, dann entspricht das automatisch einem "ODER".
Erfassen und Anzeigen individueller Sammlungen
Goobi workflow
Um pro Goobi viewer Instanz eigene Sammlungen zu erfassen müssen diese als Metadatum eingepflegt werden. Dafür wird im Regelsatz pro Instanz ein neues Metadatum hinzugefügt.
Die relevanten Teile für einen weiteren Sammlungsbaum aus dem Regelsatz sind:
<MetadataType>
<Name>Viewer2Collection</Name>
<language name="de">Viewer 2 Kollektion</language>
<language name="en">Viewer 2 collection</language>
</MetadataType>
<!-- [...] -->
<metadata num="*">Viewer2Collection</metadata>
<!-- [...] -->
<Metadata>
<InternalName>Viewer2Collection</InternalName>
<WriteXPath>./mods:mods/#mods:classification[@authority='z']</WriteXPath>
</Metadata>
Bei Bedarf kann in der goobi_metadataDisplayRules.xml
ein DropDown Menü mit vorgegebenen Sammlungsnamen und Werten definiert werden.
Goobi viewer Indexer
Zuerst müssen die exportierten Sammlungen innerhalb des Solr Index in ein eigenständiges Feld geschrieben werden. Dafür muss in der Konfigurationsdatei config_indexer.xml
folgende Felddefinition hinzugefügt werden:
<fields>
<MD2_DC_VIEWER2>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:classification[@authority='z']</xpath>
<getparents>all</getparents>
<onetoken>true</onetoken>
<onefield>false</onefield>
<urlEncoding>false</urlEncoding>
<addToDefault>false</addToDefault>
<splittingCharacter>#</splittingCharacter>
<addUntokenizedVersion>false</addUntokenizedVersion>
<lowercase>true</lowercase>
<addToChildren>true</addToChildren>
<addToPages>true</addToPages>
</item>
</list>
</MD2_DC_VIEWER2>
</fields>
Goobi viewer Core
Dieses Feld muss nun anstelle des sonst üblichen Feldes DC
in der lokalen config_viewer.xml
konfiguriert werden. Zum Beispiel:
<!-- Show MD2_DC_VIEWER2 instead of DC as collection field at the metadata page -->
<metadata>
<mainMetadataList>
<template name="_DEFAULT">
<metadata label="MD2_DC_VIEWER2" value="">
<param type="translatedfield" key="MD2_DC_VIEWER2_UNTOKENIZED" />
</metadata>
</template>
</mainMetadataList>
</metadata>
<!-- Use MD2_DC_VIEWER2 instead of DC for facetting and in advanced search -->
<search>
<drillDown>
<field initialElementNumber="3">YEAR</field>
<hierarchicalField initialElementNumber="3">MD2_DC_VIEWER2</hierarchicalField>
<field initialElementNumber="3">DOCSTRCT_TOP</field>
<field initialElementNumber="3">DOCSTRCT_SUB</field>
<field initialElementNumber="3" sortOrder="alphabetical_asc">MD_PLACEPUBLISH</field>
</drillDown>
<advanced>
<searchFields>
<field>DEFAULT</field>
<field>FULLTEXT</field>
<field>CMS_TEXT_ALL</field>
<field>PI_TOPSTRUCT</field>
<field hierarchical="true">MD2_DC_VIEWER2</field>
<field>DOCSTRCT_TOP</field>
<field>DOCSTRCT_SUB</field>
<field>MD_TITLE</field>
<field>MD_CREATOR</field>
<field>MD_PUBLISHER</field>
<field>MD_PLACEPUBLISH</field>
<field>MD_YEARPUBLISH</field>
<field untokenizeForPhraseSearch="true">MD_SHELFMARK</field>
</searchFields>
</advanced>
</search>
<!-- Additional configuration such as for the breadcrumbs for MD_DC_VIEWER2 -->
<collections>
<collection field="MD2_DC_VIEWER2">
<addHierarchyToBreadcrumbs>true</addHierarchyToBreadcrumbs>
</collection>
<redirectToWork>false</redirectToWork>
</collections>
Außerdem muss der Feldname natürlich in den messages Dateien entsprechend übersetzt werden. Zum Beispiel:
MD2_DC_VIEWER2=Sammlung
Goobi viewer Backend
Für die Anzeige einer Sammlungsseite mit eigenem Baum muss nun im Goobi viewer Backend eine neue CMS Seite basierend auf dem Template "Sammlungsanzeige" angelegt, konfigurier, als überschriebene statische Seite sowie im Menü verlinken werden:
Last updated