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');
 | |
|     }
 | |
| 
 | |
| }
 |