Exemple #1
0
 public function getAll($lng = "nl", $paginator = true, $pindex = 1, $perpage = 25, $cache = false)
 {
     if ($cache == true) {
         $cacheId = 'SxModule_Pageform_getAll_' . sha1(var_export($paginator, true) . '_' . var_export($pindex, true) . '_' . var_export($perpage, true));
         $cache = Zend_Registry::get('cache');
         if (true == ($result = $cache->load($cacheId))) {
             return $result;
         }
     }
     $db = Zend_Registry::get('db');
     $select = $db->select()->from(array('i' => $this->_tablename()), array('*'))->join(array('pft' => 'pageform_tsl'), 'pft.pageform_id = i.pf_id', array('*'))->where('pft.language = ?', $lng);
     if ($paginator === true) {
         $adapter = new Base_PaginatorAdapter($select);
         $adapter->setMapper($this->_mapper);
         $data = new Zend_Paginator($adapter);
         $data->setCurrentPageNumber((int) $pindex);
         $data->setItemCountPerPage((int) $perpage);
     } else {
         $results = $db->fetchAll($select);
         $data = $this->_mapper->mapAll($results);
     }
     $pageform_ids = array();
     foreach ($data as $pageform) {
         $pageform_ids[] = $pageform->getId();
     }
     if (count($pageform_ids) != 0) {
         $pagesProxy = new SxCms_Page_Pageform_Proxy();
         $pages = $pagesProxy->getByPageformIds($pageform_ids, false);
         foreach ($data as $pageform) {
             foreach ($pages as $page) {
                 if ($page->getPageformId() == $pageform->getId()) {
                     $pageform->addPage($page->getPageid());
                 }
             }
         }
     }
     if ($cache == true) {
         $cacheTags = array('SxModule_Pageform', 'SxModule_Pageform_getAll');
         $cache->save($data, $cacheId, $cacheTags);
     }
     return $data;
 }