Изменить вид формы комментариев в Drupal

Многие веб-мастера, начинающие изучать cmf drupal, часто интересуются как темизировать (то бишь изменить вид) формы отправки комментариев. Многие же drupal-гуру отмахиваются от таких вопросов, говоря "используйте css". Так вот, css — это конечно хорошо .. display:none там, display:block тут... но нужно все таки научиться менять и html-код, выдаваемый системой. Это мы сегодня и попробуем ...

Пусть задача стоит такая: убрать из формы добавления комментариев поля "домашняя страничка" и "электронная почта", скрыть подсказки по форматированию. Сразу скажу, что я сотворял это на шестом drupal-е, но по идее, аналогичная ситуация была и на пятерке.

Итак, открываем папку вашей темы. Смотрим, есть ли там template.php — если нет — создаем, если есть — открываем редактором.

Нам нужно определить свою функцию, которая будет обрабатывать объект формы добавления комментария. Этим мы незамедлительно и займемся:

function garland_comment_form($form) {
  $form['comment_filter']['comment']['#rows'] = 5;
  $form['comment_filter']['format'] = NULL;
  $form['mail'] = NULL;
  $form['homepage'] = NULL;
  return drupal_render($form);
}

Здесь я, кроме удаления полей homepage и mail и подсказки по форматированию, задал число строк для текстареи комментария. Вобщем-то делать можно что угодно если знать что находится в $form. А узнать это проще простого:

function garland_comment_form($form) {
  var_dump($form);
}

Заметьте, что в имени функции присутствует слово garland — его обязательно нужно заменить на название вашей темы... Ну вот и все, очень надеюсь кому этот бред пригодится. По крайней мере, мне был бы этот пост очень полезен полгода-год назад :)

Добавить комментарий