1<?php
2/**
3 * DokuWiki Plugin wst (Syntax Component)
4 *
5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6 * @author  Vitalie Ciubotaru <vitalie@ciubotaru.tk>
7 */
8
9// must be run within Dokuwiki
10if (!defined('DOKU_INC')) die();
11if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
12if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
13if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
14
15class syntax_plugin_wst_includeonly extends DokuWiki_Syntax_Plugin {
16    /**
17     * @return string Syntax mode type
18     */
19    public function getType() {
20        return 'substition';//maybe switch to 'container'
21    }
22    /**
23     * @return string Paragraph type
24     */
25    public function getPType() {
26        return 'normal'; //?
27    }
28    /**
29     * @return int Sort order - Low numbers go before high numbers
30     */
31    public function getSort() {
32        return 320; // should go before Doku_Parser_Mode_media 320
33    }
34//    function getAllowedTypes() { return array('formatting', 'substition', 'disabled'); }
35    /**
36     * Connect lookup pattern to lexer.
37     *
38     * @param string $mode Parser mode
39     */
40    public function connectTo($mode) {
41        $this->Lexer->addSpecialPattern('<includeonly>.*?</includeonly>', $mode, 'plugin_wst_includeonly');
42//        $this->Lexer->addEntryPattern('\{\{[W|w][S|s][T|t]:(?=.*\}\})', $mode, 'plugin_wst');
43    }
44
45/**
46    public function postConnect() {
47        $this->Lexer->addExitPattern('\}\}', 'plugin_wst');
48    }
49**/
50    /**
51     * Handle matches of the wst syntax
52     *
53     * @param string          $match   The match of the syntax
54     * @param int             $state   The state of the handler
55     * @param int             $pos     The position in the document
56     * @param Doku_Handler    $handler The handler
57     * @return array Data for the renderer
58     */
59    public function handle($match, $state, $pos, Doku_Handler $handler){
60		return '';
61    }
62
63    /**
64     * Render xhtml output or metadata
65     *
66     * @param string         $mode      Renderer mode (supported modes: xhtml)
67     * @param Doku_Renderer  $renderer  The renderer
68     * @param array          $data      The data from the handler() function
69     * @return bool If rendering was successful.
70     */
71    public function render($mode, Doku_Renderer $renderer, $data) {
72        if($mode != 'xhtml') return false;
73        if (!$data) return false;
74//		$renderer->doc .= $renderer->render_text($data, 'xhtml');
75        return true;
76    }
77}
78
79