/** * Random products * * @param integer $start * @param integer $limit * @param integer $category * @param string $sort * @param string $order * @param boolean $thisMonthOnly * @return array ) */ function getRandomProducts($start = 0, $limit = 0, $category = 0, $sort = 'RAND()', $order = 'ASC', $thisMonthOnly = false) { $tbl_datas = array(); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('product_online', 1, '=')); if (myshop_utils::getModuleOption('show_unpublished') == 0) { // Don't show products not published $criteria->add(new Criteria('product_submitted', time(), '<=')); } if (myshop_utils::getModuleOption('nostock_display') == 0) { // only products in stock $criteria->add(new Criteria('product_stock', 0, '>')); } if (is_array($category)) { $criteria->add(new Criteria('product_cid', '(' . implode(',', $category) . ')', 'IN')); } elseif ($category != 0) { $criteria->add(new Criteria('product_cid', intval($category), '=')); } if ($thisMonthOnly) { $criteria->add(myshop_utils::getThisMonthCriteria()); } $criteria->setLimit($limit); $criteria->setStart($start); $criteria->setSort($sort); $criteria->setOrder($order); $tbl_datas = $this->getObjects($criteria, true); return $tbl_datas; }