Техническая поддержка сервиса Quadro.Boards

Объявление

Новости сервиса

О форуме

Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC, на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы. Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)

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

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


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW


Скрипты по подгрузке API WoW

Сообщений 101 страница 120 из 129

101

апчег.
все еще не горящий, но апчег. :flag:

0

102

Герда написал(а):

снова, прив. скрипт пашет отлично! =)
кстати, подтянула свою подругу с враждебной фракции тоже форум гильдии тут делать. пока мы в процессе, но от оружейной их гильдия тож в восторге.
глядишь, скоро на КБ весь ру оф поддтянется. :)

в честь расплодившегося спроса хочу поднять один из постов.

может кто подсказать/рассказать в чем дело.... не работает юзер-панель рядом с объявлением форума на главной. давно уже..
хотя там ничего не трогаем.

Код:
<div id="u-panel">

    <script type="text/javascript">
    if($('#pun-index').length)
    $.get("/profile.php?section=fields&id="+UserID+"", function(data){
    var PFld = $(data).find(".input #fld3").val();
    var ZFld = $(data).find(".input #fld1").val();
    var QFld = "";;
    if (UserName == ""){UserName = "<a href='/profile.php?section=personal&id="+UserID+"'>неизвестно</a>"}
    if (UserAge == "0"){UserAge = "<a href='/profile.php?section=personal&id="+UserID+"'>неизвестно</a>"}
    if (UserBirthDate == ""){UserBirthDate = "<a href='/profile.php?section=personal&id="+UserID+"'>заполнить</a>"}
    if (UserSex == "2"){UserSex = "женский"}
    if (UserSex == "1"){UserSex = "мужской"}

function ABC(QFld,PFld,ZFld,UserName,UserAge,UserBirthDate,UserSex){
    if (UserSex == "0"){UserSex = "<a href='/profile.php?section=personal&id="+UserID+"'>неизвестно</a>"}
    if (!QFld){QFld = "<a href='/profile.php?section=fields&id="+UserID+"'>персонаж неизвестен</a>"}
    if (!PFld){PFld = "<a href='/profile.php?section=fields&id="+UserID+"'>батл тег не указан</a>"}
    if (!ZFld){ZFld = "<img src='/files/0012/ad/ab/72354.jpg'>"}
    var arr=document.getElementsByTagName("div")
    i=0
    while(arr ){
    if(arr[i].id=="u-panel") {
    name=arr[i].innerHTML
    name=name.substring(0)
    arr[i].innerHTML="<div id=option><span class='u-log'><a href='/profile.php?id="+UserID+"'>"+UserLogin+"</a></span><span class='u-ava'>"+ZFld+"</span><br/><div class='u-data'><b>"+UserTitle+"</b><br/>"+PFld+"<br/>"+QFld+" <br/>Имя: <b>"+UserName+"</b><br/>Пол: <b>"+UserSex+"</b><br/>Возраст: <b>"+UserAge+"</b> ["+UserBirthDate+"]<br/><a href='/respect.php?id="+UserID+"'>Репутация</a><br/><a href='/mod/awards/?uid="+UserID+"'>Достижения</a></div></div>"+name
    }i++}
}
	var dtn_1 = ZFld
        if(dtn_1&&dtn_1.length&&dtn_1.split(',').length>1){

        var realm = dtn_1.split(',')[0];
        var hero = dtn_1.split(',')[1];//alert([realm,hero])
        var altN = dtn_1.split(',')[2];
        var alt=""; if(typeof(altN)!='undefined')alt='alt="'+altN+'"';
        var QFld = hero;
        $.get('http://onff.ru/gerda/wow.php', { r: realm, h: hero }, function(data) { if(data==null){ZFld = "<img src='/files/0012/ad/ab/72354.jpg'>"; ABC(QFld,PFld,ZFld,UserName,UserAge,UserBirthDate,UserSex);return;}
          ZFld = '<img '+alt+' src="http://eu.battle.net/static-render/eu/'+data.thumbnail+'">';ABC(QFld,PFld,ZFld,UserName,UserAge,UserBirthDate,UserSex);
        });} else {ZFld = "<img src='/files/0012/ad/ab/72354.jpg'>";ABC(QFld,PFld,ZFld,UserName,UserAge,UserBirthDate,UserSex);}

    });
    </script>

