UCenter Home二次开发指南
作者:bea
前言本文将就UCH二次开发这个核心主题,以各种实现的代码为主,辅助部分说明概略的讲解如何针对UCH进行二次开发。过段时间UCH就开源了,准备到时候再详细的写篇UCH机制分析。 顺便说下,这篇文件写在大约两周以前,但是一直没有时间整理发布,今天听说UCH会在最近一段时间开源,到时候再发反而对大家帮助不大,所以决定不再整理,虽然文中一些说明还不详细,但是已经基本成文。 数据调用这里的数据调用是使用UCenter Home内置的数据调用,在后台的“高级应用”里有“数据调用”管理,以
前言本文将就UCH二次开发这个核心主题,以各种实现的代码为主,辅助部分说明概略的讲解如何针对UCH进行二次开发。过段时间UCH就开源了,准备到时候再详细的写篇UCH机制分析。
顺便说下,这篇文件写在大约两周以前,但是一直没有时间整理发布,今天听说UCH会在最近一段时间开源,到时候再发反而对大家帮助不大,所以决定不再整理,虽然文中一些说明还不详细,但是已经基本成文。
数据调用这里的数据调用是使用UCenter Home内置的数据调用,在后台的“高级应用”里有“数据调用”管理,以下代码都是在模板中添加,然后调用数据。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%20%2A%20FROM%20uchome_blog%20ORDER%20BY%20dateline%20DESC%20LIMIT%200%2C8/cachename/test/cachetime/0}-->
<!--{loop $_SBLOCK['test'] $value}-->
<li class="app-thread"><a href="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 class="app-thread"><a href="do.php?ac=demo"><strong>最新日志演示</strong></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虽然UCH发布的文件是加密信息,但是我们从其已经开源的文件中可以得出进行UCH二次开发宝贵的信息。比如/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 class="side_right">
<div class="wide">
<div class="post_list">
<ul>
<!--{loop $bloglist $value}-->
<li>
<div class="title">
<h4><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[subject]</a></h4>
<a href="space.php?uid=$value[uid]">$value[username]</a> <span class="time"><!--{date('Y-m-d H:i',$value[dateline])}--></span>
</div>
<div class="status">
<!--{if $value[viewnum]}--><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[viewnum] 次阅读</a><span class="pipe">|</span><!--{/if}-->
<!--{if $value[replynum]}--><a href="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尚未开源,但是在模板界面完全可修改,合理利用上述数据调用机制的情况下,鲜有我们不能实现的页面效果和数据调用要求。
有用 | 无用
顺便说下,这篇文件写在大约两周以前,但是一直没有时间整理发布,今天听说UCH会在最近一段时间开源,到时候再发反而对大家帮助不大,所以决定不再整理,虽然文中一些说明还不详细,但是已经基本成文。
数据调用这里的数据调用是使用UCenter Home内置的数据调用,在后台的“高级应用”里有“数据调用”管理,以下代码都是在模板中添加,然后调用数据。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%20%2A%20FROM%20uchome_blog%20ORDER%20BY%20dateline%20DESC%20LIMIT%200%2C8/cachename/test/cachetime/0}-->
<!--{loop $_SBLOCK['test'] $value}-->
<li class="app-thread"><a href="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 class="app-thread"><a href="do.php?ac=demo"><strong>最新日志演示</strong></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虽然UCH发布的文件是加密信息,但是我们从其已经开源的文件中可以得出进行UCH二次开发宝贵的信息。比如/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 class="side_right">
<div class="wide">
<div class="post_list">
<ul>
<!--{loop $bloglist $value}-->
<li>
<div class="title">
<h4><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[subject]</a></h4>
<a href="space.php?uid=$value[uid]">$value[username]</a> <span class="time"><!--{date('Y-m-d H:i',$value[dateline])}--></span>
</div>
<div class="status">
<!--{if $value[viewnum]}--><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[viewnum] 次阅读</a><span class="pipe">|</span><!--{/if}-->
<!--{if $value[replynum]}--><a href="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尚未开源,但是在模板界面完全可修改,合理利用上述数据调用机制的情况下,鲜有我们不能实现的页面效果和数据调用要求。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- Windows PHP5和Apache的安装与配置
- phpMyAdmin 安装配置方法和问题解决
- IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
- Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
- Windows IIS PHP 5.2 安装与配置方法
- PHP 组件化编程技巧
- PHP加速 eAccelerator配置和使用指南
- php 更新数据库中断的解决方法
- php split汉字
- phpinfo 系统查看参数函数代码
- PHP 字符串 小常识
- PHP 批量删除 sql语句
- PHP 文件扩展名 获取函数
- php 正则 过滤html 的超链接
- 一个很不错的PHP翻页类
- PHP 服务器配置(使用Apache及IIS两种方法)
- php Undefined index的问题
- php $_ENV为空的原因分析
- PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法