'Stylianos Dritsas', 'email' => 'stylianos [at] dritsas [dot] net', 'date' => '2006-03-05', 'name' => 'applet', 'desc' => 'Java Applet Plugin', 'url' => 'https://www.dokuwiki.org/plugin:applet', ); } /** * Typology? */ function getType( ) { return 'substition'; } /** * Sort Code? */ function getSort( ) { return 316; } /** * Pattern Matching? */ function connectTo($mode) { $this->Lexer->addSpecialPattern( '', $mode, 'plugin_applet' ); } /** * Parsing * 1. Very rough parsing involved * 2. Applet parameters not included */ function handle( $match, $state, $pos, &$handler ) { preg_match( '/width=([0-9]+)/i', substr( $match, 6, -1 ), $match_width ); preg_match( '/height=([0-9]+)/i', substr( $match, 6, -1 ), $match_height ); preg_match( '/code=([a-zA-Z_0-9.]+)/i', substr( $match, 6, -1 ), $match_code ); preg_match( '/archive=([a-zA-Z_0-9:.]+)/i', substr( $match, 6, -1 ), $match_archive ); return array( $match_code[1], $match_width[1], $match_height[1], $match_archive[1] ); } /** * Rendering * 1. There is no error checking involved whatsoever * 2. Assuming that all applets come in a jar or zip archive * 3. The namespace to path conversion is highly ad-hoc-ish */ function render( $mode, &$renderer, $data ) { if($mode == 'xhtml'){ list( $code, $width, $height, $archive ) = $data; //$archive = 'data/media/' . str_replace( ":", "/", $archive ); $archive = DOKU_BASE . 'lib/exe/fetch.php?media=' . $archive; $renderer->doc .= ""; return true; } else { return false; } } }