2014-02-25 44 views
4

這是我創建命令模板的第一步。基本上我希望當我創建基於特定分支的內容項目時觸發該命令。我試圖遵循Sitecore的「數據定義手冊」中的指導原則,但我根本無法實現它。Sitecore命令模板中的執行方法不會觸發

這正是我所做的(在Sitecore的7.1):

我創建了一個命令模板是這樣的:

namespace MyApp.Commands 
{ 
    public class MyCommand : Sitecore.Shell.Framework.Commands.Command 
    { 
     public override void Execute(Sitecore.Shell.Framework.Commands.CommandContext context) 
     { 
      // do stuff 
     } 
    } 
} 

我已經把它註冊爲在命令的命令。配置是這樣的:

<command name="mynamespace:mycategory:mycommand" type="MyApp.Commands.MyCommand,MyApp"/> 

在Sitecore的,我創建了一個名爲MyCommandTemplate一個命令模板基於「/ Sitecore的/模板/系統/分行/命令模板」模板和設置命令音響場到:

mynamespace:mycategory:mycommand(id=$ParentID) 

此外,我創建了一個名爲MyTemplate的數據模板,並在「__Standard值」我已經添加到MyCommandTemplate插入選項。

對於MyTemplate我已經創建了一個名爲MyBranch的分支,它基於「/ sitecore/templates/System/Branches/Branch」分支模板,並且在分支的$ name子項目上已經檢查過它的確擁有MyCommandTemplate在插入選項中設置。但是,當我創建一個基於MyBranch的內容項時,MyCommand中的Execute方法不會被觸發(代碼不運行,我無法在Visual Studio中使用調試器進行打擊)。

有沒有人有想法我做錯了什麼?

回答

0

不確定命令模板是否支持分支級別,測試代碼是否正常工作,嘗試添加基於'MyTemplate'數據模板的項目,並查看代碼是否運行。

如果命令模板不能在分公司層面的工作,我建議你添加一些代碼,它創建所需的物品你的命令模板類,當用戶創建基於「MyTemplate的」數據模板

+0

謝謝你的任何項目的建議。我試過了,但命令仍然沒有被觸發:( –

+0

剛發現當我創建一個基於MyBranch的內容項時,然後右鍵單擊內容項og選擇Insert,然後我可以選擇該命令。我這樣做是爲了觸發代碼,但這並不是我期望的方式,因爲它需要用戶執行兩個操作來創建內容項目結構。 –

+0

我建議您不要使用分支模板,並在您的Command模板類中創建項目結構,請參閱此示例:http://pentialized.dk/2009/05/15/command-templates-the-forgotten-feature-of-sitecore-6/ 然後,當用戶插入項目(選擇命令),您的代碼被觸發並通過用戶的一個動作創建您想要的項目結構 –