当前位置: 首页 > news >正文

phpcms v9后台添加草稿箱功能

一、后台添加文章模板phpcms/modules/content/templates/content_add.tpl.php中94行增加”保存草稿“按钮:

<div class="button"><input value="<?php echo L('save_draft');?>" type="submit" name="dosubmit_draft" class="cu" style="width:100px;" onclick="refersh_window()"></div>

二、后台添加文章控制器phpcms/modules/content/content.php文件add操作方法中

$this->db->add_content($_POST['info']);代码上方改成:

if(isset($_POST['dosubmit_draft'])) {$_POST['info']['status'] = -2;}else{if($workflowid) {//如果用户是超级管理员,那么则根据自己的设置来发布$_POST['info']['status'] = $_SESSION['roleid']==1 ? intval($_POST['status']) : 1;} else {$_POST['info']['status'] = 99;}}

$this->db->add_content($_POST['info']);代码下方改成:

if(isset($_POST['dosubmit']) || isset($_POST['dosubmit_draft'])) {showmessage(L('add_success').L('2s_close'),'blank','','','function set_time() {$("#secondid").html(1);}setTimeout("set_time()", 500);setTimeout("window.close()", 1200);');} else {showmessage(L('add_success'),HTTP_REFERER);}

三、后台添加文章控制器phpcms/modules/content/content.php文件edit操作方法中

param::set_cookie('module', 'content');代码下方改成:

if(isset($_POST['dosubmit']) || isset($_POST['dosubmit_continue']) || isset($_POST['dosubmit_draft'])) {

$workflowid = $setting['workflowid'];代码下方改成:

if((isset($_POST['dosubmit']) || isset($_POST['dosubmit_continue'])) && ($_POST['info']['status']==-2)) {if($workflowid) {//如果用户是超级管理员,那么则根据自己的设置来发布$_POST['info']['status'] = $_SESSION['roleid']==1 ? 99 : 1;} else {$_POST['info']['status'] = 99;}}

$this->db->edit_content($_POST['info'],$id);代码下方改成:

if(isset($_POST['dosubmit']) || isset($_POST['dosubmit_draft'])) {

四、后台添加文章控制器phpcms/modules/content/content.php文件public_preview操作方法中

$steps = intval($_GET['steps']);代码下方改成:

$supermenu = ($_SESSION['roleid']==1 && $steps<>-2) ? "<a href=\'javascript:ajax_manage(1)\'>".L('passed_checked')."</a> | <a href=\'javascript:ajax_manage(2)\'>".L('reject')."</a> | <a href=\'javascript:ajax_manage(3)\'>".L('delete')."</a>" : "<a href=\'javascript:ajax_manage(3)\'>".L('delete')."</a>";

五、后台添加文章控制器phpcms/modules/content/content.php文件中添加“草稿箱”操作方法

/*** 草稿箱*/public function draft_list() {$page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;$show_header = '';$admin_username = param::get_cookie('admin_username');$datas = array();$pagesize = 20;$sql = '';$status = -2;$sql = "`status` = '$status' AND `siteid`=$this->siteid";if($_SESSION['roleid']!=1){$sql .= " AND `username` = '$admin_username'";//WY ADD AT 2023 除超级管理员外,只显示自己发布的文章}$this->content_check_db = pc_base::load_model('content_check_model');$datas = $this->content_check_db->listinfo($sql,'inputtime DESC',$page);$pages = $this->content_check_db->pages;include $this->admin_tpl('draft_list');}

六、添加“草稿箱”控制器对应的模板文件,phpcms/modules/content/templates/draft_list.tpl.php

<?php
defined('IN_ADMIN') or exit('No permission resources.');
include $this->admin_tpl('header','admin');?>
<div class="pad-10">
<div class="content-menu ib-a blue line-x">
<a href='?m=content&c=content&a=draft_list' class="on"><em><?php echo L('all_draft_list');?></em></a>
</div>
<form name="myform" id="myform" action="" method="post" >
<div class="table-list"><table width="100%"><thead><tr><th width="60">ID</th><th><?php echo L('title');?></th><th width="90"><?php echo L('belong_category');?></th><th width="118"><?php echo L('contribute_time');?></th><th width="180"><?php echo L('username');?></th><th width="72"><?php echo L('operations_manage');?></th></tr></thead>
<tbody><?php$model_cache = getcache('model','commons');foreach ($datas as $r) {$arr_checkid = explode('-',$r['checkid']);?><tr><td align='center' ><?php echo $arr_checkid[1];?></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 $r['title'];?></a></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 echo $r['username'];?></td><td align='center' ><a href="javascript:;" onclick="javascript:openwinx('?m=content&c=content&a=edit&catid=<?php echo $r['catid'];?>&id=<?php echo $arr_checkid[1];?>','')"><?php echo L('edit');?></a> | <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 "查看";?></a></td></tr><?php }?>
</tbody></table><div id="pages"><?php echo $pages?></div>
</div>
</form>
</div>
<script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>cookie.js"></script>
<script type="text/javascript">
<!--
window.top.$("#current_pos_attr").html('<?php echo L('checkall_content');?>');
function change_color(obj) {$(obj).css('color','red');
}
setcookie('refersh_time', 0);
function refersh_window() {var refersh_time = getcookie('refersh_time');if(refersh_time==1) {window.location.reload();}
}
setInterval("refersh_window()", 3000);
//-->
</script>
</body>
</html>

七、数据表v9_news和v9_content_check表中字段status的属性改为空(如果有其它模型,对应的表该字段也改为空)

八、语言文件phpcms/languages/zh-cn/content.lang.php中添加
$LANG['save_draft'] = '保存草稿';
$LANG['all_draft_list'] = '所有草稿';

九、后台添加管理菜单

相关文章:

  • iPhone“查找”最多可添加32个物品!
  • C++ 拾遗 2
  • [足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-1 坐标系与概念基准
  • 边缘计算中的数据安全与隐私保护:挑战与应对策略
  • 类加载时机及顺序
  • SpiderFlow爬虫平台 前台RCE漏洞复现(CVE-2024-0195)
  • Flutter-Web从0到部署上线(实践+埋坑)
  • 【MySQL】导入导出SQL脚本及远程备份---超详细介绍
  • GIT 分支管理办法(二)
  • Redis中的Java客户端
  • 设计模式——适配器模式
  • 通过代理连接sftp
  • 汇编和C语言转换
  • 深入理解Lock Support
  • 2024年01月微软更新Bug 已解决 !Explorer.EXE 提示:Windows无法访问指定设备、路径或文件。你可能没有适当的权限访问该项目。
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • GraphQL学习过程应该是这样的
  • Web设计流程优化:网页效果图设计新思路
  • 缓存与缓冲
  • 首页查询功能的一次实现过程
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 鱼骨图 - 如何绘制?
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #laravel 通过手动安装依赖PHPExcel#
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (四)库存超卖案例实战——优化redis分布式锁
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 使用反射注册事件
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net连接oracle数据库
  • .py文件应该怎样打开?
  • @ConditionalOnProperty注解使用说明
  • @软考考生,这份软考高分攻略你须知道
  • [145] 二叉树的后序遍历 js
  • [51nod1610]路径计数
  • [android] 天气app布局练习
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [BZOJ3757] 苹果树
  • [C#] 如何调用Python脚本程序
  • [CC-FNCS]Chef and Churu
  • [CVPR2021]Birds of a Feather: Capturing Avian Shape Models from Images
  • [dart学习]第四篇:函数
  • [Django ]Django 的数据库操作
  • [HCTF 2018]WarmUp (代码审计)
  • [hihocoder1395] 最大权闭合子图
  • [LeeCode]-Divide Two Integers 不用乘除的除法运算
  • [Manacher]【学习笔记】