');
ptln('
'. hsc($this->BP_Message) .'');
$event->preventDefault(); // Stoppen weiterer Ausgabe
$event->stopPropagation();
}
}
/**
* weitere Funktion für irgend etwas falls Bedarf
*/
function __doSomething() {
// hier Code schreiben
}
}
?>
Weitere Infos zu [[doku>devel:action_plugins|Action Plugins]].
===== helper.php =====
*/
if(!defined('DOKU_INC')) die();
class helper_plugin_example extends DokuWiki_Plugin {
/**
* Initialisierung (optional nur wenn Bedarf)
*/
var $config = array();
function helper_plugin_example(){
global $conf;
$this->config = $conf;
}
/**
* Funktion für irgend etwas
*/
function doSomething() {
// hier Code schreiben
}
}
?>
Weitere Infos zu [[doku>devel:helper_plugins|Helper Plugins]].
===== syntax.php =====
*/
if(!defined('DOKU_INC')) die();
//if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
//if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
require_once DOKU_PLUGIN.'syntax.php';
class syntax_plugin_example extends DokuWiki_Syntax_Plugin {
/**
* Initialisierung (optional nur wenn Bedarf)
*/
var $config = array();
function syntax_plugin_example(){
global $conf;
$this->config = $conf;
}
/**
* weitere Basis-Funktionen
*/
function getType() {
return 'substition';
}
function getSort() {
return 169;
}
function connectTo($mode) {
$this->Lexer->addSpecialPattern('{{tag>.*?}}',$mode,'plugin_example');
}
function handle($match, $state, $pos, &$handler){
global $conf;
$this->Info = $this->getInfo();
$this->Info['PluginPath'] = DOKU_PLUGIN.$this->Info['base'].'/';
// Eingabe-Wert verarbeiten
$returnWert = $match;
// Übergabe-Wert für Renderer
return $returnWert;
}
function render($mode, &$render, $data) {
if($mode != 'xhtml') return false;
// Übergabe-Wert vom handle()
$returnWert = $data;
// Ausgabe erzeugen
$render->doc .= hsc('irgend eine Ausgabe');
return true;
}
/**
* weitere Funktion für irgend etwas (falls Bedarf)
*/
function _doSomething() {
// hier Code schreiben
}
}
?>
Weitere Infos zu [[doku>devel:syntax_plugins|Syntax Plugins]].
TODO Sort-Liste verlinken
===== renderer.php =====
*/
if(!defined('DOKU_INC')) die();
require_once DOKU_INC.'inc/parser/xhtml.php';
class renderer_plugin_example extends Doku_Renderer_xhtml {
/**
* Initialisierung (optional nur wenn Bedarf)
*/
var $config = array();
function renderer_plugin_example(){
global $conf;
$this->config = $conf;
}
/**
* Make available as XHTML replacement renderer
*/
function canRender($format){
if($format == 'xhtml') return true;
}
/**
* Beispiel einer geänderten Funktion aus
* http://xref.dokuwiki.org/reference/dokuwiki/inc/parser/xhtml.php.html
*
* Renders internal and external media
*
* @author Andreas Gohr
* @changes M.K. Hitzigrath
*/
function _media ($src, $title=NULL, $align=NULL, $width=NULL,
$height=NULL, $cache=NULL, $render = true) {
$ret = '';
// ...
// eigentlicher Original-Code mit den Änderungen
// ...
return $ret;
}
/**
* weitere Funktion für irgend etwas falls Bedarf
*/
function own_doSomething() {
// hier Code schreiben
}
}
?>
Weitere Infos zu [[doku>devel:renderer_plugins|Renderer Plugins]].
===== auth.php =====
TODO
===== remote.php =====
TODO
{{description>Hilfestellung zur Programmierung von Plugins für DokuWiki. Dabei handelt es sich um einfache Grundgerüste zum Starten einer kleinen Plugin-Entwicklung.}}
{{keywords>entwicklung,development}}
{{tag>dokuwiki programmierung plugin vorlagen}}
//Dieser Artikel ist publiziert unter: {{license>by-nc-sa,small}}//