|
前言
本文將就UCH二次開發(fā)這個核心主題,以各種實現(xiàn)的代碼為主,輔助部分說明概略的講解如何針對UCH進行二次開發(fā)。過段時間UCH就開源了,準(zhǔn)備到時候再詳細(xì)的寫篇UCH機制分析。
順便說下,這篇文件寫在大約兩周以前,但是一直沒有時間整理發(fā)布,今天聽說UCH會在最近一段時間開源,到時候再發(fā)反而對大家?guī)椭淮螅詻Q定不再整理,雖然文中一些說明還不詳細(xì),但是已經(jīng)基本成文。
數(shù)據(jù)調(diào)用
這里的數(shù)據(jù)調(diào)用是使用UCenter Home內(nèi)置的數(shù)據(jù)調(diào)用,在后臺的“高級應(yīng)用”里有“數(shù)據(jù)調(diào)用”管理,以下代碼都是在模板中添加,然后調(diào)用數(shù)據(jù)。
1.站內(nèi)數(shù)據(jù)調(diào)用
2.站外JS調(diào)用
<script language="Javascript" type="text/Javascript" src="http://www.ccvita.com/js.php?id=1"></script>block的使用
這個block數(shù)據(jù)調(diào)用和前面的講的數(shù)據(jù)調(diào)用,從數(shù)據(jù)來源和生成來說是基本類似的,。
<!--{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語法,會在一定程序上降低二次開發(fā)的難度。比如:
1.通過eval語法在模板內(nèi)執(zhí)行php語句
<!--{eval echo '<li class="app-thread"><a href="do.php?ac=demo"><strong>最新日志演示</strong></a>';}-->
2.通過eval語法引入一個外部php文件
引入外部文件
<!--{eval include 'demo.php'}-->
備注:通過在模板中引入外部文件,你可做任何你想做的事情。
直接外部文件
do.php的擴展
1.首先,在do.php文件中添加允許的新方法
即在
'sns', 'viewspace', 'relatekw', 'ajax', 'seccode');
之后添加
$acs[] = 'demo';2.然后,在source目錄下新建do_demo.php文件,調(diào)用地址就是do.php?ac=demo
雖然UCH發(fā)布的文件是加密信息,但是我們從其已經(jīng)開源的文件中可以得出進行UCH二次開發(fā)寶貴的信息。
比如/source/cron這個目錄下以及source/class_mysql.php文件都是開源的,我們可以從中找出,對UCH進行二次開發(fā)非常有用的一些信息,比如如何進行SQL查詢,通過分析,我們可以寫出以下文件。
!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內(nèi)容為
<!--{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}-->
總結(jié)
雖然當(dāng)前的UCH尚未開源,但是在模板界面完全可修改,合理利用上述數(shù)據(jù)調(diào)用機制的情況下,鮮有我們不能實現(xiàn)的頁面效果和數(shù)據(jù)調(diào)用要求。
php技術(shù):UCenter Home二次開發(fā)指南,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。