Goobi viewer (Deutsch)
DokumentationenGoobi viewer Digests
  • Goobi viewer Handbuch
  • Dokumentationsübersicht
  • Was ist der Goobi viewer?
  • Konfiguration
    • 1. Goobi viewer Core
      • 1.1 Lokale Einstellungen
      • 1.2 Übersetzungen
      • 1.3 Ordnerkonfiguration
      • 1.4 URL Konfiguration
      • 1.5 Konten
        • 1.5.1 Authentifizierungs-Provider
        • 1.5.2 Emailversand
        • 1.5.3 Weitere Einstellungen
      • 1.6 Performanz
      • 1.7 Zugriffsbeschränkungen und Bilder
      • 1.8 Captcha
      • 1.9 PDF Download
        • 1.9.1 Varianten
        • 1.9.2 Download Links
        • 1.9.3 vorgeschaltete PDF Titelseite
      • 1.10 ePub Download
      • 1.11 Bild Optionen
        • 1.11.1 Erweitertes Blättern in der Bildanzeige
        • 1.11.2 Navigation zwischen Strukturtypen
        • 1.11.3 Konfiguration der Bildanzeige
        • 1.11.4 Erhalt des Zooms und der Rotation beim Blättern in der Bildanzeige
        • 1.11.5 Externe Bilder
        • 1.11.6 Einschränkung der Bild Skalierung
        • 1.11.7 Thumbnail Einstellungen
        • 1.11.8 Image Footer
      • 1.12 individuelle Seitentypen
      • 1.13 Öffnen bestimmter Dokumententypen in alternativen Seitenansichten
      • 1.14 Volltexthinweise
      • 1.15. Spracheinstellungen
      • 1.16 Theme
        • 1.16.1 externe Themes
      • 1.17 Suche
        • 1.17.1 Sortierung
        • 1.17.2 Facettierung
        • 1.17.3 Erweiterte Suche
        • 1.17.4 Zeitleiste
        • 1.17.5 Kalender
        • 1.17.6 Suche Speichern
        • 1.17.7 Expand Query für Such-Untertreffer
        • 1.17.8 aggregierte Suchtrefferanzeige
        • 1.17.9 Versionierung von Werken
        • 1.17.10 Export von Suchtreffern
        • 1.17.11 Suchtreffer Metadaten
      • 1.18 Sammlungen
        • 1.18.1 Untersammlungen
        • 1.18.2 Sortierung der Werke
        • 1.18.3 Sortierung der Sammlungen
        • 1.18.4 Blacklist
        • 1.18.5 Sammlungsgröße
        • 1.18.6 Weitere Einstellungen
        • 1.18.7 Strukturelement-Whitelist
      • 1.19 Metadaten
        • 1.19.1 Haupt-Metadaten
        • 1.19.2 Sidebar-Metadaten
        • 1.19.3 Suchtreffer-Metadaten
        • 1.19.4 Archiv-Metadaten
        • 1.19.5 Bild Metadaten
        • 1.19.6 Normdatenanzeige
        • 1.19.7 Kalender Strukturelemente
        • 1.19.8 Stöbern
        • 1.19.9 mehrsprachige Metadaten
        • 1.19.10 Lizenzen
      • 1.20 Inhaltsverzeichnisse
        • 1.20.1 Haupt Inhaltsverzeichnis
        • 1.20.2 Sidebar Inhaltsverzeichnis
        • 1.20.3 Herunterladen von Inhaltsverzeichnissen als PDF
      • 1.21 Tag Clouds
      • 1.22 Resolver
      • 1.23 Sidebar
      • 1.24 Navigation und Anzeige
      • 1.25 RSS Feed
      • 1.26 Merklisten
      • 1.27 Kommentare
      • 1.28 CMS
      • 1.29 Transkribus
      • 1.30 Originalinhalte
      • 1.31 Piwik/Matomo
      • 1.32 Sitelinks
      • 1.33 API
        • 1.33.2 IIIF
        • 1.33.3 Authentifizierung
        • 1.33.4 CORS
      • 1.34 OpenSearch
      • 1.35 Embedding
      • 1.36 Karten
      • 1.37 Übersetzungen
      • 1.38 Archiv
      • 1.39 Kampagnen
      • 1.40 Inhalte beitragen
      • 1.41 Nutzungszahlen
      • 1.42 Config Editor
      • 1.43 Proxy
      • 1.44 ActiveMQ
      • 1.45 Entwickler
      • 1.46 Externe Ressourcen
    • 2. Goobi viewer Indexer
      • 2.1 Hauptkonfiguration
      • 2.2 Verzeichnisse
      • 2.3 Proxy
      • 2.4 Performance
      • 2.5 Strukturtypen
      • 2.6 Metadaten
      • 2.7 Starten und Beenden
      • 2.8 Indexieren von Werken
      • 2.9 Aktualisierung einzelner Seitendokumente
      • 2.10 Löschen von Werken
      • 2.11 Solr Schema
      • 2.12 Weitere Einstellungen
    • 3. Goobi viewer Connector
      • 3.1 OAI-Schnittstelle
        • 3.1.1 Hauptkonfiguration
        • 3.1.2 Dublin Core
        • 3.1.3 Europeana
        • 3.1.4 METS
        • 3.1.5 LIDO
        • 3.1.6 MARCXML
        • 3.1.7 Xepicur
        • 3.1.8 Goobi viewer Übersichtsseiten
        • 3.1.9 Goobi viewer Crowdsourcing
        • 3.1.10 TEI
        • 3.1.11 CMDI
        • 3.1.12 Sets
      • 3.2 SRU Schnittstelle
  • Oberfläche
    • 1. Frontend
    • 2. Backend
      • 2.1 Dashboard
      • 2.2 Administration
        • 2.2.1 Benutzer
        • 2.2.2 Gruppen
        • 2.2.3 IP-Bereiche
        • 2.2.4 Zugriffslizenzen
        • 2.2.5 Rechte
        • 2.2.6 Kommentare
        • 2.2.7 Nutzungsbedingungen
        • 2.2.8 Neuer Datensatz
      • 2.3 Crowdsourcing
        • 2.3.1 Kampagnen
        • 2.3.2 Annotationen
      • 2.4 CMS
        • 2.4.1 Seiten
        • 2.4.2 Kategorien
        • 2.4.3 Statische Seiten
        • 2.4.4 Medien
        • 2.4.5 Menüs
        • 2.4.6 Sammlungen
        • 2.4.7 Karten
  • Verschiedenes
    • 1. Anwendungsszenarien
      • 1.1 Serien und Konvolute
      • 1.2 Zugriffsbeschränkungen
      • 1.3 Subthemes
      • 1.4 Normdaten
      • 1.5 Mehrsprachigkeit
      • 1.6 Karten
      • 1.7 Untersammlungen
      • 1.8 Mehrere Goobi viewer
      • 1.9 Crowdsourcing Modul
      • 1.10 Archivalien
      • 1.11 Solr Queries
      • 1.12 Verlinkung aus METS Dateigruppen
      • 1.13 Inhalte beitragen
      • 1.14 Shibboleth
      • 1.15 zugriffsbeschränkte Metadaten
    • 2. FAQ
    • 3. Glossar
  • Devs & Ops
    • 1. Core Changelog
      • 2025
      • 2024
      • 2023
      • 2022
      • 2021
      • 2020
      • 2019
      • 2018
    • 2. Theme Changelog
      • 2025
      • 2024
      • 2023
      • 2022
      • 2021
      • 2020
      • 2019
      • 2018
    • 3. Installationsanleitung
      • 3.1 Klassisch
      • 3.2 Docker
    • 4. Entwicklungsumgebung
      • 4.1 Eclipse Einstellungen
      • 4.2 Troubleshooting
    • 5. API
    • 6. Erklärt!
      • 6.1 CMS-Templates
        • 6.1.1 Dateistruktur
        • 6.1.2 Inhalte der Dateien
        • 6.1.3 Inhaltstypen
      • 6.2 Überschreiben von Standard XHTML Seiten mit eigenen, angepassten Seiten
      • 6.3 Theme Umstellung zu Maven
      • 6.4. Release erstellen
      • 6.5 Theme Anpassungen
      • 6.6 Updates von Abhängigkeiten
        • 6.6.1 Java
        • 6.6.2 CSS und Javascript
          • 6.6.2.1 Tests
