1<?php
2/**
3 *
4 *
5 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6 * @author     Myron Turner <turnermm02@shaw.ca>
7 *
8 */
9// must be run within Dokuwiki
10if(!defined('DOKU_INC')) die();
11
12if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13define('TOCSEL_DIR', DOKU_BASE . 'lib/plugins/tocselect/');
14require_once(DOKU_PLUGIN.'syntax.php');
15
16/**
17 * All DokuWiki plugins to extend the parser/rendering mechanism
18 * need to inherit from this class
19 */
20class syntax_plugin_tocselect extends DokuWiki_Syntax_Plugin {
21
22    function getType(){
23        return 'substition';
24    }
25
26    /**
27     * Where to sort in?
28     */
29    function getSort(){
30        return 155;
31    }
32    function getPType() {
33        return 'block';
34    }
35
36   function connectTo($mode) {
37        $this->Lexer->addSpecialPattern('~~SELECTTOC~~',$mode,'plugin_tocselect');
38        $this->Lexer->addSpecialPattern('~~SELECTTOC>curID~~',$mode,'plugin_tocselect');
39    }
40
41  function handle($match, $state, $pos, Doku_Handler $handler) {
42
43            $handler->_addCall('notoc',array(),$pos);
44           if(preg_match('/curID/', $match)) {
45               $match = 'curID';
46           }
47           else $match = 'wiki:id';
48
49           return array($state,$match);
50  }
51
52   function render($mode, Doku_Renderer $renderer, $data) {
53        if($mode == 'xhtml'){
54         global $lang;
55         $select = $this->getLang('select');
56         $nsroot = $this->getLang('nsroot');
57         $rootopen = $this->getLang('rootopen');
58         list($state,$wikid) = $data;
59         $renderer->doc .='<div class="tocsel_right">';
60         $renderer->doc .='<span class="clickerdir  tocselb hx1_5" id="tocsel_rootns"  title="' .  $rootopen . '" onclick="tocsel_updatetoc(\':*\');">'. $nsroot.'</span><br />';
61         $renderer->doc .=  '<DIV><FORM><input type="button" value="' . $select. '" id="selectoc_btn"  name="selectoc_btn" /> <INPUT  type="text" title="wiki:id" id="selectoc_id" name="selectoc_id" value="'.$wikid .'"></FORM></DIV>';
62         $renderer->doc .= '<div id="tocseltoggle"><img src="'  . TOCSEL_DIR. 'img/open.png"></div ><span class="tocsel_title">'  . $lang['toc'] .'</span><div id = "setctoc_out"></div>';
63         $renderer->doc .='</div>';
64         return true;
65        }
66        return false;
67   }
68}