ZorNet.Ru — сайт для вебмастера » Скрипты для uCoz » Система уровней пользователей для сайта uCoz

Система уровней пользователей для сайта uCoz

Система уровней пользователей для сайта uCoz
Если на вашем сайте следят за репутацией, и пользователь ее устанавливает, есть тема по уровню, что устанавливать в аналогичном порядке. Сама система будет работает за счёт активности зарегистрированного пользователя на интернет ресурсе. Здесь будет учитывается все, можно сказать каждый шаг, что был произведен на портале. Это количество материалов, что было размещено на ресурсе, также учитываются комментарий и безусловно репутация. Как пример: Вы поставили для репутации множитель "3", если у пользователя репутация "5", то в очки уровня засчитывается "15" (5*3).

Система выводит следующие параметры:
$scoreSL - текущее кол-во очков пользователя;
$levelSL - текущий уровень пользователя;
$thisLvl - кол-во очков у текущего уровня;
$NextLS - кол-во очков у следующего уровня;
$scoreNextLvl - требуемое кол-во очков для следующего уровня.

Установка:

Всё что Вам нужно, это добавить данный код на страницу пользователя в конец body.
ПУ > Управление дизайном > Персональная страница пользователя

Код
<script>  
// Активность  
var $SLuser = [// 'количество', 'множитель'  
['$_BLOG_ENTRIES$', '1'], ['$_BOARD_ENTRIES$', '1'], ['$_COM_ENTRIES$', '1'],  
['$_FORUM_ENTRIES$', '1'], ['$_LOAD_ENTRIES$', '1'], ['$_NEWS_ENTRIES$', '1'],  
['$_PHOTO_ENTRIES$', '1'], ['$_PUBL_ENTRIES$', '1'], ['$_STUFF_ENTRIES$', '1'],  
['$_SHOP_ENTRIES$', '1'], ['$_VIDEO_ENTRIES$', '1'], ['$_RANK$', '1'], ['$_REPUTATION$', '1']  
];  

// Уровни  
var $SLlevel = [];  
for(var i=0; i<=100; i++){$SLlevel[i] = i*5}; // Генерация уровней (100)  

/* Или так  
$SLlevel = ['5','10','15','20','25','30'];  
*/  

// **************  
function CheckUserScore(arr) {  
return arr.map(a => a.reduce((a, c) => a * +c, 1)).reduce((a, c) => a + c, 0);  
};  
var $scoreSL = CheckUserScore($SLuser);  

function CheckUserLevel(arr, toFind) {  
if(!arr) return -1;  
var first = 0, last = arr.length - 1;  
while(first < last) {  
var mid = first + Math.floor((last - first) / 2);  
if (arr[mid] >= toFind) last = mid; else first = mid + 1;  
}  
if(arr[last] == toFind || last == 0 || last == arr.length - 1) return last; else return last - 1;  
};  
var $levelSL = CheckUserLevel($SLlevel, $scoreSL) + 1; // +1 потому что массив начинается с нуля.  

var $NextLS = $SLlevel[$levelSL];  

var $thisLvl = $SLlevel[$levelSL-1];  

var $scoreNextLvl = ($NextLS - $scoreSL);  
// **************  

console.info('Кол-во очков: '+$scoreSL);  
console.info('Уровень: '+$levelSL);  
console.info('Кол-во очков у уровня: '+$thisLvl);  
console.info('Кол-во очков у след. уровня: '+$NextLS);  
console.info('Кол-во очков до след. уровня: '+$scoreNextLvl);  
</script>


!! ВАЖНО !!
Я выкладываю только код системы, не визуализацию.
На превью материала представлена реализация.
Это альфа версия! Баги и предложения описывайте в комментариях здесь - ссылка

Для заказа визуальной части обращаться ко мне: ссылка

Источник: http://pandora.clan.su/
29 Июня 2018 Просмотров: 3026 Комментариев: (9)

Поделиться в социальных сетях

Материал разместил

Оставь свой отзыв

