🤟
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. Мультирегиональность

Версии элементов

страницы и документы, групп магазина, товары магазина

PreviousИмпорт регионовNextОграничение по складу

Last updated 1 year ago

Шаг 1

Есть возможность для элементов (страницы и документы, групп магазина, товары магазина, группы информационных систем, элементы информационных систем) полностью подменить содержимое текста для текущего региона. В ЦА сайта переходим в раздел и нужного элемента кликаем на «Версии» (1)

Шаг 2

Теперь в раздел «Мультирегиональные версии» кликаем «Добавить» (1)

Шаг 3

Заполняем параметры для новой версии

  • Название — название документа для региона

  • Содержимое документа — текст для региона

  • Мультирегион – регион которому принадлежит версия документа

// для ИМ после ->parseUrl() вставьте
if(Core::moduleIsActive('multiregion'))
{
    if($Shop_Controller_Show->item)
    {
        $oMultiRegion_Shop_Item = Core_Page::instance()->multiregion->MultiRegion_Shop_Items->getByentity_id($Shop_Controller_Show->item);
        
        if(!is_null($oMultiRegion_Shop_Item) && !$oMultiRegion_Shop_Item->active)
        {
            $Shop_Controller_Show->error404();
            
            return ;
        }
    }
    
    if($Shop_Controller_Show->group)
    {
        $oMultiRegion_Shop_Group = Core_Page::instance()->multiregion->MultiRegion_Shop_Groups->getByentity_id($Shop_Controller_Show->group);
        
        if(!is_null($oMultiRegion_Shop_Group) && !$oMultiRegion_Shop_Group->active)
        {
            $Shop_Controller_Show->error404();
            
            return ;
        }
    }
    
    $Shop_Controller_Show
        ->shopGroups()
            ->queryBuilder()
                ->leftJoin('multiregion_shop_groups','multiregion_shop_groups.entity_id','=','shop_groups.id', array(
                    array('AND' => array('multiregion_shop_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
                ))
                ->open()
                    ->where('multiregion_shop_groups.active', '=', 1)
                    ->setOr()
                    ->where('multiregion_shop_groups.id', 'IS', NULL)
                ->close();
                
    $Shop_Controller_Show
        ->shopItems()
            ->queryBuilder()
                ->leftJoin('multiregion_shop_items','multiregion_shop_items.entity_id','=','shop_items.id', array(
                    array('AND' => array('multiregion_shop_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
                ))
                ->open()
                    ->where('multiregion_shop_items.active', '=', 1)
                    ->setOr()
                    ->where('multiregion_shop_items.id', 'IS', NULL)
                ->close();
}

// для ИС после ->parseUrl() вставьте
if(Core::moduleIsActive('multiregion'))
{
    if($Informationsystem_Controller_Show->item)
    {
        $oMultiRegion_Informationsystem_Item = Core_Page::instance()->multiregion->MultiRegion_Informationsystem_Items->getByentity_id($Informationsystem_Controller_Show->item);
        
        if(!is_null($oMultiRegion_Informationsystem_Item) && !$oMultiRegion_Informationsystem_Item->active)
        {
            $Informationsystem_Controller_Show->error404();
            
            return ;
        }
    }
    
    if($Informationsystem_Controller_Show->group)
    {
        $oMultiRegion_Informationsystem_Group = Core_Page::instance()->multiregion->MultiRegion_Informationsystem_Groups->getByentity_id($Informationsystem_Controller_Show->group);
        
        if(!is_null($oMultiRegion_Informationsystem_Group) && !$oMultiRegion_Informationsystem_Group->active)
        {
            $Informationsystem_Controller_Show->error404();
            
            return ;
        }
    }
    
    $Informationsystem_Controller_Show
        ->informationsystemGroups()
            ->queryBuilder()
                ->leftJoin('multiregion_informationsystem_groups','multiregion_informationsystem_groups.entity_id','=','informationsystem_groups.id', array(
                    array('AND' => array('multiregion_informationsystem_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
                ))
                ->open()
                    ->where('multiregion_informationsystem_groups.active', '=', 1)
                    ->setOr()
                    ->where('multiregion_informationsystem_groups.id', 'IS', NULL)
                ->close();
                
    $Informationsystem_Controller_Show
        ->informationsystemItems()
            ->queryBuilder()
                ->leftJoin('multiregion_informationsystem_items','multiregion_informationsystem_items.entity_id','=','informationsystem_items.id', array(
                    array('AND' => array('multiregion_informationsystem_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
                ))
                ->open()
                    ->where('multiregion_informationsystem_items.active', '=', 1)
                    ->setOr()
                    ->where('multiregion_informationsystem_items.id', 'IS', NULL)
                ->close();
}
// для групп ИМ перед $Shop_Controller_Show->show() вставьте
Core::moduleIsActive('multiregion') && $Shop_Controller_Show
    ->shopGroups()
        ->queryBuilder()
            ->leftJoin('multiregion_shop_groups','multiregion_shop_groups.entity_id','=','shop_groups.id', array(
                array('AND' => array('multiregion_shop_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
            ))
            ->open()
                ->where('multiregion_shop_groups.active', '=', 1)
                ->setOr()
                ->where('multiregion_shop_groups.id', 'IS', NULL)
            ->close();

// для товаров ИМ перед $Shop_Controller_Show->show() вставьте
Core::moduleIsActive('multiregion') && $Shop_Controller_Show
    ->shopItems()
        ->queryBuilder()
            ->leftJoin('multiregion_shop_items','multiregion_shop_items.entity_id','=','shop_items.id', array(
                array('AND' => array('multiregion_shop_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
            ))
            ->open()
                ->where('multiregion_shop_items.active', '=', 1)
                ->setOr()
                ->where('multiregion_shop_items.id', 'IS', NULL)
            ->close();

// для элементов ИС перед $Informationsystem_Controller_Show->show() вставьте
Core::moduleIsActive('multiregion') && $Informationsystem_Controller_Show
    ->informationsystemItems()
        ->queryBuilder()
            ->leftJoin('multiregion_informationsystem_items','multiregion_informationsystem_items.entity_id','=','informationsystem_items.id', array(
                array('AND' => array('multiregion_informationsystem_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
            ))
            ->open()
                ->where('multiregion_informationsystem_items.active', '=', 1)
                ->setOr()
                ->where('multiregion_informationsystem_items.id', 'IS', NULL)
            ->close();
            
// для структуры сайта перед $Structure_Controller_Show->show() вставьте
Core::moduleIsActive('multiregion') && $Structure_Controller_Show
    ->structure()
        ->queryBuilder()
            ->leftJoin('multiregion_structures','multiregion_structures.entity_id','=','structures.id', array(
                array('AND' => array('multiregion_structures.multiregion_id','=', Core_Page::instance()->multiregion->id))
            ))
            ->open()
                ->where('multiregion_structures.active', '=', 1)
                ->setOr()
                ->where('multiregion_structures.id', 'IS', NULL)
            ->close();

Любая другая логика работы с версиями элементов

// Получние версий элемента по региону
$oMultiRegion = Core_Entity::factory('MultiRegion', 123);
$oShop_Item = Core_Entity::factory('Shop_Item', 456);

$aMultiRegion_Shop_Items = $oMultiRegion->MultiRegion_Shop_Items->getByentity_id($oShop_Item->id, FALSE); // возвращает object или NULL

// Получние всех версий элемента
$oDocument = Core_Entity::factory('Document', 123);

$oMultiRegion_Documents = Core_Entity::factory('MultiRegion_Document');
$oMultiRegion_Documents
    ->queryBuilder()
        ->where('entity_id','=',$oDocument->id);
        
$aMultiRegion_Documents= $oMultiRegion_Documents->findAll(); // возвращает массив

Активность - активность элемента (только для ИМ и ИС) 1^{1}1

1^{1}1 Для того чтобы исключить для выборки (так же ошибка 404) определенные группы/элементы внесите в ТДС (настройки страницы) следующий код:

Страницы и документы
Интернет-магазины
Мультирегиональные версии (Страницы и документы)
Мультирегиональные версии (Интернет-магазины)
Редактирование версии (Страницы и документы)
Редактирование версии (Информационные системы)