Перейти к содержанию

userinfo и еще пару вопросов


Fomik

Рекомендуемые сообщения

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

1. Как поля "Сообщения и репутация" поднять выше поля ICQ, но что бы они остались в рамке. Не как не могу этого решить. Вроде выше ставятся, но вот рамка вокруг пропадает с этих полей.

Код userinfopane

<div class='user_details'>
<ul class='basic_info'>
  <if test="membertitle:|:$author['member_title']">
   <p class='desc member_title'>{$author['member_title']}</p>
  </if>
  <if test="avatar:|:$author['member_id']">
   <li class='avatar'>
    <a href="{parse url="showuser={$author['member_id']}" template="showuser" seotitle="{$author['members_seo_name']}" base="public"}" title="{$this->lang->words['view_profile']}" class='ipsUserPhotoLink'>
    <if test="hasVariable:|:$this->settings['member_topic_avatar_max']">
	 <img src='{$author['pp_main_photo']}' class='ipsUserPhoto ipsUserPhoto_variable' />
    <else />
	 <img src='{$author['pp_thumb_photo']}' class='ipsUserPhoto ipsUserPhoto_large' />
    </if>
    </a>
   </li>
  <else />
   <li class='avatar'>
    <img src='{$author['pp_thumb_photo']}' class='ipsUserPhoto ipsUserPhoto_large' />
   </li>
  </if>
  <hr />
  <if test="rankimage:|:$author['member_rank_img']">
   <li class='group_icon'>
   <if test="rankimageimage:|:$author['member_rank_img_i'] == 'img'">
    <img src='{$author['member_rank_img']}' alt='' />
   <else />
    {$author['member_rank_img']}
   </if>
   </li>
  </if>
<if test="authorcfields:|:$author['custom_fields'] != """>
  <ul class='custom_fields'>
   <foreach loop="customFieldsOuter:$author['custom_fields'] as $group => $data">
    <foreach loop="customFields:$author['custom_fields'][ $group ] as $field">
	 <if test="$field != ''">
	  <li>
	   {$field}
	  </li>
	 </if>
    </foreach>
   </foreach>
		    <li>
		    <table width="100%" border="0">
			  <tr>
			    <td width="18"><img src="__gmnews.su/public/style_extra/cprofile_icons/mail.png"></td>
			    <td width="50" align="left">Сообщений:</td>
			    <td align="left">{parse expression="$this->registry->getClass('class_localization')->formatNumber( intval( $author['posts'] ) )"}</td>
			  </tr>
		    </table>
		    </li>
<li>
		    <table width="100%" border="0">
			  <tr>
			    <td width="18"><img src="__gmnews.su/public/style_extra/cprofile_icons/warn.png"></td>
			    <td width="50" align="left"><a class='desc lighter blend_links' href='{parse url="app=members&amp;module=profile&amp;section=warnings&amp;member={$author['member_id']}&amp;from_app={$this->request['app']}&amp;from_id1={$contentid}&amp;from_id2={$options['id2']}" base="public"}' id='warn_link_{$contentid}_{$author['member_id']}' title='{$this->lang->words['warn_view_history']}'>Предупреждений:</a></td>
			    <td align="left"><b>{parse expression="sprintf( $this->lang->words['warn_status'], $author['warn_level'] )"}</b></td>
			  </tr>
		    </table>
		    </li>
<li class='post_count desc lighter'>
<if test="postCount:|:$author['member_id']"></if></li>
  </ul>
</if>

</div>

Скрин

post-2207-0-53448900-1381602235.png

 

Так же на форуме установлен хук на старом стиле всё было нормально. С новым проблема возникла. Во первых не видно модераторов, а во вторых когда наводишь на вкладку форума, там ошибка.

Скрин

post-2207-0-26239400-1381602592.png

 

 

Заранее благодарен за ответы

 

 

Ссылка на комментарий
Поделиться на другие сайты

Это дополнительные поля, редактируются они в ац:

<if test="authorcfields:|:$author['custom_fields'] != """>
  <ul class='custom_fields'>
   <foreach loop="customFieldsOuter:$author['custom_fields'] as $group => $data">
    <foreach loop="customFields:$author['custom_fields'][ $group ] as $field">
	 <if test="$field != ''">
	  <li>
	   {$field}
	  </li>
	 </if>
    </foreach>
   </foreach>

Следовательно перед ними нужно вставить нужный тебе код.

Ссылка на комментарий
Поделиться на другие сайты

легко же ) Просто переставить местами

Ссылка на комментарий
Поделиться на другие сайты

Не как не могу этого решить. Вроде выше ставятся, но вот рамка вокруг пропадает с этих полей.

