Как при сохранении в БД изменить поле old_price

Добрый день.

Столкнулся с проблемой, почему-то не получается у меня изменить поле old_price. при сохранении через админку, в БД в поле записывается значение 0, а мне нужно NULL.

Купил я mFilter2, пытаюсь настроить чтобы фильтр выводи СКИДКИ И АКЦИИ. логично чтобы поле было NULL и если есть акция, то какаято цена.

на bezumkin.ru/modx/minishop2/classes/910/ не помню где но нашел что если в фильтре прописать ms|old_price:boolean, то фильтр выведет все значения где есть какие-то записи.

Так вот, БД я изменил вот скрин: yadi.sk/i/WBnYgCLGhMxkM

после подключения файла /assets/components/minishop2/plugins/pluginname/msproductdata.js

прописал в core/components/minishop2/plugins/availability/model/msproductdata.map.inc.php так:

return array(
'fields' => array(
'old_price' => NULL, 
)
,'fieldMeta' => array(
'old_price' => array(
'dbtype' => 'decimal',
'precision' => '12,2',
'phptype' => 'float',
'null' => true,
'default' => NULL
),
),
'indexes' => 
array (
'old_price' => 
array (
'alias' => 'old_price',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' => 
array (
'old_price' => 
array (
'length' => '',
'collation' => 'A',
'null' => true,
),
),
),
),
и после этого добавил в файл assets/components/minishop2/plugins/availability/msproductdata.js

miniShop2.plugin.pluginname = {
getFields: function(config) {
return {
old_price: {xtype: 'numberfield', decimalPrecision: 2, description: '[[+old_price]]
'+_('ms2_product_old_price_help')},
}
}
,getColumns: function() {
return {
old_price: {width:50, sortable:true, editor: {xtype:'numberfield', name: 'old_price'}},
}
}
};
Скажите что я сделал не так, или где нужно подкрутить.

Спасибо.
Александр
21 июня 2015, 09:12
modx.pro
1 234
0

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

Александр
21 июня 2015, 15:15
0
судя по всему, в админке при сохранении подставляются нули. ((
    Василий Наумкин
    21 июня 2015, 15:44
    0
    Оно бы, может, и записывалось в БД как null, если бы из админки не отправлялось вообще никакого значения для old_price. А так ExtJS поле отправляет 0 — оно и записывается в БД.

    Но проблема даже не в этом, а в том, что
    empty('0.00') !== true
    То есть, такое значение не считается пустым в PHP.

    Поправил это и выложил новую версию mSearch2 — можно обновляться.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3