Комментарии: 9
BlackHARD
BlackHARD 29 Июня 2018 15:121
+1
Если по умолчанию множитель 1, то быстро ли поднимается уровень? Просто не хочу, чтобы баловались, чтобы всё умеренно было. Ато набьют 100 уровней за день.
Kosten
Kosten 29 Июня 2018 15:252
0
BlackHARD, приветствую, кратко не напишите, как работает по сути этот материал.
CbIPoK2513
CbIPoK2513 29 Июня 2018 15:443
-1
BlackHARD, если есть познания в JQ, то можно или вручную прописать очки для уровней и их кол-во или сделать цикл, который будет генерировать уровни (я себе так сделал).
К тому же, множитель можно сделать и десятичными (типо 0.5 за комментарий)
BlackHARD
BlackHARD 29 Июня 2018 17:394
+1
Спасибо, примерно понял, возьму калькулятор и буду подбирать :D
waak
waak 29 Июня 2018 18:295
+1
можно и правильнее сделать иначе просто для разных разделов сделать свой множитель ти по так
комментарии 0.1 файлы 0.5 форум 0.2 м тд цифры к примеру

Так как комментарии можно писать сколько угодно то и балы за них минимум а файлы другое дела их не добавишь 100 в день хотя если и добавят то вам же лучше!
noavatar
MrHimick 09 Сентября 2018 21:066
0
Чет я ставлю, а оно не работает((( Хотя все по инструкции
Kosten
Kosten 09 Сентября 2018 22:207
0
Не проверял этот материал, но из комментариев можно понять, что он рабочий.
-SAM-
-SAM- 10 Сентября 2018 20:488
+2
Там в материале написано всё - только скрипт, без визуальной части (а это значит, что на новичков и простых потребителей не ориентировано - они скрипт поставят, а после ничего не поменяется, так как результата работы скрипта внешне нет... это еще "сырая" версия, так сказать, как и еще одна попытка подзаработать или свой сайт продвинуть - перенаправление на сайт автора за остачей кода). Ну, а превью материала в данном случае - это профиль автора на сайте его.
Такие скрипты подсчёта можно реализовать на условных операторах системы, я имею в виду то, что идёт множитель и сложение (или даже тот же паблик скрипт взять-переделать, что баллы для uCoz)... а кому этот нужен - у автора заказывать.

Не понял только нафига писать про то, чтобы описывали баги и предложения (видимо, рассчитано на тех, кто уже заказал код... или на продвинутых, кто на основе выложенного до ума доведёт сам... или потянет код втихую, то есть порипает). Короче, дофига ссылок на сайт автора, когда должна быть лишь ссылка на источник материала и демонстрацию (а уже где демонстрация там, то и написать, что кому понравилось - можете заказать, но опять же - это не на Zornet, ибо тут раздачи, а не перенаправления на сайты разработчиков и площадка по продаже товаров, в этом модуле я имею в виду).

CbIPoK2513, тут как совет (почти то же, что и здесь писалось), что нужно материал хотя бы в подобающий вид привести, чтобы заказы были - нужна грамотная подача, та же видео-демонстрация работы скрипта или хотя бы скрины (можно в виде анимации подать)... и при альфа-версии для ознаком перенаправления - это явно не получиться.



Спустя вот подумал, что неплохо было бы на Zornet материалы про построение круговых диаграмм выложить -> в том же Google "круговые диаграммы html css js" (ибо тут таких материалов не встречал).

UPD.: Там даже и не "хотя бы чуть-чуть шарит" © CbIPoK2513, ибо у них, я более чем уверен, что ничего не выйдёт. "не выложил сюда вариант рабочий, но он есть" © CbIPoK2513 - это опять же плевать, поскольку его здесь так и нет, мы возвращаемся к тому, что я и написал - тупо перенаправление на другой сайт, как и слова "попросил отписываться у меня на сайте" © CbIPoK2513 - это подтверждают (а здесь они только и могут, что писать "не работает", пока материал не будет приведён в подобающий вид, как написал выше... пропустили, ибо не проверяли при модерации на работоспособность).
CbIPoK2513
CbIPoK2513 17 Сентября 2018 23:319
0
Да, вы правы, ориентировался скрипт на тех, кто хотя бы чуть-чуть шарит.
Признаю косяк, не выложил сюда вариант рабочий, но он есть.

Насчёт заказов, да, были такие мыслишки, но не они были в приоритете..
Дело в том, что если даже человек заказал, то я уточняю, согласен ли он на слив его заказа в общий доступ, если да - бесплатно.

По поводу ссылок - просто на тот момент я тут редко появлялся и не всегда мог смотреть комменты, вот как щас, слишком долгий ответ.
По этому и попросил отписываться у меня на сайте.
avatar