public function getAllByCollection($collection_id, $start = 0, $limit = 0, $order = 'items.id desc', $where = false, $search = false) { $db = JO_Db::getDefaultAdapter(); $query = $db->select()->from('items')->where('items.status = ?', 'active')->joinLeft('items_collections', 'items_collections.item_id = items.id')->joinLeft(Model_Users::getPrefixDB() . 'users', 'users.user_id = items.user_id', array('username', 'avatar'))->order($order)->limit($limit, $start)->where('items_collections.collection_id = ?', $collection_id)->group('items.id'); if ($where != false) { $query->where($where); } if ($search) { $query->where("MATCH(items.name, items.description) AGAINST ('{$search}')\r\r\n \t\t\tOR\r\r\n \t\t\titems.name LIKE ('%{$search}%')\r\r\n \t\t\tOR \r\r\n \t\t\titems.description LIKE ('%{$search}%')\r\r\n \t\t\t"); } //echo $query; $return = array(); foreach ($db->fetchAll($query) as $d) { $d['categories'] = Model_Categories::getItemsCategories($d['id']); $categories = explode(',', $d['categories']); $d['categories'] = array(); foreach ($categories as $cat) { if (!empty($cat) && $cat != '|' && !in_array($cat, array_values($d['categories']))) { $d['categories'][] = $cat; } } $return[$d['id']] = $d; } return $return; }