Buduję wtyczkę za pomocą modułu API WYSIWYG dla Drupala 7, który doda przycisk do paska narzędzi obsługiwanych edytorów.
Używam hook_wysiwyg_plugin()
haka, aby utworzyć nowy przycisk na pasku narzędzi edytora, ale muszę załadować kilka innych plików javascript. hook_wysiwyg_plugin()
Hak wydaje pozwalają określić jeden plik CSS i JS.
Jak mogę załadować dodatkowe wymagane pliki javascript wymagane dla javascript wtyczki?
Wdrożyłem hook_library()
zdefiniować bibliotekę tj. Pliki js / css, ale nie jestem pewien, jak podpiąć to do wysiwyg api, aby ładowały się na ekranach węzła / edycji?
Odpowiedzi:
To właściwie dość proste, chociaż moje doświadczenie z robieniem tego samego dotyczy Drupala 6, więc mogą występować niewielkie różnice w moim kodzie:
Ponownie, ten kod dotyczy D6, ale podstawowa zasada powinna nadal działać.
Chociaż nie jest bezpośrednio powiązany z interfejsem API Wysiwyg, jest to prawdopodobnie najlepsza opcja, ponieważ interfejs API Wysiwyg obsługuje tylko plik JS na wtyczkę (iirc).
Kilka dzikich / nieprzetestowanych opcji dla Ciebie:
Wykonaj wywołanie zwrotne menu dla pliku JavaScript zdefiniowanego we wtyczce i przekaż nieco buforowany plik javascript zawierający źródła wielu plików javascript. (Wysiwyg Fields wykonuje wywołanie zwrotne menu dla dynamicznie generowanych wtyczek, ale tylko dla jednego pliku javascript, zobacz źródło pomysłów).
Użyj dynamicznej techniki ładowania JavaScript Javascript podobnej do http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
Mam nadzieję że to pomoże.
źródło
Z drupal_add_js :
źródło
Teoretycznie wszystko, co musisz zrobić, to użyć odpowiedniego parametru „ #text_format ” w
#type textarea
elemencie FAPI, aby edytor wysiwyg powiązany z formatem tekstowym był automatycznie dołączany, w ten sposób:Jednak nie zostanie uwzględnione, chyba że jest to strona „edycji węzła”, więc coś związanego z funkcjami „
filter_process_format
” lub „wysiwyg_pre_render_text_format
” może być w stanie wymusić, ale nie znalazłem jeszcze magicznej kombinacji, wciąż czytając źródło moduł Wysiwyg, aby znaleźć brakujący element.źródło