[Решено] Ссылка в коментарии в имени Гостя, можно отключить ?

Главные вкладки

Аватар пользователя Shedko Shedko 26 июля 2008 в 6:40

На сайте разрешено оставлять комментарии не зарегистрированным пользователям, и при создании комментария есть поле "Домашняя страничка", она используется потом как ссылка для имени гостя.

Т.е. сейчас после размещения имя пользователя будет в виде

 
<div class="c_userlink"><a href="http://drupal.ru/forum" >Кто-то</a> (не проверено)

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

т.е. хотелось бы чтобы осталось только

 
<div class="c_userlink">Кто-то (не проверено)

Если можно, то не через ява-скрипт, так как поисковые-пауки тогда все равно увидят эти ссылки, если удалять скриптом.

Комментарии

Аватар пользователя EllECTRONC EllECTRONC 26 июля 2008 в 14:40

А в настройках комментариев вы, конечно же, не смотрели!!!
Там нужно птичку переместить, и тогда анонимусам не будет разрешено оставлять контактную информацию.
Либо же смотрите в вашей теме файл comment.tpl.php и химичьте там.

Аватар пользователя Shedko Shedko 26 июля 2008 в 17:06

EllECTRONC,

Да если я отключу ввод информации о госте, то все комментарии будут "безличными", т.е. нельзя будет ввести имя. А это не хорошо и не логично.

А в comment.tpl.php , скорее всего и придется, и вроде даже логично. Но еще не понимаю как, ведь этого пользователя нет в базе, соответственно обращение к нему по $user невозможно.

<?php
  global $user;
  $curr_user = user_load(array('uid' => $userid));
  $user_name = $curr_user->name;
?>

Надо смотреть, что доступно у комментария.

Аватар пользователя Shedko Shedko 26 июля 2008 в 19:42

В общем, если кому будет надо:

в template.php добавляем:

<%
function mytheme_username($object) {
if ($object->uid && $object->name) {
if (drupal_strlen($object->name) > 20) {
$name = drupal_substr($object->name, 0, 15) .'...';
}
else {
$name = $object->name;
}

if (user_access('access user profiles')) {
$output = l($name, 'user/'. $object->uid,
array('title' => t('View user profile.')));
}
else {
$output = check_plain($name);
}
}
else if ($object->name) {
$output = check_plain($object->name);
}
else {
$output = variable_get('anonymous', t('Anonymous'));
}
return $output;
}
%>

в comment.tpl.php ищем место вывода имени автора комментария , это может быть
<%
print t('!date — !username', array('!username' => theme('username', $comment),
'!date' => format_date($comment->timestamp)));

print $submitted

print $author

%>

в общем, найдите, что у вас выводит имя автора комментария и замените на
<%
print mytheme_username ($comment) ?
%>

Т.е. теперь для зарегистрированных будет выводиться ссылка на их профиль, а для не зарегистрированных - просто ник. Но в админке, в модерировании комментариев эти ссылки будут видны.

Не знаю насколько это оптимальное решение, но другого я пока не знаю

Аватар пользователя iltmpz iltmpz 26 ноября 2008 в 20:27

Ужас как мудрено и невежливо: человек указывал дом. страницу, а ему фиг. Да и если он делает массовую рассылку по сайтам, ссылка конечно не появится, а бредовый коммент будет.
Я по-другому сделал: http://www.drupal.ru/node/9635
(прошу прощения за правку модуля ядра)

Аватар пользователя Shedko Shedko 30 ноября 2008 в 21:25

"iltmpz" wrote:
человек указывал дом. страницу, а ему фиг.

В вашем варианте ему тоже "фиг" Smile
Да и ядро стараюсь не менять, ибо память короткая и могу не вспомнить что когда-то давно менял.

Хотя у вас и попроще реализация, вроде можно и запомнить =), а не вставлять такую тучу кода.

Аватар пользователя iltmpz iltmpz 17 декабря 2008 в 1:56

"Shedko" wrote:
В вашем варианте ему тоже "фиг" =)

Согласен, в общем-то - набирал текст, указывал дом. страницу, и ошибка.
По-хорошему, надо бы убрать еще поле ввода дом. страницы...

У меня главное что: спамеры рассылают тупые комменты, а то и просто мусор. и не факт, что при этом они потом смотрят, появилась их ссылка или нет. А сайт засоряется. А вот если просто не публиковать такой ответ, мусора не будет.

"Shedko" wrote:
Да и ядро стараюсь не менять, ибо память короткая и могу не вспомнить что когда-то давно менял.

Полностью согласен: только что обновился, и конечно мой патч перестал работать. Пришлось заново править.

Тогда вопрос:
А вот можно ли как-нибудь переопределить функцию comment_validate модуля comment своим модулем?
Или друпал так не умеет?