[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/inc/Action/ -> Save.php (source)

   1  <?php
   2  
   3  namespace dokuwiki\Action;
   4  
   5  use dokuwiki\Action\Exception\ActionAbort;
   6  use dokuwiki\Action\Exception\ActionException;
   7  
   8  /**
   9   * Class Save
  10   *
  11   * Save at the end of an edit session
  12   *
  13   * @package dokuwiki\Action
  14   */
  15  class Save extends AbstractAction {
  16  
  17      /** @inheritdoc */
  18      public function minimumPermission() {
  19          global $INFO;
  20          if($INFO['exists']) {
  21              return AUTH_EDIT;
  22          } else {
  23              return AUTH_CREATE;
  24          }
  25      }
  26  
  27      /** @inheritdoc */
  28      public function preProcess() {
  29          if(!checkSecurityToken()) throw new ActionException('preview');
  30  
  31          global $ID;
  32          global $DATE;
  33          global $PRE;
  34          global $TEXT;
  35          global $SUF;
  36          global $SUM;
  37          global $lang;
  38          global $INFO;
  39          global $INPUT;
  40  
  41          //spam check
  42          if(checkwordblock()) {
  43              msg($lang['wordblock'], -1);
  44              throw new ActionException('edit');
  45          }
  46          //conflict check
  47          if($DATE != 0
  48              && isset($INFO['meta']['date']['modified'])
  49              && $INFO['meta']['date']['modified'] > $DATE
  50          ) {
  51              throw new ActionException('conflict');
  52          }
  53  
  54          //save it
  55          saveWikiText($ID, con($PRE, $TEXT, $SUF, true), $SUM, $INPUT->bool('minor')); //use pretty mode for con
  56          //unlock it
  57          unlock($ID);
  58  
  59          // continue with draftdel -> redirect -> show
  60          throw new ActionAbort('draftdel');
  61      }
  62  
  63  }