Jump to content

Recommended Posts

Добрый день.

 

Есть страницы, которые относятся к меню под id 1:

1. Главная (id 1)

2. О компании (id 2)

3. Контакты (id 3)

 

И страницы, которые относятся к меню под id 2:

1. Оплата (id 4)

2. Доставка (id 5)

 

Вывод делается стандартным способом

{foreach $pages as $p}
    {* Выводим только страницы из первого меню *}
    {if $p->menu_id == 1}
	<li {if $page && $page->id == $p->id}class="selected"{/if}>
	    <a data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a>
	</li>
    {/if}
{/foreach}

 

Так как нужно выводить меню ID 1 только на страницах этого меню, 

сейчас использую условие 

{if in_array($page->id, array(1,2,3))} 
<КОД ВЫВОДА МЕНЮ>
{/if} 

ВОПРОС: Есть ли способ указать условия, чтобы каждое меню выводилось только на тех страницах, которые относятся к этому меню.

 

 

Link to post
Share on other sites

 

Вопрос не в добавлении новых меню из админки.

Вопрос как выводить соответствующее меню только на тех страницах, которые есть в этом меню.

 

То есть если делаю вывод меню id 1, чтобы он отображался только на тех страницах, которые входят в это меню, а не везде, где используется шаблон page.tpl

Link to post
Share on other sites

{if in_array($page->id, array(1,2,3))}

{if $p->menu_id == 1}

{if $p->id == 1 or $p->id ==2 or $p->id ==3}

 

....

 {/if}

 {/if}

 {/if}

 

так что ли?

 

Может я не правильно объясняю.

 

Смотрите

Есть ГЛАВНОЕ МЕНЮ с id 1 и в него входят страницы:

1. Главная

2. О компании

3. Контакты

 

Я хочу сделать вывод данного меню только на страницах:

1. Главная (id 1)

2. О компании (id 2)

3. Контакты (id 3)

 

Сейчас для того, чтобы выводились только на этих страницах, делаю проверку на id каждой страницы

то есть

 

{if in_array($page->id, array(1,2,3))}

{/if}

 

А спрашиваю о том, можно ли задать условие и если да, то как?

 

{Если страница, на которой мы находимся относится к ГЛАВНОЕ МЕНЮ с id 1}

{foreach $pages as $p}
{* Выводим только страницы из первого меню *}
{if $p->menu_id == 1}
    <li {if $page && $page->id == $p->id}class="selected"{/if}>
     <a data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a>
    </li>
{/if}
{/foreach}
{/если}

 

 

 

Link to post
Share on other sites

как у вас реализовано главное меню в бд?

 

если вы просто ограничители вывод условием в шаблоне то этого мало  для сортировки меню.

Edited by shooroop
Link to post
Share on other sites

как у вас реализовано главное меню в бд?

 

если вы просто ограничители вывод условием в шаблоне то этого мало  для сортировки меню.

Стандартный функционал Симплы, без изменений.

Link to post
Share on other sites

Стандартный функционал Симплы, без изменений.

 

в стандартном функционале есть только одно меню это

 

{* Выводим только страницы из первого меню *}

{if $p->menu_id == 1}

 

и никакх других.

Если вы хотите другие меню и их сортировку то я вам ссылку выше привел на создание других меню

Edited by shooroop
Link to post
Share on other sites
.


в стандартном функционале есть только одно меню это

 

{* Выводим только страницы из первого меню *}
{if $p->menu_id == 1}

 

и никакх других.

Если вы хотите другие меню и их сортировку то я вам ссылку выше привел на создание других меню

839c63780a56t.jpg
 
В одной и той же области выводятся меню с разным id в зависимости от того, на какой странице я нахожусь.
Если нахожусь на
Страница 1-1, Страница 1-2, которые относятся к Меню 1, я вижу Меню 1
Если нахожусь на
Страница 2-1, 2-2 или 2-3, то вижу Меню 2.
 
Вопрос именно в том, каким условием проверять в какому меню относится страница, чтобы после уже делать вывод данного меню!
 
Надеюсь, так наглядно объяснил. 
Edited by komolov87
Link to post
Share on other sites

как у вас обозначается меню?

Основное меню

Другие страницы

Услуги

Меню подвал

 

Два последних добавлены через базу данных

 

Пункт в админке "Страницы"

Link to post
Share on other sites

Вот и я о том же. Какая разница сколько меню, если это к вопросу не относится.

Все стандартно, никаких изменений в симпла.

 

Мне кажется максимально подробно описал, что хотелось бы получить, как сейчас делаю, а как хотелось бы.

 

Тут же вопрос задания правильного условия отображения меню, а не сколько меню.

Link to post
Share on other sites

как у вас обозначается меню?

 

к примеру страница с id1 обозначается $page->id ==  1 а ваше меню?

Уважаемый shooroop, если я указываю, что вывод меню идет стандартным кодом 

{foreach $pages as $p}
    {* Выводим только страницы из первого меню *}
    {if $p->menu_id == 1}
	<li {if $page && $page->id == $p->id}class="selected"{/if}>
	    <a data-page="{$p->id}" href="{$p->url}">{$p->name|escape}</a>
	</li>
    {/if}
{/foreach}

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

 

{if in_array($page->id, array(1,2,3))} 

{/if}

Это же означает, что делаю проверку на id страницы, то есть проверяю, если id страницы 1 или 2 или 3, то отображаю меню

и соответственно Страница с id 1 и есть $page->id ==  1

Link to post
Share on other sites

как у вас обозначается меню?

 

к примеру страница с id1 обозначается $page->id ==  1 а ваше меню?

 

Специально для Вас, чтобы не акцентировали внимание на этом

 

 

 

Link to post
Share on other sites

 

 
Вопрос именно в том, каким условием проверять в какому меню относится страница, чтобы после уже делать вывод данного меню!
 
Надеюсь, так наглядно объяснил. 

 

 

Делайте тогда как Владимир написал 

 

{if $p->menu_id == $page->menu_id}

 

 

 

да но с айди 2 на фрондэнде никак не задействована

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...