openrat-cms

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

commit db3edf461203f5b42e7ca2103e908aad121af72f
parent 31e54e90c2cf1173745eb93c9480d80f1e9e2391
Author: dankert <devnull@localhost>
Date:   Sun, 22 Apr 2007 02:16:44 +0200

Fehlermeldung vermeiden, wenn eine Objekt-Id nicht in der Datenbank vorhanden ist.

Diffstat:
objectClasses/Object.class.php | 22++++++++++++++++++++--
objectClasses/Page.class.php | 9++++++++-
objectClasses/Value.class.php | 4++++
3 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/objectClasses/Object.class.php b/objectClasses/Object.class.php @@ -20,6 +20,9 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ +// Revision 1.24 2007-04-22 00:16:44 dankert +// Fehlermeldung vermeiden, wenn eine Objekt-Id nicht in der Datenbank vorhanden ist. +// // Revision 1.23 2007-04-08 15:25:35 dankert // Eigenschaft "type" erg?nzt. // @@ -461,6 +464,21 @@ class Object /** + * Stellt fest, ob das Objekt mit der angegebenen Id existiert. + */ + function available( $objectid ) + { + $db = db_connection(); + + $sql = new Sql('SELECT 1 FROM {t_object} '. + ' WHERE id={objectid}'); + $sql->setInt('objectid' , $objectid ); + + return intval($db->getOne($sql->query)) == 1; + } + + + /** * Lesen der Eigenschaften aus der Datenbank * Es werden * - die sprachunabh?ngigen Daten wie Dateiname, Typ sowie Erstellungs- und ?nderungsdatum geladen @@ -499,7 +517,7 @@ class Object $this->setDatabaseRow( $row ); if (count($row) == 0) - die('fatal: objectid not found: '.$this->objectid); + die('fatal: Object::objectLoad(): objectid not found: '.$this->objectid.', SQL='.$sql->query ); } @@ -520,7 +538,7 @@ class Object $row = $db->getRow($sql->query); if (count($row) == 0) - die('fatal: objectid not found: '.$this->objectid); + die('fatal: Object::objectLoadRaw(): objectid not found: '.$this->objectid.', SQL='.$sql->query); $this->parentid = $row['parentid' ]; $this->filename = $row['filename' ]; 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.19 2005-11-07 22:36:10 dankert +// Revision 1.20 2007-04-22 00:16:44 dankert +// Fehlermeldung vermeiden, wenn eine Objekt-Id nicht in der Datenbank vorhanden ist. +// +// Revision 1.19 2005/11/07 22:36:10 dankert // Beruecksichtigen von absoluten Pfadangaben // // Revision 1.18 2004/12/29 20:21:42 dankert @@ -226,6 +229,10 @@ class Page extends Object global $conf_php, $SESS; $inhalt = ''; + + if ( ! Object::available( $objectid) ) + return ''; + $object = new Object( $objectid ); $object->objectLoad(); diff --git a/objectClasses/Value.class.php b/objectClasses/Value.class.php @@ -508,6 +508,10 @@ SQL // Link noch nicht gefuellt $inhalt = ''; } + elseif ( ! Object::available($objectid) ) + { + $inhalt = $this->simple?'-':''; + } elseif ( $this->simple ) { $o = new Object( $objectid );