Fomik Опубликовано 12 октября, 2013 Поделиться Опубликовано 12 октября, 2013 Здравствуйте. Установил себе новый шаблон, но не как не могу решить пару проблем 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&module=profile&section=warnings&member={$author['member_id']}&from_app={$this->request['app']}&from_id1={$contentid}&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> Скрин Так же на форуме установлен хук на старом стиле всё было нормально. С новым проблема возникла. Во первых не видно модераторов, а во вторых когда наводишь на вкладку форума, там ошибка. Скрин Заранее благодарен за ответы Lordbl4 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
TrueSkill Опубликовано 13 октября, 2013 Поделиться Опубликовано 13 октября, 2013 Это дополнительные поля, редактируются они в ац: <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> Следовательно перед ними нужно вставить нужный тебе код. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Scott Опубликовано 13 октября, 2013 Поделиться Опубликовано 13 октября, 2013 легко же ) Просто переставить местами Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Fomik Опубликовано 14 октября, 2013 Автор Поделиться Опубликовано 14 октября, 2013 Не как не могу этого решить. Вроде выше ставятся, но вот рамка вокруг пропадает с этих полей. Внимательно хоть читайте что в первом посте написано. Вот как получается Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 14 октября, 2013 Поделиться Опубликовано 14 октября, 2013 В коде каша какая-то.. Таблица то зачем там вообще?! Вот это вообще к чему? В курсе? <li class='post_count desc lighter'> <if test="postCount:|:$author['member_id']"></if></li> Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
LvsF Опубликовано 14 октября, 2013 Поделиться Опубликовано 14 октября, 2013 В коде каша какая-то.. Таблица то зачем там вообще?! Вот это вообще к чему? В курсе? <li class='post_count desc lighter'> <if test="postCount:|:$author['member_id']"></if></li> Отсюда взяли часть кода, отвечающую за вывод кол-ва постов. А еще в коде нет одного закрывающего тега </ul> Плюс зачем-то в условия кастомных полей запихали посты и варнинги. Если я снесу все поля в админке, то указанные данные не будут показаны. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
TrueSkill Опубликовано 14 октября, 2013 Поделиться Опубликовано 14 октября, 2013 Внимательно хоть читайте что в первом посте написано. Вот как получается gm1.png Просто у тебя руки не от туда растут. Не получается потому, что ты не занес их в стиль custom_fields. В этот: <ul class='custom_fields'> </ul> Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 вот оригинальный код вывода "предупреждений" в 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&module=profile&section=warnings&member={$author['member_id']}&from_app={$this->request['app']}&from_id1={$contentid}&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&module=profile&section=warnings&member={$author['member_id']}&from_app={$this->request['app']}&from_id1={$contentid}&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 - предупреждения есть, но не за это сообщение) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 {$author['warn_level']} это совершенно правильно! Но, ты его выкинул из условия if test="authorwarn:|:$author['show_warn']"> а это делать нельзя! Поэтому оно и не работает у админа, поскольку админа нельзя предупреждать и у него просто нет предупреждений, а проверку на это (условие) ты выкинул. Подумай ещё, как нужно поработать с условиями. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 А лучше всего делать так: {parse expression="sprintf( $author['warn_level'] )"} а то будет пустое место вместо цифры 0 у админа. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 Итого, в нужное место вставляй <if test="$author['show_warn']"> {parse expression="sprintf( $author['warn_level'] )"} </if> Если где ошибся, то поправят другие. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 условия я пытался сохранить оригинальные... просто не слишком хорошо покачто разбираюсь в них и думал, что на таблицы сохраняются. задумка была такова- если есть предупреждения как по дефорлту - показывать иконку "восклицательный знак", если нет - показывать другую иконку, ну и дальше стандартный вывод "баллов предупреждения", только разбитый на столбцы таблицы, и всё это под общим условием возможности видеть предупреждения <if test="authorwarn:|:$author['show_warn']"> сейчас проверю все варианты из темы. спасибо за помощь! ------------------ <if test="$author['show_warn']"> {parse expression="sprintf( $author['warn_level'] )"} </if>выводит если есть баллы предупреждения, если ент - пусто, хотя стандартный код упорно пишет "0 предупреждений"... скорее всего что-то сломал остаётся только одно - вписать проверку на наличие, и если =0 - выводить цыфру 0 без счётчика, иначе выводить глючный счётчик Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 и всё это под общим условием возможности видеть предупреждения Это ты не сделал, у тебя там <else> Почитай про if-then-else и всё будет понятно. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 spoken, оно же к другому if... или так нельзя? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 Lordbl4, извини, не заметил. Всё с if у тебя верно, просто проверь с {parse expression="sprintf( $author['warn_level'] )"} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 результат {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> Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 {parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 {parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений? пустоту Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 А твой обходной вариант упрощается так: <td align="center"><span class='postcoutninfopane'> <if test="$author['warn_level'] == 0"> 0 <else /> {parse expression="sprintf( $author['warn_level'] )"} </if> </span></td> но мне не нравится такой изврат. А он админ? Автор этого поста. А у обычного пользователя 0 или пустота? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 {parse expression="sprintf( $author['warn_level'] )"} пользователь без нарушений - пустота, стандартный - "0 баллов предупреждения" пользователь с нарушениями - число нарушений, стандартное - "х баллов предупреждения" админ без предупреждений - пустота, стандартное - "0 баллов предупреждения" Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 Всё, я понял, внутри $this->lang->words['warn_status'] находится модификатор формата вывода числа. У админа $author['warn_level'] пустое, поэтому выходит пустота. Посмотри что за модификатор формата внутри $this->lang->words['warn_status'] и используй его для sprintf( $author['warn_level'] ) Будет что-то типа sprintf( '%u', $author['warn_level'] ) Поиском в языках ищи warn_status Lordbl4 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 spoken, %d баллов предупреждения Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 sprintf( '%d', $author['warn_level'] ) тебе поможет! Lordbl4 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Lordbl4 Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 {parse expression="sprintf('%d', $author['warn_level'] )"} работает, огромнейшее спасибо! хорошо наверное, когда знаешь... можно такие вещи творить... вот примерный вариант таблички в userInfoPane, может быть автору пригодиться, у него там ошибки были. нужно лишь изменить пути на свои картинки удалено из-за безбожного и безрассудного копирования Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
spoken Опубликовано 18 октября, 2013 Поделиться Опубликовано 18 октября, 2013 Lordbl4, да ничо я не знаю, столько протупил, и условия твои неправильно прочитал и к админу прицепился. Там не в админе дело, а в отсутствии нарушений. Пустота там. А 0 отображает функция sprintf с которой я тоже втупил, забыв про строку формата. Верстка таблицей это прошлый век, нынче блочная (DIV) верстка в почете. А всякие выравнивания и прочее через CSS. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.