160a48169SSatoshi Sahara<?php 260a48169SSatoshi Sahara 360a48169SSatoshi Saharanamespace dokuwiki\Ui; 460a48169SSatoshi Sahara 560a48169SSatoshi Saharause dokuwiki\Extension\Event; 660a48169SSatoshi Sahara 760a48169SSatoshi Sahara/** 8*f9dfcbbeSSatoshi 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 * 2960a48169SSatoshi Sahara * @author Andreas Gohr <andi@splitbrain.org> 3060a48169SSatoshi Sahara * 3160a48169SSatoshi Sahara * @triggers HTML_SHOWREV_OUTPUT 3260a48169SSatoshi Sahara * @return void 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 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