Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[经验] UCenter Home二次开发指南

[复制链接]
僭燮水 发表于 2008-5-20 10:46:56 | 显示全部楼层 |阅读模式
前言
本文将就UCH二次开发这个核心主题,以各种实现的代码为主,辅助部分说明概略的讲解如何针对UCH进行二次开发。过段时间UCH就开源了,准备到时候再详细的写篇UCH机制分析。

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

数据调用
这里的数据调用是使用UCenter Home内置的数据调用,在后台的“高级应用”里有“数据调用”管理,以下代码都是在模板中添加,然后调用数据。可以参考《UCenter HOME 数据调用实例》和《UCenter Home二次开发指南》,原文地址:http://www.ccvita.com/313.html

1.站内数据调用
  1. <!--{template data/blocktpl/1}-->
复制代码
2.站外JS调用
  1. <script language="javascript" type="text/javascript" src="http://www.ccvita.com/js.php?id=1"></script>
复制代码
block的使用
这个block数据调用和前面的讲的数据调用,从数据来源和生成来说是基本类似的,。
  1. <!--block模块调用演示-->
  2. <!--{block/sql/SELECT%20%2A%20FROM%20uchome_blog%20ORDER%20BY%20dateline%20DESC%20LIMIT%200%2C8/cachename/test/cachetime/0}-->
  3. <!--{loop $_SBLOCK['test'] $value}-->
  4. <li class="app-thread"><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[subject]</a></li>
  5. <!--{/loop}-->
复制代码
eval的使用
合理的使用Ucenter Home模板语法中的eval语法,会在一定程序上降低二次开发的难度。比如:
1.通过eval语法在模板内执行PHP语句
  1. <!--eval用法演示-->
  2. <!--{eval echo '<li class="app-thread"><a href="do.php?ac=demo"><strong>最新日志演示</strong></a>';}-->
复制代码
2.通过eval语法引入一个外部PHP文件
引入外部文件
  1. <!--用eval来include外部文件-->
  2. <!--{eval include 'demo.php'}-->
复制代码
备注:通过在模板中引入外部文件,你可做任何你想做的事情。

直接外部文件
do.php的扩展
1.首先,在do.php文件中添加允许的新方法
即在
  1. $acs = array('login', 'comment', 'wall', 'register', 'lostpasswd', 'swfupload', 'inputpwd',
  2. 'sns', 'viewspace', 'relatekw', 'ajax', 'seccode');
复制代码
之后添加
  1. $acs[] = 'demo';
复制代码
2.然后,在source目录下新建do_demo.php文件,调用地址就是do.php?ac=demo
虽然UCH发布的文件是加密信息,但是我们从其已经开源的文件中可以得出进行UCH二次开发宝贵的信息。
比如/source/cron这个目录下以及source/class_mysql.php文件都是开源的,我们可以从中找出,对UCH进行二次开发非常有用的一些信息,比如如何进行SQL查询,通过分析,我们可以写出以下文件。
  1. < ?php
  2. !defined('IN_UCHOME') && exit('Access Denied');

  3. $query = $_SGLOBAL['db']->query('SELECT * FROM '.tname('blog').' ORDER BY dateline DESC LIMIT 10');
  4. $bloglist = array();
  5. while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  6. $bloglist[] = $value;
  7. }
  8. include template('do_demo');
  9. ?>
复制代码
模板文件templates/default/do_demo.htm内容为
  1. <!--{template header}-->

  2. <div class="side_right">
  3. <div class="wide">
  4. <div class="post_list">
  5. <ul>
  6. <!--{loop $bloglist $value}-->
  7. <li>
  8. <div class="title">
  9. <h4><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[subject]</a></h4>
  10. <a href="space.php?uid=$value[uid]">$value[username]</a> <span class="time"><!--{date('Y-m-d H:i',$value[dateline])}--></span>
  11. </div>
  12. <div class="status">
  13. <!--{if $value[viewnum]}--><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]">$value[viewnum] 次阅读</a><span class="pipe">|</span><!--{/if}-->
  14. <!--{if $value[replynum]}--><a href="space.php?uid=$value[uid]&do=blog&id=$value[blogid]#comment">$value[replynum] 个评论</a><!--{else}-->没有评论<!--{/if}-->
  15. </div>
  16. </li>
  17. <!--{/loop}-->
  18. </ul>
  19. </div>
  20. </div>
  21. </div>

  22. <!--{template footer}-->
复制代码
总结
虽然当前的UCH尚未开源,但是在模板界面完全可修改,合理利用上述数据调用机制的情况下,鲜有我们不能实现的页面效果和数据调用要求。
UCenter Home二次开发指南》,原文地址:http://www.ccvita.com/313.html

PS:即然已经带链接了,就让我多带一个吧《百奥谷

[ 本帖最后由 僭燮水 于 2008-5-20 10:58 编辑 ]

评分

6

查看全部评分

5to20 发表于 2008-5-20 10:48:14 | 显示全部楼层
回复

使用道具 举报

old913 发表于 2008-5-20 10:51:24 | 显示全部楼层
顶!

很好。
回复

使用道具 举报

sup 发表于 2008-5-20 10:52:42 | 显示全部楼层
不错。分析的挺正确。
回复

使用道具 举报

derekhui 发表于 2008-5-20 10:52:54 | 显示全部楼层
支持    学习
回复

使用道具 举报

lu5266 发表于 2008-5-20 10:54:34 | 显示全部楼层
回复

使用道具 举报

 楼主| 僭燮水 发表于 2008-5-20 10:55:59 | 显示全部楼层
原帖由 sup 于 2008-5-20 10:52 发表
不错。分析的挺正确。


sup给加500分吧
回复

使用道具 举报

缘亦如此 发表于 2008-5-20 11:12:37 | 显示全部楼层
不错,学习了,有段时间不见水水 发贴了呀
回复

使用道具 举报

уī覑塃凉° 发表于 2008-5-20 12:00:34 | 显示全部楼层
:$ 教教俺怎么实现窝窝那样的邮箱注册和登陆。。。
回复

使用道具 举报

zzm1878 发表于 2008-5-20 12:25:09 | 显示全部楼层
好呀,谢谢分享1~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-14 15:26 , Processed in 0.041071 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表