Доп. поле в minishop2 и значение по умолчанию как?

Каким образом задать значение по умолчанию для поля типа varchar?
модель
<?php
// Файл /core/components/minishop2/plugins/dimension/model/msproductdata.map.inc.php
return array(
	'fields' => array(
		'dimension' => 'test'
	)
	,'fieldMeta' => array(
		'dimension' => array(
			'dbtype' => 'varchar'
			,'precision' => '350'
			,'phptype' => 'string'
			,'null' => true
			,'default' => 'test'
		)
	)
);

miniShop2.plugin.dimension = {
	getFields: function(config) {
		return {
			dimension: {xtype: 'textfield', description: _('ms2_product_dimension_help')}
		}
	}
	,getColumns: function() {
		return {
			dimension: {width:50, sortable:false, editor: {xtype:'textfield', name: 'dimension'}}
		}
	}
};
в базе


КАК? Что я делаю не так? Спасибо)))
Володя
17 сентября 2014, 14:49
modx.pro
2
1 661
0
Поблагодарить автора Отправить деньги

Комментарии: 24

Володя
17 сентября 2014, 18:50
0
коммент для привлечения внимания…
    Алексей Ерохин
    17 сентября 2014, 19:19
    0
    Что не так?
      Володя
      17 сентября 2014, 19:20
      0
      По умолчанию не выставляется значение…
        Алексей Ерохин
        17 сентября 2014, 19:23
        0
        Структура менялась вручную? map вручную?
          Володя
          17 сентября 2014, 19:25
          0
          не совсем понимаю что вы имеете ввиду под структурой…
          map да вручную.
            Алексей Ерохин
            17 сентября 2014, 19:25
            0
            Поле в таблице
              Володя
              17 сентября 2014, 19:27
              0
              В таблице да сначало было по дефолту NULL…
              вы намекаете что надо как то таблицу обновить?
                Алексей Ерохин
                17 сентября 2014, 19:29
                0
                Правильно ли я понял, у Вас в структуре таблицы не проставилось значение «Как определено»?
                  Володя
                  17 сентября 2014, 19:30
                  0
                  Оно и в таблице не проставляется и в админке пустое
                    Алексей Ерохин
                    17 сентября 2014, 19:40
                    +1
                    Для админки

                    dimension: {
                    	xtype: 'textfield', 
                    	hiddenValue: 'test' //либо просто value, если не сработает
                    	description: _('ms2_product_dimension_help')
                    }
                      Володя
                      17 сентября 2014, 19:52
                      0
                      неа, вообще никаких изменений...(
                      Володя
                      18 сентября 2014, 10:13
                      0
                      Вру… просто value сработало.
    Андрей
    Андрей
    17 сентября 2014, 19:30
    0
    Так пропиши в самой таблице БД.
    И при отсутствии значения будет заполняться значением по умолчанию.
      Володя
      17 сентября 2014, 19:31
      0
      прописывал!!! Тоже нет…
        Андрей
        Андрей
        17 сентября 2014, 19:42
        0
        Посмотри столбец old_price в таблице *_ms2_products — заполняется 0.00 по умолчанию, если не указана старая цена для товара.
        В админке всё отображается и в таблице тоже.
          Володя
          17 сентября 2014, 19:43
          0
          Цифровое поле да… это работает. Мне интересно текстовое поле…
    Василий Наумкин
    17 сентября 2014, 20:26
    +1
    Не уверен, но по моему значение по-умолчанию и не должно писаться в БД. Оно выводится при xPDOObject::toArray() и xPDOObject::get() — как у ТВ параметров.

    А числовые поля в БД сохраняются согласен типу: если простой integer то будет 0, если float — то 0.00. Ну а для текста выходит пустая строка.

    Сейчас нет ни времени, ни желания проверять, так что попробуй просто поэксперементировать с созданием и сохранением объекта товара без админки, на уровне xPDO.
      Володя
      17 сентября 2014, 21:10
      0
      Ок. спасибо… Вот ответа вроде этого я и ждал, ато даж разнервничался)))
      Завтра попробую еще…
        Володя
        18 сентября 2014, 10:40
        0
        Да если просто выполнить
        $msProduct = $modx->newObject('msProduct');
        $msProduct->set('pagetitle','xpdo');
        $msProduct->save();
        То значение поля по умолчанию подтягивается с модели и сохраняется…
          Василий Наумкин
          18 сентября 2014, 12:15
          0
          Оно не подтягивается с модели — ты его сам выставляешь =)
            Володя
            18 сентября 2014, 12:23
            0
            ну я выставил только значение поля pagetitle, значени доп.поля у меня подтянулось с модели
            ,'default' => 'test'
            или я не понял что ты этим сказать хотел)
              Василий Наумкин
              18 сентября 2014, 12:24
              0
              А, ясно.

              Тогда видимо при сохранении из админки это поле просто перезаписывается пустотой из отправленной формы.
      Андрей
      21 декабря 2015, 22:51
      0
      Подскажите, пожалуйста. Я создал дополнительны поля по инструкции. Все работает хорошо. Но такой момент — у меня значения во всех полях и товарах одинаковые. Можно ли задать таким полям значения по умолчанию? как тогда нужно изменить плагин?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        24