Внимательно хоть читайте что в первом посте написано.

Вот как получается

post-2207-0-63946400-1381745464.png

Ссылка на комментарий
Поделиться на другие сайты

В коде каша какая-то.. Таблица то зачем там вообще?!

Вот это вообще к чему? В курсе? 

<li class='post_count desc lighter'>
<if test="postCount:|:$author['member_id']"></if></li>
Ссылка на комментарий
Поделиться на другие сайты

 

В коде каша какая-то.. Таблица то зачем там вообще?!

Вот это вообще к чему? В курсе? 

<li class='post_count desc lighter'>
<if test="postCount:|:$author['member_id']"></if></li>

Отсюда взяли часть кода, отвечающую за вывод кол-ва постов.

А еще в коде нет одного закрывающего тега </ul>

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

Ссылка на комментарий
Поделиться на другие сайты

Внимательно хоть читайте что в первом посте написано.

Вот как получается

attachicon.gifgm1.png

Просто у тебя руки не от туда растут.

Не получается потому, что ты не занес их в стиль custom_fields.

В этот:

<ul class='custom_fields'> 
</ul>
Ссылка на комментарий
Поделиться на другие сайты

вот оригинальный код вывода "предупреждений" в userInfoPane

 

		<if test="authorwarn:|:$author['show_warn']">
			<li>
				<if test="hasWarningId:|:$options['wl_id']">
					<img src='{$this->settings['img_url']}/warn.png' class='clickable' onclick='warningPopup( this, {$options['wl_id']} )' title='{$this->lang->words['warnings_issued']}' />
				</if>
				<a class='desc lighter blend_links' href='{parse url="app=members&amp;module=profile&amp;section=warnings&amp;member={$author['member_id']}&amp;from_app={$this->request['app']}&amp;from_id1={$contentid}&amp;from_id2={$options['id2']}" base="public"}' id='warn_link_{$contentid}_{$author['member_id']}' title='{$this->lang->words['warn_view_history']}'>{parse expression="sprintf( $this->lang->words['warn_status'], $author['warn_level'] )"}</a>
			</li>
		</if>
как разделить код по частям, чтобы ссылку к примеру обозвать "нарушения" и через двоеточие вывести счётчик?

 

к примеру

{$author['warn_level']}
у меня пару раз вывел инфу "0 предупреждений" и потом отказался выводить... перемудрил я что-то наверное. подскажите, кто понимает  :)

 

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

 

вот часть кода таблицы, в котором глючит счётчик


<!--Нарушения-->
<if test="authorwarn:|:$author['show_warn']">
<tr>
<if test="hasWarningId:|:$options['wl_id']">
<td align="center"><img src='{$this->settings['img_url']}/warn.png' class='clickable' onclick='warningPopup( this, {$options['wl_id']} )' title='{$this->lang->words['warnings_issued']}' /></td>
<else />
<td align="center"><img src="{$this->settings['img_url']}/icons/arrow-right.png" alt='' /></td>
</if>
<td align="left"><a href='{parse url="app=members&amp;module=profile&amp;section=warnings&amp;member={$author['member_id']}&amp;from_app={$this->request['app']}&amp;from_id1={$contentid}&amp;from_id2={$options['id2']}" base="public"}' id='warn_link_{$contentid}_{$author['member_id']}' title='{$this->lang->words['warn_view_history']}'>Нарушения:</a></td>
<td align="center"><span class='postcoutninfopane'>{$author['warn_level']}</span></td>
</tr>
</if>
<!--/Нарушения-->
 

вот примеры недоработанной идеи (screenshot.4.png - предупреждений 0, screenshot.5.png - за данное сообщение выставлено предупреждение? screenshot.6.png - предупреждения есть, но не за это сообщение)

post-8225-0-04376900-1382063418.png

post-8225-0-86058400-1382063418.png

post-8225-0-92529100-1382063546.png

Ссылка на комментарий
Поделиться на другие сайты

{$author['warn_level']} это совершенно правильно!

 

Но, ты его выкинул из условия if test="authorwarn:|:$author['show_warn']"> а это делать нельзя! Поэтому оно и не работает у админа, поскольку админа нельзя предупреждать и у него просто нет предупреждений, а проверку на это (условие) ты выкинул. Подумай ещё, как нужно поработать с условиями.

Ссылка на комментарий
Поделиться на другие сайты

А лучше всего делать так: {parse expression="sprintf( $author['warn_level'] )"} а то будет пустое место вместо цифры 0 у админа.

Ссылка на комментарий
Поделиться на другие сайты

Итого, в нужное место вставляй

