2012-08-06 59 views
1

我有些慚愧的問這麼多問題,但我真的很想學習。 在Sipke's blog網店被創建。當嘗試做類似的事情時,有一個特定的問題讓我頭腦發熱。果園CMS和控制器與驅動程序

讓我拼出來的基本要求:

  • 用戶註冊表單和登錄等,這是一個由覆蓋博客和它的作品不錯。
  • 創建產品零件等。這是一個覆蓋,沒有問題。
  • 通過填寫訂單和付款來訂購。查看詳情
  • 訂單頁面由客戶維護。往下看。
  • 查看您自己的訂單及其狀態。看下來
  • 維護客戶和來自後端系統的訂單。這篇博客介紹了我需要在那裏做一些工作。

至於創建訂單和查看您的訂單項目。我遵循了創建記錄和使用標準MVC控制器的方法。但後來我遇到了問題:

  1. 訂單頁菜單。這在安裝模塊後我必須手動完成。
  2. 訂單頁面本身。我不得不創建視圖,包括標題等。但我可以想象一個客戶想要另一個菜單上的訂單頁面和不同的標題。甚至可以在訂購頁面添加一些自己的內容。這是我無法通過使用標準的MVC方法來實現的。所以也許我在這裏使用了錯誤的方法。所以我正在考慮使用contentparts來創建訂單並顯示它們並使用驅動程序和處理程序。但在我走下這條路並重構我想知道的一切之前,如果這是正確的方法。不利的一面是,一旦模塊遵循該路線,它就不會輕易地與具有其他CMS能夠託管MVC3模塊的客戶重複使用。

因此何時使用驅動程序,處理程序和contentparts以及何時使用標準控制器和視圖。

回答

4

當您想要爲內容項目創建功能時,您應該使用驅動程序和部件(如果需要,使用處理程序)。例如。如果您想要顯示所有產品的自定義媒體,您可以創建一個零件(連同其驅動程序等)來處理該零件。閱讀docs on Parts

如果功能與內容項無關,那麼最可能使用標準的MVC工具箱,這很好。看看內置模塊是如何做到的。例如。博客模塊使用控制器和視圖來顯示管理界面,但是有一些部分可以增強博客內容類型的功能。

爲了使事情更加複雜you can employ ad-hoc content items建立一個通常使用簡單視圖做的頁面,但這是一個高級主題:-)。

+0

我試過了專門的內容項目路線。提供的示例在1.5中不起作用。我在ContentPart.cs文件中的「public ContentPartDefinition PartDefinition {get {return TypePartDefinition.PartDefinition;}}」行中收到錯誤消息。對象TypePartDefinition爲null。 – Mounhim 2012-08-11 13:24:36

+0

在那裏回答,但爲了簡單起見,在這裏複製: 我在1.5.1網站中使用完全相同的模式,沒有問題。 但是,在常規內容類型(即內容類型也是靜態模式的內容類型(如內置頁面))上以相同方式動態焊接部件時,出現了這樣的錯誤(使用1.5和1.4時很好) 。如果你想這樣做,這是可能的,但你必須儘可能晚地焊接內容項目上的部分。爲此,您可以使用常規的內容事件,我建議在OnGetEditorShape,OnGetDisplayShape,OnUpdating中對常規內容項目進行焊接。 – Piedone 2012-08-11 18:31:23