LikeDislike игнорирует ресурсы или аккаунты?

провел голосование на сайте используя LikeDislike и Hybridauth
Во время хода голосования частенько приходили сообщения, что люди не могут проголосовать, а именно, в первый раз авторизировавшись, и не успев нажать на кнопку голосования, сообщал им товарищ LikeDislike, что их голос учтен. Причем, на разных страницах в одном и том же каталоге часть страниц позволяла проголосовать, часть нет.
В записях Likedislike_Votes голосов от пользователя не значилось.
Изначально принял за данность, что это ошибка пользователей: их куки, браузеры, повторные регистрации и т.п. Пока сам, ни авторизировавшись под новым аккаунтом, ни попал в такую же ситуацию.

Из 16 страниц на 9-ти страницах лайк поставить не удалось. Кнопка оказалась не активна.
Код на всех страницах идентичен. Pagetitle не повторяются. Страницы однотипные.
Все страницы некэшируемые с включенной очисткой кэша.
Хэш имена не совпадают
Банов ни на пользователей, ни на айпи не стоит
Все пользователи с одними правами
Никакой закономерности для этой ошибки найти не могу.

На данный момент зарегистрировались для голосования 9129 пользователей
Суммарно на 16 страницах 9040 голосов.
При том, что многие голосовали на нескольких страницах, а некоторые и на всех, количество не проголосовавших еще больше
Странно также, что не для всех аккаунтов эта ошибка имела место.
У меня выскочила на одном из трех
Код прилагается

[[likeCssjs]]

[[!LikeDislike? 
&name=`[[*pagetitle]]`  
&tpl=`likedislike.tpl` 
&format=`{TOTAL}` 
&rating=`type=1,output=votes_up` 
&likeId=`[[*id]]`   
&resRat=`[[*id]]`
]]
likedislike.tpl
<form method="post" id="likedislike_[[+like.id]]" class="likedislike likedislik_up [[+like.class]]" name="likedislik_up">
    <input type="hidden" name="likedislike_id" value="[[+like.id]]" />
        <input type="hidden" name="likedislike_format" value="[[+like.format]]" />
    <input type="hidden" name="likedislike_round" value="[[+like.round]]" />
   <input type="hidden" name="likedislike_rating" value="[[+like.rating]]" />

        <strong class="result1 error[[+like.squeeze]]" style="color:#009999;">[[+like.result_up]]</strong>

        <strong class="likename" style="color:red;">голосов</strong>   

        <input type="submit" name="likedislike_vote" value="+1" [[+like.disabled]] />
    
    <strong class="likeclose">[[%likedislike.voting_closed]]</strong>
    <strong class="likethanks" style="color:#0099ff;">[[%likedislike.thanks_vote]]</strong>
</form>
SYAN
21 марта 2017, 02:49
modx.pro
944
0

Комментарии: 3

SYAN
23 марта 2017, 01:36
0
Убрал ! и все заработало. Как? Почему? Может кто подскажет или кому поможет

if ( ! $item['user_voted']...

core/components/likedislike/model/likedislike/likedislike.class.php
строка 468

// Check for a previous vote by user id
        if (  $item['user_voted'] AND $this->options('user_id_check') AND $user_id = $this->modx->user->get('id')){
            $sth = $this->modx->getObject('LikedislikeVotes',array('item_id' => $item['id'], 'user_id' => $user_id));
            $item['user_voted'] = (bool) $sth;
        }
                        
        return $item;
    SYAN
    23 марта 2017, 01:49
    0
    Упсь, обознатушки… не всё. зашел под другим аккаунтом. из 16 ресурсов повторно предлагает проголосовать за 3.

    что то не так здесь с проверкой проголосовавших…

    лично у меня доверий к этому скрипту нет :(
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
3