下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CMS模塊化開發(fā)什么是CMSCMS是ContentManagementSystem的縮寫,意為“內容管理系統”。CMS具有許多基于模板的優(yōu)秀設計,可以加快網站開發(fā)的速度和減少開發(fā)的成本。CMS的功能并不只限于文本處理,它也可以處理圖片、Flash動畫、聲像流、圖像甚至電子郵件檔案。CMS其實是一個很廣泛的稱呼,從一般的博客程序,新聞發(fā)布程序,到綜合性的網站管理程序都可以被稱為內容管理系統。根據不同的需求,CMS有幾種不同的分類方法。比如,根據應用層面的不同,可以被劃分為: 重視后臺管理的CMS 重視風格設計的CMS 重視前臺發(fā)布的CMS等等。就目前已經存在的各種CMS來說,最終界面上都是大同小
2、異,但是在編程風格與管理方式上來講卻是相差萬別。就CMS本身被設計出來的出發(fā)點來說,應該是方便一些對于各種網絡編程語言并不是很熟悉的用戶用一種比較簡單的方式來管理自己的網站。這雖然是本身的出發(fā)點,但由于各個CMS系統的原創(chuàng)者們自己本身的背景與對“簡單”這兩個字的理解程度的不同,就造成了現在沒有統一的標準群雄紛爭的局面。我們所熟悉的CMS系統應有的基本模塊在進行WEB系統開發(fā)中,最常用到的功能模塊有以下幾種: 下載管理(download)系統 文章管理(article)系統 圖片管理(picture)系統當然,另外仍然有許多業(yè)務模塊在應用中得到廣泛應用,比如會員管理系統、權限管理系統等等,它們與
3、基本模塊相互協作,共同構成強大的CMS系統,這與本文所描述的系統開發(fā)思想并不沖突。而在模塊的通用性及可擴展性上來講,我們只擇選一些具有廣泛代表意義的來進行描述。為什么使用模塊化進行CMS系統的開發(fā)?模塊化開發(fā)的好處在于:1 .子系統無關性。我們這里所描述的子系統無關性指:在一個CMS系統中相應的子系統(相應模塊)不進行相互制約與影響,這體現在當一個子系統(相應模塊)崩潰時,不至于影響到其它模塊的正常運行。2 .高效協同開發(fā)。團隊開發(fā)過程中,由于子系統的無關性,每個團隊小組或者團隊成員負責自己的子系統開發(fā),而無須關心其它子系統。達到高效分工協同開發(fā)的目的。3 .可擴展性。由核心系統統一管理,很輕
4、松在原系統的基礎上開發(fā)擴展模塊及相應的插件,如評論、留言板及添加子系統(功能模塊)。使用模塊化開發(fā)的前提是,你必須有一個很好的前期規(guī)劃,做好基本資源倉庫的資料收集及搭建統一核心管理平臺。單一入口應用程序概述為什么這里會講到單一入口?這與我們的核心管理平臺有很大的關系。我們需要一個統一、標準的核心管理平臺來支撐整個系統平臺的運作,這是模塊化開發(fā)的基礎。什么是單一入口應用程序?在解釋什么是單一入口應用程序之前,我們先來看看傳統的web應用程序。list.php列表程序view.php內容顯示程序這兩個頁面不但分別實現了兩個功能,還成為了應用程序的兩個入口。所以單一入口的應用程序實際上就是說用一個文
5、件處理所有的HTTP請求。例如不管是列表功能還是內容顯示程序功能,都是從瀏覽器訪問特定的文件。這個特定的文件就是這個應用程序的單一入口。單一入口的處理方式:當服務器收到一個http請求時,會解析此請求,并決定訪問那個文件。如現在我們看看通過單一入口程序的處理方式。發(fā)現,實際上默認執(zhí)行文件(一般為index或者default)執(zhí)行了二次整理解析,我們可能實現的程序如下:1 |?Php2 requireonce(rrinclude/class,base»phprr);$app=newapp();4app->run();5?|其中class.base.php文件可能有如下程序:<
6、;?phpClassbase(Var$mod;Var$file;Functionget_module()(/getmoduleFunctonget_file()(/getfileFunctionrun()(Require_once($this->mod.$this->file);?>那么我們很可能將執(zhí)行結果定位于module/article/list.php,由list.php程序來進行相關操作。當然,對于一個安全、健壯的系統來說,上面的處理方式明顯過于簡單,我們只是以實例說明。那么OK,同學們會說,單一入口,對我們有什么好處嗎?那么我們說一下其優(yōu)勢:因為所有的執(zhí)行操作都由一
7、個文件去進行維護,進行管理,那么我們很輕易的對全局系統進行安全檢測,核心類庫的布署及相應的過濾。當我們添加一個模塊時,我們僅僅需要在我們規(guī)劃的相應目錄下添加相應程序就OK。當然,它也是有一定缺點的,任何事物都是兩面性的。你在使用單一入口時,你必須對整體框架有一個長期的規(guī)劃,這點是需要技術和經驗的積累才能完成的。你在后續(xù)的程序寫作中添加一些東西到index.php文件中也未嘗不可,但我并不建議在已存在的執(zhí)行文件中添加或者刪除(刪除絕對不允許的)一些功能,這有可能會影響到或者改變我們系統設計之初的一些思想,甚至背離了我們的初衷。模塊化CMS結構應用前者我們提到了在CMS開發(fā)過程中的一些基本模塊,本
8、文就以這些為例。早在2005年四月份,筆者發(fā)布了phpsohov1.0,這個系統原來的設想是設計一個強大的平臺,通過單一入口,進行多個系統的聚合,但最后由于種種原因被遺棄了。這個系統應用了模塊化及單一入口,大家可以到網上搜索一下源碼。OK,話轉回來,我們開始詳細講述模塊化CMS的設計應用。在此文中,我們以應用視角分布講解,著重講以后臺為主的CMS設計,因為前臺的靈活多樣性,我們可以有很多種方案去處理。我們布署文件目錄:demoadmindata.driverimagesincludeGnodulet-emplateadmin,phpajax.phpctk.phpglobal,phpindex,
9、phplogin,php首先從后臺的單一入口講起。在管理系統中,我們使用了單一人口的模式進行項目模塊的管理,功能而產生的。admin.php文件即是為此我們在admin.php文件中,對http請求執(zhí)行了二次解析,在getAdminModuleJobFile函數中,我們進行了模塊定位工作。通過這個函數,我們可以很輕松的把類似于http:定位干/module/article/admin/add.php當然,在此文件中,我們還執(zhí)行了另一情況檢查:admin.php?act=login。這是一個例外,只有我們在執(zhí)行l(wèi)ogin及l(fā)ogout操作時,act才會存在。Admin.php可能文件如下所示:1
10、<?php2ob_stai:t(1ob_gzhandlEi:1&&3t81:七(;3define(lPHPSOHD_SYSTEMl,true);4require_otLce(include/config*incphp):requii:e_orLce(ROOTPATH."/include/function.phprr);6require_once(ROOTPATH.1/admin/global.php1);7if(act=(Login1)8header("Location:adnin.php;file=loinrr;101112Module=inNodu
11、leJobFile($nod);1314專file=ffile?tile:1indeK1;155jobFiles=rrmodule/EileJ.php"1617!file_existsjobFiles)&&exit廠對不起,相應文件不存在1r18requireoncejobFiles);1920'functiongetAdninModuleJobFile($bck1='cm3')21(=*mod?($aod='cm3'?1':$mod):111;23if($mcidule)24(25If|!file_exists(MOD
12、_PATFi.rr/(niodule)r,)2627module=R0CT_PATH.r,/!$nodule>/aduLirLr'26)29else30(31module=HOD_FATH.rr/module/admiii,r;32)33134else3536Module=R00T_PATH.rVa(iainrr;3736returnModule;39402>Top頁面對我們的整個通過admin.php的描述,應該很輕松的了解我們這次設計的基本理念了。/admin目錄對于我們來說,僅僅是提供一個初始的平臺界面,當然。管理系統來說是很重要的。目錄結構如下:/二加m。/Iadm
13、int?im5_Itemplatenl白訃虱.php函index,php我們通過index.php分別載入top、left、right框體頁面,index.php文件可能如下:1 |?Php2 if(l$action3 (4 includetemplateindexrr);5 16 itaction='top')7 1Bincludetemplate(rradnin_voprr);910ifSaction='menu')111ZincludeteuplateC*adnin_inenurr);13)14if(WactigN-nain")15t16incl
14、udetenpla'Ce(rradnLrL_iiiainfr);17118?|那么我們知道,此次系統的關鍵在于module目錄中,此目錄存放了我們所根據系統平臺開發(fā)的相應模塊。如下圖:module6-article,Ldownloadt,1亡jpicture我們以article模塊進行實例操作。在article的模塊目錄下,我們做以下目錄布署:module上口articleadminli1include莊jLcibal.phpnflsql.class,php二星國圍3虎國國圍EaCPadd.phpauditing.phpdrop.phpedit,phpindex.Jitmlleft.p
15、hpli與匕phptrash.phpinclude它國global.phpdisql.cl&ME.phpajax.phpcategory,phpdisplay,phpindax.php顧名思義,admin目錄是此模塊(article)模塊的管理程序,此目錄中文件的相應功能大家通過文件名就可以看得出來,不再一一進行解說。Include目錄主要為模塊前臺所需要的公共文集。相對于比較陌生的是cp文件夾,那么這個文夾是干什么的呢?OK,讓我們打開此文件夾,里面的文件可能如下:ajax,phpcategory,phpdisplay.phpindK.phpucs33igLELF廣L.里面只有四個文
16、件,且這四個文件一一對應了模塊根目錄下的文件。想明白這個文件目錄的用處,還須從我們設計中心思想講起。比如說我們在一個CMS系統中需要這樣一些頻道:財經新聞、體育新聞、娛樂新聞等等。不難發(fā)現,這些頻道有一個共性:他們都屬于文章系統的范疇,而不同的僅僅是他們的表現形式(前臺模板)的差異。那么我們有必要反復的進行書寫相似或者說相同的代碼嗎?有沒有一種方案使我們能夠很好的利用已有的資源進行循環(huán)利用呢?答案是肯定的。于是,頻道設計理念被我們引入到當前實例中來。我們假設channel-13同為文章模塊(module/article)中的分支頻道,那么,我們可以使用它的執(zhí)行流程如下圖所示:在cp/index
17、.php文件中,我們執(zhí)行以下程序:1 <?php2 require_onjce(1.*/glohal.php1);5channeldir=basenate(dimame(_FILE_);4 tequii:e_orLce(MODULE_PATH.rTarticle/index.php");5 Q我們引入了前臺的全局文件global.php,并且根據相應的一些參數得到了$channeldir(頻道所屬目錄),將系統執(zhí)行解析程序定位在此module/article/index.php,其它類似,改變的只是定位的執(zhí)行程序而已。那么有一點我們可以確定,我們必須有一個channeldir這
18、個變量存在,而這個變量是通過URL剖析后得到的。設計思想清晰了,我們制定這么一個流程出來,以應付我們的需求:系統管理中心X海加新頻道聶道名稱二頻道關徒字:聶道描述二游道類型二©兼統內部舞道顆道使用的功格筏型;新聞模塊叛道目錄;只能是英文0外方柒道新聞模塊下載模塊圖片模塊添飆后就嚴瞄改.錄入后當此頻道準備鏈接到網站中閑其他滎尊時,話使用這種方式口舞道模板二鏈撞地址:L疵面面默板,ig當然,我們這些模塊是已經錄入到數據庫中的,比如我們可能存在著這么幾個數據表:注:表結構已經精簡,只為描述思想而定,如果實際使用,請按相應系統設計需要改變。DROPTABLEIFEXISTScms_iaodu
19、le'createcoble'cm3!_m0dule*(idintunsignednotnullautoincnemennaaevatchat(50)notnull,sinvatchai:(50)notnull,enablecopyint(1)notnull,primarykey(id)fkeysign(sign)rh;DROPTABLEIFEXISTS'cas_chanxiel'2 createtable'cxschaiuiel'3 (idintunsignednotnullmutO_inctenBirt,namevarchar(50)notn
20、ullxoduleidincunsignednotnul1,templateidint(3)notnull,channeldirvarchai(100)notnull,primarykey(id)tL0|j;我們已經了解了模塊與頻道之間的對應關系,接下來,一切都變得容易多了?;剡^頭來,看我們的后臺文件操作流程:我們的后臺管理頁面為框架結構,分為top,left,right三個框體。在top程序處理中,我們可以通過數據得到我們已經設定的頻道(這里不是模塊,而是頻道)。模塊并不能直接用來操作,而必須依賴于頻道的基礎上進行相應的操作。我在后臺中已經添加系統管理中心-頻道管理設置12Articlesa
21、rticle新聞模塊23Downbaddownload下載模讀上圖中的的兩個頻道,分別隸屬于新聞模塊、下載模塊。如下圖:Articles|菜單緊統管理臼幫助Download|起蛤頁系統設置網站核心配置E更新網站首頁管理員設置囹頻道管理設置友皆健接管理友情鏈接管理模板管理S模板方案管理囹更新模棱羲存囹模塊模板管理系裝信息服務器操作標PHP版本:GD版本:IP庫版本:那么當我們點擊top中的Articles鏈接時,可能會給出這樣的地址:http:現在很清晰了,系統二次解析后,執(zhí)行的是module/article/left.php,其中channelid參數為正整數。菜單幫助日文章管理泰加文章審核文
22、章國管理文章0回收站經目管理添加欄目0營理欄目匚叛道設置頻道資料設置國美聯鏈接管理日擴展管理國評論管理現在回頭看看我們的article/admin中的操作,left.php文件很忠實的沒有做任何處理,只是列出了一些菜單列表,但它們有一個共同點,就是將$channelid=int傳遞給了相應的操作程序。點擊添添加文章之后,鏈接指向了admin.php?channelid=int&mod=article&file=add,我們可以很清晰的看出來,由module/article/admin/add.php來執(zhí)行指令的處理操作了。在add.php文件中,我們執(zhí)行了如下操作:11?php
23、Eequire_onc&(rrincLu.de/global.phprf);3if()4(S內容略6include七已叩latE;78elself($do=-'post*)9(10處理過程略11)12else13(14die(rrEEEOE;rr);1516?l由于圖片大小所限,我略去了操作過程。這里引入了global.php,此文件作用在于:1 .判斷相應頻道所屬模塊2 .得到相應頻道目錄3 .權限判斷如下圖所示:1<?php<channelid&&die(r,<spanstyle=1color:red1</spatL>r,);3
24、 這里執(zhí)行權限判斷4 /7!permissiarL&&die("Error;56_channel_uache_file=C_T*rcache/chaimel_(channelid)*php";file_exlsts_channel_cache_flie)0updare_channal($channelidj;Srequire_once_channel_cache_file);910r,/cjlotoal.inc.phprr);1112?>其它文件操作思路同上。到此為止,后臺的操作思路已經完成。其它模塊類似,不一一說明。前臺模塊處理對于前臺模塊,我們怎么
25、進行操作呢?前臺設計同樣是我們需要也必須考慮的問題。那么我們怎么在現在的系統站進行擴展呢?我們需要的是:1 .只調用我們使用的數據2 .盡量的無關性模板設計3 .簡單的操作我們有很多選擇,在前端的模板表現方面,如著名的smarty、phplib它們各自有各自的特點,這里不一一講述。一般情況下,這些模板都允許使用php函數,而根據我們的需要,我們可以很輕松的以模塊加載的方式來完成前臺模板的設計。我選擇了輕便小巧的discuz論壇系統的模板。當然,對它進行了一些小小的改造。由于一些原因,不能發(fā)布其源碼,不過,可以提示大家的是,你只需要將(tempiate-prereplace(l,r/n,liHa
26、tEipvtags(1,11)r(t.empiate);這行源碼復制,然后在適當的位置COPY入,然后俏微修改,就能很方便的使用了。比如:fteuplatepEecr_replace(,¥/load_module3+a+?)MlnSrtT/ie3,r,*'stripvtags1M?>n!z11),rr;我們只是將eval改成load_module就可以使用dz的模板調用自定義的PHP函數了。當然,你不改也沒有關系,你可以通過eval來調用。我只是出于一種習慣而已。拿兩個文件來舉例:1 .網站首頁文件(/index.php)2 .文章系統首頁文件(/module/arti
27、cle/index.php)實際上,在后臺創(chuàng)建頻道的過程中,根據我們輸入的條件,已經產生了/article目錄,里面的文件就是我們上面所述module/article/cp目錄下的所有文件。下圖所示首頁文件代碼:tetjuireonce('global.php');:eetjuireoncet'include/load_tags,php1);l$IMG_FATH=DOCUFENT_PATH.images/.$_config'defaulttemplatt1;.includetemplate(f,index,r);?>你會感到很奇怪嗎?在首頁文件里面,我們什
28、么都沒有做,但為什么我們能看到:一呷*.jyoniahTfOnlyZest|ArticlesDownloadMainMenuArticleCategories3jjwJJtvw3LinLJKaBSDSPerlStTdQwindowsSNews后OthersDownloadCategories序PeriaTd回NixHacking日Otherstest關于:L"*7負曩均黃的一些最近比較關注7層負載均衡口3如果“心流量耗盡了帶寬,我療則肯定吃不了兜著走口不一.eb負載均衡點值這段時間有點想玩玩臂時負羲均但是想想有點恐怖沒實施過,這種結果呢?那么請你看一下兩個源文件:TemplateZd
29、efaultZindex.htm及include/load_tags.php<DIVclass=box><H5>4hb3p;HocAtclclesihbsp<DIVclass>body><!-(loadl_Mdule10ad_artic1e("td=article£tC=listJdoxschaime11d=1en=2Stocder=hits>E5Cifiliniit=10r")-></DIV>C/DIV5<DIVclass=3ox><H5>&Hbsp;Ho匕D
30、osmloadsnbap;</H5><DIVcla33*body<!-(loadjmodxileload_dowiload(rrtd=dlGwnloadtf=ListL_boxichannelid=2*len=254ordeE=hit3DESC&linit=lQN')></DIV></DIV>圖片太小了,可能大家看不清:里面有一行代碼是這樣子的:<!-load_moduleload_article("td=article&tf=list_box&channelid=1&len=25&a
31、mp;order=hitsDESC&limit=10")->很顯示,我們執(zhí)行了外部的函數load_article,并且里面?zhèn)鬟f了一串字符,這個函數的內容如functionload_aEticle(Sparse)global專曲;parse_3t.r(Sparse);*.ichanneliddie("Error:channelsoutceworngrr);_channel_caehe_fi1e-C_T,'rcache/channtl_(?channelid)+php"!file_exists($_channel_cache_flie)&
32、&Update_channel(?channelid);lequire($_channel_cache_fi1e);older=folder?5Colder:rrtf,;?SQL=11SELECT?folderFROH-litou_article-WHERE1rr;(SQL,="AND'channelid'='Schannelid'andLtEa3h'O'and"auditing"='11rr;&SQL,*(order?”O(jiān)RbERBYfotdet":SQL,="limit
33、Hinitrr:query=$db->query(?5QL);whileres#di)->£ecch_ariaytfquery)(res'htmlEile1=5res'htmlfiles1?D_T.(_channel1channeldir1,date(rr/Y/ind/rrftes'posttime1),$re31id1¥rr.htmL":"dlflplay»php?ite>-aEticleAiteibid"(4Ees4id1),r;?res1Itiae1=date(rrm/dr?res1po
34、sttime1);$re3(1Ititle1=$len?gbsubstcresftitle'lDlen);res1title1;-“劃)$IMG_PATH=get_mig_path();<templatefile=;meludetemp1aceatefile);哈哈,這下你明白了吧,我們就是利用了在模板中執(zhí)行不同的函數,來進行調入相應的資料的。而$parse是做為一個字符串傳入的一組條件,我們可以通過parse_str函數來講此條件展來并按條件來調用數據及按條件把模板定位于不同的小模板中。下面是module/article/index.php源碼:1 <?php2 reqv
35、i:e_once(M0DR00T,rracticLe/include/sql,classTphprT);.二I4 tzequiEeonce(Tr+./include/load_tags.phprr;5 requireoncetMOD_ROOT.rTatticle/global.inc.pliprr);5?channelid=article:getChanneDirByChadir(channeldir);39 $_chaimEl_c&jchje_fiLe=C_T."cache/clianne1_$channelidJ.plip;!file_exists($_channeJ._
36、cache_Eile)&&updave_channel(channelid);11 include(S_charmel_cache_file);12 13 5IHG_PATH=D_T."images/".?_config1deEaultteaplate1;1415 5UEB_TITLE=$channel'nane'.fr-,r.$UEE_TITLE;16I1.1(tempiatefiles-4_channel1tpldir.*F/index*r;18includetemplate(templatefiles):1Q此文件模板同上。擴展我們系統
37、在系統固有模塊之外,我們有兩種擴展需求:1 .添加同基本模塊相同的模塊,如download2 .添加獨立模塊及與其它基本模塊關聯的插件模塊(如:評論,推薦,評星等等)關于第一點很容易理解,你只需要參閱以上分析的article模塊就可以做出來,但一定要記往,一定要在cms_module表中添加相應模塊。一般我們做開源或者以作品形式發(fā)布時,都會寫一個小的模塊安裝程序,如article_module_install.php,由此產生相應的數據到數據庫中。第二點,是我們根據模塊化開發(fā)思想又一大便利之處。比如,我們需要一個member模塊,此模塊參與了后臺管理,有自己的管理方式。比如我們需要對會員進行認
38、證,刪除,編輯會員。那么根據我們的admin.php入口文件,我們可以在根目錄,做以下目錄布署:member,(QadminI,'Iinclude&AA.phpdrop.php國電dit.php虛Ilist,phpincludelogin,phpregister,phpuser,php根據系統處理規(guī)則,當系統入口為以下之一時,系統自動匹配到/member/admin/*.php文件:admin.php?mod=cms&file=*Admin.php?file=*由于,我們就可以對member進行后臺管理,當然,你需要做的是在member/admin/目錄下做通配文件,如
39、global.php,里面進行權限及其它過濾檢測。系統前臺同基礎模塊。當然,用戶模塊一般是我們在做基礎開發(fā)時就已經考慮的,并且可能已經并入到了我們的開發(fā)計劃中。而其它如評論模塊同member開發(fā)思路一樣,我們需要做的可能更簡單。如,我們已經設計了相應插件模塊的表,當我們有新的插件模塊時,就更新到數據庫中,表結構可能如下:DROPTABLEIFEXISTS'das_hack_Kic(iule'iccteatetable'ciii3_hacR_aodule'17(idintunsignednotnullauto_incremenCjnamevarchai:(SOJn
40、otnull,Kiod_dii:varchar(50)notnull/21disenableint(1)notnull,simuiarytext,priifliarykey(id)】;25DROPTABLEIFEXISTS.C33EC:_channel、;二7createtable-CDS_hack_channel'28(hidintunsignednotnull.channelidincunsignednotnullfJ1key(hid,channelid)32);第一個表為插件模塊表,其中disenable為是否使用標記。第二個表為插件模塊與頻道關聯表,在添加(編輯)頻道時,我們可
41、以選擇現有的插件模塊是否與之關聯。如,article我需要一個評論關聯,而download并不需要。我們在開發(fā)這類插件模塊時,由于是配合其它程序工作的,前臺模塊往往只需要一個執(zhí)行文件。如在comment模塊中,前臺我只用了一個文件。在文章內容頁面的模板中添加以下語句:<divid="comment"></div>loadConmeiit=functionJ(varajax_url=M(lTEB_RDOT)coiiLiiiEnt./ajax.php?action=loadcojmentfi"r+rrchanneLid=$_chatmel1id
42、1;counnentResponsc=function(respouse)(doc(rrcoimenCr).innerHTHL=response.tesponseText;Request.sendGET(ajaxurl+r,r5;nocache=Fr+Math»rand0to(),conmentResponse;)一loadCouuuenc();完成對評論的載入。通過以下語句完成對文章評論的提交:<divid="formInput"style="display:block;">NickName:<inputname="
43、;poster"id="poster"size="15"style="color:#369"><!-if$_config'enablecommentcheckcode'->CheckCode:<inputid="chkcode"name="chkcode"size="8"style="color:#369"> <imgsrc="D_Tck.php"id=&q
44、uot;chkcodeImg"align="absmiddle"><!-/if-><br>CommentContent:<br><textareastyle="width:350px;height:80px;"name="content"id="content"></textarea><br><spanstyle="padding-left:120px;"><inputtype="
45、button"onclick="chkCommentInput()"value="PostComment"></span></div>postConnterLt-functionfvarpcst_url=frWEB_R00Tcoimeiit/ajax.pl*p?action=post£-r+"chamiH工c1uctiarnimd'&rr+rrcati(i=?_article1catid1一1.tn1十,ritemid=$itemid"vardstr="pos
46、ter=r,+doc(rFposter").value+hr£conteiit=rr+(ioc(r'content.Tr).value+r,£chkco(ie-M+doc(r,chJ:coderr)*valut;postRespouse=functionftu亨pon方(switcli(response,reapunseText)(caser,succes3hr;al已"L你的評的已經成功提交.管理員審核之后將含顯示在本奧面.謝謝你的邕doc(,rchcodeImgr,),stc="D_Tck+php?,r4-Tr£-nocacie=rr+lTattifrandom();djoe(,rpcstet,r).value=,rrr;doc(r'ccntenrrr).valuE=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)經濟在農業(yè)現代化的作用
- 現代文閱讀教學策略研究進展匯報-探索教育新紀元
- 生產現場的人性化管理與實踐
- 現代辦公環(huán)境下的金融服務優(yōu)化
- 公路交通安全設施施工方案
- 2023三年級數學下冊 六 認識分數第4課時 分一分(二)(2)說課稿 北師大版
- 2024年九年級語文下冊 第三單元 第11課 送東陽馬生序說課稿 新人教版001
- 2023四年級數學上冊 一 認識更大的數第4課時 國土面積說課稿 北師大版001
- Unit 2 Lesson 4 Againplease(說課稿)-2024-2025學年魯科版(五四學制)(三起)英語五年級上冊001
- 《2 叢林之美-電子相冊制作》說課稿-2023-2024學年清華版(2012)信息技術六年級上冊
- 最終稿(教學評一致)課件
- 每個孩子都能像花兒一樣開放
- 2023年廣東省深圳市八年級下學期物理期中考試試卷
- 《詩詞寫作常識 詩詞中國普及讀物 》讀書筆記思維導圖
- YS/T 34.1-2011高純砷化學分析方法電感耦合等離子體質譜法(ICP-MS)測定高純砷中雜質含量
- LY/T 2016-2012陸生野生動物廊道設計技術規(guī)程
- 單縣煙草專賣局QC課題多維度降低行政處罰文書出錯率
- 健康養(yǎng)生課件
- 混雜控制系統課件
- 運動技能學習原理課件
- 《QHSE體系培訓》課件
評論
0/150
提交評論