Aus dem Maschinenraum

Neues Layout für die Blog-Seite und die inhaltlichen Schwerpunkte

Es gibt jetzt 6 Themenschwerpunkte, sie sind kuratiert, werden von einem eigenen Teaser eingeführt. Die Seiten zeigen die zum Thema gehörenden Artikel an.

Die neue Cronhill-Website ist jetzt seit Mai 2019 online. Damals wusste ich noch nicht, wohin die Reise geht, aber ich verspreche Euch, die Schreiberei macht mir unglaubliches Vergnügen.

Eigentlich bin ich mit dem Website-Layout immer noch sehr sehr zufrieden, es ist einfach und ziemlich schnell. Allerdings habe ich festgestellt, dass meine Lieblingsthemen eigentlich eine Aufwertung erfahren könnten. Auch hier wollte ich keinen Schnickschnack. Der Seiten-Header ist jetzt farbig und enthält ein Foto, selbstverständlich mit Quellenangabe. 

Es gibt jetzt und aktuell (Juli 2021) dieseThemenschwerpunkte im Blog:

- Bücher
- Garten
- Jenny Lind
- Star Trek
- Thomas Wolfe
- Philosophie

Wie ich die neuen Highlight-Seiten mit MODX gebaut habe, das möchte ich Euch heute so kurz wie möglich erzählen. Ob Star Trek wirklich eine Highlight-Kategorie ist, in der ich weiterschreiben werde, das dürfte auch von der nächsten Staffel Picard abhängen, auf die ich mich sehr freue.

Neues Kategorie-Template

Highlights

Ich stecke sehr viel Zeit in meine Beiträge und ich beiße mich regelrecht an einigen Themen fest. Dazu gehören Thomas Wolfe und seine literarisches Werk, dazu gehört im Moment ganz besonders die schwedische Sängerin Jenny Lind, dazu gehören die Themen, zu denen ich mehr als nur einen oder zwei Beiträge geschrieben habe. Sie verdienen es, durch das neue Design hervorgehoben zu werden.

Den Header werte ich mit einem Bild auf. Finde ich kein eigenes, versuche ich ein gemeinfreies zu finden. Selbstverständlich erhält das Bild eine Bildunterschrift mit Quellenangabe. Auf das Bild wende ich für mouseover-fähige Geräte einen CSS-Schwarzweißfilter an, das Bild wird dann nur bei Mouseover über dem Header farbig.

Dazu ergänze ich ein paar statistische Daten, die ich seit Beginn der neuen Website zu den Artikeln einpflege. Ungefähre Zahl der Wörter, die Lesezeit. Schließlich muss ich noch die gesamte Anzahl der Artikel berechnen. 

Dann schreibe ich für die Kategorienseiten noch ein zweiteiliges Intro - mit dem  bei dem auf Geräten mit kleinem Display nur die kürzere Variante angezeigt wird. Das Intro sorgt für die einführende Stimmung, so wirken die Kategorien kuratiert.

Neues Template

In MODX lässt es sich leider nicht so einfach mit Tags arbeiten wie in Wordpress, dass automatisch neue Kategorieseiten anlegt, wenn ich einem Beitrag einen Tag hinzufüge. Es gibt zwar eine Variablentyp Tagging, die Kategorieseiten muss ich aber manuell anlegen. Das finde ich überhaupt nicht so schlecht. Ich schreibe keine 10 Artikel die Woche, ich bin auch der Meinung, dass Themen nicht so klein sein sollten. Außerdem müssen die Tags dreisprachig genutzt werden, für jede Kategorieseite gibt es ein englisches und französischen Pendant.

Wenn ich den Topkategorien ein neues Template gebe, kann ich dieses mit pdoResources abfragen. Außerdem haben die Kategorieseiten auch ein neues Layout im Header erhalten. 

pdoResources? 
&parents=`109`
&depth=`1`
&limit=``
&sortby=`pagetitle`
&sortdir=`ASC`
&includeTVs=`1`
&tpl=`blogCategoryListRowTpl-hashtags`
&where=`{"template:=":19}`
Templatevariable als Filter

