這是我創建命令模板的第一步。基本上我希望當我創建基於特定分支的內容項目時觸發該命令。我試圖遵循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中使用調試器進行打擊)。
有沒有人有想法我做錯了什麼?
謝謝你的任何項目的建議。我試過了,但命令仍然沒有被觸發:( –
剛發現當我創建一個基於MyBranch的內容項時,然後右鍵單擊內容項og選擇Insert,然後我可以選擇該命令。我這樣做是爲了觸發代碼,但這並不是我期望的方式,因爲它需要用戶執行兩個操作來創建內容項目結構。 –
我建議您不要使用分支模板,並在您的Command模板類中創建項目結構,請參閱此示例:http://pentialized.dk/2009/05/15/command-templates-the-forgotten-feature-of-sitecore-6/ 然後,當用戶插入項目(選擇命令),您的代碼被觸發並通過用戶的一個動作創建您想要的項目結構 –