Esempio n. 1
0
 protected function _addPaginator($oOperation)
 {
     //dodaj standardowe metody grida
     //        list($sDBSort, $sDBOrder) = $this->_getDatabaseSort();
     //        $oOperation->setSort($sDBSort);
     //        $oOperation->setOrder($sDBOrder);
     //        $oOperation->setSearch($this->_getDatabaseSearch());
     $oOperation->init();
     //grid paginowany
     $page = $this->getRequest()->getParam('page', 1);
     //        $iResultLimit =  $this->_getDatabaseResultLimit();
     if (method_exists($oOperation, 'pageLimit')) {
         $iResultLimit = $oOperation->pageLimit();
     }
     $adapter = new Zend_Paginator_Adapter_DbSelect($oOperation->getSelect());
     $adapter->setRowCount($oOperation->getSelectCount());
     $paginator = new Zend_Paginator($adapter);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($iResultLimit);
     if ($paginator->count() == 0) {
         Message_Operation_Flash::setMsg('Brak rekordów', Message_Operation_Flash::LEVEL_DANGER);
     }
     $this->view->paginator = $paginator;
     //config
     $this->view->config_url = $this->_oConfig->url;
 }
Esempio n. 2
0
 public function testSetInvalidRowCount()
 {
     try {
         $this->_adapter->setRowCount('invalid');
     } catch (Exception $e) {
         $this->assertType('Zend_Paginator_Exception', $e);
         $this->assertEquals('Invalid row count', $e->getMessage());
     }
 }
Esempio n. 3
0
 public function testThrowsExceptionIfInvalidRowCountValueSupplied()
 {
     try {
         $this->_adapter->setRowCount('invalid');
     } catch (\Exception $e) {
         $this->assertType('Zend\\Paginator\\Exception', $e);
         $this->assertEquals('Invalid row count', $e->getMessage());
     }
 }
 public function indexAction()
 {
     $adapter = new Zend_Paginator_Adapter_DbSelect($this->registry->DB->select()->from('places'));
     $adapter->setRowCount(14034475);
     $paginator = new Zend_Paginator($adapter);
     $paginator::setDefaultItemCountPerPage(20);
     $paginator->setCurrentPageNumber($this->_getParam('page'));
     $this->view->paginator = $paginator;
 }
Esempio n. 5
0
 /**
  * 
  * @param type $dataArray
  * @return type
  */
 public function servicegrid($dataArray)
 {
     $actnArr = array();
     $sortStr = isset($dataArray['by']) ? $dataArray['by'] : "";
     if (isset($dataArray['menuName']) && $dataArray['menuName'] != '') {
         $menuName = $dataArray['menuName'];
     }
     $gridFieldsArr = array();
     $tmpActionsArr = array();
     array_pop($tmpActionsArr);
     //last element of actions array is menuname so delete that & check the privileges are empty or not...
     $actnArr = $tmpActionsArr;
     if (($key = array_search('add', $actnArr)) !== false) {
         unset($actnArr[$key]);
     }
     if (empty($tmpActionsArr)) {
         unset($gridFieldsArr['action']);
         $gridFieldsArr = $dataArray['tableheader'];
         $dataArray['tableheader'] = $gridFieldsArr;
     }
     if (isset($dataArray['menuName'])) {
         $menuName = $dataArray['menuName'];
     }
     $page_adapter = new Zend_Paginator_Adapter_DbSelect($dataArray['tablecontent']);
     $page_adapter->setRowCount($dataArray['row_count']);
     $paginator = new Zend_Paginator($page_adapter);
     $paginator->setItemCountPerPage($dataArray['perPage'])->setCurrentPageNumber($dataArray['pageNo']);
     if (empty($dataArray['tableheader'])) {
         $widgetsModel = new Default_Model_Widgets();
         $columnData = $widgetsModel->getTableFields('/' . $dataArray['objectname']);
         $dataArray['tableheader'] = json_decode($columnData['menufields'], true);
     }
     $msgtitle = $dataArray['objectname'] . '_delete';
     $msgtitle = strtoupper($msgtitle);
     $formgridVal = '';
     $extra['action'] = array();
     $extra['options'] = array();
     $addaction = '';
     if (isset($dataArray['add']) && $dataArray['add'] != '') {
         $addaction = $dataArray['add'];
         $addpermission = "true";
     } else {
         $addaction = '';
         $addpermission = "false";
     }
     return $this->generateGrid($dataArray, $paginator, $extra, true, $formgridVal, $addaction, $menuName, $addpermission, $sortStr, $actnArr);
 }
 /**
  * @group ZF-10884
  */
 public function testSetRowCountWithAlias()
 {
     $select = $this->_db->select();
     $select->from('test', array(Zend_Paginator_Adapter_DbSelect::ROW_COUNT_COLUMN => new Zend_Db_Expr('COUNT(DISTINCT number)')));
     $this->_db->setProfiler(true);
     $adapter = new Zend_Paginator_Adapter_DbSelect($this->_db->select());
     $adapter->setRowCount($select);
     $adapter->count();
     $expected = 'SELECT COUNT(DISTINCT number) AS "zend_paginator_row_count" FROM "test"';
     $lastQuery = $this->_db->getProfiler()->getLastQueryProfile()->getQuery();
     $this->assertEquals($expected, $lastQuery);
 }
