7

私は自分が間違っていることについて少し戸惑っているので、うまくいけば、これをそこに投げ出すことによって、誰かが私にうまくいけば明白な何かを指摘できるはずです。

Tridionリボンバーの新しい[イベント]タブにボタンとして配置される新しいGUI拡張機能が作成されています。ボタンを表示することはできますが、ボタンのアイコンが表示されず、常に無効になっているため、拡張機能のスタイルシートと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)は、構成に従ってディレクトリにあります。私のJSforGUIは次のようになります。

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を再起動しましたが、まだ何もありません。何が間違っているのでしょうか。

4

3 に答える 3

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

于 2012-04-27T11:23:34.380 に答える
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

于 2012-04-26T17:17:14.483 に答える
1

依存関係は、構成のコマンドセットノード内から使用および参照されない限り、実際には読み込まれないと思います。抽出だけでなく、完全なeditor.configを含めることはできますか?

于 2012-04-26T18:41:17.420 に答える