какой плагин качать то надо ? и что это за вложения в 33 посте ?
можно по подробней что и куда
Вынес в отдельную тему, чтобы не сбивать с толку посетителей
темы, созданной
ART-DELIРЕШЕНИЕ для 1.5.6.3 - блокировка повторного голосования по IP или куки - плагин (обновлён) + небольшой хакПереключение режимов IP-куки производится в настройках плагина (через менеджер плагинов)Конечно, если в браузере пользователя стоит очищать куки при выходе (как у меня например
) то куки тоже не помогут.
Имеет в бОльшей степени смысл, если разрешено голосование для незарегистрированных, так как для зарегистрированных там есть проверка по userid.
Хотя работает для обоих вариантов, причём как для обычного, так и для AJAX-голосования.
Если разрешено голосование для незарегистрированных пользователей - плагин не даёт проголосовать с тем же IP за ту же фотографию.
Если разрешено голосование только для зарегистрированных пользователей, то сначала срабатывает имеющаяся проверка по userid.
Далее - если userid другой, то другому зарегистрированному пользователю с тем же IP не даёт проголосовать уже плагин.
Выводится сообщение "Оценка не засчитана: Вы можете отдать свою оценку только один раз."
Повторно голос в базу не пишется.
Хотелось сделать малой кровью, плагином, используя привязку к событиям галереи (описание
на сайте разработчика ).
К сожалению, не получилось без небольшого хака, поскольку у разработчика закрались явные ошибки в описании события
onJoomBeforeVote (хотя в целом набор событий впечатляет - многое можно решить плагинами).
Итак, что нужно сделать:Устанавливаем и публикуем
плагинчик, в настройках плагина выбираем нужный режим (по IP или по куки)
+ в файле components\com_joomgallery\models\vote.php вставляем в районе строки 172 (перед комментарием // Trigger event 'onJoomBeforeVote'):
$row->picid = $this->_id; $row->userip = $_SERVER['REMOTE_ADDR'];
Больше ничего не требуется для первого варианта.Ещё один вариант - для более детальной проверки (не только IP, на случай, если на одном IP сидит не один пользователь) можно немного изменить хак, вместо
$row->userip = $_SERVER['REMOTE_ADDR'];
сделать например так:
$row->userip = $_SERVER['REMOTE_ADDR'].'-'.gethostbyaddr($_SERVER['REMOTE_ADDR']).'-'.$_SERVER['HTTP_USER_AGENT'];
И далее в components\com_joomgallery\models\vote.php в строке 201 - то же самое.
Единственное ещё - в базе в таблице #__joomgallery_votes увеличить размер поля userip - дефолтное там varchar(15)
[вложение удалено Администратором]