komolov87 Posted December 28, 2019 Report Share Posted December 28, 2019 Добрый день. Есть страницы, которые относятся к меню под 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} ВОПРОС: Есть ли способ указать условия, чтобы каждое меню выводилось только на тех страницах, которые относятся к этому меню. Quote Link to post Share on other sites
shooroop Posted December 28, 2019 Report Share Posted December 28, 2019 зачем извращаться если есть это http://forum.simplacms.ru/topic/4310-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8E/ Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 зачем извращаться если есть это http://forum.simplacms.ru/topic/4310-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE-%D0%BC%D0%B5%D0%BD%D1%8E/ Вопрос не в добавлении новых меню из админки.Вопрос как выводить соответствующее меню только на тех страницах, которые есть в этом меню. То есть если делаю вывод меню id 1, чтобы он отображался только на тех страницах, которые входят в это меню, а не везде, где используется шаблон page.tpl Quote Link to post Share on other sites
shooroop Posted December 28, 2019 Report Share Posted December 28, 2019 {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} так что ли? Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 {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} {/если} Quote Link to post Share on other sites
shooroop Posted December 28, 2019 Report Share Posted December 28, 2019 (edited) как у вас реализовано главное меню в бд? если вы просто ограничители вывод условием в шаблоне то этого мало для сортировки меню. Edited December 28, 2019 by shooroop Quote Link to post Share on other sites
phukortsin Posted December 28, 2019 Report Share Posted December 28, 2019 Может, так Вам надо:{if $p->menu_id == $page->menu_id} Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 как у вас реализовано главное меню в бд? если вы просто ограничители вывод условием в шаблоне то этого мало для сортировки меню.Стандартный функционал Симплы, без изменений. Quote Link to post Share on other sites
shooroop Posted December 28, 2019 Report Share Posted December 28, 2019 (edited) Стандартный функционал Симплы, без изменений. в стандартном функционале есть только одно меню это {* Выводим только страницы из первого меню *}{if $p->menu_id == 1} и никакх других.Если вы хотите другие меню и их сортировку то я вам ссылку выше привел на создание других меню Edited December 28, 2019 by shooroop Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 (edited) .в стандартном функционале есть только одно меню это {* Выводим только страницы из первого меню *}{if $p->menu_id == 1} и никакх других.Если вы хотите другие меню и их сортировку то я вам ссылку выше привел на создание других меню В одной и той же области выводятся меню с разным id в зависимости от того, на какой странице я нахожусь.Если нахожусь наСтраница 1-1, Страница 1-2, которые относятся к Меню 1, я вижу Меню 1Если нахожусь наСтраница 2-1, 2-2 или 2-3, то вижу Меню 2. Вопрос именно в том, каким условием проверять в какому меню относится страница, чтобы после уже делать вывод данного меню! Надеюсь, так наглядно объяснил. Edited December 28, 2019 by komolov87 Quote Link to post Share on other sites
shooroop Posted December 28, 2019 Report Share Posted December 28, 2019 (edited) как у вас обозначается меню? к примеру страница с id1 обозначается $page->id == 1 а ваше меню? Edited December 28, 2019 by shooroop Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 как у вас обозначается меню?Основное менюДругие страницыУслугиМеню подвал Два последних добавлены через базу данных Пункт в админке "Страницы" Quote Link to post Share on other sites
phukortsin Posted December 28, 2019 Report Share Posted December 28, 2019 в стандартном функционале есть только одно меню Это не так. Увидеть ДВА можно, например, на демо: http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=1 http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=2 Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 Это не так. Увидеть ДВА можно, например, на демо:http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=1http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=2Вот и я о том же. Какая разница сколько меню, если это к вопросу не относится.Все стандартно, никаких изменений в симпла. Мне кажется максимально подробно описал, что хотелось бы получить, как сейчас делаю, а как хотелось бы. Тут же вопрос задания правильного условия отображения меню, а не сколько меню. Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 как у вас обозначается меню? к примеру страница с 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 Quote Link to post Share on other sites
komolov87 Posted December 28, 2019 Author Report Share Posted December 28, 2019 как у вас обозначается меню? к примеру страница с id1 обозначается $page->id == 1 а ваше меню? Специально для Вас, чтобы не акцентировали внимание на этом Quote Link to post Share on other sites
shooroop Posted December 29, 2019 Report Share Posted December 29, 2019 Вопрос именно в том, каким условием проверять в какому меню относится страница, чтобы после уже делать вывод данного меню! Надеюсь, так наглядно объяснил. Делайте тогда как Владимир написал {if $p->menu_id == $page->menu_id} Это не так. Увидеть ДВА можно, например, на демо:http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=1http://demo.simplacms.ru/simpla/index.php?module=PagesAdmin&menu_id=2 да но с айди 2 на фрондэнде никак не задействована Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.