我在自定义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。 我怎么能继续这个呢?
答案 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生成的格式选择器,这就是全部。
答案 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