Adjunte WYSIWYG al formulario Drupal


12

Con un formulario Drupal personalizado, ¿cómo puede adjuntar la funcionalidad WYSIWYG a un área de texto con el módulo WYSIWYG?


Encontré que la solución presentada por moon.watcher y Dylan Tack funciona perfectamente.

Respuestas:


2

revise esta indicación a Drupal 7 (con una pequeña indicación a drupal 6) http://drupal.org/node/1031160 . específicamente se trata de cómo mostrar un editor dentro de textarea en drupal 7, por lo que supongo que podría ser útil para comenzar (parece que el último comentario tiene una forma probada).

puede ser una alternativa para hacer esto en su lugar / con WYSIWYG.


8

El módulo wysiwyg está vinculado al sistema de formato de entrada.

Úselo '#type' => 'text_format'cuando defina su área de texto.


7

Debería usar type = 'text_format' en lugar del área de texto. y format = 'editor_format'. El código se verá así.

$form['description'] = array(
  '#type' => 'text_format',
  '#title' => t('Description'),
  '#format' => 'full_html' //the format used for editor.
);

Esta es la opción correcta. Pero no puedo obtener safe_value en forma.
Guru

4

Aquí esta el mio:

$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,
);

Tuve que agregar el ['value']a la #default_valuecausa porque no se estaba cargando después de guardarlo.

7x Formulario de referencia de API


1
Wow, de hecho, el variable_get('foo', '')['value']sufijo es realmente necesario.
leymannx

0

El módulo WYSIWYG es solo una forma de utilizar uno de los muchos editores wysiwyg que existen. Una vez que instale el módulo wysiwyg ( http://drupal.org/project/wysiwyg ), vaya a la configuración del módulo (admin / config / content / wysiwyg). Habrá instrucciones de instalación para muchos editores Wysiwyg disponibles. Por ejemplo, para FCKeditor, dice lo siguiente:

Extraiga el archivo y copie su contenido en una nueva carpeta en la siguiente ubicación: sitios / todos / bibliotecas / fckeditor

Por lo tanto, la biblioteca real se puede encontrar en: sitios / todos / bibliotecas / fckeditor / fckeditor.js

Entonces, descargue el editor, extraiga el archivo en el directorio dado. Una vez que haga esto (suponiendo que lo haya hecho correctamente), podrá cambiar el editor para los formatos de entrada dados en la pantalla de configuración de Wysiwyg. Luego deberá asignar diferentes operaciones para cada tipo (HTML filtrado, HTML completo, etc.). Haga clic en "Editar" en las operaciones dentro de admin / config / content / wysiwyg en la fila para el formato de entrada que le interese. Desde aquí, marque qué botones desea.


El CKEditor también se puede instalar "autónomo", sin usar el editor WYSIWYG. Ver drupal.org/project/ckeditor .
Jorrit Schippers

0

No parece que sea posible con Wysiwyg versión 7.x-2, pero el generador de formularios para la configuración del perfil utiliza la siguiente 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',
    // ...
  );

El índice de matriz "access_pages" permitiría establecer para qué páginas se muestra el editor, pero el módulo no proporciona ningún campo de formulario para cambiar ese código, ni ninguna función usa ese valor.

Podría ser que ese valor se usó en versiones anteriores, y el código para manejarlo todavía se está transfiriendo, o esa opción se está introduciendo en las próximas versiones del módulo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.