给PHPCMS V9 增加关闭网站功能

来自:互联网
时间:2018-07-23
阅读:

再次提醒大家,任何程序的修改都有可能出现意外,提前备份是个不错的习惯哦!

本教程共分五个步骤:

1、打开phpcmsmodulesadmintemplatessetting.tpl.php,找到

<div id="div_setting_1" class="contentList pad-10">
<table width="100%"  class="table_form">

后面另起一行,添加代码:

<!-- Freexyz -->
<tr>
    <th width="120">网站状态</th>
    <td class="y-bg"><input name="setconfig[website_is_closed]" value="2" type="radio"<?php echo ($website_is_closed==2) ? ' checked="checked"' : '';?> /> 仅供管理员访问<!-- Only admin -->&nbsp;&nbsp;&nbsp;&nbsp;
    <input name="setconfig[website_is_closed]" value="1" type="radio"<?php echo ($website_is_closed==1) ? ' checked="checked"' : '';?> /> 禁止所有人访问<!-- Ban all -->&nbsp;&nbsp;&nbsp;&nbsp;
    <input name="setconfig[website_is_closed]" value="0" type="radio" <?php echo (!$website_is_closed) ? ' checked="checked"' : '';?> /> 允许所有人访问<!-- Open to all --></td>
  </tr>
  <tr>
    <th width="120">关站提示信息</th>
    <td class="y-bg"><textarea rows="2" cols="20" id="tips" style="height:40px; width:80%" name="setconfig[off_site_because]"><?php echo htmlspecialchars($off_site_because);?></textarea>&nbsp;&nbsp;&nbsp;&nbsp;支持HTML标签</td>
  </tr>
<!-- /Freexyz -->

2、打开phpcmsmodulesadminfunctionsglobal.func.php,找到

if(in_array($k,array(

 

在后面添加

/*[SWH|+]:*/'website_is_closed','off_site_because',/*[SWH|+];*/

3、打开phpcmsmodulesadminsetting.php,找到

set_config($_POST['setconfig']);

在前面另起一行,添加如下代码:

 //[SWH|+]:

if(!empty($_POST['setconfig']['website_is_closed'])){

    $str='<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset='.CHARSET.'" /><meta http-equiv="refresh" content="1;url=index.php" /><title></title></head><body></body></html>';

    if(pc_base::load_config('system','lock_ex')){

        file_put_contents(PHPCMS_PATH.'index.html', $str, LOCK_EX);

    }else{

        file_put_contents(PHPCMS_PATH.'index.html', $str);

    }

}

unset($str);

//[SWH|+];

4、打开根目录中的index.php文件,找到

pc_base::creat_app();

前面另起一行,添加代码:

//[SWH|+]:

switch(pc_base::load_config('system','website_is_closed')){

    case '2': //仅允许后台用户访问

        $session_storage = 'session_'.pc_base::load_config('system','session_storage');

        pc_base::load_sys_class($session_storage);

        if(!empty($_SESSION['userid']) && !empty($_SESSION['roleid'])){

            break;

        }

    case '1': //禁止所有人访问

        if($_GET['m']=='admin'){

            break; //可以访问后台

        }

        if(pc_base::load_config('system','off_site_because')!==''){

            echo nl2br(pc_base::load_config('system','off_site_because'));

        }

        exit;

    default: //向所有公开

}

//[SWH|+];

 

5、打开cachesconfigssystem.php,在结尾的代码

);

?>

前面添加:

'website_is_closed' => '0',

'off_site_because' => '',

 

至此,所有的代码修改完毕,请覆盖原文件即可,如果出现错误,请仔细检查代码修改是否有误。修改后在后台基本设置中的效果如下图:

1_NXS9XSXRHZR5X6T.png

本方法目前有个缺陷:所有的动态页面(包括伪静态)都会按照设置提示站点关闭,但静态页面并不会显示该提示,所以在使用过程中,请将根目录中的index.html文件删除以实现效果!

返回顶部
顶部