db=Zend_Registry::get('db'); $this->view->config = Zend_Registry::get('config'); $this->messenger=$this->_helper->getHelper('FlashMessenger'); $this->view->messages = $this->messenger->getMessages(); $this->_helper->layout->setLayout('administry');//新UI } function postDispatch() { $this->view->messages = $this->messenger->getMessages(); } function indexAction() { //$this->_helper->viewRenderer(''); //$this->messenger->addMessage(''); //$this->_redirect(''); }//indexAction 首页 function emailtextAction(){ $ac = $this->_request->getParam('ac'); $submit = $this->_request->getParam('submit'); $id = $this->_request->getParam('id'); if($ac=='add' && empty($submit)) { $this->_helper->viewRenderer('emailtextadd'); } if($ac=='add' && !empty($submit)) { $title = $this->_request->getParam('title'); $template = $this->_request->getParam('template'); $body = $this->_request->getParam('body'); if(empty($title)) $title=='未命名模板'; $sql = "insert into emailtext (subject,template,body) values ('$title','$template','$body')"; try{ if($this->db->exec($sql)>0) { $this->messenger->addMessage('模板添加成功'); $this->_redirect('/admin/sys/emailtext'); } }catch(Exception $e){ $this->messenger->addMessage('模板添加失败:'.$e->getMessage()); $this->_redirect('/admin/sys/emailtext'); } }//创建新模板 else if($ac=='edit'&& !empty($id)) { if(!empty($submit)) { $title = $this->_request->getParam('title'); $template = $this->_request->getParam('template'); $body = $this->_request->getParam('body'); $sql = "update emailtext set subject='$title',template='$template',body='$body',ts_changed=now() where id='$id'"; try{ if($this->db->exec($sql)>0) { $this->messenger->addMessage('模板编辑成功'); $this->_redirect('/admin/sys/emailtext'); } }catch(Exception $e){ $this->messenger->addMessage('模板编辑失败:'.$e->getMessage()); $this->_redirect('/admin/sys/emailtext'); } }else{ $sql = "select * from emailtext where id='$id'"; $rs = $this->db->query($sql); $rows = $rs->fetch(); $this->view->info = $rows; $this->_helper->viewRenderer('emailtextedit'); } }//模板编辑 else if($ac=='test'&& !empty($id)) { if(!empty($submit)) { try{ $subject = $this->_request->getParam('subject'); $email = $this->_request->getParam('email'); $body = $this->_request->getParam('body'); if(empty($subject) || empty($email)) { $this->messenger->addMessage('请填写测试邮件发送信息'); $this->_redirect('/admin/sys/emailtext/ac/test/id/'.$id); } $mailtp=new EmailText($this->db,$this->_request->getParam('id'),array('user' => $this->_request->getParam('user'))); $body = $mailtp->getBody(); if($body === false) { $this->messenger->addMessage('模板加载失败'); $this->_redirect('/admin/sys/emailtext/ac/test/id/'.$id); } $mail=new WestdcMailer($this->view->config->smtp); $mail->setBodyText($body); $mail->setFrom($this->view->config->service->email,'西部数据中心服务组'); $mail->addTo($email); $mail->setSubject($subject); if($mail->send()){ $this->messenger->addMessage('测试邮件发送成功'); $this->_redirect('/admin/sys/emailtext/ac/test/id/'.$id); }else{ $this->messenger->addMessage('测试邮件发送失败'); $this->_redirect('/admin/sys/emailtext/ac/test/id/'.$id); } }catch(Exception $e){ $this->messenger->addMessage('测试邮件发送失败'.$e->getMessage()); $this->_redirect('/admin/sys/emailtext/ac/test/id/'.$id); } } else { $sql = "select * from emailtext where id='$id'"; $rs = $this->db->query($sql); $rows = $rs->fetch(); $this->view->info = $rows; $this->_helper->viewRenderer('emailtexttest'); } }//模板测试 else if($ac=='help') { $this->_helper->viewRenderer('emailtexthelp'); } else { try{ $sql = "select id,subject,template,ts_created,ts_changed from emailtext order by ts_changed 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; }catch (Exception $e){ echo $e->getMessage(); } }//邮件模板管理首页 }//emailtextAction 邮件模板管理 function seekspaceAction() { set_time_limit(0); $submit = $this->_request->getParam('submit'); if (!empty($submit)) { $sql="select item_id from knl_article order by id desc"; $row=$this->db->fetchRow($sql); try { $this->db->beginTransaction(); $sql="insert into knl_article (item_id) select item_id from knl_dcvalue where dc_type_id=66 and text_value='Article' and item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set title=t.text_value from (select text_value,item_id from knl_dcvalue where dc_type_id=64) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set url=t.text_value from (select text_value,item_id from knl_dcvalue where dc_type_id=25) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set publisher=t.text_value from (select text_value,item_id from knl_dcvalue where dc_type_id=39) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set ts_issued=t.text_value from (select text_value,item_id from knl_dcvalue where dc_type_id=15) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set ts_created=cast(t.text_value as timestamp without time zone) from (select text_value,item_id from knl_dcvalue where dc_type_id=12) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="update knl_article k set keywords[t.place]=t.text_value from (select text_value,item_id,place from knl_dcvalue where dc_type_id=57) as t where k.item_id=t.item_id and k.item_id>".$row['item_id']; $this->db->query($sql); $sql="insert into knl_keyword (keyword,item_id,place) select text_value,item_id,place from knl_dcvalue where dc_type_id=57 and item_id>".$row['item_id']; $this->db->query($sql); $sql="insert into knl_author (author,item_id,place) select text_value,item_id,place from knl_dcvalue where dc_type_id=3 and item_id>".$row['item_id']; $this->db->query($sql); $this->db->query("delete from knl_keyword where item_id not in (select item_id from knl_article)"); $this->db->query("delete from knl_author where item_id not in (select item_id from knl_article)"); $this->db->commit(); } catch(Exception $e) { $this->db->rollBack(); $this->view->msg=$e->getMessage(); } $this->view->msg='与文献平台同步成功!'; } $sql="select (select count(*) from knl_article) as westdccount,(select count(*) from knl_dcvalue where dc_type_id=66 and text_value='Article') as seekcount"; $this->view->count=$this->db->fetchRow($sql); } function getmsgAction(){ $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $msg = array(); $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $userid = $user->id; if($user->usertype == "administrator") { include_once("message.php"); $rs = message::getNew($this->db,$userid,"admin"); echo Zend_Json::encode($rs); exit(); }else{ $msg['error'] = "您没有权限"; echo Zend_Json::encode($msg); exit(); } }else{ $msg['error'] = "您没有权限"; echo Zend_Json::encode($msg); exit(); } } function messageAction(){ $do = $this->_request->getParam('do'); $id = $this->_request->getParam('id'); if($do=='read' && !empty($id)) { $this->_helper->viewRenderer('messageview'); $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $userid = $user->id; if($user->usertype == "administrator") { include_once("message.php"); $rs = message::getOne($this->db,$userid,$id); $this->view->info = $rs['info']; } } } //读取所有消息 else if($do=="listall") { $sql = "SELECT * FROM messages m LEFT JOIN messages_logs ml ON m.id=ml.mid ORDER BY m.sendtime DESC"; $result = $this->db->query($sql); $rows = $result->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; } //标记为已读 else if($do=="close" && !empty($id)) { $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $userid = $user->id; include_once("message.php"); $rs = message::read($this->db,$userid,$id); $this->_redirect('/admin/sys/message'); } } //标记为已处理(不再推送给其他管理员) else if($do=="over" && !empty($id)) { $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $userid = $user->id; if($user->usertype == "administrator") { include_once("message.php"); $rs = message::over($this->db,$id); if($rs){ echo "操作成功!";exit(); }else{ echo "操作失败!";exit(); } }else{ echo "非法操作!";exit(); } }else{ echo "非法操作!";exit(); } } //拉取新消息 else { $auth = Zend_Auth::getInstance(); if($auth->hasIdentity()) { $user = $auth->getIdentity(); $userid = $user->id; if($user->usertype == "administrator") { include_once("message.php"); $rs = message::getNew($this->db,$userid,"admin"); $this->view->totle = $rs['count']; $paginator = Zend_Paginator::factory($rs['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; } } }//end }//getmessageAction() 获取站内消息 }