Foх Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 Друзья как в симпле вывести конкретную категорию по id?? Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 Просто так в шаблоне, кажется, нет готовых средств для этого.Можно заготовить нужные данные заранее в PHP по аналогии, например, с ProductsView.php, и потом выводить.Либо извлекать нужное, если требуется для многих категорий, с помощью api/Categories.php. Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 Друзья как в симпле вывести конкретную категорию по id?? {function name=categories_tree} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->id == 1} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} {if $c->id == 1} - указываем id категории которую нужно вывести Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 Этот способ работает далеко не всегда.Например, если категория с id=1 лежит во втором уровне, то она не покажется...Если несколько подправить, по можно заставить показаться более глубокие категории, но лишних тегов вокруг будет ужас сколько...И сам по себе большой перебор ради одной категории - и не экономно, и не красиво... Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 /view/View.php В конец класса View добавляем ф-ю: function get_categories_plugin($params, &$smarty){ $categories = array(); if(!empty($params['category'])){ $categories = $this->categories->get_category($params['category']); } if(!empty($params['var'])) $smarty->assign($params['var'], $categories); } Затем в конструкторе после строки: $this->design->smarty->registerPlugin("function", "get_discounted_products", array($this, 'get_discounted_products_plugin')); Добавляем: $this->design->smarty->registerPlugin("function", "get_categories", array($this, 'get_categories_plugin')); После этого взять нужную категорию в шаблоне будет: {get_categories category="ид или url" var="mycat"} Теперь в переменной $mycat - будет наша категория Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 Самое простое это прописать ссылку на эту категорию и не запариваться. Нет ни каких допилов и кроме шаблона ни куда не нужно. все зависит от того как вы хотите применять решение. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 ноября, 2014 Жалоба Поделиться Опубликовано 17 ноября, 2014 yr4ik, спасибо, простенькое элегантное решение. Маленькая поправка. В точности так, как написано, по id работать не будет.Надо писать чуточку иначе {get_categories category=3 var="mycat"} Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.