UCenter Home二次開發指南

來源:互聯網
上載者:User

前言
本文將就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尚未開源,但是在模板介面完全可修改,合理利用上述資料調用機制的情況下,鮮有我們不能實現的頁面效果和資料調用要求。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.