我有一个drupal 7网站,并希望自定义评论表单,使其始终为纯文本(无论用户是否以及是否经过身份验证)。由于文本格式设置将被修复,我想删除评论正文底部显示的小模糊。
一般来说,如何自定义评论表单的外观?
更新
根据Berdir的指示,我添加了#after_build功能。我通过在template.php文件中添加hook_form_comment_form_alter
函数来完成此操作。该新功能及其调用的自定义功能如下:
function mytheme_form_comment_form_alter(&$form, &$form_state, &$form_id)
{
$form['comment_body']['#after_build'][] = 'configure_comment_form';
//$form['comment_body']['und']['#after_build'][] = 'configure_comment_form';
}
function configure_comment_form(&$form, &$param1, &$param2)
{
var_dump($form);
}
很明显,我可以告诉我configure_comment_form
函数在var_dump
被打印出来时被调用。我已经尝试将configure_comment_form
添加到代码中显示的$form
数组中的#after_build。我得到两者相同的结果,评论正文表格字段就会消失。
我没有覆盖任何现有的构建后功能。我向其添加函数时$form['comment_body']['#after_build']
不存在,$form['comment_body']['und']['#after_build']
在添加自定义函数后如下所示:
["#after_build"]=>
array(2) {
[0]=>
string(30) "field_form_element_after_build"
[1]=>
string(22) "configure_comment_form"
}
答案 0 :(得分:1)
要删除评论正文下的过滤器框,您可以使用主题的template.php来实现以下挂钩:
function theme_filter_tips($variables) {
return '';
}
function theme_filter_tips_more_info() {
return '';
}
function theme_filter_guidelines($variables) {
return '';
}
这只留下过滤器/提示框的轮廓,可以在主题的CSS中使用:
.filter-wrapper {
display: none;
}
虽然我不确定是否会因隐藏该类而导致其他功能中断。
答案 1 :(得分:0)
我为http://drupal.org/project/privatemsg
做了类似的事情首先,将#after_build函数添加到正文表单字段中,例如“'#after_build'=>数组('privatemsg_check_format_access'),”(因为您正在更改表单,请先检查是否已存在此类函数然后追加它,不要覆盖)
然后,在该函数中,将format字段的#access设置为FALSE并强制#default_value为您想要的任何内容。见privatemsg_check_format_access