Рейтингование отдельных элементов на странице (в посте)

Дано: постоянная страница с 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. Инклудим следующий код в базу данных вашего блога:

CREATE TABLE `ratings` (
  `id` varchar(11) NOT NULL,
  `total_votes` int(11) NOT NULL default 0,
  `total_value` int(11) NOT NULL default 0,
  `used_ips` longtext,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=3;

5. Открываем для редактирования _config-rating.php и вносим туда параметры вашей базы данных: логин, пароль, адрес, имя базы. Т.е. ту же информацию, что вы вносили в wp-config.php, когда ставили блог. Сохраняем.
6. Копируем следующие файлы и папки в корень вашего блога: папки css/, images/, js/ и файлы _drawing.php, _configrating.php, db.php, rpc.php
7. Открываем для редактирования файл index.php, который находится в папке вашей текущей темы wordpress и добавляем в самый верх второй или третьей строчкой

<?php require(’_drawrating.php’); ?>

, перед

<?php get_header(); ?>

и затем, после

<?php get_footer(); ?>

добавляем

<script type="text/javascript" language="javascript" src="js/behavior.js"></script>
<script type="text/javascript" language="javascript" src="js/rating.js"></script>
<link rel="stylesheet" type="text/css" href="css/rating.css" />

Сохраняем.
8. Теперь вы можете размещать AJAX Star Rating Bar на любой странице хоть по 100 штук! Для этого просто добавляете на страницу/пост (убедитесь, что визуальный редактор у вас выключен) код вида

<?php echo rating_bar('1'); ?>

, либо, если вам не нравится 10 звездочек для оценки, можно выставить

<?php echo rating_bar('2','5'); ?>

. Каждый 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 , то скрипт заработает, но ведь это не выход 🙁

Продолжаю разбираться и все еще надеюсь, что кто-нибудь успешно установил этот скрипт у себя на блоге и сможет мне помочь.

вот интерестный вопрос, кстати, как сделать голосование не по постам, а по отдельным штукам

Anonymous
Отправить
Ответ на: