Контроллеры в клиентском разделе

#
Re: Контроллеры в клиентском разделе
Если находимся в группе или в корне, то значение Core_Page::instance()->object->item будет 0?
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
#
Re: Контроллеры в клиентском разделе
будет NULL
#
Re: Контроллеры в клиентском разделе
То что введены контроллеры, пока что не привычно, но думаю это дело времени.
Каким образом осуществлять проверки на получение id магазина? Раньше можно было через простой isset, а теперь?
Цитата:
if (isset(Core_Page::instance()->object->getEntity()->id))
{
... выполняются собственные скрипты
}


Также интересует проверка на ID узла структуры. Например, если он равен 123.
Модератор
#
Re: Контроллеры в клиентском разделе
CCron писал(а):
То что введены контроллеры, пока что не привычно, но думаю это дело времени.
Полагаю Вы очень скоро оцените гибкость и удобство их использования. От старых методом ShowXXX они не сильно отличаются по общему назначению.
CCron писал(а):
Каким образом осуществлять проверки на получение id магазина? Раньше можно было через простой isset, а теперь?

http://www.hostcms.ru/forums/2/7122/page-5/
Второе сообщение с верху получение группы и товара. Сам ИС так:
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Informationsystem_Controller_Show')
{
$oInformationsystem = Core_Page::instance()->object->getEntity();
}


CCron писал(а):
Также интересует проверка на ID узла структуры. Например, если он равен 123.

Константа CURRENT_STRUCTURE_ID так и осталась. Также текущий объект структуры в клиентском разделе можно получить еще и так:
$oStructure = Core_Page::instance()->structure;
#
Re: Контроллеры в клиентском разделе
А как в макете вытащить значения определенных допсвойств для текущего инфоэлемента?
И просто для некоего инфоэлемента по ID?
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
#
Re: Контроллеры в клиентском разделе
dogstudio,
см. соседнюю тему
Модератор
#
Re: Контроллеры в клиентском разделе
Отображение информации о пользователе центра администрирования, создавшего ИЭ


Вариант 1:

class Informationsystem_Item_Observer
{
   static public function onBeforeGetXml($object, $args)
   {
      $object->addEntity(
            $object->User
         );
   }
}

// Add informationsystem_item observer
Core_Event::attach('informationsystem_item.onBeforeGetXml', array('Informationsystem_Item_Observer', 'onBeforeGetXml'));


Вариант 2:

class My_Informationsystem_Controller_Show extends Informationsystem_Controller_Show
{
   public function applyItemsForbiddenTags($oInformationsystem_Item)
   {
      if ($oInformationsystem_Item->user_id)
      {
         $oInformationsystem_Item->addEntity(
            $oInformationsystem_Item->User
         );
      }
         
      return parent::applyItemsForbiddenTags($oInformationsystem_Item);
   }
}

$Informationsystem_Controller_Show = new My_Informationsystem_Controller_Show($oInformationsystem);
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Контроллеры в клиентском разделе
Можно ли добавить в xml для списка элементов ИС для каждого informationsystem_item элемент со значением длины поля text.
   $Informationsystem_Controller_Show->informationsystemItems()
      ->queryBuilder()
      ->select(array('CHAR_LENGTH(informationsystem_items.text)', 'text_length');
не проходит: Exception: The property 'text_length' does not exist in the model 'informationsystem_item'.
Модератор
#
Re: Контроллеры в клиентском разделе
velest-studio писал(а):
Можно ли добавить в xml для списка элементов ИС для каждого informationsystem_item элемент со значением длины поля text.

Все верно, нет св-ва у модели, в которое Вы пытаетесь что-то записать. Нужно использовать другой путь через события.
#
Re: Контроллеры в клиентском разделе
Вроде бы записи как раз и нет, только выборка. Посоветуйте, пожалуйста, как реализовать выборку такого "виртуального" поля из таблицы через события?
Авторизация