ti-enxame.com

Qual a melhor forma de incluir o jQuery Themeroller em uma extensão?

Com o J3x com o jQuery incluído, metade da batalha de incluir facilmente o Themeroller é resolvida, mas ainda tenho problemas para que o aspecto do Themeroller funcione corretamente. Descobri que adicionar a tag de script "em algum lugar" geralmente funciona, mas aonde a tag de script parece parece variar - tornando os widgets quebrados, a menos que seja "logo antes disso ou logo depois".

Existe uma maneira Joomla-Correct de adicionar o Themeroller e todos os seus widgets corretamente a um componente?

2
GDP

para incluir JS e CSS específicos em um componente, sigo o conselho de Michael Babker:

Use a pasta de mídia, Permitir mídia substituível

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

  • na pasta do componente raiz, crie uma pasta chamada media
  • por dentro, crie 2 pastas, css e js Não se esqueça de incluir o espaço em branco necessário index.html em todas essas pastas

  • Modifique o arquivo yourcomponent.xml adequadamente:


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

ou

/views/whateveristhenameofthisfolder/default.php

chame seus arquivos JS/CSS desta maneira:

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

Obviamente, você pode usar diferentes scripts JS/CSS para cada uma das suas visualizações.

Espero que ajude.

5
ghazal

Para garantir que a biblioteca JS seja carregada com seu componente, é necessário incluí-la na visualização do componente. Algo assim no seu view.html.php ou no arquivo de modelo deve funcionar:

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

Observe que isso incluirá o jQuery no modo noConflict. Também garante que a estrutura seja carregada apenas uma vez.

Para carregar o jQuery no modo Normal, use:

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

Atualizar:

Você deseja que seus js sejam carregados na parte de visualização do seu componente, portanto, este é o local para adicioná-lo. Portanto, após incluir todas as estruturas necessárias, você também inclui outros js e css na visualização.

Para adicionar isso, e dependendo de como você gosta de fazer as coisas ou se houver algum outro motivo, você pode criar um arquivo auxiliar com sua própria classe e métodos, que, de plantão, decidirá quais arquivos js/css serão adicionados, com base em cada condição. Você também pode considerar usar a pasta de mídia como o local do seu js/css.

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


Joomla: Adicionando JS - Documentação

1
FFrewin