Как проверить страницу каталога?

#
Как проверить страницу каталога?
Здравствуйте!Как проверить страницу каталога? Внес изменения в ТДС ИМ, теперь товары выводятся под категориями (в которых они есть). В общем все как надо,но есть НО. В корне ИМ типа site.ru/catalog,где показываются все категории, под ними показываются все товары. Вот как задать в XSL условие,что если это НЕ корень ИМ,то показывать товары,а если корень то не показывать. Вывод я нашел,обернул if test,а дальше не знаю как написать проверку.

Код,который выводит товары под категориями:

class My_Shop_Controller_Show extends Shop_Controller_Show {
protected function _groupCondition() {
  if ($this->group) {
   $this
   ->shopItems()
   ->queryBuilder()
   ->join('shop_groups', 'shop_groups.id', '=', 'shop_items.shop_group_id', array(
   array('AND' => array('(')),
   array('' => array('shop_groups.parent_id', '=', $this->group)),
   array('OR' => array('shop_groups.id', '=', $this->group)),
   array('' => array(')'))
   )
   );
  } else {
   $this
   ->shopItems()
   ->queryBuilder();  
   }
  return $this;
}
}
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
$Shop_Controller_Show = new My_Shop_Controller_Show($oShop);


А вот то место,которое нужно обернуть:

<div class="row products-grid">
   <xsl:if test="Если не корень каталога">
      <xsl:apply-templates select="shop_item" />
   </xsl:if>
</div>


Заранее спасибо
#
Re: Как проверить страницу каталога?
Можете в ТДС сделать условие, если находимся в корне не выводить группы.

if ($Shop_Controller_Show->group == 0){
   $Shop_Controller_Show->groupsMode('none')
      ->group(FALSE);
}

http://www.hostcms.ru/documentation/step-by-step/templates/Core_Page/
http://www.hostcms.ru/api6/class-Shop_Controller_Show.html
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как проверить страницу каталога?
llirik, группы пусть остаются. Мне товары нужно прятать
#
Re: Как проверить страницу каталога?
llirik, сделал так,вроде работает как надо:

class My_Shop_Controller_Show extends Shop_Controller_Show {
protected function _groupCondition() {

  if ($this->group == 0) {
   $this
   ->shopItems()
   ->queryBuilder()
   ->join('shop_groups', 'shop_groups.id', '=', 'shop_items.shop_group_id', array(
   array('AND' => array('(')),
   array('' => array('shop_groups.parent_id', '=', $this->group)),
   array('OR' => array('shop_groups.id', '=', $this->group)),
   array('' => array(')'))
   )
   );
  } else {
   $this
   ->shopItems()
   ->queryBuilder();  
   }
  return $this;
}
}
$oShop = Core_Entity::factory('Shop', Core_Array::get(Core_Page::instance()->libParams, 'shopId'));
$Shop_Controller_Show = new My_Shop_Controller_Show($oShop);
#
Re: Как проверить страницу каталога?
llirik, а нет. Херню сотворил...теперь показываются все товары подряд
#
Re: Как проверить страницу каталога?
Можно на уровне XSL шаблона вывод товаров скрыть в корне магазина

<xsl:variable name="groupCur" select="ТекущаяГруппа"/>
<xsl:if test="$groupCur != 0">
    <xsl:apply-templates select="shop_item" />
</xsl:if>
skype: mcross82
#
Re: Как проверить страницу каталога?
Mcross, спасибо...примерно так и сделал.

<xsl:if test="$group != 0">
    <xsl:apply-templates select="shop_item" />
</xsl:if>
#
Re: Как проверить страницу каталога?
pd-art,
так неправильно будет, нагрузка будет на сайт
вот так лучше будет

if ($Shop_Controller_Show->group == 0){
    $Shop_Controller_Show->limit(0);
}
HostDev.pw - модули для HostCMS, Telegram: @hostdev
Авторизация