xref: /plugin/description/syntax.php (revision e874628f501028305d52a7ef2ea2da7fb8c14bd7)
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