Grundlagen für Entwickler und Designer

Transcrição

Grundlagen für Entwickler und Designer
 Grundlagen für Entwickler und Designer für Version 1.2.0 Simploo GmbH Öschstr. 33 73072 Donzdorf [email protected] www.simploo.de Inhaltsverzeichnis 1 Einführung .................................................................................................................................................... 3 2 Aufbau und Struktur ..................................................................................................................................... 4 2.1 Verzeichnisstruktur ............................................................................................................................... 4 2.2 Fallback‐System .................................................................................................................................... 5 2.2.1 Konfigurationsdateien .................................................................................................................. 5 2.2.2 Sprachdateien ............................................................................................................................... 5 2.2.3 Templates ..................................................................................................................................... 5 2.3 2.3.1 Modul „Sifront“ ............................................................................................................................ 6 2.3.2 Modul „Sicore“ ............................................................................................................................. 6 2.3.3 Eigene Module .............................................................................................................................. 7 2.4 3 Module und Controller ......................................................................................................................... 6 Ablauf Seitenaufruf ............................................................................................................................... 8 2.4.1 Standard Zend Framework Aufruf ................................................................................................ 8 2.4.2 Aufruf über virtuelle URL .............................................................................................................. 8 Datenbank .................................................................................................................................................... 9 3.1 Tabellen ................................................................................................................................................ 9 3.2 Erweiterung ........................................................................................................................................ 10 3.2.1 Erweiterbare Tabellen ................................................................................................................ 10 3.2.2 Vorgehensweise ......................................................................................................................... 10 Grundlagen für Entwickler und Designer 2 1 Einführung Das Simploo CMS basiert auf PHP 5 und MySQL 5 und verwendet das Zend Framework in der Version 1.8 als Grundlage. Für die Umschreibung der virtuellen URLs setzt das Simploo CMS auf das Apache Module mod_rewrite. Eine enstprechende .htaccess Datei wird vorausgesetzt und in den Installationshandbüchern entsprechend beschrieben. In diesem Handbuch erfahren Sie den grundlegenden Aufbau des Simploo CMS und erhalten einen Einstieg in die Anpassung und Weiterentwicklung unserer Software. Grundlagen für Entwickler und Designer 3 2 Aufbau und Struktur 2.1 Verzeichnisstruktur Nach der Installation des Simploo CMS finden Sie eine wie im rechten Screenshot dargestellte Verzeichnisstruktur wieder. Über die .htaccess‐Datei werden alle Anfragen an die „index.php“ geleitet, die ihrerseits die Datei „bootstrap.php“ einbindet, für die grundlegende Initialisierung des CMS sorgt und anschließend die weitere Verarbeitung an einen entsprechenden Controller (siehe Kapitel 2.3 oder 2.4) weiterleitet. Einige Unterordner in folgenden Verzeichnissen müssen mit Schreibrechten für den Webserver versehen sein – informieren Sie sich darüber ebenfalls bitte in den Installationshandbüchern:  data  languages  templates Die verschiedenen Ordner enthalten folgende Inhalte  application Enthält den eigentlichen Kern des Systems und ist im Auslieferungszustand in zwei Module untereilt. Im Unterordner „sicore“ sind alle Backend‐, sowie Kernfunktionalitäten abgelegt – im Unterordner „sifront“ lagern die Funktionen zur Anzeige der Webseiten.  config Hier finden Sie alle Konfigurationseinstellungen. Das Simploo CMS liefert alle Standard‐
