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