SupSite頁面文件與模塊關系說明_SupeSite教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!
      隨著版本的更新,模板文件可能有所增減,不過基本方法不變。大家舉一反三吧。
      適用SS/XS全部版本

      1,  SupeSite的模板文件和頁面的關聯

      SupeSite的模板文件和頁面url鏈接地址是有關聯的。大家可以打開templates/default目錄,可以發現其文件名都是有規律的。下面我會詳細說明文件名和鏈接地址的具體關系。
      下面列出的是templates/default里面的全部文件
      可以看到文件名都是有規律的,以bbs_開頭的都是論壇的頁面文件,以blog_開頭的都是日志的頁面文件,同理文件、商品、書簽、圖片的頁面都是一樣的規律。
      稍微懂點英文的人都可以看出,以論壇頁面文件為例,
      bbs_footer.html.php    代表論壇頁面的頁腳文件
      bbs_forumdisplay.html.php  代表論壇頁面的板塊列表
                             對應url地址http://域名?action_forumdisplay_fid_板塊編號.html
      bbs_header.html.php   代表論壇頁面的頭部文件
      bbs_index.html.php    代表論壇首頁文件         對應url地址http://域名/action_bbs.html
      bbs_viewthread.html.php  
      代表論壇帖子查看頁面   對應url地址http://域名/?action_viewthread_tid_帖子編號.html

      從上面可以看出,url地址其實和文件名是一致的
      再看日志的頁面文件
      其中有一個比較特殊的,就是blog_category.html.php,根據頁面英文單詞可以猜測為日志分類頁面,確實是!
      我們可以訪問日志的分類,http://域名?action_category_catid_日志分類編號.html,也和文件名吻合。
      其他文件、商品、圖片、書簽頁面和日志是一模一樣的。
      資訊頁面有2個特殊的,news_view.html.php  news_viewcomment.html.php
      根據英文可以判斷是資訊查看頁面,和資訊評論查看頁面。
      其對應的url地址分別是http:/域名?action_viewnews_itemid_資訊編號.html
      http://域名/?action_viewcomment_itemid_資訊編號.html


      下面的圖片是站點的相關文件
      同樣,根據上面的方法可以很快得出,分別是站點的公告頁面、頁腳、頭部文件、站點友情鏈接、登陸、站點地圖、快捷面板、投票、注冊、搜索、安全問答、tag、tag查看全部頁面、腳印頁面
      Spaces_開頭的都是空間頁面,分別是個人空間分類頁面、個人空間頁腳、頭部、首頁。


      搞清楚了上面的文件和對應頁面url訪問鏈接關系之后,我們來接著看具體頁面里的模塊。
      以站點首頁為例,我們可以很快定位他對應的文件頁面是templates/default/index.html.php

      2,如何讀懂模塊代碼

      這個部分網點也說明過,大家可以看看http://www.discuz.net/thread-456494-1-1.html

      首先需要說明的是SupeSite全部頁面的信息都是通過模塊來進行匯集的。你所看到的頁面的每條內容都是利用SupeSite后臺的模塊功能創建并提取出來的。通過SupeSite的模塊功能,您可以將X-Space、Discuz!的幾乎全部內容都可以提出出來。
      具體的創建模塊代碼,大家可以到SupeSite站點設置――模塊功能里面進行創建,全過程都是采取的向導模式,非常簡單,Sup也做過一個視頻教程,大家可以看看http://www.discuz.net/thread-320058-1-1.html
      推銷下,如果您對SupeSite不了解,不妨多看看幫助文檔板塊的帖子,還有各個板塊的置頂貼,相信對您了解SupeSite/X-Space將很有幫助。
      下面我們來看一段最普通的模塊代碼,大家可以跟著我來讀懂他。
      <!--{blockname="category" parameter="type/news/isroot/1/ischannel/2/order/c.displayorder/limit/0,10/cachetime/25200/cachename/category_news/tpl/data"}-->

      SupeSite創建的所有模塊都具有下面的統一格式:
      1)  以<!--{blockname="開始,以"}-->結束
      2)  blockname=" "引號里面放的是模塊的類型,SupeSite的模塊類型都有固定的命名規則的。您可以這樣查看。
      登陸SupeSite站點設置――模塊功能――模塊列表,可以看到有下列基本模塊



      您可以將鼠標放置在任何一個基本模塊的名稱上,然后查看地址欄,都可以看到類似下面的url地址:

      http://域名/admincp.php?action=blocks&viewblocktype=spacenews&blocktype=spacenews&op=
      其中blocktype=spacenews這里就可以告訴您當前查看的模塊的類型是什么
      根據英文可以得出,spacenews就是資訊模塊
      同理其他模塊類型也可以很方便的知道。
      blocktype=category   系統分類模塊
      blocktype=spacenews  資訊模塊
      blocktype=poll       投票模塊
      blocktype=spaceblog   日志模塊
      blocktype=spaceimage  圖片模塊
      blocktype=spacefile    文件模塊
      blocktype=spacegoods  商品模塊
      blocktype=spacelink    書簽模塊
      blocktype=tag         TAG模塊
      blocktype=spacetag     TAG文章信息模塊
      blocktype=spacecomment   用戶回復模塊
      blocktype=userspace    個人空間列表模塊
      blocktype=announcement   站點公告模塊
      blocktype=bbsthread    論壇主題模塊
      blocktype=bbsannouncement   論壇公告模塊
      blocktype=bbsforum   論壇板塊模塊
      blocktype=bbslink    論壇友情鏈接模塊
      blocktype=bbsmember  論壇會員模塊
      blocktype=bbsattachment  論壇附件模塊
      blocktype=bbspost  論壇帖子模塊

      1)  parameter=""這里存放的就是各個模塊的具體篩選參數了,相同的模塊類型調出來的內容不同就是通過這里控制的,而這里的參數也是SupeSite/X-Space 模塊功能自動生成的。
      2)  type/news/isroot/1/ischannel/2/order/c.displayorder/limit/0,10/cachetime/25200/cachename/category_news/tpl/data
      這段就是模塊參數的篩選條件。這里由許多條件通過/組合起來。您稍微留心點,可以發現,上面的代碼通過/分成偶數段,從左至右每2段組成一個基本篩選條件,左邊代表篩選名字,右邊代表篩選條件
      例如上面的
      type/news  和/isroot/1 和ischannel/2 和order/c.displayorder 和limit/0,10 和cachetime/36800等都是一個獨立的基本篩選條件,
      我稍微解釋下:
      type/表示類型,右邊的/news表示資訊,所以type/news表示這個模塊取的內容來自資訊
      同理/isroot/1這個左邊isroot表示根分類,右邊1表示條件成立(這里1表示是,2表示否,下面的專題也是一樣),所以這個/isroot/1表示是根分類
      ischannel/2這個左邊表示是專題,右邊2表示不屬于專題。
      order/c.displayorder這個參數很重要,一般每個模塊都會有,這個代表的是排序的條件。
      Limit/1,10這個參數也很重要,一般每個模塊都會有,這個代表的是取的數據的條數限制,limit右邊的2個數字,左邊代表的是取的數據的起始行數,右邊代表取的數據條數,所以Limit/1,10就表示從第一行數據開始取10條數據。
      cachetime/25200表示的是緩存時間,單位為妙。所以這個就代表緩存時間是7小時
      SupeSite有強大的緩存機制,可以將全部數據進行緩存起來,有效的減少數據庫查詢,加快頁面的打開速度。

      如果您要了解更多,可以登陸站點設置――模塊功能――創建模塊,隨便進入一個創建模塊的頁面,查看源文件,就可以看到各個篩選條件對應的變量了
      以創建日志模塊為例,查看他的源文件:
      隨便截取一段,如下圖:

       
      其中黃色部分表示模塊變量的中文意思,藍色部分表示模塊變量,灰色部分表示其對應的取值。
      通過這種方法,您可以到各個創建模塊的頁面查看源文件,基本就能明白模塊代碼里面各個篩選條件是怎么來的,各自代表什么含義了。


      通過上面的說明,相信以后大家見到一段模塊代碼都知道怎么入手分析了



      3,  根據頁面查找模塊位置

      我對邊在SupeSite/X-Space官方站點http://x.discuz.net隨便截了一張圖片,如下圖:
      我們如何找到黃色區域的模塊代碼呢?對于不懂div+css的用戶來說,也可以很快確定的~

      首先,我們可以得到的直觀感覺就是他有15條記錄,并位于中間部位。
      接下來,根據上面的內容,我們很清楚這個頁面對應的文件是templates/default/index.html.php


      第三步,我們用記事本打開templates/default/index.html.php這個文件

      根據上面的模塊知識,我們可以得到黃色部分肯定存在的一個篩選條件limit/*,15/
      SupeSite的模塊一般都是從0開始的,所以您可以在文件中查找下limit/0,15/

      這樣,您就可以很方便的找到
      <!-- 1周回復熱點 -->
                           <!--{block name="spaceblog" parameter="dateline/604800/notype/1/order/i.replynum DESC/subjectlen/34/subjectdot/1/limit/0,15/cachetime/1/showspacename/1/cachename/newinfos/tpl/data"}-->

      如果他是唯一的,就說明您的模塊代碼找對了。如果不唯一,就可以再結合一點剛才說的模塊的知識和頁面的知識,也可以很快定位到具體的模塊代碼的。是不是很簡單呢?呵呵

      標準頁面里面的模塊提取的內容或許您不太滿意,同樣,利用剛才的模塊知識,您可以在讀懂了模塊調用的內容之后根據您自己站點的需求修改為您自己的模塊代碼。

      3,  修改模塊代碼適應自己站點
      以上面找到的模塊代碼為例:
      <!-- 1周回復熱點 -->
                           <!--{block name="spaceblog" parameter="dateline/604800/notype/1/order/i.replynum DESC/subjectlen/34/subjectdot/1/limit/0,15/cachetime/1/showspacename/1/cachename/newinfos/tpl/data"}-->

      大家可以自己到SupeSite站點設置――模塊功能――創建一個新的模塊并獲取模塊代碼替換這段模塊代碼。
      當然,如果您通過多次實踐,已經完全熟悉SupeSite的模塊參數說明,您也可以直接在這段模塊代碼中修改。
      一般大家修改的比較多的無非是條數、緩存時間這些參數,可以這樣修改:
      limit/0,15這里讀取的是從0行開始的15條數據,如果您需要8條數據,可以改為limit/0,8
      cachetime/1這里表示的是緩存時間為1妙,如果您嫌太短,需要設置為1小時,可以修改為cachetime/3600
      諸如此類。


      最后,我要說明的是,SupeSite模塊功能給了大家一個強大的自定義站點功能,從現在開始,您不再需要局限于標準程序的設計,通過靈活運用模塊功能,您可以利用SupeSite將站點內的數據,打造出千千萬萬種站點模式!

      官方原帖:http://www.discuz.net/thread-471184-1-1.html

      查看更多 supesite教程  supesite模板

      來源:模板無憂//所屬分類:SupeSite教程/更新時間:2009-11-24
      相關SupeSite教程