Estoy tratando de usar Drupal.settings por primera vez para pasar variables de PHP a JavaScript. La documentación sobre el tema es escasa y tengo algunos problemas.
¿Es posible usar #attached para pasar por la configuración en lugar de hacerlo drupal_add_js(array('myModule' => $settings), 'setting');
? La razón por la que pregunto es porque me han dicho que esa #attached
es la forma "correcta" de agregar configuraciones. (Sé que también es la forma correcta de agregar archivos, pero no estoy seguro si funciona con variables de configuración).
Estoy usando el siguiente código, pero no puedo cargarlo debajo de los objetos DOM y estoy atascado.
(function ($) {
Drupal.behaviors.myModule = {
attach: function(context, settings) {}
};
});(jQuery);
Cualquier consejo sería muy apreciado. Tenga en cuenta que esta es la primera vez que me propongo usar Drupal.settings, por lo que cada detalle es bienvenido y apreciado.
fuente
Muchas gracias por las respuestas publicadas.
Como se mencionó en la pregunta original, el problema no era cómo cargar archivos CSS y JS usando #attached, sino cómo pasar variables a Drupal.settings usando #attached y no drupal_add_js (). Hay problemas de mejores prácticas que rodean a drupal_add_js con respecto al almacenamiento en caché y la disponibilidad bajo el DOM.
Después de un poco de investigación tengo la solución. El siguiente ejemplo usa #attached para cargar un archivo JS Y para pasar variables PHP a través de adjuntarlas al $ page array (render array).
Entonces, la razón por la que quiero hacer esto es porque quiero pasar estados variables de PHP / Drupal a un archivo jQuery, como booleanos, etc. Con el ejemplo anterior, ahora puedo acceder a ese 'estado' usando:
Todo esto se hace sin tocar drupal_add_js ();
fuente