diff options
author | ahriman <ahriman@falte.red> | 2018-12-03 19:22:25 -0500 |
---|---|---|
committer | ahriman <ahriman@falte.red> | 2018-12-03 19:22:25 -0500 |
commit | 0ae8cbf5c0b1a198b963490985b7738392ebcb97 (patch) | |
tree | b2c77ae72c6b717e2b97492065196ac5ffb2d9e2 /wiki/inc/Action/Preview.php | |
parent | f57f6cc5a2d159f90168d292437dc4bd8cd7f934 (diff) | |
download | site-0ae8cbf5c0b1a198b963490985b7738392ebcb97.tar.gz |
installed dokuwiki, added to navbar, updated news
Diffstat (limited to 'wiki/inc/Action/Preview.php')
-rw-r--r-- | wiki/inc/Action/Preview.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/wiki/inc/Action/Preview.php b/wiki/inc/Action/Preview.php new file mode 100644 index 0000000..850b204 --- /dev/null +++ b/wiki/inc/Action/Preview.php @@ -0,0 +1,58 @@ +<?php + +namespace dokuwiki\Action; + +/** + * Class Preview + * + * preview during editing + * + * @package dokuwiki\Action + */ +class Preview extends Edit { + + /** @inheritdoc */ + public function preProcess() { + header('X-XSS-Protection: 0'); + $this->savedraft(); + parent::preProcess(); + } + + /** @inheritdoc */ + public function tplContent() { + global $TEXT; + html_edit(); + html_show($TEXT); + } + + /** + * Saves a draft on preview + */ + protected function savedraft() { + global $INFO; + global $ID; + global $INPUT; + global $conf; + + if(!$conf['usedraft']) return; + if(!$INPUT->post->has('wikitext')) return; + + // ensure environment (safeguard when used via AJAX) + assert(isset($INFO['client']), 'INFO.client should have been set'); + assert(isset($ID), 'ID should have been set'); + + $draft = array( + 'id' => $ID, + 'prefix' => substr($INPUT->post->str('prefix'), 0, -1), + 'text' => $INPUT->post->str('wikitext'), + 'suffix' => $INPUT->post->str('suffix'), + 'date' => $INPUT->post->int('date'), + 'client' => $INFO['client'], + ); + $cname = getCacheName($draft['client'] . $ID, '.draft'); + if(io_saveFile($cname, serialize($draft))) { + $INFO['draft'] = $cname; + } + } + +} |