61 lines
1.3 KiB
PHP
61 lines
1.3 KiB
PHP
|
<?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 && $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');
|
||
|
}
|
||
|
|
||
|
}
|