Как использовать интерфейс общедоступной функции Magento


У меня есть пользовательская функция в magento, как я могу сделать в интерфейсе, чтобы увидеть значения общедоступных функций?

Функция:

public function getOptionsWithValues()
{
    $attributes = $item->getOptionByCode('attributes')->getValue();

    if (!$attributes)
    {
        return null;
    }

    $attributes = unserialize($attributes);
    $options = array();

    foreach ($attributes as $attr_id => $attr_value)
    {
        $attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', $attr_id);

        $attr_options = $attribute->getSource()->getAllOptions(false);   

        foreach ($attr_options as $option)
        {
            if ($option['value'] == $attr_value)
            {
                $options[$attribute->getFrontendLabel()] = $option['label'];
            }
        }
    }

    return $options;
}

Спасибо

Author: Robert, 2016-04-26

2 answers

Как вы сказали, вы добавили этот код в /app/code/core/Mage/Wishlist/Model/Item/Option.php . Таким образом, вы можете создать экземпляр этого класса, используя заводские методы, такие как

$itemOption = Mage::getModel('wishlist/item_option');

Если вы попробуете этот код в отдельном файле и повторите get_class($itemOption), вы увидите имя класса. Теперь вы можете получить доступ к функции непосредственно с помощью объекта, например $itemOption -> getOptionsWithValues().

Но вы никогда не должны вносить изменения в основные файлы напрямую, скорее вы можете скопировать ту же структуру папок в локальную папку или переписать модель класс, который вы хотите переопределить.

 1
Author: Shrikant, 2016-04-26 12:48:48

В Magento, если вы хотите отобразить определенные значения, вызвав функцию. вам нужно определить эту функцию в блоке

  • .файл phtml: из этого файла шаблона вы можете вызвать любую функцию блока.

Если эта функция определена в блоке. вызовите его из файла phtml, используя этот код.

$blockObj = $this->getLayout()->getBlock('block_name'); 

Вызовите функцию блокировки

echo $blockObj->getOptionsWithValues();
 0
Author: Suyash Kumar Bharti, 2016-04-26 11:55:44