/** * Static method */ function getAllNews($limit, $start = 0, $criteria = null) { $ret = array(); $db =& XoopsDatabaseFactory::getDatabaseConnection(); if ($criteria == null) { $criteria = new Criteria(); } $criteria->setLimit($limit); $criteria->setStart($start); $sql = "SELECT n.*, t.*, a.* FROM " . $db->prefix('ams_article') . " n, " . $db->prefix('ams_text') . " t, " . $db->prefix('ams_audience') . " a WHERE n.storyid=t.storyid AND n.audienceid=a.audienceid AND n.published != 0 AND t.current=1"; if (isset($criteria) && is_subclass_of($criteria, 'criteriaelement')) { $render = $criteria->render(); if ($render != "") { $sql .= ' AND ' . $render; } $sql .= " GROUP BY n.storyid"; if ($criteria->getSort() != '') { $sql .= ' ORDER BY ' . $criteria->getSort() . ' ' . $criteria->getOrder(); } $limit = $criteria->getLimit(); $start = $criteria->getStart(); } $result = $db->query($sql, $limit, $start); if (!$result) { return $ret; } while ($myrow = $db->fetchArray($result)) { $story = new AmsStory(); $story->makeStory($myrow); $ret[$myrow['storyid']] =& $story; unset($story); } return $ret; }