深入講解SiteServer CMS:模板嵌套

** 如果您覺得文章對您有點用,麻煩在您閱讀、收藏、轉(zhuǎn)發(fā)的時候,順手幫忙點個贊、留個言、加關(guān)注,這是我繼續(xù)寫下去的絕佳動力。**

上篇文章深入講解SiteServer CMS:創(chuàng)建站點以官方剛剛提供的一套模板為例實戰(zhàn)演練一遍SiteServer CMS如何通過站點模板來創(chuàng)建站點。今天詳細講解一下這個站點模板的具體模塊是如何使用SiteServer CMS的標簽語言(STL)嵌套出來的。

1、模板位置

如果都搞不明白模板文件在服務(wù)器上哪個位置,怎么修改?所以首先得搞明白這個問題。

第一步是要搞清楚SiteServer CMS系統(tǒng)安裝在服務(wù)器上什么位置,這個叫系統(tǒng)根目錄。這個自己安裝的比較清楚,如果是接手別人的項目,一個比較查看系統(tǒng)根目錄的辦法就是通過系統(tǒng)訪問地址到IIS里去查找站點,然后通過IIS設(shè)置里查看站點物理路徑即是系統(tǒng)根目錄。

第二步是搞清楚本站點的所有文件在服務(wù)器上什么位置,這個叫站點根目錄。具體辦法如下圖所示:

從上圖可以看到,模板站點:Milenko的站點文件夾就是Milenko,也就是說在系統(tǒng)根目錄下找到文件夾Milenko就等于找到了站點根目錄。

第三步就是了解SiteServer CMS系統(tǒng)本身對站點里的模板文件存放位置。SiteServer CMS 內(nèi)容管理系統(tǒng)本身的模板有四種(模板分類的內(nèi)容可以閱讀之前 的文章一步一步演示SiteServer CMS建站過程(二)),每種模板的文件對應(yīng)存放位置在:

總結(jié)一下上圖的規(guī)律就是:

  • 首頁模板:在站點根目錄下,系統(tǒng)默認叫:T_系統(tǒng)首頁模板.html
  • 欄目模板和單頁模板:在站點根目錄下的Template文件夾里,欄目模板系統(tǒng)默認叫:T_系統(tǒng)欄目模板.html
  • 內(nèi)容模板:在站點根目錄下的Template/Content文件夾里,系統(tǒng)默認叫:T_系統(tǒng)內(nèi)容模板.html

2、模板編輯

其實如果不知道模板存在服務(wù)器什么位置也是可以進行編輯的添加、修改、刪除操作的,只是作為研究一個系統(tǒng)來說,如果這都搞不明白也實在有點說不過去,對吧?

進到SiteServer CMS內(nèi)容管理系統(tǒng)后臺,進入如下界面:


從上圖可以看到,本站點所有模板有3個,分別是一個首頁模板、一個欄目頁模板和一個內(nèi)容頁模板。點擊任何一個模板名稱,即可進入該模板的編輯界面,如下圖所示:


從上圖就可以看到,得入首頁模板的編輯界面,編輯器里有類大部分是Html代碼,但又有小部分SiteServer CMS內(nèi)容管理系統(tǒng)的模板標簽語言Stl代碼,這就是模板內(nèi)容了。至于模板內(nèi)容上面的字段(模板文件、生成文件名、文件擴展名等)的具體含義,還是可以在之前的文章一步一步演示SiteServer CMS建站過程(二))里查閱到。

如果模板嵌套好了,只是簡單修改,可以通過這個編輯界面直接修改,然后保存,再到生成管理去生成相應(yīng)的頁面即可看到效果。

如果我們是重新做一個全新的模板,則應(yīng)該在這里新創(chuàng)建一個空白模板,然后用自己熟悉的開發(fā)軟件比如Atom、Visual Studio Code、Dreamwear等等,打開模板文件,把之前切好的靜態(tài)頁面拷過來放在這,然后一點一點進行模板標簽語言的替換嵌套,每修改一點點可以保存起來,然后生成頁面看嵌套效果,反復如此直到全部套完。

另外,打開欄目和內(nèi)容模板發(fā)現(xiàn)都是空的,表明本站點沒有使用欄目頁和內(nèi)容頁模板,也即本網(wǎng)站就只有一個首頁面。下面就詳細講講這個首頁模板的代碼吧。

