18禁区年龄限制[各版面后台设置]

Home Home
引用 | 编辑 香吉士
2009-09-21 18:54
楼主
推文 x1
【插件资讯】

插件名称:18禁区年龄限制[各版面后台设置]
适用版本:7.0
语言编码:通用
插件作者:蓝天绿地 |修改版:pole1010
版权所属:蓝天绿地 |修改版:pole1010
原帖连结:http://coz.tw/dz6/thread-15990-1-1.html
支持网站:http://pole.twhosts.info/upload/forumdisplay.php?fid=13

【插件说明】

数据库升级
复制程式
ALTER TABLE `cdb_forums` ADD `isadult` TINYINT( 1 ) DEFAULT '0' NOT NULL

include/common.inc.php

复制程式
m.sigstatus,
之前加入
复制程式
m.bday,

forumdisplay.php

复制程式
    } elseif($forum['password'] != $_DCOOKIE['fidpw'.$fid]) {
                include template('forumdisplay_passwd');
                exit();
        }
}

下面加
复制程式
if ($bday == '0000-00-00') {
    if ($forum['isadult']) {
                showmessage('你还未设定生日日期,请先到控制台设定。','memcp.php?action=profile');
        }
}else{
        list($year, $month, $day) = explode('-', $bday);
        $bday = intval($year) ? $dateformat : preg_replace("/[^nj]*[Yy][^nj]*/", '', $dateformat);
        $bday = str_replace('n', $month, $bday);
        $bday = str_replace('j', $day, $bday);
        $bday = str_replace('Y', $year, $bday);
        $bday = str_replace('y', substr($year, 2, 4), $bday);
        $birth_y = date("y");
        $birth_m = date("m");
        $birth_d = date("d");
        $birthyear = intval($bday);
        $birthyears = $year > $birth_y ? gmdate('Y', $timestamp + $data['timeoffset'] * 3600) - $birthyear : '';
        $checkbday = $birthyears ? ''.($birth_m > $month ? $birthyears : ''.($birth_m >= $month && $birth_d >= $day ? $birthyears : $birthyears - 1).'').'' : '';
}

if ($forum['isadult'] && $checkbday < 18) {
    if ($groupid != 7) {
                showmessage('对不起!您现时只有 '.$checkbday.' 岁,本论坛只有 18 岁以上用户才可以访问,请返回。','index.php');
        }else{
                showmessage('对不起!请您先登入或注册,本论坛只有 18 岁以上用户才可以访问,请返回。','logging.php?action=login');
        }
}

viewthread.php

复制程式
if(empty($forum['allowview'])) {

        if(!$forum['viewperm'] && !$readaccess) {
                showmessage('group_nopermission', NULL, 'NOPERM');
        } elseif($forum['viewperm'] && !forumperm($forum['viewperm'])) {
                $navtitle = '';
                showmessage('forum_nopermission', NULL, 'NOPERM');
        }

下面加
复制程式
if ($bday == '0000-00-00') {
    if ($forum['isadult']) {
                showmessage('你还未设定生日日期,请先到控制台设定。','memcp.php?action=profile');
        }
}else{
        list($year, $month, $day) = explode('-', $bday);
        $bday = intval($year) ? $dateformat : preg_replace("/[^nj]*[Yy][^nj]*/", '', $dateformat);
        $bday = str_replace('n', $month, $bday);
        $bday = str_replace('j', $day, $bday);
        $bday = str_replace('Y', $year, $bday);
        $bday = str_replace('y', substr($year, 2, 4), $bday);
        $birth_y = date("y");
        $birth_m = date("m");
        $birth_d = date("d");
        $birthyear = intval($bday);
        $birthyears = $year > $birth_y ? gmdate('Y', $timestamp + $data['timeoffset'] * 3600) - $birthyear : '';
        $checkbday = $birthyears ? ''.($birth_m > $month ? $birthyears : ''.($birth_m >= $month && $birth_d >= $day ? $birthyears : $birthyears - 1).'').'' : '';
}

if ($forum['isadult'] && $checkbday < 18) {
    if ($groupid != 7) {
                showmessage('对不起!您现时只有 '.$checkbday.' 岁,本论坛只有 18 岁以上用户才可以访问,请返回。','index.php');
        }else{
                showmessage('对不起!请您先登入或注册,本论坛只有 18 岁以上用户才可以访问,请返回。','logging.php?action=login');
        }
}

admin/forums.inc.php

复制程式
showsetting('forums_edit_basic_display', 'statusnew', $forum['status'], 'radio');
下面加
复制程式
showsetting('forums_edit_basic_isadult', 'isadultnew', $forum['isadult'], 'radio');


复制程式
status='$statusnew',

后面加(要空白一格)
复制程式
isadult='$isadultnew',
templates/default/admincp.lang.php

复制程式
'forums_edit_basic_scheme' => '论坛设置方案:',

上面加
复制程式
'forums_edit_basic_isadult' => '18禁板块:',
'forums_edit_basic_isadult_comment' => '限制浏览会员必须为18岁以上',

限制发文回覆
post.php

复制程式
if(empty($forum['allowview'])) {
        if(!$forum['viewperm'] && !$readaccess) {
                showmessage('group_nopermission', NULL, 'NOPERM');
        } elseif($forum['viewperm'] && !forumperm($forum['viewperm'])) {
                showmessage('forum_nopermission', NULL, 'NOPERM');
        }

下面加
复制程式
if ($bday == '0000-00-00') {
    if ($forum['isadult']) {
                showmessage('你还未设定生日日期,请先到控制台设定。','memcp.php?action=profile');
        }
}else{
        list($year, $month, $day) = explode('-', $bday);
        $bday = intval($year) ? $dateformat : preg_replace("/[^nj]*[Yy][^nj]*/", '', $dateformat);
        $bday = str_replace('n', $month, $bday);
        $bday = str_replace('j', $day, $bday);
        $bday = str_replace('Y', $year, $bday);
        $bday = str_replace('y', substr($year, 2, 4), $bday);
        $birth_y = date("y");
        $birth_m = date("m");
        $birth_d = date("d");
        $birthyear = intval($bday);
        $birthyears = $year > $birth_y ? gmdate('Y', $timestamp + $data['timeoffset'] * 3600) - $birthyear : '';
        $checkbday = $birthyears ? ''.($birth_m > $month ? $birthyears : ''.($birth_m >= $month && $birth_d >= $day ? $birthyears : $birthyears - 1).'').'' : '';
}

if ($forum['isadult'] && $checkbday < 18) {
    if ($groupid != 7) {
                showmessage('对不起!您现时只有 '.$checkbday.' 岁,本论坛只有 18 岁以上用户才可以访问,请返回。','index.php');
        }else{
                showmessage('对不起!请您先登入或注册,本论坛只有 18 岁以上用户才可以访问,请返回。','logging.php?action=login');
        }
}

更新缓存
修改完后请至版块限制!!
后台显示:


如未达到年龄:




反安装
复制程式
ALTER TABLE `cdb_forums` DROP `isadult` TINYINT( 1 ) DEFAULT '0' NOT NULL


献花 x1