Jeka1304 Опубликовано 25 ноября, 2014 Жалоба Поделиться Опубликовано 25 ноября, 2014 Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне 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), не зависимо от текущей категорииЗаранее спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 25 ноября, 2014 Жалоба Поделиться Опубликовано 25 ноября, 2014 Здравствуйте, подскажите как реализовать вывод свойства товаров, указав в шаблоне 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} Цитата Ссылка на сообщение Поделиться на другие сайты
Jeka1304 Опубликовано 25 ноября, 2014 Автор Жалоба Поделиться Опубликовано 25 ноября, 2014 Заключите ваш код в это условие: {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. Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 25 ноября, 2014 Жалоба Поделиться Опубликовано 25 ноября, 2014 Вы меня не совсем правильно поняли) я значит криво объяснил, условие нам позволяет выводить в определенных категориях( на которых сейчас находится пользователь. А мне надо примерно так:я нахожусь в категории с id=13, и в ней же мне надо вывести свойства категории с id=6, id=7.Не совсем улавливаю логику. Если мы будем находится в категории с id13 и выведем там свойства товаров категорий с id6 и id7, как в этом случае должны фильтроваться товары? Цитата Ссылка на сообщение Поделиться на другие сайты
Jeka1304 Опубликовано 25 ноября, 2014 Автор Жалоба Поделиться Опубликовано 25 ноября, 2014 Не совсем улавливаю логику. Если мы будем находится в категории с id13 и выведем там свойства товаров категорий с id6 и id7, как в этом случае должны фильтроваться товары? да я просто делаю выпадающее меню с пунктами фильтра(свойства) и поэтому на определенный пункт меню мне надо вывести свойства этого пункта(категории), а страницы(категории) всегда разные ) Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 25 ноября, 2014 Жалоба Поделиться Опубликовано 25 ноября, 2014 Сделайте по аналогии: 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 я использовал для получения ее ида по урл Цитата Ссылка на сообщение Поделиться на другие сайты
Jeka1304 Опубликовано 26 ноября, 2014 Автор Жалоба Поделиться Опубликовано 26 ноября, 2014 Сделайте по аналогии: 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 Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 26 ноября, 2014 Жалоба Поделиться Опубликовано 26 ноября, 2014 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); } Цитата Ссылка на сообщение Поделиться на другие сайты
Jeka1304 Опубликовано 26 ноября, 2014 Автор Жалоба Поделиться Опубликовано 26 ноября, 2014 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); } Спасибо большое, все работает как надо ))) Цитата Ссылка на сообщение Поделиться на другие сайты
Jeka1304 Опубликовано 26 ноября, 2014 Автор Жалоба Поделиться Опубликовано 26 ноября, 2014 а еще такой вопросиквозможно ли учитывать в выводе фильтр?)просто есть одно свойство на несколько категорий, опции у этих свойств для каждой категории разные), а код выводит просто все опции которые есть) Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 26 ноября, 2014 Жалоба Поделиться Опубликовано 26 ноября, 2014 Ну в цикле шаблона - проверяйте опцию по значению или иду.... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.