8 ответ(ов) в теме
mavr_hahaha
не в сети 2 дня
На сайте с 08.11.2018
Участник
Тем 7
Сообщения 16
1
15:11
Версия WP-Recall:16.16.1

Привет. Помогите решить проблему. Ситуация такая, человек находится на странице записи и нажимает на лайк несколько раз, потом тому кому поставили лайк, в уведомлении (RCL-Notification) приходит много раз уведомление, о том что человек лайкнул запись, один и тот же человек много раз. (Проблема в том что пока человек не перезагрузил страницу, он может много раз нажимать на лайк)

1) Помогите сделать так, что бы можно было лайкнуть только один раз и все.
2) Или сделать так что бы можно было ставить лайк и снова убирать лайк.

0
Otshelnik-Fm
не в сети 19 минут
На сайте с 27.01.2013
Модератор
Тем 26
Сообщения 12432
2
15:26

Здравствуйте.

Перенесено. Вопрос по системе рейтинга

Можно попробовать сделать через pointer-events: none; в стилях. Не знаю поможет ли это - не проверял. Да и смотреть надо четко по месту.

Тут надо писать какую-то логику и учитывать подобное поведение.

Готового решения нету. Нужно искать исполнителя через фриланс или через

Вы не можете просматривать опубликованные ссылки

на этом сайте

Самое простое: Вы административно в правилах подобное напишите. Если не угомонится один, два - можно и санкции навесить. Вам такие кадры нужны?

0
Preci
не в сети 30 минут
На сайте с 11.11.2014
Участник
Тем 55
Сообщения 545
3
16:20

Кстати да, есть такая проблема с множеством кликов. Больше она будет заметна на медленных серверах, где после клика ответ о сервера ожидается 1+ секунду.

Как вариант я бы заменил стандартную функцию дополнения рейтинга, например, на такое:

function rcl_edit_rating(e){
    
	if(jQuery(e).hasClass('rating-process')) return false;
    
	var block = jQuery(e);
    var parent = block.parents('.rcl-rating-box');
	
	jQuery(e).addClass('rating-process');
    
	rcl_preloader_show(jQuery(e).parents('.rating-wrapper').children('.rating-value'),30);
    
    rcl_ajax({
        data: {
            action: 'rcl_edit_rating_post',
            rating: block.data('rating')
        }, 
        success: function(result){

            if(result['result']==100){

                parent.find('.rating-value').html(result['rating']);

                if(!block.hasClass('user-vote')){

                    parent.find('.rating-vote').removeClass('user-vote');

                }

                block.toggleClass('user-vote');

            }

            block.animateCss('zoomIn');
            
            if(result.replace_box){
                
                parent.replaceWith(result.replace_box);
                
            }

            rcl_do_action('rcl_edit_rating',{
                data:block.data('rating'),
                result:result
            });
			
			jQuery(e).removeClass('rating-process');
        }
    });
	
    return false;
}

т.е. после клика мы проверяем наличие класса rating-process и если он есть то ничего не делаем. Дальше если класса нет то ставим его и снимаем только после ajax ответа

1
Otshelnik-Fm
не в сети 19 минут
На сайте с 27.01.2013
Модератор
Тем 26
Сообщения 12432
4
16:26

Можно на гите пулреквест запилить - Андрей принимает их. Ну иногда возникают вопросы - в комментариях к нему можно решить

0
Otshelnik-Fm
не в сети 19 минут
На сайте с 27.01.2013
Модератор
Тем 26
Сообщения 12432
5
16:29

Подобная задача была у меня - чтоб с подписками не баловались - подписался/отписался кнопки тыкая. Я считал до 3х. Потом писал - лимит исчерпан. Конечно после f5 снова можно долбить. Но это лучше чем ничего
Вообще против настырных как не бейся - кто хочет потыкать сто раз где не надо - найдут способы.

0
Otshelnik-Fm
не в сети 19 минут
На сайте с 27.01.2013
Модератор
Тем 26
Сообщения 12432
6
16:32

Вообще глянул - рейтингу класс user-vote добавляется если юзер голосовал:

.rating-vote.vote-heart.user-vote {
    pointer-events: none;
}

проверил - это запретит вообще отмену рейтинга тут на форуме с сердечками. Ну думаю вообще там где рейтинг с сердцами используется

2
Preci
не в сети 30 минут
На сайте с 11.11.2014
Участник
Тем 55
Сообщения 545
7
16:43

Otshelnik-Fm сказал(а)
Вообще глянул - рейтингу класс user-vote добавляется если юзер голосовал:

.rating-vote.vote-heart.user-vote {
    pointer-events: none;
}

проверил - это запретит вообще отмену рейтинга тут на форуме с сердечками. Ну думаю вообще там где рейтинг с сердцами используется

Дело не в отмене. Если быстро кликнуть на сердечко, то несколько голосов засчитывается. Тут вот не получилось, а у себя на сайте я быстро кликнул несколько раз и в итоге рейтинг поста вместо 0 стал 2, хотя в информации написано что проголосовал только я 1 раз.

Не думаю что есть люди которые специально кликают, но несколько раз кликнуть можно и случайно и если сервер медленный и ты не понял прошел клик или нет.

1
mavr_hahaha
не в сети 2 дня
На сайте с 08.11.2018
Участник
Тем 7
Сообщения 16
8
22:12

Otshelnik-Fm сказал(а)
Вообще глянул - рейтингу класс user-vote добавляется если юзер голосовал:

.rating-vote.vote-heart.user-vote {
    pointer-events: none;
}

проверил - это запретит вообще отмену рейтинга тут на форуме с сердечками. Ну думаю вообще там где рейтинг с сердцами используется

спасибо большое, теперь работает без ошибок!

0
Тема закрыта. Публикация новых сообщений запрещена.