Demoplugin für die Seitenleiste
Ein eigenes Plugin für die Seitenleiste zu erstellen ist einfach. Sie können somit eigene Inhalte wie HTML, Java Script und PHP einbinden. Es sind folgende Konventionen dabei einzuhalten:
- Alle Plugins liegen im Verzeichnis plugins/. Zusätzliche Unterverzeichnisse innerhalb dieses Ordners sind erlaubt. (z.B. für Dateien die das Plugin benötigt)
- Es muss innerhalb eines Plugins eine Funktion vorhanden sein, welche den selben Namen hat wie die Plugin Datei. Das Plugin demoplugin.php muss daher also eine Funktion demoplugin() {} beinhalten (siehe Beispiele). Weitere Funktionen innerhalb des Plugins sind erlaubt.
- Die Signatur(Parameterliste) der Plugin Funktion darf nicht verändert werden.
Beispiel 1: Demoplugin mit PHP Code, abgespeichert als demoplugin.php
<?php
function demoplugin($output, $lang, $post, $get) {
//Ab hier Ihr PHP Code...
}
?>
Beispiel 2: Demoplugin mit HTML oder JavaScript Code, abgespeichert als demoplugin.php
<?php
function demoplugin($output, $lang, $post, $get) {
?>
//Ab hier Ihr HTML/JavaScript Code...
<?php
}
?>
Das $output Objekt
Das Output Objekt $output ist neu ab Version 0.6. Dieses Objekt bietet Ihnen Zugriff auf den Blogkern(Core). Sie können über
diese Objekt die aktuelle Blogkonfiguration auslesen und verändern, Datenbankoperationen ausführen oder die Scriptlaufzeit
messen. Ebenso bietet es kleine Helferlein, wie eine Funktion zum Ermitteln von Userleveln oder dem Parsen von Videos. Eine umfangreiche
Auflistung aller Funktionen/Methoden und Eigenschaften finden Sie in den Expblog PHPDocs.
Sie können das Objekt "out of the box" in Ihren Plugins nutzen. Anbei eine kurze Erklärung der wichtigsten Methoden und Eigenschaften:
- $output->config
Referenz auf das Array mit der Blogkonfiguration - $output->config['blogtitel']
Der Titel des Blogs. Wird als Metaangabe und im Blogkopf benutzt. - $output->config['meta_description']
Metaangabe Beschreibung - $output->config['meta_keywords']
Metaangabe Stichwörter - $output->config['meta_robots']
Metaangabe Robots - $output->config['admin_dir']
Relativer Pfad (ausgehend vom Blogverzeichnis) zum Admininistrationsbereich - $output->config['style_dir']
Relativer Pfad (ausgehend vom Blogverzeichnis) zum Template Verzeichnis - $output->config['style']
Name des aktuell verwendeten Styles (gleichnamiger Ordner liegt unterhalb von templates/) - $output->config['language']
Aktuell verwendete Sprache (default: german) - $output->config['kommentare']
Status der Wartungsmodus (0=deaktiviert;1=aktiviert) - $output->config['wartungsmodus']
Status des Kommentare (0=deaktiviert;1=aktiviert) - $output->config['spamschutz']
Status des Captchas (0=deaktiviert;1=aktiviert) - $output->config['suche']
Status der Suchfunktion (0=deaktiviert;1=aktiviert) - $output->config['modrewrite']
Status der Sauberen URLs (0=deaktiviert;1=aktiviert) - $output->config['hitcounter']
Status des Besucherzählers von Artikeln (0=unsichtbar;1=sichtbar) - $output->config['bookmarkicons']
Status der Bookmarkicons (0=unsichtbar;1=sichtbar) - $output->config['mailbenachrichtigung']
Status der Mailbenachrichtigungen bei neuen Kommentaren (0=deaktiviert;1=aktiviert) - $output->config['mailbenachrichtigung_email']
Email Adresse für Mailbenachrichtigungen bei neuen Kommentaren - $output->config['videoabmessung_b']
Breite von eingebetteten Videos - $output->config['videoabmessung_h']
Höhe von eingebetteten Videos - $output->config['index_maxnews']
Maximale Anzahl von News auf der Startseite - $output->config['rpcstatus']
Status des RPC Pings (0=deaktiviert;1=aktiviert) - $output->config['dbms']
Verwendetes Datenbank Mangement System (mysql oder sqlite) - $output->config['impstatus']
Status des Impressums (0=unsichtbar;1=sichtbar) - $output->config['impname']
Vor- und Nachname für das Impressum - $output->config['impstr']
Strasse und Hausnummer für das Impressum - $output->config['impplzort']
PLZ und Ort für das Impressum - $output->config['impemail']
Email Adresse für das Impressum - $output->config['rssstatus']
Status des RSS Feeds (0=deaktiviert;1=aktiviert) - $output->config['rsstitel']
Titel des RSS Feeds - $output->config['rssbeschreibung']
Kurzbeschreibung von Feed und Blog - $output->config['rsssprache']
Sprache des Feeds (default= de-de) - $output->config['rsscopyright']
Rechteinhaber des Feeds
- $output->sql
Das Datenbankobjekt der Outputklasse - $output->sql->query(string, bool)
Funktion für MYSQL Anfragen. Die Ausgabe der Anfrage kann über den boolschen Parameter aktiviert werden. (nützlich zum Debuggen von Queries) - $output->sql->checkSql(string)
Funktion gegen SQL-Injection. Fremde Inhalte(Formulareingaben, ect.) sollten vor Verwendung in SQL Anfragen generell mit dieser Funktion abgesichert werden.
Das $lang Array
Im $lang Array ist die Sprachdatei enthalten. Für mehr Informationen werfen Sie einen Blick in die in Ihrem Blog verwendete Sprachdatei.
Die Arrays $get und $post
Die Arrays $get und $post sind Kopien(keine Referenzen!) der Superglobalen $_GET und $_POST. Damit sich Plugins untereinander nicht ins Gehege kommen, wird empfohlen die Kopien und nicht die Superglobalen zu nutzen.
Konstanten
Das Expblog nutzt einige Konstanten, welche Sie auch in den Plugins verwenden können. Die Konstanten sind in den Dateien system/expconf.php und system/sqlconf.php zu finden. Denken Sie daran das Konstanten zur Laufzeit nicht änderbar sind!
- DB_TABLE_user
Name der User Tabelle (inkl. Prefix) - DB_TABLE_news
Name der News Tabelle (inkl. Prefix) - DB_TABLE_counter
Name der Counter Tabelle (inkl. Prefix) - DB_TABLE_kategorien
Name der Kategorien Tabelle (inkl. Prefix) - DB_TABLE_kommentare
Name der Kommentar Tabelle (inkl. Prefix) - DB_TABLE_warteschlange
Name der Warteschlangen Tabelle (inkl. Prefix) - DB_TABLE_blogroll
Name der Blogroll Tabelle (inkl. Prefix) - DB_TABLE_rpcping
Name der RPC Ping Tabelle (inkl. Prefix) - HOST
Name oder IP des MYSQL Servers - DATABASE
Name der MYSQL Datenbank - USERNAME
Username des Datenbankbenutzers - PASSWORD
PAsswort des Datenbankbenutzers - PREFIX
Tabellenprefix - WEBPATH
URL zum Blogverzeichnis (mit abschliessendem Slash) - ABSPATH
Absoluter Pfad zum Blogverzeichnis (mit abschliessendem Slash) - INITIME
Startzeitpunkt des Blogs als UNIX Timestamp - VERSION
Blogversion


