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');
        }
    }            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.