Hallo zusammen,
gibt es irgendwo eine einfach, also eine für "PHP nicht so Wissende", verständliche Erklärung zur Erstellung von CMSimple_XH Plugins? Vielleicht sogar eine Step by Step Anleitung.
Viele Grüße, Ele
Gibt es eine Anleitung zur Erstellung von Plugins?
-
- Posts: 235
- Joined: Mon Mar 07, 2011 4:34 pm
- Location: South of Lower Saxony, Germany
Re: Gibt es eine Anleitung zur Erstellung von Plugins?
Hallo Ele,
für "PHP nicht so Wissende" wird es schwer, ungefähr so schwer wie für "html und CSS nicht wissende" die Erstellung von Templates sein wird.
Aber wir haben ja alle mal angefangen (bei mir ist das noch gar nicht so lange her, was php betrifft).
Ich habe einfach mit dem Example Plugin angefangen:
http://www.cmsimplewiki.com/doku.php/plugins/example
Das demonstriert, wie man ein Plugin aufbaut, aber um eine intensive Beschäftigung mit php wirst Du wohl nicht herumkommen, wenn Du Plugins entwickeln willst,
Gert
für "PHP nicht so Wissende" wird es schwer, ungefähr so schwer wie für "html und CSS nicht wissende" die Erstellung von Templates sein wird.
Aber wir haben ja alle mal angefangen (bei mir ist das noch gar nicht so lange her, was php betrifft).
Ich habe einfach mit dem Example Plugin angefangen:
http://www.cmsimplewiki.com/doku.php/plugins/example
Das demonstriert, wie man ein Plugin aufbaut, aber um eine intensive Beschäftigung mit php wirst Du wohl nicht herumkommen, wenn Du Plugins entwickeln willst,
Gert
-
- Posts: 235
- Joined: Mon Mar 07, 2011 4:34 pm
- Location: South of Lower Saxony, Germany
Re: Gibt es eine Anleitung zur Erstellung von Plugins?
Hallo Gert,
danke für die Antwort.
Den hatte ich bei meinen Recherchen noch nicht gefunden und werde mir den Sache mal ansehen.
Viele Grüße, Ele
danke für die Antwort.
Ja, alles relativGert wrote:für "PHP nicht so Wissende" wird es schwer, ungefähr so schwer wie für "html und CSS nicht wissende" die Erstellung von Templates sein wird.
Gut zu wissen, ich dachte ich bin der EinzigeGert wrote:Aber wir haben ja alle mal angefangen
Danke für den Link.
Den hatte ich bei meinen Recherchen noch nicht gefunden und werde mir den Sache mal ansehen.
Viele Grüße, Ele
Re: Gibt es eine Anleitung zur Erstellung von Plugins?
Hallo Ele,
mit dem Example Plugin habe ich auch angefangen; und dann einfach mal beim ein oder anderen Plugin reingeschaut, wie's da so gemacht wird.
Du solltest Dir aber auch mal das Template Tutorial im XH-Wiki anschauen. Sicher noch ausbaufähig, aber gerade für den ersten Einstieg ganz gut geeignet, hoffe ich. Und als Ergebnis hat man dann gleich ein auch praxistaugliches Plugin (wenn natürlich auch dieses noch ausbaufähig ist).
Und wenn Du schon mal im Developer-Teil des XH-Wiki bist, am besten auch mal einen Blick auf die Golden Rule werfen, und den Rest der Entwicklerdoku (auch noch ausbausfähig ). Die Artikel über System-Variablen und -Funktionen sind dann vermutlich die derzeit beste Referenz; allerdings ist da nicht jede Angabe auf die Goldwaage zu legen.
Wenn Dir Fehler auffallen, oder Du sonst Anregungen und Kritik hast: bitte raus damit! Wie gesagt: da sollte noch einiges verbessert werden.
Christoph
PS: Ich habe mir das Example-Plugin/Tutorial gerade noch mal angeschaut. Dazu folgende Bemerkungen:
mit dem Example Plugin habe ich auch angefangen; und dann einfach mal beim ein oder anderen Plugin reingeschaut, wie's da so gemacht wird.
Du solltest Dir aber auch mal das Template Tutorial im XH-Wiki anschauen. Sicher noch ausbaufähig, aber gerade für den ersten Einstieg ganz gut geeignet, hoffe ich. Und als Ergebnis hat man dann gleich ein auch praxistaugliches Plugin (wenn natürlich auch dieses noch ausbaufähig ist).
Und wenn Du schon mal im Developer-Teil des XH-Wiki bist, am besten auch mal einen Blick auf die Golden Rule werfen, und den Rest der Entwicklerdoku (auch noch ausbausfähig ). Die Artikel über System-Variablen und -Funktionen sind dann vermutlich die derzeit beste Referenz; allerdings ist da nicht jede Angabe auf die Goldwaage zu legen.
Wenn Dir Fehler auffallen, oder Du sonst Anregungen und Kritik hast: bitte raus damit! Wie gesagt: da sollte noch einiges verbessert werden.
Christoph
PS: Ich habe mir das Example-Plugin/Tutorial gerade noch mal angeschaut. Dazu folgende Bemerkungen:
- Dort findet man, wie auch in so manchem anderen Plugin, folgende Zeilen:
Das ist natürlich Unfug. Man will niemals einen gleichnamigen $_GET und $_POST Parameter aneinander hängen (es können nämlich durchaus beide gesetzt sein). Einfacher und korrekter geht es mit
Code: Select all
$admin = isset($_GET['admin']) ? $_GET['admin'] : ''; $admin .= isset($_POST['admin']) ? $_POST['admin'] : '';
was aber nach dem Aufruf von print_plugin_admin() nicht nötig ist, weil es dort schon aufgerufen wird. $_REQUEST['admin'] geht grundsätzlich auch, allerdings wird hier ggf. noch ein entsprechender Cookie berücksichtigt.Code: Select all
initvar('admin');
- Des weiteren findet man im Example-Plugin:
Ich empfehle auf das $hint['mode_donotshowvarnames'] zu verzichten. Das wird von fast keinem Plugin genutzt, und fliegt vermutlich bei XH 1.6 auch raus. Die Parameter für plugin_admin_common() sind zwar richtig dokumentiert, aber die ersten drei spielen keine Rolle, da diese Funktion direkt zu Beginn die Parameter durch globale Variablen überschreibt. Aber vielleicht wird das irgendwann mal behoben, so dass man die Parameter korrekt angeben sollte. Eselsbrücke: $action, $admin, $plugin einfach in alphabetischer Reihenfolge angeben. Und wer auf die Idee kommt, diese Parameter zu ändern (bzw. damit überhaupt was passiert, die globalen Parameter kurzfristig zu verbiegen), um die Funktion für eigene Zwecke zu missbrauchen: spart Euch die Zeit -- da ist leider nichts zu wollen.
Code: Select all
$hint=ARRAY(); $hint['mode_donotshowvarnames'] = TRUE; /* * Handle reading and writing of plugin files (e.g. en.php, config.php, stylesheet.css) * * Arguments: * * - STRING $action: 'plugin_edit' - edit variables (e.g. config variables) * 'plugin_text' - edit text (e.g. stylesheet, plain text messages) * 'plugin_save' - save variables * 'plugin_textsave' - save text * * - STRING $admin: 'plugin_config' - edit Plugin Config * 'plugin_language' - edit Plugin Language * 'plugin_main' - show/edit Plugin Main * 'plugin_stylesheet' - edit Plugin Stylesheet * * - STRING $plugin '<PLUGIN_NAME>' - The name of the plugin (use $plugin whenever possible) * * - ARRAY $hint ['cf_variable_name'] - Show description/hint for variables * You may set hints either in the language files like $plugin_tx['example_plugin']['cf_my_name'] * or define them directly like this: $hint['cf_my_name'] = 'test: my hint'; * * ['mode_donotshowvarnames'] - Do not show hints (TRUE) or show hints (FALSE) * * */ $o.=plugin_admin_common($action, $admin, $plugin, $hint);
- Im Example-Plugin findet man weiterhin:
Das Deklarieren von globalen Variablen ist im Datei-Scope nicht nötig, da die Plugins (index.php und admin.php) im globalen Scope included werden; und das wird gewiss auch so bleiben, weil sonst viele Plugins nicht mehr funktionieren würden.
Code: Select all
global $sn,$sv,$sl,$pth; global $plugin;
- Folgendes ist ebenfalls unnötig:
weil $plugin bereits vom Pluginloader richtig gesetzt wird, bevor index.php und admin.php included werden. Allerdings ist $plugin nicht mehr gültig, wenn dann bereits das nächste Plugin eingelesen wurde; also wenn aus dem Content oder dem Template eine Pluginfunktion aufgerufen wird.
Code: Select all
$plugin=basename(dirname(__FILE__),"/");
- Vorsicht mit dem unteren Teil von admin.php (ab Zeile 225). Da werden einige Funktionen aufgerufen (Plugin...()), die vermutlich in XH 1.6 nicht mehr vorhanden sind. Ich gehe eigentlich davon aus, dass die bei keinem Plugin genutzt werden. Falls doch, müssten sie zunächst weiter zur Verfügung gestellt werden. Weiß da jemand was drüber?
Last edited by cmb on Sat Jan 05, 2013 10:32 pm, edited 1 time in total.
Reason: added PS
Reason: added PS
Christoph M. Becker – Plugins for CMSimple_XH