openrat-cms

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

commit 36a1d9d10cc49d4a07f1ea7e3b77fad4bd587303
parent b440f128a8c3610ab8bff92fcf879720b5b054ff
Author: dankert <devnull@localhost>
Date:   Wed, 29 Dec 2004 21:18:50 +0100

Freigabe (release-Funktion) korrigiert

Diffstat:
actionClasses/PageAction.class.php | 11+++++++----
actionClasses/PageelementAction.class.php | 22+++++++++++++++-------
objectClasses/Value.class.php | 24++++++++++++++++++------
3 files changed, 40 insertions(+), 17 deletions(-)

diff --git a/actionClasses/PageAction.class.php b/actionClasses/PageAction.class.php @@ -157,7 +157,7 @@ class PageAction extends ObjectAction $value->linkToObjectId = intval($this->getRequestVar('linkobjectid')); $value->text = $this->getRequestVar('text'); - if ( $this->hasRequestVar('year') ) + if ( $this->hasRequestVar('year') ) // Wird ein Datum gespeichert? { // Wenn ein ANSI-Datum eingegeben wurde, dann dieses verwenden if ( $this->getRequestVar('ansidate') != $this->getRequestVar('ansidate_orig') ) @@ -178,10 +178,13 @@ class PageAction extends ObjectAction $value->page = new Page( $value->objectid ); $value->page->load(); - // Ermitteln, ob Inhalt sofort freigegeben werden kann und soll - if ( $value->page->hasRight('release') && $this->getRequestVar('release')!='' ) + // Inhalt sofort freigegeben, wenn + // - Recht vorhanden + // - Freigabe gewuenscht + if ( $value->page->hasRight( ACL_RELEASE ) && $this->getRequestVar('release')!='' ) $value->publish = true; - else $value->publish = false; + else + $value->publish = false; // Inhalt speichern diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php @@ -20,7 +20,10 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.14 2004-12-28 22:59:41 dankert +// Revision 1.15 2004-12-29 20:18:50 dankert +// Freigabe (release-Funktion) korrigiert +// +// Revision 1.14 2004/12/28 22:59:41 dankert // Schalter fuer HTML und WIKI // // Revision 1.13 2004/12/26 20:21:04 dankert @@ -132,7 +135,7 @@ class PageelementAction extends Action $language = Session::getProjectLanguage(); $this->value->languageid = $language->languageid; $this->value->objectid = $this->page->objectid; - $this->value->pageid = Page::getPageIdFromObjectId( $this->page->objectid ); + $this->value->pageid = $this->page->pageid; $this->value->element = &$this->element; $this->value->element->load(); $this->value->publish = false; @@ -313,12 +316,17 @@ class PageelementAction extends Action */ function release() { - $this->value->languageid = $this->getSessionVar('languageid'); - $this->value->objectid = $$this->getRequestId(); - $this->value->pageid = Page::getPageIdFromObjectId( $this->getRequestId() ); - $this->value->element = new Element( $this->getRequestVar('elementid') ); + $this->value->valueid = intval($this->getRequestVar('valueid')); + $this->value->loadWithId(); + + if ( $this->value->pageid != $this->page->pageid ) + die( 'cannot release, bad page' ); - $this->value->valueid = $this->getRequestVar('valueid'); + // Pruefen, ob Berechtigung zum Freigeben besteht + if ( !$this->page->hasRight(ACL_RELEASE) ) + die( 'cannot release, no right' ); + + // Inhalt freigeben $this->value->release(); // Versionen anzeigen diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php @@ -75,6 +75,12 @@ class Value var $element; /** + * Element-Id + * @type Integer + */ + var $elementid; + + /** * Der eigentliche Inhalt des Elementes * @type String */ @@ -550,8 +556,11 @@ class Value /** * Laden eines bestimmten Inhaltes aus der Datenbank */ - function loadWithId() + function loadWithId( $valueid=0 ) { + if ( $valueid != 0 ) + $this->valueid = $valueid; + $db = db_connection(); $sql = new Sql( 'SELECT {t_value}.*,{t_user}.name as lastchange_username'. @@ -561,8 +570,11 @@ class Value $sql->setInt( 'valueid',$this->valueid); $row = $db->getRow( $sql->query ); - $this->text = $row['text']; - $this->valueid = intval($row['id'] ); + $this->text = $row['text' ]; + $this->pageid = intval($row['pageid' ]); + $this->elementid = intval($row['elementid' ]); + $this->languageid = intval($row['languageid' ]); + $this->valueid = intval($row['id' ]); $this->linkToObjectId = intval($row['linkobjectid']); $this->number = intval($row['number' ]); $this->date = intval($row['date' ]); @@ -572,7 +584,7 @@ class Value $this->lastchangeTimeStamp = intval($row['lastchange_date' ]); $this->lastchangeUserId = intval($row['lastchange_userid' ]); - $this->lastchangeUserName = $row['lastchange_username']; + $this->lastchangeUserName = $row['lastchange_username']; } @@ -651,7 +663,7 @@ class Value ' WHERE elementid ={elementid}'. ' AND pageid ={pageid}'. ' AND languageid={languageid}' ); - $sql->setInt( 'elementid' ,$this->element->elementid ); + $sql->setInt( 'elementid' ,$this->elementid ); $sql->setInt( 'pageid' ,$this->pageid ); $sql->setInt( 'languageid',$this->languageid); @@ -663,7 +675,7 @@ class Value ' AND elementid ={elementid}'. ' AND pageid ={pageid}'. ' AND languageid={languageid}' ); - $sql->setInt( 'elementid' ,$this->element->elementid ); + $sql->setInt( 'elementid' ,$this->elementid ); $sql->setInt( 'pageid' ,$this->pageid ); $sql->setInt( 'languageid',$this->languageid);