1*e874628fSMatthias Schulte<?php 2*e874628fSMatthias Schulte/** 3*e874628fSMatthias Schulte * Description plugin 4*e874628fSMatthias Schulte * 5*e874628fSMatthias Schulte * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 6*e874628fSMatthias Schulte * @author Matthias Schulte <mailinglist@lupo49.de> 7*e874628fSMatthias Schulte */ 8*e874628fSMatthias Schulte 9*e874628fSMatthias Schulte// must be run within Dokuwiki 10*e874628fSMatthias Schulteif(!defined('DOKU_INC')) die(); 11*e874628fSMatthias Schulte 12*e874628fSMatthias Schulteif (!defined('DOKU_LF')) define('DOKU_LF', "\n"); 13*e874628fSMatthias Schulteif (!defined('DOKU_TAB')) define('DOKU_TAB', "\t"); 14*e874628fSMatthias Schulteif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 15*e874628fSMatthias Schulte 16*e874628fSMatthias Schulterequire_once(DOKU_PLUGIN.'syntax.php'); 17*e874628fSMatthias Schulte 18*e874628fSMatthias Schulteclass syntax_plugin_description extends DokuWiki_Syntax_Plugin { 19*e874628fSMatthias Schulte 20*e874628fSMatthias Schulte function getType() { return 'substition'; } 21*e874628fSMatthias Schulte function getPType() { return 'block'; } 22*e874628fSMatthias Schulte function getSort() { return 98; } 23*e874628fSMatthias Schulte 24*e874628fSMatthias Schulte function connectTo($mode) { 25*e874628fSMatthias Schulte $this->Lexer->addSpecialPattern('\{\{description>.+?\}\}', $mode, 'plugin_description'); 26*e874628fSMatthias Schulte } 27*e874628fSMatthias Schulte 28*e874628fSMatthias Schulte function handle($match, $state, $pos, &$handler) { 29*e874628fSMatthias Schulte $match = substr($match, 14, -2); // strip markup 30*e874628fSMatthias Schulte $match = hsc($match); 31*e874628fSMatthias Schulte 32*e874628fSMatthias Schulte return array($match); 33*e874628fSMatthias Schulte } 34*e874628fSMatthias Schulte 35*e874628fSMatthias Schulte function render($mode, &$renderer, $data) { 36*e874628fSMatthias Schulte global $conf; 37*e874628fSMatthias Schulte global $ID; 38*e874628fSMatthias Schulte $description = $data[0]; 39*e874628fSMatthias Schulte if(empty($description)) return false; 40*e874628fSMatthias Schulte 41*e874628fSMatthias Schulte if ($mode == 'xhtml') { 42*e874628fSMatthias Schulte $metadata = p_get_metadata($ID); 43*e874628fSMatthias Schulte $metadata['plugin_description']['description'] = $description; 44*e874628fSMatthias Schulte $c = p_set_metadata($ID, $metadata); 45*e874628fSMatthias Schulte 46*e874628fSMatthias Schulte return true; 47*e874628fSMatthias Schulte } 48*e874628fSMatthias Schulte return false; 49*e874628fSMatthias Schulte } 50*e874628fSMatthias Schulte} 51*e874628fSMatthias Schulte 52*e874628fSMatthias Schulte// vim:ts=4:sw=4:et: 53