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