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

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

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


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


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

Сообщений 41 страница 60 из 279

41

Romych
сожалею что ФО не впихнуть!

нужно заголовок стены вверху -посередине,

внизу под стеной - ссылка на тему с поясненинем - "Написат ьв стену", "Отправить подарок" ...
.
вы много сделали, для нас

0

42

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

нужно заголовок стены вверху -посередине,

var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#profile-signature').length){
var stena = $('#profile-signature > ul > p > a').attr('href'), as = [], vs= [];
if(stena.match(/viewtopic.php/)) {
var si = stena.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()};
vs.unshift({a: $(this).find('name').text(), b: $(this).find('content').text()});
});
function fs(arr){for (var i in arr){blk +='<div id ="s-'+i+'"><strong>'+arr[i].a+'</strong><div>'+arr[i].b+'</div></div>';}};
(ot==1)? fs(as): fs(vs);
blk +='</article>';
$('#profile-signature').after(blk);
});};}

Добавил, а дальше можете сами стилизовать, центрировать и т.д.

0

43

Romych
еще ссылка на форму ответа внизу этой темы, так понятнее будет

а по-русски ссылку стены можно назвать?

+++++++++++

А можно в скрипты это засунуть? полезная вещь, не зря пропадет  :glasses:

Отредактировано tartar1 (Ср, 29 Июл 2020 10:38:32)

0

44

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

а по-русски ссылку стены можно назвать?

естественно, как угодно и сколько угодно символов, действие скрипта не зависит от названия

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

А можно в скрипты это засунуть? полезная вещь, не зря пропадет  :glasses:

После того, как Герда отпишется о тестировании, а то вдруг косяки какие-нибудь обнаружатся

+1

45

Romych
а около никнейма автора в стене лучше написать "Написал такой то " "Подарил такой то"

0

46

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

естественно, как угодно и сколько угодно символов, действие скрипта не зависит от названия

а куда вставлять в скрипте название стены-ссылки?

а если в подписи несколько ссылок?

0

47

Romych
А есть вариант как-то отделить линией стену от самого кабинета?
Типо как подпись в темах :dontknow:
К примеру я отделил так

.punbb .post-sig dt {
width:100%;
  border-top-color: #7BC7FF !important;
  }

Вот тоже самое хотелось бы сверху стены :yep:

0

48

Romych
а у меня с этим скриптом не работает (вставляет раздел в профиль)

<script>/*Вставка ссылки на Мой раздел*/
if(document.URL.indexOf('/profile.php?id=')!=-1)$().pun_mainReady(function(){
/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
var fldName = "Страничка ссылка:"; //Название поля со ссылкой;
/*******************************************************/
var thisUsid = document.URL.split('/profile.php?id=')[1];
var b = '<iframe id="fr" name="tartar" src="/viewforum.php?id=###" width=95% height=550></iframe><br><img src="https://forumstatic.ru/files/0019/ce/b3/74799.jpg">';

function setLnkMytems(a){
   var ann = $('#pun-profile #pun-main');
   if(!ann.find('#fr').length)$(b.split('###').join(a)).appendTo(ann);
}
  if($('#profile-right li').length){//alert()
    var a = $('#profile-right li>span:contains("'+fldName+'")').next('strong').text();
    if(a && a.indexOf('/viewforum.php?id=')!=-1){
        a = a.match(/\/viewforum\.php\?id=(\d+)/)[1];
        setLnkMytems(a);
    }
  } else {
   $(window).on('message',function(){//alert(); //console.log(e);
     var a = $('#profile-right li>span:contains("'+fldName+'")').next('strong').text();
     if(a && a.indexOf('/viewforum.php?id=')!=-1){
        a = a.match(/\/viewforum\.php\?id=(\d+)/)[1];
        setLnkMytems(a);
     }
   });
}
});
</script>

0

49

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

А есть вариант как-то отделить линией стену от самого кабинета?

можно линией, можно заголовком, как в посте #42

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

а если в подписи несколько ссылок?

А вот это пожалуй надо добавить в скрипт, чтоб чехарды не было. Чтоб срабатывал только с одной ссылкой на любую тему. Доберусь до ПК, добавлю

0

50

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

с одной ссылкой на любую тему.

я хочу чтоб с определенной ссылки

сделайте пож, и чтобы с разделом не конфликтовало

а в подписи у меня уже стоят ссылки. сделайте по определенному названию

я хочу чтоб стена и раздел в профиле были. и чтоб неск ссылок в подписи можно было

