1<?php
2/**
3 * DokuWiki Plugin pagehere (Syntax Component)
4 *
5 * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html
6 * @author  Andreas Gohr <gohr@cosmocode.de>
7 */
8
9// must be run within Dokuwiki
10if (!defined('DOKU_INC')) die();
11
12if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
13if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
14if (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
15
16require_once DOKU_PLUGIN.'syntax.php';
17
18class syntax_plugin_pagehere extends DokuWiki_Syntax_Plugin {
19    public function getType() {
20        return 'substition';
21    }
22
23    public function getPType() {
24        return 'normal';
25    }
26
27    public function getSort() {
28        return 133;
29    }
30
31
32    public function connectTo($mode) {
33        $this->Lexer->addSpecialPattern('{{pagehere}}',$mode,'plugin_pagehere');
34    }
35
36    public function handle($match, $state, $pos, Doku_Handler $handler){
37        $data = array();
38        return $data;
39    }
40
41    public function render($mode, Doku_Renderer $R, $data) {
42        $R->info['cache'] = false;
43        if($mode != 'xhtml') return false;
44
45        global $INFO;
46        global $ID;
47        $check = $INFO['namespace'].':pagehere';
48        if(auth_quickaclcheck($check) < AUTH_EDIT) return;
49
50        $R->doc .= '<form class="plugin_pagehere" action="'.script().'" method="GET">';
51        $R->doc .= '<input name="id" type="hidden" value="'.hsc($ID).'" />';
52        $R->doc .= '<input name="pagehere" class="edit" type="text" id="page__here" />';
53        $R->doc .= '<input type="submit" value="'.$this->getLang('submit').'" class="btn" />';
54        $R->doc .= '</form>';
55
56        return true;
57    }
58}
59
60// vim:ts=4:sw=4:et:
61