» »

Система уровней пользователей для сайта 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/
2018-06-29 Просмотров: 933 Комментарий: (9)

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

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

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

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

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

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



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

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

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

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