我想在“目录价格规则”部分的“操作”选项卡中添加自定义字段 .
这就是我做的:
- 我将这些行添加到文件app \ code \ core \ Mage \ Adminhtml \ Block \ Promo \ Catalog \ Edit \ Tab \ Actions.php
$fieldset->addField('custom_field', 'select', array(
'label' => 'Custom Field',
'title' => 'Custom Field',
'name' => 'custom_field',
'options' => array(
'1' => Mage::helper('catalogrule')->__('Yes'),
'0' => Mage::helper('catalogrule')->__('No'),
),
));
- 我在此文件中将版本更改为1.6.0.4:app \ code \ core \ Mage \ CatalogRule \ etc \ config.xml
<Mage_CatalogRule>
<version>1.6.0.4</version>
</Mage_CatalogRule>
- 我创建了名为app \ code \ core \ Mage \ CatalogRule \ sql \ catalogrule_setup \ upgrade-1.6.0.3-1.6.0.4.php的新文件
$ installer-> startSetup();
$ ruleProductTable = $ installer-> getTable('catalogrule / rule');
$ columnOptions = array(
'TYPE'=> Varien_Db_Ddl_Table :: TYPE_SMALLINT,
'UNSIGNED'=> true,
'NULLABLE'=> false,
'DEFAULT'=> 0,
'COMMENT'=>'自定义字段',
);
$ installer-> getConnection() - > addColumn($ ruleProductTable,'custom_field',$ columnOptions);
$ installer-> endSetup();
然后,我登录管理面板并尝试编辑其中一个目录价格规则 .
我在动作标签中看到了我的新领域 - 太棒了!
但是,当我单击“保存”时,我在该字段中所做的更改未保存 .
我登录到phpmyadmin并转到catalogrule表 . 在这个表中我可以看到新字段custom_field,值为0(默认值) - 所以它确实没有保存更改 .
我的问题是我做错了什么?为什么custom_field中的更改未保存在DB中?
谢谢
1 回答
我不确定为什么它不适合你,我的猜测是你的安装程序没有被调用 . 我通过一个模块和本地编辑来管理修改,以便将来证明这一变化 .
Directory structure:
添加文件/app/code/local/custom/promo/etc/config.xml
添加文件/app/code/local/custom/promo/sql/promo_setup/install-1-0.php
清除缓存并通过查看catalog_rule表来验证列是否已添加
最后取一份/app/code/core/Mage/Adminhtml/Block/Promo/Catalog/Edit/Tab/Main.php并创建相同的文件/ app / code / core / local / Adminhtml / Block / Promo / Catalog /Edit/Tab/Main.php
编辑文件并在$ form-> setValues($ model-> getData())之前添加字段;