Ich versuche, Drupal.settings zum ersten Mal zu verwenden, um Variablen von PHP an JavaScript zu übergeben. Die Dokumentation zum Thema ist spärlich und ich habe ein paar Probleme.
Ist es möglich, #attached zu verwenden, um die Einstellungen zu durchlaufen, anstatt drupal_add_js(array('myModule' => $settings), 'setting');
? Der Grund, den ich frage, ist, dass mir gesagt wurde, dass dies #attached
der "richtige" Weg ist, um Einstellungen hinzuzufügen. (Ich weiß, dass es auch der richtige Weg ist, Dateien hinzuzufügen, bin mir aber nicht sicher, ob es mit Einstellungsvariablen funktioniert.)
Ich verwende den folgenden Code, kann ihn jedoch nicht unter die DOM-Objekte laden und stecke fest.
(function ($) {
Drupal.behaviors.myModule = {
attach: function(context, settings) {}
};
});(jQuery);
Jeder Rat wäre sehr dankbar. Bitte denken Sie daran, dass dies das erste Mal ist, dass ich Drupal.settings verwende. Daher ist jedes Detail willkommen und wird geschätzt.
quelle
Vielen Dank für die Antworten.
Wie in der ursprünglichen Frage erwähnt, ging es nicht darum, wie CSS- und JS-Dateien mit #attached geladen werden, sondern wie Variablen mit #attached und nicht mit drupal_add_js () an Drupal.settings übergeben werden. Es gibt Best-Practice-Probleme im Zusammenhang mit drupal_add_js in Bezug auf das Caching und die Verfügbarkeit im DOM.
Nach einigen Recherchen habe ich die Lösung. Im folgenden Beispiel wird #attached verwendet, um eine JS-Datei zu laden UND PHP-Variablen durch Anhängen an das $ page-Array (Render-Array) weiterzuleiten.
Der Grund, warum ich dies tun möchte, ist, dass ich variable Zustände von PHP / Drupal an eine jQuery-Datei wie Boolesche Werte usw. übergeben möchte. Mit dem obigen Beispiel kann ich jetzt auf diesen 'Zustand' zugreifen, indem ich:
Dies geschieht alles, ohne drupal_add_js () zu berühren.
quelle