Рейтинг страниц
Материал из Umicms
Инструкция по использованию функционала "Рейтингование страниц".
Создайте файл ~/tpls/vote/rate/default.tpl следующего содержания:
<?php $FORMS = Array(); $FORMS['rate_ok'] = <<<END var response = new lLibResponse(%request_id%); response.rate_sum = "%rate_sum%"; response.rate_voters = "%rate_voters%"; response.current_rating = "%current_rating%"; response.state = "Спасибо! Ваше мнение учтено!"; lLib.getInstance().makeResponse(response); END; $FORMS['rate_rated'] = <<<END var response = new lLibResponse(%request_id%); response.rate_sum = "%rate_sum%"; response.rate_voters = "%rate_voters%"; response.current_rating = "%current_rating%"; response.state = "Вы уже проголосовали."; lLib.getInstance().makeResponse(response); END; $FORMS['rate_not_found'] = <<<END END; ?>
Впишите следующий javascript код в тело страницы:
<script type="text/javascript"> function rate(whishId, mode) { var id = whishId; var handler = function (response) { var obj; if(obj = document.getElementById("rate-sum-" + id)) { obj.innerHTML = "(" + response.rate_sum + ")"; } alert(response.state); } var url = "/vote/json_rate/" + whishId + "/" + mode + "/"; lLib.getInstance().makeRequest(url, handler); return false; } function jsonSaveValue(whishId, selectObj) { var __selectObj = selectObj; var handler = function (response) { __selectObj.disabled = false; } var propName = selectObj.name; var propValue = selectObj.value; var url = "/news/saveProperty/" + whishId + "/" + propName + "/" + propValue + "/"; lLib.getInstance().makeRequest(url, handler); selectObj.disabled = true; } </script>
Теперь при выводе любой страницы, новости и т.д. можно использовать ссылку:
<a href="#" onclick="javascript: return rate('%id%', 0);">-1</a> <a href="#" onclick="javascript: return rate('%id%', 1);">+1</a>
Теперь можно выводить результаты рейтинга у каждой страницы. Это будут свойства, которые можно вывести через макросы:
Сумма балов: %rate_sum%<br /> Количество проголосовавших: %rate_voters%
Для сортировки каких либо объектов (фотографий, объектов каталога и т.п.) по полю rate_sum, в блоке, который формирует ссылку на раздел с элементами, пропишите примерно такой код:
<a href="%link%?order_filter[rate_sum]=0">%name%</a>
