xref: /dokuwiki/inc/Ui/PageView.php (revision 26dfc2323f8f70cb69aac4c8c51bf7997809f2ca)
160a48169SSatoshi Sahara<?php
260a48169SSatoshi Sahara
360a48169SSatoshi Saharanamespace dokuwiki\Ui;
460a48169SSatoshi Sahara
560a48169SSatoshi Saharause dokuwiki\Extension\Event;
660a48169SSatoshi Sahara
760a48169SSatoshi Sahara/**
8f9dfcbbeSSatoshi Sahara * DokuWiki PageView Interface
960a48169SSatoshi Sahara *
1060a48169SSatoshi Sahara * @package dokuwiki\Ui
1160a48169SSatoshi Sahara */
1260a48169SSatoshi Saharaclass PageView extends Ui
1360a48169SSatoshi Sahara{
14e4286a88SSatoshi Sahara    protected $text;
15e4286a88SSatoshi Sahara
16e4286a88SSatoshi Sahara    /**
17e4286a88SSatoshi Sahara     * PageView Ui constructor
18e4286a88SSatoshi Sahara     *
19e4286a88SSatoshi Sahara     * @param null|string $text wiki text or null for showing $ID
20e4286a88SSatoshi Sahara     */
21e4286a88SSatoshi Sahara    public function __construct($text = null)
22e4286a88SSatoshi Sahara    {
23e4286a88SSatoshi Sahara        $this->text = $text;
24e4286a88SSatoshi Sahara    }
25e4286a88SSatoshi Sahara
2660a48169SSatoshi Sahara    /**
2760a48169SSatoshi Sahara     * Show a wiki page
2860a48169SSatoshi Sahara     *
29e2d055f5SAndreas Gohr     * @return void
3060a48169SSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
3160a48169SSatoshi Sahara     *
3260a48169SSatoshi Sahara     * @triggers HTML_SHOWREV_OUTPUT
3360a48169SSatoshi Sahara     */
34e4286a88SSatoshi 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
43e4286a88SSatoshi Sahara        if ($this->text !== null || $REV) {
4460a48169SSatoshi Sahara            $secedit = false;
4560a48169SSatoshi Sahara        } else {
4660a48169SSatoshi Sahara            $secedit = true;
4760a48169SSatoshi Sahara        }
4860a48169SSatoshi Sahara
49e4286a88SSatoshi 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">';
56e4286a88SSatoshi 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        } else {
6260a48169SSatoshi Sahara            if ($REV || $DATE_AT) {
6360a48169SSatoshi Sahara                // print intro for old revisions
64e2d055f5SAndreas Gohr                $data = ['rev' => &$REV, 'date_at' => &$DATE_AT];
6560a48169SSatoshi Sahara                Event::createAndTrigger('HTML_SHOWREV_OUTPUT', $data, [$this, 'showrev']);
6660a48169SSatoshi Sahara            }
6760a48169SSatoshi Sahara            $html = p_wiki_xhtml($ID, $REV, true, $DATE_AT);
6860a48169SSatoshi Sahara            $html = html_secedit($html, $secedit);
6960a48169SSatoshi Sahara            if ($INFO['prependTOC']) $html = tpl_toc(true) . $html;
7060a48169SSatoshi Sahara            $html = html_hilight($html, $HIGH);
7160a48169SSatoshi Sahara            echo $html;
7260a48169SSatoshi Sahara        }
7360a48169SSatoshi Sahara    }
7460a48169SSatoshi Sahara
7560a48169SSatoshi Sahara    /**
7660a48169SSatoshi Sahara     * Show a revision warning
7760a48169SSatoshi Sahara     *
7860a48169SSatoshi Sahara     * @author Szymon Olewniczak <dokuwiki@imz.re>
7960a48169SSatoshi Sahara     */
8060a48169SSatoshi Sahara    public function showrev()
8160a48169SSatoshi Sahara    {
82*26dfc232SAndreas Gohr        echo p_locale_xhtml('showrev');
8360a48169SSatoshi Sahara    }
8460a48169SSatoshi Sahara}
85