iserg

Добавить в меню ссылку «Главная» для всех внутренних страниц

Recommended Posts

Подскажите пожалуйста как в главное меню (для всех страниц, кроме главной) мне добавить кнопку-ссылку "Главная" со ссылкой на главную страницу, понимаю, что это как-то через if сделать можно, но нигде ничего подобного не нашел ни в доках ни на форуме.

 

Можно конечно главная выводить на всех страницах, а на главной через css скрывать ссылку «Главная», но как-то не правильно это.

Поделиться сообщением


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

в само меню? тогда какое? или перед выводом меню?

как вариант:  

{if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" eq '/'}        <!--  вывод только на Главной -->{else}{/if}

Поделиться сообщением


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

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

В общем тут скорее частное решение получится, а не какое-то общее. Что у вас за шаблон?

Поделиться сообщением


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

Тут может зависеть от шаблона. 

поэтому и три знака ? )))

Поделиться сообщением


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

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

Поделиться сообщением


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

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

{if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" eq '/'}  <!--  вывод только на Главной -->{else}  <!--  вывод на других стр. -->{/if}

или

{if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" neq '/'}  <!--  вывод на стр. кроме Главной -->{/if}

Поделиться сообщением


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

заметил небольшой глюк - если в шаблоне реалия воспользоваться блоком фильтра справа, то Главная не появляется

адресная строка приобретает вид

?topic_id=0&region_id=0&city_id=0&street_id=1247

 

пробовал убрать ? в

{if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" neq '/'}

ругается

Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 4 in /third/smarty/plugins/modifier.regex_replace.php on line 32

Поделиться сообщением


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

строка приобретает вид

?topic_id=0&region_id=0&city_id=0&street_id=1247

перед ? вообще-то стоит ещё /

 

 

пробовал убрать ? в

{if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" neq '/'}

ругается

Warning: preg_replace(): Compilation failed: unmatched parentheses at offset 4 in /third/smarty/plugins/modifier.regex_replace.php on line 32

естественно, зачем же регулярку ломать.

Поделиться сообщением


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

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

Поделиться сообщением


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

всё, что после / и есть внутр.стр., данная регулярка именно это и проверяет

перечитайте третий пост.

вы хотите чтобы этот пункт выводился динамически в самом меню в зависимости от этого условия ? или в зависимости от страницы? или как-то по другому ?

Поделиться сообщением


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

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

 

адресная строка (страница результатов) приобретает такой вид к примеру:

www.site.ru/?topic_id=0&region_id=5&city_id=0&street_id=1247
 

Регулярка выше это не дает. Пробовал знак вопроса убрать в {if $smarty.server.REQUEST_URI|regex_replace:"/\?(.*)/":"" neq '/'} - ругается.

Поделиться сообщением


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

но ведь в шаблоне Realia уже есть ссылка в меню "Главная" (в самом верху на тёмном фоне)...надо ещё одну кнопку?

Поделиться сообщением


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

Я так понимаю, что назревает время для рождения функции "А на главной ли я?" в системных возможностях)))

 

По сути. Главная - это когда урл запроса отсутствует и параметров в запросе после знака вопроса нет. Должно быть достаточно.

место: /template/frontend/realia/main/main.php

внутри private function getTemplateMenu()

После строки

$structure=$SM->loadCategoryStructure($this->getConfigValue('use_topic_publish_status'));

добавляем

$REQUESTURIPATH=Sitebill::getClearRequestURI();if($REQUESTURIPATH!='' || !empty($_GET)){$indexes=array_keys($structure['catalog']);sort($indexes);$new_index=end($indexes)+1;$structure['catalog'][$new_index]=array('url'=>$this->getServerFullUrl(), 'name'=>'Главная');array_unshift($structure['childs'][0], $new_index);}

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

Поделиться сообщением


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

для realia вполне рабочий вариант....только из breadcrumb тогда убрать двойника.

Поделиться сообщением


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

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас