xref: /dokuwiki/inc/Action/Preview.php (revision 73022918a947abda7eee4d7d2302ffd28fdb78e0)
1f21dad39SAndreas Gohr<?php
2f21dad39SAndreas Gohr
3f21dad39SAndreas Gohrnamespace dokuwiki\Action;
4f21dad39SAndreas Gohr
56723156fSAndreas Gohruse dokuwiki\Ui\Editor;
66723156fSAndreas Gohruse dokuwiki\Ui\PageView;
76723156fSAndreas 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*73022918SAndreas Gohr        (new Editor())->show();
326723156fSAndreas 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;
416723156fSAndreas 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    }
49f21dad39SAndreas Gohr}
50