discuz中forum_post status字段的使用

最近要给管理员增加一个限定帖子的新权限,discuz的原生表是最好不要改动的,怎么办呢,发现forum_post表中有个status字段,先看看这个字段的作用:

forum_post 的 status 字段(二进制位存储,对应十进制值为 #D 后的值,存储在数据库中)

#B 0000 0000 0000 0001#D 1帖子被屏蔽

#B 0000 0000 0000 0010#D 2帖子被警告

#B 0000 0000 0000 0100#D 4帖子审核后再编辑标记,用于防止重复加分

#B 0000 0000 0000 1000#D 8手机版发帖标示

不多说,可以在这个字段上做些猫腻;新的权限给定一个不曾出现过的值那就是 10000即16, 原生这个字段的长度只有1,我们首先要将其修改为2;

下面就是权限的增加:

1 首先再管理面板展示此权限 需修改viewthread.htm  楼层的管理权限在87行设置  管理员权限viewthread.htm 129(楼层管理 楼主管理是分开的);可以复制类似的代码,我想做一个帖子“锁定”,权限和警告类似,复制警告的代码并修改<!--{if $_G['group']['allowwarnpost']}--><!--{eval $modopt++}--><a href="javascript:;" οnclick="modaction('lock', '$_G[forum_firstpid]')">{lang lock}</a><span class="pipe">|</span><!--{/if}-->  语言包自行修改;

创建新文件source\include\topicadmin\ topicadmin_lock.php使lock操作合法化(可以先复制“警告”的文件进行)

3 新增lock弹框内容 forum/topicadmin_action.htm可复制warn的然后根据自己需求进行修改 52-57行

4 修改build表单提交页的数据操作topicadmin_lock.php;先来看看这个文件警告是2我们找到有关2的操作,使其替换为”锁定“的状态16;日志可以根据需求自行修改54行左右

5 可以在帖子上显示帖子被锁定 viewthread_node_body.htm 24-26行

以上操作都可以防着“警告”来进行错做;完成之后的效果图:

以上只是discuz的修改;下面来学习PHP的位运算;

PHP的位运算,很早之前就接触过,后来不常用,也就慢慢忘记了;今天再次复习了下

位运算总共有&(与) |(或) ^(异或)~(非)>>(向右位移运算)<<(向左位移运算);具体怎么个运算法,看例子就明白了

$a = 7; //转为二进制 111
$b = 2; //转为二进制 010

$a&$b    =   010   =   2 (都为1才取1)
$a |$b    =   111   =   7 (有1即为1)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值