我一直在做前端magento,但才刚刚开始构建模块。这是我知道如何做前端的事情,但我在我的模块中苦苦挣扎。我现在要实现的目标是在管理员中使用所有可用的产品属性填充多选。包括所有产品属性集的自定义产品属性。我不完全确定这需要什么表,因为我不想假设启用了平面类别数据。
我在系统配置的一个新选项卡中创建了我的管理区域,我创建了一个多选字段,该字段当前仅填充了三个静态选项。这很管用。任何人都可以通过指出正确的方向来帮助我......目前这是我到目前为止所拥有的(因为它的价值)。
<?php
class test_test_Model_Source
{
public function toOptionArray()
{
return array(
array('value' => 0, 'label' =>'First item'),
array('value' => 1, 'label' => 'Second item'),
array('value' => 2, 'label' =>'third item'),
);
}
}
///////////////////////////// 编辑 //////////////////// ////////////////
我觉得我可能会在这里做点什么,但它只返回每个属性的第一个字母(所以我不确定它是否甚至是返回的属性)
public function toOptionArray()
{
$attributes = Mage::getModel('catalog/product')->getAttributes();
$attributeArray = array();
foreach($attributes as $a){
foreach($a->getSource()->getAllOptions(false) as $option){
$attributeArray[$option['value']] = $option['label'];
}
}
return $attributeArray;
}
///////////////////////////////// 编辑 //////////////// ////////////////////
我不是非常接近,因为我现在知道该数组正在返回我想要的所有属性代码。但是它仍然只输出每个字母的第一个字母......有人知道为什么吗?
public function toOptionArray()
{
$attributes = Mage::getModel('catalog/product')->getAttributes();
$attributeArray = array();
foreach($attributes as $a){
foreach ($a->getEntityType()->getAttributeCodes() as $attributeName) {
$attributeArray[$attributeName] = $attributeName;
}
break;
}
return $attributeArray;
}