第二章:【UCHome二次开发】基础

本文将就UCH二次开发这个核心主题,以各种实现的代码为主,辅助部分说明概略的讲解如何针对UCH进行二次开发。过段时间UCH就开源了,准备到时候再详细的写篇UCH机制分析。

顺便说下,这篇文件写在大约两周以前,但是一直没有时间整理发布,今天听说UCH会在最近一段时间开源,到时候再发反而对大家帮助不大,所以决定不再整理,虽然文中一些说明还不详细,但是已经基本成文。

数据调用

这里的数据调用是使用UCenterHome内置的数据调用,在后台的“高级应用”里有“数据调用”管理,以下代码都是在模板中添加,然后调用数据。

1.站内数据调用

 

<!–{template data/blocktpl/1}–>

 

2.站外JS调用

 

<script language=”javascript” type=”text/javascript” src=”http://www.ccvita.com/js.php?id=1″></script>

 

block的使用

这个block数据调用和前面的讲的数据调用,从数据来源和生成来说是基本类似的。

<!–block模块调用演示–>

<!–{block/sql/SELECT * FROM uchome_blog ORDER BY dateline DESCLIMIT 0,8/cachename/test/cachetime/0}–>

<!–{loop $_SBLOCK['test'] $value}–>

<li><ahref=”space.php?uid=$value[uid]&do=blog&id=$value[blogid]“>$value[subject]</a></li>

<!–{/loop}–>

eval的使用

合理的使用Ucenter Home模板语法中的eval语法,会在一定程序上降低二次开发的难度。比如:
1.通过eval语法在模板内执行PHP语句

 

<!–eval用法演示–>
<!–{eval echo ‘<li><a href=”do.php?ac=demo”>最新日志演示</a>‘;}–>

 

 

 

2.通过eval语法引入一个外部PHP文件
引入外部文件

 

<!–用eval来include外部文件–>
<!–{eval include ‘demo.php’}–>

 

 

 

备注:通过在模板中引入外部文件,你可做任何你想做的事情。

直接外部文件do.php的扩展

1.首先,在do.php文件中添加允许的新方法,即在

 

$acs = array(’login’, ‘comment’, ‘wall’, ‘register’,‘lostpasswd’, ’swfupload’, ‘inputpwd’,’sns’, ‘viewspace’, ‘relatekw’, ‘ajax’,’seccode’);

 

 

 

之后添加

 

$acs[] = ‘demo’;

 

 

 

2.然后,在source目录下新建do_demo.php文件,调用地址就是do.php?ac=demo。

比如/source/cron这个目录下以及source/class_mysql.php文件都是开源的,我们可以从中找出,对UCH进行二次开发非常有用的一些信息,比如如何进行SQL查询,通过分析,我们可以写出以下文件。

< ?php

!defined(’IN_UCHOME’) && exit(’Access Denied’);

$query = $_SGLOBAL['db']->query(’SELECT * FROM‘.tname(’blog’).’ ORDER BY dateline DESC LIMIT 10′);

$bloglist = array();

while ($value = $_SGLOBAL['db']->fetch_array($query)) {

$bloglist[]= $value;

}

include template(’do_demo’);
?>

 

 

模板文件templates/default/do_demo.htm内容为

 

 

<!–{template header}–>

<div>

<div>

<div>

<ul>

<!–{loop$bloglist $value}–>

<li>

<div>

<h4><a href=”space.php?uid=$value[uid]&do=blog&id=$value[blogid]“>$value[subject]</a></h4>

<ahref=”space.php?uid=$value[uid]“>$value[username]</a><span><!–{date(’Y-m-dH:i’,$value[dateline])}–></span>

</div>
<div>
<!–{if $value[viewnum]}–><ahref=”space.php?uid=$value[uid]&do=blog&id=$value[blogid]“>$value[viewnum]次阅读</a><span>|</span><!–{/if}–>
<!–{if $value[replynum]}–><ahref=”space.php?uid=$value[uid]&do=blog&id=$value[blogid]#comment”>$value[replynum]个评论</a><!–{else}–>没有评论<!–{/if}–>
</div>
</li>
<!–{/loop}–>
</ul>

</div>

</div>

</div>

<!–{template footer}–>

 

总结

 

当前的UCH是在模板界面完全可修改,合理利用上述数据调用机制的情况下,鲜有我们不能实现的页面效果和数据调用要求。

 

 

所有章节下载:http://download.csdn.net/source/3579636

文章摘自:http://wenku.baidu.com/view/ffd8a5c14028915f804dc2e0.html

 

 

 

 

 

posted @ 2011-09-06 15:26  Mr√liu  阅读(86)  评论(0编辑  收藏  举报