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

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

Просто так в шаблоне, кажется, нет готовых средств для этого.

Можно заготовить нужные данные заранее в PHP по аналогии, например,  с ProductsView.php,  и потом выводить.

Либо извлекать нужное, если требуется для многих категорий, с помощью api/Categories.php.

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

Друзья как в симпле вывести конкретную категорию по 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 категории которую нужно вывести 

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

Этот способ работает далеко не всегда.

Например, если категория с id=1 лежит во втором уровне, то она не покажется...

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

И сам по себе большой перебор ради одной категории - и не экономно, и не красиво...

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

/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 - будет наша категория

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

Самое простое это прописать ссылку на эту категорию и не запариваться. Нет ни каких допилов и кроме шаблона ни куда не нужно. все зависит от того как вы хотите применять решение.

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

yr4ik, спасибо, простенькое элегантное решение.
 
Маленькая поправка. В точности так, как написано, по id работать не будет.
Надо писать чуточку иначе

{get_categories category=3 var="mycat"}
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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