Я делаю frontend magento некоторое время, но только что начал строить модули. Это то, что я знаю, как делать интерфейс, но я боюсь в своем модуле. То, что я пытаюсь достичь на данный момент, заполняет multiselect в admin со всеми доступными атрибутами продукта. Включая пользовательские атрибуты товара для всех наборов атрибутов продукта. Я не совсем уверен, какую таблицу это потребует, потому что я не хочу предполагать, что данные категории Flat включены.Получить список всех атрибутов продукта в 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'),
);
}
}
///////////////////////////// EDIT ///////////// ////////////////////////
Я чувствую, что могу быть здесь, но он возвращает только первую букву каждого атрибута (так я не уверен, если его даже атрибуты его возвращения)
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;
}
////////////////////////////// /// EDIT //////////////////////////////////////
Я не очень закрыть, поскольку теперь я знаю, что массив возвращает то, что я хочу, все атрибуты_кодов. Однако он все равно выводит только первую букву каждого ... Кто-нибудь знает почему?
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;
}
См. Выше edit ^^ –
Можете ли вы разместить часть print_r массива? – Mat
Так что, если я маг :: войти во второй цикл по каждому элементу $ ATTRIBUTENAME он возвращает: DEBUG (7): allow_message DEBUG (7): allow_open_amount DEBUG (7): AW_commission_group DEBUG (7): box_depth DEBUG (7): box_height DEBUG (7): box_weight DEBUG (7): box_width DEBUG (7): бренд DEBUG (7): can_be_gift_wrapped DEBUG (7): category_ids ..... Но когда я возвращаю массив, параметры multiselect отображают только первую букву каждого атрибута_код –