Я создаю плагин, используя модуль API WYSIWYG для Drupal 7, который добавит кнопку на панель инструментов поддерживаемых редакторов.
Я использую hook_wysiwyg_plugin()
хук, чтобы создать новую кнопку на панели инструментов редактора, но мне нужно загрузить несколько других файлов JavaScript. hook_wysiwyg_plugin()
Крюк , кажется, позволяет указать один JS и CSS файл.
Как я могу загрузить дополнительные необходимые файлы JavaScript, необходимые для плагина Javascript?
Я реализовал, hook_library()
чтобы определить библиотеку, т.е. файлы js / css, но я не уверен, как я подключаю это к wysiwyg api, чтобы они загружались на экранах узла / редактирования?
Ответы:
На самом деле это довольно просто, хотя мой опыт работы с тем же самым связан с Drupal 6, поэтому с моим кодом могут быть небольшие отличия:
Опять же, этот код для D6, но основной принцип все еще должен работать.
Хотя он не привязан напрямую к API-интерфейсу Wysiwyg, он, вероятно, является наилучшим вариантом, поскольку API-интерфейс Wysiwyg поддерживает только файл JS для каждого плагина (iirc).
Несколько диких / непроверенных вариантов для вас:
Сделайте обратный вызов меню для файла Javascript, определенного в плагине, и передайте обратно несколько кэшированный файл javascript, содержащий источники нескольких файлов javascript. (Wysiwyg Fields выполняет обратный вызов меню для динамически генерируемых плагинов, но только для одного файла javascript, см. Источник идей).
Используйте технологию динамической загрузки Javascript, аналогичную http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml.
Надеюсь это поможет.
источник
С drupal_add_js :
источник
Теоретически все, что вам нужно сделать, это использовать правильный параметр " #text_format " в
#type textarea
элементе FAPI для автоматического включения редактора wysiwyg, связанного с текстовым форматом, следующим образом:Тем не менее, он не включается, если это не страница «редактирования узла», так что что-то, связанное с функциями »
filter_process_format
или«wysiwyg_pre_render_text_format
», может быть в состоянии форсировать это, но я еще не нашел волшебную комбинацию, все еще читая источник модуль Wysiwyg, чтобы найти недостающую часть.источник