openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

FilePubAction.class.php (1201B)


      1 <?php
      2 namespace cms\action\file;
      3 use cms\action\FileAction;
      4 use cms\action\Method;
      5 use cms\generator\FileContext;
      6 use cms\generator\FileGenerator;
      7 use cms\generator\Producer;
      8 use cms\generator\Publisher;
      9 use cms\generator\PublishOrder;
     10 use cms\model\Permission;
     11 use language\Messages;
     12 use util\exception\PublisherException;
     13 
     14 class FilePubAction extends FileAction implements Method {
     15 	public function getRequiredPermission() {
     16 		return Permission::ACL_PUBLISH;
     17 	}
     18 
     19 	public function view() {
     20     }
     21     public function post() {
     22 		$fileGenerator = new FileGenerator( new FileContext( $this->file->objectid, Producer::SCHEME_PUBLIC));
     23 
     24 		$publisher = new Publisher( $this->file->projectid );
     25 		$publisher->addOrderForPublishing( new PublishOrder( $fileGenerator->getCache()->load()->getFilename(),$fileGenerator->getPublicFilename(),$this->file->lastchangeDate) );
     26 
     27 		try {
     28 			$publisher->publish();
     29 			$this->file->setPublishedTimestamp();
     30 			$this->addNoticeFor($this->file,'PUBLISHED',[],'Published items:'."\n".implode("\n",$publisher->getDestinationFilenames())  );
     31 		} catch( PublisherException $e ) {
     32 			$this->addErrorFor( $this->file,Messages::PUBLISHED_ERROR,[],$e->getMessage() );
     33 		}
     34 
     35     }
     36 }