|
- <?php
-
- namespace dokuwiki\Action;
-
- use dokuwiki\Action\Exception\ActionAbort;
- use dokuwiki\Action\Exception\ActionException;
-
- /**
- * Class Save
- *
- * Save at the end of an edit session
- *
- * @package dokuwiki\Action
- */
- class Save extends AbstractAction
- {
- /** @inheritdoc */
- public function minimumPermission()
- {
- global $INFO;
- if ($INFO['exists']) {
- return AUTH_EDIT;
- } else {
- return AUTH_CREATE;
- }
- }
-
- /** @inheritdoc */
- public function preProcess()
- {
- if (!checkSecurityToken()) throw new ActionException('preview');
-
- global $ID;
- global $DATE;
- global $PRE;
- global $TEXT;
- global $SUF;
- global $SUM;
- global $lang;
- global $INFO;
- global $INPUT;
-
- //spam check
- if (checkwordblock()) {
- msg($lang['wordblock'], -1);
- throw new ActionException('edit');
- }
- //conflict check
- if (
- $DATE != 0
- && isset($INFO['meta']['date']['modified'])
- && $INFO['meta']['date']['modified'] > $DATE
- ) {
- throw new ActionException('conflict');
- }
-
- //save it
- saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
- //unlock it
- unlock($ID);
-
- // continue with draftdel -> redirect -> show
- throw new ActionAbort('draftdel');
- }
- }
|