, если в контенте НЕТ <div class="podarok">?
*применение = скрывать сообщения с флудом, оставлять тока оформленные по шаблону
а ссылку можно на такой профиль?
Единый форум поддержки |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Единый форум поддержки » Новые возможности форумов » Стена в профиле
, если в контенте НЕТ <div class="podarok">?
*применение = скрывать сообщения с флудом, оставлять тока оформленные по шаблону
а ссылку можно на такой профиль?
Romych
пример такой стенки: http://oaotr.0pk.ru/profile.php?id=16
вот на посты s-0, s-1 и s-2 должен встать класс hide - в них нима дива с подарком
а остальные содержат такой див
Romych
ну или (если так проще будет) добавить класс show для постов, в которых див "podarok" есть - я так пробовала, но безуспешно.
ну или (если так проще будет) добавить класс show для постов, в которых див "podarok" есть - я так пробовала, но безуспешно.
попробуй так
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
var anyava = 'http://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')}
});
});}
$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});
че-то не робит: http://oaotr.0pk.ru/profile.php?id=16
если будет проще и быстрее поковырять вживую:
че-то не робит:
робит, ты скопировала, но установила неточно, не в то место
$('div[id*="s-"]').each(function (){
if( $(this).find('div.podarok').length ){$(this).addClass('show')}
});
});}
я установил как должно быть проверяй
Герда
проверила?
Romych
ой, блиииин... я совсем двинулась бошкой...
спс огромное.
ща будет тема. выкатим а-ля новый скрипт наград/подарков с изи заполнением, только без отображения в профиле в топике.
году в 2012м я о таком мечтала....
ДЕМО
подарки: 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 = 'http://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]
Romychя че-то туплю.
где в скрипте по доп.полю вкорячивать номер поля? Стена в профиле
извиняюсь, разобралась
Отредактировано Герда (Ср, 5 Авг 2020 00:13:50)
Герда
опубликуй здесь в скриптах от пользователей, если считаешь, что все нюансы учли. Всё равно ты лучше пост оформишь и опишешь
Номер поля поменяла на тот, который есть там. Ничего не прикрепилось
я хз, что было на тестовом, у меня всё робит.
причем вкорячила в доп.поле тест на выдергивание именно последней ссылки - всё ок:
тут может быть любой текст<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>
Герда
опубликуй здесь в скриптах от пользователей, если считаешь, что все нюансы учли. Всё равно ты лучше пост оформишь и опишешь
потестила версию подарков с экспортом из допполя - все гуд
я ж правильно понимаю, что между ними разница только в селекторе?
$('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]')
*шоб не выкладывать два скрипта, а внести корректировку в описание
потестила версию подарков с экспортом из допполя - все гуд
я ж правильно понимаю, что между ними разница только в селекторе?
Код:$('#viewprofile #pa-fld1 strong a[href*="viewtopic.php"]')*шоб не выкладывать два скрипта, а внести корректировку в описание
Ещё разница в условии, которое в строке номер 6, для доп.полей я выставил наличие универсального селектора, который пройдёт и для варианта ссылки в подписи
Ещё разница в условии, которое в строке номер 6, для доп.полей я выставил наличие универсального селектора, который пройдёт и для варианта ссылки в подписи
кароче, можно вкорячить селектор для подписи в вариант с дополнительным полем и все будет робить?
оке, оформляю готовый скрипт
подзалипла с оформлением описания наградок - хочу там указать максимально подробно все опции. завтра допишу.
потом сделаю версии инвентаря и анкет для ролевых.
потом - "соцсети"
я хз, что было на тестовом, у меня всё робит.
Поставила и на рабочий. С тем же успехом. http://almarein.spybb.ru/ Там тоже открыла гостям профили
кароче, можно вкорячить селектор для подписи в вариант с дополнительным полем и все будет робить?
оке, оформляю готовый скрипт
ну да, вот так для доп.поля
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>';
Герда
А можно как-то прикрутить к кнопке в панель bb кодов?
К примеру картинка подарка.
Жмешь на неё
Сразу вставка
[block=podarok][block=podtext] Ваш текст Ваш текст Ваш текст [/block][block=podimg] [img]ссылка на картинку подарка[/img] [/block][/block]
Добавлено спустя 23 минуты 33 секунды:
И чёт я туплю.....
Как мне сделать чтобы стена/подарки была автоматически у всех в профиле?
Отредактировано МАЧОнаДАЧЕ (Ср, 5 Авг 2020 10:40:48)
А можно как-то прикрутить к кнопке в панель bb кодов?
можно поставить скрипт анкет и отправлять подарки по форме: http://oaotr.0pk.ru/viewtopic.php?id=171
Как мне сделать чтобы стена/подарки была автоматически у всех в профиле?
никак, ведь для начала нужно создать топик. топик не может создаваться сам по себе.
можно где-то в подходящем форума открыть топик с названием "система подарков + заявки на создание страничек" - описать там процесс вручения наград и подарков, и сказать пользователям, чтоб оставляли ссылки на профиль юзера, у которых еще нет странички для отправка подарка.
да, в этом плане не удобно, зато такие награды и подарки будут в разы быстрее грузиться, чем фичи от русфф и админ сам решает кому можно дарить, кому нельзя дарить, что можно дарить и т.д.
Вы здесь » Единый форум поддержки » Новые возможности форумов » Стена в профиле