Jump to content

Featured Replies

  • 1 месяц спустя...
  • Replies 55
  • Просмотров 15,4k
  • Created
  • Последний ответ

Лучшие авторы в теме

Most Popular Posts

  • Оригинальный код <!-- ::: NAVIGATION BREADCRUMBS ::: --> <if test="countnav:|:count( $items['navigation'] )"> <div id='secondary_navigation' class='clearfix'> &

  • .category_block .ipb_table h4:hover { color: #2b343c; text-decoration: underline; } Вот откуда ноги растут Вашего подчеркивания.

  • Ну стиль так себе, есть и лучше...   А скачать проще, чем кажется )  Премиум купи  

comment_45055

нашёл странный баг. ломал голову и не могу понять как его исправить.

при включении опции в разделе "настройки безопасности"

post-8225-0-66450800-1380963972_thumb.pn

 

вылезает странный дубликат в пути навигации ("хлебные крошки", breadcrumbs) при переходе на главную страницу с форумами (ну или же клик по лого)

post-8225-0-06813800-1380963969_thumb.pn

 

однако при переходе на другие элементы всё в порядке

post-8225-0-04784000-1380963972_thumb.pn

 

 

предпологаю, что загвозка в проверке условий... но я в этом не разбираюсь(

 

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

 





			<!-- ::: 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 by Lordbl4

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>

comment_45062

spoken, тогда на главной пропадает навигация

post-8225-0-86589400-1380968149_thumb.pn

 

но на других элементах меню есть

post-8225-0-85958000-1380968181_thumb.pn

 

Edited by Lordbl4

comment_45063

Что-то лишнее ты удалил. Тот кусок выводит только одну эту дурацкую ссылку и только в одном месте. Навигацию он не трогает.



Кажется я понял, там через else надо сделать.

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>



возможно ли именно на странице входа убрать лишний элемент навигации? если да, то как? отдельного шаблона страницы я не нашел

comment_45067

Шаблон страницы входа есть, но навигация в globalTemplate лежит. В дефольном стиле нет такого лишнего куска с URL форума. Что с отображением на главной в дефолтовом стиле?



Убери только это в условии и проверь

 

AND ( ipsRegistry::$current_section == 'boards' OR ! ipsRegistry::$current_section )

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>	

comment_45073

spoken, так для оригинального стиля и не предусмотрен верхний breadcumbs на главной, а в этом стиле - неотъемлемая часть

comment_45074

А что будет показывать breadcrumbs на главной? Ссылку на сам форум? Их и без этого там две - в логотипе и в слове "Форумы". Странная задумка и реализована некорректно. Править автору стиля надо было генератор breadcrumbs, а не изобретать велосипед из-за которого идёт такое дублирование. Короче, мне добавить нечего.

comment_45076

spoken, спасибо  :)

 

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

 

upd.

 

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

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

Edited by Lordbl4

comment_45077

У тебя теперь везде кроме форумов пишет в навигации просто "Войти"

LvsF может что подскажет, он спец.

Edited by spoken

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>
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. Руки бы автору поставить на место. Весь код перековеркал да еще метки поудалял.
comment_45103


Странная задумка и реализована некорректно.

1. В чем странность? Посмотрите на форумы версий ниже 3.2. Там есть навигация на главной. Только толку нет от нее.

2. Угу.

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 by Lordbl4

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>
				
			
comment_45113

LvsF, spoken, попробовал, всё отлично. спасибо вам огромное за проделанную работу.

 

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

post-8225-0-83852000-1380985991_thumb.pn

 

post-8225-0-81323200-1380985992_thumb.pn

 

 

 

 

 

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.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.