Kirby: Informationen nur für angemeldete Benutzer
Für ein bestimmtes Projekt befasse ich mich gerade mit den Möglichkeiten von Kirby, auf Daten von angemeldeten Benutzern zuzugreifen. Da kam mir eine kleine Idee.
Wenn ich einen Artikel veröffentlich, dann mache ich das meist über Git. Ich habe auf meinem Mac einen kleinen Workflow, mit dem ich via Alfred einen neuen Post anlegen kann und gleich alle nötigen Vorlagen kopiert bekomme.
Was fehlt sind natürlich Bilder wie ein mögliches Headerbild oder ein Bild zum Sharen auf Twitter, Facebook und Co. Wenn ich dann ein paar Tage später, die URL noch mal bei Twitter teilen will, frage ich mich oft: Habe ich jetzt ein Bild zum Teilen hinterlegt?
Also habe ich mir gedacht, ich möchte diese Information am liebsten direkt im Blogpost angezeigt bekommen. Da sie für einen Besucher uninteressant sind, möchte nur ich diese Informationen sehen.
Den User abfragen
Um zu selektieren gehe ich den Weg über die Kirby-Userverwaltung. Ein Benutzer, der im sich im Panel angemeldet hat, soll die Informationen auf der Seite sehen, alle anderen nicht.
Also musste ich zunächst einmal herausfinden, ob der aktuelle Besucher ein angemeldeter Benutzer ist:
if($site->user())
Um ganz sicher zu gehen, möchte ich, dass nur Benutzer mit Zugriff auf das Panel auch die Informationen sehen können, also erweiterte ich die Abfrage:
if($site->user() && $site->user()->hasPanelAccess()):
Und das war es eigentlich auch schon. Innerhalb meines neuen IF-Blocks kann ich mir nun alle nützlichen Informationen anzeigen lassen, das sieht dann bei mir z.B. so aus:
Welche Informationen man in dem Block anzeigt, ist völlig variabel. Bitte beachte aber: Wenn du irgendeine Form von Caching einsetzt, musst du hier aufpassen, denn wenn diese Information gecached wird, dann kann es sein, dass auch andere Besucher deiner Seite sie sehen!