Ваши пользователи любят погоняться за репутацией? 
 Дайте им возможность погоняться ещё и за уровнем. 
 Система работает за счёт активности пользователя на сайте. 
 Учитывается кол-во материалов, комментариев и репутация. 
 Так же для любой активности можно поставить множитель: 
 Допустим Вы поставили для репутации множитель "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>