Mit dem Developer-Kit hast du die Möglichkeit eigene Plugins zu entwickeln. Lade das Developer-Kit herunter und leg los! Alle Plugins, welche du damit entwickelst, unterliegen den Richtlinien und Lizenzverträgen von doitclever.ch.
Sobald du das Zip File heruntergeladen hast, kannst du dieses in deiner Testumgebung entpacken. Wir empfehlen dir die Testumgebung XAMPP in Kombination mit PHP 7. Anschliessend reicht es, wenn du das index.php wie folgt aufrufst:
http://localhost/index.php
Was du dann siehst ist die Test Webseite deines Developer-Kits.
Jedes Plugin braucht seine Initialdatei 1 und ein zugehöriges Verzeichnis 1. Der Name der Initialdatei (im Beispiel "Footer.php"), kann individuell benannt werden, solange das zugehörige Verzeichnis denselben Namen trägt (im Beispiel "Footer"). Nur dann kann das Plugin automatisch eingebunden werden.
Die Initialdatei 1 wird entweder auf einer Seite geladen, bei welcher das Plugin hinterlegt wurde (nur im Livesystem möglich) oder, sofern der Developer-Mode aktiviert wurde, auf allen Seiten eingebunden. Dieser Modus wird empfohlen, damit die Initialdatei immer direkt geladen wird (siehe weiter oben).
Innerhalb des Plugin Verzeichnisses 1 muss zwingend ein Sprachverzeichnis 2 und eine config.php Datei 3 vorhanden sein. Die Sprachfiles (DE.php, EN.php, ...) enthalten dabei alle Sprach relevanten Ausdrücke für das config.php 3 und auch der Initialdatei 1.
Dein Developer-Kit ist nun im Stande deine Plugins automatisch zu laden und den Sicherheitsmechanismus lokal zu deaktivieren. Solche Einstellungen nimmst du im globalen config.php File deiner Test Webseite vor:
http://localhost/Homepage/php/Configuration/config.php
Damit deine Plugins geladen werden, auch ohne, dass du diese speziell angeben musst, reicht es aus, wenn du folgende Zeile im config.php änderst. Wenn du diese Einstellung änderst, so werden alle deine Plugins auf jeder deiner Seiten automatisch eingebunden und direkt geladen.
define("KONST_developer_mode", "yes");
Zu jedem Plugin gehört zudem eine eigene config.php Datei, welches die Einstellungen des Plugins als GUI im Browser anzeigen kann. Dieses config.php wird im Livesystem normalerweise durch das Login geschützt. Damit du das config.php auch ohne Login Angaben im Browser öffnen kannst, muss du folgende Zeilen ändern:
define("KONST_inactive_plugin_safety", "yes");
Die config.php Datei wird im Livesystem direkt geladen, wenn der ein Nutzer bei seinem gewünschten Plugin auf "Einstellungen" klickt. Es ist also für die Nutzer deines Plugins direkt sichtbar. Deshalb solltest du das config.php als kleines GUI betrachten, welches deinen Nutzern zur Verfügung steht. Dieses config.php ist normalerweise durch das Login geschützt. In der Testumgebung kann das config.php deines Plugins auch ohne Login aufgerufen werden, solange die Zeilen des Developer-Modus aktiviert sind (siehe oben).
Das entsprechende config.php deines Plugins kann anschliessend wie folgt aufgerufen werden:
http://localhost/Homepage/plugins/Footer/config.php
Du kannst ausserdem die Sprache deiner config.php Datei wechseln, indem du einen entsprechenden URL Parameter anhängst:
http://localhost/Homepage/plugins/Footer/config.php?language=EN
Damit das config.php einerseits alle erforderlichen Skripte im Hintergrund laden kann und später auch automatisch durch das Login geschützt ist, müssen im config.php mindestens folgende zwei Dateien inkludiert werden. Diese müssen zwingend am Anfang und am Ende deiner config.php Datei eingebunden werden:
require_once('php/Configuration/start.php'); ... require_once('php/Configuration/end.php');
Zwischen diesen Zeilen kannst du nun deine eigenen Zeilen programmieren. Bitte achte darauf für dein HTML Styling die im Hintergrund implementierte Style Bibliothek "Foundation Framework" zu verwenden. Alle Infos dazu findest du HIER.
Es kann sein, dass eine Webseite mehrere Sprachen unterstützt. Beispiel doitclever.ch/DE oder doitclever.ch/EN. Wenn ein solcher Sprachwechsel in der URL geschieht, so ändern auch die Pfade in der Initialdatei. Damit du dich darum nicht kümmern musst, kannst du einfach allen Dateipfaden, welche aus der Initialdatei geladen werden, diesen Parameter anhängen:
LANG_path (Muss jedem Pfad angehängt werden, welcher innerhalb der Initialdatei geladen wird) z.B. $html->get_data(LANG_path.'Homepage/plugins/Footer/data.json');
Mit einem weiteren Parameter ermittelst du immer die aktuell eingestellte Sprache. Diesen Parameter kannst du z.B. auch bei einer Datenbank Abfrage verwenden:
LANG_current_language (Aktuelle Sprache, z.B. DE,EN,...) KONST_page (Aktuelle Page ID, z.B. 1)
Bitte verwende als Datenbank immer SQLite. Alternativ kannst du mit JSON Files arbeiten, wie etwa das Footer Plugin dies tut. Dies ist allerdings nur bei wenigen Datensätzen sinnvoll. Speichere deine SQLite Datenbank bitte wie folgt:
http://localhost/Homepage/plugins/Blog/db/blog.db
Um auf die SQLite Datenbank zugreifen zu können, bietet sich die PDO Schnittstelle hervorragen dafür an. Diese wird von XAMPP und fast allen Hostings von Haus aus unterstützt:
$db = new PDO('sqlite:'.LANG_path.'db/blog.db'); $db->query("SELECT * FROM blog WHERE language = '".LANG_current_language."';");
Es gibt eine Reihe von Files, welche im index.php automatisch geladen werden, sofern diese existieren. Wenn du beispielsweise ein zusätzliches CSS File für dein Plugin laden möchtest, so reicht es, wenn du das File wie folgt erstellst:
http://localhost/Homepage/plugins/Footer/css/style.css
Du kannst auch weitere Meta-Daten hinzufügen oder Skripte laden, welche vor dem body Tag geladen werden müssen.
http://localhost/Homepage/plugins/Footer/meta.php
Bitte beachte, dass jquery erst am Ende des body Tags geladen wird und es sich deshalb anbieten, weitere Skripte mit einem weiteren File einzubinden. Dieses File wird nach der jquery Bibliothek automatisch geladen, sofern es existiert:
http://localhost/Homepage/plugins/Footer/paths.php
Bitte achte darauf, die hochgeladenen Dateien des Nutzers, welche z.B. über die Einstellungen des Plugins (config.php) hochgeladen werden könnten, im "uploads" Verzeichnis zu speichern. Dadurch kann der Nutzer auch über den Filemanager von doitclever auf diese Daten zugreifen und hat so mehr Freiheiten. Idealerweise erstellst du ein gleichnamiges Verzeichnis wie dein Plugin:
http://localhost/../Homepage/uploads/Pluginname/
Wenn das Fileman Plugin ebenfalls vorhanden ist (sollte im Developer-Kit bereits enthalten sein), so kannst du auch den Editor und den Filemanager in deinem Plugin verwenden. Wenn das Fileman Plugin vorhanden ist, dann kannst du deinen textareas folgende Klasse hinzufügen:
... textarea class="ckeditor" ...
Wenn du nun mit dem CK Editor Bilder einfügen möchtest, so bietet das Fileman Plugin eine Methode, mit welcher Bildpfade automatisch bereinigt werden sollten. Diese Methode solltest du nutzen, um den Inhalt des Editors entsprechend zu säubern, bevor der Inhalt in einer SQLite Datenbank oder in einem JSON File gespeichert wird.
//If the plugin "Fileman" exists, this method will change image paths to relative paths if(file_exists('Fileman/Classes/ClsFileman.php')){ include_once('Fileman/Classes/ClsFileman.php'); $fileman = New Fileman(); $data = $fileman->clean_code($_POST['code'],'save'); }else{ $data = $data; }
Damit der Code aus der Datenbank ebenfalls korrekt angezeigt wird, solltest du die folgende Methode verwenden:
$fileman = New Fileman(); $data = $fileman->clean_code($html,'get');
Auf ein Plugin kann man auch mittels Short View Funktion zugreiffen. Dafür ist folgendes File nötig:
http://localhost/../Homepage/uploads/Pluginname/view.php
Das view.php File ist oft identisch mit dem config.php. Achten Sie also auch hier darauf alle Sicherheitsmechanismen einzubauen.
Ist dieses File vorhanden, so wird dieses auf allen Seiten, für welche das Plugin aktiviert wurde, geladen. Das view.php wird in einem iframe geladen, welches direkt zwischen den jeweiligen Inhalten aufgerufen werden kann.
Wird das view.php aus dem iframe geladen, so werden den File automatisch folgende Paramter angehängt. Diese können nun mit dem Plugin abgefangen und ausgelesen werden.
shortcut=yes *Das Plugin wurde via Shortcut aufgerufen page=61 *Das Plugin wurde von der Page mit der ID 61 aufgerufen
Damit die Parameter permanent zur Verfügung stehen, kann der Programmierer diese Parameter beispielsweise in einem Session Cookie speichern und immer wieder auslesen.
if(isset($_REQUEST['page']) AND $_REQUEST['page'] != ''){ $_SESSION['page'] = $_REQUEST['page']; } if(isset($_REQUEST['shortcut']) AND $_REQUEST['shortcut'] != ''){ $_SESSION['shortcut'] = $_REQUEST['shortcut']; }