Kirby Learnings: Part 2

Nach der Umstellung auf Kirby, hab ich noch einiges gelernt und möchte das festhalten. Spaltenbreiten im Panel Ich hab ewig versucht zwei Toggles in einer Spalte mit 1/3-Breite nebeneinander zu setzen, weil eigentlich genug Platz wäre. Das geht aber offenbar nicht. Wenn ich die Spalte auf 1/2 setze, klappt es und die beiden Switches stehen schön nebeneinander. Das gefällt mir aber im Ganzen nicht, so dass ich die Felder nach links über das Content-Textfeld geholt hab. Collections Gut zu wissen und wohl auch irgendwie logisch, dass in der config.php noch keine Collections zur Verfügung stehen, die in /collections angelegt wurden. Sprich, man muss die Queries "ausschreiben". In der Config sieht das für das Feed-Plugin z.B. so aus: $feed = page('blog')->children()->listed()->filterBy('tags', 'Wochenrückblick', ',')->sortBy(function ($page) { return $page->published()->toDate(); }, 'desc')->limit(10)->feed($options); Die Collection "wochenrueckblicke", die sich hier nicht nutzen ließ: return function ($site) { return $site->find('blog')->children()->listed()->flip()->filterBy('tags', 'Wochenrückblick', ','); }; also eigentlich hätte ich in der Config gern Folgendes genutzt $feed = $kirby->collection("wochenrueckblicke")->sortBy(function ($page) { return $page->published()->toDate(); }, 'desc')->limit(10)->feed($options); Das ging aber nicht. Sortierung von Unterordnern Quelle num: '{{ page.published.toDate("Ymd") }}' Sorgt dafür, dass Folder nicht z.B. "4_wochenrueckblick-kw39-2023" heißen sondern "231001_wochenrueckblick-kw39-2023". Wird angepasst, sobald man über's Panel etwas an der Seite ändert und speichert, also nicht für alle bereits angelegten Seiten und deren Ordner. Heißt: Idealerweise so im Blueprint (article.yml bei mir) einstellen, bevor man unzählige Artikel anlegt. "published" ist hierbei das Veröffentlichungsdatum des Artikels, Beispiel Published: 2023-10-01 12:18:00 Caching Hat bei mir für fehlerhafte Darstellungen gesorgt, bin noch nicht sicher warum, hab ich erstmal wieder deaktiviert. Bin auch nicht sicher ob das wegen der dynamischen externen Inhalte bei mir Sinn macht (Startseite z.B. mit letzten Mastodon-Post und Bildern von Mastodon). Diese hätte ich vom Caching ausschließen können, aber eigentlich will man ja grade, dass die Startseite schnell lädt. Folgendes hatte ich in der config. cache 'cache' => [ 'pages' => [ 'active' => true, 'ignore' => function ($page) { return $page->nocache()->value() === true; } ] ], XML-Sitemap Über das Feed-Plugin. config-Part sieht so aus: [ 'pattern' => 'sitemap.xml', 'method' => 'GET', 'action' => function () { $options = [ 'images' => false, 'videos' => false, ]; $feed = site()->index()->listed()->filterBy('hidefromweb', '!=', 'true')->limit(50000)->sitemap($options); return $feed; } ], hidefromweb ist ein eigener Wert, den ich nutze um Artikel nur im RSS-Feed und nicht auf der Website zu veröffentlichen. Dachte erst ich könnte den Status 'unlisted' nutzen, aber das ist zu sehr verdrahtet und ich nutze hier lieber etwas Eigenes. Artikel aus dem RSS-Feed ausschließen Als Gegenpart zu hidefromweb gibt es hidefromrss. Config-Part: $feed = page('blog')->children()->listed()->filterBy('hidefromrss', '!=', 'true')->sortBy(function ($page) { return $page->published()->toDate(); }, 'desc')->limit(10)->feed($options); Backups Das Backup-Plugin funktioniert nicht (mehr). Siehe auch. Janitor war installiert. Ich warte erstmal auf Kirby v4, ansonsten bau ich mir was Eigenes. Minify Beim ersten Versuch mit dem Plugin klappen die Comments nicht mehr. Ich teste mich mal durch die Einstellungen. Edit: done, inline javascript musste angepasst werden. Random Teasers Nicht wirklich ein Kirby-Learning aber es gibt vereinzelte Artikel ohne Beitragsbild. Da ich dafür aber trotzdem gern Teaser-Images auf der Startseite und der Blog-Indexseite haben wollte hab ich mit Haikei zufällige Wellenform-Bilder erstellt, wie auch im Hintergrund der Website. Davon wird beim Aufruf zufällig eins ausgesucht und beim Teaser angezeigt jetzt. Alle Bilder der kompletten Seite Mit $site->index()->images() kommt man an alle Bilder der Website. Daraus hab ich ne collection gebaut und die nach Änderungsdatum des Bildes sortiert: foreach($kirby->collection("all-images")->sortBy('modified', 'desc') as $image). DIe Seite /bilder ist noch im Aufbau. Ausbau Suchergebnisse autofocus im Suchfeld, damit man beim Aufruf der Seite direkt tippen kann. Außerdem Ergebnisse in Seiten und Artikel aufgeteilt und Anzahl der Ergebnisse mit eingebunden unter Beachtung von "hidefromweb". <?php $resultsAll = $results->filterBy('hidefromweb', '!=', 'true'); $resultsPages = $results->filterBy('template', '!=', 'article')->filterBy('hidefromweb', '!=', 'true'); $resultsArticles = $results->filterBy('template', 'article')->filterBy('hidefromweb', '!=', 'true'); ... if (count($resultsPages) > 0 ): ?> Weiterhin offen Backup Stats im Panel (Total Count Likes zB) funktionierendes minify Dateinamen von Uploads nicht ausschließlich lowercase. Möglich? Darstellung von Audiofiles in der Mediengalerie auf der Startseite (nicht kirby) done nächster und vorheriger Artikel ohne die versteckten (hidefromweb) — Sascha

zum Artikel gehen

Kirby Learnings: Part 3

Useragent mit im Like-Hash $visitor = md5('v-' . kirby()->visitor()->ip() . kirby()->visitor()->userAgent() ); Hat den Vorteil, dass mehrere Personen aus einem Hashalt (mit der gleichen IP-Nummer) den gleichen Artikel liken können. Ich hab daz

zum Artikel gehen

Social Impact Learnings: A Students Perspective on the MBA Impact Expedition

Immerse yourself in Hao's transformative journey, where he delved into the realm of social impact, unearthing profound insights that have ignited an enduring passion for driving positive change in his future career. The post Social Impact Learnings: A Stu

zum Artikel gehen

Win-Win Formula: 10 Steps to Prepare Your Part-Time Studies Pitch

Are you looking to lift your career to next level with a part-time program at HHL but you don't know how to start the conversation with your boss? We keep you covered: Let the following 10 questions guide you through your preparation process to convince y

zum Artikel gehen

2021-02: Transfer Learning: Regulatorische Fallen bei Medizinprodukten vermeiden

Je größer und leistungsfähiger insbesondere komplexe Deep Neural Networks werden, desto wichtiger wird es, von den Vorteilen des Transfer Learnings zu profitieren, um die Leistungsfähigkeit auch nutzen und redundante Trainingsaufwände vermeiden zu können.

zum Artikel gehen

Gercht: Remaster von The Last of Us: Part 2 fr PS5 in Arbeit!

Neue Hinweise deuten darauf hin, dass uns bald ein Remaster des PS4-Megahits The Last of Us: Part 2 fr die PS5 erwartet. Was dran ist, erfahrt ihr hier!

zum Artikel gehen