コード例 #1
0
ファイル: cs_link_manager.php プロジェクト: a2call/commsy
 /** 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();
     }
 }