view->config = Zend_Registry::get('config'); $this->db=Zend_Registry::get('db'); $this->messenger=$this->_helper->getHelper('FlashMessenger'); $this->view->messages = $this->messenger->getMessages(); } function indexAction() { include_once("news.php"); $news = new news($this->db); $types = $news->getAllCategory(); $this->view->types=$types; $time = date("Y-m-d H:i:s",time()); $sql = "SELECT arc.*,t.title as typetitle,t.url FROM news_archives arc LEFT JOIN news_category t ON arc.typeid=t.id WHERE arc.ts_published<'$time' ORDER BY ts_published DESC"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $page = $this->_request->getParam('page'); $paginator = Zend_Paginator::factory($rows); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage($this->view->config->page->max); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); $this->view->paginator=$paginator; } function listAction() { $type = strtolower($this->_request->getParam('type')); $page = $this->_request->getParam('page'); if(preg_match("/archive\-(\d+)\.html/",$page,$matches)) { $this->_forward('archive', 'news', null, array('archive' => $matches['1'] , 'type'=> $type)); } else { if(preg_match("/[^a-z0-9]/",$type) || preg_match("/[^0-9]/",$page)) { $this->_forward('error', 'error', null, null); } $sql = "SELECT id,url,title FROM news_category WHERE url='$type' "; $rs = $this->db->query($sql); $row = $rs->fetch(); if(empty($row['id'])) { $this->_forward('error', 'error', null, null); } else{ $this->view->url = $row['url']; $this->view->title = $row['title']; include_once("news.php"); $news = new news($this->db); $types = $news->getAllCategory(); $this->view->types=$types; $sql = "SELECT arc.*,c.url FROM news_archives arc left join news_category c ON arc.typeid=c.id WHERE arc.typeid='{$row['id']}' AND arc.ts_published<'".$time."' AND arc.is_pub>=1 ORDER BY arc.ts_published DESC"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $paginator = Zend_Paginator::factory($rows); $paginator->setCurrentPageNumber($page); $paginator->setItemCountPerPage($this->view->config->page->max); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); $this->view->paginator=$paginator; } } } function archiveAction() { $type = $this->_request->getParam('type'); $archive = $this->_request->getParam('archive'); $this->view->type = $type; if(preg_match("/[^a-z0-9]/",$type) || preg_match("/[^0-9]/",$archive)) { $this->_forward('error', 'error', null, null); } include_once("news.php"); $news = new news($this->db); $types = $news->getAllCategory(); $this->view->types=$types; $sql = "SELECT arc.*,type.url,type.title as typename,u.realname as author FROM news_archives arc"; $sql .= " LEFT JOIN news_category type ON arc.typeid=type.id"; $sql .= " LEFT JOIN users u ON arc.userid=u.id"; $sql .= " WHERE arc.is_pub>0 AND arc.ts_published<'now()' AND arc.id=$archive"; $sql = "SELECT arc.* FROM news_archives arc"; $sql .= " LEFT JOIN news_category type ON arc.typeid=type.id"; $sql .= " WHERE arc.is_pub>0 AND ts_published<'$time' AND arc.id=$archive"; $rs = $this->db->query($sql); $row = $rs->fetch(); if(empty($row['id'])) { $this->_forward('error', 'error', null, null); } $this->view->infos = $row; } function searchAction() { } }