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

Объявление

GEMcross

Кроссовер, ориентированный на активную игру и уютный флуд.
Собираем у себя драгоценных игроков уже почти три года.

Посетить

💰 Теперь у нас можно приобрести "Мгновенные уведомления от Алекса"

Скрипт оповещает пользователей о событиях на форуме в реальном времени, придавая динамики общению.
Автор: Alex_63 | Платформа: MyBB.ru.

У нас: структурированная документация, возможность платить иностранными картами, перевыпустить подписку или купить бессрочно.

Купить скрипт

🔥 Новинка в портфолио: ДИЗАЙН ФОРУМА В СТИЛЕ ФЭНТЭЗИ С ПРОЗРАЧНОСТЬЮ

Платформа: MyBB.ru (RusFF)
Стоимость: 8000 рублей;
Авторы: Moju & Gerda

Посмотреть

🌟 ОПЛАТА ЗАКАЗА НАГРАДНЫМИ БАЛЛАМИ И СКИДКИ

Заказы можно оплачивать наградными баллами (НБ). Полностью или частично.
Бартер за НБ осуществляется на условиях платного заказа, в качестве оплаты - НБ.
А если у вас есть любой платный заказ, вы можете обменять НБ на скидочные купоны.

узнать подробности

📣 Наш проект: Ролевой поисковик

Поиск роли на текстовых ролевых
Проект от специалистов FD

Спойлеры и обсуждение

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

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

Подробнее

SPECIAL OFFER: We distribute designs for free

Finalizing the layout for your project;
Developing a style code;
Mobile version included if you wish.

Details

Support the project

If you want to help us:
Become a moderator
SuggestionsReviews

Details
❗ ❗ ❗ Technical work is underway. We'll fix it soon. :) If you're english-speaker and want to use our forum, switch to the russian language. This is temporary, until the works with multi-language option will be done. Sorry for the inconvenience.

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

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



Доска почёта или Рейтинг самых уважаемых (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.14 02:07)

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.20 18:12)

0