Konfigurationseinstellungen im Unterordner „system“, die allerdings nach Belieben im Unterordner „custom“ überschrieben werden können. Mehr dazu im Kapitel 2.2 oder im Handbuch „Nr. 202 – Konfigurationsdateien“  data Speicherort für alle dynamischen Daten wie hochgeladene Bilder, temporär angelegte Dateien vom System, Cache‐Dateien und Logfiles.  languages In diesem Ordner finden Sie die Array‐basierten Sprachdateien für das Simploo CMS. Wie bei den Konfigurationsdateien werden vom System bereits Standard‐Sprachdateien im Unterordner „system“ mitgeliefert, die im Unterordner „custom“ ebenfalls projekt‐ und kundenspezifisch erweitert werden können.  lib Alle externe Bibliotheken und Module wie das Zend Framework, das Javascript Framework jQuery, sowie Bibliotheken der Simploo GmbH, wie der selbstentwickelte Inhaltseditor liegen im Ordner „lib“ Grundlagen für Entwickler und Designer 4 
templates Selbsterklärend liegen hier die Templates für das Backend und das Frontend. Für das Frontend unterliegen die Templates wie die Konfigurations‐ und Sprachdateien einem Fallback‐Mechanismus. Mehr dazu finden Sie im Kapitel 2.2 oder im Handbuch „Nr. 201 – Integration von Templates“ 2.2 Fallback­System Das bereits angesprochene Fallback‐System dient der leichteren Anpassbarkeit des Systems und vermeidet Probleme beim Update. Es findet auf folgende drei Bereiche Anwendung. 2.2.1 Konfigurationsdateien Das Simploo CMS liefert bereits alle Konfigurationseinstellungen mit, die dann entsprechend angepasst werden können. Wird beim Aufruf des Simploo CMS nun intern beispielsweise eine Datenbankverbindung aufgebaut, holt sich das System die entsprechenden Zugangsdaten aus den Konfigurationsdateien in folgender Reihenfolge: 1. Als erstes wird der entsprechende Eintrag in der Datei „config/custom/base.ini“ gesucht 2. Wird er dort nicht gefunden, werden die Einträge aus „config/system/base.ini“ geladen So können also alle Einträge aus dem System‐Ordner nach Belieben angepasst werden. Diese bleiben auch bei einem Update des Simploo CMS erhalten, da lediglich die Dateien im System‐Ordner überschrieben werden. 2.2.2 Sprachdateien Das gleiche Prinzip gilt für die Sprachdateien. Für alle Ausgaben im Simploo CMS Backend und teilweise auch im Frontend werden entsprechende Platzhalter (z.B. „LL_GENERAL_LOGIN“ ) verwendet. Für diese Platzhalter sucht das Simploo CMS erneut in der folgenden Reihenfolge nach einer Übersetzung 1. language/custom/de.php 2. language/system/de.php Die Unterstützung mehrerer Sprachen ist derzeit in Arbeit und wird voraussichtlich in der Version 1.3 veröffentlicht. 2.2.3 Templates Ebenso wie bei den vorherigen beiden Beispiel lässt sich der Fallback‐
Mechanismus auch auf die Frontend‐Templates, also das letztendliche Design der Webseite, übertragen. Das Simploo CMS bringt bereits zwei Design‐Ordner mit, die in folgenden Reihenfolge abgearbeitet werden: 1. Im Ordner „templates/frontend/sibase“ befindet sich das Startlayout (pagelayout.phtml) des Simploo CMS, sowie Fehlerseiten für z.B. 404‐
Fehler. Dieser Ordner wird als erstes vom Simploo CMS durchsucht. 2. Am Ende geht das System den Ordner „templates/frontend/sicore/“ durch. Dort befinden sich verschiedene Systemplates für z.B. die Anzeige von Inhalten, Navigationsmenüs oder ein Loginformular. Grundlagen für Entwickler und Designer 5 Wird nun von Ihnen ein individuelles Layout im Ordner „templates/frontend/custom“ erstellt und entsprechend aktiviert (siehe Handbuch „Nr. 201 ‐ Integration von Templates“), wird dieser vor den oben genannten zwei Design‐Ordnern durchsucht. Das heißt, dass Sie alle Templates aus den Ordnern „sibase“ und „sicore“ in Ihrem eigenen Designordner erstellen und damit entsprechend überschreiben können. Wollen Sie als Beispiel eine eigene 404‐Fehlerseite ausgeben lassen, kopieren Sie die Datei „templates/frontend/sibase/error404.phtml“ einfach nach „templates/frontend/custom“ und passen sie Ihren Wünschen nach an. Und schon wird bei der nächsten nicht gefunden Webseite Ihre bestimmt wundervolle, individuelle 404‐Fehlerseite im Browser ausgegeben. System‐Konfigurationsdateien, System‐Sprachdateien und System‐Templates sollten Sie niemals direkt anpassen, sondern die dafür vorgesehenen „custom“‐Ordner verwenden. Sie vermeiden damit Probleme beim Einspielen von Updates! 2.3 Module und Controller Das Simploo CMS ist unterteilt in Module, die wiederum verschiedene Controller enthalten. Innerhalb dieser Controller werden Anfragen in sogenannten Actions verarbeitet und entsprechende Inhalte zurückgegeben. Mehr dazu finden Sie in der Zend Framework Dokumentation unter:  http://framework.zend.com/manual/1.8/de/zend.controller.html 2.3.1 Modul „Sifront“ Dieses Modul übernimmt die eigentliche Seitenausgabe und verfügt im Ordner „application/Sifront/Controllers“ über folgende Controller:  PageController Dieser Controller wird standardmäßig mit der Funktion „showAction()“ aufgerufen und dient der eigentlichen Darstellung der Webseite  ContentController Dieser Controller behandelt die Darstellung von Inhalten.  ErrorController Darstellung von Fehlermeldungen 2.3.2 Modul „Sicore“ Das eigentliche Herz des Simploo CMS ist das Modul „Sicore“, mit folgenden Controllern im Ordner „application/Sicore/Controllers“. Die meisten dieser Controller werden per AJAX‐Anfragen aufgerufen:  PageController Analog zum Modul „Sifront“ der Einstiegspunkt in den Redaktionsbereich, der über in der „showAction()“‐Methode einige Administrations‐Einstellungen vornimmt und im „Administrations‐
Modus“ direkt zu „Sifront::showAction()“ weiterleitet. Grundlagen für Entwickler und Designer 6 










