/** select items limited by limits * this method returns a list (cs_list) of items within the database limited by the limits. * depends on _performQuery(), which must be overwritten */ function select2($with_linked_items = true) { if (isset($this->_id_array_limit)) { $result = $this->_performQuery2('select', $with_linked_items); $this->_data = new cs_list(); $this->_id_array = NULL; if (!$with_linked_items) { foreach ($result as $query_result) { $item = $this->_buildItem($query_result); $this->_data->add($item); } } else { $link_list = new cs_list(); $item_id_array = array(); foreach ($result as $query_result) { if ($this->_linked_item->getItemID() == $query_result['first_item_id']) { $item_id_array[] = $query_result['second_item_id']; } else { $item_id_array[] = $query_result['first_item_id']; } $item = $this->_buildItem($query_result); $link_list->add($item); } $this->_data = $link_list; } if (isset($this->_order) and !empty($this->_order) and $this->_order == 'sorting_place') { $item = $this->_data->getFirst(); $link_list1 = new cs_list(); $link_list2 = new cs_list(); while ($item) { if ($item->getSortingPlace()) { $link_list1->add($item); } else { $link_list2->add($item); } $item = $this->_data->getNext(); } $link_list1->addList($link_list2); $this->_data = $link_list1; unset($link_list1); unset($link_list2); } } else { parent::select(); } }