再次提醒大家,任何程序的修改都有可能出现意外,提前备份是个不错的习惯哦!
本教程共分五个步骤:
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 --> <input name="setconfig[website_is_closed]" value="1" type="radio"<?php echo ($website_is_closed==1) ? ' checked="checked"' : '';?> /> 禁止所有人访问<!-- Ban all --> <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> 支持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' => '',
至此,所有的代码修改完毕,请覆盖原文件即可,如果出现错误,请仔细检查代码修改是否有误。修改后在后台基本设置中的效果如下图:
本方法目前有个缺陷:所有的动态页面(包括伪静态)都会按照设置提示站点关闭,但静态页面并不会显示该提示,所以在使用过程中,请将根目录中的index.html文件删除以实现效果!