🤟
Support Morozov&Pimnev
  • Введение
    • Покупка модуля
    • Версия модуля
    • Обновление модуля
    • Переустановить модуль
    • Оставить отзыв
    • Продление периода технической поддержки
    • Вопросы, поддержка и предложения
  • AmoCRM
    • Создание ключа интеграции
    • Установка модуля
    • Добавление сета настроек
    • Пользователи сайта
    • События (хуки)
    • Настройки
    • Планировщик задач
  • Bitrix24
    • Создание ключа интеграции
    • Установка модуля
    • Добавление сета настроек
    • События (хуки)
    • Настройки
    • Планировщик задач
  • MegaPost
    • Технические требования
    • Установка модуля
    • Создание ключа API
    • DaData
    • Настройки макета
    • Подключение XSL и ТДС
    • События (хуки) и др
    • Настройка MegaPost
      • СДЭК
      • Почта России
      • Boxberry
      • DPD
      • ПЭК
      • Деловые линии
      • Энергия
      • Яндекс GO
      • Мой склад [HostCMS]
    • MegaPost условия
    • Зависимые поля
    • Тип платежной системы
    • Карточка товара
    • Вывод карты ПВЗ
    • Выгрузка заказов в ЛК
    • Изменение названий тарифов
    • Город для расчета
    • Добавление доставки
    • Шаблон карточки заказа
    • MegaPost_Command_Controller
    • Работа с Яндекс картой (ymaps)
    • Обновление модуля
    • Отладка
    • Возможные ошибки
  • RetailCRM
    • Создание ключа доступа к API
    • Установка модуля
    • Добавление магазина
    • Экспорт товаров в RetailCRM через ICML
    • Настройка триггера для создания/обновления заказов из RetailCRM в HostCMS
    • Выгрузка ранее сделанных заказов в RetailCRM
    • События (хуки)
    • Настройки
    • Планировщик задач
  • Мультиязычность
    • Установка модуля
    • Создание ключа Яндекс.Облако
    • Настройка модуля
    • Создание языков
    • Настройка макета
    • Сущность язык
    • Настройка SEO заголовков
    • Настройка HREFLANG
    • Интернационализация в XSL-шаблонах
    • Интернационализация в макетах
    • Интернационализация в ТДС или собственных php файлах
    • Работа с объектами ORM
    • Sitemap
    • Хлебные крошки
    • Массовый перевод
  • Мультирегиональность
    • Установка модуля
    • Настройка модуля
    • Создание регионов
    • Настройки городов
    • Настройка макета
    • Работа с объектами ORM
    • Настройка SEO заголовков
    • Свои Яндекс/Google счетчики и другие скрипты для региона
    • Sitemap
    • Шорткоды
    • Импорт регионов
    • Версии элементов
    • Ограничение по складу
    • Morphos
    • Хлебные крошки
  • Умные фильтры
    • Установка модуля
    • Настройка модуля
    • Настройки макета
    • Подключение XSL и ТДС
    • Вывод фильтра
    • Sitemap
    • Типы свойств для фильтрации
    • Пресеты
    • SEO-фильтр
    • Производители
    • Виды сортировки
    • Свойства товара, доступные для группы товаров
  • Маркетинг
    • Установка модуля
    • Настройка модуля
    • Скидки от суммы заказа
    • Условия
      • Подарки
      • Купон в подарок
    • Приоритетность
  • Улучшенный выбор города
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Работа с объектами ORM
  • GeoIP
    • Установка модуля
    • Список сервисов
    • Настройка модуля
    • Проверка IP в ЦА
    • Работа с данными
    • Корзина
  • MegaImport
    • Технические требования
    • Установка модуля
    • Добавление импорта
      • Вкладка «Основные»
        • Тип импорта
        • Тип файла
      • Вкладка «Наценки»
      • Вкладка «Условия»
      • Вкладка «Расписание»
    • Модификации
    • Соответствие полей
    • Отчет импорта
    • Xpath
    • Планировщик задач
    • Возможные ошибки
  • MARKET
    • Установка шаблона
    • Настройка шаблона
    • Поиск
    • Google reCAPTCHA
    • Jivo чат
    • Яндекс.Метрика
      • Электронная коммерция
      • Цель: заказ
      • Цель: телефон/email
      • Цель: отправка форм
    • Настройки виджета
    • Дизайн: меню
    • Дизайн: главная
      • 👉 Сообщения
      • Главный баннер
      • Баннера на слайдере
      • Преимущества
      • Популярные категории
      • Популярные предложения
      • Выгодные предложения
      • Товары дня
      • Категории хиты
      • Баннер средний
      • Стоит приглядеться
      • Отзывы о нас
      • Последние новости
      • Рады видеть вас в нашем маркете
      • Вы ранее смотрели
      • Производители
      • Подписка
    • Дизайн: товары
      • Лейблы: Эксклюзив / Хиты продаж / Рекомендуем
      • Карточка товара
    • Дизайн: о компании
    • Социальные сети
    • Мессенджеры
    • Доп. модули
    • Обновление
  • Сборщик отзывов
    • Технические требования
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Планировщик задач
    • Отправка SMS
  • Подписка на товар
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Список подписок
    • Отчеты
    • Настройка XSL шаблона товара
    • Отправка SMS
  • Telegram Bot
    • Создание бота и ключа интеграции
    • Установка модуля
    • Настройка модуля
    • HTML style
    • Core_Meta
  • Telegram Bot v2
    • Создание бота и ключа интеграции
    • Установка модуля
    • Добавление магазина
    • TelegramBot пользователи
    • Подписка на уведомления
    • Авторизация
    • HTML style
    • Core_Meta
  • Брошенная корзина x2
    • Установка модуля
    • Настройка макета
  • 🔥Полезности
    • Сброс кэш изображений
    • Удобная авторизация в ЦА
    • Memcache*d
    • Core_Auth::logged()
    • Update хук