3、首頁模板詳解

從上到下認為有必要解釋的地方進行代碼配套文字的方式進行講解。

<link href="{Stl.SiteUrl}/css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="{Stl.SiteUrl}/css/font-awesome.min.css" rel="stylesheet">
<link href="{Stl.SiteUrl}/css/style.css" rel="stylesheet" type="text/css">
<link href="{Stl.SiteUrl}/css/owl.carousel.css" rel="stylesheet" type="text/css">
<script src="{Stl.SiteUrl}/js/jquery.quovolver.min.js"></script>

以上代碼頁面頭部需要把相應(yīng)的資源文件比如css、js引進來,此時需要用到一個實體標簽{Stl.SiteUrl},意思就是站點根目錄的意思。

<title>{Stl.SiteName}</title>

上面代碼網(wǎng)頁的Title是通過調(diào)用實體標簽{Stl.SiteName}把網(wǎng)站名稱顯示在這里。

<span class="grey">{stl:value type=mingzi}</span>{stl:value type=gongsi}

上面代碼是要把下圖中紅色和黑色兩個位置的內(nèi)容通過stl:value標簽顯示出來:


而這兩部分的文字是在后臺站點屬性設(shè)置中進行管理的,如下圖所示:


只要修改上圖位置中的值,前臺就會跟著變化。可能你會有疑問,標簽里怎么知道type就是mingzi和gongsi呢?從上圖右邊的設(shè)置站點屬性,點擊進去你就會明白了,如下圖所示:


原來是給這個站點增加了兩個字段,字段名就是mingzi和gongsi。所以從這就可以大致理解SiteServer CMS系統(tǒng)(其實所有CMS建站系統(tǒng)都類似)的工作原理,那就是后臺定義好相應(yīng)的字段并進行內(nèi)容的管理,然后利用自定義的一套標簽語言,在不需要程序員的幫助下很方便的就能把內(nèi)容顯示到前臺相應(yīng)的地方上去。和其他系統(tǒng)不一樣的地方就是,SiteSever CMS并沒有限制或者說定義死后臺哪些字段就一定顯示在前臺哪個位置,而是模板嵌套人員很方便靈活地根據(jù)需要放在自己想要出現(xiàn)的地方。

一個很明顯的例子就是經(jīng)常有人問到SiteServer CMS后臺沒有管理友情鏈接的地方,如果理解到了剛才這個原理,就能很好解決這個問題了。那就是后臺隨意建一個欄目,把友情鏈接的內(nèi)容(標題、鏈接)發(fā)在此欄目下,然后前臺利用標簽把這個欄目下的內(nèi)容顯示到友情鏈接該顯示的位置即可。這和其他系統(tǒng)固定一個地方專門用于發(fā)友情鏈接的實現(xiàn)方式相比,是不是特別靈活自由?

<stl:channels groupChannel="nav" topLevel="0">
   <li class="active"><a href="{Channel.ImageUrl}">{Channel.Title}</a></li>
</stl:channels>

以上代碼是通過一個欄目標簽stl:channels把網(wǎng)站導航調(diào)用出來,具體顯示效果如下圖所示:


這里有兩個地方需要解釋一下。
第一個是后臺欄目這么多怎么決定哪些欄目會顯示在導航位置上?通過代碼groupChannel="nav" 可以看到,凡是屬于欄目組nav的欄目就會出現(xiàn)在這里了。而這是在后臺欄目管理的欄目編輯界面里進行設(shè)置的,如下圖所示的欄目組字段把nav選中即可。
第二個是如何控制點擊欄目名稱跳到頁面上某個位置?通過代碼:href="{Channel.ImageUrl}" 可以看到欄目名稱對應(yīng)的地址是在欄目圖片(ImageUrl)這個字段來管理的。如下圖所示房產(chǎn)預覽欄目對應(yīng)的就是#listed,意味著點擊房產(chǎn)預覽欄目將跳到id="listed"的控件位置。


<stl:contents channelIndex="我們" totalNum="1">
  <h2><span class="grey"><stl:content type="Title"></stl:content></span> 
     - <stl:content type="SubTitle"></stl:content></h2>
</stl:contents>

