1<?php 2 /** 3 * @license http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html 4 * @author Francois <webmestre@fsl56.org> 5 * 6 * Plugin showSamples: display sample from plugins 7 */ 8 9if (!defined ('DOKU_INC')) 10 die (); 11if (!defined ('DOKU_PLUGIN')) 12 define ('DOKU_PLUGIN', DOKU_INC.'lib/plugins/'); 13require_once (DOKU_PLUGIN.'syntax.php'); 14 15class syntax_plugin_showSamples extends DokuWiki_Syntax_Plugin { 16 17 // ============================================================ 18 // function getInfo () { 19 // return confToHash (dirname (__FILE__).'/INFO.txt'); 20 // } 21 function getType () { return 'substition'; } 22 function getPType () { return 'block'; } 23 function getSort () { return 299; } 24 function getAllowedTypes() { return array ('container', 'baseonly', 'formatting', 'substition', 'protected', 'disabled', 'paragraphs'); } 25 function connectTo ($mode) { 26 $this->Lexer->addEntryPattern ('<showSamples[^>]*>', $mode, 'plugin_showsamples'); 27 } 28 function postConnect() { 29 $this->Lexer->addExitPattern ('</showSamples>', 'plugin_showsamples'); 30 } 31 32 // ============================================================ 33 function handle ($match, $state, $pos, Doku_Handler $handler){ 34 switch ($state) { 35 case DOKU_LEXER_ENTER: 36 return array($state, trim (substr ($match, 12, -1))); // "<showSamples" => 12 ">" => 1 37 case DOKU_LEXER_UNMATCHED: 38 return array($state, $match); 39 case DOKU_LEXER_EXIT: 40 return array($state); 41 } 42 return false; 43 } 44 45 // ============================================================ 46 function render ($mode, Doku_Renderer $renderer, $indata) { 47 if ($mode != 'xhtml') 48 return false; 49 if (empty ($indata)) 50 return false; 51 list ($instr, $data) = $indata; 52 //$data = " ".$data." "; 53 $renderer->info['cache'] = FALSE; 54 switch ($instr) { 55 case DOKU_LEXER_ENTER : 56 if (preg_match_all ("#(\"[^\"]*\")*help(\"[^\"]*\")*#", strtolower ($data), $dumy) > 0) { 57 $this->help ($renderer); 58 return true; 59 } 60 $imgDir = DOKU_REL.'lib/plugins/showsamples/images/'; 61 $renderer->doc .= 62 '<div class="showSamples">'.NL. 63 ' <div class="navi">'.NL. 64 ' <a onClick="showCarouselLeft()"><img src="'.$imgDir.'left.png" style="display:none;" class="leftside"/></a>'.NL. 65 ' <a onClick="showCarouselRight()"><img src="'.$imgDir.'right.png" class="rightside"/></a>'.NL. 66 ' </div>'.NL. 67 ' <div class="slide">'; 68 break; 69 case DOKU_LEXER_EXIT : 70 $renderer->doc .= 71 ' </div>'.NL. 72 '</div>'; 73 break; 74 case DOKU_LEXER_UNMATCHED: 75 $renderer->doc .= $renderer->_xmlEntities($data); 76 break; 77 } 78 return true; 79 } 80 81 // ============================================================ 82 function help (&$renderer) { 83 $url = "http://fsl56.org/admin/plugins/showSamples/"; 84 $renderer->doc .= 85 ' <h1>Help showSamples V1.0</h1>'.NL. 86 ' <ul>'.NL. 87 ' <li><b>{{showSamples [help] <b>}}</b></li>'.NL. 88 ' </ul>'.NL. 89 ' <p><a class="urlextern" rel="nofollow" title="'.$url.'" href="'.$url.'">'.$url.'</a></p>'.NL; 90 } 91 92 // ============================================================ 93} // syntax_plugin_showSamples 94?> 95