2010-04-21 6 views
5

Es posible utilizar un editor WYSIWYG en texarea para el formulario de configuración del sitio de Drupal (system_settings_form).Editor WYSIWYG en texarea para el formulario de configuración de Drupal

Ésta es la forma en la configuración se codifica ahora ...

$form['my_module_text_bottom'] = array(
    '#type' => 'textarea', 
    '#title' => t('Some text'), 
    '#default_value' => variable_get('my_module_text_bottom', 'This is configurable text found in the module configuration.'), 
    '#size' => 1024, 
    '#maxlength' => 1024, 
    '#description' => t("Some text."), 
    '#required' => TRUE, 
); 
    return system_settings_form($form); 

Respuesta

0

Los módulos WYSIWYG o CKeditor deben ser capaces de hacer esto.

+0

sí, debe haber. Me preguntaba cómo implementar esto. – bert

+0

Personalmente me gusta CKEditor; descargaría e instalaría ese módulo, luego descargaría la biblioteca CKEditor del sitio oficial y lo colocaría en la carpeta correcta. Las instrucciones te guiarán a través de esto. – Nicholai

1

seguí buscando para este problema durante aproximadamente 6 horas y finalmente encontré la razón, para el campo de área de texto de encargo debe agregar esta línea, para utilizar el formato de entrada por defecto (Full HTML):

forma

$ [ 'formato'] = filtro_forma();

tener cuidado si se utiliza este elemento de formulario dentro de campos debe incluir esta fieldset:

forma $ [ 'donación-instrucciones'] [ 'formato'] = filter_form();

espero que esto le ayudará a

0

encontré esta pregunta similar a:

Drupal 6: Implement Wysiwyg on Custom Module Form

Una de las respuestas no señaló a esta página drupal.org:

http://drupal.org/node/358316

que proporciona ejemplos bastante detallados de la clave de matriz "format" y filter_form(), también desc cómo se usa si tu formulario tiene múltiples áreas de texto.

El enfoque dado allí no se aplica a Drupal 7.

me encontré con una situación similar donde había descargado e instalado e instalado CKEditor y exhibidas durante la edición de nodos de contenido, pero no para mostrar el área de texto en un formulario de configuración para mi módulo.

4

Aquí está for Drupal 7 y Drupal 6.

Para D7:

<?php 
    // Retrieve the default values for 'value' and 'format', if not readily 
    // available through other means: 
    $defaults = array(
    'value' => '', 
    'format' => filter_default_format(), 
); 
    $my_richtext_field = variable_get('my_richtext_field', $defaults); 

    // Just construct a regular #type 'text_format' form element: 
    $form['my_richtext_field'] = array(
    '#type' => 'text_format', 
    '#title' => t('My richtext field'), 
    '#default_value' => $my_richtext_field['value'], 
    '#format' => $my_richtext_field['format'], 
); 
?> 

Para D6:

<?php 
    // Your saved or new data is supposed to have a value and a format. Just like 
    // $node has a $node->body and $node->format. May also come from a 
    // variable_get('mymodule_admin_setting', array('value' => '', 'format' => NULL)); 
    $mydata = mymodule_data_load(); 

    $form['myfield']['mytextarea'] = array(
    '#type' => 'textarea', 
    '#title' => t('My textarea'), 
    '#default_value' => $mydata->value, 
); 
    $form['myfield']['format'] = filter_form($mydata->format); 
?> 
+1

esto es realmente una mejor respuesta ya que el módulo WYSIWYG no hará nada sin este código en su lugar. –

Cuestiones relacionadas