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