xref: /dokuwiki/inc/Action/Preview.php (revision 6723156fd9886ff7204e21fb8bf9240b9223b40f)
1f21dad39SAndreas Gohr<?php
2f21dad39SAndreas Gohr
3f21dad39SAndreas Gohrnamespace dokuwiki\Action;
4f21dad39SAndreas Gohr
5*6723156fSAndreas Gohruse dokuwiki\Ui\Editor;
6*6723156fSAndreas Gohruse dokuwiki\Ui\PageView;
7*6723156fSAndreas Gohruse dokuwiki\Draft;
825dd2a2fSSatoshi Saharause dokuwiki\Ui;
925dd2a2fSSatoshi Sahara
10ab583a1bSAndreas Gohr/**
11ab583a1bSAndreas Gohr * Class Preview
12ab583a1bSAndreas Gohr *
13ab583a1bSAndreas Gohr * preview during editing
14ab583a1bSAndreas Gohr *
15ab583a1bSAndreas Gohr * @package dokuwiki\Action
16ab583a1bSAndreas Gohr */
1725dd2a2fSSatoshi Saharaclass Preview extends Edit
1825dd2a2fSSatoshi Sahara{
19ab583a1bSAndreas Gohr    /** @inheritdoc */
2025dd2a2fSSatoshi Sahara    public function preProcess()
2125dd2a2fSSatoshi Sahara    {
220f9e19d9SAndreas Gohr        header('X-XSS-Protection: 0');
230f9e19d9SAndreas Gohr        $this->savedraft();
24f21dad39SAndreas Gohr        parent::preProcess();
25f21dad39SAndreas Gohr    }
26f21dad39SAndreas Gohr
27ab583a1bSAndreas Gohr    /** @inheritdoc */
2825dd2a2fSSatoshi Sahara    public function tplContent()
2925dd2a2fSSatoshi Sahara    {
30f21dad39SAndreas Gohr        global $TEXT;
31*6723156fSAndreas Gohr        (new Editor)->show();
32*6723156fSAndreas Gohr        (new PageView($TEXT))->show();
33f21dad39SAndreas Gohr    }
34f21dad39SAndreas Gohr
350f9e19d9SAndreas Gohr    /**
360f9e19d9SAndreas Gohr     * Saves a draft on preview
370f9e19d9SAndreas Gohr     */
3825dd2a2fSSatoshi Sahara    protected function savedraft()
3925dd2a2fSSatoshi Sahara    {
400aabe6f8SMichael Große        global $ID, $INFO;
41*6723156fSAndreas Gohr        $draft = new Draft($ID, $INFO['client']);
420aabe6f8SMichael Große        if (!$draft->saveDraft()) {
430aabe6f8SMichael Große            $errors = $draft->getErrors();
440aabe6f8SMichael Große            foreach ($errors as $error) {
450aabe6f8SMichael Große                msg(hsc($error), -1);
460aabe6f8SMichael Große            }
470f9e19d9SAndreas Gohr        }
480f9e19d9SAndreas Gohr    }
490f9e19d9SAndreas Gohr
50f21dad39SAndreas Gohr}
51