Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] 授人以鱼不如授人以渔,UCHome全面大解析培训活动开展二(免费,最新更新)

[复制链接]
scckfzx 发表于 2009-10-27 11:10:08 | 显示全部楼层 |阅读模式
本帖最后由 scckfzx 于 2010-02-05 14:31 编辑

我们已开发UCHOME相关插件30余个,部分插件可以见我们的演示站



如果大家看不明白的话请跟帖提问,我将为大家详细解答!
如转载,必须注明出处:http://www.yiqi123.cn/read.php?tid=25
第一节:https://discuz.dismall.com/viewthread.php?tid=1211354
第二节:https://discuz.dismall.com/viewthread.php?tid=1461052
第三节:https://discuz.dismall.com/viewthread.php?tid=1461362

欢迎加入我们的QQ交流群:83976559


今天统计了下这三集的效果 顶贴/浏览的比例如下

第一集: 116/6951=1.6%
第二集:  30/699=4.2%
第三集:21/526=3.9%

不知道大家是不喜欢回帖支持呢还是觉得本人写的太差呢,看啦死我些的太差了,所以决定停止后续更新了


继  授人以鱼不如授人以渔,UCHome全面大解析培训活动开展一之后,许多用户反应希望能从简单的开始,因此此系列活动进行相应的修改。本期主要介绍UCHOME的体系结构开始,一步一步教大家理解UCHOME。

UCHOME安装后的主要目录与文件介绍:

admin/      管理后台
api/      API函数[插件开发与模板等的修改不需要动此文件]
attachment/ 附件目录
data/   缓存目录,此目录要有777权限,系统相关缓存基本上都在这里了
   data/tpl_cache/ 模板缓存目录,注意,如果你的UCH白屏了,无法进入后台跟新缓存,通过FTP手工删除此目录下的所有文件即可相当于模板缓存的更新
image/  图片目录
language/   语言目录 ,跳转提示语言等
source/  PHP源程序目录
template/  模板目录
theme/ 个人主页目录
uc_client/ ucenter客户端 [插件开发与模板等的修改不需要动此文件]
以下是UCHOME根目录下常用文件【不常用的不在介绍】
admincp.php  后台管理入口文件
common.php  通用文件,所有的文件都要包含这个文件,在上篇已详细解释了内容
config.php  基本配置文件
cp.php     编辑日志、相册、活动等等相关编辑操作基本上都从这个文件入口
do.php   登录、注册、找回密码、相册批量上传、在需要密码的情况下才能查看日志相册、验证码、发送邮件、统计、邮件验证等行为的入口文件
editor.php  编辑器的入口文件,强烈建议您不用动他
magic.php  道具入口文件

network.php 随便看看等入口文件
space.php   个人空间、日志、相册、活动等入口文件

我们一般修改UCH主要涉及的入口文件有space.php  network.php  do.php  cp.php 这四个,那么我们如何根据你访问的URL判断涉及到那些PHP文件和模板文件,方便您的进一步修改!

