Не выводить ярклыки вместе с оригиналом товара

#
Не выводить ярклыки вместе с оригиналом товара
У меня в группах выводятся все товары группы и её подгрупп. В разных подгруппах есть одни и те же товары, в одной настоящий, в остальных ярлыки (shortcut).
В результате в корневой группе выводятся абсолютно одинаковые товары. Как мне избавиться от них? вот шаблон

      <xsl:template match="shop_item">
         <div class="col-center-catalog-item">
            <div class="hint-catalog-small">
               <span class="text-hint red"  style="color:#FFF;">
                  <xsl:apply-templates select="property_value[tag_name='sort-mark']/value"/>
               </span>
            </div>
            <div class="col-left-catalog-item-pic"><a href="{url}">
                  
                  <xsl:if test="image_small != ''">
                     <img src="{dir}{image_small}" alt="{name}" title="{name}" />
                  </xsl:if>
                  <xsl:if test="image_small = ''">
                     <img src="templates/classiques/img/no-photo.jpg" alt="" style="height:92px;" />
                  </xsl:if>
            </a></div>
         <div class="col-left-catalog-item-head"><a href="{url}" title="{name}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></div>
            <xsl:if test="type=2">
               <p><xsl:value-of disable-output-escaping="yes" select="format-number(price * 0.1, '###0', 'my')"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="currency"/>
            за 100 гр.</p></xsl:if>
            <xsl:if test="type=0">
               <p><xsl:value-of disable-output-escaping="yes" select="format-number(price, '###0', 'my')"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="currency"/>
            за 1 уп.</p></xsl:if>
                              <xsl:comment>noindex</xsl:comment>

            <a class="btn pie btn-addToCart" href="{/shop/url}cart/?add={@id}" data-type="{type}">Купить</a>
                              <xsl:comment>/noindex</xsl:comment>

         </div>
      </xsl:template>


Задача элементарная, но я не могу найти место где мне взять массив, чтобы пройтись по нему и удалить дубликаты. В базе данных ярлык с товаром не имеют ничего общего. В общем я не понимаю как решить такую простейшую задачу в рамках hostcms. Помогите, пожалуйста.
Модератор
#
Re: Не выводить ярклыки вместе с оригиналом товара
fucker,
при нахождении в корне (контроллер->group == 0) делать ограничение на выборку товаров, где shortcut_id = 0
#
Re: Не выводить ярклыки вместе с оригиналом товара
Спасибо, направление понял. Но где мне такой код искать, чтобы условие поставить на контроллер->group==0? Вот моя динамическая страница ИМ
$Shop_Controller_Show = Core_Page::instance()->object;

$xslName = $Shop_Controller_Show->item
   ? Core_Array::get(Core_Page::instance()->libParams, 'shopItemXsl')
   : Core_Array::get(Core_Page::instance()->libParams, 'shopXsl');

$Shop_Controller_Show
   ->xsl(
      Core_Entity::factory('Xsl')->getByName($xslName)
   )
   ->specialprices(TRUE)
        ->itemsProperties(TRUE)
        ->groupsProperties(TRUE)
        ->itemsPropertiesList(TRUE)
   ->show();
Модератор
#
Re: Не выводить ярклыки вместе с оригиналом товара
fucker,
код нигде не искать, его писать нужно!
http://www.hostcms.ru/documentation/modules/core/controllers/

поставить код нужно перед блоком с ->show();

if ($Shop_Controller_Show->group == 0)
{
  $Shop_Controller_Show
    ->shopItems()
    ->queryBuilder()
    ->where('shortcut_id', '=', 0);
}
#
Re: Не выводить ярклыки вместе с оригиналом товара
Спасибо. Правда я нашёл всё-таки код, в файле lib_config_6.php и добавил ->where('shortcut_id', '=', 0) к выборке с нужным условием.
Вопросов больше нет.
#
Re: Не выводить ярклыки вместе с оригиналом товара
hostcms,
А если идет вывод товаров из подгрупп в каждой группе.
Например в группе есть 3 подгруппы и это не корневая группа,  в этих группах есть несколько ярлыков одного товара
И они выводятся вместе на одной странице, как построить выборку, чтобы ярлыки ограничивались только если мы не в конечной группе, если у группы есть подгруппы, ярлыки не выводить
#
Re: Не выводить ярклыки вместе с оригиналом товара
Например:
$oShop_Group = Core_Entity::factory('Shop_Group', $Shop_Controller_Show->group);
$aChildrenId = $oShop_Group->getGroupChildrenId(FALSE);


Если подгрупп нет то в $aChildrenId будет пустой массив.
«Не выходи из комнаты, не совершай ошибку…»
Авторизация