Добавление данных из своих полей админки Modx
Добрый день, друзья! У меня к вам опять вопрос в ту же тему, что писал до этого. Есть значит задача от руководства добиться расширения функционала административной части сайта. До этого в другом вопросе мне дали верное направление разбирать файл находящийся по пути miniShop2:
/assets/components/minishop2/js/mgr/orders/orders.grid.js
Задача моя значит следующая, расширить число полей в форме. Изучая код по расширению полей заметил наиболее интересные для меня моменты, которые на мой взгляд должны были расширить функционал формы.
На 409 строке по коду смотрю, что там есть одно описание функции, где по коду идет возвращение полей:
,getAddressFields: function(config) {
var all = {receiver:{},phone:{},index:{},country:{},region:{},metro:{},building:{},city:{},street:{},room:{}, name1:{}, phone1:{}, datapickers:{}};
var fields = [], tmp = [];
for (var i=0; i < miniShop2.config.order_address_fields.length; i++) {
var field = miniShop2.config.order_address_fields[i];
if (all[field]) {
Ext.applyIf(all[field], {
xtype: 'textfield'
,name: 'addr_' + field
,fieldLabel: _('ms2_' + field)
});
all[field].anchor = '100%';
tmp.push(all[field]);
}
}В функцию getAddressFields я внес свои поля: name1:{}, phone1:{}, datapickers:{}. В базу они попали тоже соответственно, так как я создал в таблице modx_ms2_order_addresses поля name1, phone1 и datapickers. В базе данных как видно есть новые поля:Однако, все данные введенную в форму не сохраняются почему-то, я имею ввиду свои новые поля. Кто знает как помимо того что нарисовать на форме их, заставить сохранить в базу значения? Разве это не на php пишется? Где находится это?
Комментарии: 2
Доброго дня всем! Ну что никто не знает что ли как корректно добавить заголовки полям формы и как реально сохранить эти данные в базу? До этого писали люди, что много кто это делал, так вот хотелось бы услышать от профессионалов ответ по этому поводу.
Решение такое значит было в файле core/components/minishop2/model/minishop2/mysql/msorderadress.map.inc.php вносим изменения в структуру массива в начале файла:
array (
//1
'user_id' => NULL,
//2
'createdon' => '0000-00-00 00:00:00',
//3
'updatedon' => '0000-00-00 00:00:00',
//4
'receiver' => NULL,
//5
'phone' => NULL,
//6
'country' => NULL,
//7
'index' => NULL,
//8
'region' => NULL,
//9
'city' => NULL,
//10
'metro' => NULL,
//11
'street' => NULL,
//12
'building' => NULL,
//13
'room' => NULL,
//14
'comment' => NULL,
//15
'name1' => NULL,
//16
'phone1' => NULL,
//17
'datepicker' => NULL,
'properties' => NULL,
),После чего еще создаем свои поля ниже:/* Свои поля */
'name1' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => true,
),
'phone1' =>
array (
'dbtype' => 'varchar',
'precision' => '50',
'phptype' => 'string',
'null' => true,
),
'datepicker' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => true,
),
/* конец своих полей */После чего идем в файл core/components/minishop2/model/schema/minishop2.mysql.schema.xml и в структуру файла прописываем те же свои поля, по стандарту документа. И все начинает работать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.