Как показать боковое меню только в категориях Интернет магазина?

#
Как показать боковое меню только в категориях Интернет магазина?
Здравствуйте! Есть левое меню "МагазинГруппыТоваровНаГлавнойСайт2" и его нужно вывести только в категориях.  Т.е. это меню НЕ должно показывается в корне и карточке товара ИМ . Как можно это реализовать?
#
Re: Как показать боковое меню только в категориях Интернет магазина?
Поместите вызов меню в соответствующее условие  http://www.hostcms.ru/documentation/step-by-step/templates/Core_Page/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как показать боковое меню только в категориях Интернет магазина?
llirik, а как это применить в этом коде?


<?php
if (Core::moduleIsActive('shop'))
{
   $shopId = Core_Array::get(Core_Page::instance()->widgetParams, 'shopId');
   $xsl = Core_Array::get(Core_Page::instance()->widgetParams, 'xsl');

   $Shop_Controller_Show = new Shop_Controller_Show(
      Core_Entity::factory('Shop', $shopId)
   );

   if (is_object(Core_Page::instance()->object)
   && get_class(Core_Page::instance()->object) == 'Shop_Controller_Show')
   {
      $Shop_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
         ->name('current_group_id')
         ->value(intval(Core_Page::instance()->object->group))
      );
   }

   $Shop_Controller_Show
      ->xsl(
         Core_Entity::factory('Xsl')->getByName($xsl)
      )
      ->groupsMode('all')
      ->limit(0)      
      ->calculateTotal(FALSE)
      ->viewed(FALSE)
      ->show();
}


#
Re: Как показать боковое меню только в категориях Интернет магазина?
Поместите этот код в нужное вам условие http://php.net/manual/ru/control-structures.if.php
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как показать боковое меню только в категориях Интернет магазина?
llirik, я знаю как оборачивать))) Просто какая строчка проверяет и как? Даже если весь код взять, то как это должно выглядеть?
if (is_object(Core_Page::instance()->object->group) !=0)
Или как?
Понять не могу как проверку выполняет именно эта иструкция http://www.hostcms.ru/documentation/step-by-step/templates/Core_Page/
#
Re: Как показать боковое меню только в категориях Интернет магазина?
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Shop_Controller_Show'
&& Core_Page::instance()->object->group > 0)
{
// ..
}
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Как показать боковое меню только в категориях Интернет магазина?
llirik, ааа..вот как. Спасибо. А со страницей товара как быть?
#
Re: Как показать боковое меню только в категориях Интернет магазина?
llirik, а так не работает.
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Shop_Controller_Show'
&& Core_Page::instance()->object->group > 0)


Работает вот так:
if (Core::moduleIsActive('shop') && Core_Page::instance()->object->group > 0)


Модератор
#
Re: Как показать боковое меню только в категориях Интернет магазина?
Значит у вас переопределенный контроллер Shop_Controller_Show используется в ТДС.
Ваш вариант неправильный, нет совершенно никакого смысла проверять на наличие модуля магазина.
#
Re: Как показать боковое меню только в категориях Интернет магазина?
HostCMS, это стандартный шаблон и стандартный код макета бокового меню ИМ


<?php

if (Core::moduleIsActive('shop') && Core_Page::instance()->object->group > 0)
{
   $shopId = Core_Array::get(Core_Page::instance()->widgetParams, 'shopId');
   $xsl = Core_Array::get(Core_Page::instance()->widgetParams, 'xsl');

   $Shop_Controller_Show = new Shop_Controller_Show(
      Core_Entity::factory('Shop', $shopId)
   );

   if (is_object(Core_Page::instance()->object)
   && get_class(Core_Page::instance()->object) == 'Shop_Controller_Show')
   {
      $Shop_Controller_Show->addEntity(
         Core::factory('Core_Xml_Entity')
         ->name('current_group_id')
         ->value(intval(Core_Page::instance()->object->group))
      );
   }

   $Shop_Controller_Show
      ->xsl(
         Core_Entity::factory('Xsl')->getByName($xsl)
      )
      ->groupsMode('all')
      ->limit(0)      
      ->calculateTotal(FALSE)
      ->viewed(FALSE)
      ->show();
   
}


Сейчас так и все работает. В корне меню не выводит. Нигде ошибку не выкинуло. Осталось понять как сделать проверку на страницу самого товара. Что если эта страница товара, то меню не выводить
Авторизация