Möchte ich in Zukunft eine Kategorie hervorheben, muss ich nur das Template wechseln, eventuell ein wenig Text ergänzen. 3 Funktionen hat das neue Template. Es zählt die Artikel, es rechnet sowohl die Lesezeit zusammen, wie auch die Anzahl der Wörter.

Artikel zählen

Dazu gibt es einen einfachen und simplen Trick, den ich im MODX Forum gefunden habe. Dazu werden einfach zwei Inline-Templates innerhalb von pdoResources eingesetzt, wobei das eine leer ist, und nur für den letzten Durchlauf wird der Zähler eingesetzt. 

!pdoResources?
&parents=`4`
&depth=`2`
&tpl=`@INLINE `
&tplLast=`@INLINE `
&includeContent=`0`&sortby=`publishedon`
&sortdir=`DESC`
&limit=``
&tvFilters=`blog-tags==%%`
Leeres Template und Letztes Element Template

In das Feld menutitle habe ich in den Highlight-Kategorie-seiten den Tag-Wert eingetragen. Menütitel brauche ich für die Kategorieseiten nicht. Nun kann ich den Wert menutitle nutzen, um innerhalb der Variable 'blog-tags' nach dem Wert des Feldes menutitle zu filtern.

Wörter zählen

Wörter zähle ich ähnlich und nutze dann ein Snippet, um diese zu addieren. Dazu verwende ich ein kleines und einfaches Snippet, dass mir mein Freund Guido netterweise geschrieben hat. Ich bin ja entwickelnder Designer und nicht designender Entwickler, meine PHP-Kenntnisse - nu ja.

So schaut das Snippet aus:

<?php
return array_sum(explode(',', $modx->getOption('numbers', $scriptProperties, false)));
PHP-Snippet.

An den Chunk übergebe ich den Wert von *menutitle an die Variable areatopic.

((!$blogCategoryListRowTpl-((++cultureKey))-Readingtime? &areatopic=`((*menutitle))`))
Achtung. Bitte die runden durch eckige Klammern ersetzen

Und so sieht der Chunk aus, mit dem ich die Wörter zähle: 

((!summe? numbers=`
((pdoResources?
&parents=`4`
&depth=`2` limit=``
&tpl=`@INLINE ((+tv.blog-wordcount)),`
&tplLast=`@INLINE ((+tv.blog-wordcount))`
&includeTVs=`blog-wordcount`
&includeContent=`0`
&tvFilters=`blog-tags==%((+areatopic))%`
))
`))
Achtung. Bitte die runden durch eckige Klammern ersetzen

Lesezeit in Stunden bestimmen

Das funktioniert völlig analog zum obigen Beispiel. Nur, dass ich im Snippet neben der Addition auch noch die Minuten in Stunden umrechne. So schaut das Snippet aus.

<?php
return date('G:i', mktime(0, array_sum(explode(',', $modx->getOption('numbers', $scriptProperties, false)))));
PHP-Snippet analog zu oben

Der Gesamt-Aufbau on Blog-Seite und den Highlight-Kategorien ist jetzt ganz schön komplex. Insgesamt habe ich 12 neue Chunks dafür angelegt, da ich ja drei Sprachen verwende, existiert jeder Chunk in drei Sprachvarianten. 

Übersetzung

Nachdem ich zu Anfang immer Abfragen verwendet habe, um Texte wie "Stunden Lesezeit", oder "Wörter" zu übersetzen, habe ich es jetzt richtig gemacht, und die Übersetzungen als Variablen des Kontextes angelegt. Das ist die sauberste Lösung für mich, weil ich potentiell noch eine vierte Sprache anlegen könnte, und nur ein paar Variablen übersetzen muss, aber nicht Dutzende Chunks und Templates überarbeiten.

Wie gefällt Euch das neue responsive Blog-Layout und das Design der Highlight-Kategorien?

tl, dr;

Ein paar erklärende Worte und technische Einsichten in das neue Blog- und Kategoriendesign.

Kommentare (0)


Schreibe einen Kommentar




Mit dem Absenden des Kommentars stimme ich zu, dass der genannte Name, die genannte E-Mail-Adresse von cronhill.de im Zusammenhang mit dem von mir verfassten Kommentar gespeichert wird. Die E-Mail-Adresse wird nicht veröffentlicht oder an Dritte weitergegeben.