/** * retrieve items from the database * * @param object $criteria {@link CriteriaElement} conditions to be met * @param bool $id_key what shall we use as array key ? none, itemid, categoryid * @return array array of {@link ssItem} objects */ function &getObjects($criteria = null, $id_key = 'none', $notNullFields = '') { $ret = false; $limit = $start = 0; $sql = 'SELECT * FROM ' . $this->db->prefix('smartsection_items'); if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) { $whereClause = $criteria->renderWhere(); if ($whereClause != 'WHERE ()') { $sql .= ' ' . $criteria->renderWhere(); if (!empty($notNullFields)) { $sql .= $this->NotNullFieldClause($notNullFields, true); } } elseif (!empty($notNullFields)) { $sql .= " WHERE " . $this->NotNullFieldClause($notNullFields); } if ($criteria->getSort() != '') { $sql .= ' ORDER BY ' . $criteria->getSort() . ' ' . $criteria->getOrder(); } $limit = $criteria->getLimit(); $start = $criteria->getStart(); } elseif (!empty($notNullFields)) { $sql .= $sql .= " WHERE " . $this->NotNullFieldClause($notNullFields); } //echo "<br />" . $sql . "<br />"; $result = $this->db->query($sql, $limit, $start); if (!$result) { return $ret; } if (count($result) == 0) { return $ret; } while ($myrow = $this->db->fetchArray($result)) { $item = new ssItem(); $item->assignVars($myrow); $item->assignOtherProperties(); if ($id_key == 'none') { $ret[] =& $item; } elseif ($id_key == 'itemid') { $ret[$myrow['itemid']] =& $item; } else { if (isset($myrow[$id_key])) { $ret[$myrow[$id_key]][$myrow['itemid']] =& $item; } } unset($item); } return $ret; }