boCMS - SDK

Diese kurze Einführung gibt Hilfestellung bezüglich der Erstellung von Zusatzmodulen für boCMS. HTML- und PHP-Kenntnisse sind absolut notwendig. Hier werden nur die Besonderheiten der boCMS-Programmierung dargestellt.

Beispiele beziehen sich immer auf unsere Domain „www.bocombo.de“

1. Verzeichnisstruktur von boCMS
Einfache Zusatzmodule können in den Ordner „./module“ hochgeladen werden. Sie werden dann auch automatisch von den schon vorhandenen Modulen, wie dem Navigations-Editor, erkannt.

Der Dateiname muss „«modulname».php“ lauten, also zum Beispiel „kontaktformular.php“

Für größere Module können die Scriptdateien in ein eigenständiges Verzeichnis im Ordner „./dienste“ kopiert werden. Die Dateien liegen dann also in „./dienste/«scriptname»/ «modulname».php“

2. Aufrufen des Scriptes
Das Zusatzmodul wird dann wie folgt direkt aufgerufen:
http://www.bocombo.de/?seite=«modulname»&modul=1
oder bei größeren Module im „./dienste“-Ordner:
http://www.bocombo.de/?seite=«modulname»&modul=«scriptname»


3. Variablen
Je nachdem, wo das Zusatzmodul liegt, müssen verschiedene Variablen übergeben werden.

Hierbei spielt es keine Rolle, ob diese per GET- oder POST-Request übersendet werden. Wichtig ist nur, dass Sie bei der Programmierung darauf achten, ALLE folgenden Variablen bei jedem Request zu überliefern.


Falls Ihr Modul auch im Adminpanel eingebunden werden soll:
Eigene Variablen sollten in den Präfix $bozusatz beinhalten, um Komplikationen mit anderen Variablen von boCMS zu verhindern.

3. MySQL-Anbindung
Über die Variable $dbx wird ein Objekt unserer Datenbank-Klasse zur Verfügung gestellt. Darüber können beliebige MySQL-Abfragen gestartet werden. Ihre Tabellennamen sollten Sie so wählen, dass Sie den Präfix $mysql['id'] haben. So sind auch mehrere Installationen von boCMS in einer Tabelle problemlos gewährleistet.

Ein paar Beispiele:
$dbx->query_no("select * from ".$mysql['id']."board");
$row = $dbx->fetch_array();
Es wird die Tabelle „board“ ausgelesen. Die erste Zeile wird in die Variable $row als Array geschrieben. Falls es bei der Abfrage zu einem Fehler kommt, wird dieser ignoriert.
$dbx->query("select * from ".$mysql['id']."board");
$row = $dbx->fetch_array();
s.o. Bei einem Fehler wird die Ausführung von boCMS an der Stelle des Fehlers gestoppt und es wird eine entsprechende Fehlermeldung ausgegeben. Sind mehrere Zeilen in der Tabelle, kann über eine Schleife, zum Beispiel
while ($row = $dbx->fetch_array()) {...}
, die komplette Tabelle ausgelesen und verarbeitet werden.
$dbx->requery();
Führt den letzten Befehl erneut aus. Funktioniert nur im Zusammenhang mit query und query_no, nicht aber mit queryonce.
$dbx->queryonce($query);
Führt einen Befehl aus, ohne das Ergebnis zu speichern.
$dbx->num_rows();
Gibt die Anzahl der Zeilen der aktuellen Abfrage aus.
$dbx->insert_id();
Falls eine „auto_increment“-ID in der Tabelle ist, wird hier die mysql_insert_id() geliefert.

4. User-Abfrage
Über die Variable $user wird das aktuelle Benutzerobjekt überliefert. Über diese Variable kann festgestellt werden, welcher Benutzer das Script gerade aufruft:

$user->eingeloggt
Ist „true“, wenn der Benutzer eingeloggt ist, sonst „false“ (BOOLEAN)
$user->is_admin
Ist „true“, wenn der Benutzer ein Administrator ist, sonst „false“ (BOOLEAN)
$user->id
Gibt die eindeutige Identifikationsnummer des Users (INTEGER)
$user->encp
Hier ist das verschlüsselte Passwort des momentanen Users gespeichert. Dieses sollte auf keinen Fall direkt ausgegeben oder irgendwo anders gespeichert werden! Über folgende Abfrage kann die Zeile mit den persönlichen Dateien eines Users aus der Datenbank gelesen werden:
query("select * from ".$mysql['id']."users ".
"where id='".$user->id."' and passwort='".$user->encp."'");

$row = $dbx->fetch_array();

echo 'Hallo ' . $row['vorname'] . '.';

?>
« Zurück