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