2012-04-26 12 views
7

Sono un po 'in disaccordo su cosa sto facendo esattamente male, quindi spero che lanciando questo messaggio qualcuno dovrebbe essere in grado di indicare qualcosa che si spera evidente a me.Estensioni GUI - Risorse che non riescono a caricare

Viene creata una nuova estensione della GUI che si posizionerà come un pulsante in una nuova scheda Eventi della barra multifunzione di Tridion. Posso visualizzare il pulsante, tuttavia non viene visualizzata alcuna icona per il pulsante ed è sempre disabilitato, il che mi fa credere che il foglio di stile e le risorse javascript per l'estensione non vengano caricati: S

La mia configurazione di editor è la seguente:

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

Tutti i file di risorse (javascript e css) di cui ho bisogno sono presenti nelle directory come da configurazione. Il mio JS per la GUI è simile al seguente:

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 e ancora niente, che cosa sto facendo male?

+1

Ciao Richard, Grazie per arrivare alla comunità Tridion su SO. Vedo che hai un account su Area 51, ma sembra che tu non sia impegnato nell'iniziativa Tridion su http://area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2 sarebbe fantastico se volessi sii parte di esso –

+1

si scusa volevo dire andare in quello, lo farò ora –

risposta

5

È possibile verificare se i file sono inclusi caricando il CME con i parametri? Mode = js e? Mode = css.

Non dimenticare che questi file sono pesantemente memorizzati nella cache e la semplice modifica della configurazione non invalida la cache. È necessario aumentare l'attributo @modification in System.config (per invalidare la cache di tutti i client) o semplicemente cancellare la cache del browser manualmente (più semplice durante lo sviluppo).

Se le modifiche non sono in questi file, è probabile che si sia verificato un problema con la configurazione del tuo editor. Come ha sottolineato Chris, i file sono inclusi solo se è incluso qualcos'altro che ha una dipendenza da esso. Se si abilita la traccia, è possibile visualizzare il motivo per cui i file non vengono inclusi nel file di registro risultante (Tridion.Web.trace).

Partenza sezione 6 di questo articolo per ulteriori informazioni su come farlo: http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/debugging_the_tridion_2011_cme.aspx

+0

Sei una leggenda ... l'aggiornamento dell'attributo di modifica ha fatto il trucco, fino a questo punto stavo solo riavviando i servizi di Tridion e i componenti COM –

3

Non riesco a dirti cosa è esattamente sbagliato con la tua estensione, ma forse puoi dare un'occhiata a un'estensione della GUI esistente (in effetti diverse estensioni) e forse puoi confrontare ciò che è sbagliato con la tua. Date un'occhiata a PowerTools http://code.google.com/p/tridion-2011-power-tools/

Anche alcuni buoni esempi su http://www.sdltridionworld.com, ad es. http://www.sdltridionworld.com/articles/sdltridion2011/tutorials/GUIextensionIn8steps.aspx

+0

Ho usato questa guida, è molto buona Penso che sia scritta da questo ragazzo, sembra avere altri buoni esempi anche http: // yoavniran.wordpress.com/2011/03/03/setting-up-a-tridion-gui-2011-extension-in-8-steps/ –

1

Credo che le dipendenze non verranno effettivamente caricate a meno che non vengano utilizzate e referenziate dai nodi del comandet della configurazione. Potresti includere il tuo editor.config completo piuttosto che solo l'estratto?

Problemi correlati