Включите WYSIWYG для настраиваемого поля формы textarea в drupal - PullRequest
3 голосов
/ 21 июня 2011

Я создал пользовательскую форму в моем пользовательском модуле drupal6, и форма имеет текстовое поле. Я вывожу форму в виде html, встроенного в код php, как показано ниже:

function custom_my_form() 
{
$f = '<form name="add_user" action="" method="post">
<label>  Name </label>
<p><input type="text" name="name" value="" /></p>
<label>About Yourself</label>
<p><textarea name="desc"></textarea></p>
<input type="submit" name="submit" value="Add">
</form>';

return $f;
}

Я установил и включил модуль WYSIWYG. Мой формат ввода по умолчанию - «Фильтрованный HTML», и я выбрал редактор FCK для этого формата ввода.

Теперь я хочу включить WYSIWYG для поля textarea в этой форме. Как я могу продолжить это?

Ответы [ 4 ]

9 голосов
/ 03 июля 2011

Ну, как бы вы ни создавали формы, зависит только от вас, зависит только, вернется ли он когда-нибудь, чтобы кусать вас в задницу ...

Посмотрите на модуль комментариев.Я заметил, что можно было выбрать формат ввода для комментариев, и когда был выбран полный / отфильтрованный HTML, включился редактор WYSIWYG. Вот соответствующий код:

$form['comment_filter']['comment'] = array(
  '#type' => 'textarea',
  '#title' => t('Comment'),
  '#rows' => 15,
  '#default_value' => $default,
  '#required' => TRUE,    

);
if (!isset($edit['format'])) {
  $edit['format'] = FILTER_FORMAT_DEFAULT;
}
$form['comment_filter']['format'] = filter_form($edit['format']);

Итак, вы определяете массивс двумя элементами, одним из которых является сама текстовая область, а другим - средство выбора формата, сгенерированное filter_form, и все.

Это было из http://groups.drupal.org/node/104604

9 голосов
/ 10 апреля 2013

Для D7 это даже просто. Мы получили новый тип с именем text_format.

$form['comment'] = array('#type' => 'text_format', 
                         '#format' => 'full_html', 
                         '#title' => t('Description'), 
                         '#required' => TRUE);
3 голосов
/ 26 декабря 2013

Да, вы можете сделать это.Просто добавьте следующий javascript на свою страницу.

<script src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
<script>
        tinymce.init({selector:'textarea'});
</script>

Этот скрипт автоматически преобразует текстовые области в вашем HTML-коде в редакторы форматированного текста

Подробнее по этой ссылке .

1 голос
/ 21 июня 2011

Во-первых, вы не должны создавать подобные формы.Вместо этого используйте встроенный в Drupal Forms API.Посмотрите Краткое руководство по API форм для получения дополнительной информации.

Эта страница на сайте Drupal поможет вам добавить WYSIWYG в свои пользовательские формы: http://drupal.org/node/358316

...