Версии элементов
страницы и документы, групп магазина, товары магазина
Last updated
страницы и документы, групп магазина, товары магазина
Last updated
Есть возможность для элементов (страницы и документы, групп магазина, товары магазина, группы информационных систем, элементы информационных систем) полностью подменить содержимое текста для текущего региона. В ЦА сайта переходим в раздел и нужного элемента кликаем на «Версии» (1)
Теперь в раздел «Мультирегиональные версии» кликаем «Добавить» (1)
Заполняем параметры для новой версии
Название — название документа для региона
Содержимое документа — текст для региона
Мультирегион – регион которому принадлежит версия документа
// для ИМ после ->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 Для того чтобы исключить для выборки (так же ошибка 404) определенные группы/элементы внесите в ТДС (настройки страницы) следующий код: