Сейчас делаю другой рейтинг, более "красивый" и на Ajax Но столкнулся с такой проблемой. У прежнего (по умолчанию) несколько входов: вывод результатов, вывод формы .... Это совершенно не правильно. Предлагаю сделать один вход. И уж пускай дальше плагин решает что выводить. Иначе отсутствует гибкость и совместимость.
И ещё, пара замечаний: - предусмотреть в вызове возможность или запрет голосовать гостей. Например, вызовом дополнительного параметра - хранить в базе IP в формате ip2long()
Если возражений нет, то могу на сам всё переделать ;)
возникла маленькая проблемка безопасности.. Рейтинг сделал и всё протестировал, везде работает безупречно.. НО(!) Так как он на AjAx, задумался о безопасности... Как уберечь скрипт от прямого вызова?
Вот я тут прикинул, защититься от адресной строки думаю можно так
if(isset($_SERVER['HTTP_REFERER'])){...}
А вот вызов с другого скрипта или сайта прикинул так.. Перед оправкой например получить MD5 файла configuration.php, а в скрипте сравнить, там ли мы вообще или нет
а подробнее? Просто в плагине есть файл для обработки Ajax запроса и он никак не связан с яром, т.е. вызывается напрямую, а не через ajax.index.php. Я просто не знаю как этот отдельный файл включить в систему без модификации файлов компонента
ps Структура таблицы рейтинга изменена. Получилось её оптимизировать и сократить реально размер на 30-35%. При активном использовании рейтинга, это будет реально заметно ;)
Обновил ГИТ.. Вроде рейтинги работают. Если кто хочет, можете потестировать :) Единственное, если будите заливать файлы поверх, то не забудьте изменить структуру таблицы
да всё просто.. - Удалил поле published. Если честно, то нафига оно там :) - поле дата сделал INT(10), т.е. теперь time() - поле IP сделал INT(11), т.е. ip2long()
По большому счёту и дата не особо нужно, но вдруг пригодится в будущем для получения статистики по времени
Если после установки новых расширений JoiBOSS от GoDr, а именно "Контакты" и "Файловый архив" включаю новый рейтинг в статьях, сайт умирает, белая страница с сообщением:
Warning: Missing argument 3 for GDRating::displayVoteResult(), called in /storage/home/srv25476/http/templates/com_boss/default/frontpage_list_item.php on line 14 and defined in /storage/home/srv25476/http/images/boss/1/plugins/ratings/GDRating/plugin.php on line 84
Notice: Undefined variable: conf in /storage/home/srv25476/http/images/boss/1/plugins/ratings/GDRating/plugin.php on line 86
Notice: Trying to get property of non-object in /storage/home/srv25476/http/images/boss/1/plugins/ratings/GDRating/plugin.php on line 48
Fatal error: Call to undefined method GDRating::displayNumVotes() in /storage/home/srv25476/http/templates/com_boss/default/frontpage_list_item.php on line 16