ForumD.ru - Дизайн для форумов, скрипты для форумов, техническая поддержка

Объявление

Загадочный Дом «Кузнечик»

Форумные игры, кино, позитивное отношение и душевное общение!
Есть в мире место, где душе тепло...
Заходи, мы будем тебе рады!

Подробнее

Мийрон

Качественный пиар быстро и недорого.
Красивейшие дизайны по низким ценам.
Каталог ролевых игр.

Подробнее

Дизайн «Warlords of Draenor»

Детализированный rpg-дизайн для MyBB форума гильдии «Warlords of Draenor»
Стоимость при покупке эксклюзивно: 6300р
В стоимость входит настройка и корректировка дизайна под ваш проект.

Подробнее

Светлый дизайн в фентези стиле с аниме-графикой

Макет для светлого дизайна в фентези стиле с аниме-графикой.
Стоимость: 2600р*
Дизайн продается эксклюзивно (в одни руки).

Подробнее

Поддержать проект

Если у вас есть желание помочь нам сделать наш проект лучше:
Реклама на сайте
Стать модераторомОтзывы

Предложения

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ForumD.ru - Дизайн для форумов, скрипты для форумов, техническая поддержка » Архив устаревших тем » Доска почёта или Рейтинг самых уважаемых (Mybb) [Romych]


Доска почёта или Рейтинг самых уважаемых (Mybb) [Romych]

Сообщений 1 страница 3 из 3

1

Доска почёта или Рейтинг самых уважаемых
Виджет, выводящий рейтинг самых уважаемых пользователей на форуме.
http://s3.uploads.ru/t/TKYrt.png

Автор: Romych
Платформа: Mybb

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

Код:
<!--Рейтинг-->
<script type="text/javascript">
$(document).ready(function(){
$('#pun').find('#userhero').map(function(){ 
$('#heroes').tipsy({live: true,gravity: 'e',fade: true});
$.get('/userlist.php?username=&show_group=-1&sort_by=respect','',processRespect);
function processRespect(data){
$(data).find('div.usertable tbody tr:lt(5)').each(function(){  
var JUser=$(this).find('span.usersname').text();
var ulink=$(this).find('span.usersname a').attr('href');
var UsId=ulink.slice(ulink.indexOf('id=')+3);
var UsPlus=$(this).find('td.tc3:first').text();
var numPlus=Number(UsPlus)/2;
$.get('/profile.php?section=avatar&id='+UsId,'',GetImg);
function GetImg(data) {
$(data).find('td#profile-left li div, div.fs-box').map(function () {
var ZAva = $(this).find('img').attr('src');
if (ZAva == undefined) {ZAva = 'http://petushki-city.ru/files/0002/10/47/50167.gif'};
$('#userhero').append('<tr><td width="3%" style="padding: 0;"><a href="'+ulink+'" style="padding-left: 15px;text-decoration: none;"><img id="heroes" style="border:1px solid #696969;border-radius: 7px 0 0 7px;margin: 3px 0 -2px 5px;padding: 3px;" src="/'+ZAva+'" width="26" height="26" original-title="'+JUser+'"></a></td></td><td><h1 style="background:#FF8C00;border-radius: 0 9px 9px 0;box-shadow: 20px 0 15px #40310A inset;color: #fff;font-size: 1em;font-weight: bold;height: 20px;margin-top: 2px;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );width:'+numPlus+'px !important;">&nbsp;'+UsPlus+'&nbsp;</h1></td></tr>'); 
});};});};});});
</script>
<table id="userhero" cellpadding="0" cellspacing="0" ></table>

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

сколько выводить пользователей в списке, решайте сами, но чем меньше "героев", тем меньше запросов к серверу,
регулируется число выводимых пользователей здесь:

$(data).find('div.usertable tbody tr:lt(5)').each(function(){

следует отдельно сказать о шкале "уважаемости", если её длинна слишком велика и не вписывается в дизайн форума, то регулировать её можно, меняя число деления рейтинга на большее:

var numPlus=Number(UsPlus)/2;

если у самого уважаемого количество плюсов перевалило за 1000, то пожалуй логичным будет делить уже на 10, а не на 2
ДЕМО


вариант оформления №2

http://s2.uploads.ru/UQ1D9.png

Код:
<!--Рейтинг-->
<script type="text/javascript">
$(document).ready(function(){
$('#pun').find('#userhero').map(function(){ 
$('#heroes').tipsy({live: true,gravity: 's',fade: true});
$.get('/userlist.php?username=&show_group=-1&sort_by=respect','',processRespect);
function processRespect(data){
$(data).find('div.usertable tbody tr:lt(5)').each(function(){  
var JUser=$(this).find('span.usersname').text();
var ulink=$(this).find('span.usersname a').attr('href');
var UsId=ulink.slice(ulink.indexOf('id=')+3);
var UsPlus=$(this).find('td.tc3:first').text();
$.get('/profile.php?section=avatar&id='+UsId, '',GetImg);
function GetImg(data) {
$(data).find('td#profile-left li div, div.fs-box').map(function () {
var ZAva = $(this).find('img').attr('src');
if (ZAva == undefined) {ZAva = 'http://petushki-city.ru/files/0002/10/47/50167.gif'};
$('#userhero').append('<li style="display: inline-block;padding: 5px;text-align: center;"><a href="'+ulink+'" style="text-decoration: none;"><figure><img id="heroes" style="border:1px solid #696969;border-radius: 7px 7px 7px 7px;" src="/'+ZAva+'" width="52" height="52" original-title="'+JUser+'"><figcaption style="background:#99CC33;border-radius: 0 0 7px 7px;box-shadow: 0 0 10px #40310A inset;color: #fff;font-size: 1em;font-weight: bold;height: 20px;margin-top: -20px;position: relative;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );">'+UsPlus+'</figcaption></figure></a></li>'); 
});};});};});});
</script>
<ul id="userhero"></ul>

ДЕМО № 2

Отредактировано Герда (17.01.2014 02:07:32)

0

2

Модификация скрипта от Romych: "Доска почёта или Рейтинг самых уважаемых" (с) Deff

1. Введено суточное запоминание рейтинг-контента
2. Исправлен глюк в "Активных пользователях" с сидением в чьем-то профиле
3. Исправлен трабл с десортировкой по рейтингу, из-за разной скорости запросов

В HTML низ

<!-- Рейтинг by Romych (correct)-->
<script type="text/javascript" src="https://forumstatic.ru/files/0010/b4/f8/51860.js"></script>
<script type="text/javascript">
(function(){if(!($('#pun-index').length)) return; //Красное удаляем, если нужно не только на главной
var N = 5 //Число отображаемых юзеров;
var n=N, arrUserHero = '', b='"',arr00=[];
$('#heroes').tipsy({live: true,gravity: 's',fade: true});
var UserHero = getadmCookie('UserHero');if(!UserHero){
$.get('/userlist.php?username=&show_group=-1&sort_by=respect','',processRespect);
function processRespect(data){
$(data).find('div.usertable tbody tr:lt('+N+')').each(function(Ip){
var JUser=$(this).find('span.usersname').text();
var ulink=$(this).find('span.usersname a').attr('href');
var UsId=ulink.slice(ulink.indexOf('id=')+3);
var UsPlus=$(this).find('td.tc3:first').text();
arr00[Ip]=[b+JUser+b,b+UsId+b,b+UsPlus+b];
$.get('/profile.php?section=avatar&id=' +UsId, '',GetImg);
function GetImg(data) {
var ZAva = $(data).find('td#profile-left li > div, div.fs-box').find('img').attr('src');
if (ZAva == undefined|'') ZAva = '';
arrUserHero+='\n'+Ip+':['+arr00[Ip].toString()+','+b+ZAva+b+'],';
--n;
if(!n)$(document).ready(function(){
    var arr='{'+arrUserHero.substr(0,arrUserHero.length-1)+'}';
    setadmCookie('UserHero',arr,24*60*60*1000);
    appContent(eval('arr='+arr));$("<div></div>").load(document.URL+"#pun-navlinks #navindex");
  });
};});};}else $(document).ready(function(){appContent(eval('arr='+UserHero));});
function appContent(arr){ for(var i in arr){n = +i;
var JUser = arr[i][0],UsId = arr[i][1],UsPlus = arr[i][2],ZAva = arr[i][3],ulink = '/profile.php?id='+UsId;
if (ZAva == '') {ZAva = 'http://petushki-city.ru/files/0002/10/47/50167.gif'} else {ZAva='http://'+location.hostname+'/'+ZAva;}
$('#userhero').append('<li style="display: inline-block;padding: 5px;text-align: center;"><a href="'+ulink+'" style="text-decoration: none;"><figure><img id="heroes" style="border:1px solid #696969;border-radius: 7px 7px 7px 7px;" src="'+ZAva+'" width="52" height="52" original-title="'+JUser+'"><figcaption style="background:#99CC33;border-radius: 0 0 7px 7px;box-shadow: 0 0 10px #40310A inset;color: #fff;font-size: 1em;font-weight: bold;height: 20px;margin-top: -20px;position: relative;text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2 );">'+UsPlus+'</figcaption></figure></a></li>');}
if((N-n)!=1)deleteadmCookie('UserHero');
}}());
</script>

Туда, где нужно отображение рейтинга:

<ul id="userhero"></ul>

Если необходимо отображение в столбик, - добавляем перед cтрокой <ul id="userhero"></ul> Код:

<style type="text/css">#userhero li{display:block!important;width:53px}</style>

0

3

Скрытый текст:

Для просмотра скрытого текста - войдите или зарегистрируйтесь.

Отредактировано Мийрон (20.11.2020 18:12:36)

0


Вы здесь » ForumD.ru - Дизайн для форумов, скрипты для форумов, техническая поддержка » Архив устаревших тем » Доска почёта или Рейтинг самых уважаемых (Mybb) [Romych]