Mittwoch, 27. August 2008
Serendipity: Verbesserung der Statische Seiten
Ein großes Problem von Serendipitys Statische Seiten-Plugin war seit jeher, dass die redaktionelle Erstellung einer statischen Seite auf einem doch relativ hässlichen Interface basierte:

Da in letzter Zeit die Stimmen laut danach wurden, dieses Interface etwas zu entstauben, habe ich Anfang der Woche ein paar kleine Bauarbeiten an dem Plugin vorgenommen und bereits ins offizielle Plugin-Archiv (staticpage.zip) überführt.
Technisch sind die Änderungen eher klein und unaufwändig gewesen (2 Stunden Lebenszeit) - aber die Auswirkungen sind enorm:


Da in letzter Zeit die Stimmen laut danach wurden, dieses Interface etwas zu entstauben, habe ich Anfang der Woche ein paar kleine Bauarbeiten an dem Plugin vorgenommen und bereits ins offizielle Plugin-Archiv (staticpage.zip) überführt.
Technisch sind die Änderungen eher klein und unaufwändig gewesen (2 Stunden Lebenszeit) - aber die Auswirkungen sind enorm:

Ab sofort können die statischen Seiten mit beliebigen Smarty-Templates erfasst werden, und eine statische Seite kann beliebige zusätzliche Inhalte á la Custom Properties bei Blog-Einträgen erhalten.
Standardmäßig wird eine neue Template-Datei namens backend_templates/default_staticpage_backend.tpl beim Plugin mitgeliefert, in der die Aufteilung der Felder frei bestimmt wird. Es gibt eine Smarty-Hilfsfunktion ({staticpage_input}), damit die bestehenden Introspection-Methoden des Plugins für die definierte Liste an Datenfeldern einfach ausgegeben werden kann.
Eigene Templates können diese Datei auch von Haus aus mitliefern, so dass die eigenen Staticpage-Erfassungsmasken auch abhängig vom Gesamt-Template sein können. Für Magazin-Templates wie Hemmingway oder Mimbo dürfte dies also ein Segen sein.
Es können auch problemlos mehrere Templatedateien im Verzeichnis backend_templates abgelegt werden, jedes dieser Templatedateien steht dann im Ausklappfeld der Bearbeitungsmaske zur Verfügung. Für die alten Hasen ist auch nach wie vor die alte Ansicht zusätzlich verfügbar.
Ein Beispiel für die Erfassung zusätzlicher freier Eigenschaften der statischen Seiten ist ebenfalls mit im Standard-Template enthalten, jedoch auskommentiert. Alle freien Felder müssen lediglich mit eigenen HTML-Formularelementen erfasst werden und in der Variable serendipity[plugin][custom][XXX][ gespeichert werden. Diese Daten werden dann automatisch in der Datenbanktabelle serendipity_staticpage_custom gespeichert, und stehen später bei der Darstellung als {$staticpage_custom.XXX} zur Darstellung zur Verfügung.
So kann man also sehr leicht eigene Felder festlegen, die z.B. bestimmen welche CSS-Body-ID für die Darstellung einer statischen Seite verwendet wird. Oder man kann festlegen, welche Seitenleisten beim Anzeigen der statischen Seite dargestellt werden. Oder ein individuelles Headerbild festlegen -- auch hier ist "Sky the limit", denn damit rückt das Plugin Serendipity's CMS-Fähigkeiten deutlich in den Vordergrund. Ein derartiges Framework erlaubt eine sehr an die Benutzer ausgerichtete Bearbeitungsoberfläche, und durch die freien Felder ist man für die Erfassung beliebiger Inhalte vorbereitet.
Ich hoffe, es gefällt.
Standardmäßig wird eine neue Template-Datei namens backend_templates/default_staticpage_backend.tpl beim Plugin mitgeliefert, in der die Aufteilung der Felder frei bestimmt wird. Es gibt eine Smarty-Hilfsfunktion ({staticpage_input}), damit die bestehenden Introspection-Methoden des Plugins für die definierte Liste an Datenfeldern einfach ausgegeben werden kann.
Eigene Templates können diese Datei auch von Haus aus mitliefern, so dass die eigenen Staticpage-Erfassungsmasken auch abhängig vom Gesamt-Template sein können. Für Magazin-Templates wie Hemmingway oder Mimbo dürfte dies also ein Segen sein.
Es können auch problemlos mehrere Templatedateien im Verzeichnis backend_templates abgelegt werden, jedes dieser Templatedateien steht dann im Ausklappfeld der Bearbeitungsmaske zur Verfügung. Für die alten Hasen ist auch nach wie vor die alte Ansicht zusätzlich verfügbar.
Ein Beispiel für die Erfassung zusätzlicher freier Eigenschaften der statischen Seiten ist ebenfalls mit im Standard-Template enthalten, jedoch auskommentiert. Alle freien Felder müssen lediglich mit eigenen HTML-Formularelementen erfasst werden und in der Variable serendipity[plugin][custom][XXX][ gespeichert werden. Diese Daten werden dann automatisch in der Datenbanktabelle serendipity_staticpage_custom gespeichert, und stehen später bei der Darstellung als {$staticpage_custom.XXX} zur Darstellung zur Verfügung.
So kann man also sehr leicht eigene Felder festlegen, die z.B. bestimmen welche CSS-Body-ID für die Darstellung einer statischen Seite verwendet wird. Oder man kann festlegen, welche Seitenleisten beim Anzeigen der statischen Seite dargestellt werden. Oder ein individuelles Headerbild festlegen -- auch hier ist "Sky the limit", denn damit rückt das Plugin Serendipity's CMS-Fähigkeiten deutlich in den Vordergrund. Ein derartiges Framework erlaubt eine sehr an die Benutzer ausgerichtete Bearbeitungsoberfläche, und durch die freien Felder ist man für die Erfassung beliebiger Inhalte vorbereitet.
Ich hoffe, es gefällt.

Kommentare
Ansicht der Kommentare:
(Linear | Verschachtelt)
Hi Garvin, das sieht Klasse aus! Ab wann wird es über Spartacus verfügbar sein?
Dirk: Theoretisch ab sofort. Praktisch hängt es etwas von dem Stand deines lokalen Caches ab und welchen Mirror Du nutzt. 

In diesem Raum sind Theorie und Praxis vereint. 
SCNR
Probiere es Morgen noch einmal.

SCNR
Probiere es Morgen noch einmal.
Danke Garvin!
Welche Nummer hat die neue Version?
Bei mir hat Spartacus eine neue Version gemeldet und installiert aber es sieht aus wie immer. (Habe jetzt 3.62)
Da ich es nicht testen kann, hier die Frage: gibt es jetzt analog zu den dynamischen Seiten nun die Möglichkeit einer Vorschauansicht? Das habe ich bisher vermisst.
Gruß Konrad
Welche Nummer hat die neue Version?
Bei mir hat Spartacus eine neue Version gemeldet und installiert aber es sieht aus wie immer. (Habe jetzt 3.62)
Da ich es nicht testen kann, hier die Frage: gibt es jetzt analog zu den dynamischen Seiten nun die Möglichkeit einer Vorschauansicht? Das habe ich bisher vermisst.
Gruß Konrad
wieso sieht bei euch das backend immer so anders aus als bei mir?
kann ich denn diese backend oberfläche auch einrichten wenn ich nicht das bulletprooftheme benutze?
obwohl das das pluin upgedatet wurde kann ich keine veränderung entdecken, also rein optisch gesehen.
kann ich denn diese backend oberfläche auch einrichten wenn ich nicht das bulletprooftheme benutze?
obwohl das das pluin upgedatet wurde kann ich keine veränderung entdecken, also rein optisch gesehen.
3.71 ist die aktuelle Version. Bitte ladet sie über das verlinkte ZIP, wenn ihr schon jetzt testen wollt.
Eine Vorschauansicht gibt es nicht.
Frank, das Backend kommt automatisch wenn man Bulletproof nimmt und sicherstellt, dass man daen CSS-Cache des Browsers leert. Ohne Bulletproof sieht es nicht so aus, da musst du das admin-template in dein eigenes übernehmen.
Eine Vorschauansicht gibt es nicht.
Frank, das Backend kommt automatisch wenn man Bulletproof nimmt und sicherstellt, dass man daen CSS-Cache des Browsers leert. Ohne Bulletproof sieht es nicht so aus, da musst du das admin-template in dein eigenes übernehmen.
Wow. Ich muss erst rausfinden, was man damit so machen kann.
Dem Wunsch nach einer Vorschau würde ich mich gerne anschliessen. Das würde das ganze noch komplett machen...
Danke für deine zwei Stunden!!!!
Dem Wunsch nach einer Vorschau würde ich mich gerne anschliessen. Das würde das ganze noch komplett machen...
Danke für deine zwei Stunden!!!!
Erstmal gefällt mir das Plugin sehr gut - hätte dies auch gerne Installiert aber null Ahnung.
2. Habe auf der Seite http://www.agilityandfriends.de s9y installiert aber dort bekomme ich nur Fehlermeldung dieser Art:
Warning: require_once(/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Onyx/RSS.php) [function.require-once]: failed to open stream: No such file or directory in /mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/include/admin/importers/generic.inc.php on line 5
Fatal error: require_once() [function.require]: Failed opening required '/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Onyx/RSS.php' (include_path='.:/opt/RZphp5/includes:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Smarty/libs/:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/:') in /mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/include/admin/importers/generic.inc.php on line 5
Bei meiner Seite hat es auch funktioniert und die Sprache konnte ich auch in Deutsch umbenennen - hier geht es nicht ? - kann mir jemand von Euch helfen.
Danke
2. Habe auf der Seite http://www.agilityandfriends.de s9y installiert aber dort bekomme ich nur Fehlermeldung dieser Art:
Warning: require_once(/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Onyx/RSS.php) [function.require-once]: failed to open stream: No such file or directory in /mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/include/admin/importers/generic.inc.php on line 5
Fatal error: require_once() [function.require]: Failed opening required '/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Onyx/RSS.php' (include_path='.:/opt/RZphp5/includes:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/bundled-libs/Smarty/libs/:/mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/:') in /mnt/web7/10/36/51852136/htdocs/agilityandfriends/serendipity/include/admin/importers/generic.inc.php on line 5
Bei meiner Seite hat es auch funktioniert und die Sprache konnte ich auch in Deutsch umbenennen - hier geht es nicht ? - kann mir jemand von Euch helfen.
Danke
Nur ein Blog am : Serendipity: Statische Seiten verbessert
Vorschau anzeigen