Главная » 2010 » Ноябрь » 13 » Баллы пользователя (новая версия) (Скрипты для ucoz)
13.11.2010, 16:34

Баллы пользователя (новая версия)



Скрипт предоставляет возможность введения виртуальных баллов, для определения активности пользователей. Баллы добавляются за:
# Репутацию (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
<?if($_NAME$)?>
<div id="block5" class="udtb"><div class="udtlb">Имя:</div> $_NAME$ <?if($_GENDER_NAME$)?>[ $_GENDER_NAME$ ]<?endif?></div>
<?endif?>

после пишем:

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">balli = {table: function(all) {var res = "", tt = ["балл", "балла", "баллов"]; for (var i=0; i<all.length; i++) { var n = all[i][0], n2 = all[i][1], t2 = all[i][2], bans = all[i][3]; if (!bans) {res+='<tr><td width="50%"><b>' + n2 + '</b> ' + all[i][2][n2%10==1&&n2%100!=11?0:n2%10>=2&&n2%10<=4&&(n2%100<10||n2%100>=20)?1:2] + '</td><td width="50%"><b>' + n + '</b> ' + tt[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2] + '</td></tr>';} else {res+='<tr><td width="50%"><b>' + n2 + '</b> ' + all[i][2][n2%10==1&&n2%100!=11?0:n2%10>=2&&n2%10<=4&&(n2%100<10||n2%100>=20)?1:2] + '</td><td width="50%"><b>- ' + n + '%</b> ' + tt[n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2] + '</td></tr>';}}; return res;}, open: function(){ var atbl = balli.table([[1530, 765, ["комментарий", "комментария", "комментариев"]], [1552, 776, ["сообщение на форуме", "сообщения на форуме", "сообщений на форуме"]], [304, 76, ["файл", "файла", "файлов"]], [-3, -1, ["единица репутации", "единицы репутации", "единиц репутации"]], [9, 3, ["награда", "награды", "наград"]],[20, 1, ["замечание", "замечания", "замечаний"], true]]), ee = balli.edit?'<tr><td width="50%">Изменено администрацией</td><td width="50%"><b>' + balli.edit + '</b> ' + ["балл", "балла", "баллов"][Math.abs(balli.edit)%10==1&&Math.abs(balli.edit)%100!=11?0:Math.abs(balli.edit)%10>=2&&Math.abs(balli.edit)%10<=4&&(Math.abs(balli.edit)%100<10||Math.abs(balli.edit)%100>=20)?1:2] + '</td></tr>':''; new _uWnd('b', 'Баллы', 360, 180, {customButtons: {'log': [true, function(){ _uWnd.alert(balli.log?balli.log:"Отсутствует", 'Лог изменения баллов', {w: 300, h: 100, tm: 40000}); }]}}, '<table id="tableball" width="100%" cellpadding="0" cellspacing="0"><tr><td width="50%">За что</td><td width="50%">Сколько</td></tr>' + atbl + ee + '</table>');},getEdit: function(num){$("#ballov").html(num);balli.edit=0;},changek: function(type, numb, comment){ new _uWnd('c', 'Изменить баллы', 390, 130, {oncontent: function(){ setTimeout(function(){_uWnd.getbyname('c').checksize();},1000); if(type && numb && comment){ $("#commentChange").val(decodeURIComponent(comment)); $("#typechange option").eq(type=='plus'?0:1).attr("selected", true); $("#skolko").val(numb); } }}, '<fieldset><div class="rdv"><div class="ldv">Тип:</div> <select id="typechange"><option value="1">Прибавить</option><option value="2">Отнять</option></select></div><div class="rdv"><div class="ldv">На сколько:</div> <input type="text" id="skolko"></div><div class="rdv"><div class="ldv">Комментарий:</div><textarea id="commentChange" style="height: 40px;"></textarea></div><div class="rdv"><div class="ldv" id="statusChange"> </div><input type="button" onclick="balli.changeBall();" value="Изменить"></div></fieldset>');},changeBall: function(){$("#statusChange").html(""); if (! /^\d+$/.test($("#skolko").val()) ) {$("#statusChange").html("<img src='http://ucodes.ru/upload/icons/error.png' border='0' align='absmiddle'> Вы ввели не число");return;} if (parseInt($("#ballov").text())<parseInt($("#skolko").val()) && $("#typechange").val()==2) {$("#statusChange").html("<img src='http://ucodes.ru/upload/icons/error.png' border='0' align='absmiddle'> Недостаточно баллов");return;} $("#statusChange").html("<img src='http://ucodes.ru/upload/icons/load.gif' border='0' align='absmiddle'> Загрузка..."); $.get("/blog/0-0-0-0-17-3?"+Math.random(), function(data){ var log = $("#bFast .ballEdit:first .log", data).text() || "", plus = parseInt($("#bFast .ballEdit:first .plus", data).text() || 0), minus = parseInt($("#bFast .ballEdit:first .minus", data).text() || 0); typ = $("#typechange").val(), vv = parseInt($("#skolko").val() || 0); if (typ==1) {plus=plus+vv;}else {minus=minus+vv;} $.get("/blog/0-0-0-0-1", function(addData) {$.post("/blog", {user: '123',other1: plus,other2: minus,brief: log.replace(/<br>/g, '\n')+ '\n' + $("#commentChange").val(),a: 2,ssid: $("input[name='ssid']", addData).val()}, function(re){if ($(re).text().indexOf("успешно") != -1) { $("#statusChange").html("<img src='http://ucodes.ru/upload/icons/ok.png' border='0' align='absmiddle'> Баллы изменены");}else { $("#statusChange").html("<img src='http://ucodes.ru/upload/icons/error.png' border='0' align='absmiddle'> Error");}});});});}}; balli.getEdit(2713.6); (function(l){ if (l) { var typ = l.match(/type=(\S+?)\;/), num = l.match(/num=(\d+?)\;/), comm = l.match(/comm=(.+?)\&/); if (l && num && comm) { balli.changek(typ[1], num[1], decodeURIComponent(comm[1]));}}})(location.search);</script>
Материал взят с сайта infoscript.ru
Внимание! Копирование данного материала запрещено без указания ссылки на сайт Infoscript.ru
Источник/Автор: javascript.ucoz.net
Категория: Скрипты uCoz | Просмотров: 5706 | Добавил: antisept | Рейтинг: 4.0/2 |
Теги: новая, версия, пользователя, Баллы
Всего комментариев: 17 1 2 »
0  
1 Undertaker   (14.11.2010 00:20) [Материал]
Аватар пользователя
А куда все эти коды вставлять?

0  
2 7soft -Infoscript Team-  (14.11.2010 20:32) [Материал]
Аватар пользователя
А у меня эти баллы полоской отображаются cool

0  
3 Undertaker   (16.11.2010 12:17) [Материал]
Аватар пользователя
Так куда же вставлять эти коды?

+2  
4 7soft -Infoscript Team-  (16.11.2010 14:19) [Материал]
Аватар пользователя
Там же всё написано (Страница поиска и рейтинга материалов и т.д.), правда коды не очень... Такое чувство, что тот, кто писал этот скрипт, не знает, что некоторые html-коды нужно закрывать... dry

+2  
5 lesha -Infoscript Team-  (16.11.2010 22:26) [Материал]
Аватар пользователя
Будет не сложно ... подправь и в ЛС, я изменю...
Да и потом, может он просто забыл .. .у меня так же часто, даже с простыми тегами ...

0  
6 NickolasAnnish   (30.12.2010 22:47) [Материал]
Аватар пользователя
Мож кто нибудь знает, можно ли в скрипте заменить использование каталога файлов, на доску обьявлений например?

0  
7 Dignition   (06.01.2011 05:10) [Материал]
Аватар пользователя
Есть вопрос про ваши баллы...

Всё сделал правильно, НО Баллы почему-то не отображаются... троеточие выдаёт sad помогите...


0  
8 7soft -Infoscript Team-  (06.01.2011 09:47) [Материал]
Аватар пользователя
Проверь, создал ли ты пустую категорию и разрешил ли поиск материалов пользователя в настройках модуля.

0  
9 Dignition   (06.01.2011 09:49) [Материал]
Аватар пользователя
Да... а насчёт пустой категории в ЛС

0  
10 antisept -Infoscript Team-  (06.01.2011 09:49) [Материал]
Аватар пользователя
Попробуйте зайти через другой браузер.

0  
11 Dignition   (06.01.2011 09:51) [Материал]
Аватар пользователя
Всё так-же... три точки... sad

0  
12 Dignition   (06.01.2011 09:52) [Материал]
Аватар пользователя
Да и кстати... может выложите новый скрин насчёт настроек... этот то уже старый... sad

Может и подробности больше будут...


0  
13 antisept -Infoscript Team-  (06.01.2011 09:55) [Материал]
Аватар пользователя
какой еще новый скрин?

1-6 7-10
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]