Magento:在管理面板中创建自定义表单时使用产品选择器小部件

Magento:在管理面板中创建自定义表单时使用产品选择器小部件,magento,admin,product,Magento,Admin,Product,我正在开发一个Magento(1.7.0.2)模块,它在管理面板中有自己的管理区域 此区域包含一个用于更新某些设置的表单,其中包括一个用于输入产品ID的文本字段。我希望使用一个product chooser小部件来代替此文本字段,因为检查正确的产品ID,然后在表单中手动输入找到的ID是**中的一个难题 目前,上述文本字段的代码如下所示: $fieldset->addField( 'product_id', 'text', array( 'labe

我正在开发一个Magento(1.7.0.2)模块,它在管理面板中有自己的管理区域

此区域包含一个用于更新某些设置的表单,其中包括一个用于输入产品ID的文本字段。我希望使用一个product chooser小部件来代替此文本字段,因为检查正确的产品ID,然后在表单中手动输入找到的ID是**中的一个难题

目前,上述文本字段的代码如下所示:

$fieldset->addField(
    'product_id', 
    'text', 
    array(
        'label'     => $helper->__('Product'),
        'class'     => 'required-entry',
        'required'  => true,
        'name'      => 'product_id'
    )
);

是否有一种简单的方法来显示产品选择器小部件而不是文本字段?

这种方法可能是一种选择:

这个问题很老了,但我要把它放在这里,供仍然有这个问题的人使用

我建议尝试此模块:。是的。这比将字段类型更改为“product_chooser”要简单一点,但比我迄今遇到的任何其他解决方案都要简单

在我保存后,它无法自动设置我的值,并且在加载页面时会加载为空。要解决此问题,您可以编辑Extendix/AdminFormChooserButton/Helper/Chooser.php并添加

if (isset($config['value'])){
    $element->setValue($config['value']);
}
之后

然后,您应该能够在配置定义中定义自己的“值”


需要注意的是,此模块不支持为一个字段选择多个产品。如果你想要不止一种产品,你需要多个字段。

我也有过这个想法,但我认为这是一个肮脏的解决方案。我希望做一些简单的事情,比如把字段的类型改成“product\u chooser”或者其他什么。不管怎么说,我想就像在马根托一样,这并不容易。至少在我(或其他人)找到更好的方法之前,我必须这样做。@Subsurf是的,解决方案似乎不是很方便,我同意。如果你遇到更好的选择,请在这里分享@你看过这里的帖子了吗?这不是一个非常有建设性的解决方案,因为它只是建议购买一个扩展,而不是从功能上解释如何实现这一点。此外,此评论鼓励直接修改第三方扩展代码,这也是不赞成的。如果需要修改模块的代码,最佳做法是根据第一个模块创建一个新模块,并使用依赖项注入覆盖所需的任何函数(请参阅)。
$element->setValue($dataModel->getData($element->getId()));