Дано: постоянная страница с 10 объектами (картинками, фотографиями, обзорами, видеоклипами – не важно).
Задача: дать возможность посетителям оценить каждый объект, желательно без перезагрузки страницы. Можно без защиты от накрутки.
Нашел плагин wp-postratings, почти подходящий для моих целей, но он, к сожалению, позволяет рейтинговать только отдельные посты/страницы. Попытался вставить на одну страницу под каждым объектом [ratings=1], [ratings=2], но увы, активный элемент только первый.
Есть ли плагин для организации произвольного голосования на странице/в посте, а не оценивающий только сам пост/страницу? Можно как-либо доработать плагин wp-postratings для указанной задачи?
есть аяксовая примочка ajaxstarrater http://www.masugadesign.com/the-lab/scripts/unobtrusive-ajax-star-rating-bar/, её можно проинклудить и вешать куда угодно. готового кода нет, но это уже реализовывал.
и ещё, FAQ предназначен для готовых решений, будьте внимательнее перед постингом
CMEPTHuk, согласен, с выбором форума не угадал, но тем не менее проблему я решил, рассказываю как.
Действительно, все делается с помощью AJAX Star Rating Bar.
1. Скачиваем Star Rating Bar.
2. Скачиваем Exec-PHP плагин, устанавливаем, активируем. Плагин позволяет выполнять произвольный php код в страницах/постах блога на wordpress. Снимите галочку в настройки-написание -WordPress должен исправлять некорректный XHTML код автоматически.
3. Заходим в панель управления базами данных вашего хостера (либо устанавливаем плагин WP-phpMyAdmin и управляем базой прямо из админки вашего блога).
4. Инклудим следующий код в базу данных вашего блога:
5. Открываем для редактирования _config-rating.php и вносим туда параметры вашей базы данных: логин, пароль, адрес, имя базы. Т.е. ту же информацию, что вы вносили в wp-config.php, когда ставили блог. Сохраняем.
6. Копируем следующие файлы и папки в корень вашего блога: папки css/, images/, js/ и файлы _drawing.php, _configrating.php, db.php, rpc.php
7. Открываем для редактирования файл index.php, который находится в папке вашей текущей темы wordpress и добавляем в самый верх второй или третьей строчкой
, перед
и затем, после
добавляем
Сохраняем.
8. Теперь вы можете размещать AJAX Star Rating Bar на любой странице хоть по 100 штук! Для этого просто добавляете на страницу/пост (убедитесь, что визуальный редактор у вас выключен) код вида
, либо, если вам не нравится 10 звездочек для оценки, можно выставить
. Каждый Star Rating Bar имеет свой ID, который задается первой цифрой в скобках, вторая указывает на количество звездочек.
9. Отредактировав _drawrating.php можно также выводить сообщения о количестве голосов на русском. Можно также заменить оригинальные иконки звездочек на свои.
о.. вот теперь больше похоже на FAQ, всё встает на свои места)
Похоже, поторопился я публиковать инструкцию. Фишка получается следующая: если создать страницу и включить в нее AJAX Star Rating Bar, но не публиковать ее, то, если смотреть ее в предпросмотре, голосование возможно. Как только страница опубликована на сайте, то рейтинг бар перестает работать! Попробуйте кто-нибудь у себя потренироваться, может это от хостинга зависит :/
от хостинга не может на мой взгляд, так как аякс скрипт выполняется на стороне клиента, а со стороны сервера зависимость лишь от php и бд. не суть. что то ты пропустил, где-то запарился видимо, код не тестил, спать пошел..
Значит, выяснил, что проблема возникает из-за относительных путей к скриптам и вида УРЛ в блоге. Я пытался вставить рейтинг бар в страницу с 2-м уровнем вложенности, т.е. типа http://site.com/level1/level2/ и скрипт пытался вызвать функцию по адресу http://site.com/level1/db.php – там ее, естественно не было. Я поправил относительные пути для вызова функций, так, чтобы вызывалась она нормально, но скрипт все равно "зависает", т.е. голос не отдается и в БД никаких записей не происходит.
Теоретически, если сделать УРЛ вида http://site.com/?p=12345 , то скрипт заработает, но ведь это не выход 🙁
Продолжаю разбираться и все еще надеюсь, что кто-нибудь успешно установил этот скрипт у себя на блоге и сможет мне помочь.
вот интерестный вопрос, кстати, как сделать голосование не по постам, а по отдельным штукам