Отредактировано tartar1 (Ср, 29 Июл 2020 12:40:38)

0

51

tartar1
мы твои идеи поняли.

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

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

0

52

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

а около никнейма автора в стене лучше написать "Написал такой то " "Подарил такой то"

добавил надпись как у нас в цитатах написал(а):

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

а если в подписи несколько ссылок?

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

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#profile-signature').length){
var ss = $('#profile-signature >ul >p >a[href*="viewtopic.php"]'), s2 =$(ss).attr('href'), s3 = $(ss).length, as = [], vs= [];
if(s3==1) {
var 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()};
vs.unshift({a: $(this).find('name').text(), b: $(this).find('content').text()});
});
function fs(arr){for (var i in arr){blk +='<div id ="s-'+i+'"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';}};
(ot==1)? fs(as): fs(vs);
blk +='</article>';
$('#profile-signature').after(blk);
});};}
</script>

+2

53

Romych
начала тестить/дизайнить.

=======
важные баги:
1. если в профиле есть ссылка на другой форум майбб, стена не подгрузится: http://oaotr.0pk.ru/profile.php?id=2
можно допилить определение подгрузки стены по домену форума?

2. если в профиле есть больше одной ссылок на топики форума, стена не подгрузится: http://oaotr.0pk.ru/profile.php?id=16
мб пусть он обрабатывает первую ссылку профиля (или последнюю), а не все?

тестила вкорячивание в профиль ссылок на другие сайты + одну ссылку на топик форума - тогда все окей: http://oaotr.0pk.ru/profile.php?id=17

Если несколько ссылок нельзя будет вкорячить - мб подумать над другим методом прикрепления стены?
А то мы сильно кастрируем подпись, если нельзя несколько ссылок на форумы майбб и на текущий форум вкорячить.
Например, наоборот - в первое сообщение топика вкорячивать что-нить специально, чтоб он отгружался в профиль?

============
вопросы по допиливанию фич а-ля "соц-сеть":

1. можно подгружать из топика к постам аватарку автора поста?

2. можно впилить сворачивание постов длинных постов "кнопкой"? если пост длинный - частично сворачивается по максимальной высоте и впаивается кнопка "читать далее", по клику на которую пост полностью отображается. пример скрипта: http://forumd.ru/viewtopic.php?id=6149 - только тут сворачивается только первый пост, а надо шоб все посты.

3. я добавила класс дивам контейнеров поста, которые сейчас идут как id="s-№":

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#profile-signature').length){
var ss = $('#profile-signature >ul >p >a[href*="viewtopic.php"]'), s2 =$(ss).attr('href'), s3 = $(ss).length, as = [], vs= [];
if(s3==1) {
var 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()};
vs.unshift({a: $(this).find('name').text(), b: $(this).find('content').text()});
});
function fs(arr){for (var i in arr){blk +='<div id="s-'+i+'" class="profpost"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';}};
(ot==1)? fs(as): fs(vs);
blk +='</article>';
$('#profile-signature').after(blk);
});};}
</script>

а можно добавить класс на сообщения, написанные автором профиля?

+3

54

Romych
по моему все окей

осталось сделать как я предложил - две вкладки,

Добавлено спустя 37 минут 39 секунд:
вот еще: сделать автору поста ссылку на его профиль.

Отредактировано tartar1 (Чт, 30 Июл 2020 04:02:36)

0

55

http://lp.bestbb.ru/profile.php?id=7 вот как выглядит
можно вверху стены ссылку на форму ответа темы - "подарить подарок"

и ник автора поста - ссылка на его профиль

0

56

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

мб пусть он обрабатывает первую ссылку профиля (или последнюю), а не все?

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

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

а можно добавить класс на сообщения, написанные автором профиля?

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

Код:
<script language="javascript">
var ot = 0; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы
if($('#profile-signature').length){
var ss = $('#profile-signature >ul >p >a[href*="viewtopic.php"]').eq(-1), s2 =$(ss).attr('href'), as = [], vs= [];
var 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()};
vs.unshift({a: $(this).find('name').text(), b: $(this).find('content').text()});
});
function fs(arr){for (var i in arr){if(arr[i].a==UserLogin){blk +='<div id ="s-'+i+'" class="mypost"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';}
else{blk +='<div id ="s-'+i+'" class="anypost"><strong>'+arr[i].a+' написал(а):</strong><div>'+arr[i].b+'</div></div>';}}};
(ot==1)? fs(as): fs(vs);
blk +='</article>';
$('#profile-signature').after(blk);
});}
</script>
Герда написал(а):

можно подгружать из топика к постам аватарку автора поста?

это вечером после работы попробую

+1

57

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

сделал на последнюю ссылку

http://lp.bestbb.ru/profile.php?id=2

а у меня не отображается -- ааа, если в спойлере

а картинки не сужаются,как быть?

Отредактировано tartar1 (Чт, 30 Июл 2020 10:04:04)

0

58

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

а картинки не сужаются,как быть?

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

0

59

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

можно подгружать из топика к постам аватарку автора поста?

это вечером после работы попробую

и еще для "блоговых" длинных стенок
можно добавить в конце списка постов ссыль "перейти в тему автора"? (продублировать ссылку на топик)
если у людей будет многабукаф, то отматывать вверх к подписи будет не удобно.

ЗЫ. уже фигачу один интересный вариант применения стенки, помимо блогов или анкет. :)

+1

60

Применения скрипта под номером раз.
Подарки пользователя в профиле

https://forumupload.ru/uploads/0000/14/1c/16803/t830759.jpg https://forumupload.ru/uploads/0000/14/1c/16803/t819548.jpg

Создаем топик для подарков пользователя и оформляем первый пост (чтобы пользователи не напортачили при выдаче подарков): http://oaotr.0pk.ru/viewtopic.php?id=167
Текст можете поменять на свой, инструкцию рекомендую оставить.

Вставляем в подпись ссылку на топик с подарками.

Новый код:

Код:
<script language="javascript">
var ot = 1; //отображение сообщений на стене 0 по убыванию, 1 по возрастанию
var mc = 5; //число отображаемых сообщений из темы

if($('#profile-signature').length){
var ss = $('#profile-signature >ul >p >a[href*="viewtopic.php"]').eq(-1), s2 =$(ss).attr('href'), as = [], vs= [];
var 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()};
vs.unshift({a: $(this).find('name').text(), b: $(this).find('content').text()});
});

function fs(arr){for (var i in arr){if(arr[i].a==UserLogin){blk +='<div id ="s-'+i+'" class="mypost"><div class="content"><div class="from">От <b>'+arr[i].a+'</b></div>'+arr[i].b+'</div></div>';}
else{blk +='<div id ="s-'+i+'" class="anypost"><div class="content"><div class="from">От <b>'+arr[i].a+'</b></div>'+arr[i].b+'</div></div>';}}};

(ot==1)? fs(as): fs(vs);
blk +='</article>';
$('#profile-signature').after(blk);
});}
</script>

стиль:

Код:
<style>
.stena div.anypost:last-child,
.stena div.mypost:last-child {display: none;}

.anypost, .mypost {
display: inline-block;
width: 200px; /* максимальная ширина блока с подарком */
height: 200px; /* максимальная высота блока с подарком */
margin: 5px;
position: relative;
}
.stena .content img:last-child {
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 на свой цвет */
}
.punbb .stena .content span img {
border: none;
max-width: 100px; /* максимальная ширина картинок в всплывающем ОПИСАНИИ (тексте дарителя) */
max-height: 100px; /* максимальная высота картинок в всплывающем ОПИСАНИИ (тексте дарителя) */
border-radius: 0%;
display: inline;
position: relative;
background-color: transparent;
}
.stena .content:hover .from,
.stena .content:hover span {
opacity: 1;
}
.stena .from {
position: absolute;
z-index: 20;
background-color: #234563;  /* цвет фона на нике дарителя */
color: #fff;  /* цвет текста на нике дарителя */
padding: 5px;
border-radius: 5px;  /* закругление границ (если не надо - удалить) */
opacity: 0;
transition: all 0.8s;
-webkit-transition: all 0.8s;
}
.stena .content span {
position: absolute;
z-index: 20;
background-color: #90a2c6;  /* цвет фона всплывающего описания */
margin-top: 30px;
padding: 5px;
border-radius: 5px; /* закругление границ (если не надо - удалить) */
text-align: left !important;
opacity: 0;
transition: all 0.8s;
-webkit-transition: all 0.8s;
}
.stena .content span:before {
content: '';
border: 10px solid transparent; 
border-bottom: 10px solid #90a2c6; /* цвет фона всплывающего описания ЕЩЕ РАЗ (это стрелочка, меняем #90a2c6 на цвет, который вставляли для описания выше) */
position: relative;
top: -28px;
z-index: 20;
}
</style>

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

+3


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