* @author Gerry Weissbach */ if(!defined('DOKU_INC')) die(); if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); require_once(DOKU_PLUGIN.'syntax.php'); class syntax_plugin_layeranimation_layer extends DokuWiki_Syntax_Plugin { function getType(){ return 'layer';} function getAllowedTypes() { return array('item'); } function getPType(){ return 'block';} /** * Where to sort in? */ function getSort(){ return 301; } /** * Connect pattern to lexer */ function connectTo($mode) { $this->Lexer->addEntryPattern('(?=.*?)',$mode,'plugin_layeranimation_layer'); $this->Lexer->addEntryPattern('(?=.*?)',$mode,'plugin_layeranimation_layer'); } function postConnect() { $this->Lexer->addExitPattern('', 'plugin_layeranimation_layer'); } /** * Handle the match */ function handle($match, $state, $pos, Doku_Handler $handler){ switch ($state) { case DOKU_LEXER_ENTER: $option = explode(' ', substr($match, 6, -1)); return array('layer__start', $option); break; case DOKU_LEXER_EXIT: return array('layer__end', null); break; } return false; } /** * Create output */ function render($mode, Doku_Renderer $renderer, $input) { global $conf; if($mode == 'xhtml'){ $renderer->nocache(); list($instr, $data) = $input; switch ( $instr ) { case 'layer__start' : $CSSoption = ''; $TIMING = 'timing="7"'; foreach ( $data as $item ) { if ( substr($item, -1) == 's' && is_int(intval(substr($item, 0, -1))) ) { $TIMING = 'timing="' . intval(substr($item, 0, -1)) . '"'; } $CSSoption .= ' ' . hsc(trim($item)); } if ( intval($conf['layeranimation']['currentanimation']['height']) > 0 ) { $renderer->doc .= '
' . "\n"; } else { $renderer->doc .= '
' . "\n"; } break; case 'layer__end' : $renderer->doc .= '
' . "\n\n"; break; default : return false; } return true; } return false; } } //Setup VIM: ex: et ts=4 enc=utf-8 :