logo

Palette - Сделайте её яркой🎨

Palette — Визуальный конструктор страниц, диплом дизайнера не требуется.

Демо Скачать Palette

Scroll

Лимит голосов для анонимных пользователей

22/02/2025, by Гость (не проверено)

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

Подскажите пожалуйста, есть ли способ установить ограничение для анонимных пользователей по количеству голосов.

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

 

 Я пытался сделать так:

$curip = ip_address();
$result = db_query("SELECT count(vote_source) as 'count' FROM {votingapi_vote} WHERE vote_source = '$curip'");
$fetch = db_fetch_object($result);
$count = $fetch->count;

Потом в файле voting.module и thumbs-up.tpl.php пытался использовать, но не работает - вылетаеот ошибка сервера

 

 Подскажите, плиз

 

 

 

 

 

 

 

 

 


В документации по voting api расписаны хуки

https://drupal.org/node/68877

Можете на insert добавить обработку для вычисления количества голосов пользователя.

hook_votingapi_insert($vote)

 

Здесь пример для модуля flag:

https://drupal.org/node/955724

 


 

Здрвствуйте. Спасибо за ответ.

Попытался сделать:

function hook_votingapi_insert($votes) {

    foreach ($votes as $vote) {
        $curip = $vote['vote_source'];
        $result = db_query("SELECT count(vote_source) as 'count' FROM {votingapi_vote} WHERE vote_source = '$curip'");
        $fetch = db_fetch_object($result);
        $count = $fetch->count;
        if ($count >= 2) {
           return FALSE;
        }

     }

}

 $vote['vote_source'] - ip-адрес голосующего 

 

 

 Однако не работает. Подскажите что не так

 


Я не знаю какие там значения в полях, используйте лучше pdo запросы:

http://xandeadx.ru/blog/drupal/88

 

и наверно нужно еще подсчет голосов отдельным foreach'ем делать.