




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、WEBCMS SYSTEM DESIGN日期說明作者備注2005-09-02本文給出了CMS系統(tǒng)的整體結(jié)構(gòu)和具體功能及操作格式的設(shè)計(jì)。Eric新建2005-09-08對(duì)TAG的定義和數(shù)據(jù)對(duì)象CMS的定義做了細(xì)化和整理Eric2005-09-08增加允許指定任意文件或目錄上載到遠(yuǎn)程服務(wù)器任意目錄中功能Eric2005-09-08對(duì)PROJECT最終生成WEBSITE時(shí)的資源目錄轉(zhuǎn)換進(jìn)行定義Eric2005-09-08定義了變量目錄及其傳遞方法和文件參數(shù)傳遞及使用方法Eric2005-09-09對(duì)GALLERY對(duì)象進(jìn)行了修改使之可以實(shí)現(xiàn)自動(dòng)生成多頁(yè)Eric2005-09-18增加了對(duì)資源屬性文件的
2、定義Eric2005-09-19將Object_Url的屬性名稱由url修改為cms索引系統(tǒng)架構(gòu)功能與界面資源與模板自定義TAG模板制作與使用目錄操作文件參數(shù)傳遞系統(tǒng)目標(biāo)系統(tǒng)的目標(biāo)是實(shí)現(xiàn)一種CMS系統(tǒng),這種系統(tǒng)將WEB頁(yè)面的數(shù)據(jù)和顯示格式分離,可以讓頁(yè)面格式設(shè)計(jì)者和數(shù)據(jù)操作者分別容易的操作和變更其各自相關(guān)部分,并且通過某種操作方法可以任意的組合頁(yè)面模板和要顯示的數(shù)據(jù)集合,最終允許自動(dòng)生成一個(gè)靜態(tài)HTML網(wǎng)站,并自動(dòng)發(fā)布到遠(yuǎn)程網(wǎng)站上,并且能夠?qū)Χ鄠€(gè)網(wǎng)站進(jìn)行同步。系統(tǒng)架構(gòu)本CMS系統(tǒng)的主要構(gòu)成部分和之間的關(guān)系如下圖所示。遠(yuǎn)程上載系統(tǒng)本系統(tǒng)的主要功能是將指定的資源,比如文件、圖像、視頻等同步更新到一
3、個(gè)或多個(gè)目標(biāo)主機(jī)上,類似FTP上載的功能,但是要求使用程序調(diào)用的接口來(lái)完成。上載時(shí)要注意速度、錯(cuò)誤處理和易用性等方面。上載系統(tǒng)分為兩部分,一部分是整站上載,一部分是可以指定單獨(dú)上載一個(gè)多個(gè)文件或目錄到指定位置。目前情況目前只實(shí)現(xiàn)了PROJECT到FTP-WEBSITE和LOCAL-WEBSITE的整站上載功能。頁(yè)面生成系統(tǒng)本系統(tǒng)的目標(biāo)是,通過指定媒體資源和其屬性以及對(duì)模版的匹配最終生成靜態(tài)/動(dòng)態(tài)的HTML頁(yè)面。遠(yuǎn)程管理系統(tǒng)該系統(tǒng)完成對(duì)遠(yuǎn)程基于WIN/LINUX系統(tǒng)的管理,包括對(duì)系統(tǒng)的目錄創(chuàng)建、刪除、數(shù)據(jù)上載下載、數(shù)據(jù)訪問、修改等。類似于一個(gè)WEBFTP系統(tǒng)或WEBLINUX系統(tǒng)。該系統(tǒng)是為了方
4、便的對(duì)遠(yuǎn)程目標(biāo)資源進(jìn)行管理。該系統(tǒng)應(yīng)該提供統(tǒng)一管理功能,即能同時(shí)登陸多個(gè)網(wǎng)站對(duì)目標(biāo)同時(shí)進(jìn)行管理。目前情況目前只實(shí)現(xiàn)了對(duì)遠(yuǎn)程FTP資源進(jìn)行瀏覽的功能。資源管理系統(tǒng)本系統(tǒng)要求方便的管理媒體資源,對(duì)媒體資源的更新,變更,添加,刪除等都有比較方便的操作。并且允許對(duì)大量資源進(jìn)行管理。同時(shí)對(duì)資源要求有各種屬性管理以及提供統(tǒng)一的資源定位標(biāo)志以便于與模版內(nèi)容連接。系統(tǒng)也應(yīng)該允許連接遠(yuǎn)程資源,在線編輯遠(yuǎn)程系統(tǒng)資源,以擴(kuò)充系統(tǒng)資源管理能力。目前情況目前只實(shí)現(xiàn)了對(duì)各種資源的上載、下載、刪除、修改名稱等基本操作。模版管理系統(tǒng)本系統(tǒng)用于制作和管理各種模版。模版中需要變更的部分需要使用替換標(biāo)識(shí)表示出來(lái)。注意替換表示的靈活
5、和多樣性。目前情況目前只實(shí)現(xiàn)了模板語(yǔ)言中的命令語(yǔ)法,包括FOR/IF/NOTE/INCLUDE/LET幾個(gè)語(yǔ)句。用戶管理系統(tǒng)本系統(tǒng)的使用者包括數(shù)據(jù)管理者,模版管理者,項(xiàng)目管理者,系統(tǒng)管理員等多個(gè)角色,對(duì)應(yīng)不同的角色,他們可以看到和允許操作的系統(tǒng)視圖是不同的,系統(tǒng)應(yīng)該提供一個(gè)包含權(quán)限設(shè)置的用戶管理系統(tǒng)以確保上面的需求可以實(shí)現(xiàn)。目前情況目前此部門還沒有開始考慮。系統(tǒng)的數(shù)據(jù)關(guān)系WEBSITE 定義WEBSITE的HTTP訪問和數(shù)據(jù)管理途徑,比如FTP接口等。DATABASE 具備唯一性的原始數(shù)據(jù)使用基于樹型結(jié)構(gòu)存放的管理系統(tǒng)。RESOURCE 對(duì)DATABASE的各種不同映射,包含了資源的訪問順序,
6、有效期等設(shè)置。TEMPLATE 定義HTML頁(yè)面內(nèi)嵌的RESOURCE資源的顯示樣式。PROJECT 定義WEBSITE結(jié)構(gòu),同時(shí)集成TEMPLATE和RESOURCE資源,然后按照數(shù)據(jù)和顯示的定義自動(dòng)生成最終的靜態(tài)頁(yè)面系統(tǒng),并發(fā)布到指定的WEBSITE資源上去。WEBSITE的定義對(duì)于WEBSITE我們需要了解的內(nèi)容包括URL地址,IP地址,HTTP端口,F(xiàn)TP端口,F(xiàn)TP用戶名和密碼,F(xiàn)TP初始目錄等信息。有了這些信息,一方面我們可以方便的訪問這些資源,也可以通過其FTP接口對(duì)網(wǎng)站資源進(jìn)行更新等管理。DATABASE定義我們需要建立一個(gè)樹型目錄,然后允許各種數(shù)據(jù)資源以樹型結(jié)構(gòu)被保存在這個(gè)D
7、ATABASE數(shù)據(jù)庫(kù)系統(tǒng)中。存放到DATABASE數(shù)據(jù)庫(kù)中的數(shù)據(jù)最終應(yīng)該有一個(gè)唯一的URI路徑來(lái)訪問對(duì)應(yīng)的數(shù)據(jù),以保證其中的數(shù)據(jù)訪問唯一性。并且我們應(yīng)該記錄這些資源被引用的情況,以便當(dāng)對(duì)資源的位置進(jìn)行變更時(shí),相應(yīng)的關(guān)聯(lián)關(guān)系也可以被手動(dòng)或自動(dòng)更新。對(duì)于資源中的某一節(jié)點(diǎn),我們同時(shí)會(huì)提供這個(gè)節(jié)點(diǎn)的相關(guān)信息用于對(duì)這個(gè)節(jié)點(diǎn)進(jìn)行詳細(xì)描述。RESOURCE定義RESOURCE實(shí)際上是DATABASE在不同項(xiàng)目上的資源映射。一個(gè)RESOURCE資源可以是一個(gè)DATABASE的資源的連接,也可以是外部的一個(gè)資源連接。不同RESOURCE資源可以引用相同的DATABASE資源。RESOURCE的存在為DATABA
8、SE提供了一種多視圖管理的手段。一個(gè)RESOURCE可以包含各種不同的圖象,視頻,文字的組合,并且其中的元素可以有不同的提取順序和開關(guān)狀態(tài)。TEMPLATE定義TEMPLATE定義HTML頁(yè)面的各種顯示布局和樣式。為一個(gè)TEMPLATE替換不同的RESOURCE,可以讓其顯示不同的數(shù)據(jù)內(nèi)容。PROJECT定義我們把一個(gè)在生成網(wǎng)站時(shí)邏輯上屬于一個(gè)網(wǎng)站的目錄結(jié)構(gòu),TEMPLATE和RESOURCE等資源的組合稱為一個(gè)PROJECT。我們首先定義這個(gè)PROJECT的目錄結(jié)構(gòu),然后對(duì)PROJECT中各個(gè)頁(yè)面引用TEMPLATE和相關(guān)的RESOURCE,對(duì)他們進(jìn)行組合和設(shè)置。最終生成一個(gè)生成最終網(wǎng)站之前
9、的一個(gè)PROJECT項(xiàng)目。對(duì)這個(gè)PROJECT我們可以在其上運(yùn)行預(yù)覽和發(fā)布指令,生成轉(zhuǎn)換后的最終網(wǎng)站系統(tǒng)。功能與界面關(guān)于WEBSITE的管理WEBSITE可以在CMS中定義和管理,通過下面的WEBSITE管理界面,用戶可以輕易的在預(yù)先定義的幾個(gè)經(jīng)常訪問的網(wǎng)站中瀏覽網(wǎng)站。同時(shí),由于定義了WEBSITE的FTP/SMB等管理信息,我們同時(shí)還可以提供類似DATABASE樹型管理界面的通過FTP/SMB等協(xié)議來(lái)管理遠(yuǎn)程網(wǎng)站的管理界面。下面是定義一個(gè)WEBSITE的界面,主要包含網(wǎng)站的URL信息,網(wǎng)站的FTP訪問信息等。下面是對(duì)網(wǎng)站的瀏覽界面,系統(tǒng)可以方便的查看多個(gè)網(wǎng)站的當(dāng)前最新的顯示信息。系統(tǒng)還應(yīng)該提
10、供對(duì)每一網(wǎng)站的當(dāng)前狀態(tài)和使用信息的查詢,比如下面的情況,給出了sample1網(wǎng)站的基本信息,比如IP地址,F(xiàn)TP端口信息等,同時(shí)還可以獲得網(wǎng)站上資源的總數(shù),資源配額信息,以及當(dāng)前的同步狀態(tài)等。此外,如果能獲得此網(wǎng)站的運(yùn)行負(fù)載信息,比如CPU利用率,內(nèi)存使用量等,將會(huì)更好。這些信息對(duì)管理和查看網(wǎng)站當(dāng)前狀態(tài)都會(huì)有很大幫助。DATABASE管理系統(tǒng)下面是DATABASE的目錄管理的樹型結(jié)構(gòu)界面樣式,可以看出通過瀏覽器,管理員就可以容易的創(chuàng)建目錄,并在此目錄中上載文件。一些其它操作,比如刪除目錄,目錄改名,刪除文件,文件改名以及文件和目錄的移動(dòng)等都可以容易的實(shí)現(xiàn)。此外在DATABASE中,每一個(gè)資源都
11、包含對(duì)這個(gè)資源的一個(gè)詳細(xì)描述,以及這個(gè)資源被RESOURCE引用的關(guān)系信息。這里的資源,既可以是一個(gè)單一的文件,也可以是一個(gè)包含多個(gè)單一資源的目錄。下面是對(duì)應(yīng)一個(gè)文件或目錄顯示的其相關(guān)備注信息和被引用的關(guān)聯(lián)信息。DATABASE中每一個(gè)資源和每一個(gè)資源目錄都應(yīng)該包含類似下面內(nèi)容的關(guān)聯(lián)信息。RESOURCE的管理下面是添加一個(gè)RESOURCE的界面。我們可以看出,一個(gè)RESOURCE,其可以是URL,也可以是本地文件,也可以是目錄,同時(shí)也可以是一個(gè)DATABASE資源,也可以是對(duì)另一個(gè)RESOURCE的引用。并且可以包含多個(gè)不同類別的資源的引用??梢钥闯觯粋€(gè)RESOURCE就是一個(gè)各種資源的邏
12、輯集合。此外,對(duì)于某一指定RESOURCE,可以定義其中資源的讀取順序,其中的順序包括“隨機(jī)讀取”,“按時(shí)間Schedule”,“按名稱排序”,“按時(shí)間排序”,“最新的排在最前邊”,“順序讀取”等。利用RESOURCE的這個(gè)屬性,可以實(shí)現(xiàn)在最終網(wǎng)頁(yè)上按一定規(guī)律動(dòng)態(tài)顯示RESOURCE中的資源。TEMPLATE的管理下面是一個(gè)TEMPLATE的定義和管理界面。一個(gè)TEMPLATE包含兩大部分,一個(gè)是VIEW,另一個(gè)是OBJECT,其中VIEW表示只涉及界面顯示樣式和格式的定義,而OBJECT表示內(nèi)嵌到這個(gè)VIEW中的數(shù)據(jù)集合。當(dāng)為一個(gè)TEMPLATE的VIEW設(shè)置OBJECT時(shí),顯示如下配置信息
13、 上面的配置中,數(shù)據(jù)集合是一個(gè)RESOURCE的集合,并且包含對(duì)這些RESOURCE數(shù)據(jù)顯示順序的一個(gè)規(guī)定。PROJECT的管理下圖是對(duì)PROJECT的管理界面,通過這個(gè)PROJECT界面,擁護(hù)可以輕易的定義一個(gè)網(wǎng)站的物理結(jié)構(gòu)。并且可以對(duì)其中的目錄和HTML文件等進(jìn)行方便的編輯和管理。在編輯每一個(gè)PROJECT文件時(shí),其屬性包含如下信息。在PROJECT中還應(yīng)該提供對(duì)屬于TEMPLATE中的VIEW資源進(jìn)行預(yù)覽,以查看其經(jīng)過裝載OBJECT數(shù)據(jù)后的顯示界面樣式。網(wǎng)站同步當(dāng)有了PROJECT后,就可以將PROJECT與指定的WEBSITE資源進(jìn)行同步。同時(shí)某WEBSITE被同步后,還可以設(shè)置其與
14、其它網(wǎng)站的同步。下面首先是定義同步時(shí)間策略,我們把同步時(shí)間定義看成是一組資源的定義,這樣我們可以方便的選取和變更各種同步策略。同步可以包含一次同步,定期同步等,同時(shí)也可以設(shè)置同步時(shí)是否覆蓋相同的資源,是否刪除不被同步的目標(biāo)網(wǎng)站上的資源。同步策略定義好后,我們就可以定義以某個(gè)PROJECT或WEBSITE為原始網(wǎng)站,然后定義其要同步的目標(biāo)網(wǎng)站組以及同步策略。在提供整站同步功能的同時(shí),系統(tǒng)還提供一個(gè)工具,允許指定任意一個(gè)或多個(gè)數(shù)據(jù)或目錄上載到遠(yuǎn)程服務(wù)器的指定目錄中。系統(tǒng)的功能大致如下面界面所示:資源與模版上面通過系統(tǒng)界面原型大致介紹了一下系統(tǒng)主要功能。下面我們具體定義各種配置文件和TAG規(guī)范信息。
15、配置文件格式定義通用配置文件refer := 給出所有使用本資源的實(shí)體列表 對(duì)于DATABASE類型數(shù)據(jù),可引用它的包含 RESOURCE,TEMPLATE和PROJECT類型實(shí)體。stat := OPEN|CLOSE 關(guān)閉狀態(tài)表示資源不可用open := <N> 給出當(dāng)前資源使用者的數(shù)量,0表示沒有人在使用time : = create_time,edit_time,access_time create_time := 表示本數(shù)據(jù)創(chuàng)建的時(shí)間 edit_time := 表示被數(shù)據(jù)被編輯的時(shí)間 access_time := 表示本數(shù)據(jù)最后訪問的時(shí)間user := create_use
16、r,edit_user,access_user create_user := 表示數(shù)據(jù)創(chuàng)建者 edit_user := 表示最后編輯者 access_user := 表示最后使用者<configuration> <stat>OPEN|CLOSE</stat> <refers> <refer>resource:/res_name1/path/name1</refer> <refer>resource:/res_name2/path/name2</refer> <refer>resource
17、:/res_name2/path/name2</refer> </refers> <open>4</open> <access_log> <create time="2005/08/31 20:00:00" uname="wangl1"/> <edit time="2005/08/31 22:20:00" uname="light"/> <access time="2005/09/01 08:23:10"
18、uname="light"/></access_log></configuration>上面的配置在每個(gè)資源中都應(yīng)該有記錄。<<< DATABASE資源定義 >>>o URI定義data:/database_name/path1/path2/pathn/data_name其中data : 為關(guān)鍵字,表示被URI指向的是一個(gè)DATABASE類型database_name : 為本database的名稱。 此名稱是一個(gè)指代,實(shí)際上可能是來(lái)自不同數(shù)據(jù)源。比如 ftp:/user:namehost:port/ smb
19、:/user:namehost:port/ ldap:/user:namehost:port/ 具體的database_name有專門的定義模塊pathn/ : 此處的path為目錄值。data_name : 此為最終的數(shù)據(jù)文件名稱,支持通配符DATABASE資源被分為如下幾類IMAGE, TEXT, VIDEO, URL,DATAIMAGE OBJECT <xml><object mode=”image” > <title url=""> </title><descr url=""><!
20、CDATA></descr><alt></alt><url></url><width>200</width><height>200</height></object></xml>IMAGE OBJECT方法CMS.Image 直接返回Image文件的URLCMS.Image.alt返回xmlNodeContent(/xml/object/alt)CMS.Image.url 返回xmlNodeContent(/xml/object/url)CMS.Image.
21、width返回xmlNodeContent(/xml/object/width)CMS.Image.height返回xmlNodeContent(/xml/object/height)CMS.Image.title返回xmlNodeContent(/xml/object/title)CMS.Image.title.url返回xmlNodeContent(/xml/object/title/url)CMS.Image.descr返回xmlNodeContent(/xml/object/descry)CMS.Image.descr.url返回xmlNodeContent(/xml/object/d
22、escry/url)URL OBJECT<xml><object mode=”url” > <title url=""></title><descr url=""></descr><url></url></object></xml>URL OBJECT方法CMS.Url直接返回 URL 地址CMS.Url.title返回xmlNodeContent(/xml/object/title)CMS.Url.title.url返回xmlNode
23、Content(/xml/object/title/url)CMS.Url.descr返回xmlNodeContent(/xml/object/descr)CMS.Url.descr.url返回xmlNodeContent(/xml/object/descry/url)VIDEO OBJECT <xml><OBJECT mode=”video” > <title url=""></title> <descr url=""><!CDATA></descr> <url&
24、gt;</url><width></width><height></height></OBJECT></xml>VIDEO OBJECT方法CMS.Video直接返回 VIDEO 的 URLCMS.Video.url返回xmlNodeContent(/xml/object/url)CMS.Video.width返回xmlNodeContent(/xml/object/width)CMS.Video.height返回xmlNodeContent(/xml/object/height)CMS.Video.title
25、返回xmlNodeContent(/xml/object/title)CMS.Video.title.url返回xmlNodeContent(/xml/object/title/url)CMS.Video.descr返回xmlNodeContent(/xml/object/descr)CMS.Video.descr.url返回xmlNodeContent(/xml/object/descry/url)TEXT OBJECT<xml><OBJECT mode=”text” > <title url=""></title><
26、descr url=""><!CDATA></descr></OBJECT></xml>TEXT OBJECT 方法CMS.Text直接返回 TEXT 的 URLCMS.Text.title返回xmlNodeContent(xml/object/title)CMS.Text.title.url返回xmlNodeContent(xml/object/title/url)CMS.Text.descr返回xmlNodeContent(xml/object/descr)CMS.Text.descr.url返回xmlNodeCon
27、tent(xml/object/descr/url)DATA OBJECT <xml><OBJECT mode=”data”> <title url=""></title><descr url=""><!CDATA></descr><age></age><city></city><addtime></addtime></OBJECT></xml>DATA OBJECT 方法CM
28、S.Data直接返回DATA的URLCMS.Data.age返回xmlNodeContent(xml/object/age)CMS.Data.city返回xmlNodeContent(xml/object/city)CMS.Data.addtime返回xmlNodeContent(xml/object/addtime)CMS.Data.title返回xmlNodeContent(xml/object/title)CMS.Data.title.url返回xmlNodeContent(xml/object/title/url)CMS.Data.descr返回xmlNodeContent(xml/o
29、bject/descr)CMS.Data.descr.url返回xmlNodeContent(xml/object/descr/url)系統(tǒng)默認(rèn)所有的CMS對(duì)象屬性和方法關(guān)鍵字大小寫都不敏感<<<RESOURCE資源定義 >>>RESOURCE文件以“.cms”作為結(jié)尾引用格式為cms:/resourcename/path/name.cms其中cms:/為保留字NAME OBJECT<xml><OBJECT mode=”name”><name cms=”data:/root/kkk/*/”/><name cms=”d
30、ata:/root/kkk/image/*.jpeg”/></OBJECT></xml>當(dāng)url以”/”結(jié)尾時(shí),表示取目錄名稱,否則表示取文件名稱。NAME OBJECT 方法CMS.Name返回與通配符對(duì)應(yīng)的名稱CMS.Name(2)返回第二個(gè)name通配符名稱OBJECT OBJECT這個(gè)對(duì)象用來(lái)表示一組含有讀取順序和讀取個(gè)數(shù)的資源集合OBJECT資源對(duì)DATABASE資源的引用同一個(gè)目錄下的某一特定文件data:/database1/path1/path2/pathn/data_name不同目錄下相同位置的圖片data:/database1/path1/pa
31、thn/*/large/01.jpegdata:/database1/path1/pathn/*/small/01.jpegdata:/database2/path1/pathn/*/small/02.jpeg同一目錄下的所有子文件data:/databaseN/path1/path2/pathn/path_name/*不同目錄下的多個(gè)文件data:/databaseN/path1/path2/pathn/*/small/*.jpeg<xml><OBJECT mode=”object” > <title url=""></title
32、><descr url=""></descr><object> <video cms="db:/db_name1#sort(name)”/> <image cms="db:/db_name1#sort(random),num(2)”/> <image cms ="db:/db_name2#sort(schedule),num(2)”/> <url cms ="db:/db_name2#sort(random),num(4)”/> <data
33、 cms ="db:/db_name2#sort(random),num(4)”/><text cms ="db:/db_name2#sort(random),num(4)”/><name cms =”data:/dataname/root/bbb/*/”/><object cms ="res:/res_name2#sort(random),num(4)”/></object></OBJECT></xml>其中sort := +/-TIME|+/-NAME|+/-SIZE|RANDOM|
34、SCHEDULE|SEQOBJECT OBJECT 方法CMS.TitleCMS.Title.urlCMS.DescrCMS.Descr.urlCMS.Image()可以展開Image對(duì)象屬性方法CMS.Video()可以展開Video對(duì)象屬性方法CMS.Text()可以展開Text對(duì)象屬性方法CMS.Url()可以展開Url對(duì)象屬性方法CMS.Data()可以展開Data對(duì)象屬性方法CMS.Object()可以展開Object對(duì)象屬性方法多重對(duì)象的定位方法CMS.Image(1)訪問第一個(gè)Image對(duì)象CMS.Image(2) 訪問第二個(gè)Image對(duì)象CMS.Image(1)(1) 訪問第一
35、個(gè)對(duì)象中的第一個(gè)圖象文件的URLCMS.Image(2).title(3)返回第二Image對(duì)象中的第3個(gè)title屬性值GALLERY OBJECT<xml> <OBJECT mode=”gallery”> <title url=""></title> <descr url=""></descr> <object><video cms ="db:/db_name1#sort(name)”/><image cms ="db:/db_n
36、ame1#sort(random),num(2)”/><image cms ="db:/db_name2#sort(schedule),num(2)”/><url cms ="db:/db_name2#sort(random),num(4)”/><data cms ="db:/db_name2#sort(random),num(4)”/><text cms ="db:/db_name2#sort(random),num(4)”/><object cms =”res:/res_name1/name
37、#sort(random),num(4)”/></object> <range begin="” end="”/> <page row=” col=”/><page output=”indexCMS.Page.no.html”/> 或 </OBJECT></xml>GALLERY OBJECT 方法CMS.titleCMS.title.urlCMS.descrCMS.descr.urlCMS.Image()可以展開Image對(duì)象方法CMS.Video()可以展開Video對(duì)象方法CMS.Url()
38、可以展開Url對(duì)象方法CMS.Text()可以展開Text對(duì)象方法CMS.Data()可以展開Data對(duì)象方法CMS.Object()可以展開Object對(duì)象方法CMS.Page.row返回一頁(yè)中GALLERY行數(shù)CMS.Page.col返回一頁(yè)中GALLERY列數(shù)CMS.Page.begin()判斷是否為第一頁(yè)CMS.Page.end()判斷是否為最后一頁(yè)CMS.Page.no()返回當(dāng)前頁(yè)序號(hào)CMS.Page.num()返回總頁(yè)數(shù)CMS.Anchor.main顯示跳轉(zhuǎn)回主頁(yè)的URLCMS.Anchor.next顯示跳轉(zhuǎn)到下一頁(yè)的URLCMS.Anchor.prev顯示跳轉(zhuǎn)到前一頁(yè)的URL系
39、統(tǒng)默認(rèn)所有的CMS對(duì)象屬性和方法關(guān)鍵字大小寫都不敏感<<< TEMPLATE制作 >>>TEMPLATE文件以“.chtml”作為結(jié)尾TEMPLATE文件的引用格式為chtml:/templatename/path/name.chtml其中”chtml:/”為保留字TEMPLATE實(shí)際上就是一段HTML代碼,其中使用了CMS對(duì)象的各種屬性和方法。同時(shí)還使用了CMS自定義TAG作為特殊的控制或引用、注釋等功能。下面是一個(gè)例子:<table border="1" width="100%" height="1
40、00%"><CMS FOR="BEGIN" FROM="1" TO="CMS.Page.row"/> <tr> <CMS MODE="NOTE">Here Have some CMS Code</CMS> <CMS FOR="BEGIN" FROM="1" TO="CMS.Page.col”/><td width="20%"><IMG SRC=”CMS.
41、Image” BORDER=”0”></IMG></td> <CMS FOR="END"/> </tr><CMS FOR="END"/></table>如果一個(gè)TEMPLATE中要包含多個(gè)不同的CMS對(duì)象,我們使用CMS(ID).Object來(lái)區(qū)分。同時(shí)在引用CMS對(duì)象文件時(shí),要使用ID標(biāo)識(shí)符,比如<CMS INCLUDE=”default.cms” ID=”id1”/><CMS INCLUDE=”index.cms” ID=”id2”/>下面表示使用上
42、面兩個(gè)資源文件中index.cms資源文件作為CMS對(duì)象的TEMPLATE代碼<IMG SRC=”CMS(id2).Image” BORDER=”0”></IMG><<< PROJECT的使用 >>>PROJECT文件的結(jié)尾可能是如下之一“.html”,”.htm”,”.php”下面是引用了兩個(gè)模版的HTML文件,其中第一個(gè)模版還使用了兩個(gè)RESOURCE資源文件index.html<HTML><HEAD></HEAD><BODY><CMS INCLUDE=”chtml:/temp
43、late/t1.chtml”><CMS INCLUDE=”cms:/cmsname/1.cms” ID=”t1”/><CMS INCLUDE=”cms:/cmsname/2.cms” ID=”t2”/></CMS><CMS INCLUDE=”chtml:/template/t2.chtml”><CMS INCLUDE=”cms:/cmsname/2.cms” ID=”r1”/></CMS></BODY></HTML>系統(tǒng)在定義INCLUDE對(duì)象時(shí),會(huì)給其賦予一個(gè)唯一的ID值,這個(gè)值用來(lái)區(qū)分具有
44、相同文件類型的多個(gè)文件被同時(shí)包括進(jìn)某一文件中的情況。下面是這個(gè)文件的GUI編輯界面PROJECT屬性頁(yè)其中TargetRoot表示PROJECT在轉(zhuǎn)換到WEBSITE上時(shí),被放置的根目錄。TargetImageRoot表示PROJECT中圖象等引用資源被放置的位置。當(dāng)TargetRoot=”/Discuz”,并且TargetImageRoot=”/Images”時(shí),表示所有PROJECT動(dòng)態(tài)生成的HTML等靜態(tài)文件將被放到/Discuz目錄中,同時(shí)各種圖象,視頻等文件將被放置到以/Images/為根的目錄中。自定義TAG<<< TEMPLATE的TAG定義 >>&
45、gt;這里我們定義存在于TEMPLATE中的預(yù)定義TAG,這些TAG用來(lái)標(biāo)識(shí)將來(lái)會(huì)被替換的位置。TAG定義的原則是1保證瀏覽器在顯示時(shí),不會(huì)影響未定義TAG的部分。2TAG應(yīng)該允許出現(xiàn)在HTML中的任意位置,并且允許任意細(xì)的粒度。3TAG應(yīng)該很容易的被發(fā)現(xiàn)和替換為目標(biāo)數(shù)據(jù)。TAG定義類別1引用外部文檔<CMS INCLUDE=” ID=”/>2取得對(duì)象值CMS.Object2.1替換對(duì)象值<CMS SET=”CMS.Object.Target = CMS.Object.Source”/>3循環(huán)<CMS FOR=”BEGIN” FROM=” TO=”/><
46、;CMS FOR=”END”/>4條件判斷<CMS IF=”BEGIN” TRUE=”/><CMS IF=”ELSEIF” TRUE=”/><CMS IF=”ELSE”/><CMS IF=”END”/> 6注釋<CMS MODE=”NOTE”></CMS>系統(tǒng)默認(rèn)所有的自定義TAG大小寫都不敏感o 引用外部文檔<CMS INCLUDE="File.cms" ID=”id”/>其中ID屬性是可選項(xiàng),當(dāng)為同一個(gè)TEMPLATE文件加載多個(gè)cms文件時(shí),需要使用ID屬性來(lái)區(qū)分不同cms文件中
47、的對(duì)象。如果只使用一個(gè)Cms到TEMPLATE文件中,則這個(gè)ID屬性可以省略掉。o 替換對(duì)象可以使用的CMS替換對(duì)象包括CMS的屬性和函數(shù),對(duì)CMS對(duì)象屬性的引用,使用CMS.Object.value的格式,對(duì)CMS對(duì)象函數(shù)的引用,使用CMS.Object.foo()的格式。當(dāng)對(duì)對(duì)象中多個(gè)相同屬性進(jìn)行引用時(shí),需要使用下標(biāo),例如CMS(1).Object(2).value(4)表示使用ID標(biāo)識(shí)為1的cms資源中的第2個(gè)Object對(duì)象的第4個(gè)屬性值。舉例IMAGE定義<img src="Winter.jpg" width="50" height=&q
48、uot;50" alt="Winter.jpg"><IMG SRC="CMS.Image" WIDTH="$CMS.Image.width" HEIGHT="CMS.Image.height" ALT="CMS.Image.alt">譬如,如果只想調(diào)用資源文件中的圖象對(duì)象,但是圖象的高和寬想自定義,則可以按如下顯示<IMG SRC="CMS.Image" WIDTH="50" HEIGHT="40" A
49、LT="CMS.Image.alt">上面語(yǔ)句表示,調(diào)用CMS資源中的圖象資源,并且圖象的ALT屬性使用CMS資源中與圖象對(duì)應(yīng)的ALT屬性內(nèi)容。并且每個(gè)圖象都按寬50,高40來(lái)顯示。如果圖象的全部屬性都想使用CMS資源中的定義,可以按如下方法調(diào)用<IMG SRC="CMS.Image" WIDTH="CMS.Image.width" HEIGHT="CMS.Image.height" ALT="CMS.Image.alt">舉例TEXT定義<p align="c
50、enter">Title</p><p align="center">This is a detail Description</p><p align="center"><input type="button" value="Button" name="B1"> <p align="center">This is CMS.Text() content</p>o 替換對(duì)象值使用如下
51、命令可以替換CMS對(duì)象中的值<CMS SET=”CMS.Object.Target = CMS.Object.Source”/>o 循環(huán)循環(huán)TAG為<CMS FOR=”BEGIN” FROM=” TO=”/><CMS FOR=”END”/>舉例TABLE定義下面是描述一個(gè)TABLE的方法<table border="1" width="100%" height="100%"><CMS FOR="BEGIN" FROM="1" TO="
52、;CMS.Page.row"/> <tr> <CMS MODE="NOTE">Here Have some CMS Code</CMS> <CMS FOR="BEGIN" FROM="1" TO="CMS.Page.col”/><td width="20%"> <IMG SRC=”CMS.Image()” BORDER=”0”></IMG><!- display content of CMS.Vide
53、o(),CMS.Image(),CMS.Text()CMS.Url(),CMS.Data()-> </td> <CMS FOR="END"/> </tr><CMS FOR="END"/></table>o 條件判斷條件判斷TAG為<CMS IF=”BEGIN” TRUE=”/><CMS IF=”ELSEIF” TRUE=”/><CMS IF=”ELSE”/><CMS IF=”END”/>舉例ANCHOR定義<CMS IF="B
54、EGIN" TRUE="CMS.Page.begin()"/> <A HREF="CMS.Anchor.next">next</A> <A HREF="CMS.Anchor.main">main</A><CMS IF="ELSEIF" TRUE="CMS.Page.end()/> <A HREF="CMS.Anchor.prev">prev</A> <A HREF="CM
55、S.Anchor.main">main</A><CMS IF="ELSE"/> <A HREF="CMS.Anchor.next">next</A> <A HREF="CMS.Anchor.prev">prev</A> <A HREF="CMS.Anchor.main">main</A><CMS IF="END"/>舉例STATUS獲取<CMS IF="BE
56、GIN" TRUE="CMS.Page.begin()"/> This is the 1st page<CMS IF="ELSE"/> This is NOT the 1st page<CMS IF="END"/>You are viewing page $CMS.Page.no() / $CMS.Page.total()o 注釋定義NOTE定義<CMS MODE="NOTE">Here Have some CMS Code</CMS>此內(nèi)容僅為顯示模
57、版時(shí)做注釋使用,正式生成HTML頁(yè)面時(shí)被CMS TAG包含的內(nèi)容 ” Here Have some CMS Code” 將被去掉。模版制作與使用下面給出一些實(shí)際應(yīng)用例子例1 顯示一個(gè)1x4 圖象BANNER/image/snapshot/snapshot1.jpeg/image/snapshot/snapshot2.jpeg/image/snapshot/snapshot1.jpeg.xml<xml><object mode=”image” > <title url="">TEXT BOOKS</title><descr
58、 url=""><!CDATAthis is a data zone></descr><alt>"TEXT BOOKS"</alt><url></url><width>200</width><height>200</height></object></xml>cms:/resource/snapshot.cms顯示/image/snapshot/目錄下最新的4個(gè)圖片資源<object mode=”ob
59、ject” name=”banner”> <image cms ="data:/aaa/image/snapshot/*.jpeg#sort(-TIME),num(4)"/></object>chtml:/template/snapshot.chtml<table border="0" width="100%" height="142" cellpadding="0"><tr> <CMS FOR=”BEGIN” FROM=”1” TO=
60、”4”/><td width="25%" height="136"><p align="center">CMS.Image.title<img src="CMS.Image.title" width="CMS.Image.width" height="CMS.Image.height" alt="CMS.Image.alt">CMS.Image.descr</p><CMS FOR=”END”/&g
61、t;</td> </tr></table>snapshot.html<HTML><HEAD></HEAD><BODY><CMS INCLUDE=”chtml:/template/snapshot.chtml”><CMS INCLUDE=”cms:/resource/snapshot.cms”></CMS></BODY></HTML>例2 顯示一個(gè)2x5 文字BANNER/url/banner/banner_text1.xml<xml><
62、;OBJECT mode=”url” > <title url="/cgi-bin/website?name=aaa">aaa</title></OBJECT><OBJECT mode=”url” > <title url="/cgi-bin/website?name=bbb">nnn</title></OBJECT><OBJECT mode=”url” > <title url="/cgi-bin/website?name=ccc&qu
63、ot;>kkk</title></OBJECT><OBJECT mode=”url” > <title url="/cgi-bin/website?name=ddd">pppp</title></OBJECT></xml>RESOURCEcms:/resource/banner1.cms<url url="data:/aaa/url/banner/banner_text1.xml"/>TEMPLATEchtml:/template1/banner_text1.chtml<CMS INCLUDE=”cms:/cmsname1/banner1.cms”/><table border="0" width="100%" cellspacing="0&q
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司高層聘用合同范例
- 鄉(xiāng)村振興土地合同范本
- 公司人員責(zé)任合同范例
- 個(gè)人建筑倉(cāng)庫(kù)合同范例
- 木板吊頂施工方案
- 公司資產(chǎn)抵押合同范例
- 農(nóng)村修公路養(yǎng)殖合同范例
- 買賣石渣合同范例
- 全國(guó)授權(quán)合同范例
- 買村證房合同范本
- 2019版外研社高中英語(yǔ)選擇性必修二Unit 1 Growing up 單詞表
- (高清版)輻射供暖供冷技術(shù)規(guī)程JGJ142-2012
- 重慶危險(xiǎn)性較大的分部分項(xiàng)工程安全管理實(shí)施細(xì)則
- 三菱 PLC FX2N-4AD 4DA 模擬量模塊教材(課堂PPT)
- 有機(jī)金屬化學(xué)1
- JIT標(biāo)準(zhǔn)作業(yè)作業(yè)指導(dǎo)書
- 土壤固化土施工技術(shù)導(dǎo)則
- VAR模型Johansen協(xié)整檢驗(yàn)在eviews中的具體操作步驟及結(jié)果解釋
- 混凝土面板堆石壩接縫止水
- 加油站法律法規(guī)符合性評(píng)價(jià)
- 錨索錨桿計(jì)算表格(含下滑力及錨桿錨索受力及伸長(zhǎng)值計(jì)算)
評(píng)論
0/150
提交評(píng)論