Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

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'ем делать.