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

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

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


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


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

Сообщений 121 страница 140 из 279

121

Romych
отредактировала пред.сообщение.

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

1. не работает количество отгружаемых постов
2. + надо добавить ссылку на авик по умолчанию

0

122

Герда
обрати внимание на переменную LoginU, она берётся из селектора, содержащего имя автора профиля, которая всем пользователям и гостям выглядит одинаково, т.е. именно имя автора профиля. Далее в скрипте идёт сравнение списка имён из всех, чьи посты попали на Стену, с именем автора, если не совпадают, то класс anypost.  Так что в последней версии всё правильно. В предыдущих да, был косяк о котором ты говоришь ;)

+1

123

Через час доберусь до компа и сделаю аватар по умолчанию. Про количество постов не понял, сколько сейчас у тебя отображается?

0

124

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

2. + надо добавить ссылку на авик по умолчанию

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

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
var anyava = 'https://forumstatic.ru/files/0000/14/1c/20038.jpg';//аватар по умолчанию для тех, у кого он не установлен
if($('#profile-signature').length){
var LoginU = $('#profile-name').text(), ss = $('#profile-signature>ul>p>a[href*="viewtopic.php"]').eq(-1), si=parseInt($(ss).attr('href').split(/=/)[1]), as = [],
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){if (x[k].avatar=='') {x[k].avatar=anyava}; $('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>

Вот вариант для Mirra Bell (и тех, у кого ссылка в доп.поле) тоже с опцией авы по умолчанию

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5;//число отображаемых сообщений из темы
var anyava = 'https://forumstatic.ru/files/0000/14/1c/20038.jpg';//аватар по умолчанию для тех, у кого он не установлен
if($('#viewprofile ').length){
var LoginU = $('#profile-name').text(), ss = $('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]').eq(-1), si=parseInt($(ss).attr('href').split(/=/)[1]), as = [],
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){if (x[k].avatar=='') {x[k].avatar=anyava}; $('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>
Герда написал(а):

1. не работает количество отгружаемых постов

у меня ни на одном форуме такого глюка не наблюдается,
попробуй вот эту строку вот так

$.get('/export.php?type=atom&tid='+si+'&max='+mc+', function(d) {

0

125

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

Про количество постов не понял, сколько сейчас у тебя отображается?

должно быть 5:

Код:
var mc = 5; //число отображаемых сообщений из темы

отображается все, что есть в топике:
http://oaotr.0pk.ru/profile.php?id=16

сам топик: http://oaotr.0pk.ru/viewtopic.php?id=167&p=2#p631
*можно с гостя добить еще постов, если надо

0

126

* ссылка на профайл: http://oaotr.0pk.ru/profile.php?id=16

0

127

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

$.get('/export.php?type=atom&tid='+si+'&max='+mc+', function(d) {

это первое, что я попробовала. :)
так вообще ничего не отображается.

======================

Romych
я поняла, в чем косяк.
http://ford.mybb.ru/profile.php?id=2

если ссылка будет вида:

Код:
[url=http://ford.mybb.ru/viewtopic.php?id=7#p10]Это ссылка на топик с моими ПОДАРКАМИ[/url]

http://ford.mybb.ru/viewtopic.php?id=7#p10
код не срабатывает на количество постов.

хз, поправлять ли...
в теории, если юзер-френдли делать, то стоит.
т.к. версия с ссылкой в подписи подразумевает, что пользователи форума сами вставляют ссылки, а юзеры - это юзеры. они могут и ссылку типа /viewtopic.php?id=39316&p=4#p960514 вкорячить.

0

128

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

http://ford.mybb.ru/viewtopic.php?id=7#p10
код не срабатывает на количество постов.

а так попробуй

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
var anyava = 'https://forumstatic.ru/files/0000/14/1c/20038.jpg';//аватар по умолчанию для тех, у кого он не установлен
if($('#profile-signature').length){
var LoginU = $('#profile-name').text(), ss = $('#profile-signature>ul>p>a[href*="viewtopic.php"]').eq(-1), si=parseInt($(ss).attr('href').split(/=/)[1]), as = [],
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){if (x[k].avatar=='') {x[k].avatar=anyava}; $('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>

+1

129

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

а так попробуй

баг вылечен  :cool:

уже пилю коды для стенок

+1

130

Герда, внёс на всякий случай поправки в варианты в посте №124 для тебя и для Mirra Bell

+2

131

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

у вас не будет а у меня будет

У вас на личном форуме она и так есть, изгаляйтесь. Или там юзеров маловато?

0

132

Mirra Bell

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

Насчет тестирования: что конкретно надо сделать?
1. Создать какую-нить тему в отдельном форуме.
2. Поставить скрипт Ромыча с вариантом для заполненного доп. поля.
3. ?

ставь скрипт ромыча (который по доп.полу цепляет)
посмотри, прикрепилась ли анкета персонажа внизу профиля

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

0

133

Герда
Сделала на тестовом: http://almtest2019.mybb.ru/. Номер поля поменяла на тот, который есть там. Ничего не прикрепилось

Отредактировано Mirra Bell (Вт, 4 Авг 2020 20:49:53)

0

134

Mirra Bell
открой плз временно просмотр профиля гостям

0

135

Герда
Да на тестовике он вроде не закрыт

0

136

Mirra Bell
https://forumupload.ru/uploads/0000/14/1c/16803/712711.png

0

137

Герда
Да, нашла и открыла. Там скрипт стоял непоименованный. )

0

138

Mirra Bell
так... ясно.
попробую еще у себя - отпишусь.
спс за помощь

0

139

Romych
помоги плз

как добавить в дивы mypost, anypost дополнительный класс "hide", если в контенте НЕТ <div class="podarok">?

*применение = скрывать сообщения с флудом, оставлять тока оформленные по шаблону

где-то час уже кручу-верчу скрипт с этой целью, но просто так он не поддается %-)

0

140

пример такой стенки: http://oaotr.0pk.ru/profile.php?id=16
вот на посты s-0, s-1 и s-2 должен встать класс hide - в них нима дива с подарком

0


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