Андрей Сухомозгий

Андрей Сухомозгий

Был в сети 23 октября 2018, 08:25
Заказы принимаю
отдельный сниппет готовит список id товаров у которых одинаковый тэг… Я делаю облако тэгов и при клике на отдельный тег хочу получать список товаров, у которых он есть. Может я действительно не понимаю чего-то, но разве «из коробки» можно mFilter'ом так делать?
Это сниппет msTags:
<?php
$key = 'tags'; // имя опции товара
$category = 0; // фильтрация по категории
$param1 = $_GET['tag'];

$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => $key, 'msProductOption.value'=> $param1));
$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'])) ;

}
$modx->runsnippet('pdoResources', array('parents'=>3,'resources'=>$result));
На принимающей странице вот это:
[[msTags?]]

А get параметр передается вот так:
[[!msOptions?name=`tags`&tplOuter=`@INLINE <p><strong>Tags:</strong> [[+rows]]</p>`&tplRow=`@INLINE <a href="tags?tag=[[+value]]">[[+value]]</a> `]]
вот это:
<article class="news-item page-row has-divider clearfix row">       
    <figure class="thumb col-md-2 col-sm-3 col-xs-4">
        <img class="img-responsive" src="[[+tv.newsPic]]" alt="" />
    </figure>
    <div class="details col-md-10 col-sm-9 col-xs-8">
        <span class="label label-theme"><i class="fa fa-clock-o"></i>[[+publishedon:dateAgo]]</span>
        <h3 class="title"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
        [[+introtext]]
        <a class="btn btn-theme read-more" href="[[~[[+id]]]]">Подробнее<i class="fa fa-chevron-right"></i></a>
    </div>
</article>