我正在嘗試擴展Tridion的「CheckOut」命令,截至目前,我正在嘗試顯示自己的消息,並希望在功能區工具欄中單擊「CheckOut」選項時需要放置OOTB CheckOut操作。如何在SDL Tridion 2011 SP1中擴展「CheckOut」命令?
我已經創建了配置文件和.js文件,如下所示,我也對System.config進行了更改,並創建了虛擬目錄。但是我的.js沒有被解僱,也沒有顯示我的自定義消息。
config.xml中
<?xml version="1.0"?>
<Configuration xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge" xmlns:cfg="http://www.sdltridion.com/2009/GUI/Configuration" xmlns:ext="http://www.sdltridion.com/2009/GUI/extensions" xmlns:cmenu="http://www.sdltridion.com/2009/GUI/extensions/ContextMenu">
<resources cache="true">
<cfg:filters/>
<cfg:groups>
<cfg:group name="CommandsExtensions.Commandset" merger="Tridion.Web.UI.Core.Configuration.Resources.CommandGroupProcessor" merge="always">
<cfg:fileset>
<cfg:file type="script">/js/ExtendCheckOut.js</cfg:file>
<cfg:file type="reference">CommandsExtensions.Interface</cfg:file>
</cfg:fileset>
<cfg:dependencies>
<cfg:dependency>Tridion.Web.UI.Editors.CME</cfg:dependency>
<cfg:dependency>Tridion.Web.UI.Editors.CME.commands</cfg:dependency>
</cfg:dependencies>
</cfg:group>
</cfg:groups>
</resources>
<definitionfiles/>
<extensions>
<ext:editorextensions>
<ext:editorextension target="CME">
<ext:editurls/>
<ext:listdefinitions/>
<ext:taskbars/>
<ext:commands/>
<ext:commandextensions>
<ext:commands>
<ext:command name="CheckOut" extendingcommand="ExtendCheckOut" />
</ext:commands>
<ext:dependencies>
<cfg:dependency>CommandsExtensions.Commandset</cfg:dependency>
</ext:dependencies>
</ext:commandextensions>
<ext:contextmenus/>
<ext:lists/>
<ext:tabpages/>
<ext:toolbars/>
<ext:ribbontoolbars/>
</ext:editorextension>
</ext:editorextensions>
<ext:dataextenders/>
</extensions>
<commands>
<cfg:commandset id="CommandsExtensions.Interface">
<cfg:command name="ExtendCheckOut" implementation="CommandsExtensions.ExtendCheckOut"/>
</cfg:commandset>
</commands>
<contextmenus/>
<localization/>
<settings>
<defaultpage>/Views/Default.aspx</defaultpage>
<navigatorurl>/Views/Default.aspx</navigatorurl>
<editurls/>
<listdefinitions/>
<itemicons/>
<theme>
<path>css</path>
</theme>
<customconfiguration/>
</settings>
js文件
Type.registerNamespace("Extensions");
Extensions.ExtendCheckOut = function Extensions.ExtendCheckOut() {
Type.enableInterface(this, "Extensions.ExtendCheckOut");
this.addInterface("Tridion.Cme.Command", ["ExtendCheckOut"]);
};
Extensions.ExtendCheckOut.prototype.isAvailable = function ExtendCheckOut$isAvailable(selection) {
return true;
}
Extensions.ExtendCheckOut.prototype.isEnabled = function ExtendCheckOut$isEnabled(selection) {
return true;
}
Extensions.ExtendCheckOut.prototype._execute = function ExtendCheckOut$_execute(selection) {
$messages.registerWarning("This is Extended CheckOut");
}
嗨,我想這個問題/答案:http://stackoverflow.com/questions/12410599/how-can-a-tridion-command-extension-find-out-the-command-it-extends給出一個很好的例子,你如何擴展現有的。你有看過它嗎? – johnwinter
是的約翰,我研究了那個,它沒有完整的配置文件。並基於此我也修改了我的配置文件。但Js也沒有解僱。我認爲是一些在配置文件中做錯的地方。 – user1428019
作爲第一個檢查:您的JavaScript是否被加載到瀏覽器中?您應該可以在'http://localhost/WebUI/Editors/CME/Views/Dashboard/Dashboard.aspx?mode = js'中找到它。 –