Странно не видеть в настройках друпала, функции, отключающей поля и кнопки в форме добавления комментариев. Например часто возникает ситуация когда поле Домашняя страница не желательно. Есть несколько способов удалить его.
Первый способ: CSS
Самый простой способ это скрыть поле с помощью CSS. Добавляем в ваш файл стилей:
#comment-form #edit-homepage-wrapper {
display: none;
}
Минусы: роботы и особо внимательные пользователи смогут заполнить это поле, поэтому советую избавиться от него и в списке комментариев с помощью темизации файла comment.tpl.php
Второй способ: правка ядра
Открываем файл comment.module и комментируем следующий код
$form['homepage'] = array('#type' => 'textfield', '#title' => t('Homepage'), '#maxlength' => 255, '#size' => 30, '#default_value' => $edit['homepage']);
т.е исправляем на
// $form['homepage'] = array('#type' => 'textfield', '#title' => t('Homepage'), '#maxlength' => 255, '#size' => 30, '#default_value' => $edit['homepage']);
в двух местах - строчка 1351 и 1358. Не советую этот способ, так как при очередном обновлении друпала всё придётся проделывать заново.
Третий способ: создание модуля
Создаём папку comments_without_homepage в sites/all/modules. Создаём в ней два файла, comments_without_homepage.info
$Id$
name = Comments Without Homepage
description = Remove homepage input
version = 6.x-0.1
core = 6.x
и comments_without_homepage.module
function comments_without_homepage_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'comment_form') {
unset($form['homepage']);
}
}
Идём в раздел управления модулями и включаем модуль Comments Without Homepage. Ссылка на готовый модуль
Четвёртый способ: с помощью template.php и preg_replace
В папке темы создаём, если его ещё нет, файл template.php и добавляем туда функцию:
function phptemplate_form($element) {
if ($element['#id'] == 'comment-form') {
$element['#children'] = preg_replace('#<div class="form-item" id="edit-homepage-wrapper">.*</div>#isU', '', $element['#children']);
}
return theme_form($element);
}
Очищаем кэш.
Пятый способ: с помощью template.php
В папке темы создаём, если его ещё нет, файл template.php и добавляем туда две функции:
function THEMENAME_theme() {
return array(
'comment_form' => array(
'arguments' => array('form' => NULL),
),
);
}
function THEMENAME_comment_form($form) {
unset($form['homepage']);
return drupal_render($form);
}
Очищаем кэш. Это возможно самый правильный вариант.
По материалам drupal.org и drupal.ru
Комментарии
Делается проще
<?php //comment-form.tpl.php
$form['homepage'] = null;
print drupal_render($form);
?>
видел этот вариант на drupal.org, но у меня он так и не заработал
У меня не заработал 5 способ, который самый оптимальный-)
надеюсь вместо ID-ВАШЕЙ-ТЕМЫ не забыли прописать название темы? :) на этом блоге используется именно пятый способ
Конечно стояло название, не знаю причину неработоспособности. Меня устроил вариант с шаблоном-)
Установил модуль - сработало. По-крайней мере, это самое незапарное решение. Большое спасибо!
А в Drupal 7 как можно скрыть/удалить поле Домашняя страница? Попробовал несколько способов, ничего не вышло.
В 7ке по примеру Stan Ezersky делается так:
в файле comment-wrapper.tpl.php
От пятого способа начал вылетать денвер на локалке, на рабочий сайт не стал пробовать...
В итоге в настройках типа материала поставил выпадающий список настройки камментов в положение "Анонимные пользователи не могут оставлять контактную информацию"
Пропала домашняя страница и имеил... На практике же если человек пишет нехороший каммент то имеил оставляет левый меил...
за инфу спасибо
Надеюсь я по теме... если, что, то поправьте меня на будущее.
Drupal 7 - добавил в свой модуль
Но траблы в том что при отправке формы комента - сообщение об ошибке выводится, а поля не подсвечиваются? Может из-за того что форма отправлена со страницы node/nid а сообщение об ошибке выводится на странице /comment/reply/nid ? Или в чём то другом?
почитайте про валидацию составных полей
Я чайник в коде. А где увидеть ID моей темы для пятого способа?
название папки с темой
То есть не ID-ВАШЕЙ-ТЕМЫ а ТHEME_NAME правильнее...)))
Понял.. Спасибо, но не помогло.. Просто ошибку выдаёт на белом экране.. Версия друпал 7.15 . Третий день парюсь. В итоге адмика темы оформления закосячилась из-за всех моих действий, а толку нет. Где намудрил бог его знает.
И так и не решил два вопроса:
1. Как сделать поля Имя и Почта в одну строчку.
2. Как убрать поле Домашняя страница.
Завтра четвёртый день запары будет, оО
тебя, честно, жалко. это же просто семечки...)))
Кстати, вместо имя_темы можно использовать универсальное: phptemplate_... (в любой теме)
Есть хороший модуль: http://drupal.org/project/devel_themer
А если белый экран, ты смотришь ошибку в логах?
в семёрке из админки отключается: Structure - Content types - ... - edit - Comment settings - Anonymous commenting = Anonymous posters may not enter their contact information
Белый экран - пишет "Синтаксическая ошибка". А в настройках "Anonymous posters may not enter their contact information" тогда и поле e-mail прячется, а оно мне нужно для подписки на комментарии для анонимов.
Модуль завтра посмотрю.. Как я понял он лишь формирует код или сразу правит как надо?
http://xandeadx.ru/blog/drupal/12#comment-4324
Спасибо большое! Сделал с помощью предложенного вами готового модуля.
А как добавить название статьи к "Комментарии", который отображается вначале всех комментариев. Например вот так Комментарии к Как удалить поле "Домашняя страница" из формы добавления комментария. И после этого идут уже все комментарии. На вордпресс было легко вывести Заголовок статьи рядом с "Комментарии".
Я пробовала сделать это в шаблоне templates/comment-wrapper.tpl.php, но не знаю какой код прописать чтобы название статьи и тут тоже отобразилось. Вы можете помочь с решением этой задачи? Спасибо.
Спасибо, помогло.
Вставила
выше уже имеющейся в шаблоне строки
Но (к предыдущему комменту).
Поле "Домашняя страница" появилось в форме коммента 2 уровня
5-й метод не сработал. Не стал разбираться почему.
У меня это сработало:
А как добавить в поле комментария какой-нибудь свой текст? Типа подсказки, мол "Опишите достоинства и недостатки товара". И текст должен убираться при установке в поле курсора.
Мне кажется, что этот пост близок к моей проблеме.
Drupal 6
Добавить комментарий