public function recordsAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); $this->getResponse()->setHeader('Content-Type', 'application/json'); // require_once APPLICATCION_PATH . '/modules/asset/models/DbTable/Item.php'; $items = new Asset_Model_DbTable_Item(); $sort_column = $this->_getParam('sortname', 'ItemID'); # this will default to undefined $sort_order = $this->_getParam('sortorder', 'desc'); # this will default to undefined $page = $this->_getParam('page', 1); $limit = $this->_getParam('rp', 10); $offset = ($page - 1) * $limit; $search_column = $this->_getParam('qtype', 'Ma_tai_san'); $search_for = $this->_getParam('query', ''); $mode = (int) $this->_getParam('mode', 1); switch ($mode) { case 1: // list all item $select = $items->select()->order("{$sort_column} {$sort_order}")->limit($limit, $offset); break; case 2: // list all item free $select = $items->select()->where("Status = '0'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset); break; case 3: // list all item busy $select = $items->select()->where("Status = '1'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset); break; case 4: // list all item corrupt $select = $items->select()->where("Status = '2'")->order("{$sort_column} {$sort_order}")->limit($limit, $offset); break; default: $select = $items->select()->order("{$sort_column} {$sort_order}")->limit($limit, $offset); break; } if (!empty($search_column) && !empty($search_for)) { $select->where($search_column . ' LIKE ?', '%' . $search_for . '%'); } $pager = Zend_Paginator::factory($select); $pager->setCurrentPageNumber($page); $pager->setItemCountPerPage($limit); $records = $pager->getIterator(); $total = $pager->getTotalItemCount(); if ($total == 0) { echo Zend_Json::encode(array('page' => $page, 'total' => $total, 'rows' => NULL)); exit; } foreach ($records as $record) { //If cell's elements have named keys, they must match column names //Only cell's with named keys and matching columns are order independent. switch ($record['Type']) { case 0: $record['Type'] = 'Bảo mật cao'; break; case 1: $record['Type'] = 'Bảo mật thấp'; break; default: $record['Type'] = '-'; break; } switch ($record['Status']) { case 0: $record['Status'] = 'Có thể mượn'; break; case 1: $record['Status'] = 'Đang cho mượn'; break; case 2: $record['Status'] = 'Hỏng'; break; default: $record['Status'] = '-'; break; } $rows[] = array('id' => $record['ItemID'], 'cell' => $record->toArray()); } $jsonData = array('page' => $page, 'total' => $total, 'rows' => $rows); echo Zend_Json::encode($jsonData); }