public function testGetItemsOffsetTen() { $actual = $this->_adapter->getItems(10, 10); $i = 11; foreach ($actual as $item) { $this->assertEquals($i, $item['number']); $i++; } }
public function getItems($offset, $itemCountPerPage) { $rows = parent::getItems($offset, $itemCountPerPage); $results = array(); $model = $this->getModel(); foreach ($rows as $row) { $entry = clone $model; try { $map = $entry->clear(); //sets all mapped properties to null } catch (Exception $e) { //echo get_class($entry); //echo "<pre>"; //throw new Exception($e->getMessage()); return $rows; } $entry->fromArray($row); $results[] = $entry; unset($entry); } return $results; }
public function getItems($offset, $itemCountPerPage) { $items = parent::getItems($offset, $itemCountPerPage); foreach ($items as $key => $data) { $items[$key] = $this->getMapper()->toEntity($data); } return $items; }
/** * Returns an array of items as objects for a page. * * @param integer $offset Page offset * @param integer $itemCountPerPage Number of items per page * @return array An array of Myblog_ModelAbstract objects */ public function getItems($offset, $itemCountPerPage) { $items = parent::getItems($offset, $itemCountPerPage); $objects = array(); foreach ($items as $item) { $objects[] = $this->_mapper->loadModel($item, null); } return $objects; }
/** * Returns an array of items for a page. * * @param integer $offset Page offset * @param integer $itemCountPerPage Number of items per page * @return array */ public function getItems($offset, $itemCountPerPage) { // Cast to integers, as $itemCountPerPage can be string sometimes and that would fail later checks $offset = (int) $offset; $itemCountPerPage = (int) $itemCountPerPage; if ($this->_lastOffset === $offset && $this->_lastItemCount === $itemCountPerPage && null !== $this->_lastItems) { return $this->_lastItems; } $this->_lastOffset = $offset; $this->_lastItemCount = $itemCountPerPage; // Optimization: by using the MySQL feature SQL_CALC_FOUND_ROWS // we can get the count and the results in a single query. $db = $this->_select->getAdapter(); if (null === $this->_count && $db instanceof \Zend_Db_Adapter_Mysqli) { $this->_select->limit($itemCountPerPage, $offset); $sql = $this->_select->__toString(); if (\MUtil_String::startsWith($sql, 'select ', true)) { $sql = 'SELECT SQL_CALC_FOUND_ROWS ' . substr($sql, 7); } $this->_lastItems = $db->fetchAll($sql); $this->_count = $db->fetchOne('SELECT FOUND_ROWS()'); } else { $this->_lastItems = $this->_selectAdapter->getItems($offset, $itemCountPerPage); } if (is_array($this->_lastItems)) { if (isset($this->_model->prefetchIterator) && $this->_model->prefetchIterator) { $this->_lastItems = new \ArrayIterator($this->_lastItems); } $this->_lastItems = $this->_model->processAfterLoad($this->_lastItems, false, false); } return $this->_lastItems; }
/** * Returns an array of items for a page. * * @param integer $offset Page offset * @param integer $itemCountPerPage Number of items per page * @return array */ public function getItems($offset, $itemCountPerPage) { $result = parent::getItems($offset, $itemCountPerPage); $entityCollectionClass = App_Model::getClassSibling($this->_mapper, App_Model::MODEL_TYPE_COLLECTION); return new $entityCollectionClass($result); }
public function manageAction() { $userForm = new Application_Form_User(); $userForm->getElement('password')->setRequired(false); if ($this->getRequest()->isPost()) { //if we are updating $userId = $this->getRequest()->getParam('id'); if ($userId) { $userForm->setId($userId); } if ($userForm->isValid($this->getRequest()->getParams())) { $data = $userForm->getValues(); $user = new Application_Model_Models_User($data); Application_Model_Mappers_UserMapper::getInstance()->save($user); $this->_helper->response->success($this->_helper->language->translate('Saved')); exit; } else { $this->_helper->response->fail(Tools_Content_Tools::proccessFormMessages($userForm->getMessages())); exit; } } $pnum = (int) filter_var($this->getParam('pnum'), FILTER_SANITIZE_NUMBER_INT); $offset = 0; if ($pnum) { $offset = 10 * ($pnum - 1); } $select = $this->_zendDbTable->getAdapter()->select()->from('user'); $by = filter_var($this->getParam('by', 'last_login'), FILTER_SANITIZE_STRING); $order = filter_var($this->getParam('order', 'desc'), FILTER_SANITIZE_STRING); $searchKey = filter_var($this->getParam('key'), FILTER_SANITIZE_STRING); if (!in_array($order, array('asc', 'desc'))) { $order = 'desc'; } $select = $select->order($by . ' ' . $order); $paginatorOrderLink = '/by/' . $by . '/order/' . $order; if (!empty($searchKey)) { $select->where('email LIKE ?', '%' . $searchKey . '%')->orWhere('full_name LIKE ?', '%' . $searchKey . '%')->orWhere('role_id LIKE ?', '%' . $searchKey . '%')->orWhere('last_login LIKE ?', '%' . date("Y-m-d", strtotime($searchKey)) . '%')->orWhere('ipaddress LIKE ?', '%' . $searchKey . '%'); $paginatorOrderLink .= '/key/' . $searchKey; } $adapter = new Zend_Paginator_Adapter_DbSelect($select); $users = $adapter->getItems($offset, 10); $userPaginator = new Zend_Paginator($adapter); $userPaginator->setCurrentPageNumber($pnum); $userPaginator->setItemCountPerPage(10); $pager = $this->view->paginationControl($userPaginator, 'Sliding', 'backend/user/pager.phtml', array('urlData' => $this->_websiteUrl . 'backend/backend_user/manage', 'order' => $paginatorOrderLink)); if ($order === 'desc') { $order = 'asc'; } else { $order = 'desc'; } if (!empty($searchKey)) { $this->view->orderParam = $order . '/key/' . $searchKey; } else { $this->view->orderParam = $order; } $this->view->by = $by; $this->view->order = $order; $this->view->key = $searchKey; $this->view->pager = $pager; $this->view->users = $users; $this->view->helpSection = 'users'; $this->view->userForm = $userForm; }