为drupal中的自定义textarea表单字段启用WYSIWYG

时间:2011-06-21 14:22:35

标签: php drupal drupal-6 wysiwyg

我在自定义drupal6模块中创建了一个自定义表单,该表单有一个textarea。 我输出的表单是嵌入在php代码中的html,如下所示:

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模块。 我的默认输入格式是“Filtered HTML”,我为这种输入格式选择了FCK编辑器。

现在我想在此表单中为textarea字段启用WYSIWYG。 我怎么能继续这个呢?

4 个答案:

答案 0 :(得分:9)

嗯,你创作表单的方式取决于你,这取决于它是否曾经让你在屁股上咬你...

查看评论模块。我注意到可以为注释选择输入格式,当选择完整/过滤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']);

因此,您定义了一个包含两个元素的数组,其中一个是textarea本身,另一个是filter_form生成的格式选择器,这就是全部。

这来自http://groups.drupal.org/node/104604

答案 1 :(得分:9)

对于D7来说,它甚至简单。我们得到了一个名为text_format的新类型。

$form['comment'] = array('#type' => 'text_format', 
                         '#format' => 'full_html', 
                         '#title' => t('Description'), 
                         '#required' => TRUE);

答案 2 :(得分:3)

是的,你可以这样做。只需将以下javascript添加到您的页面即可。

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

此脚本会自动将html代码中的文本区域转换为富文本编辑器

link的更多信息。

答案 3 :(得分:1)

首先,您不应该创建这样的表单。相反,使用Drupal的内置Forms API。有关详细信息,请查看Form API Quickstart Guide

Drupal网站上的这个页面将帮助您将WYSIWYG添加到自定义表单中:http://drupal.org/node/358316