2012-04-26 10 views
7

No entiendo qué es exactamente lo que estoy haciendo mal, así que espero que al arrojar esto alguien me pueda señalar algo que me parezca obvio.Extensiones de la GUI: recursos que no se pueden cargar

Se está creando una nueva extensión de GUI que se colocará como un botón en una nueva pestaña Eventos de la barra de cinta de Tridion. Puedo hacer que aparezca el botón, sin embargo, no aparece ningún icono para el botón y siempre está deshabilitado, lo que me lleva a pensar que la hoja de estilo y los recursos de JavaScript de la extensión no se están cargando: S

La configuración de mi editor es la siguiente:

<?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> 

Todos los archivos de recursos (javascript y css) que necesito están en los directorios según la configuración. Mi JS para la interfaz gráfica de usuario tiene el siguiente aspecto:

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'); 
}; 

Restarted Tridion y todavía nada, ¿qué estoy haciendo mal?

+1

Hola Richard, Gracias por llegar a la comunidad Tridion en SO. Veo que tiene una cuenta en el Área 51, pero parece que no está comprometido con la iniciativa de Tridion en http://area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2, sería genial si quisiera se parte de ello –

+1

sí lo siento fue lo que quería decir, lo haré ahora –

Respuesta

5

Puede comprobar si sus archivos están incluidos o no al cargar el CME con los parámetros? Mode = js y? Mode = css.

No olvide que esos archivos están muy almacenados en caché, y el simple hecho de cambiar la configuración no invalida la caché. Necesita aumentar el atributo @modification en System.config (para invalidar el caché de todos los clientes) - o simplemente borrar el caché de su navegador manualmente (más fácil mientras se desarrolla).

Si sus cambios no están en esos archivos, es probable que sea un problema con la configuración de su editor. Como señaló Chris, los archivos solo se incluyen si se incluye algo más que dependa de él. Si habilita el seguimiento, puede ver por qué sus archivos no se están incluyendo en el archivo de registro resultante (Tridion.Web.trace).

Comprobar la sección 6 de este artículo para obtener más información sobre cómo hacerlo: http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/debugging_the_tridion_2011_cme.aspx

+0

Eres una leyenda ... actualizar el atributo de modificación hizo el truco, Hasta este punto, solo estaba reiniciando los servicios Tridion y los componentes COM –

3

No puedo decirle qué es exactamente lo que está mal con su extensión, pero tal vez pueda echarle un vistazo a una extensión GUI existente (de hecho, varias extensiones) y quizás pueda comparar lo que está mal con la suya. Eche un vistazo a las PowerTools http://code.google.com/p/tridion-2011-power-tools/

También hay algunos buenos ejemplos en http://www.sdltridionworld.com, p. http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx

+0

He estado usando esta guía, está muy bien Creo que está escrita por este tipo, parece que también tiene otros buenos ejemplos http: // yoavniran.wordpress.com/2011/03/03/setting-up-a-tridion-gui-2011-extension-in-8-steps/ –

1

Creo que las dependencias en realidad no se cargarán a menos que se utilicen y se haga referencia desde dentro de los nodos comandset de la configuración. ¿Podría incluir su editor.config completo en lugar de solo el extracto?

Cuestiones relacionadas