从head.htm来看uchome的实现过程
来源:互联网 发布:intouch组态软件 编辑:程序博客网 时间:2024/05/17 23:02
Head.htm位于安装目录/template/default下,其基本用于每个应用页面的头部,用于显示title、页面顶部以及页面左侧的应用链接,除了title之外的功能图如下。
由于每一个应用页面都将此文件在开始时进行引用,这就确保上述内容在每一个页面中都有显示。从用户的角度来看,能够提高用户的使用体验。
对于基于uchome的二次开发,需要添加的应用,只需在此文件中参照内容加入链接代码,再创建相应的应用文件,即可实现。例如,热闹这一应用的链接如下:<li><img src="image/app/topic.gif"><ahref="space.php?do=topic">热闹</a></li>。如果需要在热闹后添加自己的应用,可以模仿上述代码写入自己的功能名称,然后通过<a href="space.php?do=XXXX">将此应用链接到/space.php文件中,并通过GET方式将XXXX传递到space.php中,space.php这个文件的作用是:判断XXXX这个应用在space.php中是否注册过,如果已经注册,那么就转向注册过的文件./source/space_XXXX.php。参照这个过程,我们添加自己的应用分三步:一、在允许动作$dos数组中加入XXXX应用;二、编写./source/space_XXXX.php代码;三、在./template/default/下编写space_XXXX.htm代码。
./source/space_XXXX.php是的作用是处理这一应用所涉及的数据,然后将这些数据赋值给全局变量后通过template(space_XXXX_view)进行处理。Template()函数先到缓存中查找./data/tpl_cache/template_default_space_XXXX.php这个文件是否找到,找到即运行此文件;如果没有找到的话,就到将刚才第三步在./template/default/下所编写space_XXXX.htm代码通过parse_template()函数进行解析,将结果存成./data/tpl_cache/template_default_space_XXXX.php并执行。
这样就完成了一个应用的实现。
根据上述原理,应用的开发就在于:source下php代码的编写以及template/default/下htm代码的编写,前者用于数据处理,后者用于显示页面。Uchome对于php代码,有如下全局变量进行值传递:
1、$_SC:系统全局配置
2、$_SCONFIG:个人空间配置
3、$_SCOOKIE:Cookie信息
4、$_COOKIE:Cookie信息
5、$_SGLOBAL:各类全局信息
6、$_SN:昵称信息
7、$_TPL:未知
8、$_SBLOCK:未知
其还有一系列包括用于安全检查在内的common function来进行数据处理,所以要写好一个功能应用,对上述内容的了解是必不可少的。
Uchome有一套自己的htm语法,是在php的基础上自行定义并通过自己开发的parse_template()函数将htm文件编译成php文件后执行的。这样做的作用据说在于将contrl与view分离,由于还没有深入了解,暂时还未发现其好处。
- 从head.htm来看uchome的实现过程
- 从“绘制一个立方体”来看OpenGL的进化过程
- 从编译和链接来看kernel驱动注册的过程
- 从编译和链接来看kernel驱动注册的过程
- 从编译和链接来看kernel驱动注册的过程 .
- 从“绘制一个立方体”来看OpenGL的进化过程
- 从MaxTemperature程序来看Mapreduce 的执行过程
- 从编译和链接来看kernel驱动注册的过程
- 从银行窗口业务办理来看锁的实现
- 编程思想--从面向过程来看
- 织梦的留言板怎么样增加head.htm头部文件?
- OpenGL入门学习之十五——从“绘制一个立方体”来看OpenGL的进化过程
- OpenGL入门学习——第十五课,从“绘制一个立方体”来看OpenGL的进化过程
- OpenGL入门学习——第十五课 从“绘制一个立方体”来看OpenGL的进化过程
- OpenGL入门学习之十五——从“绘制一个立方体”来看OpenGL的进化过程
- 从 pstack 实现来看 /proc 目录
- 从源码来看ItemTouchHelper实现RecyclerView列表的拖拽和侧滑
- 从TDD的观点来看IntelliJ IDEA
- EnumChildWindows 枚举子窗体句柄
- 反射 java.lang.Class java.lang.reflect.*
- 十年游戏一场梦,回首一看尽浮云
- TreeView的图片问题
- 中英文手机短信 PDU 串 编码(UCS2) 解码(UCS2,7-Bit) 程序 ( in C# )
- 从head.htm来看uchome的实现过程
- 彻底卸载Symantec Endpoint Protection之另类办法
- 要怎么样才有积分哩
- java Class Loader
- poj 2449 Remmarguts' Date
- swf不能访问本地资源的一些解决办法
- Python点滴积累
- GNU Makefile 之 (详述)
- 计算机几个基本单位的区别