<script type="text/javascript">
var arr=document.getElementsByTagName("div")
i=0
while(arr ){
if(arr[i].id=="u-panel" && GroupID == "3") {
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML="<div id=option><span class='g-log'><b>Привет, Гость!</b></span><span class='u-ava'><img src='/files/0012/ad/ab/72354.jpg'></span><br/><div class='ug-data'>Добро пожаловать!<br/>Для участия в конференциях необходимо <a href='login.php'>войти</a> или <a href='register.php'>зарегистрироваться</a>.<br/></div></div>"+name
}i++}
</script>
<!---Быстрый вход--->
    <script id="MylogIn" type="text"><!--Быстрый Вход -->
        <form id="login" style="position: absolute; text-align: center; width: 145px; height: 82px; top: -460px; z-index: 300; left: 46px;" class="container" method="post" action="/login.php?action=in" onsubmit="return process_form(this)">

    <input type="hidden" name="form_sent" value="1" /><input type="hidden" name="redirect_url" value="" />
    <input placeholder="Логин" style="text-align: center; height: 15px; font-size: 10px; background: #17120f; border: 1px inset #352919; border-radius: 8px; margin: 8px 0 2px;" type="text" id="fld1" name="req_username" size="16" maxlength="25" /><br/>
    <input placeholder="Пароль" style="text-align: center; height: 15px; font-size: 10px; background: #17120f; border: 1px inset #352919; border-radius: 8px; margin: 4px 0;" type="password" id="fld2" name="req_password" size="16" maxlength="16" /><br/>
    <button id="gl-but" type="submit" style="height: 20px; width: 70px; background-color: #5e4e3f;
outline: none; border: 1px outset #2e2212; border-radius: 8px; box-shadow: 0 0 5px #1a1613 inset; cursor: pointer; margin: 2px 0;">ВХОД</button>  
    </form>
    </div>
    </script>
    <script>$(document).ready(function(){if($("#navlogin").length)$(".punbb").prepend($("#MylogIn").text());});</script>
<style>#gl-but:hover, #gl-but:active {box-shadow: 0 0 5px #1a1613 inset, 0 0 5px #1a1613 !important;}</style>
<!---Быстрый вход--->
</div>

я на своем форуме как-то забила на эту панель, но они тоже хотят похожую фичу, так что было бы круто воскресить.

вклатце о том, шо нам надо:
1. это юзер-панель, в которую можно вписать всякие данные профиля юзера - http://forumd.ru/viewtopic.php?id=4392
2. в нее же должна быть возможность вкорячить информацию из дополнительных полей - с этим помогали тут: http://forum.mybb.ru/viewtopic.php?id=3 … =3#p843016
3. и вот самое дикое нечто - нужно шоб в этой же панели по нашему мега-полю подгружалась Аватарка оружейной
ну а если с оружейной какой-то косяк (поле не заполнено или заполненно некорректно) - вставала аватара по умолчанию: https://forumstatic.ru/files/0012/ad/ab/72354.jpg

апчег

0

103

Герда
Некогда, Герд, еле отвечать на саппорте успеваю - у модеров то сессичные, то еще что, было бы пару постоянно отвечающих человек - успевала бы скриптами заниматься, пока не выходит :(

0

104

sadhaka
оу, я могу поотвечать. :)
как сессия кончится, вспомни про меня. а то у меня расплодились воверские гильд-форумы на нашем сервисе уже в количестве аж 4 штук.

0

105

Герда
ок, скажите когда про тебя вспомнить и я обязательно вспомню )

0

106

sadhaka
да я же неуч ) понятия не имею когда там сессионные передряги закончатся. ))
когда появится время - так сразу вспоминай. ))
можешь сказать как комфортней будет - могу раз в недельку апать эту тему, могу не навязываться апами. )

0

107

Герда написал(а):

понятия не имею когда там сессионные передряги закончатся. ))

У меня? Не, у меня нет сессии, это у модеров моих - сплошь сессии.
Так, что если у тебя есть время - можешь хоть сейчас приступать, а повыкраиваю свое время на скрипты :)

0

108

Герда
В общем, пока без всяких плюшек, но работает, посмотри, что доделать
оба скрипта (по отдельности пока нельзя использовать), первый (авы в топике) тоже чуть-чуть подредактирован, так что меняй все.
Не забудь в блоке global vars поменять номер поля

Код:
<style>
  .pa-avatar.item2, .pa-fld2 {display: none;}
</style>

<script src="https://forumstatic.ru/files/0011/e9/e1/73894.js"></script>
<script>
//global var
var arrStorage, dataSet, currentDate, createDate, arrParam = []; 
var fld = 2;

var colorClasses = {
1 : "#c69b5b",
2 : "#d58cba",
3 : "#aad372",
4 : "#fff448",
5 : "#ffffff",
6 : "#aa1813",
7 : "#2359ff",
8 : "#68cccd",
9 : "#9382c9",
10 : "#0dffba",
11 : "#ff7c0a",
};
// end global var
function readLocalStorage() { //read LocalStorage to global var arrStorage
  var arrStorage, currentDate, createDate;

  if(window.localStorage) {
    currentDate = new Date();
    currentDate = Date.parse(currentDate) / 86400000;

      if (localStorage.getItem('battlenet') !== null) {
        
        arrStorage = $.parseJSON(localStorage.getItem('battlenet'));
        createDate = arrStorage[dataSet];
        if (currentDate - createDate > 7) {
          localStorage.removeItem('battlenetAva');
        } 
      }
      if (localStorage.getItem('battlenet') == null) {
        arrStorage = {};
        arrStorage['dataSet'] = currentDate;
      }        
  }
  return arrStorage;
}

function getData(flag, id, realm, nick, aux, place) { //get data from battle.net, if LocalStorage is empty
  $.jsonp({
    url: 'http://eu.battle.net/api/wow/character/'+realm+'/'+nick,
    callbackParameter: 'jsonp',
    success: function(json) {
        arrStorage[id] = {'realm': json.realm, 'nick': json.nick, 'aux': aux, 'avatar': json.thumbnail, 'class': json.class};
        localStorage.setItem('battlenet', JSON.stringify(arrStorage));
        if (flag == "topic") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            setColorTopic(place, json.class);
        }
        if (flag == "all") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            $("a[href$='/profile.php?id="+id+"]").css("color", colorClasses[json.class]);
        }
        
    },
    error: function() {
        setDefaultAva(place);
    }
  });
}

function setDefaultAva(place) { //set avatar, if loading failed
  $(place).html('<img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" />');
}

function setCustomAva(place, param0, param1, param2, avatar) { //set avatar, if loading is successful
  $(place).append('<a href="http://eu.battle.net/wow/ru/character/'+param0+'/'+param1+'/simple" title="оружейная"> <img alt="'+param2+'" src="http://eu.battle.net/static-render/eu/'+avatar+'"> </a>');
}

function setColorTopic(place, color) { //set color for links
    $(place).parent().find("li.pa-author a").css("color", colorClasses[color]);
}

function lookAvaTopic() { 
  var flParam, idParam, newAva;
  $(".post-author").each(function(e) {

    flParam = $(this).find(".pa-fld"+fld);
    if ($(flParam).length) arrParam = $(flParam).text().split(":")[1].split(",");

    newAva = $('<li class="pa-avatar item3"></li>').insertAfter($(this).find(".pa-title"));
    idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];  

    if(arrParam.length < 2) { setDefaultAva(newAva); return;}
    if(!arrParam[2]) arrParam[2] = "0"; 

    arrStorage = readLocalStorage();

    if (arrStorage[idParam]) {
        setCustomAva(newAva, arrParam[0], arrParam[1], arrParam[2], arrStorage[idParam].avatar);
        setColorTopic(newAva, arrStorage[idParam].class);
    }
    else {
        getData('topic', idParam, arrParam[0], arrParam[1], arrParam[2], newAva);
    }

  })
}

function colorLinks() {
    var idLink, color;
    $("a[href*='/profile.php?id=']").each(function() {
        idLink = $(this).attr('href').split("id=")[1];
        arrStorage = readLocalStorage();
        if(arrStorage[idLink]) {
            color = arrStorage[idLink].class;
            $(this).css("color", colorClasses[color]);
        }
        //else getData('all', idLink, realm);
    });
}


if(document.URL.indexOf("viewtopic.php")!=-1) {
  lookAvaTopic();
}
else {
  colorLinks();
}
//Make mini profile for index (main) page
if($('#pun-index').length) {
var loadavatar = 1; 

function MakeProfile() {
    var paSex='',paAuthor='',paAvatar='',paTitle='',paRespect='',paAge='',paName='',paAwards='';
    var showFilds = {
        paAuthor : 1,
        paTitle : 1,
        paAvatar : 1,
        paRespect : 1,
        paName : 1,
        paAge : 1,
        paSex : 1,
        paAwards : 1
    }
    if(showFilds.paAuthor) paAuthor = '<li class="pa-author"><a href="/profile.php?id='+UserID+'">'+UserLogin+'</a></li>';
    if(showFilds.paTitle) paTitle = '<li class="pa-title">'+UserTitle+'</li>';
    if(showFilds.paAvatar) paAvatar = '<li class="pa-avatar item3"></li>';
      
    if(showFilds.paRespect) {
        var summRespect = UserRespectPlus - UserRespectMinus;
        paRespect = '<li class="pa-respect"><a href="/respect.php?id='+UserID+'">Репутация:</a> '+summRespect+'</li>';
    };
    if(showFilds.paName) {
        if (UserName != "") paName = '<li class="pa-name">Имя: '+UserName+'</li>';
        else paName = '<li class="pa-name">Имя: <a href="/profile.php?section=personal&id='+UserID+'">неизвестно</a></li>';
    }
    if (showFilds.paAge) {
        if (UserBirthDate!='') paAge = '<li class="pa-age">Возраст: '+UserAge+'<span> ['+UserBirthDate+']</span></li>';
        else paAge = '<li class="pa-age">Возраст: '+UserAge+'<span> [<a href="/profile.php?section=personal&id='+UserID+'">заполнить</a>]</span></li>';
    }
    if(showFilds.paSex) {
        var Usex = {
            0: 'неизвестно',
            1: 'мужской',
            2: 'женский'
        };
        paSex = '<li class="pa-sex">Пол: '+Usex[UserSex]+'</li>';
    }
    if(showFilds) paAwards = '<li class="pa-awards"><a href="/mod/awards/?uid='+UserID+'">Достижения</a></li>';

    var fullHtml = '<ul>'+paAuthor+paTitle+paAvatar+paRespect+paName+paAge+paSex+paAwards+'</ul>';
    $("#u-panel").append(fullHtml);
}
MakeProfile();
    //
    if (loadavatar) {
        function getAvatarProfile() {
            var flParam, newAva; 

            $.get("/profile.php?section=fields&id="+UserID+"", function(data){

                newAva = $("#u-panel .pa-avatar.item3");

                var paFld = $(data).find(".input #fld"+fld).val();
                if (paFld == undefined) {setDefaultAva(newAva); return;}
                
                flParam = paFld.split(",");
                if (flParam.length < 2 ) {setDefaultAva(newAva); return;}
                
                if(!flParam[2]) flParam[2] = "0";

                arrStorage = readLocalStorage();
                console.log(arrStorage);
                console.log(arrStorage[UserID]);
                if (arrStorage[UserID]) { 
                    setCustomAva(newAva, flParam[0], flParam[1], flParam[2], arrStorage[UserID].avatar);
                    setColorTopic(newAva, arrStorage[UserID].class);
                }
                else {
                    getData('all', UserID, flParam[0], flParam[1], flParam[2], newAva);
                }
            });
        }
        getAvatarProfile();
    }

}
</script>

Это туда, где должен быть профиль

Код:
<div id="u-panel"></div>

выглядит так http://sadhaka.rusff.me/
login kris1111 pass 1111

быстрый вход и инфу для незареганных пока не доделала.

+1

109

sadhaka
оу, ваще шикарно... получилось подобие провиля юзера и на него распостранилось цветовыделение статусов и аватарок :cool:

небольшие декоративности, которые могу быть примешаны:
1. если у юзера не заполнен возраст, можно заменить "0" на "неизвестен"
2. если у юзера не отображается аватарка, можно прикрепить ссылку на заполнение профиля > дополнительно

0

110

Герда написал(а):

2. если у юзера не отображается аватарка, можно прикрепить ссылку на заполнение профиля > дополнительно

А ссылка должна быть по клику на аватар или ниже?

Герда написал(а):

1. если у юзера не заполнен возраст, можно заменить "0" на "неизвестен"

не проблема, сделаю

0

111

sadhaka написал(а):

А ссылка должна быть по клику на аватар или ниже?

по клику на аватар. :)

0

112

Герда
Попробуй так

Код:
<style>
  .pa-avatar.item2, .pa-fld2 {display: none;}
</style>

<script src="https://forumstatic.ru/files/0011/e9/e1/73894.js"></script>
<script>
//global var
var arrStorage, dataSet, currentDate, createDate, arrParam = []; 
var fld = 2;

var colorClasses = {
1 : "#c69b5b",
2 : "#d58cba",
3 : "#aad372",
4 : "#fff448",
5 : "#ffffff",
6 : "#aa1813",
7 : "#2359ff",
8 : "#68cccd",
9 : "#9382c9",
10 : "#0dffba",
11 : "#ff7c0a",
};
// end global var
function readLocalStorage() { //read LocalStorage to global var arrStorage
  var arrStorage, currentDate, createDate;

  if(window.localStorage) {
    currentDate = new Date();
    currentDate = Date.parse(currentDate) / 86400000;

      if (localStorage.getItem('battlenet') !== null) {
        
        arrStorage = $.parseJSON(localStorage.getItem('battlenet'));
        createDate = arrStorage[dataSet];
        if (currentDate - createDate > 7) {
          localStorage.removeItem('battlenetAva');
        } 
      }
      if (localStorage.getItem('battlenet') == null) {
        arrStorage = {};
        arrStorage['dataSet'] = currentDate;
      }        
  }
  return arrStorage;
}

function getData(flag, id, realm, nick, aux, place) { //get data from battle.net, if LocalStorage is empty
  $.jsonp({
    url: 'http://eu.battle.net/api/wow/character/'+realm+'/'+nick,
    callbackParameter: 'jsonp',
    success: function(json) {
        arrStorage[id] = {'realm': json.realm, 'nick': json.nick, 'aux': aux, 'avatar': json.thumbnail, 'class': json.class};
        localStorage.setItem('battlenet', JSON.stringify(arrStorage));
        if (flag == "topic") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            setColorTopic(place, json.class);
        }
        if (flag == "all") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            $("a[href$='/profile.php?id="+id+"]").css("color", colorClasses[json.class]);
        }
        
    },
    error: function() {
        setDefaultAva(place, flag, id);
    }
  });
}

function setDefaultAva(place, flag, id) { //set avatar, if loading failed
    if (flag = 'profile') {
        $(place).html('<a title="заполнить профиль" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" /></a>');
    }
    else 
        $(place).html('<img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" />');
}

function setCustomAva(place, param0, param1, param2, avatar) { //set avatar, if loading is successful
  $(place).append('<a href="http://eu.battle.net/wow/ru/character/'+param0+'/'+param1+'/simple" title="оружейная"> <img alt="'+param2+'" src="http://eu.battle.net/static-render/eu/'+avatar+'"> </a>');
}

function setColorTopic(place, color) { //set color for links
    $(place).parent().find("li.pa-author a").css("color", colorClasses[color]);
}

function lookAvaTopic() { 
  var flParam, idParam, newAva;
  $(".post-author").each(function(e) {

    flParam = $(this).find(".pa-fld"+fld);
    if ($(flParam).length) arrParam = $(flParam).text().split(":")[1].split(",");

    newAva = $('<li class="pa-avatar item3"></li>').insertAfter($(this).find(".pa-title"));
    idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];  

    if(arrParam.length < 2) { setDefaultAva(newAva); return;}
    if(!arrParam[2]) arrParam[2] = "0"; 

    arrStorage = readLocalStorage();

    if (arrStorage[idParam]) {
        setCustomAva(newAva, arrParam[0], arrParam[1], arrParam[2], arrStorage[idParam].avatar);
        setColorTopic(newAva, arrStorage[idParam].class);
    }
    else {
        getData('topic', idParam, arrParam[0], arrParam[1], arrParam[2], newAva);
    }

  })
}

function colorLinks() {
    var idLink, color;
    $("a[href*='/profile.php?id=']").each(function() {
        idLink = $(this).attr('href').split("id=")[1];
        arrStorage = readLocalStorage();
        if(arrStorage[idLink]) {
            color = arrStorage[idLink].class;
            $(this).css("color", colorClasses[color]);
        }
        //else getData('all', idLink, realm);
    });
}


if(document.URL.indexOf("viewtopic.php")!=-1) {
  lookAvaTopic();
}
else {
  colorLinks();
}
//Make mini profile for index (main) page
if($('#pun-index').length) {
var loadavatar = 1; 

function MakeProfile() {
    var paSex='',paAuthor='',paAvatar='',paTitle='',paRespect='',paAge='',paName='',paAwards='';
    var showFilds = {
        paAuthor : 1,
        paTitle : 1,
        paAvatar : 1,
        paRespect : 1,
        paName : 1,
        paAge : 1,
        paSex : 1,
        paAwards : 1
    }
    if(showFilds.paAuthor) paAuthor = '<li class="pa-author"><a href="/profile.php?id='+UserID+'">'+UserLogin+'</a></li>';
    if(showFilds.paTitle) paTitle = '<li class="pa-title">'+UserTitle+'</li>';
    if(showFilds.paAvatar) paAvatar = '<li class="pa-avatar item3"></li>';
      
    if(showFilds.paRespect) {
        var summRespect = UserRespectPlus - UserRespectMinus;
        paRespect = '<li class="pa-respect"><a href="/respect.php?id='+UserID+'">Репутация:</a> '+summRespect+'</li>';
    };
    if(showFilds.paName) {
        if (UserName != "") paName = '<li class="pa-name">Имя: '+UserName+'</li>';
        else paName = '<li class="pa-name">Имя: <a href="/profile.php?section=personal&id='+UserID+'">неизвестно</a></li>';
    }
    if (showFilds.paAge) {
        if (UserBirthDate!='') paAge = '<li class="pa-age">Возраст: '+UserAge+'<span> ['+UserBirthDate+']</span></li>';
        else paAge = '<li class="pa-age">Возраст: неизвестен <span> [<a href="/profile.php?section=personal&id='+UserID+'">заполнить</a>]</span></li>';
    }
    if(showFilds.paSex) {
        var Usex = {
            0: 'неизвестно',
            1: 'мужской',
            2: 'женский'
        };
        paSex = '<li class="pa-sex">Пол: '+Usex[UserSex]+'</li>';
    }
    if(showFilds) paAwards = '<li class="pa-awards"><a href="/mod/awards/?uid='+UserID+'">Достижения</a></li>';

    var fullHtml = '<ul>'+paAuthor+paTitle+paAvatar+paRespect+paName+paAge+paSex+paAwards+'</ul>';
    $("#u-panel").append(fullHtml);
}
MakeProfile();
    //
    if (loadavatar) {
        function getAvatarProfile() {
            var flParam, newAva; 

            $.get("/profile.php?section=fields&id="+UserID+"", function(data){

                newAva = $("#u-panel .pa-avatar.item3");

                var paFld = $(data).find(".input #fld"+fld).val();
                if (paFld == undefined) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                flParam = paFld.split(",");
                if (flParam.length < 2 ) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                if(!flParam[2]) flParam[2] = "0";

                arrStorage = readLocalStorage();
                console.log(arrStorage);
                console.log(arrStorage[UserID]);
                if (arrStorage[UserID]) { 
                    setCustomAva(newAva, flParam[0], flParam[1], flParam[2], arrStorage[UserID].avatar);
                    setColorTopic(newAva, arrStorage[UserID].class);
                }
                else {
                    getData('profile', UserID, flParam[0], flParam[1], flParam[2], newAva);
                }
            });
        }
        getAvatarProfile();
    }

}
</script>

0

113

возраст отображается как надо :cool:
ссылки на редактирования профиля под аватаркой по умолчанию нима

function setDefaultAva(place, flag, id) { //set avatar, if loading failed
    if (flag = 'profile') {
        $(place).html('<a title="заполнить профиль" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" /></a>');
    }
    else
        $(place).html('<img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" />');
}

вот эту строчку поправила

финальный код

Код:
<style>
  .pa-avatar.item2, .pa-fld2 {display: none;}
</style>

<script src="https://forumstatic.ru/files/0011/e9/e1/73894.js"></script>
<script>
//global var
var arrStorage, dataSet, currentDate, createDate, arrParam = []; 
var fld = 2;

var colorClasses = {
1 : "#c69b5b",
2 : "#d58cba",
3 : "#aad372",
4 : "#fff448",
5 : "#ffffff",
6 : "#aa1813",
7 : "#2359ff",
8 : "#68cccd",
9 : "#9382c9",
10 : "#0dffba",
11 : "#ff7c0a",
};
// end global var
function readLocalStorage() { //read LocalStorage to global var arrStorage
  var arrStorage, currentDate, createDate;

  if(window.localStorage) {
    currentDate = new Date();
    currentDate = Date.parse(currentDate) / 86400000;

      if (localStorage.getItem('battlenet') !== null) {
        
        arrStorage = $.parseJSON(localStorage.getItem('battlenet'));
        createDate = arrStorage[dataSet];
        if (currentDate - createDate > 7) {
          localStorage.removeItem('battlenetAva');
        } 
      }
      if (localStorage.getItem('battlenet') == null) {
        arrStorage = {};
        arrStorage['dataSet'] = currentDate;
      }        
  }
  return arrStorage;
}

function getData(flag, id, realm, nick, aux, place) { //get data from battle.net, if LocalStorage is empty
  $.jsonp({
    url: 'http://eu.battle.net/api/wow/character/'+realm+'/'+nick,
    callbackParameter: 'jsonp',
    success: function(json) {
        arrStorage[id] = {'realm': json.realm, 'nick': json.nick, 'aux': aux, 'avatar': json.thumbnail, 'class': json.class};
        localStorage.setItem('battlenet', JSON.stringify(arrStorage));
        if (flag == "topic") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            setColorTopic(place, json.class);
        }
        if (flag == "all") {
            setCustomAva(place, realm, nick, aux, json.thumbnail);
            $("a[href$='/profile.php?id="+id+"]").css("color", colorClasses[json.class]);
        }
        
    },
    error: function() {
        setDefaultAva(place, flag, id);
    }
  });
}

function setDefaultAva(place, flag, id) { //set avatar, if loading failed
    if (flag = 'profile') {
        $(place).html('<a title="персонаж неизвестен" class="tip" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" /></a>');
    }
    else 
        $(place).html('<a title="персонаж неизвестен" class="tip" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" /></a>');
}

function setCustomAva(place, param0, param1, param2, avatar) { //set avatar, if loading is successful
  $(place).append('<a href="http://eu.battle.net/wow/ru/character/'+param0+'/'+param1+'/simple" title="оружейная"> <img alt="'+param2+'" src="http://eu.battle.net/static-render/eu/'+avatar+'"> </a>');
}

function setColorTopic(place, color) { //set color for links
    $(place).parent().find("li.pa-author a").css("color", colorClasses[color]);
}

function lookAvaTopic() { 
  var flParam, idParam, newAva;
  $(".post-author").each(function(e) {

    flParam = $(this).find(".pa-fld"+fld);
    if ($(flParam).length) arrParam = $(flParam).text().split(":")[1].split(",");

    newAva = $('<li class="pa-avatar item3"></li>').insertAfter($(this).find(".pa-title"));
    idParam = $(this).find(".pa-respect a[href*='respect.php']").attr('href').split('id=')[1];  

    if(arrParam.length < 2) { setDefaultAva(newAva); return;}
    if(!arrParam[2]) arrParam[2] = "0"; 

    arrStorage = readLocalStorage();

    if (arrStorage[idParam]) {
        setCustomAva(newAva, arrParam[0], arrParam[1], arrParam[2], arrStorage[idParam].avatar);
        setColorTopic(newAva, arrStorage[idParam].class);
    }
    else {
        getData('topic', idParam, arrParam[0], arrParam[1], arrParam[2], newAva);
    }

  })
}

function colorLinks() {
    var idLink, color;
    $("a[href*='/profile.php?id=']").each(function() {
        idLink = $(this).attr('href').split("id=")[1];
        arrStorage = readLocalStorage();
        if(arrStorage[idLink]) {
            color = arrStorage[idLink].class;
            $(this).css("color", colorClasses[color]);
        }
        //else getData('all', idLink, realm);
    });
}


if(document.URL.indexOf("viewtopic.php")!=-1) {
  lookAvaTopic();
}
else {
  colorLinks();
}
//Make mini profile for index (main) page
if($('#pun-index').length) {
var loadavatar = 1; 

function MakeProfile() {
    var paSex='',paAuthor='',paAvatar='',paTitle='',paRespect='',paAge='',paName='',paAwards='';
    var showFilds = {
        paAuthor : 1,
        paTitle : 1,
        paAvatar : 1,
        paRespect : 1,
        paName : 1,
        paAge : 1,
        paSex : 1,
        paAwards : 1
    }
    if(showFilds.paAuthor) paAuthor = '<li class="pa-author"><a href="/profile.php?id='+UserID+'">'+UserLogin+'</a></li>';
    if(showFilds.paTitle) paTitle = '<li class="pa-title">'+UserTitle+'</li>';
    if(showFilds.paAvatar) paAvatar = '<li class="pa-avatar item3"></li>';
      
    if(showFilds.paRespect) {
        var summRespect = UserRespectPlus - UserRespectMinus;
        paRespect = '<li class="pa-respect"><a href="/respect.php?id='+UserID+'">Репутация:</a> '+summRespect+'</li>';
    };
    if(showFilds.paName) {
        if (UserName != "") paName = '<li class="pa-name">Имя: '+UserName+'</li>';
        else paName = '<li class="pa-name">Имя: <a href="/profile.php?section=personal&id='+UserID+'">неизвестно</a></li>';
    }
    if (showFilds.paAge) {
        if (UserBirthDate!='') paAge = '<li class="pa-age">Возраст: '+UserAge+'<span> ['+UserBirthDate+']</span></li>';
        else paAge = '<li class="pa-age">Возраст: неизвестен <span> [<a href="/profile.php?section=personal&id='+UserID+'">заполнить</a>]</span></li>';
    }
    if(showFilds.paSex) {
        var Usex = {
            0: 'неизвестно',
            1: 'мужской',
            2: 'женский'
        };
        paSex = '<li class="pa-sex">Пол: '+Usex[UserSex]+'</li>';
    }
    if(showFilds) paAwards = '<li class="pa-awards"><a href="/mod/awards/?uid='+UserID+'">Достижения</a></li>';

    var fullHtml = '<ul>'+paAuthor+paTitle+paAvatar+paRespect+paName+paAge+paSex+paAwards+'</ul>';
    $("#u-panel").append(fullHtml);
}
MakeProfile();
    //
    if (loadavatar) {
        function getAvatarProfile() {
            var flParam, newAva; 

            $.get("/profile.php?section=fields&id="+UserID+"", function(data){

                newAva = $("#u-panel .pa-avatar.item3");

                var paFld = $(data).find(".input #fld"+fld).val();
                if (paFld == undefined) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                flParam = paFld.split(",");
                if (flParam.length < 2 ) {setDefaultAva(newAva, 'profile', UserID); return;}
                
                if(!flParam[2]) flParam[2] = "0";

                arrStorage = readLocalStorage();
                console.log(arrStorage);
                console.log(arrStorage[UserID]);
                if (arrStorage[UserID]) { 
                    setCustomAva(newAva, flParam[0], flParam[1], flParam[2], arrStorage[UserID].avatar);
                    setColorTopic(newAva, arrStorage[UserID].class);
                }
                else {
                    getData('profile', UserID, flParam[0], flParam[1], flParam[2], newAva);
                }
            });
        }
        getAvatarProfile();
    }

}
</script>

0

114

вот вопрос на засыпку.

function setCustomAva(place, param0, param1, param2, avatar) { //set avatar, if loading is successful
  $(place).append('<a href="http://eu.battle.net/wow/ru/character/'+param0+'/'+param1+'/simple" title="оружейная" class="tip"> <img alt="'+param2+'" src="http://eu.battle.net/static-render/eu/'+avatar+'"> </a>');
}

почему-то не хочет класс применять к сцылке =)
http://blackteam.mmohost.ru/

0

115

Герда написал(а):

вот эту строчку поправила

Тогда в теме будет отображаться ерунда, лучше тут поправь, я второе равно случайно пропустила

Герда написал(а):

if (flag == 'profile') {
        $(place).html('<a title="заполнить профиль" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" /></a>');
    }

Герда написал(а):

почему-то не хочет класс применять к сцылке =)

вроде работает, только почему-то на твоем форуме аватар грузится не с первой попытки. Попробуй вернуть сделанные тобой изменения и исправить знак "равно".

0

116

sadhaka написал(а):

Тогда в теме будет отображаться ерунда, лучше тут поправь, я второе равно случайно пропустила

вернула как было. второе равно вставила.
см. эффект - ссылки у аватарки по умолчанию для незаполненного профиля нет.

function setDefaultAva(place, flag, id) { //set avatar, if loading failed
    if (flag = 'profile') {
        $(place).html('<a title="заполнить профиль" href="/profile.php?section=fields&id='+id+'"><img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" /></a>');
    }
    else
        $(place).html('<img src="https://forumstatic.ru/files/0012/ad/ab/72354.jpg" title="персонаж неизвестен" />');
}

вот эта строчка за что отвечает?

sadhaka написал(а):

на твоем форуме аватар грузится не с первой попытки

это же и в скрипте аватарок присутствует.
особенно если зайти в тему по клику на последний пост типа /viewtopic.php?id=5&p=4#p2127
с форума http://storm-hearts.ru/ тож жаловались

0

117

Герда
У тебя 2 раза скрипт стоит. Поставь в объявление только

<div id="u-panel"></div>

остальное 1 раз в хтмл-низ в самое начало.

0

118

sadhaka написал(а):

У тебя 2 раза скрипт стоит. Поставь в объявление только

ааа...
скрипт объединяет и авы, и панель...

0

119

sadhaka
переставила скрипт на место аватар.
с юзер-панелью терь все отлично, но в топиках не отображаются аватарки.

0

120

Герда
Доп поле на первое поменяй, у тебя же 1ое юзается, не?

0


Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW


Рейтинг форумов | Создать форум бесплатно