PHPCMS后台一个一个点开审核是不是觉得很累?你还指望PHPCMS官方会加上这功能?如果你把希望寄希望于PHPCMS的官方,那么我有必要告诉你一点人生的经验:“你啊,Naive!”
批量审核增加以下功能:
- 增加批量审核复选框
- 如果栏目有静态配置,将批量审核的内容页生成html
- 并且将批量审核的内容页更新到全站搜索的数据表中
不废话,开始吧:
1、打开 \phpcms\modules\content\templates\content_checkall.tpl.php
全部删除里面的代码,换上如下代码:
<?php
defined('IN_ADMIN') or exit('No permission resources.');
include $this->admin_tpl('header','admin');?>
<div class="subnav">
<div class="content-menu ib-a blue line-x">
<?php if($super_admin) {?>
<a href='?m=content&c=content&a=public_checkall&menuid=822' class="on"><em><?php echo L('all_check_list');?></em></a>
<?php } else {
echo L('check_status');
}
for ($j=0;$j<5;$j++) {
?>
<span>|</span><a href='?m=content&c=content&a=public_checkall&menuid=822&status=<?php echo $j;?>' class="<?php if($status==$j) echo 'on';?>"><em><?php echo L('workflow_'.$j);?></em></a>
<?php }?>
</div>
</div>
<div class="pad-10">
<form name="myform" id="myform" action="" method="post" >
<div class="table-list">
<table width="100%">
<thead>
<tr>
<th width="16"><input type="checkbox" value="" id="check_box" onclick="selectall('ids[]');"></th>
<th width="37">ID</th>
<th><?php echo L('title');?></th>
<th><?php echo L('select_model_name');?></th>
<th width="90"><?php echo L('current_steps');?></th>
<th width="50"><?php echo L('steps');?></th>
<th width="90"><?php echo L('belong_category');?></th>
<th width="118"><?php echo L('contribute_time');?></th>
<th width="130"><?php echo L('username');?></th>
<th width="50"><?php echo L('operations_manage');?></th>
</tr>
</thead>
<tbody>
<?php
$model_cache = getcache('model','commons');
foreach ($datas as $r) {
$arr_checkid = explode('-',$r['checkid']);
$workflowid = $this->categorys[$r['catid']]['workflowid'];
if($stepid = $workflows[$workflowid]['steps']) {
$stepname = L('steps_'.$stepid);
} else {
$stepname = '';
}
$modelname = $model_cache[$arr_checkid[2]]['name'];
$flowname = L('workflow_'.$r['status']);
?>
<tr>
<td align="center"><input class="inputcheckbox " name="ids[]" value="<?php echo $r['checkid'];?>" type="checkbox"></td>
<td align='center' ><?php echo $arr_checkid[1];?></td>
<td align='left' ><a href="javascript:;" onclick='change_color(this);window.open("?m=content&c=content&a=public_preview&steps=<?php echo $r['status']?>&catid=<?php echo $r['catid'];?>&id=<?php echo $arr_checkid[1];?>&pc_hash=<?php echo $_SESSION['pc_hash'];?>","manage")'><?php echo $r['title'];?></a></td>
<td align='center' ><?php echo $modelname;?></td>
<td align='center' ><?php echo $flowname;?></td>
<td align='center' ><?php echo $stepname;?></td>
<td align='center' ><a href="?m=content&c=content&a=init&menuid=822&catid=<?php echo $r['catid'];?>"><?php echo $this->categorys[$r['catid']]['catname'];?></a></td>
<td align='center' ><?php echo format::date($r['inputtime'],1);?></td>
<td align='center'>
<?php
if($r['sysadd']==0) {
echo "<a href='?m=member&c=member&a=memberinfo&username=".urlencode($r['username'])."' >".$r['username']."</a>";
echo '<img src="'.IMG_PATH.'icon/contribute.png" title="'.L('member_contribute').'">';
} else {
echo $r['username'];
}
?></td>
<td align='center' ><a href="javascript:;" onclick='change_color(this);window.open("?m=content&c=content&a=public_preview&steps=<?php echo $r['status']?>&catid=<?php echo $r['catid'];?>&id=<?php echo $arr_checkid[1];?>&pc_hash=<?php echo $_SESSION['pc_hash'];?>","manage")'><?php echo L('c_check');?></a></td>
</tr>
<?php }?>
</tbody>
</table>
<div class="btn"><label for="check_box"><?php echo L('selected_all');?>/<?php echo L('cancel');?></label>
<input type="hidden" value="<?php echo $pc_hash;?>" name="pc_hash">
<?php
if($status!=99) {?>
<input type="button" class="button" value="<?php echo L('passed_checked');?>" onclick="myform.action='?m=content&c=content&a=passall';myform.submit();"/>
<?php }?>
</div>
<div id="pages"><?php echo $pages?></div>
</div>
</form>
</div>
<script type="text/javascript">
<!--
window.top.$("#current_pos_attr").html('<?php echo L('checkall_content');?>');
function change_color(obj) {
$(obj).css('color','red');
}
//-->
</script>
</body>
</html>
2、打开 \phpcms\modules\content\content.php
,在
/**
* 过审内容
*/
public function pass() {
的前面增加以下代码:
/**
* 批量通过审核函数
*/
public function passall() {
$ids = $_POST['ids'];
// 引处引入setting变量有问题,待后续解决。已经通过逻辑判断true来实现
// $setting = string2array($category['setting']);
// var_dump($setting);
// die;
if(!$ids) showmessage(L('missing_part_parameters'));
$this->content_check_db = pc_base::load_model('content_check_model');
$html = pc_base::load_app_class('html', 'content');
$this->url = pc_base::load_app_class('url', 'content');
$member_db = pc_base::load_model('member_model');
foreach($ids as $k=>$v){
$content = $this->content_check_db->get_one(array('checkid'=>$v));
$modelid = $this->categorys[$content['catid']]['modelid'];
$arr_checkid = explode('-',$content['checkid']);
$this->db->set_model($modelid);
// 引用search_model, 调search_api方法
$this->db->search_db = pc_base::load_model('search_model');
$id = $arr_checkid['1'];
$content_info = $this->db->get_content($content['catid'],$arr_checkid[1]);
$memberinfo = $member_db->get_one(array('username'=>$content_info['username']), 'userid, username');
$flag = $content['catid'].'_'.$arr_checkid[1];
if($setting['presentpoint']>0) {
pc_base::load_app_class('receipts','pay',0);
receipts::point($setting['presentpoint'],$memberinfo['userid'], $memberinfo['username'], $flag,'selfincome',L('contribute_add_point'),$memberinfo['username']);
} else {
pc_base::load_app_class('spend','pay',0);
spend::point($setting['presentpoint'], L('contribute_del_point'), $memberinfo['userid'], $memberinfo['username'], '', '', $flag);
}
if(true){
// if($setting['content_ishtml'] == '1'){
//栏目有静态配置
$urls = $this->url->show($id, 0, $content_info['catid'], $content_info['inputtime'], '',$content_info,'add');
$html->show($urls[1],$urls['data'],0);
}
$this->db->status($arr_checkid[1],'99');
// 更新到全站搜索
// 设置全站搜索的数组信息
$inputinfo = '';
$inputinfo['system'] = $content_info;
// 将静态页面信息或内容写入全站搜索数据表中
$this->db->search_api($id,$inputinfo);
}
showmessage(L('operation_success'),HTTP_REFERER);
}