2014-03-31 80 views
1

的條件顯示所以我相當新的Sitecore的,這是我的訓練過程中沒有涉及的話題。我的問題僅僅是爲了幫助我指出正確的術語,或者是關於執行以下操作的方法的文檔。Sitecore的字段

我有一個定義項,一噸領域羣體,我想要做的是一樣的東西:

如果字段X的值是「yes」,那麼崩潰/隱藏字段X或字段組X.

這是否有意義?這是一個驗證規則嗎?或其他類型的規則,是否需要附加一個工作流程?你把它放在我想隱藏的領域,還是觸發動作的領域?

我明白任何指導。

+1

你的意思是,當在內容編輯器界面?即項目上的模板部分? –

+0

是的,這是正確的。 – thematt

+1

聽起來像你會想改變內容編輯器的工作方式,雖然這是可能的,但它不是真正的建議。這聽起來像是你的數據太多了。 – IvanL

回答

0

不確定您是否遇到過Andy Uzick'sblog post

他明智地談論了在內容編輯器中隱藏字段,並且還創建了一個名爲Hide Field Template Extension的Sitecore模塊,該模塊託管在Sitecore Marketplace上,full source code用於擴展。

通讀並嘗試擴展後,我確實認爲它不會完全解決您的問題(您如何在問題中描述它)。 但它會給你:

  1. 一箇中期解決方案來隱藏一些內容編輯不喜歡觀看一些不必要的字段。只能由管理員需要管理的目的
  2. 領域 - 脫雜波這些領域可能會被隱藏。

只要記住一點,它提到了要求Sitecore 6.5 & 6.6。我沒有在Sitecore 7中進行測試。如果您使用Sitecore 7,我認爲您可以修改源代碼並使其適用於Sitecore 7.

查看並分享您的發現。

快樂Sitecoring!

+0

謝謝,這就像你說的是一箇中期解決方案,但我有點同意,如果我甚至需要這個,那麼也許我有太多的領域。我需要它的唯一原因是根據用戶選擇隱藏不需要的內容。 – thematt

+0

好吧,我承認你來自哪裏。請你可以通過某種想法/屏幕截圖來更新你的問題,我們所討論的領域和領域有多少。有多少人想隱藏等等?讓我們努力解決這個問題。 – Shriroop

1

Sitecore中沒有任何東西可以實現您想要的功能,但沒有理由不能創建組合自定義字段類型來執行此操作。下面的文章將幫助您實現這一目標:

創建一個新的控制,無論是從Droplist繼承(如果該值的比較是基於文本)或Droplink (用於比較ID)。您可以在控件的Source字段中添加一個參數,以指定觸發隱藏的值應該是什麼。

內容編輯器中的底層控件只是一個標準的HTML select元素。將onchange事件添加到控件並添加您的Javascript處理程序以隱藏其他控件。由於我找不到向Sitecore控件添加其他自定義css類的方法,因此在您控制之後,最好/最簡單的方法是將同一可摺疊組中的所有其他控件隱藏起來。這意味着你需要更好地對你的控件進行分組(或者至少在邏輯上)。

JavaScript的將是這樣的(內容編輯器使用Prototype JS framework):

if ($(this).getValue() == 'no') { 
    // find the parent container of this control and then hide all the next siblings in the same group 
    $(this).up('.scEditorFieldMarker').nextSiblings('.scEditorFieldMarker').invoke('hide'); 
} 

您可以通過在控制檯中運行上述測試,與你的領域的id改變了關鍵字this ,例如$('FIELD2292054')

我不確定如何在初始加載時觸發隱藏,也就是說,當有人返回到現有項目時,可以通過添加一個管道來實現,但使用JS解決方案會更好如果可能的話。我會仔細考慮並在接下來的幾天內獲得適當的代碼樣本。

編輯:你可以添加一個事件處理程序到sc:contenteditorupdated來處理被重定向的內容編輯器。

document.observe("sc:contenteditorupdated", myFunction); 

我寫了一個blog post,把code on GitHub如果你有興趣。