1*c3437056SNickeau<?php 2*c3437056SNickeau 3*c3437056SNickeauuse ComboStrap\AdsUtility; 4*c3437056SNickeauuse ComboStrap\BreadcrumbHierarchical; 5*c3437056SNickeauuse ComboStrap\FsWikiUtility; 6*c3437056SNickeauuse ComboStrap\XhtmlUtility; 7*c3437056SNickeauuse ComboStrap\PluginUtility; 8*c3437056SNickeauuse ComboStrap\TableUtility; 9*c3437056SNickeauuse ComboStrap\TocUtility; 10*c3437056SNickeau 11*c3437056SNickeau 12*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/FsWikiUtility.php'); 13*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/TableUtility.php'); 14*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/TocUtility.php'); 15*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/AdsUtility.php'); 16*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/XhtmlUtility.php'); 17*c3437056SNickeaurequire_once(__DIR__ . '/../ComboStrap/BreadcrumbHierarchical.php'); 18*c3437056SNickeau 19*c3437056SNickeau/** 20*c3437056SNickeau * A rendering in XML 21*c3437056SNickeau */ 22*c3437056SNickeauclass renderer_plugin_combo_xml extends Doku_Renderer_xhtml 23*c3437056SNickeau{ 24*c3437056SNickeau 25*c3437056SNickeau const FORMAT = "xml"; 26*c3437056SNickeau 27*c3437056SNickeau /** 28*c3437056SNickeau * The last two words of the class 29*c3437056SNickeau */ 30*c3437056SNickeau const MODE = 'combo_'.self::FORMAT; 31*c3437056SNickeau 32*c3437056SNickeau 33*c3437056SNickeau function getFormat(): string 34*c3437056SNickeau { 35*c3437056SNickeau return self::FORMAT; 36*c3437056SNickeau } 37*c3437056SNickeau 38*c3437056SNickeau /* 39*c3437056SNickeau * Function that enable to list the plugin in the options for config:renderer_xhtml 40*c3437056SNickeau * http://www.dokuwiki.org/config:renderer_xhtml 41*c3437056SNickeau * setting in its Configuration Manager. 42*c3437056SNickeau */ 43*c3437056SNickeau public function canRender($format) 44*c3437056SNickeau { 45*c3437056SNickeau return ($format == 'xml'); 46*c3437056SNickeau } 47*c3437056SNickeau 48*c3437056SNickeau 49*c3437056SNickeau /** 50*c3437056SNickeau * Render a heading 51*c3437056SNickeau * 52*c3437056SNickeau * 53*c3437056SNickeau * @param string $text the text to display 54*c3437056SNickeau * @param int $level header level 55*c3437056SNickeau * @param int $pos byte position in the original source 56*c3437056SNickeau */ 57*c3437056SNickeau function header($text, $level, $pos) 58*c3437056SNickeau { 59*c3437056SNickeau 60*c3437056SNickeau $this->doc .= "<h$level>$text</h$level>"; 61*c3437056SNickeau 62*c3437056SNickeau } 63*c3437056SNickeau 64*c3437056SNickeau /** 65*c3437056SNickeau * This are edit zone section (not HTML/Outline Section) 66*c3437056SNickeau * @param int $level 67*c3437056SNickeau */ 68*c3437056SNickeau public function section_open($level) 69*c3437056SNickeau { 70*c3437056SNickeau $this->doc .= ""; 71*c3437056SNickeau } 72*c3437056SNickeau 73*c3437056SNickeau public function section_close() 74*c3437056SNickeau { 75*c3437056SNickeau $this->doc .= ""; 76*c3437056SNickeau } 77*c3437056SNickeau 78*c3437056SNickeau 79*c3437056SNickeau public function document_start() 80*c3437056SNickeau { 81*c3437056SNickeau $this->doc .= '<?xml version="1.0" encoding="UTF-8" standalone="no" ?>'; 82*c3437056SNickeau $this->doc .= "<document>"; 83*c3437056SNickeau } 84*c3437056SNickeau 85*c3437056SNickeau public function multiplyentity($x, $y): string 86*c3437056SNickeau { 87*c3437056SNickeau return "$x x $y"; 88*c3437056SNickeau } 89*c3437056SNickeau 90*c3437056SNickeau 91*c3437056SNickeau function document_end() 92*c3437056SNickeau { 93*c3437056SNickeau 94*c3437056SNickeau $this->doc .= "</document>"; 95*c3437056SNickeau 96*c3437056SNickeau /** 97*c3437056SNickeau * The result can be seen with 98*c3437056SNickeau * doku.php?id=somepage&do=export_combo_xml 99*c3437056SNickeau * 100*c3437056SNickeau * Set the header temporarily for the export.php file 101*c3437056SNickeau * 102*c3437056SNickeau * The mode in the export is 103*c3437056SNickeau */ 104*c3437056SNickeau $mode = "combo_" . $this->getPluginComponent(); 105*c3437056SNickeau global $ID; 106*c3437056SNickeau p_set_metadata( 107*c3437056SNickeau $ID, 108*c3437056SNickeau array("format" => array($mode => array("Content-Type" => 'application/xml'))), 109*c3437056SNickeau false, 110*c3437056SNickeau true // Persistence is needed because there is a cache 111*c3437056SNickeau ); 112*c3437056SNickeau 113*c3437056SNickeau } 114*c3437056SNickeau 115*c3437056SNickeau 116*c3437056SNickeau /** 117*c3437056SNickeau * https://getbootstrap.com/docs/4.4/content/typography/#inline-text-elements 118*c3437056SNickeau */ 119*c3437056SNickeau public 120*c3437056SNickeau function monospace_open() 121*c3437056SNickeau { 122*c3437056SNickeau $this->doc .= '<mark>'; 123*c3437056SNickeau } 124*c3437056SNickeau 125*c3437056SNickeau public 126*c3437056SNickeau function monospace_close() 127*c3437056SNickeau { 128*c3437056SNickeau $this->doc .= '</mark>'; 129*c3437056SNickeau } 130*c3437056SNickeau 131*c3437056SNickeau 132*c3437056SNickeau} 133