Плагин рейтинга
  • GoDrGoDr Апрель 2012
    Сейчас делаю другой рейтинг, более "красивый" и на Ajax
    Но столкнулся с такой проблемой. У прежнего (по умолчанию) несколько входов: вывод результатов, вывод формы ....
    Это совершенно не правильно. Предлагаю сделать один вход. И уж пускай дальше плагин решает что выводить. Иначе отсутствует гибкость и совместимость.

    И ещё, пара замечаний:
    - предусмотреть в вызове возможность или запрет голосовать гостей. Например, вызовом дополнительного параметра
    - хранить в базе IP в формате ip2long()

    Если возражений нет, то могу на сам всё переделать ;)
  • ArkadiyArkadiy Апрель 2012
    Да не проблема, делай.
  • GoDrGoDr Апрель 2012
    хорошо.. тогда я подготовлю изменения. И опишу как использовать на WIKI
    и малость таблицу поменяю
  • GoDrGoDr Апрель 2012
    Новая структура базы позволила уменьшить её на 30-35% :)
  • GoDrGoDr Апрель 2012
    возникла маленькая проблемка безопасности.. Рейтинг сделал и всё протестировал, везде работает безупречно.. НО(!)
    Так как он на AjAx, задумался о безопасности... Как уберечь скрипт от прямого вызова?

    Вот я тут прикинул, защититься от адресной строки думаю можно так
    if(isset($_SERVER['HTTP_REFERER'])){...}

    А вот вызов с другого скрипта или сайта прикинул так.. Перед оправкой например получить MD5 файла configuration.php, а в скрипте сравнить, там ли мы вообще или нет

    Что думаете?
    Отредактированно GoDr в 2012-04-14 02:06:13
  • ArkadiyArkadiy Апрель 2012
    <?php echo josSpoofValue(); ?>=1 в строку запроса, а на принимающей стороне
    josSpoofCheck();
  • GoDrGoDr Апрель 2012
    а подробнее? Просто в плагине есть файл для обработки Ajax запроса и он никак не связан с яром, т.е. вызывается напрямую, а не через ajax.index.php. Я просто не знаю как этот отдельный файл включить в систему без модификации файлов компонента
  • GoDrGoDr Апрель 2012
    Так, плагин сделал. Адаптировал шаблоны под новый вызов. Исправил дефолтовый шаблон.

    Подготовил описание использования
    - вывод формы рейтинга: возможность оценить + показ результата
    http://wiki.joostinadev.ru/index.php/DisplayVoteForm
    -вывод только результатов
    http://wiki.joostinadev.ru/index.php/DisplayVoteResult

    В общем ещё раз проверяю и заливаю на ГИТ.

    ps
    Структура таблицы рейтинга изменена. Получилось её оптимизировать и сократить реально размер на 30-35%. При активном использовании рейтинга, это будет реально заметно ;)
    Отредактированно GoDr в 2012-04-14 14:09:16
  • GoDrGoDr Апрель 2012
    Обновил ГИТ.. Вроде рейтинги работают. Если кто хочет, можете потестировать :) Единственное, если будите заливать файлы поверх, то не забудьте изменить структуру таблицы
  • mosgazmosgaz Апрель 2012
    GoDr, подскажите пожалуйста каким образом вам удалось оптимизировать структуру.
  • GoDrGoDr Апрель 2012
    да всё просто..
    - Удалил поле published. Если честно, то нафига оно там :)
    - поле дата сделал INT(10), т.е. теперь time()
    - поле IP сделал INT(11), т.е. ip2long()

    По большому счёту и дата не особо нужно, но вдруг пригодится в будущем для получения статистики по времени
  • mosgazmosgaz Апрель 2012
    Спасибо, GoDr.
  • GoDrGoDr Апрель 2012
    mosgaz, пробовал мой новый рейтинг? ;)
  • mosgazmosgaz Апрель 2012
    GoDr, пока не было возможности. Как посмотрю сразу же отпишусь.
  • abasiaabasia Апрель 2012
    Если после установки новых расширений 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

    Выключаю рейтинг и всё работает.
    Отредактированно abasia в 2012-04-20 08:54:08
  • GoDrGoDr Апрель 2012
    всё просто, нужно просто изменить шаблоны :) Рейтинг по другому подключается теперь
  • abasiaabasia Апрель 2012
    :) понятно

Добро пожаловать!

Похоже, что Вы здесь впервые. Если хотите поучаствовать, нажмите на одну из этих кнопок!

Войти Зарегистрироваться

В теме отметились