db=Zend_Registry::get('db'); $this->view->config = Zend_Registry::get('config'); $this->messenger=$this->_helper->getHelper('FlashMessenger'); $this->view->messages = $this->messenger->getMessages(); } function postDispatch() { $this->view->messages = $this->messenger->getMessages(); } function indexAction() { $sql = "select n.*,c.title as catlog,u.realname as author from news_archives n left join news_category c on n.typeid=c.id LEFT JOIN users u ON n.userid=u.id order by n.ts_created desc limit 10"; $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $this->view->news = $rows; $sql = "SELECT count(id) as c FROM news_archives"; $rs = $this->db->query($sql); $row = $rs->fetch(); $this->view->totle = $row; $sql = "SELECT count(id) as c FROM news_category"; $rs = $this->db->query($sql); $row = $rs->fetch(); $this->view->typec = $row; }//indexAction 首页 function newslistAction(){ include_once("news.php"); $News = new news($this->db); $type = $this->_request->getParam('type'); if(!empty($type)) { $sql = "select n.*,c.id as typeid,c.title as catlog,c.code from ".$News->tbl_archives." n left join ".$News->tbl_catalog." ct on ct.aid=n.id left join ".$News->tbl_categorys." c on c.id = ct.cid LEFT JOIN users u ON n.userid=u.id WHERE c.id='$type' order by n.ts_created desc"; }else { $sql = "select n.*,c.id as typeid,c.title as catlog,c.code from ".$News->tbl_archives." n left join ".$News->tbl_catalog." ct on ct.aid=n.id left join ".$News->tbl_categorys." c on c.id = ct.cid LEFT JOIN users u ON n.userid=u.id order by n.ts_created desc"; } $rs = $this->db->query($sql); $rows = $rs->fetchAll(); $paginator = Zend_Paginator::factory($rows); $paginator->setCurrentPageNumber($this->_getParam('page')); $paginator->setItemCountPerPage($this->view->config->page->max); $paginator->setView($this->view); Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml'); $this->view->paginator=$paginator; $this->view->types=$News->getAllCategory(); $this->view->type = $type; }//newslistAction 新闻列表 function catlogAction() { $add = $this->_request->getParam('add'); $submit = $this->_request->getParam('submit'); $delete = $this->_request->getParam('delete'); $edit = $this->_request->getParam('edit'); include_once("news.php"); $News = new news($this->db); if($add) { $this->view->ptype = $News->ptype; $this->_helper->viewRenderer('category-add'); $this->view->categories = $News->getAllCategory(); if(empty($submit)){ //$this->_helper->viewRenderer('category-add'); }else{ $data = array(); $data['title'] = $this->_request->getParam('ctitle'); $data['code'] = $this->_request->getParam('code'); $data['fid'] = $this->_request->getParam('fid'); $data['ptype'] = $this->_request->getParam('ptype'); $data['is_pub'] = 1; $this->view->info = $data; if(empty($data['title'])) { $this->view->error = "请输入标题"; return true; } if(empty($data['code'])) { $this->view->error = "请输入栏目连接,如http://westdc.westgis.ac.cn/news/notice,则只需要输入notice"; return true; } if(!preg_match("/^[a-z]+$/",$data['code'])) { $this->view->error = "url格式不正确,仅允许26个小写字母"; return true; } if($this->db->insert($News->tbl_categorys,$data)) { $this->view->msg = '提示信息:栏目添加成功!'; $this->view->jump_url = '/admin/news/catlog'; return true; }else{ $this->view->error = "添加失败,请重试"; return true; } } }//栏目添加 if($delete>0) { $sql = "delete from ".$News->tbl_categorys." where id='$delete'"; if($this->db->exec($sql)>0) { $this->messenger->addMessage('提示信息:栏目删除成功!'); $this->_redirect('/admin/news/catlog'); } }//栏目删除 if($edit>0) { $submit = $this->_getParam('submit'); $this->_helper->viewRenderer('category-edit'); $this->view->ptype = $News->ptype; $this->view->info = $News->getCategory($edit); $this->view->categories = $this->getAllcategory($edit); if(!empty($submit)) { $data = array(); $data['title'] = $this->_request->getParam('ctitle'); $data['code'] = $this->_request->getParam('code'); $data['fid'] = $this->_request->getParam('fid'); $data['ptype'] = $this->_request->getParam('ptype'); $data['is_pub'] = $this->_request->getParam('is_pub'); $this->view->info = $data; if(empty($data['title'])) { $this->view->error = "请输入标题"; return true; } if(empty($data['code'])) { $this->view->error = "请输入栏目连接,如http://westdc.westgis.ac.cn/news/notice,则只需要输入notice"; return true; } if(!preg_match("/^[a-z]+$/",$data['code'])) { $this->view->error = "url格式不正确,仅允许26个小写字母"; return true; } if($this->db->update($News->tbl_categorys,$data,"id=$edit")) { $this->view->msg = '提示信息:栏目添加成功!'; $this->view->jump_url = '/admin/news/catlog'; return true; }else{ $this->view->error = "添加失败,请重试"; return true; } } }//栏目编辑 else { include_once("news.php"); $news = new news($this->db); $catlogs = $news->getAllCategory(-1); /* $sql="select * from news_category WHERE fid=0 order by displayorder asc"; $re=$this->db->query($sql); $catlogs=$re->fetchAll(); foreach($catlogs as $k=>$v) { $catlogs[$k]['sub'] = $this->getSubCategory($v['id']); } */ $this->view->catlogs=$catlogs; }//栏目列表 }//栏目管理 function getSubCategory($fid) { $sql = "SELECT * FROM news_category WHERE fid=?"; $sth = $this->db->prepare($sql); $sth->execute(array($fid)); $rows = $sth->fetchAll(); if(empty($rows) || count($rows)<1) { return 0; }else{ return $rows; } } function getCategory($id) { $sql = "SELECT * FROM news_category WHERE id=?"; $sth = $this->db->prepare($sql); $sth->execute(array($id)); $rows = $sth->fetch(); return $rows; } function getAllcategory($id=0) { $_addon = ''; if(!empty($id)) { $_addon = "WHERE id not in ($id)"; } $sql = "SELECT * FROM ar_category $_addon ORDER BY id DESC"; $sth = $this->db->prepare($sql); $sth->execute(); return $sth->fetchAll(); } //新闻添加页面 function newsaddAction() { include_once("news.php"); $News = new news($this->db); $this->view->types=$News->getAllCategory(); }//newsadd 新闻添加 //新闻添加 function archivesaddAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); include_once("news.php"); $News = new news($this->db); $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $uid = $user->id; } $datavar = array( 'title', 'source', 'image', 'body', 'typeid', 'pub', 'pubtimer', 'pubtime', 'description', 'keyword' ); foreach($_POST as $k=>$v) { if(in_array($k,$datavar)) { $$k=$v; } } $msg=array(); if(empty($title)) $msg[]="标题不能为空"; if(mb_strlen($title)>200) $msg[]="标题长度不能超过200个字符"; if(mb_strlen($keyword)>200) $msg[] = "关键词长度不能超过200个字符,现在输入了".strlen($keyword)."个字符"; if(mb_strlen($description)>400) $msg[] = "内容描述不能超过200个字符,现在输入了".strlen($description)."个字符"; if(empty($body)) $msg[]="请填写内容"; if($typeid==0) $msg[]="请选择栏目"; if(count($msg)>0) { echo '