web-dev-qa-db-fra.com

Quelle est la bonne façon d’ajouter du Javascript à partir de Joomla 3.x?

Je voudrais connaître la manière correcte "actuellement" d'ajouter JavaScript à la tête d'une page. La documentation suggère d'utiliser $document->addStyleSheet($url);, mais la documentation de l'API indique que cette méthode est obsolète.

Il y a aussi la méthode JHTML::_('script','path','options'), mais le premier élément de documentation auquel j'ai fait référence indique que cette méthode est obsolète et qu'elle a été supprimée dans la version 3, même si elle fonctionne toujours.

1
Dom

La méthode elle-même n'est pas obsolète, seulement le format des paramètres de la fonction.

versions antérieures de Joomla (obsolète):

$doc->addScript($url, $mime, $defer, $async)

versions ultérieures de Joomla:

$doc->addScript($url, $options, $attributes)

Je ne sais pas en quoi consiste l'avis de dépréciation de la JHtml, mais cela ne devrait pas affecter ce que vous essayez de faire.

Donc, pour répondre à votre question, la bonne façon d’ajouter du Javascript à votre site sera la suivante:

Général:

JFactory::getDocument()->addScriptDeclaration('
   alert(1);
   // more Javascript here
');

Fichier:

JFactory::getDocument()->addScript(
    JUri::root() . 'templates/MY_TEMPLATE/js/file.js'
);

S'il s'agit d'une extension, si vous possédez votre propre fichier et que vous importez un fichier, je suggérerais d'utiliser l'approche JHtml, car elle permettra aux utilisateurs de remplacer le fichier, ainsi que d'autres avantages supplémentaires:

Chemin vers votre fichier JS:

media/mod_something/js/file.js

Code:

JHtml::_('script', 'mod_something/file.js', array('version' => 'auto', 'relative' => true));

Notez que j'utilise 'relative' => true afin que le chemin puisse être raccourci.

J'espère que cela t'aides

2
Lodder