Ich erstelle ein Plugin mit dem WYSIWYG-API-Modul für Drupal 7, das der Symbolleiste der unterstützten Editoren eine Schaltfläche hinzufügt.
Ich verwende den hook_wysiwyg_plugin()
Hook, um eine neue Schaltfläche in der Editor-Symbolleiste zu erstellen, muss aber einige andere Javascript-Dateien laden. Der hook_wysiwyg_plugin()
Hook scheint es Ihnen zu ermöglichen, eine JS- und CSS-Datei anzugeben.
Wie kann ich zusätzliche erforderliche Javascript-Dateien laden, die für das Plugin Javascript erforderlich sind?
Ich habe implementiert hook_library()
, um eine Bibliothek zu definieren, dh js / css-Dateien, bin mir aber nicht sicher, wie ich das mit wysiwyg api verbinde, damit sie auf den Knoten- / Bearbeitungsbildschirmen geladen werden?
Antworten:
Es ist eigentlich ganz einfach, obwohl ich Erfahrung mit Drupal 6 habe, sodass es einige geringfügige Unterschiede zu meinem Code geben kann:
Auch dieser Code ist für D6, aber das Grundprinzip sollte immer noch funktionieren.
Obwohl es nicht direkt an die Wysiwyg-API gebunden ist, ist es wahrscheinlich die beste Option, da die Wysiwyg-API nur JS-Dateien pro Plugin (iirc) unterstützt.
Ein paar wilde / ungetestete Optionen für Sie:
Führen Sie einen Menü-Rückruf für die im Plugin definierte Javascript-Datei durch und geben Sie eine etwas zwischengespeicherte Javascript-Datei zurück, die die Quellen mehrerer Javascript-Dateien enthält. (Wysiwyg Fields führt den Menü-Rückruf für dynamisch generierte Plugins durch, jedoch nur für eine Javascript-Datei. Ideen finden Sie in der Quelle.)
Verwenden Sie eine dynamische Javascript-Ladetechnik, die http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml ähnelt
Hoffe das hilft.
quelle
Mit drupal_add_js :
quelle
Theoretisch müssten Sie lediglich den richtigen Parameter " #text_format " für das
#type textarea
FAPI-Element verwenden, damit der mit dem Textformat verknüpfte wysiwyg-Editor automatisch aufgenommen wird:Es wird jedoch erst aufgenommen, wenn es sich um eine "Knotenbearbeitungs" -Seite handelt, sodass etwas, das mit Funktionen "
filter_process_format
" oder "wysiwyg_pre_render_text_format
" zusammenhängt, es möglicherweise erzwingen kann, aber ich habe die magische Kombination noch nicht gefunden und lese immer noch die Quelle von das Wysiwyg-Modul, um das fehlende Stück zu finden.quelle