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