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ßbachrequire_once(DOKU_PLUGIN.'syntax.php'); 15efbf612eSGerry Weißbach 16efbf612eSGerry Weißbachclass syntax_plugin_popupviewer_popupscript extends DokuWiki_Syntax_Plugin { 17efbf612eSGerry Weißbach 18efbf612eSGerry Weißbach function getType() { return 'protected'; } 19efbf612eSGerry Weißbach function getPType() { return 'normal'; } 20efbf612eSGerry Weißbach function getSort() { return 98; } 21efbf612eSGerry Weißbach 22efbf612eSGerry Weißbach function connectTo($mode) { 23efbf612eSGerry Weißbach $this->Lexer->addEntryPattern('<popupscript>(?=.*?</popupscript>)', $mode, 'plugin_popupviewer_popupscript'); 24efbf612eSGerry Weißbach } 25efbf612eSGerry Weißbach 26efbf612eSGerry Weißbach function postConnect() { 27efbf612eSGerry Weißbach $this->Lexer->addExitPattern('</popupscript>', 'plugin_popupviewer_popupscript'); 28efbf612eSGerry Weißbach } 29efbf612eSGerry Weißbach 30efbf612eSGerry Weißbach function handle($match, $state, $pos, &$handler) { 31efbf612eSGerry Weißbach if ( $state == DOKU_LEXER_UNMATCHED ) { 32efbf612eSGerry Weißbach return $match; 33efbf612eSGerry Weißbach } 34efbf612eSGerry Weißbach 35efbf612eSGerry Weißbach return false; 36efbf612eSGerry Weißbach } 37efbf612eSGerry Weißbach 38efbf612eSGerry Weißbach function render($mode, &$renderer, $data) { 39efbf612eSGerry Weißbach 40efbf612eSGerry Weißbach global $ID; 41efbf612eSGerry Weißbach 42*f5f1feadSGerry Weißbach if ( $mode == "metadata" && $this->getConf('allowpopupscript')) { 43886a8c8fSGerry Weißbach p_set_metadata($ID, array( 'popupscript' => trim($data))); 44efbf612eSGerry Weißbach } 45efbf612eSGerry Weißbach } 46efbf612eSGerry Weißbach} 47efbf612eSGerry Weißbach// vim:ts=4:sw=4:et:enc=utf-8: 48