2012-04-26 78 views
7

我有点不知道我究竟做错了什么,所以希望通过把它扔到那里,有人应该能够指出希望显而易见的东西给我。图形用户界面扩展 - 资源无法加载

正在创建一个新的GUI扩展,它将作为Tridion功能区栏的新事件选项卡上的一个按钮。我能得到的按钮出现,但没有图标出现的按钮,始终被禁用,这使我相信,样式表和javascript资源的扩展不加载:S

我的编辑配置如下:

<?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> 
<cfg:filters/> 
<cfg:groups>  
    <cfg:group name="Events.Cvent"> 
    <cfg:fileset> 
     <cfg:file type="style">/Theme/cvent.css</cfg:file> 
     <cfg:file type="reference">Events.Commands.Cvent</cfg:file> 
    </cfg:fileset> 
    </cfg:group> 
    <cfg:group name="Events.Cvent.Commandset"> 
    <cfg:fileset> 
     <cfg:file type="script">/Scripts/cvent.js</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:dataextenders/> 
<ext:editorextensions> 
    <ext:editorextension target="CME"> 
    <ext:editurls/> 
    <ext:listdefinitions/> 
    <ext:taskbars/> 
    <ext:commands/> 
    <ext:commandextensions/> 
    <ext:contextmenus/>   
    <ext:lists/> 
    <ext:tabpages/> 
    <ext:toolbars/> 
    <ext:ribbontoolbars> 
     <ext:add> 
     <ext:extension assignid="EventsPage" name="Events"> 
      <ext:control/> 
      <ext:pagetype/> 
      <ext:apply> 
      <ext:view name="DashboardView"> 
       <ext:control id="DashboardToolbar"/> 
      </ext:view> 
      </ext:apply> 
     </ext:extension> 
     <ext:extension assignid="EventsAdministrationGroup" pageid="EventsPage" name="Administration"> 
      <ext:group/> 
      <ext:apply> 
      <ext:view name="DashboardView"> 
       <ext:control id="DashboardToolbar"/> 
      </ext:view> 
      </ext:apply> 
     </ext:extension> 
     <ext:extension assignid="CventBtn" groupid="EventsAdministrationGroup" name="Import Cvent Events" pageid="EventsPage"> 
      <ext:command>Cvent</ext:command> 
      <ext:title>Import Cvent Events</ext:title> 
      <ext:dependencies> 
      <cfg:dependency>Events.Cvent</cfg:dependency>    
      </ext:dependencies> 
      <ext:apply> 
      <ext:view name="DashboardView"> 
       <ext:control id="DashboardToolbar"/> 
      </ext:view> 
      </ext:apply> 
     </ext:extension> 
     </ext:add> 
    </ext:ribbontoolbars> 
    </ext:editorextension> 
</ext:editorextensions> 
<ext:modelextensions/> 
</extensions> 

<commands>  
    <cfg:commandset id="Events.Commands.Cvent"> 
    <cfg:command name="Cvent" implementation="Events.Commands.OpenCvent"/> 
    <cfg:dependencies> 
    <cfg:dependency>Events.Cvent.Commandset</cfg:dependency>   
    </cfg:dependencies> 
</cfg:commandset> 
    </commands> 
    <contextmenus/> 
    <localization/> 

    <settings> 
    <defaultpage/> 
    <editurls/> 
    <listdefinitions/> 
    <theme> 
     <path>/Theme/</path> 
    </theme> 
    <customconfiguration> 
     <clientconfiguration xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge"> 
     <Cventurl xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge">/Cvent/Cvent.aspx</Cventurl> 
     </clientconfiguration> 
    </customconfiguration> 
    </settings> 

</Configuration> 

我需要的所有资源文件(javascript和css)都在根据配置的目录中。我的用于图形用户界面的JS如下所示:

Type.registerNamespace("Events.Commands"); 

Events.Commands.OpenCvent = function Commands$OpenCvent(name) 
{ 
    Type.enableInterface(this, "Events.Commands.OpenCvent"); 
    this.addInterface("Tridion.Cme.Command", ["Cvent"]); 
    this.properties.url; 
}; 

Events.Commands.OpenCvent.prototype._isAvailable = function OpenCvent$_isAvailable(selection, pipeline) 
{ 
    return true; 
}; 

Events.Commands.OpenCvent.prototype._isEnabled = function OpenCvent$_isEnabled(selection, pipeline) 
{ 
    return true; 
}; 

Events.Commands.OpenCvent.prototype._execute = function OpenCvent$_execute(selection, pipeline) 
{ 
    window.open('www.google.com'); 
}; 

重新开始的Tridion仍然没有,我做错了什么?

+1

理查德·您好,感谢深入到社区外表套上SO上。我看到你在51区有一个帐户,但看起来你并没有致力于http://area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2的Tridion倡议,如果你想要成为其中的一部分 – 2012-04-26 18:46:15

+1

是的抱歉意味着要解决这个问题,现在就做 – 2012-04-27 08:49:09

回答

5

您可以使用?mode = js和?mode = css参数加载CME来检查您的文件是否包含在内。

不要忘记那些文件被高度缓存 - 只是改变配置不会使缓存失效。您需要增加System.config中的@modification属性(以使所有客户端的缓存无效) - 或手动清除浏览器缓存(开发时最简单)。

如果您的更改不在这些文件中,则可能是您的编辑器配置有问题。正如克里斯指出的那样,只有包含其他依赖于它的其他内容时才会包含文件。如果启用跟踪,您可以看到为什么您的文件未包含在生成的日志文件(Tridion.Web.trace)中。

看看这篇文章的第6节的详细信息,如何做到这一点:http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/debugging_the_tridion_2011_cme.aspx

+0

你是一个传奇人物....更新修改属性的窍门,到目前为止,我只是重新启动Tridion服务和COM组件 – 2012-04-27 11:49:28

3

我不能告诉你什么是错误的扩展名,但也许你可以看看现有的GUI扩展(实际上是几个扩展),也许你可以比较你的错在哪里。看看PowerTools http://code.google.com/p/tridion-2011-power-tools/

还有一些很好的例子http://www.sdltridionworld.com,例如, http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx

+0

我一直在使用本指南,它非常好,我认为它是由这个人写的,他似乎也有其他很好的例子http:// yoavniran.wordpress.com/2011/03/03/setting-up-a-tridion-gui-2011-extension-in-8-steps/ – 2012-04-27 10:31:59

1

我相信实际上不会加载依赖关系,除非它们在配置的comandset节点中使用和引用。你能包括你的完整的editor.config而不仅仅是提取?