Erweiterungen können mittels Plug Ins realisiert werden. Diese Seite
ist für Plug In
Programmierer geschrieben und soll einen Eindruck der Komlpexität der
Plug In Programmierung vermitteln. Falls Sie Plug Ins programmieren
wollen, nehmen Sie am besten Kontakt mit Rosman - Internet Services auf.
Die Architektur von gotopage kennt drei Schichten:
AFW – Application Framework
(Hier befinden sich allgemeine Dienste so wie Länder-/Sprachspezifische Einstellungen, Session Management, Error and Exception Handling, etc.)
BOM – Business Object Model
(Diese Schicht liefert den Zugriff auf gotopage Objekte.)
GUI – Graphical User Interface
(Benutzerschnittstelle)
AFW - Application Framework
Für das Application Framework steht eine API zur Verfügung. Zum Beispiel gibt es hier ein Modul (Klasse) "lang". Diese ist für die Länder-/Sprachspezifische Konfiguration und Daten zuständig. Auszugsweise einige Funktionen:
$slang->get_fmt_date( [$timestamp=null] )
liefert einen formatierten Datum-String laut (länderspezifischen) Einstellungen$slang->get_currency()
Liefert die Währungseinheit, z.B. EUR, USD$slang->get_curr_symbol()
Liefert das Symbol der Währungseinheit, z.B. ¤, $
BOM – Business Object Model
Die API des BOM-Layer ist unter anderem für den Zugriff auf die Datenbank zuständig und kapselt die dahinterliegende Tabellenstruktur. Es wird dringend davon abgeraten, direkt auf die Datenbank zuzugreifen. Das BOM ist so konzipiert, dass nur in den seltesten Fällen die Schnittstelle geändert werden muss, noch seltener wirkt sich eine Schnittstellenänderung auf ein Plug-In aus. Darüberhinaus werden im BOM-Layer die Benuzerberechtigungen überprüft. Beispielhaft einige Funktionen für das Lesen und Speichern von strukturiertem Content:
content::get_info ( $ctypes=array(), $status=null )
liefert ein Array mit den Feldern id, timestamp (letzte Änderung), content_type_id, name und status.
Mit den Parametern $ctypes und $status läßt sich die Ergebnismenge einschränkencontent::read ( $id )
liefert ein assoziatives Array mit strukturiertem Content.content::save ( $content )
Speichert den im assoziativen Array übermittelten strukturierten, Content.
GUI – Graphical User Interface
Das Menü kann erweitert werden, indem man das globale Array $menu erweitert:
global $menu;
$menu[‘submenu’][] = ‘/plugins/myplugin/mydialog.php’;
Dieser Programm-Code kann/soll in einer Datei ‘/plugins/myplugin/conf/gui.php’ abgelegt werden. gotopage scant alle Plug In Verzeichnisse nach dieser Datei und inkludiert diese bevor der Dialog aufgebaut wird. Zugriffsberechtigungen für Menü Items werden in ‘/plugins/myplugin/conf/access.rights’ definiert.
Damit mydialog.php im gleichen Lay-Out und mit Menü usw. erscheint soll die Vorlage /gui/dialog.template.php verwendet werden. mydialog.php muss sich dann nur noch um die eigenen Inhalte kümmern.

