Скрипт подсчета баллов пользователей. Помогите исправить
Здравствуйте!
Поставила скрипт подсчета баллов за активность каждого пользователя. Суммируется балл комментов, постов форума, репутации, наград и баллов, присвоенных админов. Там коэффициент на каждый из пунктов. МОжно посмотреть здесь: http://k-fd.ru/index/8-1 (Баллы пользователя: и кликая по значению, видно, что за что накапало). Помимо этого мне нужно, что бы учитывались все опубликованные материалы на сайте: 1. Новости - $_NEWS_ENTRIES$ 2. Все каталоги - $_PUBL_ENTRIES$ $_LOAD_ENTRIES$ $_DIR_ENTRIES$ 3. Доска объявлений - $_BOARD_ENTRIES$ 4. Игры - $_STUFF_ENTRIES$ ну и конечно же 5. Комменты - $_COM_ENTRIES$ 6. Посты форума - $_FORUM_ENTRIES$ 7. Репутация - $_REPUTATION$ И не только считались, но и отображались в этой всплывающей табличке. Вроде бы ничего сложного, но я сама не могу дописать скрипт... что-то делаю не так. Вот код скрипта: <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([ [ <? $_COM_ENTRIES$ * 1 ?> , $_COM_ENTRIES$, ["комментарий", "комментария", "комментариев"]], [ <? $_FORUM_ENTRIES$ * 0.5 ?> , $_FORUM_ENTRIES$, ["сообщение на форуме", "сообщения на форуме", "сообщений на форуме"]], [ <? $_REPUTATION$ * 0.5 ?> , $_REPUTATION$, ["единица репутации", "единицы репутации", "единиц репутации"]], [ <? $AWARDS$ * 5 ?> , $AWARDS$, ["награда", "награды", "наград"]] <? if ($_BAN_PERCENT$) ?> , [$_BAN_PERCENT$, <? $_BAN_PERCENT$ / 20 ?> , ["замечание", "замечания", "замечаний"], true] <? endif ?> ]), 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: { <? if ($GROUP_ID$ = '4' or $GROUP_ID$ = '3') ?> 'edit': [true, function () { balli.changek(); }], <? endif ?> '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) { <? if ($_BLOG_ENTRIES$) ?> $.get("$_BLOG_ACTIVITY_URL$?" + Math.random(), function (data) { var plus = parseInt($("#bFast .ballEdit:first .plus", data).text() || 0); var minus = parseInt($("#bFast .ballEdit:first .minus", data).text() || 0); balli.log = $("#bFast .ballEdit:first .log", data).html().replace(/\n/g, "<br>"); $("#ballov").html(num + plus - minus); balli.edit = plus - minus; }); <? else ?> $("#ballov").html(num); balli.edit = 0; <? endif ?> }, 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='/img/error.png' border='0' align='absmiddle'> Вы ввели не число"); return; } if (parseInt($("#ballov").text()) < parseInt($("#skolko").val()) && $("#typechange").val() == 2) { $("#statusChange").html("<img src='http://rucoz.com/img/error.png' border='0' align='absmiddle'> Недостаточно баллов"); return; } $("#statusChange").html("<img src='/img/load.gif' border='0' align='absmiddle'> Загрузка..."); $.get("/blog/0-0-0-0-17-$_USER_ID$?" + 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: '$_USERNAME$', 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://rucoz.com/img/ok-small.png' border='0' align='absmiddle'> Баллы изменены"); } else { $("#statusChange").html("<img src='/img/error.png' border='0' align='absmiddle'> Error"); } }); }); }); } }; balli.getEdit( <? ifnot($_BAN_PERCENT$) ?> <? $_COM_ENTRIES$ * 1 + $_FORUM_ENTRIES$ * 0.5 + $_REPUTATION$ * 0.5 + $AWARDS$ * 5 ?> <? else ?> <? ($_COM_ENTRIES$ * 1 + $_FORUM_ENTRIES$ * 0.5 + $_REPUTATION$ * 0.5 + $AWARDS$ * 5) / 100 * (100 - $_BAN_PERCENT$) ?> <? endif ?> ); (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> Помогите, пожалуйста, а то с моей внимательностью, я буду месяц сидеть) Спасибо. |
Ну во-первых, приведите код в читаемый вид.
|
Цитата:
|
|
Уже сделала!) Всем спасибо)
|
Часовой пояс GMT +3, время: 08:43. |