Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как сделать, чтобы повторное нажатие на лайк убирало его?

Как сделать, чтобы повторное нажатие на лайк убирало его?


     20.02.2021    лайк, хак    Общие вопросы по PHP, Хаки    94

вопрос
Использую в новостях систему лайков - Только 'Нравится'.
Сейчас при нажатии на лайк, рейтинг добавляется на 1 значение, а при повторном нажатии выводит "Вы уже выставили свою оценку для данной статьи".

Как сделать, чтобы повторное нажатие убирало лайк, как будто его и не ставили?

Ответил: TeraMoune


Файл: ajax/rating.php

Заменить

$db->close();
	
echo "{\"error\":true, \"errorinfo\":\"{$lang['rating_error2']}\"}";
die();


На

$db->query( "UPDATE " . PREFIX . "_post_extras SET rating=rating-'{$go_rate}', vote_num=vote_num-1 WHERE news_id ='{$news_id}'" );
$db->query( "DELETE FROM " . PREFIX . "_logs WHERE news_id ='{$news_id}' AND {$where}" );
	
if ( $config['allow_alt_url'] AND !$config['seo_type'] ) $cprefix = "full_"; else $cprefix = "full_".$news_id;
clear_cache( array( 'news_', $cprefix ) );
	
$db->close();

6 комментариев

hippahap
Юзер

hippahap - 21 февраля 2021 11:45 -

TERAMOUNE, спасибо большое! Подскажи ещё, возможно ли как-то выделить кнопку, если стоит лайк?
Грубо говоря, добавить активный класс, а когда снимаешь лайк, то кнопка становится обычной.

TeraMoune
Эксперт

TeraMoune - 22 февраля 2021 13:55 -

Возможно

hippahap
Юзер

hippahap - 22 февраля 2021 18:24 -

TeraMoune,
Если не сложно, подскажи, как это сделать?

TeraMoune
Эксперт

TeraMoune - 22 февраля 2021 21:06 -

Не сложно но это и не значит, что я должен взять и сделать для тебя это бесплатно. С этим уже нужно больше времени, нужно придумать и сделать.

hippahap
Юзер

hippahap - 22 февраля 2021 23:46 -

TeraMoune, не буду тебя утруждать своими просьбами, я благодарен тебе и за первое решение, спасибо!
Странно, что разрабы DLE сами не додумались добавить активный класс кнопке...

TeraMoune
Эксперт

TeraMoune - 23 февраля 2021 00:48 -

Думаю додумались (как и по многим вопросам), просто решили не тратить время на такой пустяк, решив оставить эти мелочи как и многие функции для отдельных плагинов\модулей расширяющих функционал.

Система ведь имеет теперь полноценную систему плагинов (хоть и не идеальную наверное) но тем не менее. И это означает, что CMS не будет являться аналогом швейцарского ножа в котором будет всё из коробки. Большая часть возможностей будет исключительным правом лишь отдельных модификаций.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх