Быстрая подписка на комментарии

Быстрая подписка на комментарии

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


Установка:
1. В папке engine/ajax создать файл subscribe.php с содержимым:

2. JS код вставить в любой подключенный к шаблону js файл:
$(document).on('click','.unsubcomm',function(){
	ShowLoading();
	var $this = $(this);
	$.post(dle_root+"engine/ajax/subscribe.php",{post_id:$('#post_id').val()},function(d){
		HideLoading();
		if(d.error) DLEalert(d.error,"Ошибка");
		else $this.html(d.html);
	},"json");
});

3. В файле шаблона addcomments.tpl или fullstory.tpl в желаемом месте вставить код:
[not-group=5]<span class="unsubcomm">Подписаться на комментарии</span>[/not-group]

Наличие имени класса unsubcomm - обязательно.

4. При желании использовать стиль кнопки:
.unsubcomm{
	display: inline-block;
	border: 1px solid #ccc;
	padding: 0 20px;
	height: 26px;
	font: normal 12px/26px Verdana;
	-webkit-box-sizing: content-box;
	-moz-box-sizing: content-box;
	box-sizing: content-box;
	cursor: pointer;
	color: #555;
	background: #e5e5e5 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAI0lEQVQImWP49esXEwMDA9O/f/+YGBgYmP7//4+Vj0ucTHUA3nos7QvvyugAAAAASUVORK5CYII=) repeat-x 0 0;
	-webkit-border-radius: 2px;
	-moz-border-radius: 2px;
	border-radius: 2px;
}
.unsubcomm:hover{
	color: #222;
	background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAeCAIAAABi9+OQAAAAG0lEQVQImWN49+4dEwMDAxMjIyNZNBMTEzn6AGFhAzKAZ4ckAAAAAElFTkSuQmCC) repeat-x 0 0;
}
.unsubcomm:active{
	border-color: #fc0;
}

Готово!

Небольшое дополнение чтобы сразу отображать статус - подписан пользователь или нет.
Установка:
1. Создать engine/mods/subscribed.php с содержимым:
<?PHP
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");
$row = $db->super_query( "SELECT user_id, name, email, hash FROM " . PREFIX . "_subscribe WHERE news_id = " . intval( $_GET['newsid'] ) . " AND user_id = {$member_id['user_id']}" );
if($row['user_id'])
	echo "Отписаться от комментариев";
else
	echo "Подписаться на комментарии";
?>

2. В шаблоне addcomments.tpl вместо текста "Подписаться на комментарии" использовать код:
{include file="engine/mods/subscribed.php"}

Получиться должно примерно так:
[not-group=5]<span class="unsubcomm">{include file="engine/mods/subscribed.php"}</span>[/not-group]

Готово!
 
Версия DLE: 10.x-14.x
Автор: Sander
Источник
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.