/** * Prepare table */ private function _prepareTable() { $request = $this->getRequest(); $page = $request->getParam('page'); $recCount = $request->getParam('recCount'); $paging = array('currentPage' => $this->defaultPageNumber, 'recordCount' => $this->defaultRecordCount); if (!$page && !$recCount && $this->getTableSession()) { $paging = $this->getPagingFilters(); } else { if ($page || $recCount) { if ($page) { $paging['currentPage'] = $page; } if ($recCount) { $paging['recordCount'] = $recCount; } } } $this->collection->setCurrentPageNumber($paging['currentPage']); $this->collection->setItemCountPerPage($paging['recordCount']); $this->setPagingFilters($paging); }
/** * Get object collection * * @param mixed $condition * @param mixed $cols * @param mixed $sortOrder * @param array $filterColumns * @return Uni_Core_Model_Collection */ public function getModelCollection($condition = NULL, $cols = '*', $sortOrder = NULL, $filterColumns = NULL) { $modelClass = get_class($this); $select = $this->getAdapter()->select(FALSE)->from(array('mainTable' => $this->_name), $cols); if (!empty($condition)) { if (is_array($condition)) { foreach ($condition as $key => $value) { if (is_array($value) && isset($value['operator'])) { $select->where($this->getAdapter()->quoteIdentifier($key) . $value['operator'] . '?', $value['value']); } else { if (isset($filterColumns[$key])) { if (isset($filterColumns[$key]['type'])) { if ($filterColumns[$key]['type'] == Fox_Core_View_Admin_Table::TYPE_NUMBER) { if (isset($condition[$key]['from']) && $condition[$key]['from'] != '') { $select->where((isset($filterColumns[$key]['index']) ? $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) : $this->getAdapter()->quoteIdentifier($key)) . ">=?", $condition[$key]['from']); } if (isset($condition[$key]['to']) && $condition[$key]['to'] != '') { $select->where((isset($filterColumns[$key]['index']) ? $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) : $this->getAdapter()->quoteIdentifier($key)) . "<=?", $condition[$key]['to']); } } else { if ($filterColumns[$key]['type'] == Fox_Core_View_Admin_Table::TYPE_DATE) { if (isset($condition[$key]['from']) && $condition[$key]['from'] != '') { $select->where((isset($filterColumns[$key]['index']) ? 'date(' . $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) . ')' : 'date(' . $this->getAdapter()->quoteIdentifier($key) . ')') . ">=?", $condition[$key]['from']); } if (isset($condition[$key]['to']) && $condition[$key]['to'] != '') { $select->where((isset($filterColumns[$key]['index']) ? 'date(' . $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) . ')' : 'date(' . $this->getAdapter()->quoteIdentifier($key) . ')') . "<=?", $condition[$key]['to']); } } else { if (isset($filterColumns[$key]['type']) && $filterColumns[$key]['type'] == Fox_Core_View_Admin_Table::TYPE_OPTIONS) { $select->where((isset($filterColumns[$key]['index']) ? $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) : $this->getAdapter()->quoteIdentifier($key)) . "=?", $value); } else { $select->where((isset($filterColumns[$key]['index']) ? $this->getAdapter()->quoteIdentifier($filterColumns[$key]['index']) : $this->getAdapter()->quoteIdentifier($key)) . " like ?", '%' . $value . '%'); } } } } } else { $select->where($this->getAdapter()->quoteIdentifier($key) . "=?", $value); } } } } else { $select->where($condition); } } if (!empty($sortOrder)) { $sortCondition = ''; if (is_array($sortOrder)) { foreach ($sortOrder as $sortKey => $sortVal) { $sortCondition[] = (isset($filterColumns[$sortKey]) && isset($filterColumns[$sortKey]['index']) ? $filterColumns[$sortKey]['index'] : $sortKey) . ' ' . $sortVal; } } else { $sortCondition = $sortOrder; } $select->order($sortCondition); } $modelCollection = Uni_Core_Model_Collection::getInstance($select, $modelClass); $modelCollection->setItemCountPerPage($modelCollection->getTotalItemCount()); return $modelCollection; }
/** * Get object collection * * @param mixed $condition * @param mixed $cols * @param mixed $sortOrder * @param array $filterColumns * @param int $type * @return Uni_Core_Model_Collection */ public function getModelCollection($condition = NULL, $cols = '*', $sortOrder = NULL, $filterColumns = NULL, $type = Fox::COLLECTION_MINIMAL) { $modelClass = get_class($this); $modelCollection = array(); $query = $this->getSelectObject($condition, $cols, $sortOrder, $type, $filterColumns); $modelCollection = Uni_Core_Model_Collection::getInstance($query, $modelClass); $modelCollection->setItemCountPerPage($modelCollection->getTotalItemCount()); return $modelCollection; }