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

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

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


Вы здесь » Единый форум поддержки » Форум для новичков » Поля профиля


Поля профиля

Сообщений 1 страница 5 из 5

1

День добрый! Есть несколько вопросов по скриптам, с которыми не удается разобраться самостоятельно. Для нового форума нужны некоторые параметры для полей профиля. Пытаемся сделать одно из полей, как ссылку на анкету, чтобы она была картинкой и что-то вроде инвентаря, чтобы люди сами могли заполнять нужные пункты.
Ссылка на новорожденный форум: http://sonic1991.rolebb.ru/ , пример можно увидеть у нас на форуме http://dreamworld.magicrpg.ru/ , подскажите пожалуйста как сделать такие же функции с полями профиля на другом форуме. Будем очень признательны за помощь.

Отредактировано NightAngelTDC (Чт, 25 Ноя 2021 08:09:13)

+1

2

Частично справились сами, но отображается почему-то все еще не корректно. fld у анкеты и инвентаря указаны верно, однако что-то все еще не так, потому что заполнить в профиле можно, а под аватаром отображения нет.

Анкета:

Код:
<script>

//$(".pl-website a").each( function () { this.innerHTML = this.innerHTML.replace("Анкета") });
   //var ank = $("label[for=\"fld5\"]")[0];
   //if (ank) ank.innerHTML = "Анкета";

 var ankFields = $(".pa-fld5");
   for(var i=0;i<ankFields.size();i++)
   {
      var ankField = ankFields[i];
      var parts = ankField.innerHTML.split("<br>");
      ankField.innerHTML = "<a target='_blank' href='"+parts[1]+"' title='Анкета персонажа'><div id='iconAnketa'></div></a>";
   }

var book = $("#BookmCntToggle");
if (book)
{
	book = book[0];
        if (book)
        {
	  book.style.setProperty('background-image',"url('https://forumstatic.ru/files/001b/68/67/63721.png)","important");
	  book.style.setProperty("background-position","0px 0px","important");
	  book.style.setProperty("width","40px","important");
	  book.style.setProperty("height","37px","important");
        }
}
</script>


<!-- Анкета в профиле -->
<script>
$('#pun-profile #viewprofile-next #pa-fld5 strong').each(function(){ 
  var questionary = $(this).text();
  questionary_html = '<strong><a target="_blank" href="'+questionary+'" title="Анкета персонажа"><span id="iconAnketa"></div></span></strong>';
  $(this).replaceWith(questionary_html); 
});
</script>

Инвентарь:

Код:
//Инвентарь

//----------------------------------------------
// редактор вещей в профиле
//----------------------------------------------
var fld1 = $("#fld1");
function BuildItemFields(url, about, idx)
{
	var strStart = "<div id='userItem"+idx+"'>";
	var imgstr = "Картинка "+idx+":&nbsp;&nbsp;<p><input type='text' oninput='itemChange(this,0,"+idx+")' value='"+url+"' size='30' maxlength='999'><p>";
	var aboutstr = "Описание "+idx+":&nbsp;&nbsp;<br><input type='text' oninput='itemChange(this,1,"+idx+")' value='"+about+"' size='30' maxlength='999'><p><input type='button' onclick='RemoveItem("+idx+")' value='Удалить'>";
	var strEnd = "<br></div>"
	return strStart+imgstr+aboutstr+strEnd;
};
function CalcFreeInvSpace()
{
	var charsRemain = 999-fld1[0].value.length;
	var remSpaceLabel = $("#remainSpace");
	remSpaceLabel.html("Свободное место: "+charsRemain+" символов");
}
function ReparseInventory()
{
	if (fld1[0])
	{
var divs = fld1.parent().find("div");
for(var i=0;i<divs.length;i++)
	fld1.parent()[0].removeChild(divs[i]);
	
fld1.css("display","none"); //спрятать поле вещей
var items = fld1[0].value; //текст в поле вещей
var charsRemain = 999-items.length;
var itemlist = items.split(";");
if (itemlist.length < 2)
{
	itemlist = ["",items];
}
var itemsHtml = "";
for(var i=0;i<itemlist.length-1;i+=2)
{
	itemsHtml += BuildItemFields(itemlist[i],itemlist[i+1],i/2+1);
}
var ending = "<div><hr><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<center><input type='button' onclick='AddNewItem()' value='Добавить предмет'></center><br><br><center><span id='remainSpace'>Свободное место: "+charsRemain+" символов</span></center></div>";
fld1.after(itemsHtml+ending);
	}
}
function itemChange(inp, type, idx)
{
	var items = fld1[0].value; //текст в поле вещей
	var itemlist = items.split(";");
	itemlist[(idx-1)*2+type] = inp.value;
	fld1[0].value = itemlist.join(";");
	CalcFreeInvSpace();
}
function AddNewItem()
{
	var items = fld1[0].value; //текст в поле вещей
	var itemlist = items.split(";");
	itemlist.splice(itemlist.length,0,"","");
	fld1[0].value = itemlist.join(";");
	ReparseInventory();
}
function RemoveItem(idx)
{
	var items = fld1[0].value; //текст в поле вещей
	var itemlist = items.split(";");
	itemlist.splice((idx-1)*2,2);
	fld1[0].value = itemlist.join(";");
	ReparseInventory();
}

