[РЕШЕНО]Все комментарии подписываются как Гость
20 января 2016 в 0:35
Здравствуйте!
В чем может быть проблема - комментарии от незарегистрированных пользователей подписываются, как Гость. Хотя поле имени есть и в БД информация есть.
Спасибо.
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Не путайте реальное имя и имя пользователя. В друпал по умолчанию все неавторизованные пользователи - гости.
Вы можете в шаблоне заменить вывод имени пользователя на то, что вам оставили в поле "name"
Да, я это уже понял, спасибо.
Осталось понять как выводить поле имени комментария.
Точнее, в чистой теме это показывается, а в той, которую уже "использовал" не могу найти, где это поломал.
Выяснил, что это Antispam модуль так себя ведет. Без него комментарии подписываются именами корректно.
Для начала:
Structure -> Content types -> Edit на нужном типе контента -> Comment settings
В поле Anonymous commenting ставим значение Anonymous must leave their contact information
Затем в шаблоне комментария:
<?php print($comment->name); ?>
Спасибо, буду знать.
В моём случае это модуль Antispam вырезал имена. Dev версия решила проблему.
Кстати о спаме. Разрешая анонимам комментировать - готовьтесь! Если комменты не нужны в индексе можно использовать Discqus, Gravatar и др.
Еще момент. Что если автор будет авторизованным юзером? Как правило, имя юзера выводится в виде ссылки на его профиль. Это можно решить след. функией в template.php:
<?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) {
// Sometimes modules display content composed by people who are
// not registered members of the site (e.g. mailing list or news
// aggregator modules). This clause enables modules to display
// the true author of the content.
if ($object->homepage) {
$output = l($object->name, $object->homepage);
}
else {
$output = check_plain($object->name);
}
//$output .= ' ('. t('not verified') .')';
}
else {
$output = variable_get('anonymous', t('Anonymous'));
}
return $output;
}
?>