Estou construindo um plug-in usando o módulo API WYSIWYG do Drupal 7 que adicionará um botão à barra de ferramentas dos editores suportados.
Estou usando o hook_wysiwyg_plugin()
gancho para criar um novo botão na barra de ferramentas do editor, mas preciso carregar alguns outros arquivos javascript. O hook_wysiwyg_plugin()
gancho parece permitir que você especifique um arquivo JS e CSS.
Como posso carregar arquivos javascript extra necessários para o plugin javascript?
Eu implementei hook_library()
para definir uma biblioteca, ou seja, arquivos js / css, mas não tenho certeza de como vinculo isso à wysiwyg api para que eles carreguem nas telas de nó / edição?
Respostas:
Na verdade, é bastante simples, embora minha experiência em fazer a mesma coisa seja no Drupal 6, portanto, pode haver algumas pequenas diferenças no meu código:
Novamente, esse código é para D6, mas o princípio básico ainda deve funcionar.
Embora não esteja vinculada diretamente à API Wysiwyg, é provavelmente a melhor opção, pois a API Wysiwyg suporta apenas arquivos JS por plug-in (iirc).
Algumas opções selvagens / não testadas para você:
Faça um retorno de menu para o arquivo Javascript definido no plug-in e devolva um arquivo javascript em cache que contém as fontes de vários arquivos javascript. (O Wysiwyg Fields faz o retorno de chamada do menu para plugins gerados dinamicamente, mas apenas para um arquivo javascript, consulte a fonte para obter idéias).
Use uma técnica de carregamento Javascript dinâmico Javascript semelhante a http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml
Espero que isto ajude.
fonte
Com drupal_add_js :
fonte
Em teoria, tudo que você precisa fazer é usar o parâmetro " #text_format " correto no
#type textarea
elemento FAPI para que o editor wysiwyg associado ao Formato de texto seja incluído automaticamente, desta maneira:No entanto, ele não é incluído, a menos que seja uma página de "edição de nó"; portanto, algo relacionado às funções "
filter_process_format
" ou "wysiwyg_pre_render_text_format
" pode forçá-lo, mas ainda não encontrei a combinação mágica, ainda lendo a fonte de o módulo Wysiwyg para encontrar a peça que falta.fonte