if (window.location.search.includes("section=fields"))
	ReparseInventory();

//----------------------------------------------
// просмотр вещей в постах
//----------------------------------------------

function OpenItems(t) 
{ 
	$('div.AwardAllWindow').fadeIn(500); 
	$('div.AwardWindow div#AwardContent').html($(t).parent().parent().find('div')[2].innerHTML); 
	$('div.AwardWindow h3').html('Инвентарь <span>'+ 
$(t).parent().parent().parent().parent().find('li.pa-author a').text()+'</span>'); 
}

$('.post li.pa-fld1').each(function() 
{ 
	Result = '<table>'; 
	var alt = $(this).find("div").attr("alt");
	var parts = alt.split(";");
	if (parts.length < 2)
parts = ["",alt];
	for(var i=0;i<parts.length-1;i+=2)
	{
Result += 
"<tr height='64px'>\
<td style='text-align: right;' width='160px'><img class='itemInvImg' src='"+parts[i]+"'></td>\
<td><strong>"+parts[i+1]+"</strong></td>\
</tr>"
	}
	Result += '</table>'; 
	$(this).html('<div><a href="#" onclick="OpenItems(this); return false;"><div id="iconInventory" title="Инвентарь"></div></a></div><div style="display: none">'+Result+'</div>'); 
});

$('#pun-profile #viewprofile-next #pa-fld1 strong').each(function() 
{ 
	Result = '<table>'; 
	var alt = $(this).text();
	var parts = alt.split(";");
	if (parts.length < 2)
parts = ["",alt];
	for(var i=0;i<parts.length-1;i+=2)
	{
Result += '<tr height="64px"><td style="text-align: right;" width="160px"><img class="itemInvImg" src="'+parts[i]+'"></td><td><strong>'+parts[i+1]+'</strong></td></tr>'
	}
	Result += '</table>'; 
	$(this).html('<div class="invet"><a href="#" onclick="OpenItems(this); return false;"><div id="iconInventory" title="Инвентарь"></div></a></div><div style="display: none">'+Result+'</div>'); 
});

0

3

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

Частично справились сами, но отображается почему-то все еще не корректно. fld у анкеты и инвентаря указаны верно, однако что-то все еще не так, потому что заполнить в профиле можно, а под аватаром отображения нет.

Анкета:

Ну а смысл отображения в профиле, если у Вас скрипт заменяет всё вставленное в поле Анкета на этот код ?

<!-- Анкета в профиле -->
<script>
$('#pun-profile #viewprofile-next #pa-fld5 strong').each(function(){
  var questionary = $(this).text();
  questionary_html = '<strong><a target="_blank" href="'+questionary+'" title="Анкета персонажа"><span id="iconAnketa"></div></span></strong>';
  $(this).replaceWith(questionary_html);
});
</script>

Cнимите код, тогда заполненное в Поле должно показаться(ксати код скрипта кривой!)

+1

4

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

Cнимите код, тогда заполненное в Поле должно показаться(ксати код скрипта кривой!)

Сделали, но это к сожалению никак не повлияло. Скрипт кривой в анкете или вообще весь и в анкете и в инвентаре?

0

5

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

Сделали, но это к сожалению никак не повлияло. Скрипт кривой в анкете или вообще весь и в анкете и в инвентаре?

Дайте ссылку на пост(клик по дате в сообщении) с проблемой неотображения, видный гостю, с заполненным кодом и снятым скриптом для анкеты

0


Вы здесь » Единый форум поддержки » Форум для новичков » Поля профиля