1*ef159648SSzymon Olewniczak<?php 2*ef159648SSzymon Olewniczak/** 3*ef159648SSzymon Olewniczak * Plugin Now: Inserts a timestamp. 4*ef159648SSzymon Olewniczak * 5*ef159648SSzymon Olewniczak * @license GPL 3 (http://www.gnu.org/licenses/gpl.html) 6*ef159648SSzymon Olewniczak */ 7*ef159648SSzymon Olewniczak// must be run within DokuWiki 8*ef159648SSzymon Olewniczakif(!defined('DOKU_INC')) die(); 9*ef159648SSzymon Olewniczak 10*ef159648SSzymon Olewniczakif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 11*ef159648SSzymon Olewniczakrequire_once DOKU_PLUGIN.'syntax.php'; 12*ef159648SSzymon Olewniczak/** 13*ef159648SSzymon Olewniczak * All DokuWiki plugins to extend the parser/rendering mechanism 14*ef159648SSzymon Olewniczak * need to inherit from this class 15*ef159648SSzymon Olewniczak */ 16*ef159648SSzymon Olewniczakclass syntax_plugin_bez_query extends DokuWiki_Syntax_Plugin { 17*ef159648SSzymon Olewniczak 18*ef159648SSzymon Olewniczak public function getType() { return 'container'; } 19*ef159648SSzymon Olewniczak public function getAllowedTypes() { 20*ef159648SSzymon Olewniczak return array('container', 'formatting', 'substition', 'disabled'); 21*ef159648SSzymon Olewniczak } 22*ef159648SSzymon Olewniczak public function connectTo($mode) { 23*ef159648SSzymon Olewniczak $this->Lexer->addEntryPattern('<bez-query.*?>(?=.*?</bez-query>)',$mode,'plugin_bez_query'); 24*ef159648SSzymon Olewniczak } 25*ef159648SSzymon Olewniczak public function postConnect() { 26*ef159648SSzymon Olewniczak $this->Lexer->addExitPattern('</bez-query>','plugin_bez_query'); 27*ef159648SSzymon Olewniczak } 28*ef159648SSzymon Olewniczak public function getSort() { return 34; } 29*ef159648SSzymon Olewniczak 30*ef159648SSzymon Olewniczak 31*ef159648SSzymon Olewniczak public function handle($match, $state, $pos, Doku_Handler $handler){ 32*ef159648SSzymon Olewniczak switch ($state) { 33*ef159648SSzymon Olewniczak case DOKU_LEXER_ENTER : 34*ef159648SSzymon Olewniczak return array($state, $match); 35*ef159648SSzymon Olewniczak 36*ef159648SSzymon Olewniczak case DOKU_LEXER_UNMATCHED : return array($state, $match); 37*ef159648SSzymon Olewniczak case DOKU_LEXER_EXIT : return array($state, ''); 38*ef159648SSzymon Olewniczak } 39*ef159648SSzymon Olewniczak return array(); 40*ef159648SSzymon Olewniczak } 41*ef159648SSzymon Olewniczak 42*ef159648SSzymon Olewniczak public function render($mode, Doku_Renderer $renderer, $data) { 43*ef159648SSzymon Olewniczak // $data is what the function handle() return'ed. 44*ef159648SSzymon Olewniczak if($mode == 'xhtml'){ 45*ef159648SSzymon Olewniczak /** @var Doku_Renderer_xhtml $renderer */ 46*ef159648SSzymon Olewniczak list($state,$match) = $data; 47*ef159648SSzymon Olewniczak switch ($state) { 48*ef159648SSzymon Olewniczak case DOKU_LEXER_ENTER : 49*ef159648SSzymon Olewniczak 50*ef159648SSzymon Olewniczak $renderer->doc .= "QUERY: ".htmlspecialchars($match).""; 51*ef159648SSzymon Olewniczak $renderer->doc .= "<pre>"; 52*ef159648SSzymon Olewniczak break; 53*ef159648SSzymon Olewniczak 54*ef159648SSzymon Olewniczak case DOKU_LEXER_UNMATCHED : 55*ef159648SSzymon Olewniczak $renderer->doc .= $renderer->_xmlEntities($match); 56*ef159648SSzymon Olewniczak break; 57*ef159648SSzymon Olewniczak case DOKU_LEXER_EXIT : 58*ef159648SSzymon Olewniczak $renderer->doc .= "</pre>"; 59*ef159648SSzymon Olewniczak break; 60*ef159648SSzymon Olewniczak } 61*ef159648SSzymon Olewniczak return true; 62*ef159648SSzymon Olewniczak } 63*ef159648SSzymon Olewniczak return false; 64*ef159648SSzymon Olewniczak } 65*ef159648SSzymon Olewniczak} 66