Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый день.

 

Есть страницы, которые относятся к меню под 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} 

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

 

 

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

 

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

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

 

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

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

{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}
{/если}

 

 

 

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

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

 

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

Изменено пользователем shooroop
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

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

 

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

 

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

{if $p->menu_id == 1}

 

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

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

Изменено пользователем shooroop
Ссылка на сообщение
Поделиться на другие сайты
.


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

 

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

 

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

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

839c63780a56t.jpg
 
В одной и той же области выводятся меню с разным id в зависимости от того, на какой странице я нахожусь.
Если нахожусь на
Страница 1-1, Страница 1-2, которые относятся к Меню 1, я вижу Меню 1
Если нахожусь на
Страница 2-1, 2-2 или 2-3, то вижу Меню 2.
 
Вопрос именно в том, каким условием проверять в какому меню относится страница, чтобы после уже делать вывод данного меню!
 
Надеюсь, так наглядно объяснил. 
Изменено пользователем komolov87
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Изменено пользователем shooroop
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Услуги

Меню подвал

 

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

 

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

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

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

 

Это не так. Увидеть ДВА можно, например, на демо:

http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=1

http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=2

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

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

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

 

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

 

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

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

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

 

к примеру страница с 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

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

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

 

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

 

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

 

 

 

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

 

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

 

 

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

 

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

 

 

 

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...