Перейти к содержимому


Фото
- - - - -

Вывод страниц меню по id

id меню меню страницы

  • Чтобы отвечать, сперва войдите на форум
16 ответов в теме

#1 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 13:19

Добрый день.

 

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

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

 

 



#2 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 28.12.2019 - 14:47

зачем извращаться если есть это http://forum.simplac...ительного-меню/



#3 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 15:59

зачем извращаться если есть это http://forum.simplac...ительного-меню/

 

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

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

 

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



#4 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 28.12.2019 - 16:54

{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}

 

так что ли?
 



#5 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 17:03

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

 

 

 



#6 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 28.12.2019 - 17:20

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

 

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


Изменено: shooroop, 28.12.2019 - 17:24


#7 phukortsin

phukortsin
  • Фрилансер
  • 1 044 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 28.12.2019 - 17:31

Может, так Вам надо:

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



#8 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 17:34

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

 

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

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



#9 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 28.12.2019 - 17:40

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

 

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

 

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

 

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

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


Изменено: shooroop, 28.12.2019 - 17:41


#10 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 18:01

.


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

 

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

 

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

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

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

Изменено: komolov87, 28.12.2019 - 18:01


#11 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 28.12.2019 - 18:07

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

 

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


Изменено: shooroop, 28.12.2019 - 18:08


#12 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 18:09

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

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

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

Услуги

Меню подвал

 

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



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



#13 phukortsin

phukortsin
  • Фрилансер
  • 1 044 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 28.12.2019 - 20:32

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

 
Это не так. Увидеть ДВА можно, например, на демо:
http://demo.simplacm...Admin&menu_id=1
http://demo.simplacm...Admin&menu_id=2

#14 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 20:37

 
Это не так. Увидеть ДВА можно, например, на демо:
http://demo.simplacm...Admin&menu_id=1
http://demo.simplacm...Admin&menu_id=2

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

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

 

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

 

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



#15 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 20:44

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

 

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



#16 komolov87

komolov87
  • Пользователь
  • 11 сообщений
  • Дизайн
  • Откуда:Кострома

Опубликовано 28.12.2019 - 20:51

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

 

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

 

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

 

defd10e4d545.jpg
 

 



#17 shooroop

shooroop
  • Фрилансер
  • 1 080 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Antarktida

Опубликовано 29.12.2019 - 03:34

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

 

 

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

 

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



 
Это не так. Увидеть ДВА можно, например, на демо:
http://demo.simplacm...Admin&menu_id=1
http://demo.simplacm...Admin&menu_id=2

 

 

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







Также с меткой «id меню, меню, страницы»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых