J'essaie d'utiliser Drupal.settings pour la première fois pour passer des variables de PHP à JavaScript. La documentation sur le sujet est rare et j'ai quelques problèmes.
Est-il possible d'utiliser #attached pour passer à travers les paramètres plutôt que drupal_add_js(array('myModule' => $settings), 'setting');
? La raison pour laquelle je demande, c'est qu'on m'a dit que c'était #attached
la "bonne" façon d'ajouter des paramètres. (Je sais que c'est également la bonne façon d'ajouter des fichiers, mais je ne sais pas si cela fonctionne avec les variables de paramètres.)
J'utilise le code suivant, mais je n'arrive pas à le charger sous les objets DOM et je suis bloqué.
(function ($) {
Drupal.behaviors.myModule = {
attach: function(context, settings) {}
};
});(jQuery);
Tout avis serait grandement apprécié. Veuillez garder à l'esprit que c'est la première fois que je me propose d'utiliser Drupal.settings, donc chaque détail est le bienvenu et apprécié.
la source
Merci beaucoup pour les réponses publiées.
Comme mentionné dans la question d'origine, le problème n'était pas de savoir comment charger les fichiers CSS et JS en utilisant #attached, mais comment passer des variables à Drupal.settings en utilisant #attached et non drupal_add_js (). Il existe des problèmes de meilleures pratiques concernant drupal_add_js en ce qui concerne la mise en cache et la disponibilité sous le DOM.
Après quelques recherches, j'ai la solution. L'exemple suivant utilise #attached pour charger un fichier JS ET pour transmettre des variables PHP en les attachant au tableau $ page (tableau de rendu).
Donc, la raison pour laquelle je veux le faire est que je veux passer des états variables de PHP / Drupal à un fichier jQuery, comme des booléens, etc. Avec l'exemple ci-dessus, je peux maintenant accéder à cet «état» en utilisant:
Tout cela sans toucher à drupal_add_js ();
la source