commit a57a4e83924121cfd971ea4f81b6b801434935b2
parent 6c4f76ec6cbebaae86bc162f755c4833536deb65
Author: dankert <devnull@localhost>
Date: Wed, 19 Jul 2006 23:30:12 +0200
Verbesserung "getParentObjectNames()"
Diffstat:
1 file changed, 51 insertions(+), 34 deletions(-)
diff --git a/objectClasses/Folder.class.php b/objectClasses/Folder.class.php
@@ -20,7 +20,10 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
// ---------------------------------------------------------------------------
// $Log$
-// Revision 1.9 2005-11-07 22:34:51 dankert
+// Revision 1.10 2006-07-19 21:30:12 dankert
+// Verbesserung "getParentObjectNames()"
+//
+// Revision 1.9 2005/11/07 22:34:51 dankert
// Einen Sql-Befehl in ein "here-document" ausgelagert.
//
// Revision 1.8 2005/01/04 19:58:56 dankert
@@ -596,8 +599,14 @@ class Folder extends Object
}
- function addParentFolder( $id,$name )
+ function addParentFolder( $id,$name,$filename='' )
{
+ if ( empty($name) )
+ $name = $filename;
+
+ if ( empty($name) )
+ $name = "($id)";
+
if ( intval($id) != 0 )
$this->parentfolders[ $id ] = $name;
}
@@ -722,43 +731,51 @@ EOF
{
$db = Session::getDatabase();
- $sql = new Sql('SELECT F0.id AS f0id,'.
- ' F0NAME.name AS f0name,'.
- ' F1.id AS f1id,'.
- ' F1NAME.name AS f1name,'.
- ' F2.id AS f2id,'.
- ' F2NAME.name AS f2name,'.
- ' F3.id AS f3id,'.
- ' F3NAME.name AS f3name,'.
- ' F4.id AS f4id,'.
- ' F4NAME.name AS f4name,'.
- ' F5.id AS f5id, '.
- ' F5NAME.name AS f5name'.
- ' FROM {t_object} AS F0'.
- ' LEFT JOIN {t_name} AS F0NAME ON F0NAME.objectid=F0.id AND F0NAME.languageid={languageid} '.
- ' LEFT JOIN {t_object} AS F1 on F0.parentid=F1.id '.
- ' LEFT JOIN {t_name} AS F1NAME ON F1NAME.objectid=F1.id AND F1NAME.languageid={languageid} '.
- ' LEFT JOIN {t_object} AS F2 on F1.parentid=F2.id '.
- ' LEFT JOIN {t_name} AS F2NAME ON F2NAME.objectid=F2.id AND F2NAME.languageid={languageid} '.
- ' LEFT JOIN {t_object} AS F3 on F2.parentid=F3.id '.
- ' LEFT JOIN {t_name} AS F3NAME ON F3NAME.objectid=F3.id AND F3NAME.languageid={languageid} '.
- ' LEFT JOIN {t_object} AS F4 on F3.parentid=F4.id '.
- ' LEFT JOIN {t_name} AS F4NAME ON F4NAME.objectid=F4.id AND F4NAME.languageid={languageid} '.
- ' LEFT JOIN {t_object} AS F5 on F4.parentid=F5.id '.
- ' LEFT JOIN {t_name} AS F5NAME ON F5NAME.objectid=F5.id AND F5NAME.languageid={languageid} '.
- ' WHERE F0.id={objectid}');
-
+ $sql = new Sql( <<<EOF
+SELECT F0.id AS f0id,
+ F0.filename AS f0filename,
+ F1.filename AS f1filename,
+ F2.filename AS f2filename,
+ F3.filename AS f3filename,
+ F4.filename AS f4filename,
+ F5.filename AS f5filename,
+ F0NAME.name AS f0name,
+ F1.id AS f1id,
+ F1NAME.name AS f1name,
+ F2.id AS f2id,
+ F2NAME.name AS f2name,
+ F3.id AS f3id,
+ F3NAME.name AS f3name,
+ F4.id AS f4id,
+ F4NAME.name AS f4name,
+ F5.id AS f5id,
+ F5NAME.name AS f5name
+ FROM {t_object} AS F0
+ LEFT JOIN {t_name} AS F0NAME ON F0NAME.objectid=F0.id AND F0NAME.languageid={languageid}
+ LEFT JOIN {t_object} AS F1 on F0.parentid=F1.id
+ LEFT JOIN {t_name} AS F1NAME ON F1NAME.objectid=F1.id AND F1NAME.languageid={languageid}
+ LEFT JOIN {t_object} AS F2 on F1.parentid=F2.id
+ LEFT JOIN {t_name} AS F2NAME ON F2NAME.objectid=F2.id AND F2NAME.languageid={languageid}
+ LEFT JOIN {t_object} AS F3 on F2.parentid=F3.id
+ LEFT JOIN {t_name} AS F3NAME ON F3NAME.objectid=F3.id AND F3NAME.languageid={languageid}
+ LEFT JOIN {t_object} AS F4 on F3.parentid=F4.id
+ LEFT JOIN {t_name} AS F4NAME ON F4NAME.objectid=F4.id AND F4NAME.languageid={languageid}
+ LEFT JOIN {t_object} AS F5 on F4.parentid=F5.id
+ LEFT JOIN {t_name} AS F5NAME ON F5NAME.objectid=F5.id AND F5NAME.languageid={languageid}
+ WHERE F0.id={objectid}
+EOF
+ );
$sql->setInt('objectid' ,$this->objectid );
$sql->setInt('languageid',$this->languageid);
$row = $db->getRow( $sql->query );
- $this->addParentfolder( $row['f0id'],$row['f0name'] );
- $this->addParentfolder( $row['f1id'],$row['f1name'] );
- $this->addParentfolder( $row['f2id'],$row['f2name'] );
- $this->addParentfolder( $row['f3id'],$row['f3name'] );
- $this->addParentfolder( $row['f4id'],$row['f4name'] );
- $this->addParentfolder( $row['f5id'],$row['f5name'] );
+ $this->addParentfolder( $row['f0id'],$row['f0name'],$row['f0filename'] );
+ $this->addParentfolder( $row['f1id'],$row['f1name'],$row['f1filename'] );
+ $this->addParentfolder( $row['f2id'],$row['f2name'],$row['f2filename'] );
+ $this->addParentfolder( $row['f3id'],$row['f3name'],$row['f3filename'] );
+ $this->addParentfolder( $row['f4id'],$row['f4name'],$row['f4filename'] );
+ $this->addParentfolder( $row['f5id'],$row['f5name'],$row['f5filename'] );
$this->checkParentFolders($with_root,$with_self);