Оформление постбита (под аватаркой) в виде блоков

  • Автор темы Fly1
  • 2230
  • Обновлено
  • 05, May 2012
  • #1
Я сделал оформление в мини-профиле в темке и оно отображается, даже если поле не заполнено, но уже пустым. Как сделать так, чтобы оно не отображалось, если нет информации?

Fly1


Рег
04 Feb, 2012

Тем
18

Постов
109

Баллов
289
  • 05, May 2012
  • #2
Fly:
Я сделал оформление в мини-профиле в темке и оно отображается, даже если поле не заполнено, но уже пустым. Как сделать так, чтобы оно не отображалось, если нет информации?

Fly, можно поконкретнее? Ты сделал дополнительное поле профиля и добавил его в постбит? Каким образом добавил и какие настройки у этого самого поля?
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
  • 05, May 2012
  • #3
Ночная странница,
код разных кнопок
Мне нужно, чтобы если доп. поле не заполнено - эта рамка, что находится выше не отображалась, а пряталась.
 

Fly1


Рег
04 Feb, 2012

Тем
18

Постов
109

Баллов
289
  • 05, May 2012
  • #4
Fly:
class="postbit-box alt1"
что по этому классу прописано в CSS? и попробуй
padding:5px;
убрать
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
  • 05, May 2012
  • #5
Ночная странница, то есть, если убрать
Ночная:
padding:5px;
всё будет как мне нужно? Попробовал, ничего не изменилось, к сожалению.
 

Fly1


Рег
04 Feb, 2012

Тем
18

Постов
109

Баллов
289
  • 05, May 2012
  • #6
Fly, ну уж мы с тобой - старые знакомые, мог бы мне и права дать, чтобы поглядела, что там и как... padding - это внутренние отступы (поля) блока, раз не помогло, значит, что-то ещё его держит... что в CSS?
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
  • 05, May 2012
  • #7
Ночная странница, прости, совсем забыл. Конечно будет проще, чтобы ты сама посмотрела в чём там дело. Права выдал.
 

Fly1


Рег
04 Feb, 2012

Тем
18

Постов
109

Баллов
289
  • 06, May 2012
  • #8
Fly, исправила на тестовом. Сам перенесешь на рабочий. Рассказываю для тех, кто еще столкнется с такой проблемой. У стиля Fly постбит (мини-профиль под аватаркой) разбит на блоки. Они могут выглядеть по разному, но суть одна: все выводимые поля обрамляются в рамку, подходящую по стилю. Пример рамок в постбите:






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

), результат будет предсказуем - рамка вокруг новых полей будет отсутствовать. Плюс на форуме Fly требовалось, чтобы несколько дополнительных полей выводились в одной рамке. Фух Проблему обрисовала. Теперь решение. Если сделать такую схему:
 <div style="стиль рамок"> 

<if condition="переменная поля">Вывод переменной</if>

</div>
(как и было сначала сделано в данном случае), блоки будут выводиться в постбит ВНЕ зависимости от того, заполнено поле или нет, о чем Fly и сообщил в первом сообщении.

Чтобы исправить эту ситуацию, следует поменять местами div и if таким образом:
 <if condition="переменная поля">

<div style="стиль рамок">

Вывод переменной 

</div>
</if>

Но как сделать так, чтобы в этом поле выводилось сразу несколько переменных? В этом для меня и была сложность данной ситуации.

А решение на самом деле очень простое, нужно всего лишь добавить в условие if несколько переменных через условие OR (или):
 <if condition="переменная поля1 OR переменная поля2 OR переменная поля3">

<div style="стиль рамок">

Вывод переменной1 Вывод переменной2 Вывод переменной 3 

</div>
</if>

Это схематично.

Вот как это может выглядеть в шаблоне:
Было:
 <div class="postbit-box alt1" style="text-align:center"><if condition="$post['field15']"><a href="$bbuserinfo[field15]" target="_blank"><img src="http://vash.domen/images/misc/vkontakte.gif" border="0" title="Пользователь на vk.com" alt="Пользователь на vk.com"></a> </if><if condition="$post['field32']"><a href="$bbuserinfo[field32]" target="_blank"><img src="http://vash.domen/images/misc/odnoklassniki.gif" border="0" title="Пользователь на odnoklassniki.ru" alt="Пользователь на odnoklassniki.ru"></if> <if condition="$post['field33']"><a href="$bbuserinfo[field33]" target="blank"><img src="http://vash.domen/images/misc/facebook.gif" title="Пользователь на facebook.ru" alt="Пользователь на facebook.ru"></if></div></div>

<div class="postbit-box alt1" style="padding:5px;text-align:center"><div style="margin:4px 0">$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon]</div></div>

Стало:
 <if condition="$post['field15'] OR $post['field32'] OR $post['field33']">

<div class="postbit-box alt1" style="padding:4px;text-align:center">

<a href="$bbuserinfo[field15]" target="_blank"><img src="http://vash.domen/images/misc/vkontakte.gif" border="0" title="Пользователь на vk.com" alt="Пользователь на vk.com"></a>

<a href="$bbuserinfo[field32]" target="_blank"><img src="http://vash.domen/images/misc/odnoklassniki.gif" border="0" title="Пользователь на odnoklassniki.ru" alt="Пользователь на odnoklassniki.ru"></a>

<a href="$bbuserinfo[field33]" target="blank"><img src="http://vash.domen/images/misc/facebook.gif" title="Пользователь на facebook.ru" alt="Пользователь на facebook.ru"></a>

</div></if>

<if condition="$post['icq'] OR $post['aim'] OR $post['msn'] OR $post['yahoo'] OR $post['skype']">

<div class="postbit-box alt1" style="padding:5px;text-align:center">$post[icqicon] $post[aimicon] $post[msnicon] $post[yahooicon] $post[skypeicon]</div></if>
[MOD="Ночная странница"]НО! Именно для ссылок этот код не подходит! (подробности ниже)
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
  • 23, May 2012
  • #9
Опыт показал, что вышеприведенный код отображается верно, но не совсем рабочий.

Возможно, принцип подойдет для каких-то полей без ссылок, но ссылки в нем не заработали, увы.

Путем экспериментов он был исправлен на такой:
 

<!-- Социальные сети -->

<if condition="$show['member']">

<if condition="$post['field15']|$post['field32']|$post['field33']">

<div class="postbit-box alt1" style="padding:4px;text-align:center">

<if condition="$post['field15']"><a href="$post[field15]" target="_blank"><img src="ссылка на картинку vkontakte.gif" border="0"></a>

</if>

<if condition="$post['field32']"><a href="$post[field32]" target="_blank"><img src="ссылка на картинку odnoklassniki.gif" border="0"></a> </if>

<if condition="$post['field33']"><a href="$post[field33]" target="_blank"><img src="ссылка на картинку facebook.gif" border="0"></a> </if>

</div>

</if>

</if>

<!-- /социальные сети -->
Теперь работают и ссылки и блоки в постбите отображаются, когда нужно.

Вся соль в двойном условии - сначала идет проверка, имеются ли заполненные поля (if condition="$post['field15']|$post['field32']|$post['field33']"), а затем, если условие выполняется, начинается сам блок со ссылками, каждая из которых так же проверяется отдельным условием.
 

Ночная странница


Рег
30 Jan, 2012

Тем
98

Постов
1642

Баллов
2622
Тем
49554
Комментарии
57426
Опыт
552966

Интересно