ExtJS для Minishop2. Поле даты. Новый

Дополнение: Minishop2

Цель — создать тип поля, для Minishop2 в котором будет только дата (без поля выбора времени).

По логике подсмотренной в файлах 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);

Один фиг поле времени выводится(
Почему?
28 октября 2016, 09:06    Даниил   G+  
0    425 0

Комментарии (16)

  1. Володя 28 октября 2016, 09:26 # 0
    попробуйте как
    timeWidth: 0
    
    1. Даниил 28 октября 2016, 13:41 # 0
      Пробовал! В этом случае поле уходит вправо, от него как бы небольшой кусочек остается, но остается, полностью не отключается зараза))
    2. Даниил 28 октября 2016, 15:04 # 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);

      Данные вводятся, но после обновления страницы ресурса поле пустое, как будто ничего не заполняли. При этом физически значение существует и никуда не пропадает, просто оно не отображается в поле. Почему мне пока тоже не понятно.
      1. Марат Марабар 28 октября 2016, 15:08 # 0
        А если так
        ....
        ....
        Ext.extend(miniShop2.combo.Dates, Ext.form.DateField);
        ....
        
        1. Даниил 28 октября 2016, 15:17 # 0
          Ну наверное пока я размещал, Вы писали))))))
          Ответ в предыдущем сообщении. Работает, но не отображает после обновления стр.
          1. Марат Марабар 28 октября 2016, 15:26 # 0
            Нужно ещё 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 имя колонки в БД.
            1. Даниил 28 октября 2016, 16:01 # 0
              Не помогло, к сожалению. Результат тот же, после обновления стр в поле пусто.
              1. Марат Марабар 28 октября 2016, 16:10 # 0
                А если в value указать жёстко
                value: '20.10.2016'
                
                Отображается?

                Не понятно где ты этот код размещаешь, как получаешь и записываешь данные.
        2. Даниил 28 октября 2016, 16:29 # 0
          В исходники все записано.
          Приведенный код пихаю в 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 ну и т.п.)
          1. Марат Марабар 28 октября 2016, 18:25 # 0
            У тебя не получится в эти поля записать. weight использует число с плавающей точкой, а size — json строка (вроде)
            Используй через плагин своё поле — это будет правильней и ничего не перепишется при обновлении.
            1. Даниил 28 октября 2016, 20:29 # 0
              Да я исправил это все в коде и в БД. Задал нужный формат (точнее собсно пытаюсь вот задать) и отключил проверки где надо… Не суть вообще. Абсолютно тот же код я мог и в плагине написать, так что не обращайте внимание на то где он расположен. Представьте что это из кода плагина выдержка.

              Прост я хз как потом значение кастомных полей, если через плагин лепить, выводить в админке в таблице заказов. А если так, то оно итак уже реализовано.
              1. Марат Марабар 28 октября 2016, 20:57 # 0
                Так через системную настройку ms2_order_product_fields и выведешь в таблице заказов кастомное поле.
                1. Даниил 29 октября 2016, 05:47 # 0
                  Разве? Чтот я раньше когда-то делал плагином, так и не смог добить потом чтоб вывелось в заказы… Или это в каких-то новых версиях MS2 добавилось?
          2. Даниил 09 ноября 2016, 04:20 # 0
            Кстати вопрос так до сих пор и не решился
            1. Илья Уткин 09 ноября 2016, 07:36 # 0
              Попробуйте указать xtype: datefield
              1. Даниил 10 ноября 2016, 19:39 # 0
                Работает. Но после обновления стр. показывает, вместо того что я сохранил, пустое поле. При этом физически данные в БД сохраняются. Выше писал об этом.
            Вы должны авторизоваться, чтобы оставлять комментарии.