Skip to content
Mario Trojan edited this page Jun 6, 2019 · 5 revisions

Hierarchie

bootstrap3
|
tuefind------------------
|            |          |
ixtheo    krimdok    tuefind2
|                   /        \
relbib           ixtheo2   krimdok2
                    |
                 relbib2

Aber ixtheo2 und relbib2 haben momentan noch zusätzlich einige symlinks zu ixtheo und relbib, da ja das alte ixtheo-Template immer noch live ist.

Die Hierarchie wird nicht nur über die "extends"-Direktive in der theme.config.php gesteuert, sondern auch über die "@import"-Direktive in der zugehörigen compiled.less.

Statische Seiten (z.B. A-Z oder Hilfstexte)

Alleinstehende statische Seiten sind unter /templates/content/ abgelegt. Bei krimdok2 gibt es z.B. manche Seiten nur in einer Sprache (Beispiel "news.phtml"). Da in krimdok2 nur Deutsch und Englisch verfügbar sind, sind die Templates auch direkt z.B. "faq_de.phtml" und "faq_en.phtml" benannt.

Bei RelBib jedoch kam die Sprache Französisch hinzu. Da momentan noch keine französischen Übersetzungen der statischen Seiten vorhanden sind, soll die Englische Seite angezeigt werden. Dies wird erreicht, indem das englische Template z.B. als "browse.phtml" angelegt wird und das Deutsche als "browse_de.phtml".

Dynamische Seitenteile

Diese befinden sich unter /templates/static/, da sie sich so besser einbinden lassen.

Das heißt aber auch, dass bei fehlenden Templates in einer Sprache Symlinks auf das Template der anderen Sprache angelegt wurden. Bei RelBib ist z.B. der komplette Ordner "fr" ein Symlink auf "en". (Vielleicht lässt sich das noch weiter vereinfachen).

Startseite (Home)

Die Startseite wurde über einen eigenen ContentBlock realisiert (neu seit VuFind 5.0, siehe TueFind-Modul). Die "Home.phtml" enthält das Haupttemplate und bindet die verschiedenen Panels ein. Pro Panel gibt es eine eigene Datei im Unterverzeichnis "partials". Die Startseite ließ sich leider nicht über die normalen "content" Seiten realisieren, da diese immer ein Container-Element einfügen, was das Layout der Panels auf der Home-Seite sowie den Hintergrund zerstören würde.

Panels enthalten in der Regel Links auf Statische Seiten, die wie folgt generiert werden:

<?=$this->url('content-page', ['page' => $page_id]) ?>

Manche Unterseiten enthalten jedoch weitere Panels. Diese sind ebenfalls unter static abgelegt. Hierfür wird ein anderer Link verwendet:

'/?subpage=' . $page_id

Dies ist notwendig, damit die Unterpanels ebenfalls über den Home ContentBlock Mechanismus dargestellt werden.

Modularisierung

Verschiedene Templates wurden im Vergleich zu bootstrap3 weiter modularisiert (insbesondere in tuefind2), z.B. die Searchbox. Hier wurden die "pills", also die Buttons unterhalb des Suchfeldes modularisiert, damit nur diese Buttons überschrieben werden können. Mit dem Searchbox "extensions" Template wurden z.B. die RelBib News (Aktuelles in eigener Sache) umgesetzt.