Настройка формы комментария - PullRequest
1 голос
/ 04 февраля 2011

У меня есть сайт drupal 7, и я хочу настроить форму комментария так, чтобы она всегда была в виде простого текста (независимо от пользователя и того, прошли ли они проверку подлинности). Так как настройка формата текста будет исправлена, я хочу удалить маленькое пятно, которое появляется внизу тела комментария.

В общем, как мне настроить внешний вид формы комментария?

UPDATE

В соответствии с инструкциями Бердира я добавил функцию #after_build. Я сделал это, добавив функцию hook_form_comment_form_alter в мой файл template.php. Эта новая функция и пользовательская функция, которую она вызывает, приведены ниже:

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 в #after_build в обоих местах в массиве $form, показанном в коде. Я получаю одинаковые результаты для обоих, поле формы тела комментария просто исчезает.

Я не перезаписываю существующие функции после сборки. $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 ]

1 голос
/ 05 августа 2011

Чтобы удалить поле фильтров под телом комментария, вы можете использовать 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;
}

Хотя я не уверен, приведет ли это к нарушению других функций при сокрытии этого класса.

0 голосов
/ 04 февраля 2011

Я сделал что-то похожее для http://drupal.org/project/privatemsg

Сначала добавьте функцию #after_build в поле формы тела, например, этот массив "#after_build" => ("privatemsg_check_format_access ')", так какВы изменяете форму, сначала проверьте, существует ли уже такая функция, затем добавьте ее, не переопределяйте)

Затем в этой функции вы устанавливаете #access поля формата в FALSE и принудительно используете #default_value для всего, что вы хотите.См. privatemsg_check_format_access

...