xref: /dokuwiki/inc/Ui/PageView.php (revision 60a48169abe6df5c485f0c9df175a5a50c54ee38)
1*60a48169SSatoshi Sahara<?php
2*60a48169SSatoshi Sahara
3*60a48169SSatoshi Saharanamespace dokuwiki\Ui;
4*60a48169SSatoshi Sahara
5*60a48169SSatoshi Saharause dokuwiki\Extension\Event;
6*60a48169SSatoshi Sahara
7*60a48169SSatoshi Sahara/**
8*60a48169SSatoshi Sahara * DokuWiki Conflict Insterface
9*60a48169SSatoshi Sahara *
10*60a48169SSatoshi Sahara * @package dokuwiki\Ui
11*60a48169SSatoshi Sahara */
12*60a48169SSatoshi Saharaclass PageView extends Ui
13*60a48169SSatoshi Sahara{
14*60a48169SSatoshi Sahara    /**
15*60a48169SSatoshi Sahara     * Show a wiki page
16*60a48169SSatoshi Sahara     *
17*60a48169SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
18*60a48169SSatoshi Sahara     *
19*60a48169SSatoshi Sahara     * @triggers HTML_SHOWREV_OUTPUT
20*60a48169SSatoshi Sahara     * @param null|string $txt wiki text or null for showing $ID
21*60a48169SSatoshi Sahara     * @return void
22*60a48169SSatoshi Sahara     */
23*60a48169SSatoshi Sahara    public function show($txt = null)
24*60a48169SSatoshi Sahara    {
25*60a48169SSatoshi Sahara        global $ID;
26*60a48169SSatoshi Sahara        global $REV;
27*60a48169SSatoshi Sahara        global $HIGH;
28*60a48169SSatoshi Sahara        global $INFO;
29*60a48169SSatoshi Sahara        global $DATE_AT;
30*60a48169SSatoshi Sahara
31*60a48169SSatoshi Sahara        //disable section editing for old revisions or in preview
32*60a48169SSatoshi Sahara        if ($txt || $REV) {
33*60a48169SSatoshi Sahara            $secedit = false;
34*60a48169SSatoshi Sahara        } else {
35*60a48169SSatoshi Sahara            $secedit = true;
36*60a48169SSatoshi Sahara        }
37*60a48169SSatoshi Sahara
38*60a48169SSatoshi Sahara        if (!is_null($txt)) {
39*60a48169SSatoshi Sahara            //PreviewHeader
40*60a48169SSatoshi Sahara            echo '<br id="scroll__here" />';
41*60a48169SSatoshi Sahara
42*60a48169SSatoshi Sahara            // print intro for preview
43*60a48169SSatoshi Sahara            echo p_locale_xhtml('preview');
44*60a48169SSatoshi Sahara            echo '<div class="preview"><div class="pad">';
45*60a48169SSatoshi Sahara            $html = html_secedit(p_render('xhtml', p_get_instructions($txt), $info), $secedit);
46*60a48169SSatoshi Sahara            if ($INFO['prependTOC']) $html = tpl_toc(true) . $html;
47*60a48169SSatoshi Sahara            echo $html;
48*60a48169SSatoshi Sahara            echo '<div class="clearer"></div>';
49*60a48169SSatoshi Sahara            echo '</div></div>';
50*60a48169SSatoshi Sahara
51*60a48169SSatoshi Sahara        } else {
52*60a48169SSatoshi Sahara            if ($REV || $DATE_AT) {
53*60a48169SSatoshi Sahara                // print intro for old revisions
54*60a48169SSatoshi Sahara                $data = array('rev' => &$REV, 'date_at' => &$DATE_AT);
55*60a48169SSatoshi Sahara                Event::createAndTrigger('HTML_SHOWREV_OUTPUT', $data, [$this, 'showrev']);
56*60a48169SSatoshi Sahara            }
57*60a48169SSatoshi Sahara            $html = p_wiki_xhtml($ID, $REV, true, $DATE_AT);
58*60a48169SSatoshi Sahara            $html = html_secedit($html, $secedit);
59*60a48169SSatoshi Sahara            if ($INFO['prependTOC']) $html = tpl_toc(true) . $html;
60*60a48169SSatoshi Sahara            $html = html_hilight($html, $HIGH);
61*60a48169SSatoshi Sahara            echo $html;
62*60a48169SSatoshi Sahara        }
63*60a48169SSatoshi Sahara    }
64*60a48169SSatoshi Sahara
65*60a48169SSatoshi Sahara    /**
66*60a48169SSatoshi Sahara     * Show a revision warning
67*60a48169SSatoshi Sahara     *
68*60a48169SSatoshi Sahara     * @author Szymon Olewniczak <dokuwiki@imz.re>
69*60a48169SSatoshi Sahara     */
70*60a48169SSatoshi Sahara    public function showrev()
71*60a48169SSatoshi Sahara    {
72*60a48169SSatoshi Sahara        print p_locale_xhtml('showrev');
73*60a48169SSatoshi Sahara    }
74*60a48169SSatoshi Sahara
75*60a48169SSatoshi Sahara
76*60a48169SSatoshi Sahara}
77