我正在扩展的模块使用addField()
向管理表单添加字段。我复制了这个行为,因为我想我会尝试坚持他们的设置。但是,我不知道如何在这些字段的右边添加“使用默认值”复选框。这是一个问题,因为我需要添加一个特定于站点的字段。
为后代着想的代码:
$fieldset->addField('enable_coupon', 'select', array(
'label' => Mage::helper('affiliatepluscoupon')->__('Enable Coupon'),
'name' => 'enable_coupon',
'note' => Mage::helper('affiliatepluscoupon')->__('If yes then it will create a magento salesrule for this store.'),
'values' => Mage::getSingleton('adminhtml/system_config_source_yesno')->toOptionArray(),
));
为了澄清,我正在寻找一个动态复选框,它是由管理字段放置的,根据您所使用的视图而变化。当通过XML创建字段时,它会自动显示,但当使用addField()
添加字段时,它似乎被忽略了。
5条答案
按热度按时间ygya80vv1#
添加复选框的一种方法是
你也检查了他们在他们的模块中做这件事的方式吗?
i1icjdpr2#
我知道这有点晚了,但我只是想发布我的解决方案,也许引发一些其他的想法。(和反馈我的工作方式)
我最初的来源:http://marius-strajeru.blogspot.be/2013/02/create-system-config-section-with.html
因此要添加一个字段(例如:文本字段):
这是您需要添加复选框到您的字段的所有操作。如果您希望添加那些灰色范围文本(例如:[网站]):
之所以可以这样做,是因为定义了基本的Varien对象来实现ArrayAccess
现在要渲染该字段,只需执行以下操作:
soat7uwm3#
在
Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Inventory
和catalog/product/tab/inventory.phtml
中查找这看起来很有希望。
h9a6wy2h4#
好吧,这是一个相当丑陋的解决方案,但也许它会为你工作。首先,在产品页面上有一个自定义的渲染器为每个元素,这就是为什么它显示在那里。所以,如果你有以下元素:
您必须使用自定义渲染器来渲染它:
此时,您应该有了第三列,其中包含
scope-label
类。但是它旁边的复选框仍然不会显示。为此,我们必须为表单设置以下内容:现在,您还应该看到复选框。
此解决方案来自:
http://code007.wordpress.com/2014/03/20/how-to-show-the-default-checkbox-near-a-magento-attribute/
ozxc1zmp5#
OP的解决方案从问题变成了答案:
我研究得越多,就越意识到使用XML的系统是一个非常深入的系统,如果仅仅为了坚持一些糟糕的编程实践而复制所有这些系统,那将是一种荒谬的做法。
对于那些想知道如何使用
addField()
的人,我 * 确实 * 弄明白了。下面是我的最终代码: