Дополнительные поля в профилях пользователя, и вывод комментов

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

Аватар пользователя Ruslan413 Ruslan413 8 сентября 2008 в 20:45

Подскажите, реально ли сделать в Drupal следующее:

В поле оставления комментария, пользователь (даже Гость) вводит свое имя, мыло, веб-сайт и в отдельное поле сам текст коммента.

И после отправки коммента, в авторе коммента его имя становится гиперссылкой на веб-сайт, который он указал в соотв. поле.

Подскажите как это сделать, есть ли модули/сниппеты для этого, если нет, то какие файлы отвечают за вывод коммента.

Заранее спасибо!

Комментарии

Аватар пользователя olk olk 8 сентября 2008 в 21:25

Помоему имено такое поведение стандартно для "встроенного" модуля comment (по крайней мере в шестерке точно так и есть)

Аватар пользователя Ruslan413 Ruslan413 9 сентября 2008 в 7:32

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

Аватар пользователя olk olk 9 сентября 2008 в 9:59

Ну я имел введу для гостей, а если надо для всех, то всатавте в вашей теме (в template.php) функцию
типа этой (но учтите вывод юзера переопределится во всех местах, где выводиться юзер),
ну и замените $u->profile_homepage на то как это поле называется у вас в профиле

<?php
function phptemplate_username($object) {
  if (
$object->uid && $object->name) {
    if (
drupal_strlen($object->name) > 20) {
      
$name drupal_substr($object->name015) . '...';
    }
    else {
      
$name $object->name;
    }
   
$u=user_load(array('uid'=>$object->uid));
    if(
$u->profile_homepage) {
    
$output l(check_plain($name), $u->profile_homepage,array('attributes' => array('rel' => 'nofollow')));
    }
    else {
    
$output check_plain($name);
    }

  }
  else if (

$object->name) {
    if (!empty(
$object->homepage)) {
      
$output l($object->name$object->homepage, array('attributes' => array('rel' => 'nofollow')));
    }
    else {
      
$output check_plain($object->name);
    }
  }
  else {
    
$output variable_get('anonymous't('Anonymous'));
  }
  return 
$output;
}
?>
Аватар пользователя olk olk 9 сентября 2008 в 11:52

Данное сообщение говорит о том, что анонимный пользователь ввел Имя (которое с учетом того что можно смешать регистры (допусти русский и англиский) можно подстроить под зарегистренного пользователя (например аdmin - где первая буква русская), и соответственно скомпроментировать ник - , что бы этого не было как раз и выдается данное сообщение (в приведенной мной функции, я кстати этот участок убрал, там по идее после строк

<?php
    
else {
      
$output check_plain($object->name);
    }
?>

должна бы идти строка

<?php
    $output 
.= ' (' t('not verified') . ')';
?>