ViP

32767

Администраторы

32767

ViP

10000

На сайте уже 23 материала. Зарегистрировано 92309 пользователей, которые оставили 26 комментариев.
Хотите быстро заказать рип, верстку или же
уникальный дизайн для своего сайта?
Перейдите по нужной Вам ссылке.
Система уровней пользователей для uCoz
25.02.2019, 14:05
  • Просмотров - 342
  • Комментариев - 0
  • Рейтинг - из 5 ()
Описание:

Ваши пользователи любят погоняться за репутацией? 

Дайте им возможность погоняться ещё и за уровнем. 



Система работает за счёт активности пользователя на сайте. 

Учитывается кол-во материалов, комментариев и репутация. 

Так же для любой активности можно поставить множитель: 

Допустим Вы поставили для репутации множитель "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>






!! ВАЖНО !! 

Я выкладываю только код системы, не визуализацию. 

Источник: не указан
Материал «Система уровней пользователей для uCoz» ещё никто не комментировал.
Вы не можете оставить комментарий к материалу. Авторизируйтесь либо пройдите быструю регистрацию.
Статистика сайта uFace
Сегодня нас посетили пользователей
Ogółem online: 1
Gości: 1
Użytkowników: 0
ucoz ucoz
На сайте никого...
Контакты uFace
Все материалы на сайте размещены исключительно в ознакомительных целях. Все права на материалы, представленные на сайте, принадлежат их законным владельцам (правообладателям).

Дизайн и верстка - uFace. Stworzone w technologii uCoz.
Правила чата
Пользователи онлайн
Мини-чат
+Мини-чат
0
Ogółem online: 1
Gości: 1
Użytkowników: 0