Esempio n. 7
0
 /**
  * @group ZF-6989
  */
 public function testPaginatorGeneratesSameCacheIdentifierForDbTableSelectAdaptersWithIdenticalSqlStatements()
 {
     $dbAdapterOne = $this->getMockForAbstractClass('Zend_Db_Adapter_Abstract', array(''), __FUNCTION__ . 'DbAdapterOne', false);
     $selectOne = new Zend_Db_Select($dbAdapterOne);
     $selectOne->from('ZF_6989');
     $paginatorAdapterOne = new Zend_Paginator_Adapter_DbSelect($selectOne);
     $paginatorAdapterOne->setRowCount(6989);
     $paginatorOne = new Zend_Paginator_TestCache($paginatorAdapterOne);
     $dbAdapterTwo = $this->getMockForAbstractClass('Zend_Db_Adapter_Abstract', array(''), __FUNCTION__ . 'DbAdapterTwo', false);
     $selectTwo = new Zend_Db_Select($dbAdapterTwo);
     $selectTwo->from('ZF_6989');
     $paginatorAdapterTwo = new Zend_Paginator_Adapter_DbSelect($selectTwo);
     $paginatorAdapterTwo->setRowCount(6989);
     $paginatorTwo = new Zend_Paginator_TestCache($paginatorAdapterTwo);
     $this->assertSame($paginatorOne->getCacheInternalId(), $paginatorTwo->getCacheInternalId(), 'DbSelect adapters with identical select statements should have the same cache internal IDs!');
 }
Esempio n. 8
0
 public function testThrowsExceptionIfInvalidRowCountValueSupplied()
 {
     $this->setExpectedException('Zend\\Paginator\\Adapter\\Exception\\InvalidArgumentException', 'Invalid row count');
     $this->_adapter->setRowCount('invalid');
 }
