Теги для товаров по категориям
Добрый день!
Возникла необходимость в реализации тегов товара по категориям. Сами теги я вывел, но они выводятся все, т.е. облако тегов. А как их отфильтровать по категориям не пойму. Возможно кто-то уже делал, поделитесь пожалуйста решением. Есть категория, в ней товары. У этих товаров определенные теги. И так в каждой категории. Необходима фильтрация товаров по тегам в пределах этой категории. Надеюсь, понятно написал. Спасибо.
P.S. Вопрос в том, как вывести теги товаров из категории в которой находишься!
Возникла необходимость в реализации тегов товара по категориям. Сами теги я вывел, но они выводятся все, т.е. облако тегов. А как их отфильтровать по категориям не пойму. Возможно кто-то уже делал, поделитесь пожалуйста решением. Есть категория, в ней товары. У этих товаров определенные теги. И так в каждой категории. Необходима фильтрация товаров по тегам в пределах этой категории. Надеюсь, понятно написал. Спасибо.
P.S. Вопрос в том, как вывести теги товаров из категории в которой находишься!
Комментарии: 5
А теги чем делали?
Добрый день!
Стандартные теги товара. Вывод, вот этим сниппетом:
Стандартные теги товара. Вывод, вот этим сниппетом:
<?php
$tpl = 'tpl.Tag'; //чанк одного тега
$tags = array(); // массив тегов
$params = array();// массив параметров
$per = 100; // начальный % шрифта
$output=''; //вывод
$c = $modx->newQuery('msProductOption');
$c->where(array('key' => 'tags')); //берём значения тегов
$c->sortby('value','ASC');
$options = $modx->getCollection('msProductOption',$c);
foreach($options as $option){
$tags[] = $option->get('value');
}
$tags = array_count_values($tags); //подсчитываем сколько одинаковых
//выводим в чанк
foreach($tags as $tag => $count){
$params['tag'] = $tag;
$params['href'] = '?tag=' . $tag;
$params['fontsize'] = $per*$count;
$output .= $modx->getChunk($tpl,$params);
}
return $output;
может в сторону этого глянуть, как вариант
docs.modx.pro/komponentyi/minishop2/poleznyie-vyiborki/vyivod-kolichestva-tovarov-v-kategorii
или тут
bezumkin.ru/modx/minishop2/solutions/1160/
docs.modx.pro/komponentyi/minishop2/poleznyie-vyiborki/vyivod-kolichestva-tovarov-v-kategorii
или тут
bezumkin.ru/modx/minishop2/solutions/1160/
Да я бы с удовольствием, только не разберусь :) Я уже это все просматривал. Теги вывел, товары по клику на тег вывел, а вот как сгруппировать теги по категории не знаю. mSearch2 покупать из-за этого, не вариант.
Товары вывожу вот этим:
<?php
$tag = $_GET['tag'];
$key = 'tags'; // имя опции товара
$category = 0; // фильтрация по категории
$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => $key, 'msProductOption.value'=> $tag));
$q->sortby('msProductOption.value','ASC');
$q->select('DISTINCT(msProductOption.value), msProduct.id');
$q->where(array('msProductOption.key' => $key));
if (!empty($category)) {
$ids = $modx->getChildIds($category);
$ids[] = $category;
$q->innerJoin('msCategory', 'msCategory', 'msCategory.id=msProduct.parent');
$q->where(array('msCategory.id:IN' => $ids));
}
$result = array();
if ($q->prepare() && $q->stmt->execute()) {
while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$res['id'][] = $row['id'];
}
$result = implode(",", array_unique($res['id'])) ;
}
$params = array(
'element' => 'msProducts',
'includeThumbs' => '740x',
'parents' => 8,
'limit' => 9,
'tpl'=> 'msProduct',
'ajaxMode' => 'default',
'tplPageWrapper' => '@INLINE <ul class="pagination uk-pagination">{{+prev}}{{+pages}}{{+next}}</ul>',
'tplPageActive' => '@INLINE <li class="uk-active"><span>{{+pageNo}}</span></li>',
'resources' => $result
);
$output = $modx->runSnippet('pdoPage', $params);
return $output;
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.