fxs_2008注:
不少朋友介绍,UC-home的开发结构与以前不同,也有朋友说,UC-home的换了一大批人,所以程序风格不同了!偶看了一下源代码,发现改变的风格只不过是用了MVC的架构!
MVC架构的老祖宗当属ruby-on-rails,cakephp架构基本上是完全模仿它!uchome也不过是采用了MVC架构!
一:怎样找到要修改的文件和模板
uchome的程序结构采用 入口参数->源程充->查找模板 方式。
如:
//获取方法
$ac = empty($_GET['do’'])?'':$_GET['do'];
//允许动作
$dos = array('feed', 'doing', 'mood', 'blog', 'album', 'thread', 'mtag', 'friend', 'wall', 'tag', 'notice', 'share', 'home', 'pm');
if(empty($ac) || !in_array($ac, $acs)) {
showmessage('enter_the_space', 'index.php', 0);
}
//处理
include_once(S_ROOT."./source/space_{$do}.php");
以上代码,将入口参数放到$acs数组里面,根据参数定位到相应的源文件,由此可以根据url的参数判断具体的源代码是执行的哪个文件,url的文件名为入口文件,
如当前url为:space.php?do=friend
则入口文件为:space.php ,动作处理页面为:soruce/space_friend.php
在动作页面处理完后(包括写数据库和读数据),然后将返回的数据显示到模板页面中,在动作处理页用如下的方法加载了html模板:
include_once template("space_friend");
如果模板文件不在uch模板目录,要填写完整模板的目录即可
如上例:加载的是template/default/space_friend.htm
如果修改模板也可以根据参数找到相应的模板页面。
Uch的动作参数一般为:ac=[参数名]或do=[参数名]
二:uch管理地址:根文件下的admincp.php,默认管理员为创始人
三:模板图片和css:
Css在模板页面同一目录,模板图片在模板目录/image下
四:使用uch的接口:
在程序的第一行引入uch的公用文件即可,如下:
include_once('./common.php');
加载此公用文件后,uch将公共的变量全部放到全局变量$_SGLOBAL中,
经常用到的如下:
$_SGLOBAL [supe_uid] //当前登录用户的id
$_SGLOBAL [supe_username]//当前用户的登录名称
$_SGLOBAL[db]//数据库操作的封装
1:读取数据库实例
$query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('profield')");
while ($value = $_SGLOBAL['db']->fetch_array($query)) {
//在这里组合查出来的数据
//单条的数据即为$value
}
Tname()函数的参数为要读取的数据库的表名,tname函数的目的只是为了添加表前缀uchome_blog,当然可以使用表的全名,但提倡使用这种方式,优点在于表前缀修改后,程序不做任何改动
2:写数据库:
可以利用1中的方法,但uch提供了相应的函数:
inserttable(),使用方法如下:
$data=array(
‘列名’=>’值’,
‘列名’=>’值’
);
inserttable([表名],$data);
注意表名不可加表前缀,此函数含有更多参数,如可以返回插入的id,具体参照/soruce/function_common.php
inserttable还有其他函数,可以参照source/function_common.php的函数原型,如插入一条数据要返回刚刚插入数据的id也是可以的。
3:更新数据
$data=array(
‘列名’=>’值’,
‘列名’=>’值’
);
updatetable([表名],$data,array(‘id’=>5,’name’=>’username’));
第三个参数跟的是条件:更新的数据为id=5并且名称为:username的那一条数据,如果有更多的条件加到第三个数组就可以了
4:在模板中显示数据
1) 循环显示一个数组的数据:
如:$list=array(‘a’,’b’,’c’);
$k的值为:$v
输出:
0的值为a
1的值为b
2的值为c
这个相当于php里面的foreach,如果上面的不需要数组的key,则只写一个参数就可以了如:
//do some code
2) if的使用
//do code
//do some other
上面就是打印一个test字符串,
五:页面跳转:
showmessage('enter_the_space', 'index.php',1);
第一个参数为:跳转要提示的信息
第二个参数为:跳转地址
第三个参数为:显示提示信息后1秒跳转,如果为0,则为马上跳转
六: 开发使用uch的模板框架:
在页面中:
//这里就是页面的主题部分
Header包括uch的头部菜单和左边的插件栏,footer包括uch的底页面
七:uch缓存目录 /data/tpl_cache/
修改了模板页面必须删除此文件下的缓存文件才能开到修改效果,或者进入uch后台点击高级应用里面的缓存更新.
转载自:http://www.bye18.cn/space.php?uid=1&do=blog&id=32
本文永久链接: http://www.zzxj.net/blog/fxs_2008/archive/2009/04/16/38.html
发表于 @ 2009年04月16日 |评论(loading... )|收藏