Umbraco(6)-Creating More Pages Using the Master - Part 2

創建一個Contact Us頁面

我們將創建一個新的”聯繫我們“頁面,在該頁面我們將放置簡單的聯繫信息。對於添加這個功能你可能想替換爲一個完全成熟的形式。

一些有效的解決方案:

  • 使用表面控制器構建自己的接觸形式:

     http://our.umbraco.org/documentation/Reference/Templating/Mvc/forms或者是

     http://umbraco.tv/videos/developer/fundamentals/surface-controllers/

  • 如果你不是一個程序員,可以使用現成的包:

     http://umbraco.com/products/more-add-ons/contour.aspx

現在讓我們創建一個簡單的頁面 - 一個用戶可以提供一個標題和一些富文本的頁面。這非常類似於我們的主頁文檔類型,但是,目前假設我們你要去開發非常具體的這個東西(例如。添加了文章和其他內容塊條。)

打開Settings > Document Types (hover) > ... > + Create。我們創建一個頁面命名爲"Simple Content Page"。選擇Master Document Type爲"none..."(使用主文檔類型允許我們從父級繼承文檔類型)但是我們將創建一個匹配的模板,所以默認那個選擇。

首先讓我們選擇一個圖標 - 輸入單詞"Content"來進行篩選和選擇這個文件的圖標。在描述類型簡單寫"A simple content page",默認Allowed Templates(例如,只有Simple Content頁面被選擇)。點擊Save按鈕。

現在點擊Settings > Templates (hover) > ... ,然後單擊Reload Nodes。選擇Simple Content Page節點,進入Properties選項卡。改變Master Template下拉選擇Master這個模板 - 這將意味着就像我們Homepage模板一樣,我們從master模板中得到頁眉和頁腳。

單擊Save保存,然後重新加載Template選項卡,你將會看到Razor語言被更新爲:Layout="Master.cshtml"。如果它沒有更新,點擊其他不同的節點,然後重新加載。現在需要給這個模板加上HTML,然後保存。

<div id="main-container">
    <div id="main" class="wrapper clearfix">
        <section>
            <h2>Header goes here</h2>
            <p>Content goes here</p>
        </section>  
    </div> <!-- #main -->
</div> <!-- #main-container -->
現在我們使用剛剛創建的Document Type和Template來創建一個新的頁面 -  Content > Homepage (hover) > ... > Create. 。但是我們發現出現了下面的錯誤:

【Umbraco Content 發生了錯誤:沒有可用的文檔類型】

這是通過設計——Umbraco的限制是編輯者只能夠創建內容編輯,對於開發者是允許的。這將阻止用戶在主頁下創建一個新的新聞內容節點時,打破一個網站設計(或整個網站)!不幸地是,這個功能也混淆了許多新的Umbraco使用者——因此,我們在這裏向您展示了這個錯誤的原因。

打開Settings > Document Types > Homepage  ,在Structure選項卡中,在標籤Allowed child nodetypes後邊你將會看到一列複選框(不要混淆在Info選項卡中的Allowed template - 稍後我們將討論)。所以我們需要允許用戶能夠創建子節點,主頁類型爲Simple Content Page。選擇複選框然後保存。

Homepage - Allowed Child Nodetypes允許創建子節點

這裏還有一些困惑 - 首先我們要創建一個Simple Content Page,但是我們必須允許創建文檔類型 - 例如,我們創建了一個新的文檔類型,然後隨後我們更新主頁的設置來能夠使用它。當我們創建一個Articles container 和 Article item後,我們再這樣做。我麼需要在Articles container 下允許Article item。簡單 - 也許對你來說不簡單,但是你會習慣它的。

現在返回Content > Homepage (hover) > ... > Create  現在我們已經創建Simple Content Page成功!選擇並輸入一個名稱(文本頂部紅色區域)。你可以看到我們僅僅只有一個Properties選項卡-沒有數據。這是不同的文檔類型創建的主頁,我們沒有創建任何的標籤和數據屬性(例如:沒有bodyText或pageTitle)。點擊Save and Publish。

【創建我們的Contact頁面】

我們重新加載Content,將會看到在homepage下有Contact Us頁面。這是大多數網站的推薦結構 - 你的一級頁面將在主頁下。現在去看看這個頁面 - 如果你在Properties這個選項卡,你將會看到Link To document一行 - 點擊它。你可能會再一次發現沒有樣式的頁面。這是因爲這個模板的設計者認爲你的網站將是一個平面結構 - 例如,所有頁面建立在相同的一級,所以瀏覽器不能發現在homepage這一級的CSS和JS。你需要更新Master模板修改CSS和JS文件的引入方式:

<link rel="stylesheet" href="/css/style.css">

<script src="/js/libs/modernizr-2.0.6.min.js"></script>

保存模板的修改,之後加載Contact Us頁面。我們現在有一個空的頁面。

我們來添加兩個簡單的字段 - pageTitle (type = Textstring) 和 bodyText (type Rich Text Editor)。如果你不知道如何添加字段,你可以按照創建主頁面文檔類型的說明來創建。然後連接這些字段 - 如果這不是你的第二天性,可以通過編輯Homepage下的模板。

Contact Us Generic Properties(通用屬性)】

Contact Us Template with Data Fields】

現在添加一些內容Content > Homepage node > Contact Us node。 點擊Save and Publish,然後在重新加載時,你會看到更有趣的頁面。

Contact Us with Some Data】

從主頁使用文檔類型屬性

你可能注意到我們頁腳部分現在還是空的 - 我們沒有從Homepage節點中得到內容。我們需要告訴Umbraco去父節點Homepage中得到content。現在我們開始編輯這個Master模板。

在Umbraco頁腳字段中有<h3>標籤,點擊Insert Umbraco page field按鈕在這裏的選項我們忽略所有選項的早期發揮的作用 - 再一次從Choose field 下拉選項中選擇footerText,但這一次我們還要選擇Recursive這個複選框。這是在告訴Umbraco,如果這個級別不存在我們請求的節點字段的話(例如Contact Us),它將會查找內容節點(在我們的例子中這個內容在Homepage中) - 這意味着如果你想要編輯來覆蓋默認,你可以在Contact Us頁面中創建一個footerText元素,但是在這個領域是不經常使用的。點擊Insert,你將會看到不同的Razor語言被加上:

@Umbraco.Field("footerText", recursive: true)

點擊Save,然後重新加載Contact Us頁面。

【原文:https://our.umbraco.org/documentation/using-umbraco/creating-basic-site/Creating-Master-Template-Part-2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章