UserController Controller für unter anderem das Ein‐ und Ausloggen des aktuellen (Redaktions‐)Benutzers MenuController Darstellung der Menü‐Elemente im Simploo CMS Administrationsbereich PagesController Controller für die Verwaltung der Seiten‐/Navigationsstruktur ContentController Controller für die Verwaltung der Inhaltselemente MediaController Controller für die Dateiverwaltung FileController Controller für das Bearbeiten/Hochladen von Dateien FolderController Controller für das Bearbeiten von Ordnern in der Dateiverwaltung UsersController Controller für die Benutzerverwaltung DesignController Controller für die Template‐ und Designverwaltung SettingsControlles Controller für die Verwaltung der Administrationseinstellungen UpdatesController Controller für die Verwaltung und Einspielung von Updates 2.3.3 Eigene Module Selbstverständlich können Sie auch eigene Module mit eigenen Controllern erstellen, um direkt über den Browser oder auch im Rahmen des Simploo CMS (z.B. spezielle Inhaltselemente) auf diese Funktionalitäten zugreifen zu können. Sollten Sie ein eigenes Modul erstellt haben, müssen Sie dieses dem Simploo CMS bekannt machen. In der Konfigurationsdatei „config/system/base.ini.php“ finden Sie folgende Standard‐Einstellung: [general]
modules[] = Sifront
modules[] = Sicore
Ergänzen Sie für die korrekte Funktionsweise Ihres neuen Moduls die „config/custom/base.ini.php“ daher einfach um folgende Zeilen: [general]
modules[] = IHR_MODULNAME
Mehr Informationen dazu erhalten Sie im Handbuch „Nr. 204 ‐ Das Simploo CMS erweitern“. Grundlagen für Entwickler und Designer 7 2.4 Ablauf Seitenaufruf Das Simploo CMS kann über zwei verschiedene URL‐Formate aufgerufen werden. Wie beim Zend Framework gewohnt über den Syntax  www.ihredomain.de/MODUL/CONTROLLER/ACTION oder über virtuelle URLs für die Frontend‐Ausgabe im Simploo CMS  www.ihredomain.de/EINE/VIRTUELLE/URL 2.4.1 Standard Zend Framework Aufruf Beim Aufruf über den Standard Zend Framework Syntax werden die entsprechenden Action‐Methoden im angeforderten Controller und Modul (siehe Kapitel 2.3) aufgerufen. Die entsprechenden Module müssen dabei im Simploo CMS registriert sein (siehe Kapitel 2.3.3). Mehr dazu finden Sie in der Online Hilfe zum Zend Framework unter:  http://framework.zend.com/manual/1.8/de/zend.controller.quickstart.html 2.4.2 Aufruf über virtuelle URL Die zweite Möglichkeit das Simploo CMS um Inhalte zu bitten, ist der Aufruf von virtuellen URLs, die in der Simploo CMS Datenbank hinterlegt sind. Dabei handelt es sich letztendlich um (über das CMS angelegte) Webseiten, deren Inhalt daraufhin an den Browser zurückgegeben werden. Nehmen wir an ein Besucher Ihrer Seite klickt auf einen Navigationspunkt und forderr von Ihrem Simploo CMS folgende virtuelle URL an:  www.ihredomain.de/unternehmen/impressum Damit setzt sich folgender Vorgang im Simploo CMS in Gang: 1. In der „index.php“ wird der Front‐Controller initalisiert und entsprechend aufgerufen 2. Dieser leitet die angefragte URL an ein SEO‐Plugin1 weiter, dass die URL analysiert. Erkennt das Plugin eine Anfrage an ein registriertes Modul, übernimmt dieses Modul analog zum Kapitel 2.4.1 die Anfrage. Die Schritte 3‐4 entfallen. 3. Ansonsten stellt das Plugin eine Datenbankabfrage und holt sich zum virtuellen URL‐Alias „unternehmen/impressum“ die entsprechende interne Seiten‐ID aus der Tabelle „si_urlalias“. 4. Wird kein entsprechender Eintrag gefunden, gibt der Sifront::ErrorController eine 404‐
Fehlermeldung „Seite nicht gefunden“ aus. 5. Wird eine dazugehörige Seite gefunden, werden die entsprechenden Inhalte geladen und die Seite anhand des aktuellen Layouts/Templates (siehe Kapitel 2.2.3) an den Browser zurückgegeben. 1
SEO = Search Engine Optimization, das entsprechende Plugin befindet sich in der Datei „application/Sifront/Controllers/Plugins/Seo.php“ Grundlagen für Entwickler und Designer 8 3 Datenbank 3.1 Tabellen Im folgenden werden die wichtigsten Tabellen der Simploo CMS Datenbank kurz beschrieben:  si_nodes In dieser Tabelle werden die Seiten und deren Inhalte abgelegt. Sowohl Seiten, als auch Inhalte stellen einen Knoten/Node dar und werden in dieser Tabelle inhaltlich nicht unterschieden. Jeder Knoten hat eine UID und einen entsprechend korrespondierenden Eintrag in der Tabelle „si_tree“  si_tree In der Tabelle „si_tree“ wird die Baumstruktur anhand eines Parent‐Model abgebildet. In dieser Tabelle ist auch festgelegt, ob der entsprechende Eintrag in „si_nodes“ eine Seite oder ein Inhaltselement ist (ispage = 1 oder ispage = 0) .  si_tree_tree Um schneller – ohne Rekursion wie beim Parent‐Model eigentlich nötig ‐ auf alle Eltern‐ oder Kinderelement eines Knoten in der Baumstruktur zugreifen zu können, werden in dieser Tabelle zusätzlich alle Kind‐Eltern‐Verknüpfungen gespeichert.  si_version Jeder Eintrag in den oben genannten Tabellen ist mit einer Versionsnummer verknüpft, die bei Änderungen automatisch angelegt wird. Anhand dieser Tabelle werden die Rückgängig/Veröffentlichen‐Funktionen abgehandelt.  si_urlalias Jeder Knoten hat einen URL‐Alias, bzw. eine virtuelle URL, über die mit dem Browser auf die entsprechende Seite (oder den entsprechenden Inhalt) zugegriffen werden kann. Diese Tabelle ist ebenfalls mit der „si_version“ verknüpft. Ein Eintrag mit „version_uid = ‐1“ bedeutet dabei, dass die eingetragene virtuelle URL nicht mehr verfügbar, bzw. abgeändert wurde. Das Simploo CMS leitet automatisch mit einem „301 – permanently moved“ –Header an den Browser auf die aktuelle virtuelle URL weiter.  si_folders und si_folders_folders Speicherung der Ordner‐Baumstruktur analog zu „si_tree“ und „si_tree_tree“  si_files Speicherung der hochgeladenen Dateien mit Zuordnung zu einem Ordner in „si_folder“  si_users und si_users_users Speicherung der Benutzerstruktur analog zu „si_tree“ und „si_tree_tree“. In der Tabelle „si_users“ werden sowohl Benutzer als auch Gruppen (isgroup = 1) gespeichert. Dadurch können Berechtigungen relativ leicht und performant von „oben nach unten“ vererbt werden. Grundlagen für Entwickler und Designer 9 3.2 Erweiterung 3.2.1 Erweiterbare Tabellen Folgende Tabellen können Sie für Ihre Seite mit eigenen Datenbankfeldern erweitern:  si_nodes (si_temp_nodes) zusätzliche Seiteneigenschaften, wie zum Beispiel eine Seitenüberschrift oder Headergrafik.  si_users zusätzliche Benutzerinformationen, wie zum Beispiel einen Firmennamen  si_folders und si_files zusätzliche Informationen und Felder zu Ordnern oder Dateien 3.2.2 Vorgehensweise Als Beispiel wollen wir die Webseiten um einen über das Simploo CMS pflegbaren Seitentitel erweitern, der im Layout beispielsweise irgendwo im Header als H1‐Überschrift dargestellt werden könnte: 1. Legen Sie dazu in der Datenbanktabelle „si_nodes“ ein neues Feld mit dem Namen „cust_title“ an. Als Typ könnte eine „varchar(255)“ für diesen Fall die richtige Wahl sein. Der Namen des Feldes ist prinzipiell frei wählbar, das Voranstellen von „cust_“ sollten Sie sich aber aus Gründen der Übersichtlichkeit und Update‐Fähigkeit angewöhnen 2. Als zweiten Schritt müssen Sie das neue Feld dem Simploo CMS bekannt machen. Ergänzen Sie dazu einfach den entsprechenden Eintrag in der „config/system/base.ini“ [database]
tables.si_nodes.fields = uid, template,version_uid, language_code, …
in Ihrer „config/custom/base.ini” um den neu hinzugefügten Feldnamen: [database]
tables.si_nodes.fields = uid, template,version_uid, language_code,…,cust_title
3. Ganz zum Schluss sollten Sie das neue Datenbankfeld noch konfigurieren, um es entsprechend über das Simploo CMS pflegen zu können. Dies erledigen Sie in der „config/custom/nodes.ini.php“: [Sicore_Models_Node_Page]
properties.cust_title.type
= Sicore_Models_Node_Property_String
properties.cust_title.form.type = Zend_Form_Element_Text
subforms.general.fields = … , cust_title
In der zweiten Zeile definieren Sie den internen Typ des Feldes, in der dritten Zeile die entsprechende Darstellung im Formular zur Pflege in der Seitenverwaltung. In der letzten Zeile wird dieses Formularelement dann unter dem entsprechendem Reiter (in diesem Beispiel der Reiter „Allgemein“ bei den Seiteneigenschaften) eingehängt. Dies soll nur eine kurze Einführung in die Erweiterung des Simploo CMS darstellen, eine genaue Anleitung finden Sie im Handbuch „Nr. 203 – Datenbank erweitern“. Grundlagen für Entwickler und Designer 10