xref: /plugin/popupviewer/syntax/popupscript.php (revision efbf612ef7eed4c441757ca422a0840f07ee1c65)
1*efbf612eSGerry Weißbach<?php
2*efbf612eSGerry Weißbach/**
3*efbf612eSGerry Weißbach * popoutviewer Plugin
4*efbf612eSGerry Weißbach *
5*efbf612eSGerry Weißbach * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6*efbf612eSGerry Weißbach * @author     i-net software <tools@inetsoftware.de>
7*efbf612eSGerry Weißbach * @author     Gerry Weissbach <gweissbach@inetsoftware.de>
8*efbf612eSGerry Weißbach */
9*efbf612eSGerry Weißbach
10*efbf612eSGerry Weißbach// must be run within Dokuwiki
11*efbf612eSGerry Weißbachif(!defined('DOKU_INC')) die();
12*efbf612eSGerry Weißbachif (!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
13*efbf612eSGerry Weißbach
14*efbf612eSGerry Weißbachrequire_once(DOKU_PLUGIN.'syntax.php');
15*efbf612eSGerry Weißbach
16*efbf612eSGerry Weißbachclass syntax_plugin_popupviewer_popupscript extends DokuWiki_Syntax_Plugin {
17*efbf612eSGerry Weißbach
18*efbf612eSGerry Weißbach    function getType() { return 'protected'; }
19*efbf612eSGerry Weißbach    function getPType() { return 'normal'; }
20*efbf612eSGerry Weißbach    function getSort() { return 98; }
21*efbf612eSGerry Weißbach
22*efbf612eSGerry Weißbach    function connectTo($mode) {
23*efbf612eSGerry Weißbach        $this->Lexer->addEntryPattern('<popupscript>(?=.*?</popupscript>)', $mode, 'plugin_popupviewer_popupscript');
24*efbf612eSGerry Weißbach    }
25*efbf612eSGerry Weißbach
26*efbf612eSGerry Weißbach    function postConnect() {
27*efbf612eSGerry Weißbach        $this->Lexer->addExitPattern('</popupscript>', 'plugin_popupviewer_popupscript');
28*efbf612eSGerry Weißbach    }
29*efbf612eSGerry Weißbach
30*efbf612eSGerry Weißbach    function handle($match, $state, $pos, &$handler) {
31*efbf612eSGerry Weißbach    	if ( $state == DOKU_LEXER_UNMATCHED ) {
32*efbf612eSGerry Weißbach	    	return $match;
33*efbf612eSGerry Weißbach    	}
34*efbf612eSGerry Weißbach
35*efbf612eSGerry Weißbach    	return false;
36*efbf612eSGerry Weißbach    }
37*efbf612eSGerry Weißbach
38*efbf612eSGerry Weißbach    function render($mode, &$renderer, $data) {
39*efbf612eSGerry Weißbach
40*efbf612eSGerry Weißbach		global $ID;
41*efbf612eSGerry Weißbach
42*efbf612eSGerry Weißbach		if ( $mode == "metadata" ) {
43*efbf612eSGerry Weißbach
44*efbf612eSGerry Weißbach			$meta = p_get_metadata($ID, 'popupscript');
45*efbf612eSGerry Weißbach			if ( !is_array($meta)) {
46*efbf612eSGerry Weißbach				$meta = array();
47*efbf612eSGerry Weißbach				$meta['popupscript'] = array();
48*efbf612eSGerry Weißbach			}
49*efbf612eSGerry Weißbach
50*efbf612eSGerry Weißbach			$meta['popupscript'][] = trim($data);
51*efbf612eSGerry Weißbach			p_set_metadata($ID, $meta);
52*efbf612eSGerry Weißbach		}
53*efbf612eSGerry Weißbach    }
54*efbf612eSGerry Weißbach}
55*efbf612eSGerry Weißbach// vim:ts=4:sw=4:et:enc=utf-8:
56