Баллы за заслуги на uCoz Скрипт для ucoz: Баллы за заслуги на uCoz - этот скрипт автоматически ведет статистику каждого активного пользователя, показывая сколько он добавил файлов, новостей, постов, комментариев и т.д..., и после чего автоматически начисляются баллы за активность пользователя на сайте!
$IMAGE2$
Баллы добавляются за: # Репутацию [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 () { $.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) ?>)).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 минуту и обновите страницу снова.
|