openrat-cms

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

commit 4456ccb2d1e4e6fb60e889df11140008988bf7bd
parent e2f1b1a4f15fc01440f8137f173eb1854ffa796d
Author: Jan Dankert <devnull@localhost>
Date:   Mon, 10 Sep 2018 22:16:14 +0200

Verarbeiten der Gültigkeitszeiträume in ObjectAction, da diese für alle NodeTypen die gleiche Logik enthält (DRY).

Diffstat:
modules/cms-core/action/ObjectAction.class.php | 33++++++++++++++++++++++++++++++---
modules/cms-core/action/PageAction.class.php | 34++++++++++------------------------
modules/cms-core/model/BaseObject.class.php | 2+-
3 files changed, 41 insertions(+), 28 deletions(-)

diff --git a/modules/cms-core/action/ObjectAction.class.php b/modules/cms-core/action/ObjectAction.class.php @@ -12,6 +12,7 @@ use cms\model\BaseObject; use cms\model\Language; use cms\model\File; use cms\model\Link; +use Http; use Session; // OpenRat Content Management System @@ -45,8 +46,8 @@ class ObjectAction extends Action public $security = SECURITY_USER; private $objectid; - private $baseObject; + protected $baseObject; public function __construct() { @@ -469,11 +470,11 @@ class ObjectAction extends Action function delaclPost() { $acl = new Acl($this->getRequestVar('aclid')); - $acl->objectid = $this->getRequestId(); + $acl->load(); // Nachschauen, ob der Benutzer ueberhaupt berechtigt ist, an // diesem Objekt die ACLs zu aendern. - $o = new BaseObject( $this->getRequestId() ); + $o = new BaseObject( $acl->objectid ); if ( !$o->hasRight( ACL_GRANT ) ) Http::notAuthorized('no grant rights'); // Da wollte uns wohl einer vereimern. @@ -482,4 +483,30 @@ class ObjectAction extends Action $this->addNotice('','','DELETED',OR_NOTICE_OK); } + + + public function propView() + { + $this->setTemplateVar( 'valid_from_date' ,$this->baseObject->validFromDate==null?'':date('Y-m-d',$this->baseObject->validFromDate) ); + $this->setTemplateVar( 'valid_from_time' ,$this->baseObject->validFromDate==null?'':date('H:i' ,$this->baseObject->validFromDate) ); + $this->setTemplateVar( 'valid_until_date',$this->baseObject->validToDate ==null?'':date('Y-m-d',$this->baseObject->validToDate ) ); + $this->setTemplateVar( 'valid_until_time',$this->baseObject->validToDate ==null?'':date('H:i' ,$this->baseObject->validToDate ) ); + } + + public function propPost() + { + if ($this->getRequestVar( 'valid_from_date' )) + $this->baseObject->validFromDate = strtotime( $this->getRequestVar( 'valid_from_date' ).' '.$this->getRequestVar( 'valid_from_time' ) ); + else + $this->baseObject->validFromDate = null; + if ($this->getRequestVar( 'valid_until_date')) + $this->baseObject->validToDate = strtotime( $this->getRequestVar( 'valid_until_date').' '.$this->getRequestVar( 'valid_until_time') ); + else + $this->baseObject->validToDate = null; + + if ( $this->hasRequestVar('creationTimestamp') && $this->userIsAdmin() ) + $this->baseObject->createDate = $this->getRequestVar('creationTimestamp',OR_FILTER_NUMBER); + $this->baseObject->setCreationTimestamp(); + + } } \ No newline at end of file diff --git a/modules/cms-core/action/PageAction.class.php b/modules/cms-core/action/PageAction.class.php @@ -44,6 +44,7 @@ class PageAction extends ObjectAction $this->page->modelid = $this->request->getModelId(); $this->page->load(); + $this->baseObject = & $this->page; // Hier kann leider nicht das Datum der letzten Änderung verwendet werden, // da sich die Seite auch danach ändern kann, z.B. durch Includes anderer @@ -306,30 +307,19 @@ class PageAction extends ObjectAction if ( $this->getRequestVar('name')!='' ) { $this->page->name = $this->getRequestVar('name' ,OR_FILTER_FULL ); - $this->page->filename = $this->getRequestVar('filename' ,OR_FILTER_FILENAME); + $this->page->filename = BaseObject::urlify($this->getRequestVar('filename' ,OR_FILTER_FULL)); $this->page->desc = $this->getRequestVar('description',OR_FILTER_FULL ); - - if ($this->getRequestVar( 'valid_from_date' )) - $this->page->validFromDate = strtotime( $this->getRequestVar( 'valid_from_date' ).' '.$this->getRequestVar( 'valid_from_time' ) ); - else - $this->page->validFromDate = null; - if ($this->getRequestVar( 'valid_until_date')) - $this->page->validToDate = strtotime( $this->getRequestVar( 'valid_until_date').' '.$this->getRequestVar( 'valid_until_time') ); - else - $this->page->validToDate = null; - - $this->page->save(); - $this->addNotice($this->page->getType(),$this->page->name,'PROP_SAVED','ok'); - - if ( $this->hasRequestVar('creationTimestamp') && $this->userIsAdmin() ) - $this->page->createDate = $this->getRequestVar('creationTimestamp',OR_FILTER_NUMBER); - $this->page->setCreationTimestamp(); } else { $this->addValidationError('name'); } - } + + parent::propPost(); + + $this->page->save(); + $this->addNotice($this->page->getType(),$this->page->name,'PROP_SAVED','ok'); + } @@ -383,10 +373,8 @@ class PageAction extends ObjectAction $this->setTemplateVar( 'languageid' ,$this->page->languageid ); - $this->setTemplateVar( 'valid_from_date' ,$this->page->validFromDate==null?'':date('Y-m-d',$this->page->validFromDate) ); - $this->setTemplateVar( 'valid_from_time' ,$this->page->validFromDate==null?'':date('H:i' ,$this->page->validFromDate) ); - $this->setTemplateVar( 'valid_until_date',$this->page->validToDate ==null?'':date('Y-m-d',$this->page->validToDate ) ); - $this->setTemplateVar( 'valid_until_time',$this->page->validToDate ==null?'':date('H:i' ,$this->page->validToDate ) ); + + parent::propView(); } @@ -416,8 +404,6 @@ class PageAction extends ObjectAction $template->load(); $this->setTemplateVar('template_name',$template->name); - - } diff --git a/modules/cms-core/model/BaseObject.class.php b/modules/cms-core/model/BaseObject.class.php @@ -391,7 +391,7 @@ SQL if ( $conf['filename']['edit'] && $this->filename != '' && $this->filename != $this->objectid ) { - $this->filename = BaseObject::urlify($this->name); + $this->filename = BaseObject::urlify($this->filename); return $this->filename; }