События (хуки)

Re: События (хуки)
попробовал так...ни чего не получается...
Модератор
Re: События (хуки)
qaswed,
обновление 6.0.5 установили? Тогда в поддержку.
Модератор
Re: События (хуки)
Скрытие полей форм центра администрирования через хуки: http://www.hostcms.ru/forums/2/7167/
Модератор
Re: События (хуки)
Вывод в XML товара цен для групп пользователей через хуки: http://www.hostcms.ru/forums/2/8157/
Re: События (хуки)
HostCMS писал(а):
Ограничение способа оплаты в зависимости от выбранного типа доставки (доступно с версии 6.0.6 или после повторной установки обновления 6.0.5). Код вносится в блок «case 3:» типовой дин. страницы корзины:


а как указать несколько платежных систем ?
Модератор
Re: События (хуки)
замените
if ($oShop_Delivery->id == 1)
на
if (in_array($oShop_Delivery->id, array(1,2,3)))
Re: Re: События (хуки)
                  // Добавляем способ оплаты только "Робокасса"
                  $object->clearEntities()
                     ->addEntity(
                        Core_Entity::factory('Shop_Payment_System', 9)


больше интересует как здесь указать несколько платежных систем
Модератор
Re: События (хуки)
несколько раз вызвать ->addEntity()
Модератор
Re: События (хуки)
Добавление обработчиков несуществующих методов модели (нужен ORM от версии 6.0.7, файл можно запросить в поддержке). Событие формируется по схеме имя_модели.onCallимя_метода, например для метода xxx() необходимо событие "shop_item.onCallxxx".
Может использоваться для добавления функции обратного вызова для вывода полей в центре администрирования или других целей.
Пример добавления вывода названия производителя в списке товаров.
1. Создаем поле формы центра администрирования для источника 1, указываем имя producer и тип "Функция обратного вызова".
2. В bootstrap.php добавляем обработчик метода
Core_Event::attach('shop_item.onCallxxx', array('Shop_Item_Observer', 'onCallproducer'));

3. Обработчик
class Shop_Item_Observer
{
   static public function onCallproducer($object, $args)
   {
      echo $object->Shop_Producer->name;
      return TRUE;
   }
}
Модератор
Re: События (хуки)
Пример вывода сообщения при создании товара с существующим артикулом.

1. Класс наблюдателя, размещаем его в modules/shop/item/marking.php

<?php

defined('HOSTCMS') || exit('HostCMS: access denied.');

class Shop_Item_Marking
{
   static public function onBeforeCreate($object, $args)
   {
      $oSetObject = $object->Shop->Shop_Items->getByMarking($object->marking);
      if(!is_null($oSetObject))
      {
         Core_Message::show('Товар с таким артикулом существует', 'error');
      }
   }
}


2. Добавляем наблюдателя в bootstrap.php

Core_Event::attach('shop_item.onBeforeCreate', array('Shop_Item_Marking', 'onBeforeCreate'));
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
Авторизация