knuspermagier.de

Der privateste Blog von Philipp.

Kirby Calendar View

Letztens wünschte ich mir in einem Kirby-Blog die Möglichkeit, die Posts in einer Kalenderansicht darzustellen. Leider fand ich nichts passendes, also baute ich es schnell selbst. Mehr oder weniger.

screenshot-2020-09-22-at-08.38.13.png

Es zeigt immer den aktuellen Monat, man kann hin und her blättern und direkt aus der Ansicht auch neue Posts erstellen, an dem entsprechenden Datum. Ein paar Dinge kann man auch konfigurieren, allerdings noch nicht wie das Datumsfeld heißt, aktuell ist das auf date hard-gecodet. Aber das könnte man noch ändern.

Das Gute

Ich bin mal überrascht, wie einfach und fluffig man neue Panel-Plugins bauen kann. Liegt zum Teil auch an Vue, aber auch an der generellen Architektur und den bereitgestellten Komponenten und dem Rahmen.

Schwierigkeiten

Mit der Kirby-API hatte ich mal wieder ein paar Probleme. Ich brauchte einen Endpunkt, der mit alle Pages zurückliefert, die zwischen zwei Daten liegen. Also listed, unlisted und draft. Tja, geht nicht. Also zumindest fand ich nichts.

Ich baute mir den Endpunkt also eben selbst. Die Tatsache, dass das relativ einfach war, wäre natürlich wiederum ein Punkt für die positive Seite, ich würde mir aber trotzdem wünschen, dass sowas per API möglich ist. Ich verstehe noch nicht ganz, warum listed und unlisted irgendwie komplett anders gehandled werden, als draft.

Eine weitere Sache, die ich nicht so toll fand, der ich aber auch durch das selbst-implementieren des Endpunkts wieder aus dem Weg ging, ist die Dokumentation der API. Ich brauchte mal wieder ewig und einen tiefen Sturz in den Kirby-Source um herauszufinden, wie man filterBy benutzt. So nämlich:

 api.post('site/search?select=id,content,slug', {
                filterBy: [
                    {field: 'foo', operator: '>', value: 5},
                    {field: 'bar', operator: '!=', value: 'wurst'}
                ]
})

Ich weiß nun nicht, ob ich zu dumm bin, die Dokumentation zu lesen, oder ob es da einfach wirklich nicht steht. Steht auf jeden Fall auf meiner Liste, der Dinge, für die man mal einen Pull Request schicken könnte, bin mir allerdings auch nicht sicher wo man es hinschreiben sollte.

Fazit

Egal, es funktioniert jetzt erstmal (für mich). Falls es noch jemand benutzt, freue ich mich natürlich, aber die erste Version ist jetzt weder besonders gut getestet und wahrscheinlich braucht man für den Real-World-Einsatz noch ein paar Konfigurationsoptionen. Sagt Bescheid!

Kommentare, Feedback und andere Anmerkungen? Schreib mir eine E-Mail 🤓