自定义评论表格的外观

时间:2011-02-04 04:01:36

标签: php drupal drupal-7

我有一个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"
      }

2 个答案:

答案 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