r2570 - getNarrowObjectList(): accept a list of types instead of one type; escape...
[racktables] / inc / database.php
index ec7a4e9a043396c23052f02d28eeaffcb84e4176..1ad56dd88c188916595ae44a8fe9ff0b8c675f9e 100644 (file)
@@ -160,34 +160,25 @@ function getWhereClause ($tagfilter = array())
        return $whereclause;
 }
 
-// Return a simple object list w/o related information.
-function getNarrowObjectList ($type_id = 0)
+// Return a simple object list w/o related information, so that the returned value
+// can be directly used by printSelect().
+function getNarrowObjectList ($typeList = array())
 {
        $ret = array();
-       if (!$type_id)
-       {
-               showError ('Invalid argument', __FUNCTION__);
-               return $ret;
-       }
-       // object type id is known and constant, but it's Ok to have this standard overhead
-       $query =
-               "select RackObject.id as id, RackObject.name as name, dict_value as objtype_name, " .
-               "objtype_id from " .
-               "RackObject inner join Dictionary on objtype_id=dict_key join Chapter on Chapter.id = Dictionary.chapter_id " .
-               "where RackObject.deleted = 'no' and Chapter.name = 'RackObjectType' " .
-               "and objtype_id = ${type_id} " .
-               "order by name";
-       $result = useSelectBlade ($query, __FUNCTION__);
-       while ($row = $result->fetch (PDO::FETCH_ASSOC))
+       global $dbxlink;
+       foreach ($typeList as $type_id)
        {
-               foreach (array (
-                       'id',
-                       'name',
-                       'objtype_name',
-                       'objtype_id'
-                       ) as $cname)
-                       $ret[$row['id']][$cname] = $row[$cname];
-               $ret[$row['id']]['dname'] = displayedName ($ret[$row['id']]);
+               $type_id = $dbxlink->quote (trim ($type_id));
+               $query =
+                       "select RackObject.id as id, RackObject.name as name, dict_value as objtype_name, " .
+                       "objtype_id from " .
+                       "RackObject inner join Dictionary on objtype_id=dict_key join Chapter on Chapter.id = Dictionary.chapter_id " .
+                       "where RackObject.deleted = 'no' and Chapter.name = 'RackObjectType' " .
+                       "and objtype_id = ${type_id} " .
+                       "order by name";
+               $result = useSelectBlade ($query, __FUNCTION__);
+               while ($row = $result->fetch (PDO::FETCH_ASSOC))
+                       $ret[$row['id']] = displayedName ($row);
        }
        return $ret;
 }