在Magento的管理区域,我正在尝试创建一个依赖字段。依赖字段是仅可用/启用的字段,具体取决于值,例如,带有“是”或“否”值的下拉列表。从this blog post可以看出,这是Magento的内置功能。
然而,上面的博客文章(以及我发现的其他文章)假设这些字段已添加到system.xml
或使用下面概述的方法Vikram,但我想在定义时在我的模块安装脚本中添加依赖项我的属性,例如:
$installer->addAttribute(
'catalog_category',
'show_dependant',
array(
'label' => 'Show dependant?',
'group' => 'My Group',
'type' => 'int',
'input' => 'select',
'source' => 'eav/entity_attribute_source_boolean',
'required' => false,
'visible' => true,
'default' => '0',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
)
);
$installer->addAttribute(
'catalog_category',
'my_attribute_name',
array(
'label' => 'A New Attribute',
'group' => 'My Group', //will be created if necessary
'type' => 'int',
'class' => 'validate-number',
'required' => false,
// Would be something like this maybe?
'depends' => array('show_dependant', 1)
)
);
任何人都知道这是否可能?
答案 0 :(得分:1)
如果您使用的是 MAGENTO ADMIN FORMS ,请考虑此示例,仅在选择“指定”选项时显示文本字段。此方法使用admin表单而不是system.xml方法。
$form = new Varien_Data_Form();
$form->addField('yesno', 'select', array(
'label' => $this->__('Yes or No?'),
'values' => Mage::model('adminhtml/system_config_source_yesnocustom')
->toOptionArray(),
));
$form->addField('custom_value', text, array(
'label' => $this->__('Other'),
));
// Append dependency javascript
$this->setChild('form_after', $this->getLayout()
->createBlock('adminhtml/widget_form_element_dependence')
->addFieldMap('yesno', 'yesno')
->addFieldMap('custom_value', 'custom_value')
->addFieldDependence('custom_value', 'yesno', 2) // 2 = 'Specified'
);
您可以根据需要以这种方式添加任意数量的字段映射和字段依赖项。
答案 1 :(得分:0)
我通过为属性添加新的输入渲染器来创建简单的类别属性依赖关系。它是这样工作的: 您有几个属性:
– my_attribute
– my_attribute_text
– my_attribute_select
请注意,它们都是从 my_attribute 开始的。
第一个属性具有布尔类型。如果设置为true,则显示从 my_attribute 开始的其他属性。
来源 - https://github.com/elpas0/category_dependence
说明 - http://nwdthemes.com/2015/02/20/magento-category-attributes-dependency/