Случайный выбор победителя «Вконтакте»
Артем Мáлков
191 просм
0 комм
Поделиться

Функция для гостей: «Подписка на новые комментарии» на DLE

Как вы знаете, в DataLife Engine комментировать ваши записи могут не только пользователи сайта, но и гости. Для этого необходимо лишь настроить соответствующие привилегии для групп пользователей в панели управления вашим сайтом.

Но вот не многие знают, что гостям запрещено подписываться на обновления комментариев к материалу.

По какому принципу вообще работает подписка? Вы оставляете комментарий под интересующей новостью и, отметив соответствующий параметр, получаете на свой e-mail (он берется из настроек вашего профиля) уведомление о том, что к этой же новости был добавлен новый комментарий другим участником сайта.

Функция для гостей: «Подписка на новые комментарии» на DLE

Запрет этой функции для гостей логичен, ведь поле «E-mail» не является обязательной информацией для заполнения гостем. Мы же исправим эту ситуацию и добавим функционал, который решит проблему.

1. Подключаемся к вашему сайту по FTP, открываем файл addcomments.tpl в папке /templates/название вашей темы. Находим там поле, отвечающее за ввод e-mail'а для гостей. На примере стандартной темы это поле:

<input type="text" name="mail" id="mail" class="f_input"/>

Добавляем в него параметр «required»:

<input type="text" name="mail" id="mail" class="f_input" required/>

тем самым делаем его обязательным для заполнения.

2. Далее открываем файл show.full.php в папке /engine/modules/, находим:

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. После чего открываем файл addcomments.php в папке /engine/modules/, находим:

if ( $config['mail_comments'] OR $config['allow_subscribe'] ) { 

и выше вставляем:

$guest_email = $mail; 

4. В этом же файле, ниже, найдите код:

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')" ); 
} 

На этом наша настройка функции закончена. Если на своем сайте вы используете древовидный тип комментариев (то есть ответ на комментарии происходит в модальном окне), то вы можете добавить функцию подписки в это окно.

Для этого в файле replycomments.php в папке /engine/ajax/ найдите:

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) {

Теперь мы окончательно внедрили функцию подписки для гостей.

Если же вы хотите изменить надпись «Подписаться на комментарии», то откройте файл website.lng в папке /language/Russian/, найдите:

'c_subscribe'  => "Подписаться на комментарии" 

и измените «Подписаться на комментарии» на нужное вам значение.

0
комментарий
Оставить комментарий:
Нажимая кнопку «Отправить» вы даете согласие на обработку своих персональных данных.
Ваше Имя
Ваш E-mail
Текст комментария