UCenter Home二次開(kāi)發(fā)指南
前言
本文將就UCH二次開(kāi)發(fā)這個(gè)核心主題,以各種實(shí)現(xiàn)的代碼為主,輔助部分說(shuō)明概略的講解如何針對(duì)UCH進(jìn)行二次開(kāi)發(fā)。過(guò)段時(shí)間UCH就開(kāi)源了,準(zhǔn)備到時(shí)候再詳細(xì)的寫(xiě)篇UCH機(jī)制分析。
順便說(shuō)下,這篇文件寫(xiě)在大約兩周以前,但是一直沒(méi)有時(shí)間整理發(fā)布,今天聽(tīng)說(shuō)UCH會(huì)在最近一段時(shí)間開(kāi)源,到時(shí)候再發(fā)反而對(duì)大家?guī)椭淮?,所以決定不再整理,雖然文中一些說(shuō)明還不詳細(xì),但是已經(jīng)基本成文。
數(shù)據(jù)調(diào)用
這里的數(shù)據(jù)調(diào)用是使用UCenter Home內(nèi)置的數(shù)據(jù)調(diào)用,在后臺(tái)的“高級(jí)應(yīng)用”里有“數(shù)據(jù)調(diào)用”管理,以下代碼都是在模板中添加,然后調(diào)用數(shù)據(jù)。
1.站內(nèi)數(shù)據(jù)調(diào)用
2.站外JS調(diào)用
block的使用
這個(gè)block數(shù)據(jù)調(diào)用和前面的講的數(shù)據(jù)調(diào)用,從數(shù)據(jù)來(lái)源和生成來(lái)說(shuō)是基本類(lèi)似的,。
<!--{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模板語(yǔ)法中的eval語(yǔ)法,會(huì)在一定程序上降低二次開(kāi)發(fā)的難度。比如:
1.通過(guò)eval語(yǔ)法在模板內(nèi)執(zhí)行PHP語(yǔ)句
<!--{eval echo '<li class="app-thread"><a href="do.php?ac=demo"><strong>最新日志演示</strong></a>';}-->
2.通過(guò)eval語(yǔ)法引入一個(gè)外部PHP文件
引入外部文件
<!--{eval include 'demo.php'}-->
備注:通過(guò)在模板中引入外部文件,你可做任何你想做的事情。
直接外部文件
do.php的擴(kuò)展
1.首先,在do.php文件中添加允許的新方法
即在
'sns', 'viewspace', 'relatekw', 'ajax', 'seccode');
之后添加
2.然后,在source目錄下新建do_demo.php文件,調(diào)用地址就是do.php?ac=demo
雖然UCH發(fā)布的文件是加密信息,但是我們從其已經(jīng)開(kāi)源的文件中可以得出進(jìn)行UCH二次開(kāi)發(fā)寶貴的信息。
比如/source/cron這個(gè)目錄下以及source/class_mysql.php文件都是開(kāi)源的,我們可以從中找出,對(duì)UCH進(jìn)行二次開(kāi)發(fā)非常有用的一些信息,比如如何進(jìn)行SQL查詢(xún),通過(guò)分析,我們可以寫(xiě)出以下文件。
!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)容為
<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] 個(gè)評(píng)論</a><!--{else}-->沒(méi)有評(píng)論<!--{/if}-->
</div>
</li>
<!--{/loop}-->
</ul>
</div>
</div>
</div>
<!--{template footer}-->
總結(jié)
雖然當(dāng)前的UCH尚未開(kāi)源,但是在模板界面完全可修改,合理利用上述數(shù)據(jù)調(diào)用機(jī)制的情況下,鮮有我們不能實(shí)現(xiàn)的頁(yè)面效果和數(shù)據(jù)調(diào)用要求。
- ucenter通信原理分析
- 簡(jiǎn)單分析ucenter 會(huì)員同步登錄通信原理
- destoon整合UCenter圖文教程
- UCenter 批量添加用戶(hù)的php代碼
- UCenter中的一個(gè)可逆加密函數(shù)authcode函數(shù)代碼
- php將會(huì)員數(shù)據(jù)導(dǎo)入到ucenter的代碼
- php通過(guò)兩層過(guò)濾獲取留言?xún)?nèi)容的方法
- thinkphp3.x中變量的獲取和過(guò)濾方法詳解
- PHP中字符安全過(guò)濾函數(shù)使用小結(jié)
- php完全過(guò)濾HTML,JS,CSS等標(biāo)簽
- PHP開(kāi)發(fā)不能違背的安全規(guī)則 過(guò)濾用戶(hù)輸入
- ucenter中詞語(yǔ)過(guò)濾原理分析
相關(guān)文章
PHP通過(guò)session id 實(shí)現(xiàn)session共享和登錄驗(yàn)證的代碼
PHP通過(guò)session id 實(shí)現(xiàn)session共享和登錄驗(yàn)證的代碼,需要的朋友可以參考下2012-06-06php一維二維數(shù)組鍵排序方法實(shí)例總結(jié)
這篇文章主要介紹了php一維二維數(shù)組鍵排序方法,以實(shí)例形式總結(jié)了針對(duì)一維數(shù)組的冒泡排序與使用array_multisort()對(duì)二位數(shù)組按照指定鍵值排序等方法,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11PHP中preg_match函數(shù)正則匹配的字符串長(zhǎng)度問(wèn)題
這篇文章主要介紹了PHP中preg_match函數(shù)正則匹配的字符串長(zhǎng)度問(wèn)題,如果你也遇到了preg_match正則提取內(nèi)容時(shí)總是空白或提取不到的話(huà),那就可能是遇到了這個(gè)問(wèn)題啦,需要的朋友可以參考下2015-05-05