Esempio n. 9
0
 /**
  * Get the array of records satisfying the criteria specified in the parameter $options using Zend_Paginator
  * 
  * @param Zend_Db_Adapter_Abstract $db
  * @param array $options
  * @return array  Default_Model_DbTable_BlogPost objects
  */
 public static function GetPaginatorPosts($db, $options = array())
 {
     $arrResult = array();
     $_config = Zend_Registry::get('config');
     $itemCountPerPage = (int) $_config['paginator']['itemCountPerPage'];
     $pagesInRange = (int) $_config['paginator']['pagesInRange'];
     //---------------------------------------------------------
     // инициализация опций
     $defaults = array('itemCountPerPage' => $itemCountPerPage, 'pagesInRange' => $pagesInRange, 'page' => 1, 'offset' => 0, 'limit' => 0, 'order' => 'p.ts_created', 'sort' => true);
     foreach ($defaults as $k => $v) {
         $options[$k] = array_key_exists($k, $options) ? $options[$k] : $v;
     }
     $select = self::_GetBaseQuery($db, $options);
     // установим поля таблицы для запроса
     $select->from(null, 'p.*');
     // set the offset, limit, and ordering of results
     if ($options['limit'] > 0) {
         $select->limit($options['limit'], $options['offset']);
     }
     // Установим параметры сортировки для таблицы
     if ($options['sort']) {
         $select = self::GetSelectForSort($select, $options);
     }
     //------ Создадим обьект Zend_Paginator ---------
     $strSelect = $select->__toString();
     $adapter = new Zend_Paginator_Adapter_DbSelect($select);
     $count = self::GetPostsCount($db, $options);
     $adapter->setRowCount($count);
     $paginator = new Zend_Paginator($adapter);
     // Установим максимальное количество отображаемых на странице элементов
     $paginator->setItemCountPerPage($options['itemCountPerPage']);
     // Установи массив страниц, возвращенный текущим стилем прокрутки
     $paginator->setPageRange($options['pagesInRange']);
     // Установим текущую страницу
     $paginator->setCurrentPageNumber($options['page']);
     //----- Конфигурирование кеша для Paginator -----
     $pgCache = Default_Plugin_SysBox::getCache('paginator');
     if ($pgCache->getOption('caching')) {
         // Установим кеш для Paginator
         Zend_Paginator::setCache($pgCache);
         // Очищение кеша
         if (Default_Plugin_SysBox::isCleanCache()) {
             $paginator->clearPageItemCache();
         }
     }
     // получим данные в виде массива обьектов Default_Model_DbTable_BlogPost
     $posts = self::BuildMultiple($db, __CLASS__, $paginator);
     $post_ids = array_keys($posts);
     if (count($post_ids) == 0) {
         return array();
     }
     // получим данные о загруженных сообщениях
     $profiles = Default_Model_Profile::BuildMultiple($db, 'Default_Model_DbTable_BlogPostProfile', array($post_ids));
     foreach ($posts as $post_id => $post) {
         if (array_key_exists($post_id, $profiles) && $profiles[$post_id] instanceof Default_Model_DbTable_BlogPostProfile) {
             $posts[$post_id]->profile = $profiles[$post_id];
         } else {
             $posts[$post_id]->profile->setPostId($post_id);
         }
         //!!!!------ Начало установки признака сортировки -----!!!!!
         if (isset($options['sortColumn'])) {
             $posts[$post_id]->sortColumn = $options['sortColumn'];
         }
         if (isset($options['ascDescFlg'])) {
             $posts[$post_id]->ascDescFlg = $options['ascDescFlg'];
         }
         //!!!!------ Конец установки признака сортировки -----!!!!!
     }
     // load the images for each post
     $options = array('post_id' => $post_ids);
     $images = Default_Model_DbTable_BlogPostImage::GetImages($db, $options);
     foreach ($images as $image) {
         $posts[$image->post_id]->images[$image->getId()] = $image;
     }
     // load the locations for each post
     $locations = Default_Model_DbTable_BlogPostLocation::GetLocations($db, $options);
     foreach ($locations as $l) {
         $posts[$l->post_id]->locations[$l->getId()] = $l;
     }
     // load the audio for each post
     $audios = Default_Model_DbTable_BlogPostAudio::GetAudio($db, $options);
     foreach ($audios as $audio) {
         $posts[$audio->post_id]->audio[$audio->getId()] = $audio;
     }
     // load the video for each post
     $videos = Default_Model_DbTable_BlogPostVideo::GetVideo($db, $options);
     foreach ($videos as $video) {
         $posts[$video->post_id]->video[$video->getId()] = $video;
     }
     // load the comments for each post
     $comments = Default_Model_DbTable_BlogPostComment::GetComments($db, $options);
     foreach ($comments as $comment) {
         $posts[$comment->post_id]->comments[$comment->getId()] = $comment;
     }
     $arrResult['pages'] = $paginator->getPages();
     $arrResult['items'] = $posts;
     return $arrResult;
 }
Esempio n. 10
0
 /**
  * 查找没有回答的问题
  * @param int $categoryId
  * @param int $limit
  * @return array|null
  */
 public function zeros($categoryId = null, $paged = null, $limit = 30)
 {
     $select = $this->_questionSQLSelect($categoryId);
     $select->where('q.answers = 0');
     $select->order('q.created_at desc');
     if (null !== $paged) {
         $adapter = new Zend_Paginator_Adapter_DbSelect($select);
         $count = clone $select;
         $count->reset(Zend_Db_Select::COLUMNS);
         $count->reset(Zend_Db_Select::FROM);
         $count->from('Question as q', new Zend_Db_Expr('COUNT(*) AS `zend_paginator_row_count`'));
         $adapter->setRowCount($count);
         $paginator = new Zend_Paginator($adapter);
         $paginator->setItemCountPerPage($limit)->setCurrentPageNumber((int) $paged);
         return $paginator;
     }
     return $this->_db->fetchAll($select);
 }
Esempio n. 11
0
 protected function _addSecPaginator($oOperation)
 {
     $oOperation->init();
     //grid paginowany
     $page = $this->getRequest()->getParam('form_page', $this->getRequest()->getParam('page1', 1));
     $iResultLimit = $this->_getDatabaseResultLimit();
     if (method_exists($oOperation, 'pageLimit')) {
         $iResultLimit = $oOperation->pageLimit();
     }
     $adapter = new Zend_Paginator_Adapter_DbSelect($oOperation->getSelect());
     $adapter->setRowCount($oOperation->getSelectCount());
     $paginator = new Zend_Paginator($adapter);
     $paginator->setCurrentPageNumber($page);
     $paginator->setItemCountPerPage($iResultLimit);
     if ($paginator->count() == 0) {
         Message_Operation_Flash::setMsg('Brak rekordów', Message_Operation_Flash::LEVEL_DANGER);
     }
     $this->view->paginator2 = $paginator;
     //config
     $this->view->config_url2 = $this->_oConfig->url;
 }