Единый форум поддержки

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

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


Вы здесь » Единый форум поддержки » Новые возможности форумов » Стена в профиле


Стена в профиле

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

101

Romych
всё дело в кодировке. api пытается определить кодировку и когда ему передается строка, то в данном случае он определяет, что это cp1251. А когда передается массив, то определить не может. API изначально, насколько понимаю, реализован без возможности работать с массивами во входных параметрах. @kozhilya добавил работу с массивом, но возникают такие вот тонкости. Есть три варианта:
1. Собственно передавать в другой кодировке параметры.
2. Сделать рекурсивную распаковку массивов для определения.
3. Использовать username как строку и перечислять ники через запятую.
Займусь вторым вариантом. С большим удивлением обнаружил, что в нике может использоваться запятая )

+3

102

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

Займусь вторым вариантом. С большим удивлением обнаружил, что в нике может использоваться запятая )

Ого!  o.O
Видимо с этим не справился Макс, если в описании API  он указал возможность username через запятую, а по факту не работает

0

103

На этом форуме кодировка должна правильно определяться для массива.

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

Видимо с этим не справился Макс, если в описании API  он указал возможность username через запятую, а по факту не работает

Вероятно, когда он аннонсировал, это работало. Но без учета возможности наличия запятой в нике.

+1

104

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

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#profile-signature').length){
var LoginU = $('#profile-name').text(), ss = $('#profile-signature >ul >p >a[href*="viewtopic.php"]').eq(-1), s2 =$(ss).attr('href'), as = [],si = s2.split(/=/)[1],
blk = '<article class="stena"><h1>Стена</h1>';
$.get('/export.php?type=atom&tid='+si+'&max='+mc, function(d) {
var d2 = $(d).find('entry');
$(d2).each(function (i){
as[i] = {a: $(this).find('name').text(), b: $(this).find('content').text()};
});	
function fs(arr){for (var i in arr){(arr[i].a==LoginU)? blk +='<div id ="s-'+i+'" class="mypost">' : blk +='<div id ="s-'+i+'" class="anypost">';
blk +='<img alt="'+arr[i].a+'"  src="" width="32"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';
}};
var unq = [...new Set(as.map(item => 'username[]='+item.a))].join('&');
$.getJSON('/api.php?method=users.get&'+unq+'&fields=avatar,username',function(j) {
var x = j.response.users;
for (var k in x){$('div[id*="s-"]>img[alt="'+x[k].username+'"]').attr('src',x[k].avatar);}
});
(ot==1)? fs(as): fs(as.reverse());
blk +='<a href="/viewtopic.php?id='+si+'&action=last">Перейти в тему</a></article>';
$('#profile-signature').after(blk);
});}
</script>

+2

105

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

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

спасибо.
вернусь к этому как только закончу с тестами селекторов. :)

0

106

kernel
я смотрю такое построение массива из ников в запросе больше не работает, если присутствует кириллический ник

username[]=%CF%E0%F0%E4&username[]=Ant&username[]=Riko

произошли какие-то изменения в данном методе? или всё пока в процессе разработки?

Mirra Bell написал(а):

И еще надо учесть, что в этом же поле кроме непосредственно ссылки может сидеть и другая инфа.

Можете дать ссылку на профиль с таким заполненным полем для примера?

0

107

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

kernel
я смотрю такое построение массива из ников в запросе больше не работает, если присутствует кириллический ник

username[]=%CF%E0%F0%E4&username[]=Ant&username[]=Riko

произошли какие-то изменения в данном методе? или всё пока в процессе разработки?

Сейчас доработал работу с массивами, но опять же на этом форуме.

+2

108

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

Сейчас доработал работу с массивами, но опять же на этом форуме.

Испытал, да теперь хорошо (в запросе присутствует ник Герды)

Код:
http://forum.mybb.ru/api.php?method=users.get&username[]=%C3%E5%F0%E4%E0&username[]=kernel&username[]=Romych&fields=user_id,username,avatar

правда в ответе значения для кириллического ника пришли последними, т.е. не в порядке запроса, но это несущественно ;)

+1

109

Romych написал(а):
kernel написал(а):

Сейчас доработал работу с массивами, но опять же на этом форуме.

Испытал, да теперь хорошо (в запросе присутствует ник Герды)

Код:
https://forum.mybb.ru/api.php?method=users.get&username[]=%C3%E5%F0%E4%E0&username[]=kernel&username[]=Romych&fields=user_id,username,avatar

