WYSIWYG редактор в texarea для формы конфигурации Drupal - PullRequest
5 голосов
/ 21 апреля 2010

Можно ли использовать редактор WYSIWYG в Техасе для формы конфигурации сайта Drupal (system_settings_form).

Вот как теперь кодируется конфигурация ...

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

Ответы [ 4 ]

4 голосов
/ 03 июня 2012

Вот оно для Drupal 7 и Drupal 6 .

Для 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'],
  );
?>

Для 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 голос
/ 05 декабря 2010

Я продолжал искать эту проблему около 6 часов, и, наконец, я нашел причину: для своего настраиваемого поля textarea необходимо добавить эту строку, чтобы использовать формат ввода по умолчанию (полный HTML):

$ form ['format'] = filter_form ();

будьте осторожны, если вы используете этот элемент формы внутри набора полей, вы должны включить этот набор полей:

$ form ['инструкции-пожертвования'] ['format'] = filter_form ();

Я надеюсь, что это поможет вам

0 голосов
/ 07 апреля 2012

Я нашел этот вопрос похож на:

Drupal 6: реализовать Wysiwyg в пользовательской форме модуля

Один из ответов там указывал на страницу drupal.org:

http://drupal.org/node/358316

, который предоставляет довольно подробные примеры ключа массива "format" и filter_form (), а также описывает, как он используется, если ваша форма имеет несколько текстовых областей.

Приведенный здесь подход не относится к Drupal 7.

Я столкнулся с подобной ситуацией, когда я скачал и установил и установил CKEditor, и он отображался при редактировании узлов содержимого, но не отображался для текстовой области в форме конфигурации для моего модуля.

0 голосов
/ 22 апреля 2010

Модули WYSIWYG или CKEditor должны это делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...