a content management system.
Das gute Stück liegt in _config/bsa51.config.php und beherbergt die folgenden Einstellungen.
'bs|area51.'
;'data'
;data
.false
;?pagename=sowieso
) generiert werden können. Diese Standard-Einstellung
(false
) wurde zeit Jahren nicht mehr verwendet und man kann davon ausgehen,
dass diese nicht mehr funktioniert. Aus diesem Grund wird niceUrls abgeschafft werden,
allerdings ist es ratsam, bis zu diesem Zeitpunkt niceUrls immernoch manuell auf
true
zu setzen.'user'
;'host'
;'password'
;'database'
;
'bsa51_'
;false
;true
;false
;'userid'
;'username'
;'password'
;'email'
;'fullname'
;
Die zu verwendenden Module werden in einem Array namens $this->modules angegeben, welches wiederum aus Arrays besteht, deren Elemente null bis zwei, den Modulnamen, die Beschreibung für das Administrationsinterface und den Namen des zu ladenden Plugins angeben. Das vierte, optionale, Element ist ein assoziatives Array mit Parametern für das Plugin.
$this->modules = array(
array("Modulname", "Beschreibung", "Plugin-Name",
array('parameter1' => 'wert1',
'param2' => 'wert2')),
array("rechte", "Die Rechteverwaltung", "rights")
);
Dabei gilt zu beachten, dass der Modulname nur aus (7bit-reinen) alphanumerischen Zeichen bestehen darf, da aus ihm ggf. Tabellennamen generiert werden.
(TODO) Die Snippetdefinitionen sind ähnlich aufgebaut, wie die Moduldefinitionen.
'values' => {"<value<" => "<desc>", ...}
und bei einem
Bild gibt es die Parameter thumbsize und bigsize mit den (optional)
eine Angabe zur gewünschten Größe des Bildes nach folgendem Schema gemacht werden kann:
TODO
Gehen wir mal davon aus, wir wollen auf einer Seite unserer Webpräsenz die Anzeige von aktuellen Nachrichten einbinden. Bis jetzt haben wir nur statische Text- oder Bild-Snippets verwendet, also fügen wir als erstes die Datenbank-Definition zu unseren Modulen hinzu. Wir wollen dabei lediglich das Datum, den Titel und den Text einer Nachricht angeben:
$this->modules = array(
...
array("nachrichten", "Nachrichten verwalten", "database",
array(
'schema' => array(
'datum' => array('desc' => 'Datum', 'type' => 'germandate'),
'titel' => array('desc' => 'Titel', 'type' => 'textedit'),
'text' => array('desc' => 'Inhalt', 'type' => 'multiline')
),
'sortedby' => 'datum DESC',
'titlecol' => '[datum]: [titel]'
)
),
...
);
Lediglich nach dieser Definition sollten wir uns im Administrationsinterface einloggen, und den Punkt „Nachrichten verwalten“ wählen können, wo wir nach Belieben neue Nachrichten anlegen, oder vorhandene Bearbeiten oder Löschen können sollten.
Um diese Nachrichten allerdings auch auf einer Seite für den User sichtbar machen zu können, müssen wir noch ein Snippet vom Typ listrecords anlegen, welches sich aus der eben erstellen Datenbank bedient.
Dazu fügen wir folgende Zeilen in unsere Snippet-Definition ein:
$this->snippets = array(
...
"nachrichtenzeigen" => array("Nachrichten anzeigen", "listrecords",
array('database' => 'nachrichten',
'layout' => "<h1>[titel]</h1>\n".
"<p>[pre:text]</p>\n".
"<p>(vom [datum])</p>",
'orderby' => 'datum DESC LIMIT 10'
)
),
...
);
Nun können wir eine Neue Seite anlegen, auf der wir das Snippet „Nachrichten anzeigen“ einfügen – und wenn wir diese Seite im Browser betrachten, werden die zehn aktuellsten Nachrichten angezeigt.
©2006 Robert Lillack, burningsoda.com. Last Modified: <%= @changed %>.