以上代碼是把欄目索引為“我們”(channelIndex="我們")的欄目的第一篇文章(totalNum="1")的標題(type="Title")和副標題(type="SubTitle")顯示到如下圖所示的紅色和白色位置:


欄目索引是在后臺欄目管理中可以查看到,如下圖所示:


通過上圖可以找到欄目“我們”,然后再到內(nèi)容管理中,把“我們”欄目第一篇文章打
開找到標題和副標題進行編輯即可控制前臺內(nèi)容:


<stl:contents channelIndex="我們" totalNum="1">
    <h3 style="color: #EFEFEF; text-align: center; font-size: 36px;">
      <stl:content type="slogan1"></stl:content>
    </h3>
</stl:contents>
<stl:contents channelIndex="我們" totalNum="1">
    <h3><stl:content type="slogan2"></stl:content></h3>
    <p>
         <stl:content type="slogan3"></stl:content> 
           <span style="display:block;">
             <stl:content type="slogan4"></stl:content>
           </span>
     </p>
</stl:contents>

以上兩段代碼是把欄目索引為“我們”(channelIndex="我們")的欄目的第一篇文章(totalNum="1")的slogan1、slogan2、slogan3、slogan4顯示到如下圖所示的位置:


一樣的,把“我們”欄目第一篇文章打開找到slogan1、slogan2、slogan3、slogan4四個字段進行編輯即可控制前臺內(nèi)容:


至于標簽代碼里的slogan1、slogan2、slogan3、slogan4怎么和上圖中的標題1、標題2、標題3、標題4對應(yīng)上的,則可以通過后臺的設(shè)置管理中的內(nèi)容字段管理,找到“我們”欄目的字段內(nèi)容即可,如下圖所示:


關(guān)于內(nèi)容字段的問題,可以在之前的文章深入講解SiteServer CMS:內(nèi)容模型里查閱到。

   <h2>
     <stl:channel type="keywords" channelIndex="房產(chǎn)預覽"></stl:channel>
        <span>
         <stl:channel type="description" channelIndex="房產(chǎn)預覽"></stl:channel>
        </span>
   </h2> 
<div id="owl-demo">    
  <stl:contents channelIndex="房產(chǎn)預覽">
    <div class="item">
     ![]({Content.ImageUrl})
        <div class="img-info">
          <h4><stl:content type="Title"></stl:content></h4>
        </div          
    </div>
  </stl:contents>
</div>

以上兩段代碼是把欄目索引為“房產(chǎn)預覽”(channelIndex="房產(chǎn)預覽")的欄目的keywords和description以及欄目下所有內(nèi)容顯示到如下圖所示的位置:


上圖上半部分是通過第一段代碼來實現(xiàn),具體數(shù)據(jù)是在后臺欄目管理中的“房產(chǎn)預覽”欄目的編輯界面中,如下圖所示的關(guān)鍵字列表和頁面描述字段:


左右滾動的圖片列表,是通過后臺內(nèi)容管理中的“房產(chǎn)預覽”欄目的管理界面,進入每篇內(nèi)容的編輯界面進行控制的,如下圖所示的標題和圖片字段:


再往下的代碼,都和這些講解類似,不同的可能就是內(nèi)容對應(yīng)的字段不同,原理是一樣的。通過本段的講解你會發(fā)現(xiàn)SiteServer CMS模板嵌套的兩個關(guān)鍵點:對后臺系統(tǒng)的熟悉以及對模板標簽語言Stl的熟練運用。前者是讓你知道哪些數(shù)據(jù)應(yīng)該存儲在哪更合理,后者是把數(shù)據(jù)顯示到前臺頁面的關(guān)鍵。

以上所有標簽的具體用法可以參考官方網(wǎng)站STL使用幫助

開心一笑

男:老板,你這兒洗澡多少錢?
店老板:男浴池10元,女浴池100。
男:你搶錢啊。。。
店老板:我的意思是,你想去男浴池還是女浴池?
男:。。。 果斷交了100塊。進去女浴池一看,瑪?shù)拢悄械模?br> 浴池里的兄弟:哎呀,又來一個

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,732評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,214評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,781評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,588評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,315評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,699評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,698評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,882評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,441評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,189評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,388評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,933評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,613評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,023評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,310評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,112評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,334評論 2 377

推薦閱讀更多精彩內(nèi)容