1*fa08f439SMichael Hamann<?php 2*fa08f439SMichael Hamann/** 3*fa08f439SMichael Hamann * Include plugin (wrapper component) 4*fa08f439SMichael Hamann * 5*fa08f439SMichael Hamann * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 6*fa08f439SMichael Hamann * @author Michael Klier <chi@chimeric.de> 7*fa08f439SMichael Hamann * @author Michael Hamann <michael@content-space.de> 8*fa08f439SMichael Hamann */ 9*fa08f439SMichael Hamann 10*fa08f439SMichael Hamannif (!defined('DOKU_INC')) 11*fa08f439SMichael Hamann define('DOKU_INC', realpath(dirname(__FILE__) . '/../../') . '/'); 12*fa08f439SMichael Hamannif (!defined('DOKU_PLUGIN')) 13*fa08f439SMichael Hamann define('DOKU_PLUGIN', DOKU_INC . 'lib/plugins/'); 14*fa08f439SMichael Hamannrequire_once (DOKU_PLUGIN . 'syntax.php'); 15*fa08f439SMichael Hamann 16*fa08f439SMichael Hamannclass syntax_plugin_include_wrap extends DokuWiki_Syntax_Plugin { 17*fa08f439SMichael Hamann 18*fa08f439SMichael Hamann function getType() { 19*fa08f439SMichael Hamann return 'formatting'; 20*fa08f439SMichael Hamann } 21*fa08f439SMichael Hamann 22*fa08f439SMichael Hamann function getSort() { 23*fa08f439SMichael Hamann return 50; 24*fa08f439SMichael Hamann } 25*fa08f439SMichael Hamann 26*fa08f439SMichael Hamann function handle($match, $state, $pos, &$handler) { 27*fa08f439SMichael Hamann // this is a syntax plugin that doesn't offer any syntax, so there's nothing to handle by the parser 28*fa08f439SMichael Hamann } 29*fa08f439SMichael Hamann 30*fa08f439SMichael Hamann /** 31*fa08f439SMichael Hamann * Wraps the included page in a div and writes section edits for the action component 32*fa08f439SMichael Hamann * so it can detect where an included page starts/ends. 33*fa08f439SMichael Hamann * 34*fa08f439SMichael Hamann * @author Michael Klier <chi@chimeric.de> 35*fa08f439SMichael Hamann * @author Michael Hamann <michael@content-space.de> 36*fa08f439SMichael Hamann */ 37*fa08f439SMichael Hamann function render($mode, &$renderer, $data) { 38*fa08f439SMichael Hamann if ($mode == 'xhtml') { 39*fa08f439SMichael Hamann switch($data[0]) { 40*fa08f439SMichael Hamann case 'open': 41*fa08f439SMichael Hamann $renderer->startSectionEdit(0, 'plugin_include_start', $data[1]); 42*fa08f439SMichael Hamann $renderer->finishSectionEdit(); 43*fa08f439SMichael Hamann // Start a new section with type != section so headers in the included page 44*fa08f439SMichael Hamann // won't print section edit buttons of the parent page 45*fa08f439SMichael Hamann $renderer->startSectionEdit(0, 'plugin_include_end', $data[1]); 46*fa08f439SMichael Hamann $renderer->doc .= '<div class="plugin_include_content plugin_include__' . $data[1] . '">' . DOKU_LF; 47*fa08f439SMichael Hamann break; 48*fa08f439SMichael Hamann case 'close': 49*fa08f439SMichael Hamann $renderer->finishSectionEdit(); 50*fa08f439SMichael Hamann $renderer->doc .= '</div>' . DOKU_LF; 51*fa08f439SMichael Hamann break; 52*fa08f439SMichael Hamann } 53*fa08f439SMichael Hamann return true; 54*fa08f439SMichael Hamann } 55*fa08f439SMichael Hamann return false; 56*fa08f439SMichael Hamann } 57*fa08f439SMichael Hamann} 58*fa08f439SMichael Hamann// vim:ts=4:sw=4:et: 59