5 октября, 201311 yr comment_45055 нашёл странный баг. ломал голову и не могу понять как его исправить. при включении опции в разделе "настройки безопасности" вылезает странный дубликат в пути навигации ("хлебные крошки", breadcrumbs) при переходе на главную страницу с форумами (ну или же клик по лого) однако при переходе на другие элементы всё в порядке предпологаю, что загвозка в проверке условий... но я в этом не разбираюсь( вот часть кода, отвечающая за навигацию, ссылка в профиле, ошибку видно будет сразу. если нужно - предоставлю тестовый аккаунт <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="$this->settings['pulseEnableSocialIcons']=='1'"> <div id='breadcrumb' class='clearfix'> <div class="main_width"> <div class="crumb left"> <if test="ipsRegistry::$current_application == 'forums' AND ipsRegistry::$current_module == 'forums' AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"><span>{$this->settings['board_name']}</span></a> </if> <div id='secondary_navigation' class='clearfix'> <if test="count( $items['navigation'] )"> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </if> </div><!-- /secondary_navigation --> </div><!-- /crumb_left --> <div class="social_media"> {parse template="tctc91_social_media" group="global" params=""} </div><!-- /social_media --> </div><!-- /main_width --> </div><!-- /Breadcrumb--> </if> <noscript> <div class='message error'> <strong>{$this->lang->words['gbl_no_js_title']}</strong> <p>{$this->lang->words['gbl_no_js']}</p> </div> <br /> </noscript> <!-- ::: MAIN CONTENT AREA ::: --> Edited 5 октября, 201311 yr by Lordbl4
5 октября, 201311 yr comment_45060 Это убери и проверь результат <if test="ipsRegistry::$current_application == 'forums' AND ipsRegistry::$current_module == 'forums' AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"><span>{$this->settings['board_name']}</span></a> </if>
5 октября, 201311 yr comment_45062 spoken, тогда на главной пропадает навигация но на других элементах меню есть Edited 5 октября, 201311 yr by Lordbl4
5 октября, 201311 yr comment_45063 Что-то лишнее ты удалил. Тот кусок выводит только одну эту дурацкую ссылку и только в одном месте. Навигацию он не трогает. Кажется я понял, там через else надо сделать.
5 октября, 201311 yr comment_45065 Там логика ошибочная, надо переделывать. Пример верной логики в дефолтовом стиле.
5 октября, 201311 yr comment_45066 вот оригинальный <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="countnav:|:count( $items['navigation'] )"> <div id='secondary_navigation' class='clearfix'> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </div> <br /> </if> <noscript> <div class='message error'> <strong>{$this->lang->words['gbl_no_js_title']}</strong> <p>{$this->lang->words['gbl_no_js']}</p> </div> <br /> </noscript> возможно ли именно на странице входа убрать лишний элемент навигации? если да, то как? отдельного шаблона страницы я не нашел
5 октября, 201311 yr comment_45067 Шаблон страницы входа есть, но навигация в globalTemplate лежит. В дефольном стиле нет такого лишнего куска с URL форума. Что с отображением на главной в дефолтовом стиле? Убери только это в условии и проверь AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )
5 октября, 201311 yr comment_45072 Т.е. в оригинальном на главной breadcumbs нет. Значит первоначальный мой рецепт соответствует поведению оригинального скина. И что смущает? Удали вот эту придумку автора стиля и спи спокойно. <if test="ipsRegistry::$current_application == 'forums' AND ipsRegistry::$current_module == 'forums' AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"><span>{$this->settings['board_name']}</span></a> </if>
5 октября, 201311 yr comment_45073 spoken, так для оригинального стиля и не предусмотрен верхний breadcumbs на главной, а в этом стиле - неотъемлемая часть
5 октября, 201311 yr comment_45074 А что будет показывать breadcrumbs на главной? Ссылку на сам форум? Их и без этого там две - в логотипе и в слове "Форумы". Странная задумка и реализована некорректно. Править автору стиля надо было генератор breadcrumbs, а не изобретать велосипед из-за которого идёт такое дублирование. Короче, мне добавить нечего.
5 октября, 201311 yr comment_45076 spoken, спасибо автор, конечно, тот ещё умелец... стиль красивый если доработать, но вот в механизмах косяков весьма много. upd. у меня идея... как и что добавить к части кода, которая отвечает за показ верхней ненужной части навигации проверку на то, залогинился пользователь или нет? страница с ошибкой вылезает, если включена опция принудительного логина, залогинившийся юзер как раз сможет увидеть нормальную навигацию, а не залогинившийся - не увидит ненужную часть Edited 5 октября, 201311 yr by Lordbl4
5 октября, 201311 yr comment_45077 У тебя теперь везде кроме форумов пишет в навигации просто "Войти" LvsF может что подскажет, он спец. Edited 5 октября, 201311 yr by spoken
5 октября, 201311 yr comment_45082 Lordbl4, понятно. Есть у меня один форумок с нестандартным стилем, там тоже есть breadcrumbs на главной. Работают. Глянул там код. Давай так - удали тот кусок, о котором выше говорил и удали это условие <if test="count( $items['navigation'] )"> с закрывающим его тегом. Тогда и на главной должны быть breadcrumbs. Вот такой код пробуй <div id='secondary_navigation' class='clearfix'> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol>
5 октября, 201311 yr comment_45091 Оригинальный код <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="countnav:|:count( $items['navigation'] )"> <div id='secondary_navigation' class='clearfix'> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </div> <br /> </if> На главной нет навигации из-за <if test="countnav:|:count( $items['navigation'] )"> Нужно заменить на <if test="countnav:|:count( $items['navigation'] ) >= 0"> P.S. Руки бы автору поставить на место. Весь код перековеркал да еще метки поудалял.
5 октября, 201311 yr comment_45103 Странная задумка и реализована некорректно. 1. В чем странность? Посмотрите на форумы версий ниже 3.2. Там есть навигация на главной. Только толку нет от нее. 2. Угу.
5 октября, 201311 yr comment_45105 LvsF, не помогло менял <if test="countnav:|:count( $items['navigation'] )">в обоих местах - не появилась навигация на главной. ещё и бесплатный хостинг уснул не вовремя( вот код <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="$this->settings['pulseEnableSocialIcons']=='1'"> <div id='breadcrumb' class='clearfix'> <div class="main_width"> <div class="crumb left"> <if test="ipsRegistry::$current_application == 'forums' AND ipsRegistry::$current_module == 'forums' AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"><span>{$this->settings['board_name']}</span></a> </if> <div id='secondary_navigation' class='clearfix'> <if test="count( $items['navigation'] )"> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </if> </div><!-- /secondary_navigation --> </div><!-- /crumb_left --> <div class="social_media"> {parse template="tctc91_social_media" group="global" params=""} </div><!-- /social_media --> </div><!-- /main_width --> </div><!-- /Breadcrumb--> </if> <noscript> <div class='message error'> <strong>{$this->lang->words['gbl_no_js_title']}</strong> <p>{$this->lang->words['gbl_no_js']}</p> </div> <br /> </noscript> <!-- ::: MAIN CONTENT AREA ::: --> <div id='content' class='clearfix'> <!-- ::: SHOW THESE BREADCRUMBS IF SOCIAL ICONS ARE DISABLED ::: --> <if test="$this->settings['pulseEnableSocialIcons']=='0'"> <if test="countnav:|:count( $items['navigation'] )"> <div id='secondary_navigation' class='clearfix'> <if test="countnav:|:count( $items['navigation'] )"> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </if> </div><!-- /secondary_navigation --> <br /> </if> </if> <!-- ::: CONTENT ::: --> как я понял по фразе автора <!-- ::: SHOW THESE BREADCRUMBS IF SOCIAL ICONS ARE DISABLED ::: --> что там где менял часть кода - место, которое определяет показ навигации при выключенных социальных иконках Edited 5 октября, 201311 yr by Lordbl4
5 октября, 201311 yr comment_45111 Так пробуй <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="$this->settings['pulseEnableSocialIcons']=='1'"> <div id='breadcrumb' class='clearfix'> <div class="main_width"> <div class="crumb left"> <div id='secondary_navigation' class='clearfix'> <if test="count( $items['navigation'] )>=0"> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </if> </div><!-- /secondary_navigation --> </div><!-- /crumb_left --> <div class="social_media"> {parse template="tctc91_social_media" group="global" params=""} </div><!-- /social_media --> </div><!-- /main_width --> </div><!-- /Breadcrumb--> </if> <noscript> <div class='message error'> <strong>{$this->lang->words['gbl_no_js_title']}</strong> <p>{$this->lang->words['gbl_no_js']}</p> </div> <br /> </noscript> <!-- ::: MAIN CONTENT AREA ::: --> <div id='content' class='clearfix'> <!-- ::: SHOW THESE BREADCRUMBS IF SOCIAL ICONS ARE DISABLED ::: --> <if test="$this->settings['pulseEnableSocialIcons']=='0'"> <if test="countnav:|:count( $items['navigation'] )>=0"> <div id='secondary_navigation' class='clearfix'> <if test="countnav:|:count( $items['navigation'] )>=0"> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </if> </div><!-- /secondary_navigation --> <br /> </if> </if>
5 октября, 201311 yr comment_45113 LvsF, spoken, попробовал, всё отлично. спасибо вам огромное за проделанную работу. вот наглядная разница, может кому пригодиться, да и я ещё не раз обращусь к этому коду
5 октября, 201311 yr comment_45114 Но код кривой даже этот, сейчас вот увидел, что там есть одна лишняя проверка. Быть может автор стиля всё это уже давно исправил. Но об этом сложно узнать. Нижнюю часть можно упростить так <if test="$this->settings['pulseEnableSocialIcons']=='0'"> <if test="countnav:|:count( $items['navigation'] )>=0"> <div id='secondary_navigation' class='clearfix'> <ol class='breadcrumb top ipsList_inline left'> <php>$this->did_first = 0;</php> <if test="switchnavigation:|:!$this->settings['remove_forums_nav'] OR ipsRegistry::$current_application == 'forums'"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <a href='{parse url="act=idx" seotitle="false" base="public"}' itemprop="url"> <span itemprop="title">{$this->settings['board_name']}</span> </a> </li> <if test="didfirstnav:|:$this->did_first=1"></if> </if> <foreach loop="navigation:$items['navigation'] as $idx => $data"> <li itemscope itemtype="__data-vocabulary.org/Breadcrumb"> <if test="didfirstappnow:|:$this->did_first"><span class='nav_sep'>{parse replacement="f_nav_sep"}</span></if> <if test="navigationlink:|:$data[1]"><a href='{parse url="{$data[1]}" base="$data[4]" seotitle="$data[2]" template="$data[3]"}' title='{$this->lang->words['nav_return_to']} {parse expression="IPSText::striptags( IPSText::htmlspecialchars( $data[0] ) )"}' itemprop="url"></if><span itemprop="title">{$data[0]}</span><if test="closenavigationlink:|:$data[1]"></a></if> </li> <if test="forsuredidfirstnav:|:$this->did_first=1"></if> </foreach> </ol> </div><!-- /secondary_navigation --> <br /> </if> </if> Там нет нужды два раза проверять это <if test="countnav:|:count( $items['navigation'] )>=0">
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.