it-swarm.it

Come includere al meglio jQuery Themeroller in un'estensione?

Con J3x con jQuery incluso, la metà della battaglia per includere facilmente Themeroller viene risolta, ma ho ancora problemi a far funzionare correttamente l'aspetto di Themeroller. Ho scoperto che l'aggiunta del tag di script "da qualche parte" di solito funziona, ma dove va quel tag di script sembra variare - rendendo i widget rotti a meno che non sia "appena prima di questo, o subito dopo".

Esiste un modo Joomla-corretto di aggiungere Themeroller e tutti i suoi widget correttamente a un componente?

2
GDP

per includere JS e CSS specifici in un componente, seguo il consiglio di Michael Babker:

Utilizzare la cartella multimediale, Consenti supporti sostituibili

http://www.babdev.com/blog/139-use-the-media-folder-allow-overridable-media

  • nella cartella del componente principale, creare una cartella denominata media
  • all'interno, crea 2 cartelle, css e js Non dimenticare di includere lo spazio vuoto richiesto index.html in tutte queste cartelle

  • Modificare il file yourcomponent.xml di conseguenza:


<media folder="media" destination="com_yourcomponent">               
    <filename>index.html</filename>                 
    <folder>css</folder>
    <folder>images</folder>              
    <folder>js</folder>
</media>
  • nel /views/yourcomponent/default.php

o

/views/whateveristhenameofthisfolder/default.php

chiama i tuoi file JS/CSS in questo modo:

JHtml::_('stylesheet', 'com_yourcomponent/yourcss.css', false, true);
JHtml::_('script', 'com_yourcomponent/yourjs.js', false, true);

Ovviamente, puoi usare diversi script JS/CSS per ciascuna delle tue viste.

Spero che sia d'aiuto.

5
ghazal

Per garantire che la libreria JS venga caricata con il componente, è necessario includerla nella vista del componente. Qualcosa del genere nel tuo view.html.php o nel file modello dovrebbe funzionare:

JHtml::_('jquery.framework');

Nota che questo includerà jQuery in modalità noConflict. Assicura inoltre che il framework verrà caricato solo una volta.

Per caricare jQuery in modalità Normale, utilizzare:

JHtml::_('jquery.framework', false);

Aggiornare:

Vuoi che i tuoi js vengano caricati nella parte di visualizzazione del tuo componente, quindi questo è il posto dove aggiungerlo. Quindi, dopo aver incluso tutti i framework richiesti, includi anche altri js e css nella vista.

Per aggiungere a questo, e in base a come ti piace fare le cose o se ci sono altri motivi, potresti creare un file di supporto con la tua classe e i tuoi metodi, che su chiamata deciderà quali file js/css aggiungere, in base a ciascuna condizione. Puoi anche considerare di usare la cartella media come posizione del tuo js/css.

<?php $doc = JFactory::getDocument();
$doc->addScript(JURI::root(true).'/media/com_component/js/myscript.js');
?>


Joomla: aggiunta di JS - Documentazione

1
FFrewin