<if test="$author['show_warn']">
{parse expression="sprintf( $author['warn_level'] )"}
</if>

Если где ошибся, то поправят другие.

Ссылка на комментарий
Поделиться на другие сайты

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

 

задумка была такова- если есть предупреждения как по дефорлту - показывать иконку "восклицательный знак", если нет - показывать другую иконку, ну и дальше стандартный вывод "баллов предупреждения", только разбитый на столбцы таблицы, и всё это под общим условием возможности видеть предупреждения

<if test="authorwarn:|:$author['show_warn']">
сейчас проверю все варианты из темы. спасибо за помощь!

 

------------------

<if test="$author['show_warn']">
{parse expression="sprintf( $author['warn_level'] )"}
</if>
выводит если есть баллы предупреждения, если ент - пусто, хотя стандартный код упорно пишет "0 предупреждений"... скорее всего что-то сломал :(

остаётся только одно - вписать проверку на наличие, и если =0 - выводить цыфру 0 без счётчика, иначе выводить глючный счётчик

Ссылка на комментарий
Поделиться на другие сайты


и всё это под общим условием возможности видеть предупреждения

 

Это ты не сделал, у тебя там <else>

Почитай про if-then-else и всё будет понятно.

Ссылка на комментарий
Поделиться на другие сайты

spoken, оно же к другому if... или так нельзя?

Ссылка на комментарий
Поделиться на другие сайты

Lordbl4, извини, не заметил. Всё с if  у тебя верно, просто проверь с {parse expression="sprintf( $author['warn_level'] )"}

Ссылка на комментарий
Поделиться на другие сайты

результат



{parse expression="sprintf( $this->lang->words['warn_status'], $author['warn_level'] )"}
 

вставляю в любое место - показывает верно, 
 
 
 



{parse expression="sprintf( $author['warn_level'] )"}

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

 



<if test="$author['show_warn']">
{parse expression="sprintf( $author['warn_level'] )"}
</if>

 
тоже самое...
 
 
 



<if test="hasWarningId:|:$options['wl_id']">
{parse expression="sprintf( $author['warn_level'] )"}
</if>

не знаю зачем, но тоже не работает

 

как вариант...

<if test="$author['warn_level'] == 0">
<td align="center"><span class='postcoutninfopane'>0</span></td>
<else />
<td align="center"><span class='postcoutninfopane'>{parse expression="sprintf( $author['warn_level'] )"}</span></td>
</if>
Ссылка на комментарий
Поделиться на другие сайты

{parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений?

Ссылка на комментарий
Поделиться на другие сайты


{parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений?

пустоту

Ссылка на комментарий
Поделиться на другие сайты

А твой обходной вариант упрощается так:

<td align="center"><span class='postcoutninfopane'>
<if test="$author['warn_level'] == 0">
0
<else />
{parse expression="sprintf( $author['warn_level'] )"}
</if>
</span></td>

но мне не нравится такой изврат.

 

А он админ? Автор этого поста. А у обычного пользователя 0 или пустота?

Ссылка на комментарий
Поделиться на другие сайты

{parse expression="sprintf( $author['warn_level'] )"}

 

пользователь без нарушений - пустота, стандартный - "0 баллов предупреждения"

пользователь с нарушениями - число нарушений, стандартное - "х баллов предупреждения"

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

Ссылка на комментарий
Поделиться на другие сайты

Всё, я понял, внутри $this->lang->words['warn_status'] находится модификатор формата вывода числа. У админа $author['warn_level'] пустое, поэтому выходит пустота. Посмотри что за модификатор формата внутри $this->lang->words['warn_status'] и используй его для sprintf( $author['warn_level'] )

 

Будет что-то типа sprintf( '%u', $author['warn_level'] )



Поиском в языках ищи warn_status

Ссылка на комментарий
Поделиться на другие сайты

sprintf( '%d', $author['warn_level'] ) тебе поможет!

Ссылка на комментарий
Поделиться на другие сайты



{parse expression="sprintf('%d', $author['warn_level'] )"}

 

 работает, огромнейшее спасибо! хорошо наверное, когда знаешь... можно такие вещи творить...

 

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

удалено из-за безбожного и безрассудного копирования 

Ссылка на комментарий
Поделиться на другие сайты

Lordbl4, да ничо я не знаю, столько протупил, и условия твои неправильно прочитал и к админу прицепился. Там не в админе дело, а в отсутствии нарушений. Пустота там. А 0 отображает функция sprintf с которой я тоже втупил, забыв про строку формата.



Верстка таблицей это прошлый век, нынче блочная (DIV) верстка в почете. А всякие выравнивания и прочее через CSS.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...