/** * Retrieve list of installed modules from the database * * @param object $criteria {@link icms_db_criteria_Element} * @param boolean $id_as_key Use the ID as key into the array * @return array Array of objects - installed module */ public function getObjects($criteria = NULL, $id_as_key = FALSE) { $ret = array(); $limit = $start = 0; $sql = "SELECT * FROM " . $this->db->prefix('modules'); if (isset($criteria) && is_subclass_of($criteria, 'icms_db_criteria_Element')) { $sql .= " " . $criteria->renderWhere(); $sql .= " ORDER BY weight " . $criteria->getOrder() . ", mid ASC"; $limit = $criteria->getLimit(); $start = $criteria->getStart(); } $result = $this->db->query($sql, $limit, $start); if (!$result) { return $ret; } while ($myrow = $this->db->fetchArray($result)) { $module = new icms_module_Object(); $module->assignVars($myrow); if (!$id_as_key) { $ret[] = $module; } else { $ret[$myrow['mid']] = $module; } $this->_cachedModule_lookup[$myrow['mid']] = $module->getVar("dirname"); $this->_cachedModule[$myrow['dirname']] = $module; unset($module); } return $ret; }