Перейти к содержимому


Фото
- - - - -

Вывести Свойства товаров по id категории

категории свойства опции

  • Чтобы отвечать, сперва войдите на форум
10 ответов в теме

#1 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 25.11.2014 - 19:55

Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне 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), не зависимо от текущей категории
Заранее спасибо


#2 Gregar

Gregar
  • Пользователь
  • 111 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 25.11.2014 - 21:45

Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне 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}


#3 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 25.11.2014 - 22:00

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

 

{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.



#4 Gregar

Gregar
  • Пользователь
  • 111 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 25.11.2014 - 22:36

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

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



#5 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 25.11.2014 - 22:40

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

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



#6 yr4ik

yr4ik
  • Фрилансер
  • 932 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 26.11.2014 - 01:07

Сделайте по аналогии: http://forum.simplac...рии/#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 я использовал для получения ее ида по урл

#7 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 26.11.2014 - 13:41

Сделайте по аналогии: http://forum.simplac...рии/#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



#8 yr4ik

yr4ik
  • Фрилансер
  • 932 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 26.11.2014 - 17:59

	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);
	}

 

 



#9 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 26.11.2014 - 21:50

	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);
	}

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



#10 Jeka1304

Jeka1304
  • Пользователь
  • 6 сообщений

Опубликовано 26.11.2014 - 23:30

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

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



#11 yr4ik

yr4ik
  • Фрилансер
  • 932 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:Украина Чернигов

Опубликовано 27.11.2014 - 00:59

Ну в цикле шаблона - проверяйте опцию по значению или иду....






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых