commit 378c57b87813c0ec5a53a7aac36d83051b9bd565
parent f234a78880f0611e080d8c0010bb37751c851dc4
Author: dankert <devnull@localhost>
Date: Wed, 2 May 2007 23:28:47 +0200
Beim Lesen aller Objekte bereits in der Datenbank nach Typ filtern.
Diffstat:
2 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/actionClasses/PageelementAction.class.php b/actionClasses/PageelementAction.class.php
@@ -546,24 +546,26 @@ class PageelementAction extends Action
if ( empty($this->value->element->subtype) )
$types = array('page','file','link'); // Fallback: Alle erlauben :)
else
- $types = explode(',',empty($this->value->element->subtype) );
+ $types = explode(',',$this->value->element->subtype );
+// Html::debug($this->value->element,'Element');
+// Html::debug($types,'Typen1');
$objects = array();
- foreach( Folder::getAllObjectIds() as $id )
+ foreach( Folder::getAllObjectIds($types) as $id )
{
$o = new Object( $id );
$o->load();
- if ( in_array( $o->getType(),$types ))
- {
+// if ( in_array( $o->getType(),$types ))
+// {
$f = new Folder( $o->parentid );
// $f->load();
$objects[ $id ] = lang( 'GLOBAL_'.$o->getType() ).': ';
$objects[ $id ] .= implode( FILE_SEP,$f->parentObjectNames(false,true) );
$objects[ $id ] .= FILE_SEP.$o->name;
- }
+// }
}
asort( $objects ); // Sortieren
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.10 2006-07-19 21:30:12 dankert
+// Revision 1.11 2007-05-02 21:28:47 dankert
+// Beim Lesen aller Objekte bereits in der Datenbank nach Typ filtern.
+//
+// Revision 1.10 2006/07/19 21:30:12 dankert
// Verbesserung "getParentObjectNames()"
//
// Revision 1.9 2005/11/07 22:34:51 dankert
@@ -333,16 +336,25 @@ class Folder extends Object
}
- function getAllObjectIds()
+ function getAllObjectIds( $types=array('folder','page','link','file') )
{
+// Html::debug($types,'Typen');
global $SESS;
$db = db_connection();
$sql = new Sql('SELECT id FROM {t_object}'.
' WHERE projectid={projectid}'.
+ ' AND ( is_folder={is_folder}' .
+ ' OR is_file ={is_file}' .
+ ' OR is_page ={is_page}' .
+ ' OR is_link ={is_link} )' .
' ORDER BY orderid ASC' );
$project = Session::getProject();
$sql->setInt('projectid',$project->projectid);
+ $sql->setInt('is_folder',in_array('folder',$types)?1:2);
+ $sql->setInt('is_file' ,in_array('file' ,$types)?1:2);
+ $sql->setInt('is_page' ,in_array('page' ,$types)?1:2);
+ $sql->setInt('is_link' ,in_array('link' ,$types)?1:2);
return( $db->getCol( $sql->query ) );
}