Comment on page

Update хук

https://www.hostcms.ru/api7/classes/Update-Entity.html
Разместите код хука (подробнее) в файле bootstrap.php
В массивах $aAdminForms и $aAdminFormActions настраиваются формы, их поля и действия, которые нужно удалить [delete] или модифицировать [update]
1
class My_Update_Observer
2
{
3
static public function onAfterInstall($entity)
4
{
5
// Формы центра администрирования /admin/admin_form/index.php
6
$aAdminForms = array(
7
// удаление в корзину
8
'delete' => array(
9
// ID формы "Интернет-магазин, товары и группы"
10
65 => array(
11
249, // ID поля "Комментарии"
12
250, // ID поля "Модификации"
13
600 // ID поля "Цифровые товары"
14
),
15
// ID формы "Оформленные заказы"
16
75 => array(
17
293, // ID поля "Компания"
18
833, // ID поля "Фамилия"
19
836, // ID поля "Вес"
20
886 // ID поля "Статус"
21
)
22
),
23
// обновление полей
24
'update' => array(
25
// ID формы "Оформленные заказы"
26
75 => array(
27
// ID поля "Дата"
28
292 => array(
29
'allow_sorting' => 0, // отключаем "Разрешить сортировку"
30
'allow_filter' => 0 // отключаем "Разрешить фильтр"
31
),
32
// ID поля "Товар"
33
297 => array(
34
'word_name' => 'Список товаров', // меняем имя поля
35
'sorting' => 25 // меняем "Порядок сортировки"
36
)
37
)
38
)
39
);
40
41
// Действия формы центра администрирования
42
$aAdminFormActions = array(
43
// удаление в корзину
44
'delete' => array(
45
// ID формы "Список интернет-магазинов"
46
54 => array(
47
668 // ID действия "Пересчитать"
48
)
49
),
50
// обновление действий
51
'update' => array(
52
// ID формы "Оформленные заказы"
53
75 => array(
54
// ID действия "Пересчет стоимости доставки"
55
292 => array(
56
'sorting' => 10, // меняем "Порядок сортировки"
57
),
58
)
59
)
60
);
61
62
$oAdmin_Language = Core_Entity::factory('Admin_Language')->getByShortname('ru');
63
64
foreach ($aAdminForms as $action => $aAdminForm)
65
{
66
foreach ($aAdminForm as $admin_form_id => $array)
67
{
68
$oAdmin_Form = Core_Entity::factory('Admin_Form')->find($admin_form_id);
69
70
if($oAdmin_Form->id)
71
{
72
$oAdmin_Form_Word = $oAdmin_Form->Admin_Word->getWordByLanguage($oAdmin_Language->id);
73
74
$aIDs = $action == 'delete' ? $array : array_keys($array);
75
76
$aAdmin_Form_Fields = $oAdmin_Form->Admin_Form_Fields->getAllById($aIDs, FALSE, 'IN');
77
78
foreach ($aAdmin_Form_Fields as $oAdmin_Form_Field)
79
{
80
$oAdmin_Form_Field_Word = $oAdmin_Form_Field->Admin_Word->getWordByLanguage($oAdmin_Language->id);
81
82
$form_field_name = $oAdmin_Form_Field_Word->name;
83
84
switch ($action)
85
{
86
case 'delete':
87
88
$oAdmin_Form_Field->markDeleted();
89
90
Core_Message::show("{$action} поле \"{$form_field_name}\" форма \"{$oAdmin_Form_Word->name}\"", 'warning');
91
92
break;
93
case 'update':
94
95
foreach ($array[$oAdmin_Form_Field->id] as $field => $value)
96
{
97
switch ($field)
98
{
99
case 'word_name':
100
$oAdmin_Form_Field_Word->name = $value;
101
$oAdmin_Form_Field_Word->save();
102
break;
103
default:
104
$oAdmin_Form_Field->$field = $value;
105
$oAdmin_Form_Field->save();
106
}
107
108
Core_Message::show("{$action} поле \"{$form_field_name}\" параметр \"{$field}\" форма \"{$oAdmin_Form_Word->name}\"", 'message');
109
}
110
111
break;
112
}
113
}
114
}
115
}
116
}
117
118
foreach ($aAdminFormActions as $action => $aAdminFormAction)
119
{
120
foreach ($aAdminFormAction as $admin_form_id => $array)
121
{
122
$oAdmin_Form = Core_Entity::factory('Admin_Form')->find($admin_form_id);
123
124
if($oAdmin_Form->id)
125
{
126
$oAdmin_Form_Word = $oAdmin_Form->Admin_Word->getWordByLanguage($oAdmin_Language->id);
127
128
$aIDs = $action == 'delete' ? $array : array_keys($array);
129
130
$aAdmin_Form_Actions = $oAdmin_Form->Admin_Form_Actions->getAllById($aIDs, FALSE, 'IN');
131
132
foreach ($aAdmin_Form_Actions as $oAdmin_Form_Action)
133
{
134
$oAdmin_Form_Action_Word = $oAdmin_Form_Action->Admin_Word->getWordByLanguage($oAdmin_Language->id);
135
136
$form_action_name = $oAdmin_Form_Action_Word->name;
137
138
switch ($action)
139
{
140
case 'delete':
141
142
$oAdmin_Form_Action->markDeleted();
143
144
Core_Message::show("{$action} действие \"{$form_action_name}\" форма \"{$oAdmin_Form_Word->name}\"", 'warning');
145
146
break;
147
case 'update':
148
149
foreach ($array[$oAdmin_Form_Action->id] as $field => $value)
150
{
151
switch ($field)
152
{
153
case 'word_name':
154
$oAdmin_Form_Action_Word->name = $value;
155
$oAdmin_Form_Action_Word->save();
156
break;
157
default:
158
$oAdmin_Form_Action->$field = $value;
159
$oAdmin_Form_Action->save();
160
}
161
162
Core_Message::show("{$action} действие \"{$form_action_name}\" параметр \"{$field}\" форма \"{$oAdmin_Form_Word->name}\"", 'message');
163
}
164
165
break;
166
}
167
}
168
}
169
}
170
}
171
}
172
}
173
174
Core_Event::attach('Update_Entity.onAfterInstall', array('My_Update_Observer', 'onAfterInstall'));