Подписка гостей на новые комментарии
В DLE комментировать ваши записи могут не только пользователи сайта, но и гости. Для этого необходимо лишь настроить соответствующие правила для групп пользователей в панели управления сайта. Но вот гостям запрещено подписываться на обновления комментариев к материалу. Исправим это применив данный хак.
Установка:
1. Открыть templates/ваша_тема/addcomments.tpl и найти:
<input type="text" name="mail" id="mail" class="f_input"/>
Добавить параметр required:
<input type="text" name="mail" id="mail" class="f_input" required/>
тем самым сделать его обязательным для заполнения.
2. Открыть engine/modules/show.full.php и найти:
if ($config['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe']) $allow_subscribe = true; else $allow_subscribe = false;
Заменить на:
if ($config['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe'] OR !$is_logged) $allow_subscribe = true; else $allow_subscribe = false;
3. Открыть engine/modules/addcomments.php и найти:
if ( $config['mail_comments'] OR $config['allow_subscribe'] ) {
Добавить выше:
$guest_email = $mail;
Найти ниже:
if ($_POST['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe'] AND !$found_subscribe) {
// Часть кода опущена
}
Добавить ниже:
if($_POST['allow_subscribe'] AND !$is_logged AND !$found_subscribe) {
if(function_exists('openssl_random_pseudo_bytes')) {
$stronghash = md5(openssl_random_pseudo_bytes(15));
} else {
$stronghash = md5(uniqid(mt_rand(), TRUE));
}
$salt = str_shuffle($stronghash);
$s_hash = "";
for($i = 0; $i < 10; $i ++) {
$s_hash .= $salt{mt_rand(0, 31)};
}
$s_hash = md5($s_hash);
$db->query("INSERT INTO " . PREFIX . "_subscribe (user_id, name, email, news_id, hash) values ('0', '$name', '$guest_email', '$post_id', '$s_hash')");
}
4. Если на сайте вы используете древовидный тип комментариев, в котором ответ на комментарии происходит в модальном окне, то можете добавить функцию подписки в это окно. Для этого следует открыть engine/ajax/replycomments.php и найти:
if ($config['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe']) {
Заменить на:
if ($config['allow_subscribe'] AND $user_group[$member_id['user_group']]['allow_subscribe'] OR !$is_logged) {
Готово!
• Автор: Артем Мáлков
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.