ExtJS для Minishop2. Поле даты.
Цель — создать тип поля, для Minishop2 в котором будет только дата (без поля выбора времени).
По логике подсмотренной в файлах Minishop2 и системных файлах MODX пытаюсь сделать вот так:
Один фиг поле времени выводится(
Почему?
По логике подсмотренной в файлах Minishop2 и системных файлах MODX пытаюсь сделать вот так:
miniShop2.combo.Dates = function(config) {
config = config || {};
Ext.applyIf(config,{
hideTime: true
,allowBlank: true
,hiddenFormat:'Y-m-d H:i:s'
,dateFormat: MODx.config.manager_date_format
,dateWidth: 120
});
miniShop2.combo.Dates.superclass.constructor.call(this,config);
};
Ext.extend(miniShop2.combo.Dates,Ext.ux.form.DateTime);
Ext.reg('xdates',miniShop2.combo.Dates);
Один фиг поле времени выводится(
Почему?
Комментарии: 17
попробуйте как
timeWidth: 0
Пробовал! В этом случае поле уходит вправо, от него как бы небольшой кусочек остается, но остается, полностью не отключается зараза))
Еще вот такой код отображает поля верно:
Данные вводятся, но после обновления страницы ресурса поле пустое, как будто ничего не заполняли. При этом физически значение существует и никуда не пропадает, просто оно не отображается в поле. Почему мне пока тоже не понятно.
miniShop2.combo.Dates = function(config) {
config = config || {};
Ext.applyIf(config,{
format : "d.m.Y"
});
miniShop2.combo.Dates.superclass.constructor.call(this,config);
};
Ext.extend(miniShop2.combo.Dates,Ext.form.DateField);
Ext.reg('xdates',miniShop2.combo.Dates);
Данные вводятся, но после обновления страницы ресурса поле пустое, как будто ничего не заполняли. При этом физически значение существует и никуда не пропадает, просто оно не отображается в поле. Почему мне пока тоже не понятно.
А если так
....
....
Ext.extend(miniShop2.combo.Dates, Ext.form.DateField);
....
Ну наверное пока я размещал, Вы писали))))))
Ответ в предыдущем сообщении. Работает, но не отображает после обновления стр.
Ответ в предыдущем сообщении. Работает, но не отображает после обновления стр.
Нужно ещё name и value указать. Что-то должно получиться типа такого
miniShop2.combo.Dates = function(config) {
config = config || {};
Ext.applyIf(config,{
name: 'name_column',
fieldLabel: 'Дата окончания доступности',
description: 'description',
allowBlank: true,
format: 'd.m.Y',
dateWidth: 120,
value: 'name_column'
});
miniShop2.combo.Dates.superclass.constructor.call(this,config);
};
Ext.extend(miniShop2.combo.Dates,Ext.form.DateField);
Ext.reg('xdates',miniShop2.combo.Dates);
где name_column имя колонки в БД.
Не помогло, к сожалению. Результат тот же, после обновления стр в поле пусто.
А если в value указать жёстко
Не понятно где ты этот код размещаешь, как получаешь и записываешь данные.
value: '20.10.2016'
Отображается?Не понятно где ты этот код размещаешь, как получаешь и записываешь данные.
В исходники все записано.
Приведенный код пихаю в assets/components/minishop2/js/mgr/misc/ms2.combo.js
Ну и потом прописываю парочке минишоповских полей в assets/components/minishop2/js/mgr/product/product.common.js
Вот так:
Соответственно в БД у меня поля таблицы отредактированы (формат у них сделал один в один как например у полей publishedon, createdon, deletedon ну и т.п.)
Приведенный код пихаю в assets/components/minishop2/js/mgr/misc/ms2.combo.js
Ну и потом прописываю парочке минишоповских полей в assets/components/minishop2/js/mgr/product/product.common.js
Вот так:
,weight: {xtype: 'xdates', description: 'w'+_('ms2_product_weight_help')}
,size: {xtype: 'xdates', description: _('ms2_product_size_help')}
Соответственно в БД у меня поля таблицы отредактированы (формат у них сделал один в один как например у полей publishedon, createdon, deletedon ну и т.п.)
У тебя не получится в эти поля записать. weight использует число с плавающей точкой, а size — json строка (вроде)
Используй через плагин своё поле — это будет правильней и ничего не перепишется при обновлении.
Используй через плагин своё поле — это будет правильней и ничего не перепишется при обновлении.
Да я исправил это все в коде и в БД. Задал нужный формат (точнее собсно пытаюсь вот задать) и отключил проверки где надо… Не суть вообще. Абсолютно тот же код я мог и в плагине написать, так что не обращайте внимание на то где он расположен. Представьте что это из кода плагина выдержка.
Прост я хз как потом значение кастомных полей, если через плагин лепить, выводить в админке в таблице заказов. А если так, то оно итак уже реализовано.
Прост я хз как потом значение кастомных полей, если через плагин лепить, выводить в админке в таблице заказов. А если так, то оно итак уже реализовано.
Так через системную настройку ms2_order_product_fields и выведешь в таблице заказов кастомное поле.
Разве? Чтот я раньше когда-то делал плагином, так и не смог добить потом чтоб вывелось в заказы… Или это в каких-то новых версиях MS2 добавилось?
Кстати вопрос так до сих пор и не решился
Попробуйте указать xtype: datefield
Работает. Но после обновления стр. показывает, вместо того что я сохранил, пустое поле. При этом физически данные в БД сохраняются. Выше писал об этом.
Xtype:
{
xtype: 'datefield',
fieldLabel: _('note_date'),
name: 'date',
format: 'Y-m-d',
id: config.id + '-date',
anchor: '99%',
}
В get процессоре:public function beforeOutput()
{
if(!empty($this->object->date)) {
$date = new DateTime($this->object->date);
$this->object->date = $date->format('Y-m-d');
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.