Тема: Система рейтинга материала со своей базой данных
Так как GetSimple не использует базу данных, когда встал вопрос о рейтинге пришлось очень крепко задуматься и перерыть не один десяток поисковых страниц.
В итоге была найдена эдакая солянка из jquery, php и урезанной файловой БД. Выглядит они симпатично и стандартно в виде 5ти аккуратных звёздочек.
Подходит она для нашей CMS на все 100%. На локальной машине была протестирована работоспособность - всё прекрасно работает. К тому-же весит это чудо в архивированном виде всего 9,5кб Плюс довольно хорошая скорость взаимодействия с "виртуальной" БД и даже если она разрастётся - проблем со скоростью отработки быть не должно.
Я перевёл данную рейтинговую систему на русский язык и готов вам её представить во всей красе.
Ссылка на скачивание с моего сайта http://салон-красоты34.рф/data/uploads/raiting.rar
Плагин состоит из:
-rating # общая папка плагина
--rating.css # отдельная таблица стилей
--rating.js # позволяет производить оценку с использованием jquery, без перезагрузки страницы. Если вас устраивает перезагрузка страницы и мусор в ссылках - можете смело удалять этот файл.
--rating.php # логика системы рейтинга и использования мини-БД
--rating.gif # изображения (звёздочки). при желании можно изменить цветовую гамму через любой редактор изображений
--database # папка с нашей БД
---ratings.sqlite # сама БД
Для того, чтобы подключить эту систему рейтинга нужно сделать следующее:
1) Скопировать всю папку raiting в папку действующей темы сайта
2) Подключить необходимые скрипты и стили в тему сайта. Обязательно подключите все 4. Они принципиально необходимы для корректной работы. Даже jquery 1.3.2. Особую нагрузку на странице эти файлы не вызовут.
<head>
...
<link rel="stylesheet" type="text/css" href="<?php get_theme_url(); ?>/rating/rating.css" media="screen"/>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");</script>
<script type="text/javascript" src="<?php get_theme_url(); ?>/rating/rating.js"></script>
...
</head>
P.S. Если вы используете плагин SpecialPage и планируете вызывать рейтинги только на специальных страницах - целесообразно будет вносить эти строки не в сам шаблон, а во вкладке "Отображение" в настройках специальных страниц.
3) Для корректной работы jquery скрипта, необходимо в файле raiting.js ручками поменять путь к файлу raiting.php.
Найдите и измените строчку
$.get("/theme/НАЗВАНИЕ АКТИВНОЙ ТЕМЫ/rating/rating.php" + $(this).attr("href") +"&update=true", {}, function(data){
4) В месте, где необходимо подключить рейтинг необходимо подключить raiting.php и вызвать рейтинг
<?php include($_SERVER["DOCUMENT_ROOT"].'/theme/НАЗВАНИЕ АКТИВНОЙ ТЕМЫ/rating/rating.php'); ?>
<?php rating_form($_GET["id"]); ?>
Если вы не подключите файл raiting.php то рейтинги просто-напросто не выведутся и выйдет системная ошибка о вызове неизвестной функции. Прошу вас так-же обратить внимание, на то, что вызов rating_form требует названия. Так-как, в моём случае он используется в купе с SpecialPages, то такая конструкция генерирует имена автоматически для каждой страницы. Но можно вписать название ручками <?php rating_form("MYNAME"); ?>.
Для каждого названия используется и считается свой собственный рейтинг.
Поэкспериментируйте и найдите способ, который вам подойдёт. Моё решение, например, не будет отрабатывать на главной странице сайта, так-как там просто нет переменных глобального массива GET
5) Тестируем и радуемся. Если, что-то не работает - стоит ещё раз пробежаться по файлам и проверить правильно ли указаны пути к файлам. Например я с ними промучился довольно долго.
Надеюсь данная эта тема окажется вам полезной. Пользуйтесь на здоровье!