Estou tentando usar o Drupal.settings pela primeira vez para passar variáveis do PHP para JavaScript. A documentação sobre o tópico é escassa e tenho alguns problemas.
É possível usar #attached para passar pelas configurações e não drupal_add_js(array('myModule' => $settings), 'setting');
? A razão pela qual estou perguntando é que me disseram que essa #attached
é a maneira "correta" de adicionar configurações. (Eu sei que também é a maneira correta de adicionar arquivos, mas não tenho certeza se funciona com variáveis de configuração.)
Estou usando o código a seguir, mas não consigo carregá-lo sob os objetos DOM e estou travado.
(function ($) {
Drupal.behaviors.myModule = {
attach: function(context, settings) {}
};
});(jQuery);
Qualquer conselho seria muito apreciado. Lembre-se de que é a primeira vez que decidi usar o Drupal.settings, para que todos os detalhes sejam bem-vindos e apreciados.
fonte
Muito obrigado pelas respostas postadas.
Como mencionado na pergunta original, o problema não era como carregar arquivos CSS e JS usando #attached, mas como passar variáveis para Drupal.settings usando #attached e não drupal_add_js (). Existem problemas de práticas recomendadas em torno do drupal_add_js com relação ao cache e disponibilidade no DOM.
Depois de algumas pesquisas, tenho a solução. O exemplo a seguir usa #attached para carregar um arquivo JS AND para passar variáveis PHP anexando-as à matriz $ page (matriz de renderização).
Portanto, a razão pela qual desejo fazer isso é que desejo passar estados variáveis do PHP / Drupal para um arquivo jQuery, como booleanos etc. Com o exemplo acima, agora posso acessar esse 'estado' usando:
Tudo isso é feito sem tocar em drupal_add_js ();
fonte