commit e5f4be887f93a0a2af0f72b3c849b934154601f7
parent 2cc32ceaf63d58d573145d21386864c000377f5a
Author: dankert <devnull@localhost>
Date: Sun, 2 May 2004 13:40:00 +0200
Freigabestatus der Seiteninhalte verarbeiten
Diffstat:
3 files changed, 100 insertions(+), 30 deletions(-)
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.2 2004-04-30 20:52:11 dankert
+// Revision 1.3 2004-05-02 11:40:00 dankert
+// Freigabestatus der Seiteninhalte verarbeiten
+//
+// Revision 1.2 2004/04/30 20:52:11 dankert
// Schalter $release setzen
//
// Revision 1.1 2004/04/24 15:14:52 dankert
@@ -68,6 +71,7 @@ class PageelementAction extends Action
$this->value->pageid = Page::getPageIdFromObjectId( $this->getSessionVar('objectid') );
$this->value->element = new Element( $this->getSessionVar('elementid') );
$this->value->element->load();
+ $this->value->publish = false;
if ( intval($this->value->valueid)!=0 )
$this->value->loadWithId();
@@ -252,12 +256,33 @@ class PageelementAction extends Action
$date = date( lang('DATE_FORMAT'),$this->value->lastchangeTimeStamp);
else $date = ' ';
- $list[] = array( 'value'=>Text::maxLaenge( 50,$this->value->value),
- 'date' =>$date,
- 'user' =>User::getUserName($this->value->lastchangeUserId),
- 'url' =>Html::url(array('action' =>'pageelement',
- 'subaction'=>'usevalue',
- 'valueid' =>$valueid )) );
+ if ( ! $this->value->active )
+ $useUrl = Html::url(array('action' =>'pageelement',
+ 'subaction'=>'usevalue',
+ 'valueid' =>$valueid ));
+ else $useUrl = '';
+
+ if ( ! $this->value->publish && $this->value->active )
+ $releaseUrl = Html::url(array('action' =>'pageelement',
+ 'subaction'=>'release',
+ 'valueid' =>$valueid ));
+ else $releaseUrl = '';
+
+ if ( $this->value->publish )
+ $public = true;
+ else $public = false;
+
+ if ( $this->value->active )
+ $active = true;
+ else $active = false;
+
+ $list[] = array( 'value' => Text::maxLaenge( 50,$this->value->value),
+ 'date' => $date,
+ 'user' => User::getUserName($this->value->lastchangeUserId),
+ 'useUrl' => $useUrl,
+ 'public' => $public,
+ 'active' => $active,
+ 'releaseUrl'=> $releaseUrl );
}
$this->setTemplateVar('name',$this->value->element->name);
diff --git a/objectClasses/Page.class.php b/objectClasses/Page.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.2 2004-04-24 15:28:17 dankert
+// Revision 1.3 2004-05-02 11:40:00 dankert
+// Freigabestatus der Seiteninhalte verarbeiten
+//
+// Revision 1.2 2004/04/24 15:28:17 dankert
// Korrektur: relative Pfad bei Listen
//
// Revision 1.1 2004/04/24 15:15:12 dankert
@@ -426,7 +429,6 @@ class Page extends Object
$filename .= '.'.$t->extension;
}
-
return $filename;
}
@@ -474,6 +476,7 @@ class Page extends Object
{
// neues Elementobjekt erzeugen
$val = new Value();
+ $val->publish = $this->public;
$val->element = new Element( $elementid );
$val->element->load();
diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.3 2004-04-24 18:11:28 dankert
+// Revision 1.4 2004-05-02 11:40:00 dankert
+// Freigabestatus der Seiteninhalte verarbeiten
+//
+// Revision 1.3 2004/04/24 18:11:28 dankert
// Info-elemente
//
// Revision 1.2 2004/04/24 15:28:17 dankert
@@ -99,6 +102,19 @@ class Value
var $lastchangeUserId;
/**
+ * Schalter, ob dieser Inhalt der aktive Inhalt ist
+ * @type Boolean
+ */
+ var $active;
+
+ /**
+ * Schalter, ob dieser Inhalt der Inhalt ist, der veroeffentlicht
+ * werden soll
+ * @type Boolean
+ */
+ var $publish;
+
+ /**
* Konstruktor
*/
function Value()
@@ -393,15 +409,24 @@ class Value
}
+ /**
+ * Laden des aktuellen Inhaltes aus der Datenbank
+ */
function load()
{
$db = db_connection();
- $sql = new Sql( 'SELECT * FROM {t_value}'.
- ' WHERE elementid ={elementid}'.
- ' AND pageid ={pageid}'.
- ' AND languageid={languageid}'.
- ' AND active=1' );
+ if ( $this->publish )
+ $sql = new Sql( 'SELECT * FROM {t_value}'.
+ ' WHERE elementid ={elementid}'.
+ ' AND pageid ={pageid}'.
+ ' AND languageid={languageid}'.
+ ' AND publish=1' );
+ else $sql = new Sql( 'SELECT * FROM {t_value}'.
+ ' WHERE elementid ={elementid}'.
+ ' AND pageid ={pageid}'.
+ ' AND languageid={languageid}'.
+ ' AND active=1' );
$sql->setInt( 'elementid' ,$this->element->elementid );
$sql->setInt( 'pageid' ,$this->pageid );
$sql->setInt( 'languageid',$this->languageid);
@@ -413,11 +438,17 @@ class Value
$this->number = intval($row['number' ]);
$this->date = intval($row['date' ]);
+ $this->active = ( $row['active' ]=='1' );
+ $this->publish = ( $row['publish']=='1' );
+
$this->lastchangeTimeStamp = intval($row['lastchange_date' ]);
$this->lastchangeUserId = intval($row['lastchange_userid']);
}
+ /**
+ * Laden eines bestimmten Inhaltes aus der Datenbank
+ */
function loadWithId()
{
$db = db_connection();
@@ -433,6 +464,9 @@ class Value
$this->number = intval($row['number' ]);
$this->date = intval($row['date' ]);
+ $this->active = ( $row['active' ]=='1' );
+ $this->publish = ( $row['publish']=='1' );
+
$this->lastchangeTimeStamp = intval($row['lastchange_date' ]);
$this->lastchangeUserId = intval($row['lastchange_userid']);
}
@@ -467,16 +501,6 @@ class Value
global $SESS;
$db = db_connection();
-// $sql = new Sql( 'UPDATE {t_value}'.
-// ' SET '.
-// ' linkobjectid = {linkobjectid},'.
-// ' text = {defaultText},'.
-// ' number = {folderObjectId},'.
-// ' date = {defaultObjectId},'.
-// ' active = 1'.
-// ' WHERE elementid ={elementid}'.
-// ' AND pageid ={pageid}'.
-// ' AND languageid={languageid}' );
$sql = new Sql( 'UPDATE {t_value}'.
' SET active=0'.
' WHERE elementid ={elementid}'.
@@ -488,12 +512,29 @@ class Value
$db->query( $sql->query );
+ if ( $this->publish )
+ {
+ // Wenn Inhalt sofort veroeffentlicht werden kann, dann
+ // alle anderen Inhalte auf nicht-veroeffentlichen stellen
+ $sql = new Sql( 'UPDATE {t_value}'.
+ ' SET publish=0'.
+ ' WHERE elementid ={elementid}'.
+ ' AND pageid ={pageid}'.
+ ' AND languageid={languageid}' );
+ $sql->setInt( 'elementid' ,$this->element->elementid );
+ $sql->setInt( 'pageid' ,$this->pageid );
+ $sql->setInt( 'languageid',$this->languageid);
+
+ $db->query( $sql->query );
+ }
+
+ // Naechste ID aus Datenbank besorgen
$sql = new Sql('SELECT MAX(id) FROM {t_value}');
$this->valueid = intval($db->getOne($sql->query))+1;
$sql->setQuery( 'INSERT INTO {t_value}'.
- ' (id,linkobjectid,text,number,date,elementid,pageid,languageid,active,lastchange_date,lastchange_userid)'.
- ' VALUES ({valueid},{linkobjectid},{text},{number},{date},{elementid},{pageid},{languageid},1,{lastchange_date},{lastchange_userid})' );
+ ' (id,linkobjectid,text,number,date,elementid,pageid,languageid,active,publish,lastchange_date,lastchange_userid)'.
+ ' VALUES ({valueid},{linkobjectid},{text},{number},{date},{elementid},{pageid},{languageid},1,{publish},{lastchange_date},{lastchange_userid})' );
$sql->setInt( 'valueid' ,$this->valueid );
$sql->setInt( 'elementid' ,$this->element->elementid );
@@ -516,8 +557,9 @@ class Value
$sql->setNull ( 'date' );
else $sql->setInt ( 'date',$this->date );
- $sql->setInt ( 'lastchange_date' ,time() );
- $sql->setInt ( 'lastchange_userid',$SESS['user']['userid'] );
+ $sql->setBoolean( 'publish' ,$this->publish );
+ $sql->setInt ( 'lastchange_date' ,time() );
+ $sql->setInt ( 'lastchange_userid',$SESS['user']['userid'] );
$db->query( $sql->query );
}
@@ -895,7 +937,7 @@ class Value
}
if ( $this->page->icons && $this->element->withIcon )
- $inhalt = '<a href="'.Html::url(array('action'=>'pageelement','elementid'=>$this->element->elementid,'pageelementaction'=>'edit')).'" title="'.$this->element->desc.'" target="cms_main_main"><img src="'.$conf['directories']['themedir'].'/images/icon_el_'.$this->element->type.'.png" border="0" align="left"></a>'.$inhalt;
+ $inhalt = '<a href="'.Html::url(array('action'=>'pageelement','elementid'=>$this->element->elementid,'objectid'=>$this->page->objectid,'subaction'=>'edit')).'" title="'.$this->element->desc.'" target="cms_main_main"><img src="'.$conf['directories']['themedir'].'/images/icon_el_'.$this->element->type.'.png" border="0" align="left"></a>'.$inhalt;
$this->value = $inhalt;
}