xref: /plugin/nosecedit/syntax.php (revision a342ad330fe4737b0c00b28f9abe760d33c510cb)
1dafc4672Slisps<?php
2dafc4672Slisps/**
3dafc4672Slisps * DokuWiki Plugin nosecedit (Syntax Component)
4dafc4672Slisps *
5dafc4672Slisps *
6dafc4672Slisps * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
7dafc4672Slisps * @author  lisps
8*a342ad33Seinhirn * @author  einhirn
9dafc4672Slisps */
10dafc4672Slisps
11*a342ad33Seinhirnuse dokuwiki\Extension\SyntaxPlugin;
12dafc4672Slisps
13dafc4672Slisps/*
14dafc4672Slisps * All DokuWiki plugins to extend the parser/rendering mechanism
15dafc4672Slisps * need to inherit from this class
16dafc4672Slisps */
17dafc4672Slispsclass syntax_plugin_nosecedit extends DokuWiki_Syntax_Plugin
18dafc4672Slisps{
19dafc4672Slisps
20dafc4672Slisps    /*
21dafc4672Slisps     * enable sectionedit by default
22dafc4672Slisps     */
23*a342ad33Seinhirn    public function __construct()
24dafc4672Slisps    {
25dafc4672Slisps        global $ID;
26dafc4672Slisps
27*a342ad33Seinhirn        if ($ID != "") {
28dafc4672Slisps            p_set_metadata($ID,array("sectionedit"=>"on"),FALSE,TRUE);
29dafc4672Slisps        }
30dafc4672Slisps    }
31dafc4672Slisps
32dafc4672Slisps    /*
33dafc4672Slisps     * What kind of syntax are we?
34dafc4672Slisps     */
35*a342ad33Seinhirn    public function getType()
36dafc4672Slisps    {
37dafc4672Slisps        return 'substition';
38dafc4672Slisps    }
39dafc4672Slisps
40dafc4672Slisps    /*
41dafc4672Slisps     * Where to sort in?
42dafc4672Slisps     */
43*a342ad33Seinhirn    public function getSort()
44dafc4672Slisps    {
45dafc4672Slisps        return 155;
46dafc4672Slisps    }
47dafc4672Slisps
48dafc4672Slisps    /*
49dafc4672Slisps     * Paragraph Type
50dafc4672Slisps     */
51*a342ad33Seinhirn    public function getPType()
52dafc4672Slisps    {
53dafc4672Slisps        return 'normal';
54dafc4672Slisps    }
55dafc4672Slisps
56dafc4672Slisps    /*
57dafc4672Slisps     * Connect pattern to lexer
58dafc4672Slisps     */
59*a342ad33Seinhirn    public function connectTo($mode)
60dafc4672Slisps    {
61dafc4672Slisps        $this->Lexer->addSpecialPattern("~~NOSECTIONEDIT~~",$mode,'plugin_nosecedit');
62dafc4672Slisps    }
63dafc4672Slisps
64dafc4672Slisps
65dafc4672Slisps    /*
66dafc4672Slisps     * Handle the matches
67dafc4672Slisps     */
68*a342ad33Seinhirn    public function handle($match, $state, $pos, Doku_Handler $handler)
69dafc4672Slisps    {
70dafc4672Slisps        global $ID;
71dafc4672Slisps        return (array($ID=>TRUE));
72dafc4672Slisps    }
73dafc4672Slisps
74dafc4672Slisps    /*
75dafc4672Slisps     * Create output
76dafc4672Slisps     */
77*a342ad33Seinhirn    public function render($mode, Doku_Renderer $renderer, $opt)
78dafc4672Slisps    {
79dafc4672Slisps        global $ID;
80dafc4672Slisps
81dafc4672Slisps        //save flags to metadata
82dafc4672Slisps        //if($mode == 'metadata')
83dafc4672Slisps        {
84*a342ad33Seinhirn            if (isset($opt[$ID])==TRUE) {
85*a342ad33Seinhirn                p_set_metadata($ID,array("sectionedit"=>"off"),TRUE,TRUE);
86dafc4672Slisps            }
87*a342ad33Seinhirn            else {
88dafc4672Slisps                p_set_metadata($ID,array("sectionedit"=>"on"),FALSE,TRUE);
89dafc4672Slisps            }
90dafc4672Slisps        }
91dafc4672Slisps        return (TRUE);
92dafc4672Slisps    }
93dafc4672Slisps}
94dafc4672Slisps//Setup VIM: ex: et ts=4 enc=utf-8 :
95