好了,现在我们以最简单的do.php入口文件来分析下,
举个列子,如果我们使用找回密码功能,通常链接如下:do.php?ac=lostpasswd,而注册的链接一般分两种,一种是do.php?ac=后台自定义登录识别名
另一种是do.php?ac=随机
好了,我们进入do.php文件中继续看看

  1. include_once('./common.php'); 上节说了,这个是公用文件,在上篇已详细解释了内容

  2. //获取方法
  3. $ac = empty($_GET['ac'])?'':$_GET['ac']; //获取do.php?ac中ac的值

  4. //自定义登录
  5. if($ac == $_SCONFIG['login_action']) {
  6. //这里的全局变量$_SCONFIG['login_action']就是ac=自定义标示名或那个随机串,如果相同则把原来的do.php?ac=XXXX抓换成类似效果do.php?ac=login
  7.         $ac = 'login';
  8. } elseif($ac == 'login') {
  9.         $ac = '';
  10. }
  11. if($ac == $_SCONFIG['register_action']) {
  12. //这里的全局变量$_SCONFIG['register_action']
  13. //就是ac=就是后面的自定义标示名或那个随机串,如果相同则把原来的do.php?ac=XXXX抓换成类似效果do.php?ac=register
  14.         $ac = 'register';
  15. } elseif($ac == 'register') {
  16.         $ac = '';
  17. }

  18. //允许的方法
  19. //这里很重要,login对应的是登录,register定义的是注册,lostpasswd定义的是找回密码,与上面访问的URL是否是对应上了
  20. //对应上面的do.php?ac=login,do.php?ac=register,do.php?ac=lostpasswd,其他类似!如果ac后的参数不在下面的数组中,则为非法。跳转到首页
  21. $acs = array('login', 'register', 'lostpasswd', 'swfupload', 'inputpwd',
  22.         'ajax', 'seccode', 'sendmail', 'stat', 'emailcheck');
  23. if(empty($ac) || !in_array($ac, $acs)) {
  24.         showmessage('enter_the_space', 'index.php', 0);
  25. }

  26. //链接
  27. $theurl = 'do.php?ac='.$ac;
  28. //这是包含文件的意思,继续执行一下文件的意思,
  29. //其中S_ROOT是UCHOME安装目录的常量
  30. //根据下面的语句,我们可以这样判断,如果链接是do.php?ac=lostpasswd的话,程序继续执行source/do_lostpasswd.php文件!
  31. include_once(S_ROOT.'./source/do_'.$ac.'.php');

复制代码
不知道大家是否能理解,不理解多看几遍!

好了,我们找到source/do_lostpasswd.php文件看下,这个文件代码较多,我们不用管他,最主要的是我们要找到其对应的模板,
查找下include template这个语句【注:在其他php文件中可能有多个结果,那是因为不同条件下包含不同的模板】。你就会发现在末尾找到
  1. include template('do_lostpasswd');
复制代码
这就是模板名,这个记住规则,do_lostpasswd对应的模板是do_lostpasswd.htm名。那么这个文件在哪个位置呢?
我们系统目录template/下有 默认的default,blue,green这三个文件夹,对应不同的风格,如果你安装了其他风格,可能还有其他目录。
系统是如何查找do_lostpasswd.htm呢?
大家记得在后台有一个模板选择的下拉表吗?系统会在你选择的模板风格文件夹下查找do_lostpasswd.htm,如果找不到则在去default目录下查找。

注意: 为了提供效率,模板并不是每次都编译的,严格的来说,UCHOME会先判断对应的模板是否被解析过了【查找data/tpl_cache/目录下是否有对应的模板缓存】
如果没有的话才会去按上面的规则去查找。

基本上,按照以上思路就可以根据链接找到匹配的程序文件和模板文件了
下节我们将会介绍几个制作模板中实用的诀窍及模板的解析原理。如如何修改程序让UCHOME每次都重新解析模板,而不生成缓存!
zgdxs 发表于 2009-10-27 11:19:39 | 显示全部楼层
支持下你啊
谢谢!
回复

使用道具 举报

kufun 发表于 2009-10-27 11:22:08 | 显示全部楼层
啥意思?占楼编辑
回复

使用道具 举报

 楼主| scckfzx 发表于 2009-10-27 11:51:18 | 显示全部楼层
哎!这么好的帖子都没人顶啊!
回复

使用道具 举报

abcdefgxw 发表于 2009-10-27 13:34:54 | 显示全部楼层
好帖,之前竟然没看到……
回复

使用道具 举报

weiwie80 发表于 2009-10-27 13:35:02 | 显示全部楼层
先顶起来,慢慢理解
回复

使用道具 举报

ylie 发表于 2009-10-28 08:18:44 | 显示全部楼层
ding起。好贴
回复

使用道具 举报

 楼主| scckfzx 发表于 2009-10-28 10:26:47 | 显示全部楼层
这么好的帖子都没人顶,真没信心在写下去了
回复

使用道具 举报

cullam 发表于 2009-10-28 11:13:41 | 显示全部楼层
强烈支持·~
回复

使用道具 举报

cx11111 发表于 2009-10-28 17:35:45 | 显示全部楼层
楼主多发点这样的文章多好啊,别整天卖插件,懂不懂免费开源啊!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-26 00:25 , Processed in 0.033421 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表