ps-simpla Опубликовано 10 февраля, 2015 Жалоба Поделиться Опубликовано 10 февраля, 2015 Как решить такую задачкуКак вывести категорию под id=8 и ее подкатегории? {if $page->menu_id == '3'} Тут все категория id=8 с подкатегориями {/if} Суть в чем когда я нахожусь на одной из страниц меню под id=3, то что бы показал блок с категорией id=8 P.S. перечислять id категории не предлагать, так как категории будут постоянно меняться. Цитата Ссылка на сообщение Поделиться на другие сайты
Lee Опубликовано 10 февраля, 2015 Жалоба Поделиться Опубликовано 10 февраля, 2015 Через плагин мене кажется самое подходящее решение. Пишите плагин для выбора категории по id и вызываете где надо и когда надо. Цитата Ссылка на сообщение Поделиться на другие сайты
ps-simpla Опубликовано 11 февраля, 2015 Автор Жалоба Поделиться Опубликовано 11 февраля, 2015 <ul class="category_page {if$page->menu_id == '0'}cat{elseif $page->menu_id == '1'}cat{/if}_{$c->id}"> <li class="widget-container"> <h2 class="widget-title">{$c->name} </h2> {if $c->subcategories} <ul id="nav_list_second"> {categories_tree categories=$c->subcategories level=$level+1} </ul> {/if} </li> </ul> {literal} <style> .category_page {display: none;} .category_page.cat_6 {display: block !important;} .category_page.cat_7 {display: block !important;} </style> {/literal} Простое решение)))Изначально все категории скрытыКогда я нахожусь на странице из меню id=0 то покажется блок с категориями id=6 Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 Можно и так. Но как у всякого решения - есть плюсы и минусы.Не вижу разницы как определять категорию - через Смарти или через стили.Писать отдельный плагин под вывод категории - возможно, но, с моей точки зрения - не оптимально.Я бы обошел все категории в шаблоне, и вывел именно то, что нужно. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 А вообще какой-то бредовый топик, перепутано все: категории, страницы и т.д.Как они вообще пересекаются?Код будет работать ТОЛЬКО если есть у всех страниц с $page->menu_id == '1' откуда-то взялась категория.Чего обычно никогда не бывает.Причем не $category а $c, которая вообще непонятно откуда взялась.В стандартном движке такая переменная встречается только внутри циклов. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 11 февраля, 2015 Жалоба Поделиться Опубликовано 11 февраля, 2015 {if$page->menu_id == '0'}cat{elseif $page->menu_id == '1'}cat{/if}_{$c->id}Это отдельный вопрос, во-первых, такой код должен выдать ошибку.Во-вторых, даже если он отработает, на страницах с $page->menu_id == '0' и $page->menu_id == '1' будет ОДИНАКОВО cat_{$c->id}, на остальных - _{$c->id} Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kors Опубликовано 12 февраля, 2015 Решение Жалоба Поделиться Опубликовано 12 февраля, 2015 (изменено) А вообще какой-то бредовый топик, перепутано все: категории, страницы и т.д.Как они вообще пересекаются?Код будет работать ТОЛЬКО если есть у всех страниц с $page->menu_id == '1' откуда-то взялась категория.Чего обычно никогда не бывает.Причем не $category а $c, которая вообще непонятно откуда взялась.В стандартном движке такая переменная встречается только внутри циклов. Для Вас, возможно, бредовый. А у ТС, видимо, нестандартный функционал. Если бы речь шла о стандартном, вопроса бы и не было... Ps-simpla™, зачем Вы все так искусственно усложняете? Почему бы не сделать просто и прямо: 1. В нужном view определить, если требуется if ($page->menu_id == 3){ $category8=$this->categories->get_category(8); $this->design->assign('category8', $category8); } 2. В шаблоне {if $category8} <ul class="category_page"> <li class="widget-container"> <h2 class="widget-title">{$category8->name} </h2> {if $category8->subcategories} <ul id="nav_list_second"> {categories_tree categories=$category8->subcategories} </ul> {/if} </li> </ul> {/if} Это работает, если эта вставка в шаблоне находится ПОСЛЕ стандартного определения функции categories_tree.Если в Вашей ситуации не так, то дополнительные меры принять придется: надо до вызова добавить определение функции - этой же или копии... Изменено 16 февраля, 2015 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
ps-simpla Опубликовано 15 февраля, 2015 Автор Жалоба Поделиться Опубликовано 15 февраля, 2015 Ps-simpla™, зачем Вы все так искусственно усложняете? всегда у меня так, пользуюсь не стандартными решениями Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 16 февраля, 2015 Жалоба Поделиться Опубликовано 16 февраля, 2015 (изменено) 1. В нужном view определить, если требуется {if $page->menu_id == '3'} $category8=$this->categories->get_category(8); $this->design->assign('category8', $category8); {/if} Корс, я думаю немного спутали смарти и php... Исправте пока вопросы не начались Изменено 16 февраля, 2015 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 16 февраля, 2015 Жалоба Поделиться Опубликовано 16 февраля, 2015 (изменено) ps-simpla, решение что я описал Вам тут так же подойдет и для этого... {if isset($all_categories[8]) && $page->menu_id == '3'} <ul class="category_page"> <li class="widget-container"> <h2 class="widget-title">{$all_categories[8]->name} </h2> {if $all_categories[8]->subcategories} <ul id="nav_list_second"> {categories_tree categories=$all_categories[8]->subcategories} </ul> {/if} </li> </ul> {/if} Изменено 16 февраля, 2015 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 16 февраля, 2015 Жалоба Поделиться Опубликовано 16 февраля, 2015 Корс, я думаю немного спутали смарти и php... Исправте пока вопросы не начались Спасибо, исправил. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.