1f1160750SMichael Klier<?php 2f1160750SMichael Klier/** 328f301c8SMichael Klier * DokuWiki Syntax Plugin Clearfloat 4f1160750SMichael Klier * 5*c7dc63eaSMichael Klier * Clears the floating of elements such as images. 6*c7dc63eaSMichael Klier * 7*c7dc63eaSMichael Klier * Syntax: ~~CLEARFLOAT~~ or ~~CL~~ 8*c7dc63eaSMichael Klier * 9f1160750SMichael Klier * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 10f1160750SMichael Klier * @author Michael Klier <chi@chimeric.de> 11f1160750SMichael Klier */ 12f1160750SMichael Klier 13f1160750SMichael Klierif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 14f1160750SMichael Klierif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 15356cfb16SMichael Klierrequire_once(DOKU_PLUGIN.'syntax.php'); 16f1160750SMichael Klierif(!defined('DW_LF')) define('DW_LF',"\n"); 17f1160750SMichael Klier 18f1160750SMichael Klier/** 19f1160750SMichael Klier * All DokuWiki plugins to extend the parser/rendering mechanism 20f1160750SMichael Klier * need to inherit from this class 21f1160750SMichael Klier */ 22f1160750SMichael Klierclass syntax_plugin_clearfloat extends DokuWiki_Syntax_Plugin { 23f1160750SMichael Klier 24f1160750SMichael Klier 25f1160750SMichael Klier /** 26f1160750SMichael Klier * General Info 27f1160750SMichael Klier */ 28f1160750SMichael Klier function getInfo(){ 29f1160750SMichael Klier return array( 30151d17abSMichael Klier 'author' => 'Michael Klier', 31f1160750SMichael Klier 'email' => 'chi@chimeric.de', 32a8dc4981SMichael Klier 'date' => '2007-01-08', 33f1160750SMichael Klier 'name' => 'Clearfloat', 34*c7dc63eaSMichael Klier 'desc' => 'Clears the floating of elements such as images.', 35378943caSMichael Klier 'url' => 'http://www.chimeric.de/projects/dokuwiki/plugin/clearfloat' 36f1160750SMichael Klier ); 37f1160750SMichael Klier } 38f1160750SMichael Klier 39f1160750SMichael Klier /** 40f1160750SMichael Klier * Syntax Type 41f1160750SMichael Klier * 42f1160750SMichael Klier * Needs to return one of the mode types defined in $PARSER_MODES in parser.php 43f1160750SMichael Klier */ 44f1160750SMichael Klier function getType() { return 'substition'; } 45f1160750SMichael Klier function getPType() { return 'block'; } 46f1160750SMichael Klier function getSort() { return 308; } 47f1160750SMichael Klier 48f1160750SMichael Klier /** 49f1160750SMichael Klier * Connect pattern to lexer 50f1160750SMichael Klier */ 51f1160750SMichael Klier function connectTo($mode) { 52f1160750SMichael Klier $this->Lexer->addSpecialPattern('~~CLEARFLOAT~~',$mode,'plugin_clearfloat'); 531e0871f0SMichael Klier $this->Lexer->addSpecialPattern('~~CL~~',$mode,'plugin_clearfloat'); 54f1160750SMichael Klier } 55f1160750SMichael Klier 56f1160750SMichael Klier /** 57f1160750SMichael Klier * Handler to prepare matched data for the rendering process 58f1160750SMichael Klier */ 59f1160750SMichael Klier function handle($match, $state, $pos, &$handler){ 60f1160750SMichael Klier return array(); 61f1160750SMichael Klier } 62f1160750SMichael Klier 63f1160750SMichael Klier /** 64f1160750SMichael Klier * Handles the actual output creation. 65f1160750SMichael Klier */ 66f1160750SMichael Klier function render($mode, &$renderer, $data) { 67f1160750SMichael Klier if($mode == 'xhtml'){ 68a8dc4981SMichael Klier $renderer->doc .= '<div class="clearer"></div>' . DW_LF; 69f1160750SMichael Klier return true; 70f1160750SMichael Klier } 71f1160750SMichael Klier return false; 72f1160750SMichael Klier } 73f1160750SMichael Klier 74f1160750SMichael Klier} 75*c7dc63eaSMichael Klier// setup vim:ts=4:sw=4:enc=utf-8: 76