правда в ответе значения для кириллического ника пришли последними, т.е. не в порядке запроса, но это не существенно ;)

Порядок возврата только случайно может совпасть с порядком входящего массива. Там используется сортировка, если явно не указано, то сортировка идет по id.

0

110

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

Порядок возврата только случайно может совпасть с порядком входящего массива. Там используется сортировка, если явно не указано, то сортировка идет по id.

Ок, понял  :cool: Значит можно запускать данный метод запроса по никам и для других форумов. Всё работает!

+1

111

Герда
А можно потом на заценку выставить что вышло 
Стена в профиле

0

112

kernel
а можно на этом форуме стену?

0

113

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

Можете дать ссылку на профиль с таким заполненным полем для примера?

В профиле любого активного игрока на форуме http://almarein.spybb.ru/. Доп поле fld1. Для экономии в доп поля часто впихивают как можно больше.

0

114

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

а можно на этом форуме стену?

Нахрен она тут нужна? Это форум техподдержки, не забыли?

0

115

у вас не будет а у меня будет
опять умом блещете?

-2

116

:crazyfun:

0

117

Mirra Bell написал(а):

В профиле любого активного игрока на форуме http://almarein.spybb.ru/. Доп поле fld1. Для экономии в доп поля часто впихивают как можно больше.

Mirra Bell Испытайте так:

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#viewprofile ').length){
var LoginU = $('#profile-name').text(), ss = $('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]').eq(-1), s2 =$(ss).attr('href'), as = [],si = s2.split(/=/)[1],
blk = '<article class="stena"><h1>Стена</h1>';
$.get('/export.php?type=atom&tid='+si+'&max='+mc, function(d) {
var d2 = $(d).find('entry');
$(d2).each(function (i){
as[i] = {a: $(this).find('name').text(), b: $(this).find('content').text()};
});	
function fs(arr){for (var i in arr){(arr[i].a==LoginU)? blk +='<div id ="s-'+i+'" class="mypost">' : blk +='<div id ="s-'+i+'" class="anypost">';
blk +='<img alt="'+arr[i].a+'"  src="" width="32"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';
}};
var unq = [...new Set(as.map(item => 'username[]='+item.a))].join('&');
$.getJSON('/api.php?method=users.get&'+unq+'&fields=avatar,username',function(j) {
var x = j.response.users;
for (var k in x){$('div[id*="s-"]>img[alt="'+x[k].username+'"]').attr('src',x[k].avatar);}
});
(ot==1)? fs(as): fs(as.reverse());
blk +='<a href="/viewtopic.php?id='+si+'&action=last">Перейти в тему</a></article>';
$('#profile-signature').after(blk);
});}
</script>

Герда, теперь проблем с аватарами для кириллических ников нет, благодаря kernel:flag:   Так что на основе скрипта в посте №104 можно делать окончательные версии ;)

+2

118

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

Герда, теперь проблем с аватарами для кириллических ников нет, благодаря kernel:flag:   Так что на основе скрипта в посте №104 можно делать окончательные версии ;)

Я залипла в перепиливании своих дизайнов под новые реалии.))
Уже почти закончила и вернусь к допиливанию стенок

0

119

Mirra Bell
потестишь, пожалуйста, экспорт из допполя: Стена в профиле ?

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

0

120

Romych

затупила, этот момент нормально работает

ты неправильно понял мое предложение по внесению отдельного класса для постов автора.
нужно, чтоб класс .mypost присваивался сообщениям АВТОРА профиля.
(сейчас он присваивается сообщениям юзера, который смотрит форум)
что дает этот класс?
например при оформлении стенки "соц-сетей" можно поста авторы профиля оформить как основной контент, а посты других людей - как комментарии к нему.
например можно оформить стенку а-ля "фидбек" в стиле мессанджеров, где посты других юзеров будут оформляться слева, а ответы комменты автора профиля - справа и другим цветом.
вот такая идея.

=======================
Добавлено спустя 58 минут 45 секунд:
Ахтунг!
Все еще присутствует баг:
количество сообщений не задается!
http://oaotr.0pk.ru/profile.php?id=16
стоит 5 сообщений, выгрузились ВСЕ!

еще момент. как добавить ссылку на аватар по умолчанию? че-то туплю с этим.

+1


Вы здесь » Единый форум поддержки » Новые возможности форумов » Стена в профиле