Система уровней пользователей для сайта 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/ |
Поделиться в социальных сетях
Материал разместил
Комментарии: 9 | |
| |