老张小站

  1. 欢迎光临

    感谢访问老张的博客!

  • 1
3,402

Discuz! X3.* 隐藏帖子年份,仅VIP会员和持有“显年特权勋章”的用户可查看

分类 网站技术/村民张先生 发布于 2016-02-28 08:26
0

为何要隐藏年份?

如果你的论坛中具有较多无时效性且优质的帖子,可以考虑隐藏真实的发帖时间。可以想象,一个标明2008年发布的帖子,可能很难引起人的关注。建议采用“最近”“不久前”“较早前”等模糊描述来替代。
同时,我们可以将“帖子年份显示”作为一项增值服务提供给VIP会员或购买“显年特权勋章”的用户。

修改方法:

1、首先后台的时间设置中必须启用了“人性化时间”;

2、打开 source/class/discuz/discuz_application.php 文件,

查找:

		if($this->var['member']['newprompt']) {
			$this->var['member']['newprompt_num'] = C::t('common_member_newprompt')->fetch($this->var['member']['uid']);
			$this->var['member']['newprompt_num'] = unserialize($this->var['member']['newprompt_num']['data']);
			$this->var['member']['category_num'] = helper_notification::get_categorynum($this->var['member']['newprompt_num']);
		}

在其下方新增:

		$dygroup = in_array($this->var['member']['groupid'], array(1,2,3,33,29,40,43,44,45)) ? 1 : 0; //全站显示年份的用户组
		setglobal('dygroup', $dygroup);
		if(!$dygroup) {
			$cmffu = C::t('common_member_field_forum')->fetch($this->var['member']['uid']);
			$cmffum = explode("\t", $cmffu['medals']);
			foreach($cmffum as $k => $r) {
				list($cmffumid) = explode("|", $r);
				if($cmffumid == '13') {
					$dycard = '2';
				}
				if($cmffumid == '14') {
					$dycard = '1';
					break;
				}
				$dycard = $dycard ? $dycard : '0';
			}
			unset($cmffum[$k]);
			setglobal('dycard', $dycard);
		}

这一步是定义两个全局变量 $_G['dygroup'] (全站显示年份的用户组,不受有无显年勋章的影响,建议加入所有版主组和高等级VIP组)和 $_G['dycard'] (当前持有“显年勋章”的状态)。

需要根据自己网站的情况,修改全站显示年份的用户组,以及其中的 $cmffumid (其中的13替换为低级显年勋章编号,14替换为高级显年勋章编号)。

分页: 1 2 下一页
欢迎转载分享,转载请注明 来源:大张小站 https://www.zhang.cq.cn/20161639.html
若您喜欢这篇文章,欢迎订阅老张小站以获得最新内容。 / 欢迎交流探讨,请发电子邮件至 mail[at]vdazhang.com 。


欢迎谈谈你的看法(无须登录) *正文中请勿包含"http://"否则将被拦截