Интересное

Сообщение об ошибке

Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in drupal_environment_initialize() (line 684 of /home/www/nixtalk.com/includes/bootstrap.inc).

Вид комментариев Drupal7

Опубликовано ср, 12/18/2013 - 21:43 пользователем Demontager

Если по каким-то причинам нужно убрать поле Вебсайт с формы комментариев в Drupal7, то это можно сделать несколькими способами.

1. Не совсем правильный метод, но работает (не рекомендую)
Заходим в папку /modules/comment
и редактируем comment.module
Ищем строки

  1. $form['author']['homepage'] = array(
  2. '#type' => 'textfield',
  3. '#title' => t('Homepage'),
  4. '#default_value' => $comment->homepage,
  5. '#maxlength' => 255,
  6. '#size' => 30,
  7. '#access' => $is_admin || (!$user->uid && $anonymous_contact !=
  8. COMMENT_ANONYMOUS_MAYNOT_CONTACT),
  9. );

и комментируем их, должен получится такой вид

  1. /* $form['author']['homepage'] = array(
  2. '#type' => 'textfield',
  3. '#title' => t('Homepage'),
  4. '#default_value' => $comment->homepage,
  5. '#maxlength' => 255,
  6. '#size' => 30,
  7. '#access' => $is_admin || (!$user->uid && $anonymous_contact != COMMENT_ANONYMOUS_MAYNOT_CONTACT),
  8. );
  9. */

Для подстраховки очищаем кэш. Конфигурация -> Производительность -> Очистить кеш
Но тут есть большой недостаток, после обновления ядра Drupal, код придется комментировать заново.

Спасибо автору webonlife.ru за данное решение

2. Рекомендованный метод (так сделал у себя)
Можно добавить в шаблон темы хук, который будет таким же образом скрывать поле как и первый метод.
Открываем шаблон вашей темы, для примера у меня tarski
nixtalk.com/sites/all/themes/tarski/template.php
и вставляем сразу после начала php кода

  1. function tarski_form_comment_form_alter(&$form, &$form_state) {
  2. $form['author']['homepage']['#access'] = FALSE;
  3. }

т.е., нужно вместо tarski вставить имя вашего шаблона.
При обновлении модулей Drupal, ничего не поломается как в первом методе.
Добавлено по подсказке Андрея, ответившим первым на заметку.

category_index: 
Поделится: 

4 комментария

Аватар пользователя Андрей

автор Андрей вкл вт, 12/24/2013 - 22:34

Зачем ядро курочить, есть же куча простых и поддерживаемых способов сделать это (лучше всего hook_form_alter() в теме или модуле, конечно, вот пример: gist.github.com/frankyonnetti/5944754 ).

Аватар пользователя Oleg

автор Oleg вкл чт, 12/26/2013 - 10:43

В первом способе что-т убрали во втором что-то добавили. В обох случаях нжно изменять фйлы. Преимущество второго способа в том что новые версии темы выходят гораздо реж новых версий ядра

Аватар пользователя Андрей

автор Андрей вкл чт, 12/26/2013 - 10:45

Преимущество в том, что это можо сделать в подтеме или отдельном модуле, и не зависеть от обновлений вообще.

Аватар пользователя Demontager

автор Demontager вкл ср, 12/25/2013 - 00:11

Спасибо! Я добавил этот ПРАВИЛЬНЫЙ метод.

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