2014-03-25 85 views
0

有沒有辦法在果園CMS中創建和編輯的編輯服務了形狀時區分?果園CMS - 創建VS編輯編輯模板和形狀

也許這是有可能即使在Placement.info水平做些什麼呢?

基本上我有一個使用自動佈線部分設置該實體的一個永久的ContentType。我不希望人們能夠在初始創建後對其進行編輯,因此這將是巨大的,在實際編輯模式時,隱藏的部分 - 但有它明顯的和可用的,當第一個「創建」頁面

回答

2

在Orchard CMS中提供形狀時,是否有辦法區分編輯器的創建和編輯?

不除非模塊已經專門編寫這樣做。如果你看看AutoroutePartDriver,你會發現它總是返回一個叫做Parts_Autoroute_Edit的形狀,所以在這種情況下,使用Placement.info是不可能的。你可能沒有看到

的一件事是自動佈線部分有兩種設定內容類型編輯頁面(如~/Admin/ContentTypes/Edit/Page)可見:

  • 允許自定義模式
  • 編輯內容
  • 時自動重新生成

取消選中這兩個將防止路線的編輯一旦內容項目已被創建,但您將無法要麼創建內容項時進行編輯,而不是你將不得不依賴於T他產生了slu。。如果你使用{Content.Slug}這樣的模式,或者如果你有自己確定性的方式來根據內容類型生成一個slu then,然後創建一個模塊來實現ITokenProvider並創建你自己的使用你的算法的令牌,你將最終得到合理的slu gs。

如果絕對必須有在你的問題中描述的行爲,那麼你可以創造出從而抑制電流AutoroutePartDriver(使用OrchardSuppressDependency)的模塊,也可以從它繼承。然後,您可以繼續覆蓋Editor(...)方法中的一個,以便在生成編輯器圖形或保存該項目時進行截取。您可以使用part.ContentItem.Id == 0來查看您是否正在處理新的內容項目。這種方法的一個很大的警告是,它依賴於AutoroutePartDriver的實現,所以如果這改變你的驅動程序可能會中斷。

+1

對於這樣的事情,我不會重複代碼。在Autoroute中實現它,然後將其作爲貢獻提交。 –

+0

感謝您的意見!非常有幫助,非常感謝 – Jennet