openrat-cms

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

commit b693bdb8fc6f3fdbb9fcc54ac21d4274d5136625
parent 1f1b5a191d6ad8b205614c927365531237d6d35f
Author: dankert <devnull@localhost>
Date:   Wed, 10 Nov 2004 23:46:52 +0100

Neue Methoden checkFilename(), objectLoadRaw()

Diffstat:
objectClasses/Object.class.php | 153+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 96 insertions(+), 57 deletions(-)

diff --git a/objectClasses/Object.class.php b/objectClasses/Object.class.php @@ -20,8 +20,11 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ -// Revision 1.2 2004-05-02 14:41:31 dankert -// Einfügen package-name (@package) +// Revision 1.3 2004-11-10 22:46:52 dankert +// Neue Methoden checkFilename(), objectLoadRaw() +// +// Revision 1.2 2004/05/02 14:41:31 dankert +// Einf?gen package-name (@package) // // Revision 1.1 2004/04/24 15:15:12 dankert // Initiale Version @@ -62,8 +65,8 @@ class Object */ var $parentid; - /** Physikalischer Dateiname des Objektes (bei Links nicht gefüllt) - * <em>enthält nicht die Dateinamen-Erweiterung</em> + /** Physikalischer Dateiname des Objektes (bei Links nicht gef?llt) + * <em>enth?lt nicht die Dateinamen-Erweiterung</em> * @type String */ var $filename = ''; @@ -157,7 +160,7 @@ class Object /** <strong>Konstruktor</strong> - * Füllen des neuen Objektes mit Init-Werten + * F?llen des neuen Objektes mit Init-Werten * Es werden die Standardwerte aus der Session benutzt, um * Sprach-ID, Projektmodell-Id und Projekt-ID zu setzen * @@ -170,7 +173,7 @@ class Object if (is_numeric($objectid)) { $this->objectid = $objectid; - $this->id = $objectid; + $this->id = $objectid; } if ( isset($SESS['languageid']) ) @@ -224,7 +227,7 @@ class Object } /** - * Prüfen einer Berechtigung zu diesem Objekt + * Pr?fen einer Berechtigung zu diesem Objekt */ function checkRight( $type ) { @@ -233,13 +236,13 @@ class Object /** - * Prüfen einer Berechtigung zu diesem Objekt + * Pr?fen einer Berechtigung zu diesem Objekt */ function hasRight( $type ) { global $SESS; - // Administratoren dürfen alles + // Administratoren d?rfen alles if ($SESS['user']['is_admin'] == '1') return true; @@ -336,8 +339,8 @@ class Object /** * Lesen der Eigenschaften aus der Datenbank * Es werden - * - die sprachunabhängigen Daten wie Dateiname, Typ sowie Erstellungs- und Änderungsdatum geladen - * - die sprachabhängigen Daten wie Name und Beschreibung geladen + * - die sprachunabh?ngigen Daten wie Dateiname, Typ sowie Erstellungs- und ?nderungsdatum geladen + * - die sprachabh?ngigen Daten wie Name und Beschreibung geladen */ function objectLoad() { @@ -358,14 +361,6 @@ class Object $this->isRoot = true; else $this->isroot = false; - $this->filename = trim(strtolower($row['filename'])); - - // Dateiname muss gueltig sein, - // ungueltige Zeichen werden entfernt - $gueltig = 'abcdefghijklmnopqrstuvwxyz0123456789-_.'; - $tmp = strtr($this->filename, $gueltig, str_repeat('#', strlen($gueltig))); - $this->filename = strtr($this->filename, $tmp, str_repeat('_', strlen($tmp))); - // Falls leer, id<objectnr> als Dateinamen verwenden if ($this->filename == '') $this->filename = $this->objectid; @@ -375,24 +370,12 @@ class Object $this->lastchange_date = $row['lastchange_date']; $this->lastchange_userid = $row['lastchange_userid']; - $this->isFolder = false; - $this->isFile = false; - $this->isPage = false; - $this->isLink = false; - $this->projectid = $row['projectid']; - if ($row['is_folder'] == '1') - $this->isFolder = true; - - if ($row['is_file'] == '1') - $this->isFile = true; - - if ($row['is_page'] == '1') - $this->isPage = true; - - if ($row['is_link'] == '1') - $this->isLink = true; + $this->isFolder = ( $row['is_folder'] == '1' ); + $this->isFile = ( $row['is_file' ] == '1' ); + $this->isPage = ( $row['is_page' ] == '1' ); + $this->isLink = ( $row['is_link' ] == '1' ); if ( $this->isRoot ) { @@ -415,6 +398,47 @@ class Object /** + * Lesen der Eigenschaften aus der Datenbank + * Es werden + * - die sprachunabhaengigen Daten wie Dateiname, Typ sowie Erstellungs- und Aenderungsdatum geladen + */ + function objectLoadRaw() + { + global $SESS; + $db = db_connection(); + + $sql = new Sql('SELECT * FROM {t_object}'. + ' WHERE {t_object}.id={objectid}'); + $sql->setInt('objectid' , $this->objectid ); + $row = $db->getRow($sql->query); + + if (count($row) == 0) + die('fatal: objectid not found: '.$this->objectid); + + $this->parentid = $row['parentid']; + + if ( intval($this->parentid) == 0 ) + $this->isRoot = true; + else + $this->isRoot = false; + + $this->checkFilename(); + + $this->create_date = $row['create_date']; + $this->create_userid = $row['create_userid']; + $this->lastchange_date = $row['lastchange_date']; + $this->lastchange_userid = $row['lastchange_userid']; + + $this->projectid = $row['projectid']; + + $this->isFolder = ( $row['is_folder'] == '1' ); + $this->isFile = ( $row['is_file' ] == '1' ); + $this->isPage = ( $row['is_page' ] == '1' ); + $this->isLink = ( $row['is_link' ] == '1' ); + } + + + /** * Laden des Objektes * @deprecated bitte objectLoad() benutzen */ @@ -465,6 +489,8 @@ class Object global $SESS; $db = db_connection(); + $this->checkFilename(); + $sql = new Sql('UPDATE {t_object} SET '. ' parentid={parentid},'. ' lastchange_date = {time} ,'. @@ -557,12 +583,12 @@ class Object $db->query( $sql->query ); - // Objekt-Namen löschen + // Objekt-Namen l?schen $sql = new Sql('DELETE FROM {t_name} WHERE objectid={objectid}'); $sql->setInt('objectid', $this->objectid); $db->query($sql->query); - // Objekt löschen + // Objekt l?schen $sql = new Sql('DELETE FROM {t_object} WHERE id={objectid}'); $sql->setInt('objectid', $this->objectid); $db->query($sql->query); @@ -583,22 +609,7 @@ class Object $sql = new Sql('SELECT MAX(id) FROM {t_object}'); $this->objectid = intval($db->getOne($sql->query))+1; - if ( $this->filename == '' ) - $this->filename = $this->objectid; - - $sql = new Sql('SELECT COUNT(*) FROM {t_object}'.' WHERE parentid={parentid} AND filename={filename}'); - $sql->setString('filename', $this->filename); - - if ( $this->isRoot ) - $sql->setNull('parentid'); - else $sql->setInt ('parentid',$this->parentid ); - - // Falls Objekt mit diesem Dateinamen bereits existiert, dann Dateinamen aendern - if ($db->getOne($sql->query) > 0) - { - $this->filename .= md5(microtime()); - } - + $this->checkFilename(); $sql = new Sql('INSERT INTO {t_object}'. ' (id,parentid,projectid,filename,orderid,create_date,create_userid,lastchange_date,lastchange_userid,is_folder,is_file,is_page,is_link)'. ' VALUES( {objectid},{parentid},{projectid},{filename},{orderid},{time},{userid},{time},{userid},{is_folder},{is_file},{is_page},{is_link} )'); @@ -625,6 +636,34 @@ class Object } + function checkFilename() + { + if ( $this->filename == '' ) + $this->filename = $this->objectid; + + $this->filename = trim(strtolower($this->filename)); + + // Dateiname muss gueltig sein, + // ungueltige Zeichen werden entfernt + $gueltig = 'abcdefghijklmnopqrstuvwxyz0123456789-_.'; + $tmp = strtr($this->filename, $gueltig, str_repeat('#', strlen($gueltig))); + $this->filename = strtr($this->filename, $tmp, str_repeat('x', strlen($tmp))); + + if ( $this->isRoot ) + return; + + $pf = new Folder( $this->parentid ); + + if ( $pf->hasFilename( $this->filename ) ) + { + $this->filename = $this->objectid; + + if ( $pf->hasFilename( $this->filename ) ) + $this->filename = md5(microtime()); + } + } + + function getAclIds() { $db = db_connection(); @@ -760,10 +799,10 @@ class Object /** - * Übergeordnete Objekt-ID dieses Objektes neu speichern + * ?bergeordnete Objekt-ID dieses Objektes neu speichern * die Nr. wird sofort in der Datenbank gespeichert. * - * @param Integer Übergeordnete Objekt-ID + * @param Integer ?bergeordnete Objekt-ID */ function setParentId( $parentid ) { @@ -877,7 +916,7 @@ class Object /** * Es werden Objekte mit einer UserId ermittelt - * @param Integer Benutzer-Id der letzten Änderung + * @param Integer Benutzer-Id der letzten ?nderung * @return Array Liste der gefundenen Objekt-IDs */ function getObjectIdsByLastChangeUserId( $userid ) @@ -895,7 +934,7 @@ class Object /** - * Gibt true zurück, wenn die angegebene Objekt-ID existiert + * Gibt true zur?ck, wenn die angegebene Objekt-ID existiert * @param Integer Objekt-ID * @return Boolean */