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

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

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


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


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

Сообщений 141 страница 160 из 280

141

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

, если в контенте НЕТ <div class="podarok">?

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

а ссылку можно на такой профиль?

0

142

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

а остальные содержат такой див

0

143

Romych
ну или (если так проще будет) добавить класс show для постов, в которых див "podarok" есть - я  так пробовала, но безуспешно.  :D

0

144

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

ну или (если так проще будет) добавить класс show для постов, в которых див "podarok" есть - я  так пробовала, но безуспешно.

попробуй так

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);
$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});

});}

0

145

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

$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});

че-то не робит: http://oaotr.0pk.ru/profile.php?id=16

если будет проще и быстрее поковырять вживую:

0

146

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

че-то не робит:

робит, ты скопировала, но установила неточно, не в то место

$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});

});}

я установил как должно быть проверяй ;)

+1

147

Герда
проверила?

0

148

Romych
ой, блиииин... я совсем двинулась бошкой... :blush:
спс огромное. :cool:

ща будет тема. выкатим а-ля новый скрипт наград/подарков с изи заполнением, только без отображения в профиле в топике.
году в 2012м я о таком мечтала....  :rolleyes:

+1

149

ДЕМО
подарки:  http://oaotr.0pk.ru/profile.php?id=16
награды:  http://oaotr.0pk.ru/profile.php?id=21

вариант отправки наград/подарков: http://oaotr.0pk.ru/viewtopic.php?id=171

флуд в топиках подарков не отгружается в профиль ^^
можно юзать любое форматирование текста всплывающего описания благодаря тегам блоков от kozhilya

стиль:

Код:
<style>
.stena .post-content {display: none;}
.stena .post-content.hide {display: none !important;}

.stena {text-align: center;}
.stena .post-content {text-align: left;}
.stena .post-content:hover .podtext {opacity: 1;}

.stena .post-content.show {
display: inline-block;
width: 210px; /* максимальная ширина блока с подарком */
height: 210px; /* максимальная высота блока с подарком */
margin: 5px;
position: relative;
overflow: visible;
}

.stena .podimg img {
display: block;
position: absolute;
top: 0;
left: 0;
border-radius: 50%; /* закругление подарка в кружочек ( если не нужно - удалить эту строчку) */
z-index: 10;
max-width: 190px; /* максимальная ширина подарка */
max-height: 190px; /* максимальная высота подарка */
background-color: #ccc; /* цвет фона подарка */
border: 5px solid #284966; /* бордюрчик вокруг подарка (если не нужно - удалить строчку, если нужно меняем #284966 на свой цвет */
}

.stena .stenaava {
display: block;
position: absolute;
z-index: 30;
border-radius: 50%;
max-width: 34px; /* максимальная ширина авы дарителя */
left: 20px; /* двигаем аву дарителя влево */
top: 0px; /* двигаем аву дарителя сверху */
background-color: #224463; /* цвет фона авы */
border: 3px solid #214261; /* бордюрчик вокруг авы (если не нужно - удалить строчку, если нужно меняем #284966 на свой цвет */
}

.stena .stenafrom {
position: absolute;
z-index: 20;
background-color: #234563;  /* цвет фона на нике дарителя */
color: #fff;  /* цвет текста на нике дарителя */
font-size: 14px; /* размер шрифта в нике дарителя */
padding: 5px;
border-radius: 5px;  /* закругление границ (если не надо - удалить) */
transition: all 0.8s;
-webkit-transition: all 0.8s;
left: 40px; /* двигаем ник дарителя влево */
top: 0px; /* двигаем ник сверху */
padding-left: 25px; /* фоновый отступ слева (убрать, если не нужно) */
}

.stena .podtext {
position: absolute;
z-index: 40;
font-size: 14px; /* размер шрифта всплывающего описания */
background-color: #90a2c6;  /* цвет фона всплывающего описания */
padding: 5px;
border-radius: 5px; /* закругление границ (если не надо - удалить) */
text-align: left !important;
opacity: 0;
transition: all 0.8s;
-webkit-transition: all 0.8s;
top: 32px; /* двигаем всплывающее описание сверху */
width: 250px; /* ширина всплывающего описания */
}

.stena .podtext:before {
content: '';
border: 10px solid transparent; 
border-bottom: 10px solid #90a2c6; /* цвет фона всплывающего описания ЕЩЕ РАЗ (это стрелочка, меняем #90a2c6 на цвет, который вставляли для описания выше) */
position: absolute;
top: -18px; /* двигаем стрелочку вверх */
left: 60px; /* двигаем стрелочку влево */
z-index: 40;
}
.stena .post-content .podtext img {
max-width: 100px; /* максимальная ширина картинок в всплывающем ОПИСАНИИ (тексте дарителя) */
max-height: 50px; /* максимальная высота картинок в всплывающем ОПИСАНИИ (тексте дарителя) */
}

.stena .stenalink { /* ссылка "подарить подарок" */
display: block;
text-align: center;
font-size: 18px; /* размер текста */
text-transform: uppercase;
background-color: #b5cde3; /* цвет фона */
color: #1f4160; /* цвет текста */
padding: 5px;
text-decoration: none;
transition: all 0.8s;
-webkit-transition: all 0.8s;
}
.stena .stenalink:hover { /* ссылка "подарить подарок" при наведении курсора */
text-decoration: none;
color: #fff; /* цвет текста */
background-color: #507ca4; /* цвет фона */
}
</style>

