Скрипт для ucoz: Баллы для uCoz - этот скрипт автоматически
ведет статистику каждого активного пользователя, показывая сколько он
добавил файлов, новостей, постов, комментариев и тд... и после чего
автоматически начисляются баллы за активность пользователя на сайте!
Баллы добавляются за: # Репутацию (1 балл за 1 единицу
репутации) # Комментарии (0.15 баллов за комментарий) # Посты
на форуме (0.2 балла за 1 сообщение) # Файлы (0.5 баллов за файл)
# Награды (0.1 балл за награду) # Если у пользователя есть
замечания, то баллы уменьшатся (например: 20% замечаний уменьшают
количество баллов на 20%) # Произвольное повышение/понижение
количества баллов за определенные заслуги или нарушения. (функция для
админов) # Все это гибко настраивается. Расценки можно менять.
Требования: # Свободный модуль Каталог статей. # 3-5 минут
для установки скрипта. Установка: Скриншот настроек модуля Каталог статей. !!!КЛИКАЕМ!!! Далее идем Админка »
Пользователи » Группы пользователей » Установка прав для всех групп и
убеждаемся, что функции Просматривать историю замечаний пользователей
и Просматривать историю репутации пользователей разрешено для всех
групп. Страница поиска и рейтинга материалов: Code <html><head></head><body
style="margin: 5%; font-family: verdana,arial,helvetica;
font-size:8pt;"><h1>403: Forbidden</h1>$BODY$<div
style="padding-top:70%;
text-align:right">$POWERED_BY$</div></body></html>
Страница добавления/редактирования материалов: Code <head></head><body>$BODY$$POWERED_BY$</body></html>
Вид материалов: Code <input
type="hidden" value="$TITLE$" class="pts">
Шаблон персональная страница пользователя, ищем: Code
<div id="block5" class="udtb"><div
class="udtlb">Имя:</div> $_NAME$ [
$_GENDER_NAME$ ]</div>
после пишем Code <div
class="udtb"><div class="udtlb">Баллы:</div> <a
href="#" onclick="points('$_USERNAME$', $_USER_ID$);return false;"
id="points">...</a></div>
и после ставим код: Code
<script type="text/javascript">$(document).ready(function () {
//site: www.ucoz-scripts.ru //version: 0.1
$.get("/publ/0-0-$_USER_ID$-0-17", function (w) {ch_ng =
$("input.pts:first", w).val(); if (!ch_ng) {ch_ng = 0;} pt =
(Number(ch_ng) + Number(<? ($_REPUTATION$
+ $_COM_ENTRIES$*0.15 + $_FORUM_ENTRIES$*0.2 + $_LOAD_ENTRIES$*0.5 +
$AWARDS$*0.1) - (($_REPUTATION$ + $_COM_ENTRIES$*0.15 +
$_FORUM_ENTRIES$*0.2 + $_LOAD_ENTRIES$*0.5 +
$AWARDS$*0.1)*$_BAN_PERCENT$/100) ?><? $_REPUTATION$
+ $_COM_ENTRIES$*0.15 + $_FORUM_ENTRIES$*0.2 + $_LOAD_ENTRIES$*0.5 +
$AWARDS$*0.1
?>)).toFixed(2);$("#points").html(pt);});}); function
inajax(){if (ch_ng == "-0") {$('#thechanges').html("0");} else
{$('#thechanges').html(ch_ng);}} function points(name, id) { new
_uWnd('points', 'Баллы ' + name, 200, 300, {icon:
'/.s/img/icon/dtl.png',autosize: 1,fadespeed: 500,fadeclosespeed:
500,fadetype: 1,fadeclosetype: 1,align: 0,oncontent: function () {
inajax() }}, '<fieldset><legend>Баллы
[<a href="#" onclick="change();return
false;">Изменить</a>]</legend><div
style="text-align:left">Комментарии:
<b title="0.15 баллов за 1 комментарий"
style="cursor:help">$_COM_ENTRIES$*0.15?></b><br>Посты
на форуме: <b title="0.2 баллов за 1 пост"
style="cursor:help">$_FORUM_ENTRIES$*0.2?></b><br>Репутация:
<b title="1 балл за 1 единицу репутации"
style="cursor:help">$_REPUTATION$?></b><br>Файлы:
<b title="0.5 баллов за 1 файл"
style="cursor:help">$_LOAD_ENTRIES$*0.5?></b><br>Награды:
<b title="0.1 балла за 1 награду"
style="cursor:help">$AWARDS$*0.1?></b><br>Штраф:
<b style="cursor:help" title="Минус $_BAN_PERCENT$% из-за
замечаний"><? ($_REPUTATION$ + $_COM_ENTRIES$*0.15 +
$_FORUM_ENTRIES$*0.2 + $_LOAD_ENTRIES$*0.5 +
$AWARDS$*0.1)*$_BAN_PERCENT$/100 ?></b>
<br>Изменения: <b
title="Количество ваших баллов изменила администрация. Возможные
причины: наказание (за нарушение правил), поощрения (за заслуги), просто
так (администрация имеет право)" style="cursor:help"
id="thechanges">...</b></div></fieldset>');};
function change() {new _uWnd('change',
'Изменить количество баллов $_USERNAME$', 350, 350, { icon:
'/.s/img/icon/edt.png', autosize: 1, fadespeed: 500, modal: 1,
fadeclosespeed: 500, fadetype: 1, fadeclosetype: 1, align:
0},'<fieldset><legend>Изменить</legend><div
style="text-align:left"><div id="changeType"><input
type="radio" name="chng" value="minus" id="minus"><label
style="cursor:pointer" for="minus"><img
src="http://s40.ucoz.net/img/icon/minus.png" height="13" border="0"
align="absmiddle"> Уменьшить</label><br><input
type="radio" name="chng" value="plus" id="plus"><label for="plus"
style="cursor:pointer"><img
src="http://s40.ucoz.net/img/icon/plus.png" height="13" border="0"
align="absmiddle"> Увеличить</label><br><div
style="text-align:right"><br><br><input type="button"
value="Далее" onclick="dalee()"></div></div> <div
id="changeNum" style="display:none">Введите число, на сколько нужно
изменить количество баллов.<br><input type="text"
id="changeTheNum" maxlength="7" style="width:100%"><input
type="button" value="Готово" onclick="fChange();"></div>
</div></fieldset>');}; function dalee() {if
($('input[name="chng"]').is(':checked'))
{$('#changeType').hide();$('#changeNum').show();$("#changeTheNum").focus();}}
function fChange() { if ($("#changeTheNum").val().match(/\D/) ||
$("#changeTheNum").val().match(/\s/) || $("#changeTheNum").val() == '')
{alert('Введите числовое значение');return;} else {var type =
$('input[name="chng"]:checked').val();
$.get("/publ/0-0-$_USER_ID$-0-17", function (l) {var now =
$("input.pts:first", l).val(); if (!now) {var now = 0;} if (type ==
'plus') {ress = (Number(now) + Number($("#changeTheNum").val()));} else
{ress = (Number(now) - Number($("#changeTheNum").val()));}if (ress == 0)
{ress = "-0";}$.get("/publ/0-0-0-0-1", function (b) {$.post("/publ/",
{a: 12,jkd428: 1,jkd498: 1,ocat: 1,title: ress,user: '$_USERNAME$',ssid:
$("input[name='ssid']", b).val()},
function(){_uWnd.close('change');});});});}}</script>
p.s. внимание! Если вы
воспользовались функцией "Произвольное повышение/понижение количества
баллов", а после обновления страницы баллы не пересчитались - не
расстраивайтесь, а подождите 1 минуту и обновите страницу снова.
Этот недостаток скрипта возможно будет исправлен в последующих его
версиях. Эта версия — бета-тест.
|