Powered by GitBook
On this page
  1. Полезности

Update хук

https://www.hostcms.ru/api7/classes/Update-Entity.html

PreviousCore_Auth::logged()

Last updated 1 year ago

Разместите код хука () в файле bootstrap.php

В массивах $aAdminForms и $aAdminFormActions настраиваются формы, их поля и действия, которые нужно удалить [delete] или модифицировать [update]

class My_Update_Observer
{
    static public function onAfterInstall($entity)
    {
        // Формы центра администрирования /admin/admin_form/index.php
        $aAdminForms = array(
            // удаление в корзину
            'delete' => array(
                // ID формы "Интернет-магазин, товары и группы"
                65 => array(
                    249, // ID поля "Комментарии"
                    250, // ID поля "Модификации"
                    600 // ID поля "Цифровые товары"
                ),
                // ID формы "Оформленные заказы"
                75 => array(
                    293, // ID поля "Компания"
                    833, // ID поля "Фамилия"
                    836, // ID поля "Вес"
                    886 // ID поля "Статус"
                )
            ),
            // обновление полей
            'update' => array(
                // ID формы "Оформленные заказы"
                75 => array(
                    // ID поля "Дата"
                    292 => array(
                        'allow_sorting' => 0, // отключаем "Разрешить сортировку"
                        'allow_filter' => 0 // отключаем "Разрешить фильтр"
                    ),
                    // ID поля "Товар"
                    297 => array(
                        'word_name' => 'Список товаров', // меняем имя поля
                        'sorting' => 25 // меняем "Порядок сортировки"
                    )
                )
            )
        );

        // Действия формы центра администрирования
        $aAdminFormActions = array(
            // удаление в корзину
            'delete' => array(
                // ID формы "Список интернет-магазинов"
                54 => array(
                    668 // ID действия "Пересчитать"
                )
            ),
            // обновление действий
            'update' => array(
                // ID формы "Оформленные заказы"
                75 => array(
                    // ID действия "Пересчет стоимости доставки"
                    292 => array(
                        'sorting' => 10, // меняем "Порядок сортировки"
                    ),
                )
            )
        );

        $oAdmin_Language = Core_Entity::factory('Admin_Language')->getByShortname('ru');

        foreach ($aAdminForms as $action => $aAdminForm)
        {
            foreach ($aAdminForm as $admin_form_id => $array)
            {
                $oAdmin_Form = Core_Entity::factory('Admin_Form')->find($admin_form_id);

                if($oAdmin_Form->id)
                {
                    $oAdmin_Form_Word = $oAdmin_Form->Admin_Word->getWordByLanguage($oAdmin_Language->id);

                    $aIDs = $action == 'delete' ? $array : array_keys($array);

                    $aAdmin_Form_Fields = $oAdmin_Form->Admin_Form_Fields->getAllById($aIDs, FALSE, 'IN');

                    foreach ($aAdmin_Form_Fields as $oAdmin_Form_Field)
                    {
                        $oAdmin_Form_Field_Word = $oAdmin_Form_Field->Admin_Word->getWordByLanguage($oAdmin_Language->id);

                        $form_field_name = $oAdmin_Form_Field_Word->name;

                        switch ($action)
                        {
                            case 'delete':

                                $oAdmin_Form_Field->markDeleted();

                                Core_Message::show("{$action} поле \"{$form_field_name}\" форма \"{$oAdmin_Form_Word->name}\"", 'warning');

                                break;
                            case 'update':

                                foreach ($array[$oAdmin_Form_Field->id] as $field => $value)
                                {
                                    switch ($field)
                                    {
                                        case 'word_name':
                                            $oAdmin_Form_Field_Word->name = $value;
                                            $oAdmin_Form_Field_Word->save();
                                            break;
                                        default:
                                            $oAdmin_Form_Field->$field = $value;
                                            $oAdmin_Form_Field->save();
                                    }

                                    Core_Message::show("{$action} поле \"{$form_field_name}\" параметр \"{$field}\" форма \"{$oAdmin_Form_Word->name}\"", 'message');
                                }

                                break;
                        }
                    }
                }
            }
        }

        foreach ($aAdminFormActions as $action => $aAdminFormAction)
        {
            foreach ($aAdminFormAction as $admin_form_id => $array)
            {
                $oAdmin_Form = Core_Entity::factory('Admin_Form')->find($admin_form_id);

                if($oAdmin_Form->id)
                {
                    $oAdmin_Form_Word = $oAdmin_Form->Admin_Word->getWordByLanguage($oAdmin_Language->id);

                    $aIDs = $action == 'delete' ? $array : array_keys($array);

                    $aAdmin_Form_Actions = $oAdmin_Form->Admin_Form_Actions->getAllById($aIDs, FALSE, 'IN');

                    foreach ($aAdmin_Form_Actions as $oAdmin_Form_Action)
                    {
                        $oAdmin_Form_Action_Word = $oAdmin_Form_Action->Admin_Word->getWordByLanguage($oAdmin_Language->id);

                        $form_action_name = $oAdmin_Form_Action_Word->name;

                        switch ($action)
                        {
                            case 'delete':

                                $oAdmin_Form_Action->markDeleted();

                                Core_Message::show("{$action} действие \"{$form_action_name}\" форма \"{$oAdmin_Form_Word->name}\"", 'warning');

                                break;
                            case 'update':

                                foreach ($array[$oAdmin_Form_Action->id] as $field => $value)
                                {
                                    switch ($field)
                                    {
                                        case 'word_name':
                                            $oAdmin_Form_Action_Word->name = $value;
                                            $oAdmin_Form_Action_Word->save();
                                            break;
                                        default:
                                            $oAdmin_Form_Action->$field = $value;
                                            $oAdmin_Form_Action->save();
                                    }

                                    Core_Message::show("{$action} действие \"{$form_action_name}\" параметр \"{$field}\" форма \"{$oAdmin_Form_Word->name}\"", 'message');
                                }

                                break;
                        }
                    }
                }
            }
        }
    }
}

Core_Event::attach('Update_Entity.onAfterInstall', array('My_Update_Observer', 'onAfterInstall'));
🔥
подробнее