首页 > php > UCHome二次开发-实例介绍修改步骤

UCHome二次开发-实例介绍修改步骤

2010年6月8日 发表评论 阅读评论

这里我们以最简单的do.php入口文件来分析下,

举个列子,如果我们使用找回密码功能,通常链接如下:do.php?ac=lostpasswd,而注册的链接一般分两种,一种是do.php?ac=后台自定义登录识别名
另一种是do.php?ac=随机
好了,我们进入do.php文件中继续看看
 include_once('./common.php'); 上节说了,这个是公用文件,在上篇已详细解释了内容
 
 //获取方法
 $ac = empty($_GET['ac'])?'':$_GET['ac']; //获取do.php?ac中ac的值
 
 //自定义登录
 if($ac == $_SCONFIG['login_action']) {
 //这里的全局变量$_SCONFIG['login_action']就是ac=自定义标示名或那个随机串,如果相同则把原来的 do.php?ac=XXXX抓换成类似效果do.php?ac=login
        $ac = 'login';
} elseif($ac == 'login') {
        $ac = '';
}
if($ac == $_SCONFIG['register_action']) {
//这里的全局变量$_SCONFIG['register_action']
//就是ac=就是后面的自定义标示名或那个随机串,如果相同则把原来的do.php?ac=XXXX抓换成类似效果 do.php?ac=register
        $ac = 'register';
} elseif($ac == 'register') {
        $ac = '';
}
//允许的方法
//这里很重要,login对应的是登录,register定义的是注册,lostpasswd定义的是找回密码,与上面访问的URL 是否是对应上了
//对应上面的do.php?ac=login,do.php?ac=register,do.php?ac=lostpasswd, 其他类似!如果ac后的参数不在下面的数组中,则为非法。跳转到首页
 $acs = array('login', 'register', 'lostpasswd', 'swfupload', 'inputpwd',
         'ajax', 'seccode', 'sendmail', 'stat', 'emailcheck');
 if(empty($ac) || !in_array($ac, $acs)) {
         showmessage('enter_the_space', 'index.php', 0);
 }
 
 include_once(S_ROOT.'./source/do_'.$ac.'.php');
//这是包含文件的意思,继续执行一下文件的意思,
 //其中S_ROOT是UCHOME安装目录的常量
//$ac当然就是请求的参数值lostpasswd了.
 //根据下面的语句,我们可以这样判断,如果链接是do.php?ac=lostpasswd的话,程序继续执行source /do_lostpasswd.php文件!
 
不知道大家是否能理解,不理解多看几遍!
 
好了,我们找到source/do_lostpasswd.php文件看下,这个文件代码较多,我们不用管他,最主要的是我们要找到其对应的模板,
查找下include template这个语句【注:在其他php文件中可能有多个结果,那是因为不同条件下包含不同的模板】。你就会发现在末尾找到
 include template('do_lostpasswd');
这就是模板名,这个记住规则,do_lostpasswd对应的模板是do_lostpasswd.htm名。那么这个文件在哪个位置呢?
我们系统目录template/下有 默认的default,blue,green这三个文件夹,对应不同的风格,如果你安装了其他风格,可能还有其他目录。
系统是如何查找do_lostpasswd.htm呢?
大家记得在后台有一个模板选择的下拉表吗?系统会在你选择的模板风格文件夹下查找do_lostpasswd.htm,如果找不到则在去default目录下查找。
 
注意: 为了提供效率,模板并不是每次都编译的,严格的来说,UCHOME会先判断对应的模板是否被解析过了【查找data/tpl_cache/目录下是否有对应的模板缓存】
如果没有的话才会去按上面的规则去查找。
 
基本上,按照以上思路就可以根据链接找到匹配的程序文件和模板文件了。
分类: php 标签: , 5,993 次阅读
原文链接:http://www.wenhq.com/article/view_468.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.