about summary refs log tree commit diff stats
path: root/wiki/inc/Action/Preview.php
diff options
context:
space:
mode:
authorahriman <ahriman@falte.red>2018-12-03 19:22:25 -0500
committerahriman <ahriman@falte.red>2018-12-03 19:22:25 -0500
commit0ae8cbf5c0b1a198b963490985b7738392ebcb97 (patch)
treeb2c77ae72c6b717e2b97492065196ac5ffb2d9e2 /wiki/inc/Action/Preview.php
parentf57f6cc5a2d159f90168d292437dc4bd8cd7f934 (diff)
downloadsite-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.php58
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;
+        }
+    }
+
+}