Posted 12 октября, 201311 yr comment_45878 Здравствуйте. Установил себе новый шаблон, но не как не могу решить пару проблем 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> Скрин Так же на форуме установлен хук на старом стиле всё было нормально. С новым проблема возникла. Во первых не видно модераторов, а во вторых когда наводишь на вкладку форума, там ошибка. Скрин Заранее благодарен за ответы
13 октября, 201311 yr comment_45903 Это дополнительные поля, редактируются они в ац: <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> Следовательно перед ними нужно вставить нужный тебе код.
14 октября, 201311 yr Author comment_46113 Не как не могу этого решить. Вроде выше ставятся, но вот рамка вокруг пропадает с этих полей. Внимательно хоть читайте что в первом посте написано. Вот как получается
14 октября, 201311 yr comment_46146 В коде каша какая-то.. Таблица то зачем там вообще?! Вот это вообще к чему? В курсе? <li class='post_count desc lighter'> <if test="postCount:|:$author['member_id']"></if></li>
14 октября, 201311 yr comment_46150 В коде каша какая-то.. Таблица то зачем там вообще?! Вот это вообще к чему? В курсе? <li class='post_count desc lighter'> <if test="postCount:|:$author['member_id']"></if></li> Отсюда взяли часть кода, отвечающую за вывод кол-ва постов. А еще в коде нет одного закрывающего тега </ul> Плюс зачем-то в условия кастомных полей запихали посты и варнинги. Если я снесу все поля в админке, то указанные данные не будут показаны.
14 октября, 201311 yr comment_46186 Внимательно хоть читайте что в первом посте написано. Вот как получается gm1.png Просто у тебя руки не от туда растут. Не получается потому, что ты не занес их в стиль custom_fields. В этот: <ul class='custom_fields'> </ul>
18 октября, 201311 yr comment_46503 вот оригинальный код вывода "предупреждений" в 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 - предупреждения есть, но не за это сообщение)
18 октября, 201311 yr comment_46505 {$author['warn_level']} это совершенно правильно! Но, ты его выкинул из условия if test="authorwarn:|:$author['show_warn']"> а это делать нельзя! Поэтому оно и не работает у админа, поскольку админа нельзя предупреждать и у него просто нет предупреждений, а проверку на это (условие) ты выкинул. Подумай ещё, как нужно поработать с условиями.
18 октября, 201311 yr comment_46510 А лучше всего делать так: {parse expression="sprintf( $author['warn_level'] )"} а то будет пустое место вместо цифры 0 у админа.
18 октября, 201311 yr comment_46512 Итого, в нужное место вставляй <if test="$author['show_warn']"> {parse expression="sprintf( $author['warn_level'] )"} </if> Если где ошибся, то поправят другие.
18 октября, 201311 yr comment_46536 условия я пытался сохранить оригинальные... просто не слишком хорошо покачто разбираюсь в них и думал, что на таблицы сохраняются. задумка была такова- если есть предупреждения как по дефорлту - показывать иконку "восклицательный знак", если нет - показывать другую иконку, ну и дальше стандартный вывод "баллов предупреждения", только разбитый на столбцы таблицы, и всё это под общим условием возможности видеть предупреждения <if test="authorwarn:|:$author['show_warn']"> сейчас проверю все варианты из темы. спасибо за помощь! ------------------ <if test="$author['show_warn']"> {parse expression="sprintf( $author['warn_level'] )"} </if>выводит если есть баллы предупреждения, если ент - пусто, хотя стандартный код упорно пишет "0 предупреждений"... скорее всего что-то сломал остаётся только одно - вписать проверку на наличие, и если =0 - выводить цыфру 0 без счётчика, иначе выводить глючный счётчик
18 октября, 201311 yr comment_46537 и всё это под общим условием возможности видеть предупреждения Это ты не сделал, у тебя там <else> Почитай про if-then-else и всё будет понятно.
18 октября, 201311 yr comment_46539 Lordbl4, извини, не заметил. Всё с if у тебя верно, просто проверь с {parse expression="sprintf( $author['warn_level'] )"}
18 октября, 201311 yr comment_46542 результат {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>
18 октября, 201311 yr comment_46544 {parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений?
18 октября, 201311 yr comment_46545 {parse expression="sprintf( $author['warn_level'] )"} что показывает у того, у кого нет предупреждений? пустоту
18 октября, 201311 yr comment_46546 А твой обходной вариант упрощается так: <td align="center"><span class='postcoutninfopane'> <if test="$author['warn_level'] == 0"> 0 <else /> {parse expression="sprintf( $author['warn_level'] )"} </if> </span></td> но мне не нравится такой изврат. А он админ? Автор этого поста. А у обычного пользователя 0 или пустота?
18 октября, 201311 yr comment_46547 {parse expression="sprintf( $author['warn_level'] )"} пользователь без нарушений - пустота, стандартный - "0 баллов предупреждения" пользователь с нарушениями - число нарушений, стандартное - "х баллов предупреждения" админ без предупреждений - пустота, стандартное - "0 баллов предупреждения"
18 октября, 201311 yr comment_46548 Всё, я понял, внутри $this->lang->words['warn_status'] находится модификатор формата вывода числа. У админа $author['warn_level'] пустое, поэтому выходит пустота. Посмотри что за модификатор формата внутри $this->lang->words['warn_status'] и используй его для sprintf( $author['warn_level'] ) Будет что-то типа sprintf( '%u', $author['warn_level'] ) Поиском в языках ищи warn_status
18 октября, 201311 yr comment_46554 {parse expression="sprintf('%d', $author['warn_level'] )"} работает, огромнейшее спасибо! хорошо наверное, когда знаешь... можно такие вещи творить... вот примерный вариант таблички в userInfoPane, может быть автору пригодиться, у него там ошибки были. нужно лишь изменить пути на свои картинки удалено из-за безбожного и безрассудного копирования
18 октября, 201311 yr comment_46556 Lordbl4, да ничо я не знаю, столько протупил, и условия твои неправильно прочитал и к админу прицепился. Там не в админе дело, а в отсутствии нарушений. Пустота там. А 0 отображает функция sprintf с которой я тоже втупил, забыв про строку формата. Верстка таблицей это прошлый век, нынче блочная (DIV) верстка в почете. А всякие выравнивания и прочее через CSS.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.