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

Страницы и документы

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

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

Мультирегиональные версии (Интернет-магазины)
Заполняем параметры для новой версии

Редактирование версии (Страницы и документы)

Редактирование версии (Информационные системы)
- Название — название документа для региона
- Содержимое документа — текст для региона
- Мультирегион – регион которому принадлежит версия документа
- Активность - активность элемента (только для ИМ и ИС)
Для того чтобы исключить для выборки (так же ошибка 404) определенные группы/элементы внесите в ТДС (настройки страницы) следующий код:
ТДС [Настройки страницы]
любой др. код
1
// для ИМ после ->parseUrl() вставьте
2
if(Core::moduleIsActive('multiregion'))
3
{
4
if($Shop_Controller_Show->item)
5
{
6
$oMultiRegion_Shop_Item = Core_Page::instance()->multiregion->MultiRegion_Shop_Items->getByentity_id($Shop_Controller_Show->item);
7
8
if(!is_null($oMultiRegion_Shop_Item) && !$oMultiRegion_Shop_Item->active)
9
{
10
$Shop_Controller_Show->error404();
11
12
return ;
13
}
14
}
15
16
if($Shop_Controller_Show->group)
17
{
18
$oMultiRegion_Shop_Group = Core_Page::instance()->multiregion->MultiRegion_Shop_Groups->getByentity_id($Shop_Controller_Show->group);
19
20
if(!is_null($oMultiRegion_Shop_Group) && !$oMultiRegion_Shop_Group->active)
21
{
22
$Shop_Controller_Show->error404();
23
24
return ;
25
}
26
}
27
28
$Shop_Controller_Show
29
->shopGroups()
30
->queryBuilder()
31
->leftJoin('multiregion_shop_groups','multiregion_shop_groups.entity_id','=','shop_groups.id', array(
32
array('AND' => array('multiregion_shop_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
33
))
34
->open()
35
->where('multiregion_shop_groups.active', '=', 1)
36
->setOr()
37
->where('multiregion_shop_groups.id', 'IS', NULL)
38
->close();
39
40
$Shop_Controller_Show
41
->shopItems()
42
->queryBuilder()
43
->leftJoin('multiregion_shop_items','multiregion_shop_items.entity_id','=','shop_items.id', array(
44
array('AND' => array('multiregion_shop_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
45
))
46
->open()
47
->where('multiregion_shop_items.active', '=', 1)
48
->setOr()
49
->where('multiregion_shop_items.id', 'IS', NULL)
50
->close();
51
}
52
53
// для ИС после ->parseUrl() вставьте
54
if(Core::moduleIsActive('multiregion'))
55
{
56
if($Informationsystem_Controller_Show->item)
57
{
58
$oMultiRegion_Informationsystem_Item = Core_Page::instance()->multiregion->MultiRegion_Informationsystem_Items->getByentity_id($Informationsystem_Controller_Show->item);
59
60
if(!is_null($oMultiRegion_Informationsystem_Item) && !$oMultiRegion_Informationsystem_Item->active)
61
{
62
$Informationsystem_Controller_Show->error404();
63
64
return ;
65
}
66
}
67
68
if($Informationsystem_Controller_Show->group)
69
{
70
$oMultiRegion_Informationsystem_Group = Core_Page::instance()->multiregion->MultiRegion_Informationsystem_Groups->getByentity_id($Informationsystem_Controller_Show->group);
71
72
if(!is_null($oMultiRegion_Informationsystem_Group) && !$oMultiRegion_Informationsystem_Group->active)
73
{
74
$Informationsystem_Controller_Show->error404();
75
76
return ;
77
}
78
}
79
80
$Informationsystem_Controller_Show
81
->informationsystemGroups()
82
->queryBuilder()
83
->leftJoin('multiregion_informationsystem_groups','multiregion_informationsystem_groups.entity_id','=','informationsystem_groups.id', array(
84
array('AND' => array('multiregion_informationsystem_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
85
))
86
->open()
87
->where('multiregion_informationsystem_groups.active', '=', 1)
88
->setOr()
89
->where('multiregion_informationsystem_groups.id', 'IS', NULL)
90
->close();
91
92
$Informationsystem_Controller_Show
93
->informationsystemItems()
94
->queryBuilder()
95
->leftJoin('multiregion_informationsystem_items','multiregion_informationsystem_items.entity_id','=','informationsystem_items.id', array(
96
array('AND' => array('multiregion_informationsystem_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
97
))
98
->open()
99
->where('multiregion_informationsystem_items.active', '=', 1)
100
->setOr()
101
->where('multiregion_informationsystem_items.id', 'IS', NULL)
102
->close();
103
}
1
// для групп ИМ перед $Shop_Controller_Show->show() вставьте
2
Core::moduleIsActive('multiregion') && $Shop_Controller_Show
3
->shopGroups()
4
->queryBuilder()
5
->leftJoin('multiregion_shop_groups','multiregion_shop_groups.entity_id','=','shop_groups.id', array(
6
array('AND' => array('multiregion_shop_groups.multiregion_id','=', Core_Page::instance()->multiregion->id))
7
))
8
->open()
9
->where('multiregion_shop_groups.active', '=', 1)
10
->setOr()
11
->where('multiregion_shop_groups.id', 'IS', NULL)
12
->close();
13
14
// для товаров ИМ перед $Shop_Controller_Show->show() вставьте
15
Core::moduleIsActive('multiregion') && $Shop_Controller_Show
16
->shopItems()
17
->queryBuilder()
18
->leftJoin('multiregion_shop_items','multiregion_shop_items.entity_id','=','shop_items.id', array(
19
array('AND' => array('multiregion_shop_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
20
))
21
->open()
22
->where('multiregion_shop_items.active', '=', 1)
23
->setOr()
24
->where('multiregion_shop_items.id', 'IS', NULL)
25
->close();
26
27
// для элементов ИС перед $Informationsystem_Controller_Show->show() вставьте
28
Core::moduleIsActive('multiregion') && $Informationsystem_Controller_Show
29
->informationsystemItems()
30
->queryBuilder()
31
->leftJoin('multiregion_informationsystem_items','multiregion_informationsystem_items.entity_id','=','informationsystem_items.id', array(
32
array('AND' => array('multiregion_informationsystem_items.multiregion_id','=', Core_Page::instance()->multiregion->id))
33
))
34
->open()
35
->where('multiregion_informationsystem_items.active', '=', 1)
36
->setOr()
37
->where('multiregion_informationsystem_items.id', 'IS', NULL)
38
->close();
39
40
// для структуры сайта перед $Structure_Controller_Show->show() вставьте
41
Core::moduleIsActive('multiregion') && $Structure_Controller_Show
42
->structure()
43
->queryBuilder()
44
->leftJoin('multiregion_structures','multiregion_structures.entity_id','=','structures.id', array(
45
array('AND' => array('multiregion_structures.multiregion_id','=', Core_Page::instance()->multiregion->id))
46
))
47
->open()
48
->where('multiregion_structures.active', '=', 1)
49
->setOr()
50
->where('multiregion_structures.id', 'IS', NULL)
51
->close();
1
// Получние версий элемента по региону
2
$oMultiRegion = Core_Entity::factory('MultiRegion', 123);
3
$oShop_Item = Core_Entity::factory('Shop_Item', 456);
4
5
$aMultiRegion_Shop_Items = $oMultiRegion->MultiRegion_Shop_Items->getByentity_id($oShop_Item->id, FALSE); // возвращает object или NULL
6
7
// Получние всех версий элемента
8
$oDocument = Core_Entity::factory('Document', 123);
9
10
$oMultiRegion_Documents = Core_Entity::factory('MultiRegion_Document');
11
$oMultiRegion_Documents
12
->queryBuilder()
13
->where('entity_id','=',$oDocument->id);
14
15
$aMultiRegion_Documents= $oMultiRegion_Documents->findAll(); // возвращает массив
Last modified 4mo ago