апчег.
все еще не горящий, но апчег.
Техническая поддержка сервиса 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