增加消息批量管理功能,增加消息处理机制
This commit is contained in:
parent
747d016c2d
commit
5d7c23cb16
|
@ -253,6 +253,62 @@ class Admin_SysController extends Zend_Controller_Action
|
|||
}
|
||||
}
|
||||
|
||||
//读取所有消息
|
||||
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
|
||||
{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<ul>
|
||||
<li class="title">系统管理</li>
|
||||
<li><a href="/admin/sys/emailtext">邮件模板管理</a></li>
|
||||
<li><a href="/admin/sys/emailtext">邮件模板管理</a></li>
|
||||
<li><a href="/admin/sys/seekspace">文献平台同步</a></li>
|
||||
<li><a href="/admin/sys/message">管理消息</a></li>
|
||||
</ul>
|
|
@ -3,7 +3,9 @@
|
|||
$this->headTitle('后台管理');
|
||||
$this->headTitle()->setSeparator(' - ');
|
||||
$this->headLink()->appendStylesheet('/css/admin.css');
|
||||
$this->headScript()->appendFile('/js/jquery-1.6.4.min.js');
|
||||
$this->headScript()->appendFile('/js/jquery-1.7.min.js');
|
||||
$this->headScript()->appendFile('/static/js/jquery.jgrowl_minimized.js');
|
||||
$this->headLink()->appendStylesheet('/static/css/jquery.jgrowl.css');
|
||||
$this->breadcrumb('<a href="/">首页</a>');
|
||||
$this->breadcrumb('<a href="/admin">后台首页</a>');
|
||||
$this->breadcrumb('<a href="/admin/sys">系统管理</a>');
|
||||
|
@ -28,10 +30,12 @@
|
|||
</form>
|
||||
</div>
|
||||
<?php if($this->totle > 0) echo '共 <strong style="font-weight:bold;color:red;">'.$this->totle.'</strong> 条未读消息';?>
|
||||
<form id="messages">
|
||||
<table class="stylized">
|
||||
<thead>
|
||||
<tr>
|
||||
<td width='400'>标题</td>
|
||||
<td width='20'>选择</td>
|
||||
<td width='380'>标题</td>
|
||||
<td width="120">时间</td>
|
||||
<td width='180'>操作</td>
|
||||
</tr>
|
||||
|
@ -40,13 +44,58 @@
|
|||
<tbody id="list">
|
||||
<?php foreach ($this->paginator as $item): ?>
|
||||
<tr>
|
||||
<td><a href="/admin/sys/message/do/read/id/<?php echo $item['id'];?>"><?php if(!empty($item['title'])) echo $item['title']; else echo "无标题"; ?></a></td>
|
||||
<td><input type="checkbox" name="id[]" value="<?php echo $item['id'];?>" /></td>
|
||||
<td><a href="/admin/sys/message/do/read/id/<?php echo $item['id'];?>" <?php if (empty($item['uid'])) echo ' style="font-weight:bold"';?>><?php if(!empty($item['title'])) echo $item['title']; else echo "无标题"; ?></a></td>
|
||||
<td><?php echo date("Y-m-d H:i",strtotime($item['sendtime'])); ?></td>
|
||||
<td>[<a href="/admin/sys/message/do/read/id/<?php echo $item['id'];?>">查看</a>] [<a href="">标记为已读</a>]</td>
|
||||
<td>[<a href="/admin/sys/message/do/read/id/<?php echo $item['id'];?>">查看</a>] <?php if (empty($item['uid'])) echo '[<a href="/admin/sys/message/do/close/id/'.$item['id'].'">标记为已读</a>]'; ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
<?php endif; ?>
|
||||
</table>
|
||||
</table>
|
||||
</form>
|
||||
<button class="btn" onclick="selall();">全选</button>
|
||||
<button class="btn" onclick="unsel();">反选</button>
|
||||
<button class="btn" onclick='unselall();'>全部取消</button>
|
||||
<button class="btn" onclick="oversel();">标记为已处理</button>
|
||||
|
||||
<div class="pagenavi"><?= $this->paginator; ?></div>
|
||||
</div><script>$("#list tr").mouseover(function(){$(this).addClass("high")}).mouseout(function(){$(this).removeClass("high")})</script>
|
||||
</div><script>$("#list tr").mouseover(function(){$(this).addClass("high")}).mouseout(function(){$(this).removeClass("high")})
|
||||
function selall(){
|
||||
$("#messages :checkbox").attr('checked',true);
|
||||
}
|
||||
function unselall(){
|
||||
$("#messages :checkbox").attr('checked',false);
|
||||
}
|
||||
function unsel(){
|
||||
$("#messages :checkbox").each(function () {
|
||||
$(this).attr("checked", !$(this).attr("checked"));
|
||||
});
|
||||
}
|
||||
|
||||
function getsel(){
|
||||
var ids=new Array();
|
||||
$("#messages :checkbox").each(function(){
|
||||
if($(this).attr('checked')==true||$(this).attr('checked')=="checked")
|
||||
{
|
||||
ids.push($(this).val());
|
||||
}
|
||||
});
|
||||
var allid=ids.join(',');
|
||||
return allid;
|
||||
}
|
||||
|
||||
function oversel(){
|
||||
var id=getsel();if (id==null||id==''){alert('没有选择任何一项');return false;}
|
||||
var d = confirm('确实要标记为已处理吗?标记后其他管理员将收不到该消息');
|
||||
if(d==true){
|
||||
$.ajax({
|
||||
'type':"POST",
|
||||
'url':"/admin/sys/message/do/over",
|
||||
'data':'id='+id,
|
||||
'success':function(html){
|
||||
$.jGrowl(html, {"life":5000 });
|
||||
}
|
||||
});}
|
||||
}
|
||||
</script>
|
|
@ -49,7 +49,7 @@ class message
|
|||
try{
|
||||
$sql = "SELECT * FROM messages m
|
||||
LEFT JOIN messages_logs ml ON m.id=ml.mid
|
||||
WHERE ml.uid IS NULL";
|
||||
WHERE ml.uid IS NULL AND m.status>=0 ";
|
||||
if($type=="member")
|
||||
{
|
||||
$sql .= " AND m.rid IN (0,$uid)";
|
||||
|
@ -70,6 +70,7 @@ class message
|
|||
return $rev;
|
||||
}
|
||||
|
||||
//返回单条消息
|
||||
static function getOne($db,$uid,$id){
|
||||
$rev = array();
|
||||
try{
|
||||
|
@ -92,4 +93,35 @@ class message
|
|||
}
|
||||
return $rev;
|
||||
}
|
||||
|
||||
//标记为已读
|
||||
static function read($db,$uid,$mid){
|
||||
$sql = "INSERT INTO messages_logs (uid,mid) VALUES ('$uid','$mid')";
|
||||
if(@$db->exec($sql))
|
||||
{
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//标记为已处理(不再推送)
|
||||
static function over($db,$mid){
|
||||
$id = "";
|
||||
if(!is_array($mid))
|
||||
{
|
||||
$id = $mid;
|
||||
}else
|
||||
{
|
||||
$id = join(",",$mid);
|
||||
}
|
||||
$sql = "UPDATE messages SET status=-1 WHERE id IN ($id)";
|
||||
if(@$db->exec($sql))
|
||||
{
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue