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:
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;
}