Je crée un plugin à l'aide du module API WYSIWYG pour Drupal 7 qui ajoutera un bouton à la barre d'outils des éditeurs pris en charge.
J'utilise le hook_wysiwyg_plugin()
crochet pour créer un nouveau bouton sur la barre d'outils de l'éditeur, mais je dois charger quelques autres fichiers javascript. Le hook_wysiwyg_plugin()
crochet semble vous permettre de spécifier un fichier JS et CSS.
Comment puis-je charger des fichiers javascript supplémentaires requis pour le plugin javascript?
J'ai implémenté hook_library()
pour définir une bibliothèque, c'est-à-dire des fichiers js / css, mais je ne suis pas sûr de savoir comment le connecter à l'api wysiwyg afin qu'ils se chargent sur les écrans de noeud / d'édition?
Réponses:
C'est en fait assez simple, bien que mon expérience avec la même chose soit à travers Drupal 6, donc il peut y avoir quelques différences mineures avec mon code:
Encore une fois, ce code est pour D6, mais le principe de base devrait toujours fonctionner.
Bien qu'il ne soit pas directement lié à l'API Wysiwyg, c'est probablement la meilleure option car l'API Wysiwyg ne prend en charge que le fichier JS par plug-in (iirc).
Quelques options sauvages / non testées pour vous:
Faites un rappel de menu pour le fichier Javascript défini dans le plugin et renvoyez un fichier javascript quelque peu mis en cache contenant les sources de plusieurs fichiers javascript. (Wysiwyg Fields effectue le rappel de menu pour les plugins générés dynamiquement, mais uniquement pour un fichier javascript, voir la source des idées).
Utilisez une technique de chargement Javascript dynamique Javascript similaire à http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
J'espère que cela t'aides.
la source
Avec drupal_add_js :
la source
En théorie, il vous suffit d'utiliser le bon paramètre " #text_format " sur l'
#type textarea
élément FAPI pour que l'éditeur wysiwyg associé au format texte soit automatiquement inclus, de cette façon:Cependant, il n'est pas inclus sauf s'il s'agit d'une page de "modification de nœud", donc quelque chose lié aux fonctions "
filter_process_format
" ou "wysiwyg_pre_render_text_format
" peut être en mesure de le forcer, mais je n'ai pas encore trouvé la combinaison magique, toujours en lisant la source de le module Wysiwyg pour trouver la pièce manquante.la source