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

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

Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне id категории.
сейчас в шаблоне выводится так:

{if $features}
            {foreach $features as $f}
            <ul class="option">
            <li class="title">{$f->name}</li>
                {foreach $f->options as $o}
                    <li {if $smarty.get.$f@key == $o->value}class="active"{/if}><a href="{url params=[$f->id=>$o->value, page=>null]}">{$o->value|escape}</a></li>
                {/foreach}
            </ul>
            {/foreach}
        {/if}
 
но данный код выводит свойства и параметры текущей категории, как бы сделать так, чтобы выводилось тоже самое, только той категории, которой я хочу(например ее id=13), не зависимо от текущей категории
Заранее спасибо
Ссылка на сообщение
Поделиться на другие сайты

 

Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне id категории.

сейчас в шаблоне выводится так:

{if $features}
            {foreach $features as $f}
            <ul class="option">
            <li class="title">{$f->name}</li>
                {foreach $f->options as $o}
                    <li {if $smarty.get.$f@key == $o->value}class="active"{/if}><a href="{url params=[$f->id=>$o->value, page=>null]}">{$o->value|escape}</a></li>
                {/foreach}
            </ul>
            {/foreach}
        {/if}
 
но данный код выводит свойства и параметры текущей категории, как бы сделать так, чтобы выводилось тоже самое, только той категории, которой я хочу(например ее id=13), не зависимо от текущей категории

Заранее спасибо

 

Заключите ваш код в это условие:

 

{if $category->id == 6}
{if $features}
            {foreach $features as $f}
            <ul class="option">
            <li class="title">{$f->name}</li>
                {foreach $f->options as $o}
                    <li {if $smarty.get.$f@key == $o->value}class="active"{/if}><a href="{url params=[$f->id=>$o->value, page=>null]}">{$o->value|escape}</a></li>
                {/foreach}
            </ul>
            {/foreach}
        {/if}
{/if}

 

Изменяя значение id == ** вы получите вывод свойств только определенной категории.

 

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

{if $category->id == 6 || $category->id == 7 || $category->id == 8} 
тут вставляем код который будет отображаться только в категориях с id 6,7,8 
{/if}
Ссылка на сообщение
Поделиться на другие сайты

 

Заключите ваш код в это условие:

 

{if $category->id == 6}
{if $features}
            {foreach $features as $f}
            <ul class="option">
            <li class="title">{$f->name}</li>
                {foreach $f->options as $o}
                    <li {if $smarty.get.$f@key == $o->value}class="active"{/if}><a href="{url params=[$f->id=>$o->value, page=>null]}">{$o->value|escape}</a></li>
                {/foreach}
            </ul>
            {/foreach}
        {/if}
{/if}

 

Изменяя значение id == ** вы получите вывод свойств только определенной категории.

 

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

{if $category->id == 6 || $category->id == 7 || $category->id == 8} 
тут вставляем код который будет отображаться только в категориях с id 6,7,8 
{/if}

Вы меня не совсем правильно поняли) я значит криво объяснил, условие нам позволяет выводить в определенных категориях( на которых сейчас находится пользователь. А мне надо примерно так:

я нахожусь в категории с id=13, и в ней же мне надо вывести свойства категории с id=6, id=7.

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

Вы меня не совсем правильно поняли) я значит криво объяснил, условие нам позволяет выводить в определенных категориях( на которых сейчас находится пользователь. А мне надо примерно так:

я нахожусь в категории с id=13, и в ней же мне надо вывести свойства категории с id=6, id=7.

Не совсем улавливаю логику. Если мы будем находится в категории с id13 и выведем там свойства товаров категорий с id6 и id7, как в этом случае должны фильтроваться товары? 

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

Не совсем улавливаю логику. Если мы будем находится в категории с id13 и выведем там свойства товаров категорий с id6 и id7, как в этом случае должны фильтроваться товары? 

да я просто делаю выпадающее меню :) с пунктами фильтра(свойства) и поэтому на определенный пункт меню мне надо вывести свойства этого пункта(категории), а страницы(категории) всегда разные :))

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

Сделайте по аналогии: http://forum.simplacms.ru/topic/8691-вывод-1-категории/#entry64926

 

Вот сама функция:


	function get_features_plugin($params, &$smarty){

                $features = array();

		if(!empty($params['category'])){
			$category = $this->categories->get_category($params['category']);
			if(!$category) return $features;
			$params['category_id'] = $category->id;
		}
	
		$features = $this->features->get_features($params);		

		if(!empty($params['var']))
			$smarty->assign($params['var'], $features);
	}
Если вам по ид, то используйте category_id. То переменную category я использовал для получения ее ида по урл
Ссылка на сообщение
Поделиться на другие сайты

 

Сделайте по аналогии: http://forum.simplacms.ru/topic/8691-вывод-1-категории/#entry64926

 

Вот сама функция:


	function get_features_plugin($params, &$smarty){

                $features = array();

		if(!empty($params['category'])){
			$category = $this->categories->get_category($params['category']);
			if(!$category) return $features;
			$params['category_id'] = $category->id;
		}
	
		$features = $this->features->get_features($params);		

		if(!empty($params['var']))
			$smarty->assign($params['var'], $features);
	}
Если вам по ид, то используйте category_id. То переменную category я использовал для получения ее ида по урл

Спасибо, работает!

только я не совсем  понял как вывести теперь опции свойств)) 

я так понял нужно копать в сторону get_options

Ссылка на сообщение
Поделиться на другие сайты
	function get_features_plugin($params, &$smarty){

                $features = array();

		if(!empty($params['category'])){
			$category = $this->categories->get_category($params['category']);
			if(!$category) return $features;
			$params['category_id'] = $category->id;
		}
	
		$features = $this->features->get_features($params);		
		foreach($features as &$f)
			$f->options = $this->features->get_options(array('feature_id'=>$f->id, 'visible'=>1));

		if(!empty($params['var']))
			$smarty->assign($params['var'], $features);
	}

 

 

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

 

	function get_features_plugin($params, &$smarty){

                $features = array();

		if(!empty($params['category'])){
			$category = $this->categories->get_category($params['category']);
			if(!$category) return $features;
			$params['category_id'] = $category->id;
		}
	
		$features = $this->features->get_features($params);		
		foreach($features as &$f)
			$f->options = $this->features->get_options(array('feature_id'=>$f->id, 'visible'=>1));

		if(!empty($params['var']))
			$smarty->assign($params['var'], $features);
	}

Спасибо большое, все работает как надо )))

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

а еще такой вопросик
возможно ли учитывать в выводе фильтр?)

просто есть одно свойство на несколько категорий, опции у этих свойств для каждой категории разные), а код выводит просто все опции которые есть)

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

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

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

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

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

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

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

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

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

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