апчег.
все еще не горящий, но апчег. 
Техническая поддержка сервиса Quadro.Boards |
Новости сервиса |
О форуме
Quadro.Support – это форум технической поддержки различных проектов и сервисов Quadro.Systems LLC,
на котором грамотные технические специалисты всегда смогут помочь вам в решении проблем, или же подсказать ответы на самые сложные вопросы.
Так же на форуме собрана обширная база знаний по различным аспектам наших сервисов. Не забывайте пользоваться поиском ;)
|
Полезные ссылки |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW
апчег.
все еще не горящий, но апчег. 
снова, прив. скрипт пашет отлично! =)
кстати, подтянула свою подругу с враждебной фракции тоже форум гильдии тут делать. пока мы в процессе, но от оружейной их гильдия тож в восторге.
глядишь, скоро на КБ весь ру оф поддтянется.в честь расплодившегося спроса хочу поднять один из постов.
может кто подсказать/рассказать в чем дело.... не работает юзер-панель рядом с объявлением форума на главной. давно уже..
хотя там ничего не трогаем.Код:<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
апчег
Герда
Некогда, Герд, еле отвечать на саппорте успеваю - у модеров то сессичные, то еще что, было бы пару постоянно отвечающих человек - успевала бы скриптами заниматься, пока не выходит 
sadhaka
оу, я могу поотвечать. 
как сессия кончится, вспомни про меня. а то у меня расплодились воверские гильд-форумы на нашем сервисе уже в количестве аж 4 штук.
Герда
ок, скажите когда про тебя вспомнить и я обязательно вспомню )
sadhaka
да я же неуч ) понятия не имею когда там сессионные передряги закончатся. ))
когда появится время - так сразу вспоминай. ))
можешь сказать как комфортней будет - могу раз в недельку апать эту тему, могу не навязываться апами. )
понятия не имею когда там сессионные передряги закончатся. ))
У меня? Не, у меня нет сессии, это у модеров моих - сплошь сессии.
Так, что если у тебя есть время - можешь хоть сейчас приступать, а повыкраиваю свое время на скрипты 
Герда
В общем, пока без всяких плюшек, но работает, посмотри, что доделать
оба скрипта (по отдельности пока нельзя использовать), первый (авы в топике) тоже чуть-чуть подредактирован, так что меняй все.
Не забудь в блоке 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
быстрый вход и инфу для незареганных пока не доделала.
sadhaka
оу, ваще шикарно... получилось подобие провиля юзера и на него распостранилось цветовыделение статусов и аватарок
небольшие декоративности, которые могу быть примешаны:
1. если у юзера не заполнен возраст, можно заменить "0" на "неизвестен"
2. если у юзера не отображается аватарка, можно прикрепить ссылку на заполнение профиля > дополнительно
2. если у юзера не отображается аватарка, можно прикрепить ссылку на заполнение профиля > дополнительно
А ссылка должна быть по клику на аватар или ниже?
1. если у юзера не заполнен возраст, можно заменить "0" на "неизвестен"
не проблема, сделаю
А ссылка должна быть по клику на аватар или ниже?
по клику на аватар. 
Герда
Попробуй так
<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>возраст отображается как надо
ссылки на редактирования профиля под аватаркой по умолчанию нима
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>вот вопрос на засыпку.
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/
вот эту строчку поправила
Тогда в теме будет отображаться ерунда, лучше тут поправь, я второе равно случайно пропустила
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>');
}
почему-то не хочет класс применять к сцылке =)
вроде работает, только почему-то на твоем форуме аватар грузится не с первой попытки. Попробуй вернуть сделанные тобой изменения и исправить знак "равно".
Тогда в теме будет отображаться ерунда, лучше тут поправь, я второе равно случайно пропустила
вернула как было. второе равно вставила.
см. эффект - ссылки у аватарки по умолчанию для незаполненного профиля нет.
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="персонаж неизвестен" />');
}
вот эта строчка за что отвечает?
на твоем форуме аватар грузится не с первой попытки
это же и в скрипте аватарок присутствует.
особенно если зайти в тему по клику на последний пост типа /viewtopic.php?id=5&p=4#p2127
с форума http://storm-hearts.ru/ тож жаловались
Герда
У тебя 2 раза скрипт стоит. Поставь в объявление только
<div id="u-panel"></div>
остальное 1 раз в хтмл-низ в самое начало.
У тебя 2 раза скрипт стоит. Поставь в объявление только
ааа...
скрипт объединяет и авы, и панель...
sadhaka
переставила скрипт на место аватар.
с юзер-панелью терь все отлично, но в топиках не отображаются аватарки.
Герда
Доп поле на первое поменяй, у тебя же 1ое юзается, не?
Вы здесь » Техническая поддержка сервиса Quadro.Boards » Архив » Скрипты по подгрузке API WoW