Powered by GitBook
On this page
  1. Devs & Ops
  2. 6. Erklärt!

6.2 Überschreiben von Standard XHTML Seiten mit eigenen, angepassten Seiten

Previous6.1.3 InhaltstypenNext6.3 Theme Umstellung zu Maven

Last updated 4 years ago

Der Goobi viewer bietet die Möglichkeit, standardmäßig enthaltene XHTML Seiten für die Anzeige von Werken durch angepasste Kopien zu überschreiben, um etwa gestalterische Anpassungen vorzunehmen, zusätzliche Seitenkomponenten einzufügen oder nicht benötigte Seitenkomponenten zu entfernen.

Hierfür werden einzelne Mappings der URLs angepasst. Diese befinden sich in /WEB-INF/pretty-standard-config.xml.

Beispiel:

<pretty-config>
    <url-mapping id="image2">
        <pattern value="/image/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/" />
        <view-id value="/viewImage.xhtml" />
        <action onPostback="false">#{activeDocumentBean.open}</action>
    </url-mapping>
    <url-mapping id="image3">
        <pattern value="/image/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/#{logId:activeDocumentBean.logid}/" />
        <view-id value="/viewImage.xhtml" />
        <action onPostback="false">#{activeDocumentBean.open}</action>
    </url-mapping>
    <url-mapping id="image4">
        <pattern value="/image/#{action:activeDocumentBean.action}/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/#{logId:activeDocumentBean.logid}/" />
        <view-id value="/viewImage.xhtml" />
        <action onPostback="false">#{activeDocumentBean.open}</action>
    </url-mapping>
    [...]
