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