示例#1
0
 public function listAction()
 {
     $this->_helper->layout->setLayout('layout-newpolling');
     $this->preProcessSession();
     $request = $this->getRequest();
     $pageIndex = $request->getParam('page', 1);
     $perpage = $request->getParam('showperpage', 25);
     $sWhere = null;
     $params = null;
     $exp = ['showperpage' => $perpage];
     $time = time();
     $date = date("Y-m-d H:i:s", $time);
     if ($polling = $request->getPost('searchpolling')) {
         $pColumns = ['guid', 'title'];
         for ($i = 0; $i < count($pColumns); $i++) {
             $sWhere .= $pColumns[$i] . " LIKE '%" . mysql_real_escape_string($polling) . "%' OR ";
         }
         $sWhere = substr_replace($sWhere, "", -3);
         $exp['polling'] = $polling;
         $params = rawurlencode(base64_encode(Zend_Json::encode($exp)));
     } else {
         $sWhere = "checkedTime < '{$date}'";
         $params = $request->getParam('q');
         if ($params != null) {
             $exp = rawurldecode(base64_decode($params));
             $exp = Zend_Json::decode($exp);
         } else {
             $params = rawurlencode(base64_encode(Zend_Json::encode($exp)));
         }
     }
     $offset = $pageIndex > 0 ? ($pageIndex - 1) * $exp['showperpage'] : 0;
     $pollingDb = new App_Model_Db_Table_Poll();
     $rowset = $pollingDb->fetchAll($sWhere, "checkedTime DESC", $exp['showperpage'], $offset);
     $numOfRows = $pollingDb->fetchAll($pollingDb->select()->where($sWhere))->count();
     $paginator = Zend_Paginator::factory($numOfRows);
     $paginator->setCurrentPageNumber($pageIndex);
     $paginator->setItemCountPerPage($exp['showperpage']);
     $this->view->assign('params', $params);
     $this->view->assign('exp', $exp);
     $this->view->assign('rowset', $rowset);
     $this->view->assign('perpage', $exp['showperpage']);
     $this->view->assign('paginator', $paginator);
     $this->view->assign('currentPageNumber', $paginator->getCurrentPageNumber());
 }