1.3 Subthemes
In diesem Abschnitt zeigen Ihnen, wie im Goobi viewer Subthemes verwendet werden können.
Goobi workflow
Im Regelsatz muss ein neues Metadatum ViewerSubTheme
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>ViewerSubTheme</Name>
<language name="de">Alternative Darstellung</language>
<language name="en">Alternative view</language>
</MetadataType>
<!-- [...] -->
<metadata num="1o" DefaultDisplay="true">ViewerSubTheme</metadata>
<!-- [...] -->
<NamespaceDefinition>
<URI>https://intranda.com/MODS/</URI>
<prefix>intranda</prefix>
</NamespaceDefinition>
<!-- [...] -->
<Metadata>
<InternalName>ViewerSubTheme</InternalName>
<WriteXPath>./mods:mods/mods:extension/#intranda:viewersubtheme</WriteXPath>
</Metadata>
In der Konfigurationsdatei goobi_metadataDisplayRules.xml
wird ein DropDown Menü mit den gewünschten Subtheme-Namen vergeben::
<context projectName="*">
<select1 ref="ViewerSubTheme">
<item selected="true">
<label>Keine</label>
<value />
</item>
<item selected="false">
<label>Mein Subtheme</label>
<value>my-subtheme</value>
</item>
</select1>
</context>
Goobi viewer Indexer
Das Metadatum viewerSubTheme
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_VIEWERSUBTHEME>
<list>
<item>
<xpath>mets:xmlData/mods:mods/mods:extension/intranda:viewersubtheme</xpath>
<addToDefault>false</addToDefault>
<addUntokenizedVersion>false</addUntokenizedVersion>
</item>
</list>
</MD2_VIEWERSUBTHEME>
</fields>
Goobi viewer Core
Im Goobi viewer Core muss folgende Anpassung für die korrekte Auswertung vorgenommen werden:
<viewer>
<theme mainTheme="reference"
discriminatorField="MD2_VIEWERSUBTHEME" />
</viewer>
Template
In der Datei template.html
wird nun nach dem custom.css folgender Block hinzugefügt:
<!-- SUBTHEME CSS -->
<h:panelGroup rendered="#{navigationHelper.subThemeDiscriminatorValue != null and navigationHelper.subThemeDiscriminatorValue != '-'}">
<link type="text/css" rel="stylesheet" href="#{request.contextPath}/resources/themes/#{navigationHelper.theme}/css/dist/#{navigationHelper.subThemeDiscriminatorValue}.min.css" />
</h:panelGroup>
Für jedes Subtheme gibt es eine eigene CSS-Datei, dass eigene CSS-Definitionen für dieses Theme enthält. Über die Reihenfolge des Einbindens in der Datei template.html
kann in dieser subthemespezifischen Datei jeder Wert der globalen Datei viewer.css
oder themespezifischen Datei custom.min.css
mit subthemeeigenen Werten überschrieben werden.
Last updated