版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、ThinkSNS1.6二次開發(fā)指南(beta版)ThinkSNS2009年智士軟件(北京)有限公司北京市海淀區(qū)上地十街輝煌國際2號樓2301言這是2009年的第一次,忙碌了太久的企業(yè)項(xiàng)目,ThinkSNS終于又開始啦,太多的期待和等待,我們聽到很多很多聲音,不管怎么樣,我們回來啦!,在這沉寂的一年多時(shí)間里,我們經(jīng)歷過多次的波折,團(tuán)隊(duì)一度徘徊在解散的邊緣,生存的壓力也中斷了產(chǎn)品的持續(xù)性開發(fā)。直到09年的5月底,我們終于有了足夠的人力和精力來重新啟動產(chǎn)品。在產(chǎn)品開發(fā)之前,我們也不斷的在討論,究竟該用怎樣的產(chǎn)品去滿足不同用戶的需求,我們并不認(rèn)同SNS等同于webgame的
2、發(fā)展思路,在我們看來,SNS的魅力在于它改變了信息的傳播方式,如何做好最基本的功能促進(jìn)用戶之間的交流才是產(chǎn)品的核心所在,至于通過哪些組件實(shí)現(xiàn)交流,可以讓運(yùn)營者根據(jù)自己的用戶特性去選擇,而通過游戲的交流只是其中很小的一部分,國內(nèi)的互聯(lián)網(wǎng)應(yīng)用不會永遠(yuǎn)停留在娛樂階段,我們希望著眼于未來一一圍繞社會化服務(wù)的核心,深度開發(fā)能給用戶帶來實(shí)際效用的交互組件。基于以上的想法,我們這一版產(chǎn)品的目標(biāo)就是搭建一個(gè)完善的內(nèi)核架構(gòu),獨(dú)立的API,將應(yīng)用與核心完全分離,讓每個(gè)應(yīng)用都可以在后臺獨(dú)立配置,并提供詳盡的開發(fā)文檔,使得更多的開發(fā)者可以很容易的開發(fā)出新的組件,豐富TS的組件,滿足不同用戶的社交需求。最后感謝所有關(guān)注
3、和支持ThinkSNS的朋友,如果你有什么疑問或建議,請?jiān)谖覀兩鐓^(qū)的群組里找到相應(yīng)的官方群組并提交你的疑問或建議,我們會一直留意那里提交的問題并及時(shí)更改,如果是提交bug,請同時(shí)注明你的測試環(huán)境,方便我們發(fā)現(xiàn)問題所在,我們社區(qū)的網(wǎng)址是: HYPERLINK 目錄簡介5什么是ThinkSNS1.65編寫目的6引用術(shù)語與縮寫說明6預(yù)定義的全局變量說明6整體說明7設(shè)計(jì)說明7設(shè)計(jì)目標(biāo)7構(gòu)架說明8目錄結(jié)構(gòu)8核心結(jié)構(gòu)說明9ThinkPHP1.6修改說明10應(yīng)用結(jié)構(gòu)說明12分享13API庫21API接口說明22用戶API22好友API24積分API25動態(tài)API28通知API31評論API34附件API35
4、分享API36站點(diǎn)信息API37公共Widget38評論widget41舉扌報(bào)widget43好友選擇widget43好友分組widget44附件widget45相冊widget46模板開發(fā)教程47應(yīng)用開發(fā)說明54開發(fā)目錄說明54應(yīng)用的開發(fā)方式54應(yīng)用開發(fā)范例56開發(fā)需求和開發(fā)目標(biāo)57創(chuàng)建數(shù)據(jù)表57倉U建應(yīng)用目錄60開始編程63增加積分消費(fèi)功能77增加發(fā)動態(tài)功能78增加發(fā)通知功能80更新首頁統(tǒng)計(jì)數(shù)目82增加應(yīng)用后臺83增加應(yīng)用93調(diào)試94簡介什么是ThinkSNS1.6ThinkSNS1.6作為智士軟件(北京)有限公司旗下最新產(chǎn)品,集成了眾多ThinkSNS開發(fā)者在大型項(xiàng)目中的經(jīng)驗(yàn),并將這些寶
5、貴的經(jīng)驗(yàn)應(yīng)用于新版的產(chǎn)品之中,不管是對于普通站長還是對于開發(fā)者來說,這都是一款值得期待的SNS產(chǎn)品。ThinkSNS1.6版汲取了國內(nèi)幾大SNS社區(qū)網(wǎng)站的優(yōu)秀體驗(yàn)和設(shè)計(jì),滿足了眾多站長用戶的大眾需求。同為一款開源產(chǎn)品,ThinkSNS在商業(yè)領(lǐng)域的運(yùn)用,也使其完全能夠滿足并適用于企業(yè)的需求,并為企業(yè)增值和解決方案提供了有力的支持。相對于ThinkSNS1.0,最新版的ThinkSNS1.6做了很大的改變,具體如下:1、完整的產(chǎn)品構(gòu)架、完善的基礎(chǔ)應(yīng)用、開箱即用。2、內(nèi)置API接口、后續(xù)支持自建平臺、核心和應(yīng)用分離。3、完善的后臺管理、可植入獨(dú)立的應(yīng)用管理。4、正在完善IM應(yīng)用,包括獨(dú)立部署的Web
6、IM和基于Air技術(shù)的客戶端應(yīng)用。同時(shí)ThinkSNS官方將不斷的促進(jìn)ThinkSNS的完善和新技術(shù)的應(yīng)用,使用者可以在官方社區(qū)里獲得最新的應(yīng)用插件與系統(tǒng)升級信息。ThinkSNS官方網(wǎng)站ThinkSNS1.6版體驗(yàn)網(wǎng)站http:/i編寫目的本文檔是ThinkSNS1.6版本的二次開發(fā)指南,供二次開發(fā)人員使用。引用術(shù)語與縮寫說明核心:ThinkSNS1.6的核心的指用戶基本操作集成,通過接口給應(yīng)用提供查詢,插入核心信息的的能力。應(yīng)用:別名組件,是基于核心的一個(gè)單獨(dú)功能塊,為用戶提供某項(xiàng)特定服務(wù)。在ThinkSNS1.6里應(yīng)用是通過API與核心進(jìn)行通信,應(yīng)用與應(yīng)用之間的耦合度低,并且所有的應(yīng)用都
7、可以在后臺設(shè)置關(guān)閉和開啟。API:API(ApplicationProgrammingInterface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供給應(yīng)用程序與核心進(jìn)行通信的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。注:本指南如沒有特殊說明,所有的代碼段都基于ThinkPHP1.6環(huán)境開發(fā)的。預(yù)定義的全局變量說明在應(yīng)用/插件開發(fā)過程中,可以直接使用下面的全局變量:$this-api核心API調(diào)用的變量,使用例子:$this-api-user_getLoggedInUser();(獲取當(dāng)前登錄的用戶ID)$this-opts調(diào)用系統(tǒng)配置信息$this-mid當(dāng)前登陸的用戶ID$t
8、his-uid當(dāng)前被瀏覽的用戶ID$this-my_name當(dāng)前登陸的用戶昵稱$this-appid當(dāng)前應(yīng)用ID如果是THINKSNS核心,則appid=0整體說明設(shè)計(jì)說明1、本文檔主要對ThinkSNS1.6版本的核心架構(gòu)進(jìn)行描述,使設(shè)計(jì)和開發(fā)人員在開發(fā)ThinkSNS1.6版本的應(yīng)用時(shí)遵循統(tǒng)一的規(guī)范;2、本文檔描述了在ThinkSNS1.6版本使用的常見設(shè)計(jì)機(jī)制;3、本文檔充分描述了在核心+應(yīng)用中提到的可配置服務(wù)及可擴(kuò)展服務(wù),以便于在開發(fā)新的應(yīng)用時(shí)使用;4、本文檔還對ThinkSNS1.6版本的全局配置信息(例如:ThinkSNS1.6版本Config)及官方提供的應(yīng)用配置進(jìn)行了詳細(xì)說明。
9、設(shè)計(jì)目標(biāo)獨(dú)立API架構(gòu),應(yīng)用可配置,二次開發(fā)的選擇為了達(dá)成這些設(shè)計(jì)目標(biāo)我們采用了以下設(shè)計(jì)機(jī)制:1。獨(dú)立API架構(gòu):所有的應(yīng)用單獨(dú)開發(fā);2。應(yīng)用可配置:后臺可直接關(guān)閉或開啟某個(gè)應(yīng)用;3。二次開發(fā)的選擇:程序盡量簡潔規(guī)范化,二次開發(fā)人員可以快速地熟悉定制開發(fā)的方式和修改現(xiàn)有的功能;構(gòu)架說明ThinkSNS1.6版本采用了全新的構(gòu)架方式,把應(yīng)用與核心單獨(dú)分離,使得系統(tǒng)框架更加清晰明了,方便第三方開發(fā)和安裝新的應(yīng)用。目錄結(jié)構(gòu)Iindex.php統(tǒng)一入口文件Iadmin.php網(wǎng)站后臺地址文件|cleancache.php手動刪除緩存文件|config.inc.php網(wǎng)站配置文件|define.inc.
10、php常量定義文件Ithumb.php自動縮略圖文件Iadmin后臺目錄I卜Common公共文件目錄I卜Conf項(xiàng)目配置目錄I卜Lang語言包目錄I卜Lib應(yīng)用類庫目錄LTpl模版文件目錄Iapps應(yīng)用目錄I卜blog日志目錄I卜event活動目錄I卜mini心情目錄I卜photo相冊目錄|卜share分享目錄I卜vote投票目錄I卜group群組目錄IL更多項(xiàng)目目錄Idata后臺目錄I卜cache靜態(tài)緩存目錄I卜upload上傳文件目錄Luser用戶信息目錄Ipublic網(wǎng)站公共目錄I卜JsJS文件目錄I卜Images圖片目錄I卜Languages語文包目錄LTheme風(fēng)格主題包目錄|run
11、time核心緩存目錄|thinkphpTS框架目錄|thinksnsTS核心功能目錄所有的應(yīng)用目錄都放在apps/目錄下,如果要開發(fā)一個(gè)新的應(yīng)用也是在該目錄下創(chuàng)建應(yīng)用的目錄。核心結(jié)構(gòu)說明稍息API陶用:+C好VT川彳API應(yīng)用nThinkSNSl.6核心基本功能API庫:-ij.1.1,APIAHIThinkSNS1.6核心結(jié)構(gòu)圖ThinkSNS1.6的核心包括兩部分:個(gè)人空間的基本功能和API庫。個(gè)人空間的基本功能有個(gè)人資料,隱私,邀請,好友,動態(tài),消息,留言板,隨便看看。關(guān)于核心部分開發(fā)人員只需要了解API的調(diào)用方法即可,沒必要花精力研究它的運(yùn)作和機(jī)制,而API庫的說明請閱讀下面的API庫
12、欄目。ThinkPHP1.6修改說明為了方便開發(fā)和優(yōu)化系統(tǒng)結(jié)構(gòu),我們對ThinkPHP作了以下幾點(diǎn)修改,特別是在核心Model里增加了findPage方法,它集成了findAll方法和分頁方法,大大方便了程序的開發(fā),如果使用ThinkPHP作為應(yīng)用開發(fā)框架的話,推薦使用該方法。2009-06-011、ThinkPHP.php的第28行目的:修改runtime路徑2、ThinkPHP.php的第51行目的:新增引入TS公共函數(shù)3、ThinkPHP.php的第29行LibThinkTemplateThinkTemplate.class.php的第710行目的:使vinclude標(biāo)簽可以認(rèn)識_THE
13、ME_4、Commonfunction.php中第569行LibThinkUtilWidget.class.php第27行目的:當(dāng)W函數(shù)找不到當(dāng)前目錄的插件的時(shí)候,去核心的插件目錄去找2009-06-021、convention.php中第151行View.class.php中的第347行目的:為了$this-success可以指向公共Theme目錄2009-6-101、ThinkPHP.php中第102行目的:如果不存在runtime目錄,則自動創(chuàng)建2009-6-12修改ThinkPHP/Mode/Model.class.php中的findPage方法,更加嚴(yán)格的判斷了傳入?yún)?shù)。使用方法和f
14、indAll類似,只傳遞第一個(gè)參數(shù)即可,intlarray$pageopt傳遞數(shù)字,就是每頁記錄數(shù),默認(rèn)是20條。也可以傳遞數(shù)組:$pageoptpagesizePage類中的每頁記錄數(shù)$pageoptparamPage類中的第三個(gè)參數(shù)D(Share)-field(id,toUserName)-findPage(10);輸出格式如下所示,其中count和totalRows是總記錄數(shù),主要為了兼容性才需要變量,開發(fā)人員可以在兩個(gè)中選用其一就可。totalPages是總分頁數(shù),nowPage是當(dāng)前分頁數(shù),html是輸出頁碼,data就是用findAll得到的結(jié)果。具體請參考分享應(yīng)用的輸出:arra
15、y(6)count=string(2)65totalPages=float(7)totalRows=string(2)65nowPage=int(1)html=string(453)123456下一頁v/adata=array(10)0=array(l6)id=string(3)l8ltoUserName=string(9)水上鐵l=array(l6)id=string(3)l7ltoUserName=string(6)奇鳥9=array(l6)id=string(3)l47toUserName=string(9)水上鐵應(yīng)用結(jié)構(gòu)說明分享分享應(yīng)用結(jié)構(gòu)的最大特色是:需求決定模板,模板決定變量。分享
16、的模板可以根據(jù)自己的需求直接在后臺修改(包括分享的動態(tài)模板,分享應(yīng)用里的列表模板),而模板里需要什么變量就直接在數(shù)據(jù)包以數(shù)組的方式增加就可以了。數(shù)據(jù)包里所有的變量以及相應(yīng)的值與模板的變量是對應(yīng)的(除了WR以及分享的基本變量),以下讓我們看看分享的數(shù)據(jù)是怎么結(jié)合的。為了方便擴(kuò)展分享的類型和提高程序的靈活性,分享應(yīng)用保存到數(shù)據(jù)庫里的信息分為兩部分,一部分是分享的基本信息,主要有:信息字段名備注分享類型IDtypeld分享人IDtoUid分享人名字toUserName站內(nèi)分享目標(biāo)的IDaimId如日志的ID站外分享的網(wǎng)址url分享標(biāo)題title由程序自動獲取描述info增加時(shí)間cTime增加時(shí)系統(tǒng)自
17、動賦值瀏覽數(shù)viewNum評論數(shù)comNum是否已刪除isDel回收站功能,值為1代表已刪除,但可在后臺恢復(fù)。權(quán)限purview備用推薦人IDfromUid備用推薦人姓名fromUserName備用另一部分就是分享的核心數(shù)據(jù):數(shù)據(jù)包,字段名為data(text),采用數(shù)組保存相關(guān)數(shù)據(jù),然后序列化后保存入庫。數(shù)組保存的變量由相應(yīng)的類型根據(jù)模板需要來決定并賦上相應(yīng)的值,比如日志類型的模板(如下圖)需要顯示日志標(biāo)題(title),發(fā)表日志人的ID(uid)和姓名(name)。列表里還需要一些簡介(intro),日志內(nèi)容(content)。;丄3胡.hi1WP1/apis/blog/index,php
18、?s=自:|introinfab1og-where(frid-1aimld1“)-field(fieldj.find()專intro=strreplace(rr:ajap;iibsp;rr,t(data1content1J);data1intro1=getBlog5hort(intEO,120);在分享應(yīng)用里生成列表時(shí),根據(jù)分享的類型ID(typeId)從緩存里提出相應(yīng)的模板,然后把數(shù)據(jù)包反序列化得到一個(gè)數(shù)組,再循環(huán)數(shù)組并用str_replace方法轉(zhuǎn)譯模板。最終效果如下:分享了T日志行盼鐘前分李期9月詢?nèi)誌汨生要政動來gTOnkSNS由于連續(xù)的通宵加班TS的各位成靈于本周六放假怵島了一天,舒
19、釀一下緊張的柩,還詰大家理解-遠(yuǎn)幾天戰(zhàn)曙犬球的匱山-計(jì)對性的調(diào)整了一槪間題*主賽包捷:EEQ方茴加強(qiáng)應(yīng)用町以獨(dú)立設(shè)畫標(biāo)題動總的優(yōu)叱與合并増強(qiáng)后臺的営理設(shè)分享信息的來源結(jié)構(gòu)如下:URL輸入:主要是通過用戶在分享應(yīng)用列表里輸入網(wǎng)址來分享站外的音樂、視頻、Flash和網(wǎng)址。用戶填寫完相關(guān)信息(分享的網(wǎng)址,通知好友,描述)后點(diǎn)擊提交的處理過程如下圖:URL輸入分享別人的分享:在分享應(yīng)用里查看分享時(shí)可以選擇再次分享,但為了防止產(chǎn)生過多的垃圾信息,站內(nèi)所有能分享的信息用戶只可以分享一次,都不能重復(fù)分享。分享其它應(yīng)用:分享其它的應(yīng)用,如日志,先用AJAX調(diào)用當(dāng)前應(yīng)用里的add_share_check函數(shù)先判
20、斷你是否為第一次分享,然后才彈出分享框,提交分享后也是在當(dāng)前應(yīng)用先組裝數(shù)據(jù)包再通過API提交到數(shù)據(jù)庫。分享API接口:之所以要通過API方式增加分享數(shù)據(jù),是因?yàn)槊總€(gè)應(yīng)用都是一個(gè)獨(dú)立的項(xiàng)目,應(yīng)用與應(yīng)用之間耦合度很低,因此為了方便各應(yīng)用增加分享數(shù)據(jù)和保持應(yīng)用的獨(dú)立性,全站采用API方式增加分享數(shù)據(jù),也包括分享本身的增加。具體的API調(diào)用說明請查看API庫里關(guān)于分享API的說明。以下是分享API的程序流程圖。是否為空加到數(shù)撰足否成功通過API發(fā)送通知分亨的幺增加數(shù)據(jù)后接下來就是列表顯示,列表的方式只有四種:朋友的分享,我的分享,大家的分享和某人的分享,某人的分享類似我的分享,不同的是我的分享查詢的不
21、是當(dāng)前登錄人的ID,某人的分享可以是任意人的ID,當(dāng)然,顯示的模板也不一樣。列表里還可以點(diǎn)擊只查看某類型的分享。主要是判斷GET有沒有typeld這個(gè)參數(shù),有并且不等于0則只顯示相應(yīng)類型的分享。否則顯示全部類型的分享。1F111r11怏用飪?yōu)伹渚嗔形抑酚肍il山蟲維L戎毀業(yè)川E:irLcl沁疥費(fèi)呱骨亨列獲11,11I1r111杓模扳111111箔環(huán)囁誹待條廿孚的權(quán)板1F1111L1r1If1I1111必敦并輸岀曲向111I1111吐年諭出廿孚的歸由怡息111511111It訕川導(dǎo)號樣式11醐岀尋眺樣式控制皎皤11輸山特龜樣?xùn)X控艇帚11控制變啟1F111r1r1111汩堤礒出分享的內(nèi)容頁程序流
22、程圖如下圖所示。為了顯示多樣性以及一些類型的內(nèi)容顯示和列表顯示不一樣,故沒有引用模板渲染數(shù)據(jù),而是每一類應(yīng)用對應(yīng)一個(gè)內(nèi)容模板文件。它的命名規(guī)范是:content.類型別名。如日志的內(nèi)容模板文件是:content_blog。增加分享類型的步驟1在后臺的應(yīng)用=各類應(yīng)用=分享=分類管理=增加分類輸入類型信息,包括該類型的列表模板在后臺的高級=模板管理=動態(tài)模板=增加動態(tài)模板增加分享動態(tài)模板,具體請參考增加動態(tài)模板的規(guī)則增加分享的內(nèi)容頁html文件,文件名規(guī)定為:content_類型別名,如視頻的別名是:video,則內(nèi)容頁為:content_video.html在調(diào)用分享的應(yīng)用里實(shí)現(xiàn)通過分享的API
23、插入分享的內(nèi)容,具體請參考分享的API說明。注:數(shù)組參數(shù)data里的所需要的變量由列表模板和動態(tài)模板所需要的變量決定。更多應(yīng)用說明日后完善API庫API接口說明ThinkSNS1.6的API接口比較簡單,本文只介紹常用的API,開發(fā)人員如果有更多的需要可以直接在ThinkFrame/Api/Model里面看到所有的API接口。用戶API1、user_getInfo(uids,fields,format)描述:返回指定用戶的用戶信息,返回形式為一個(gè)數(shù)組參數(shù)說明:參數(shù)屬性空?說明uidsstring否用戶ID,彼此之間用逗號分割。fieldsstring否指定返回用戶的哪些信息。formatstr
24、ing是指定響應(yīng)返回的格式。有PHP(默認(rèn))、JSON和XML這三種值可選。調(diào)用Demo:$this-api-user_getInfo(1,2,name,email);(返回:array(2)0=array(2)name=string(6)劉偉email=string(13) HYPERLINK mailto: 1=array(2)name=string(6)哈哈email=string(10) HYPERLINK mailto:ttt ttt)$this-api-user_getInfo(1,2,name,email,json);(返回:string(94)name:u5218u4f1f,e
25、mail:,name:u54c8u54c8,email: HYPERLINK mailto:ttt ttt)注:目前field可選的字段為:id-用戶IDname-用戶姓名。handle-昵稱。sex-用戶性別,返回值為male或female。birthday-用戶出生日期,返回值為YYYY-MM-DD格式,例如1983-01-01blood_type-用戶血型。relationship_status-婚戀狀態(tài)。current_location-當(dāng)前居住地。hometown_location-家鄉(xiāng)。has_added_app-是否安裝了當(dāng)前應(yīng)用,返回0時(shí)表示沒有安裝,返回1時(shí)表示已安裝。adm
26、in_level-用戶權(quán)限信息。返回值為USER時(shí)表示普通用戶,返回為MANAGER時(shí)表示為管理員pic-用戶大尺寸頭像的地址(僅當(dāng)用戶頭像存在時(shí)返回)。pic_thumb-用戶中尺寸頭像的地址(僅當(dāng)用戶頭像存在時(shí)返回)。pic_small-用戶小尺寸頭像的地址(僅當(dāng)用戶頭像存在時(shí)返回)。2、user_getLoggedInUser()描述:獲取當(dāng)前登錄用戶的ID。參數(shù)說明:無調(diào)用DEMO:$this-api-user_getLoggedInUser();(返回:1)3、user_getLoggedInUserLevel()描述:獲取當(dāng)前登錄用戶的管理權(quán)限級別。返回值可能為USER(普通用戶)
27、、MANAGER(站點(diǎn)管理員)參數(shù)說明:無調(diào)用DEMO:$this-api-user_getLoggedInUserLevel();(返回USER)好友API1、friend_get($uid,$format)描述:獲取用戶的好友ID列表,如果uid為空則返回當(dāng)前用戶的好友ID列表,其中當(dāng)前用戶依靠APIuser_getLoggedInUser()函數(shù)來確定。參數(shù)說明:參數(shù)屬性空?說明uidint是用戶IDformatstring是指定響應(yīng)返回的格式。有PHP(默認(rèn))、JSON這2種值可選。調(diào)用DEMO:$api-friend_get();(返回:array(2)0=string(1)21=s
28、tring(1)3)2、friend_areFriends($uid1,$uid2)描述:返回兩個(gè)用戶是否為好友。是好友時(shí)返回1或true,不是好友時(shí)返回0或false。參數(shù)說明:uid1array第一個(gè)用戶的ID。uid2array第二個(gè)用戶的ID。調(diào)用DEMO:$api-friend_areFriends(1,2);(返回:true)積分API1、UserScore_setScore($uid,$credit)描述:設(shè)置用戶的積分參數(shù)說明:參數(shù)屬性空?說明uidint否需要積分操作的用戶IDcreditarray否積分操作數(shù)組,如:$creditaction=send_gift積分類型$c
29、reditactioncn=贈送禮品類型說明$creditscore=-100扣除100個(gè)積分$creditexperience=10增加10個(gè)經(jīng)驗(yàn)2、UserScore_getScore($uid,$type=score)描述:獲取用戶積分參數(shù)說明:參數(shù)屬性空?說明uidint否用戶IDtypevarchar否積分類型:score積分(默認(rèn)),experience經(jīng)驗(yàn)3、UserScore_checkScore($uid,$score_type,$value)描述:判斷用戶積分是否足夠參數(shù)說明:參數(shù)屬性空?說明uidint否用戶IDscore_typevarchar否積分類型:score積分
30、(默認(rèn))experience經(jīng)驗(yàn)valueint否要比較的積分?jǐn)?shù)為了方便操作,我們在核心公共方法庫里增加用戶積分操作的函數(shù):setUserScore($uid,$credit)$api=newTS_API();$array=array();foreach($creditcreditas$key=$score)$temp=$api-UserScore_checkScore($uid,$key,$score);$array=$temp=0?true:$temp;$credit_rule$key=$score;if(count(array_filter($array)!=count($array)r
31、eturnfalse;$credit_ruleaction=$creditaction;$credit_ruleactioncn=$creditactioncn;$credit_ruleinfo=isset($creditinfo)&!empty($creditinfo)?$creditinfo:actionsign了score分typecn;/操作積分$score_result=$api-UserScore_setScore($uid,$credit_rule);return$score_result;參數(shù)說明參數(shù)屬性空?說明uidint否需要積分操作的用戶IDcreditarray否積分?jǐn)?shù)
32、組,如:$testcreditscore=10;增加10個(gè)積分$testcreditexperience=10;/增加10個(gè)經(jīng)驗(yàn)$testaction=send_gift;/積分類型$testactioncn=發(fā)送禮物;/積分說明調(diào)用DEMO:$testcreditscore=10;$testcreditexperience=10;$testaction=send_gift;$testactioncn=發(fā)送禮物;$res=setUserScore($uid,$test);(返回:200成功404失敗)動態(tài)API1、feed_publish($type,$title_data,$body_dat
33、a,$appid)描述:動態(tài)發(fā)布方法,成功返回true,失敗返回false參數(shù)說明:參數(shù)屬性空?說明typestring否此條動態(tài)的類型title_dataarray否動態(tài)標(biāo)題數(shù)據(jù),此數(shù)組中的鍵值和對應(yīng)feed_template中title變量值body_dataarray是動態(tài)內(nèi)容數(shù)據(jù),此數(shù)組中的鍵值和對應(yīng)feed_template中body變量值,可選擇appidint是應(yīng)用ID調(diào)用DEMO:$title_datanum=1;$body_datapic=vimgsrc=style/default/logo.gif;$this-api-feed_publish(photo,$title_da
34、ta,$body_data);(返回:true)2、feed_get($map,$limit)描述:獲取動態(tài)方法,失敗返回false參數(shù)說明:參數(shù)屬性空?說明mapstring或array是查詢動態(tài)的條件limitint是返回的條數(shù)調(diào)用DEMO:$mapuid=$this-mid;/取我的動態(tài)$this-api-feed_get($map,10);(返回:array(3)0=array(2)title=string(51)劉偉v/a上傳了1張照片body=string(61)=array(2)title=string(51)劉偉上傳了1張照片body=string(61)=array(2)ti
35、tle=string(51)劉偉上傳了1張照片body=string(61)3、為應(yīng)用增加一個(gè)動態(tài)的步驟首先在后臺“高級=模板管理=動態(tài)模板”增加一個(gè)動態(tài)類型(即動態(tài)模板)然后在應(yīng)用里需要發(fā)動態(tài)的地方參考以下方法調(diào)用API增加動態(tài)就可以了/添加一條動態(tài)$body_datasrc=getUserFace($this-mid);$this-api-feed_publish(head,$title_data,$body_data);又如群組發(fā)表話題的動態(tài):/添加動態(tài)$title_dataactor=getUserName($this-mid);$title_datagid=$this-gid;$ti
36、tle_datagroup_name=$this-groupinfoname;$body_datatitle=msubstr($title,0,20);$body_datagid=$this-gid;$body_datatid=$tid;$this-api-feed_publish(group_topic,$title_data,$body_data,$this-appId,0,$this-gid);強(qiáng)調(diào)一下模板里自定義了多少個(gè)XXX,除actor和系統(tǒng)常量外,都需要賦值,否則會發(fā)意外而導(dǎo)致模板無法解析。注:actor會在程序里統(tǒng)一賦值,在增加動態(tài)時(shí)不需要重復(fù)賦值。通知API1、notify_
37、send($uids,$type,$title_data,$body_data,$url,$cate)描述:向一個(gè)用戶發(fā)送通知,發(fā)送的通知將被顯示到用戶通知頁面上。參數(shù)說明:參數(shù)屬性空?說明uidsstring或array否指定接收通知用戶的ID,如果是string的話,每個(gè)ID之間用逗號分割。typestring是通知的類型,比如phototitile_datastring是通知的標(biāo)題body_dataarray是通知的信息,以數(shù)組形式傳入,鍵值和模板中的相對應(yīng)urlstring是查看此條通知的urlcatastring是目前可選的是friend(好友請求),notification通知)【
38、默認(rèn)】,message(短消息)調(diào)用DEMO:$fuid=intval($_POSTmini_uid);$type=mini_comment;$title_datamini=strip_tags($_POSTmini_con);$body_datacomment=$_POSTcomment;$url_ROOT_./apps/mini/index.php?s=/Index/friends/uid/.$_POSTmini_uid.#Fli.$_POSTmini_id;$r=$this-api-notify_send($fuid,$type,$title_data,$body_data,$url);
39、(返回:true)2、notify_get($cate,$type,$pageLimit,$format)描述:向一個(gè)用戶發(fā)送通知,發(fā)送的通知將被顯示到用戶通知頁面上。參數(shù)說明:參數(shù)屬性空?說明catastring是目前可選的是friend(好友請求),notification通知)【默認(rèn)】,message(短消息)typestring是通知的類型,比如photopageLimitint是每頁顯示通知數(shù),默認(rèn)10條formatstring是指定響應(yīng)返回的格式。有PHP(默認(rèn))、JSON這2種值可選。調(diào)用DEMO:$this-api-notify_get(notification);(返回:ar
40、ray(2)0=array(2)title=string(24)評論了你的心情aaabody=string(62)PLMM!1=array(2)title=string(24)評論了你的心情aaabody=string(62)PLMM!)3、為應(yīng)用增加一個(gè)通知的步驟首先在后臺“高級=模板管理=通知模板”增加一個(gè)通知類型(即動態(tài)模板)然后在應(yīng)用里需要發(fā)通知的地方參考以下方法調(diào)用API增加動態(tài)就可以了:$uid=111,222;$type=gift_send;$titleuser=水上鐵;$bodyimg=$this-_realityImage($giftInfo);$bodycontent=t(
41、$sendInfosendInfo);$notify=$this-api-notify_send($uid,$type,$title,$body);評論API1、comment_notify($type,$data,$appid)功能說明發(fā)送通知。參數(shù)說明:typestring評論的類型。在模型里是$type._comment的形式的模型名稱appidint應(yīng)用注冊ID$dataarray數(shù)組。其中內(nèi)容必須都傳遞$datatoUid當(dāng)評論js回調(diào)函數(shù)執(zhí)行的時(shí)候傳遞過來的數(shù)組中的toUid$datauids評論主體的uid;$dataurl被評論頁面的完整url$datatitle_bodyco
42、mment通知的內(nèi)容$datatitle_datatitle被評論內(nèi)容的標(biāo)題$datatitle_datatype被評論應(yīng)用的中文名附件API1、attach_upload($attach_type,$options)參數(shù)說明:參數(shù)屬性空?說明attach_typestring是上傳類型,默認(rèn)為attach,可選photo,files,doc,(類型是任意的只是標(biāo)識來源,規(guī)則為應(yīng)用名類型)optionsarray是參數(shù)以數(shù)組傳入,可選值如下allow_exts:允許的后綴名,多個(gè)參數(shù)以逗號分隔。max_size:允許的文件最大值。save_path:自定義的路徑,必須是兀整的路徑。save_n
43、ame:自定義的文件名。增加了相冊關(guān)聯(lián)如果傳參$options里存在save_photo參數(shù)數(shù)組,則進(jìn)行相關(guān)操作。參數(shù)有:albumld保存到的相冊ID,只要傳這個(gè)參數(shù),就同時(shí)保存照片到該相冊女如$optionssave_photoalbumId=1new_albumboolean型,如果是true則新建相冊,不建議使用album_name新建相冊的名字,不建議使用返回值返回參數(shù)數(shù)組,status,info兩個(gè)參數(shù)$infostatus上傳成功為true,失敗為false;$infoinfo為照片信息數(shù)組,上傳失敗時(shí)為錯(cuò)誤信息字符串。分享API1、share_addShare($type,$a
44、imId,$data,$info,$purview,$fri_ids,$url)描述:插入一條站內(nèi)分享調(diào)用方法:$this-api-share_addShare($type,$aimId,$data,$info,$purview,$fri_ids);參數(shù)說明:參數(shù)屬性空?說明typearray否typetypeld分享類型IDtypetypeName分享類型名aimIdstring否分享內(nèi)容的IDdataarray否分享的信息,不同的類型的信息可不一樣,請參考附錄1infostring是描述purviewint是0:所有人,1:所有好友,2:私密(后面的可擴(kuò)充)fri_idsarray是同時(shí)通知給好友的IDurlstring是分享的通知里的去看看網(wǎng)址返回值說明:1成功0失敗-1已經(jīng)分享-2分類出錯(cuò)-3內(nèi)容為空-4不能分享自己的東西2、share_getShareNum($uid=null)描述:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年工業(yè)地產(chǎn)有償轉(zhuǎn)讓協(xié)議
- 2024年度南京二手房交易合同
- 2024年度水果交易合同模板
- 【初中生物】病毒教學(xué)課件2024-2025學(xué)年人教版生物七年級上冊
- 2024年度法律服務(wù)委托合同
- 2024年度工程監(jiān)理合同標(biāo)的及服務(wù)內(nèi)容具體描述
- 2024年工程勞務(wù)分包補(bǔ)充協(xié)議
- 2024個(gè)人向公司借款合同范本(簡單版)
- 2024冷卻塔填料生產(chǎn)工藝優(yōu)化合同
- 2024年度CFG樁基工程水土保持合同
- GB∕T 17888.3-2020 機(jī)械安全 接近機(jī)械的固定設(shè)施 第3部分:樓梯、階梯和護(hù)欄
- 房顫健康宣教課件
- 人教版八年級上Unit 6 I'm going to study computer science1 Section A (1a-1c)教案
- 一年級下冊數(shù)學(xué)教案 - 四 牧童-認(rèn)識圖形:《重疊問題》 青島版
- 家用電器常見認(rèn)證標(biāo)志一覽匯總(精選.)
- DB37 5155-2019 公共建筑節(jié)能設(shè)計(jì)標(biāo)準(zhǔn)
- 五年(2018-2022年)高考全國卷英語試題考點(diǎn)分析
- 試驗(yàn)室組織機(jī)構(gòu)圖
- T∕CSRME 001-2019 巖石動力特性試驗(yàn)規(guī)程
- 從農(nóng)業(yè)機(jī)械化到農(nóng)業(yè)信息化、自動化與智能化
- 云南省計(jì)量檢定機(jī)構(gòu)計(jì)量檢定收費(fèi)標(biāo)準(zhǔn)doc-云南省計(jì)量檢定
評論
0/150
提交評論