скрипт:

Код:
<script language="javascript">
var ot = 1; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 20; //число отображаемых сообщений из темы
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 post-content">' : blk +='<div id ="s-'+i+'" class="anypost post-content">';
blk +='<img alt="'+arr[i].a+'"  src="" class="stenaava"><div class="stenafrom">'+arr[i].a+'</div>'+arr[i].b+'</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+'" class="stenalink">Подарить подарок</a></article>';
$('#profile-signature').after(blk);
$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});
$('div[id*="s-"]').each(function (){
if( $(this).find('div.shablon').length ){$(this).addClass('hide')}
});
});}
</script>

шаблон подарка/награды: http://oaotr.0pk.ru/viewtopic.php?id=167

Код:
[block=podarok][block=podtext]

Ваш текст
Ваш текст
Ваш текст

[/block][block=podimg]

[img]ссылка на картинку подарка[/img]

[/block][/block]

+2

150

Romych
я че-то туплю.
где в скрипте по доп.полю вкорячивать номер поля? Стена в профиле

извиняюсь, разобралась

Отредактировано Герда (Ср, 5 Авг 2020 00:13:50)

0

151

Герда
опубликуй здесь в скриптах от пользователей, если считаешь, что все нюансы учли. Всё равно ты лучше пост оформишь и опишешь ;)

0

152

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

Номер поля поменяла на тот, который есть там. Ничего не прикрепилось

я хз, что было на тестовом, у меня всё робит. :dontknow:
причем вкорячила в доп.поле тест на выдергивание именно последней ссылки - всё ок:

Код:
тут может быть любой текст<br>
<a href="http://oaotr.0pk.ru/viewtopic.php?id=166">ссылки на ДРУГИЕ топики</a> и <a href="http://forumd.ru/viewtopic.php?id=2921">ссылки на топики на ДРУГИХ ФОРУМАХ</a><br>
А скрипт должен брать вот эту ссылку, не смотря на то, что она кривая:
<a href="http://oaotr.0pk.ru/viewtopic.php?id=167&p=2#p630">Подарки юзера</a>

0

153

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

Герда
опубликуй здесь в скриптах от пользователей, если считаешь, что все нюансы учли. Всё равно ты лучше пост оформишь и опишешь ;)

потестила версию подарков с экспортом из допполя - все гуд

я ж правильно понимаю, что между ними разница только в селекторе?

Код:
$('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]')

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

0

154

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

потестила версию подарков с экспортом из допполя - все гуд

я ж правильно понимаю, что между ними разница только в селекторе?

Код:
$('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]')

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

Ещё разница в условии, которое в строке номер 6, для доп.полей я выставил наличие универсального селектора, который пройдёт и для варианта ссылки в подписи

+1

155

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

Ещё разница в условии, которое в строке номер 6, для доп.полей я выставил наличие универсального селектора, который пройдёт и для варианта ссылки в подписи

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

0

156

подзалипла с оформлением описания наградок - хочу там указать максимально подробно все опции. завтра допишу.

потом сделаю версии инвентаря и анкет для ролевых.
потом - "соцсети"

0

157

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

я хз, что было на тестовом, у меня всё робит.

Поставила и на рабочий. С тем же успехом. http://almarein.spybb.ru/ Там тоже открыла гостям профили

0

158

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

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

ну да, вот так для доп.поля

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>';

так для подписи

if($('#viewprofile').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>';

0

159

Герда
А можно как-то прикрутить к кнопке в панель bb кодов?
К примеру картинка подарка.
Жмешь на неё
Сразу вставка

Код:
[block=podarok][block=podtext]
 
Ваш текст
Ваш текст
Ваш текст
 
[/block][block=podimg]
 
[img]ссылка на картинку подарка[/img]
 
[/block][/block]

Добавлено спустя 23 минуты 33 секунды:

И чёт я туплю.....

Как мне сделать чтобы стена/подарки была автоматически у всех в профиле?

Отредактировано МАЧОнаДАЧЕ (Ср, 5 Авг 2020 10:40:48)

0

160

МАЧОнаДАЧЕ написал(а):

А можно как-то прикрутить к кнопке в панель bb кодов?

можно поставить скрипт анкет и отправлять подарки по форме: http://oaotr.0pk.ru/viewtopic.php?id=171

МАЧОнаДАЧЕ написал(а):

Как мне сделать чтобы стена/подарки была автоматически у всех в профиле?

никак, ведь для начала нужно создать топик. топик не может создаваться сам по себе.
можно где-то в подходящем форума открыть топик с названием "система подарков + заявки на создание страничек" - описать там процесс вручения наград и подарков, и сказать пользователям, чтоб оставляли ссылки на профиль юзера, у которых еще нет странички для отправка подарка.
да, в этом плане не удобно, зато такие награды и подарки будут в разы быстрее грузиться, чем фичи от русфф и админ сам решает кому можно дарить, кому нельзя дарить, что можно дарить и т.д. :yep:

0


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