Вы не зашли.
Косяк
Гости могут использовать логины зарегистрированных пользователей.
Вопрос меняет поворот:
Как убрать вообще формы логина, пароля, мейла для гостей и тех, кто добавляет комменты без регистрации помечать, как "гость" в авторстве комментария?
Зарегистрированный пользователь всегда сможет воспользоваться формой логина вверху сайта на мой взгляд...
Не в сети
Тaк удобнe зaто, но дaную форму можно просто удaлить с дизaйнa.
xmpp://ngcms@conf.ngcms.ru
Настройка клиента для подключения к конференции
Не в сети
Реализовал.. Если кому интересно, прилагаю инструкцию (Администраторы cms, поправьте меня, если я где накосячил):
1. добавляем в файл
...engine/lang/russian/site/comments.ini
guest = "Гость"
...engine/lang/english/site/comments.ini
guest = "Guest"
2. редактируем файл ...engine/plugins/comments/inc/comments.add.php
Комментируем следующие отрезки кода:
if ($_POST['name'] && $_POST['password']) {
$auth = $AUTH_METHOD[$config['auth_module']];
$user = $auth->login(0, $_POST['name'], $_POST['password']);
if (!is_array($user)) {
msg(array("type" => "error", "text" => $lang['comments:err.password']));
return;
}
}
$SQL['mail'] = secure_html(trim($_POST['mail']));
if (!$SQL['author']) {
msg(array("type" => "error", "text" => $lang['comments:err.name']));
return;
}
if (!$SQL['mail']) {
msg(array("type" => "error", "text" => $lang['comments:err.mail']));
return;
}
// Check if author name use incorrect symbols. Check should be done only for unregs
if ((!$SQL['author_id']) && (preg_match("/[^(\w)|(\x7F-\xFF)|(\s)]/", $SQL['author']) || strlen($SQL['author']) > 60)) {
msg(array("type" => "error", "text" => $lang['comments:err.badname']));
return;
}
if (strlen($SQL['mail']) > 70 || !preg_match("/^[\.A-z0-9_\-]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $SQL['mail'])) {
msg(array("type" => "error", "text" => $lang['comments:err.badmail']));
return;
}
// Check if guest wants to use email of already registered user
if (pluginGetVariable('comments', 'guest_edup_lock')) {
if (is_array($mysql->record("select * from ".uprefix."_users where mail = ".db_squote($SQL['mail'])." limit 1"))) {
msg(array("type" => "error", "text" => $lang['comments:err.edupmail']));
return;
}
}
Закомментировать - значит поставить перед каждой строчкой кода //.
Заменяем
$SQL['author'] = secure_html(convert(trim($_POST['name'])));
на
$SQL['author'] = $lang['guest'];
Затем из шаблона формы можно смело убирать поля для введения мейла, логина и пароля.
Смысл саюжа: Если вашим гостям разрешено оставлять комментарии, то ничего кроме капчи им вводить не нужно. + поскольку они все будут с именем "Гость", то логины зарегистрированных юзеров использовать не смогут.
Не в сети
А как сделать так, что бы указание емейла для незарегистрированных было не обязательным, но возможным. И если незарегистрированный пользователь указывает логин и(или) емайл, то они не должны совпадать с логином и(или) емейлом зарегистрированных пользователей
Не в сети