xref: /plugin/bez/syntax/qlink.php (revision 3b3e3ab0f1a188f50c9220a09cb022d8b9b9bea4)
165cfcae3Sghi<?php
265cfcae3Sghi/**
365cfcae3Sghi * Plugin Now: Inserts a timestamp.
465cfcae3Sghi *
565cfcae3Sghi * @license    GPL 3 (http://www.gnu.org/licenses/gpl.html)
665cfcae3Sghi */
765cfcae3Sghi// must be run within DokuWiki
865cfcae3Sghiif(!defined('DOKU_INC')) die();
965cfcae3Sghi
10b898877eSghiif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
11b898877eSghirequire_once DOKU_PLUGIN.'syntax.php';
1265cfcae3Sghi/**
1365cfcae3Sghi * All DokuWiki plugins to extend the parser/rendering mechanism
1465cfcae3Sghi * need to inherit from this class
1565cfcae3Sghi */
16b898877eSghiclass syntax_plugin_bez_qlink extends DokuWiki_Syntax_Plugin {
1765cfcae3Sghi
1865cfcae3Sghi    function getType() { return 'substition'; }
1965cfcae3Sghi    function getSort() { return 34; }
2065cfcae3Sghi	function connectTo($mode) {
21b898877eSghi		$this->Lexer->addSpecialPattern('#[0-9]+',$mode,'plugin_bez_qlink');
2265cfcae3Sghi	}
2365cfcae3Sghi
2465cfcae3Sghi
25*3b3e3ab0Sghi    function handle($match, $state, $pos, Doku_Handler $handler) {
264913c0fbSghi		$nr = substr($match, 1, strlen($match));
274913c0fbSghi		return $nr;
2865cfcae3Sghi    }
2965cfcae3Sghi
30*3b3e3ab0Sghi    function render($mode, Doku_Renderer $renderer, $nr) {
3165cfcae3Sghi		if ($mode == 'xhtml') {
3205c9d3bcSghi			$id = $_GET['id'];
3305c9d3bcSghi			$ex = explode(':', $id);
3465cfcae3Sghi
3505c9d3bcSghi			$lang_code = '';
3605c9d3bcSghi			/*english namespace*/
3705c9d3bcSghi			switch($ex[0]) {
3805c9d3bcSghi				case 'en':
3905c9d3bcSghi					$lang_code = $ex[0].':';
4005c9d3bcSghi			}
417ffa8289Sghi			$renderer->doc .= '<a href="?id='.$lang_code.'bez:issue:id:'.$nr.'">#'.$nr.'</a>';
4265cfcae3Sghi			return true;
4365cfcae3Sghi		}
4465cfcae3Sghi		return false;
4565cfcae3Sghi    }
4665cfcae3Sghi}
47