2012-10-10 52 views
0

我試圖創建一個「節點指針」文檔類型,該類型允許內容管理器選擇一個或多個不在Home節點下的節點。這基本上是這樣,他們可以選擇哪些控件添加到頁面,而不必在頁面下創建一大堆。我的問題是,我如何創建該「節點指針」併發布它沒有鏈接到它被創建?如何發佈節點但不在Umbraco中創建鏈接

+0

此外,我知道我可以不發佈它並從未發佈的文檔中檢索其數據,但我不能保證內容管理器將不會發布整個網站一次。 – ddore95

+0

訪問未發佈的文檔將是不好的做法,因爲它需要調用數據庫而不是讀取緩存。 「節點指針」的用途是什麼?它會做什麼? –

+0

節點指針是一個子節點,它允許內容管理器選擇位於主站點目錄外的文件夾/樹中的節點。重點是消除在每種單一文檔類型中使用節點選取數據類型,但允許客戶將子節點選擇器添加到他們希望的任何頁面,並基於數據中的數據自動構建控件/內容區域。選定的節點。這或多或少地消除了內容項目中的冗餘(即使節點選取器本身可能是冗餘的,它仍允許在一個控制中訪問多個節點)。 – ddore95

回答

2

鏈接是由您的模板生成的,因此您需要在模板中包含一些邏輯來排除不希望鏈接到的頁面。

您可以通過檢查docTypes或排除不帶temlate的項目或使用諸如umbracoHaviHide之類的屬性來完成此操作。

或者避免創建不網頁節點,也許像這樣:
我們經常使用類似的技術來創建的預製家分行外側邊欄元素的集合,然後使用的重。 通過uComponents MultiNodeTreePicker選擇所需的組件,它們是每個頁面上應具有可選側邊欄組件的屬性。通過這種方式,主分支下不存在任何不應該成爲頁面的節點,因此,您無需執行任何操作即可排除指向它們的鏈接。

編輯
CMS將讓每一個節點的URL,這通常並不重要,因爲如果沒有與任何節點訪問該網址將獲得404頁關聯的模板。較早版本的umbraco將提供空白頁面。 (前4.5?ish?我想?)

+0

我以前做過這件事,但我不想向客戶指示每個單頁/文檔類型都必須具有該節點選取器,但不幸的是,它看起來像是最好的方法。另外,你是什麼意思,我可以在我的模板中包含邏輯來排除我不想鏈接到的頁面? – ddore95

+0

模板邏輯取決於您使用哪種樣式的模板,UserControls/Masterpages? XSLT?或Razor?....其中一個將呈現您的鏈接,也許在您的問題中包含呈現您不想要的鏈接的模板片段。 – Myster

+0

真的,我想要的是能夠在「主頁」分支之外創建內容項目,這些內容項目在發佈之後沒有與它們關聯的鏈接,但可以在我以某些文檔類型提供給我的客戶的Node選擇器中使用。我並不試圖在頁面上呈現選定的節點或其他東西,我使用這些節點來處理它們的數據,使用自定義功能在頁面上顯示信息。例如,「關於我們」頁面有一個節點選擇器,該節點選擇器允許客戶端選擇信息片段以顯示在「關於我們」頁面(例如地址,電子郵件,電話等等)上。 – ddore95

0

你不能。

如果您在內容區域創建節點,它將始終有一個關聯的URL。您可以確保文檔類型沒有默認模板,如果您不希望它是可導航的,或者您可以爲其分配一個空白模板。

或者,您可以創建新的媒體類型。媒體節點默認沒有與它們關聯的網址。

+0

不確定我關注整個新媒體類型。你能詳細說明嗎? – ddore95

+0

@ ddore95,我不確定我完全理解您的查詢 - 我假設您只是想創建可添加到選取器的節點。節點應該包含內容,但不應該有與它們相關聯的網址。如果是這種情況,您可以使用創建文檔類型的方式創建媒體類型。您可以將相同的屬性添加到可以轉換爲文檔類型的媒體類型。您還可以設置多節點樹選取器來選擇媒體節點。缺點是節點駐留在媒體部分,這不太理想。 –

+0

哦,我現在明白了。這是一個很好的選擇,但我寧願所有內容樹中的客戶端都可以使用它們,以便他們可以在一個地方看到所有內容。感謝您的輸入! – ddore95

相關問題