Рейтинг страниц

Материал из 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>
Личные инструменты