westdc-zf1/application/admin/controllers/SysController.php

338 lines
11 KiB
PHP
Raw Normal View History

<?php
class Admin_SysController extends Zend_Controller_Action
{
function preDispatch()
{
$this->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');
2011-10-13 08:18:12 +00:00
$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);
2011-10-13 08:18:12 +00:00
}
2011-10-13 10:12:17 +00:00
$mailtp=new EmailText($this->db,$this->_request->getParam('id'),array('user' => $this->_request->getParam('user')));
$body = $mailtp->getBody();
2011-10-13 08:18:12 +00:00
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
2011-10-13 08:18:12 +00:00
{
$sql = "select * from emailtext where id='$id'";
$rs = $this->db->query($sql);
$rows = $rs->fetch();
$this->view->info = $rows;
$this->_helper->viewRenderer('emailtexttest');
}
}//模板测试
2011-10-13 08:18:12 +00:00
else if($ac=='help')
{
$this->_helper->viewRenderer('emailtexthelp');
}
else
{
2011-10-13 08:18:12 +00:00
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;
2011-10-13 08:18:12 +00:00
}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();
}
2011-10-29 07:12:47 +00:00
}
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() 获取站内消息
}