Anexar WYSIWYG ao formulário Drupal

12

Com um formulário Drupal personalizado, como você pode anexar a funcionalidade WYSIWYG a uma área de texto com o módulo WYSIWYG?

Kevin
fonte
Eu encontrei a solução apresentada por moon.watcher e Dylan Tack funciona perfeitamente.

Respostas:

2

revise essa indicação no Drupal 7 (com uma pequena indicação no drupal 6) http://drupal.org/node/1031160 . especificamente, é sobre como exibir um editor dentro da área de texto no drupal 7, então acho que poderia ser útil começar (parece que o último comentário tem uma maneira testada).

pode ser uma alternativa para fazer isso em vez disso / com o WYSIWYG.

cigotete
fonte
8

O módulo wysiwyg está vinculado ao sistema de formato de entrada.

Use '#type' => 'text_format'ao definir sua área de texto.

Dylan Tack
fonte
7

Você deve usar type = 'text_format' em vez da área de texto. e format = 'editor_format'. O código ficará assim.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);
Paulson Peter
fonte
Esta é a opção correta. Mas não consigo obter safe_value no formulário.
Guru
4

Aqui é minha:

$form['my_module_my_form_my_field'] = array(
  '#type' => 'text_format',
  '#title' => t('Awesome title'),
  '#format' => isset($edit['format']) ? $edit['format'] : NULL,
  '#base_type' => 'textarea',
  '#default_value' => variable_get('my_module_my_form_my_field', '')['value'],
  '#description' => t("Awesome description."),
  '#required' => FALSE,
  '#maxlength' => 500,
);

Eu tive que adicionar o ['value']ao #default_valuefazer com que ele não estava sendo carregado depois salvos.

Referência da API do formulário 7x

Francisco Corrales Morales
fonte
1
Uau, de fato, o variable_get('foo', '')['value']sufixo é realmente necessário.
Leymannx # 22/18
0

O módulo WYSIWYG é apenas uma maneira de usar um dos muitos editores de wysiwyg existentes. Depois de instalar o módulo wysiwyg ( http://drupal.org/project/wysiwyg ), vá para a configuração do módulo (admin / config / content / wysiwyg). Haverá instruções de instalação para muitos editores do Wysiwyg disponíveis. Por exemplo, para FCKeditor, ele diz o seguinte:

Extraia o arquivo morto e copie seu conteúdo para uma nova pasta no seguinte local: sites / all / libraries / fckeditor

Portanto, a biblioteca real pode ser encontrada em: sites / all / libraries / fckeditor / fckeditor.js

Então, baixe o editor, extraia o arquivo para o diretório especificado. Depois de fazer isso (supondo que você tenha feito isso corretamente), você poderá alterar o editor para determinados formatos de entrada na tela de configuração do Wysiwyg. Você precisará atribuir operações diferentes para cada tipo (HTML filtrado, HTML completo, etc.). Clique em "Editar" em operações dentro de admin / config / content / wysiwyg na linha para o formato de entrada em que você estiver interessado. A partir daqui, verifique quais botões deseja.

mrryanjohnston
fonte
O CKEditor também pode ser instalado "autônomo", sem usar o editor WYSIWYG. Veja drupal.org/project/ckeditor .
precisa saber é o seguinte
0

Parece que não é possível com o Wysiwyg versão 7.x-2, mas o construtor de formulários para as configurações de perfil usa a seguinte matriz:

  $profile['settings'] += array(
    'default' => TRUE,
    'user_choose' => FALSE,
    'show_toggle' => TRUE,
    'theme' => 'advanced',
    'language' => 'en',
    'access' => 1,
    'access_pages' => "node/*\nuser/*\ncomment/*",
    'buttons' => array(),
    'toolbar_loc' => 'top',
    'toolbar_align' => 'left',
    // ...
  );

O índice da matriz "access_pages" permitiria definir para quais páginas o editor é mostrado, mas o módulo não fornece nenhum campo de formulário para alterar esse código, nem nenhuma função usa esse valor.

Pode ser que o valor tenha sido usado nas versões anteriores e o código para manipulá-lo ainda esteja sendo portado ou essa opção esteja sendo introduzida nas próximas versões do módulo.

kiamlaluno
fonte