Your SlideShare is downloading. ×
Uc home二次开发参考手册
Uc home二次开发参考手册
Uc home二次开发参考手册
Uc home二次开发参考手册
Uc home二次开发参考手册
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Uc home二次开发参考手册

516

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
516
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Uchome 二次开发一 文件系统结构及主要文件说明 Uchome 文件系统结构大概如下图所示 Admin: uchome 系统管理,与 home 目录(uchome 根目录)下 admincp.php 紧密相关 Api:与 ucenter 相关等的 api Attachment:附件上传保存目录 Data:临时数据缓存文件等存储目录,模板缓存文件就在这个目录里生成 Image:图片目录 Install:安装时用到,安装完毕建议删除 Language:操作对应语言 Source:uchome 架构核心目录,实际的处理及相关操作函数都在该目录中 Template:模板目录 Theme:主题(css 风格) Uc_client: 和 ucenter 信息交互的目录,必须 Home 目录( uchome 根目录)下主要文件(入口)功能说明: 1、系统首页 /index.php 显示页面为/template/模板文件夹名/index.htm。 2、个人页面 /space.php 不带参数时显示个人首页;带 uid 参数(用户编号)为显示其他人的首页;do 参数指示调用的模块, 如/space.php?do=blog 将显示日志内容。 带 do 参数页面的处理:/space.php?do=xxx 将调用/source/space_xxx.php(其中 xxx 为相关模块或操作, 下同)进行数据和逻辑处理,最终的页面是显示对应的模板页,为/template/模板文件夹名/space_xxx.htm。 3、随便看看页面 /network.php 不带参数时显示随便看看首页;带 ac 参数时显示某个模块的随便看看页面,如/network.php?ac=space 为随便 看看现有的成员。 带 ac 参数页面的处理:/network.php?ac=xxx 将调用/source/network_xxx.php 进行数据和逻辑处理,最终 的页面是显示对应的模板页,为/template/模板文件夹名/network_xxx.htm。 4、操作页面 /cp.php 不带参数时显示个人设置页;带 ac 参数时显示某个操作的页面,如/cp.php?ac=profile 为设置个人资料。 带 ac 参数页面的处理:/cp.php?ac=xxx 将调用/source/cp_xxx.php 进行数据和逻辑处理,最终的页面是显 示对应的模板页,为/template/模板文件夹名/cp_xxx.htm。 5、动作页面 /do.php
  • 2. 不带参数时会被跳转到个人首页或系统首页(看是否已登录);带 ac 参数时为进行某项动作,不一定有显示的界面。带 ac 参数页面的处理:/do.php?ac=xxx 将调用/source/do_xxx.php 进行数据和逻辑处理,最终的页面是显示对应的模板页,为/template/模板文件夹名/do_xxx.htm(不是所有的动作需要页面显示结果,所以不一定存在对应的模板文件)。为防止注册机等外挂软件的攻击,程序对于 login 和 register 做了单独处理,直接加在 ac 参数后是无效的,而是通过一串标识符来指示 login 或 register 动作。6、高级管理页面 /admincp.php不带参数时显示管理平台首页;带 ac 参数时显示某项功能的管理页面,如/admincp.php?ac=ad 为广告设置页。带 ac 参数页面的处理:/admincp.php?ac=xxx 将调用/admin/admincp_xxx.php 进行数据和逻辑处理,最终的页面是显示对应的模板页,为/admin/tpl/xxx.htm。7、应用页面 /app.php显示页面为/template/模板文件夹名/iframe.htm。8、个人应用页面 /userapp.php显示页面为/template/模板文件夹名/userapp.htm。9、邀请加入页面 /invite.php显示页面为/template/模板文件夹名/invite.htm。10、RSS 页面 /rss.php显示页面为/template/模板文件夹名/space_rss.htm。11、帮助页面 /help.php显示页面为/template/模板文件夹名/help.htm。12、通用代码 /common.php缓存、Cookie、用户状态验证、各种状态初始化等通用处理。13、配置文件 /config.php数据库连接、系统编码、站点网址等全局性配置。14、富文本编辑器 /editor.php15、模块载入代码 /js.php
  • 3. 未发现使用的地方,所以不做解释。 16、连接显示页 /link.php 未发现使用的地方,所以不做解释。 17、xmlrpc 服务 /xmlrpc.php 调用/source/class_xmlrpc.php 来处理。关于 XML-RPC 的规范可看这里二 uchome 架构简单说明 uchome 大概架构流程如下图: 是个轻量级的框架,逻辑流程都很清晰,space.php do.php 等入口文件属于 controler 级别,space_blog.php等属于 model 级别, /data/tpl_cache/template_default_space_blog.php 等是 view 级别的。当然这个架构不是严格意义上的 mvc 模式三 uchome 全局变量说明 1 $_SC:系统全局配置 2 $_SBLOCK 3 $_SCONFIG:个人空间配置 4 $_SCOOKIE: 5 $_SGLOBAL:各类全局信息 6 $_SN:昵称信息四 二次开发相关说明: 1 模板方面 首先,在根目录文件 config.php 中配置系统使用的模板: $_SC[“template”] = ‘default’;//选择模板目录
  • 4. 当需要调用模板文件时,首先程序会在模板缓存目录 /data/tpl_cache/ 下查找是否存储了模板缓存文件,模板缓存文件的命名规则:template_模板目录名_模板文件名.php,如果存在缓存的模板文件,直接调用就可以了。如果不存在,则解析对应模板文件,生成缓存文件,然后使用。 模板解析通过调用/source/function_template.php 文件中的函数 parse_template()实现 解析的过程:读取模板文件( .htm)—>正则表达式替换相应标记为 php 代码—>生成标准 php 代码文件,存储于/data/tpl_cache 目录 欲了解具体解析过程,查看 /source/function_template.php 中的函数 parse_template模板语法:(1) 调用其他模板文件 <!--{template header}--> 说明:此处调用 header.htm(2) 调用头像 模板代码: <!--{avatar($value[uid],small)}--> 解析后的代码:<?php echo avatar($value[uid],small); ?>(3) 调用广告 模板代码:<!--{ad/header}--> 解析后的代码:<?php adshow(header); ?>(4) 调用时间 模板代码:<!--{date(Y-m-d H:i, $value[dateline], 1)}--> 解析后的代码:<?php echo sgmdate(Y-m-d H:i, $value[dateline], 1); ?>(5) 输出 php 代码 模板代码:<!--{eval echo formhash();}--> 解析后的代码:<?php echo formhash(); ?> 说明:<!–{eval 和}–>之间的是需要执行的 PHP 代码,要求语句完整。(6) 调用变量 <a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a> 解析后的代码: <a href="space.php?uid=<?=$value[uid]?>"><?=$_SN[$value[uid]]?></a> 说明:{和}之间的是需要输出的变量。 (7) 选择输出逻辑(if) <!—{if(condition)}? Dosomething <!—{elseif(condition)}= Dosomething <!—{/if}i 当然没有 elseif 这种情况可以省略 (8) 循环输出 <!—{loop $list $key $value}v Do something D {/loop}i 相当于 <?php If(is_array($list)){
  • 5. Foreach($list as $key=>$value){ Do something ?> <?php } }?> 另外关于 loop 后的参数说明:当 loop 后跟着三个参数时,第一个是要循环的数组,第二个是循环数组 的键名,第三个是该键名对应的值 当参数是两个的时候,第一个参数是循环的数组,第二个是当前循环的数组成员值2 uchome 与 ucenter 交互机制 Uchome 中调用的一些信息是来源于 ucentenr 的,故在开发过程中需要知道 uchome 与 ucenter 交互 的机制。 (1) 文 件 说 明 : ucenter 与 uchome 交 互 的 代 码 位 于 /uc_client/ 目 录 下 , 相 关 的 数 据 调 用 函 数 都 来 自 client.php 文件中的函数,在 uchome 文件代码中加入: include_once S_ROOT../uc_client/client.php; 即可调用相关 ucenter 的数据 (2) 函数说明:函数全部以 uc 开头,函数具体功能参见源代码注释 (3 ) 在/config.php 中有相当一部分有关 ucenter 的配置,相关配置变量以 uc 开头

×