Grundlagen des FLIP Erstellt: 23.08.2004 16:45 $Id$ Dies ist nur ein kurzer Anriss wie man mit dem FLIP arbeiten kann. Es soll den Einstieg erleichtern und ist recht oberflächlich und keines Falls vollständig! 1. Eine Seite (Page) 2. Datenbankzugriffe (Mysql) 3. Ausgabe (Templates) 4. Zusammenfassung/Beispiel 5. Weiteres (Config, Logs, Sonstiges) 6. noch Fragen? 1. Eine Seite (Page) Um eine Standardseite zu erstellen benötigt man nur die 'inc.page.php' aus dem Ordner 'inc': Code: include("inc/inc.page.php"); Anmerkung: Diese Datei lädt auch den FLIP Kern 'core/core.php'. Mit der hierin zur Verfügung gestellten Klasse 'Page' lassen sich FLIP-Seiten erstellen. Dazu leitet man eine eigene Klasse von der Klasse 'Page' ab: Code: class aNewPage extends Page { ... } Hinweis: Von Page abgeleitete Klassen müssen immer den Suffix Page tragen, also xyzPage heissen! (Das hilft der Übersicht) Die Pageklasse ist nicht für eine einzelne Seite (frame) sondern für eine Menge zusammenhängender Seiten gedacht. Jede Seite bekommt eine eigene Methode (Funktion), welche den Prefix "frame" trägt: Code: function frameMeineEigeneSeite() { ... } Diese Seiten werden normalerweise über die URL aufgerufen: "script.php?frame=MeineEigeneSeite". Wenn der Parameter frame nicht angegeben wird, so wird die Standardseite ('framedefault()') aufgerufen. Der Rückgabewert dieser Methode (Funktion) sollte ein Array sein welches Schlüssel=>Wert Paare beinhaltet, z.B.: Code: return array("date"=>"24. Dezember 3042", "title"=>"a holy event", text"=>"some text"); Diese können dann in ein Template eingebaut werden (siehe "3. Ausgabe (Templates)"). Um die Seite laufen zu lassen (anzeigen) muss ausserhalb der Klasse diese noch mittels RunPage() aufgerufen werden, z.B.: Code: RunPage("xyzPage"); 2. Datenbankzugriffe (Mysql) Die meisten Daten werden heute in Datenbanken gespeichert, so auch im FLIP. Um an diese ran zu kommen gibt es sehr komfortable Funktionen. Die wichtigsten: MysqlReadArea($query) liest mehrere Zeilen einer Tabelle MysqlReadRow($query) liest eine Zeile MysqlReadField($query, $field) liest eine Zelle MysqlWriteByID($table, $values[, $ID]) schreibt eine Zeile Hinweis: Zusätzlich gibt es für die beiden mittleren noch den Zusatz 'ByID', welche (wie WriteByID) ohne ausgeschriebene Query auskommen. Entsprechend der Anforderungen bekommt man von den Funktionen (von oben nach unten) ein mehrdimensionales Array, ein einfaches Array oder einen String. MysqlWriteByID gibt die ID des geschriebenen Datensatzes zurück. 3. Ausgabe (Templates) Um seine Daten korrekt auszugeben braucht man ein Template. Dieses heisst standardmäßig so wie die Skriptdatei auch und liegt unter 'tpl/default', also z.B.: neues.php -> tpl/default/neues.tpl In dieser Datei gibt es dann so genannte "Subs", welche nach den Frames (Seiten) benannt sind z.B. für den Frame 'default': {#SUB default} ... {#END} Wie man sieht stehen Templatebefehle in geschweiften Klammern und beginnen mit #. Die meisten müssen mit einem {#END} abgeschlossen werden. Innerhalb eines Blockes kann ganz normal HTML geschrieben werden. Variablen die von einer framexyz() Methode zurückgeliefert werden, können per {$var} eingefügt werden (z.B. von "return array( "var"=>MysqlReadField(...) );"). 4. Zusammenfassung/Beispiel Eine Seite braucht meist nur zwei Dateien: den Code und ein Template: code.php: tpl/default/code.tpl: {#SUB default}

{$title}

Heute ist der {$date}. {#END} 5. Weiteres (Config, Logs, Sonstiges) Einstellungen werden in der Datenbank gespeichert. Mittels ConfigGet($name) kann die Konfiguration ausgelesen werden. $name *muss* dabei den Präfix des Modules erhalten damit man weis wozu der Eintrag gehört. Um eine Konfigurationseinstellung zu erstellen benutzt man am besten den Menüpunkt "Admin->Config". Für eine FLIP-Installation müssen diese Einstellungen in der flip.sql stehen. Um diverse Aktivitäten zu loggen braucht man nur die Funktion LogAction($text) aufrufen. Um Änderungen zu dokumentieren wird LogChange($text) benutzt. Wenn nur eine Nachricht angezeigt werden soll kann man trigger_error() benutzen (nicht überall wo error drauf steht ist auch error drin ;). Als weitere nützliche Templatebefehle stehen noch zur Verfügung: {#TABLE $multiarray} für jedes Element in $multiarray wird eine Zeile mit {#COL $key}s ausgegeben ("$multiarray = array(array("key"=>"data", "Col2"=>"moredata"));") {#FOREACH $array} geht jedes Element von Array durch z.B.: array(array("name"=>"August"), array("name"=>"September")) 6. noch Fragen? Hoffentlich gibt es jetz erst recht Fragen die offen sind. Da du sicher nicht alleine bist schau in die FAQ. Sollte es diese noch nicht geben (was zur Drucklegung der Fall ist) schick eine Mail oder Meld dich anderweitig bei anderen/den Entwicklern. weitere Infos (wie zu Kontaktmöglichkeiten) gibt es unter: http://www.flipdev.org