</pretty-config>

Jedes <url-mapping> Element steht für ein bestimmtes URL Muster, zum Beispiel steht das unterste Element mit der ID "image4" für eine URL mit vier Parametern nach der Basis URL, nach dem Muster:

https://viewer.example.org/viewer/image/param1/param2/param3/param4/

Für das Überschreiben des Mappings ist nur das Unterlement <view-id> relevant. Hier im Attribut value wird definiert, welche XHTML Seite für diese URL aufgerufen wird. Dabei ist dieser Pfad relativ zum Root Pfad der Webapplication im Apache Tomcat (typischerweise /var/lib/tomcat9/webapps/viewer/). Im obigen Beispiel verweisen alle URL Definitionen auf die Datei /viewImage.xhtml (Vollständiger Pfad: /var/lib/tomcat9/webapps/viewer/viewImage.xhtml). Soll eine bestimmte XHTML Seite überschreiben werden, müssen alle <url-mapping> Elemente, die auf diese Seite verweisen, überschrieben werden (im obigen Beispiel also image2, image3 und image4).

Der Wert dieses Attributs kann nun auf eine beliebige andere Seite verweisen (zum Beispiel typischerweise /resources/themes/<IhrTheme>/urlMappings/viewImage.xhtml (relativ zum Root Pfad der Webapplikation). Allerdings sollte diese Mapping Änderung nicht in der Datei /WEB-INF/pretty-standard-config.xml gemacht werden, da diese bei jedem Update des Goobi viewers mit der Standardversion überschrieben wird. Vielmehr wird hierfür eine zweite PrettyFaces Konfigurationsdatei in Ihrem Theme Ordner erstellt, die die Definitionen in der Standarddatei überschreibt. Diese befindet sich typischerweise unter /resources/themes/<IhrTheme>/teme-url-mappings.xml. Wenn Ihr Theme vorher keine Seitenüberschreibungen enthalten hat, existiert diese Datei noch nicht und muss erstellt werden.

In dieser Datei werden identische <url-mapping> Elemente angelegt:

<url-mapping id="image2">
    <pattern value="/image/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/" />
    <view-id value="/resources/themes/<IhrTheme>/urlMappings/viewImage.xhtml" />
    <action onPostback="false">#{activeDocumentBean.open}</action>
</url-mapping>

<url-mapping id="image3">
    <pattern value="/image/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/#{logId:activeDocumentBean.logid}/" />
    <view-id value="/resources/themes/<IhrTheme>/urlMappings/viewImage.xhtml" />
    <action onPostback="false">#{activeDocumentBean.open}</action>
</url-mapping>

<url-mapping id="image4">
    <pattern value="/image/#{action:activeDocumentBean.action}/#{pi:activeDocumentBean.persistentIdentifier}/#{imageToShow:activeDocumentBean.imageToShow}/#{logId:activeDocumentBean.logid}/" />
    <view-id value="/resources/themes/<IhrTheme>/urlMappings/viewImage.xhtml" />
    <action onPostback="false">#{activeDocumentBean.open}</action>
</url-mapping>

Zu beachten ist, dass sich die Werte von /view-id/@value unterscheiden:

/resources/themes/<IhrTheme>/urlMappings/viewImage.xhtml

<IhrTheme> wird dabei durch den Ordnernamen Ihres Themes ersetzt, der sich an dieser Stelle unter /themes befindet. Der Unterordner urlMappings existiert vermutlich noch nicht und muss erstellt werden. Anschließend kann man zunächst die Standard Version der Datei viewImage.xhtml aus dem Root Pfad der Webapplikation dorthin kopieren und in dieser Kopie eigene Anpassungen vornehmen.

Die neue Datei muss an erster Stelle stehen, damit die dortigen Definitionen priorisiert werden.

Anschließend muss der Apache Tomcat neu gestartet werden, damit die neuen Mappings greifen.

Diese Einträge in der PrettyFaces Konfiguration müssen Sie für jede XHTML Seite durchführen, die Sie individuell anpassen möchten (etwa Seiten für Volltexte, Metadaten Inhaltsverzeichnis, Suche, etc.). Außerdem können zusätzliche, komplett individuell erstellte Seiten mit neuen Pretty URLs definiert werden, zum Beispiel

<url-mapping>
 <pattern value="/tour/" />
 <view-id value="/resources/themes/<IhrTheme>/tour/tour.xhtml" />
</url-mapping>
PrettyFaces