xref: /dokuwiki/inc/Ui/PageView.php (revision e4286a8810c742557f3fc9098a9e087c55252d7e)
160a48169SSatoshi Sahara<?php
260a48169SSatoshi Sahara
360a48169SSatoshi Saharanamespace dokuwiki\Ui;
460a48169SSatoshi Sahara
560a48169SSatoshi Saharause dokuwiki\Extension\Event;
660a48169SSatoshi Sahara
760a48169SSatoshi Sahara/**
8*e4286a88SSatoshi Sahara * DokuWiki PageView Insterface
960a48169SSatoshi Sahara *
1060a48169SSatoshi Sahara * @package dokuwiki\Ui
1160a48169SSatoshi Sahara */
1260a48169SSatoshi Saharaclass PageView extends Ui
1360a48169SSatoshi Sahara{
14*e4286a88SSatoshi Sahara    protected $text;
15*e4286a88SSatoshi Sahara
16*e4286a88SSatoshi Sahara    /**
17*e4286a88SSatoshi Sahara     * PageView Ui constructor
18*e4286a88SSatoshi Sahara     *
19*e4286a88SSatoshi Sahara     * @param null|string $text  wiki text or null for showing $ID
20*e4286a88SSatoshi Sahara     */
21*e4286a88SSatoshi Sahara    public function __construct($text = null)
22*e4286a88SSatoshi Sahara    {
23*e4286a88SSatoshi Sahara        $this->text = $text;
24*e4286a88SSatoshi Sahara    }
25*e4286a88SSatoshi Sahara
2660a48169SSatoshi Sahara    /**
2760a48169SSatoshi Sahara     * Show a wiki page
2860a48169SSatoshi Sahara     *
2960a48169SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
3060a48169SSatoshi Sahara     *
3160a48169SSatoshi Sahara     * @triggers HTML_SHOWREV_OUTPUT
3260a48169SSatoshi Sahara     * @return void
3360a48169SSatoshi Sahara     */
34*e4286a88SSatoshi Sahara    public function show()
3560a48169SSatoshi Sahara    {
3660a48169SSatoshi Sahara        global $ID;
3760a48169SSatoshi Sahara        global $REV;
3860a48169SSatoshi Sahara        global $HIGH;
3960a48169SSatoshi Sahara        global $INFO;
4060a48169SSatoshi Sahara        global $DATE_AT;
4160a48169SSatoshi Sahara
4260a48169SSatoshi Sahara        //disable section editing for old revisions or in preview
43*e4286a88SSatoshi Sahara        if ($this->text !== null || $REV) {
4460a48169SSatoshi Sahara            $secedit = false;
4560a48169SSatoshi Sahara        } else {
4660a48169SSatoshi Sahara            $secedit = true;
4760a48169SSatoshi Sahara        }
4860a48169SSatoshi Sahara
49*e4286a88SSatoshi Sahara        if ($this->text !== null) {
5060a48169SSatoshi Sahara            //PreviewHeader
5160a48169SSatoshi Sahara            echo '<br id="scroll__here" />';
5260a48169SSatoshi Sahara
5360a48169SSatoshi Sahara            // print intro for preview
5460a48169SSatoshi Sahara            echo p_locale_xhtml('preview');
5560a48169SSatoshi Sahara            echo '<div class="preview"><div class="pad">';
56*e4286a88SSatoshi Sahara            $html = html_secedit(p_render('xhtml', p_get_instructions($this->text), $info), $secedit);
5760a48169SSatoshi Sahara            if ($INFO['prependTOC']) $html = tpl_toc(true) . $html;
5860a48169SSatoshi Sahara            echo $html;
5960a48169SSatoshi Sahara            echo '<div class="clearer"></div>';
6060a48169SSatoshi Sahara            echo '</div></div>';
6160a48169SSatoshi Sahara
6260a48169SSatoshi Sahara        } else {
6360a48169SSatoshi Sahara            if ($REV || $DATE_AT) {
6460a48169SSatoshi Sahara                // print intro for old revisions
6560a48169SSatoshi Sahara                $data = array('rev' => &$REV, 'date_at' => &$DATE_AT);
6660a48169SSatoshi Sahara                Event::createAndTrigger('HTML_SHOWREV_OUTPUT', $data, [$this, 'showrev']);
6760a48169SSatoshi Sahara            }
6860a48169SSatoshi Sahara            $html = p_wiki_xhtml($ID, $REV, true, $DATE_AT);
6960a48169SSatoshi Sahara            $html = html_secedit($html, $secedit);
7060a48169SSatoshi Sahara            if ($INFO['prependTOC']) $html = tpl_toc(true) . $html;
7160a48169SSatoshi Sahara            $html = html_hilight($html, $HIGH);
7260a48169SSatoshi Sahara            echo $html;
7360a48169SSatoshi Sahara        }
7460a48169SSatoshi Sahara    }
7560a48169SSatoshi Sahara
7660a48169SSatoshi Sahara    /**
7760a48169SSatoshi Sahara     * Show a revision warning
7860a48169SSatoshi Sahara     *
7960a48169SSatoshi Sahara     * @author Szymon Olewniczak <dokuwiki@imz.re>
8060a48169SSatoshi Sahara     */
8160a48169SSatoshi Sahara    public function showrev()
8260a48169SSatoshi Sahara    {
8360a48169SSatoshi Sahara        print p_locale_xhtml('showrev');
8460a48169SSatoshi Sahara    }
8560a48169SSatoshi Sahara
8660a48169SSatoshi Sahara
8760a48169SSatoshi Sahara}
88