Расширение атрибута путем добавления свойства - PullRequest
0 голосов
/ 28 марта 2012

У меня есть сайт Magento, который будет содержать много атрибутов и наборов атрибутов.Каждая категория будет иметь свой собственный набор, и клиент хочет, чтобы представление категории и продуктов отображало различные атрибуты в зависимости от того, в какую категорию он входит.

Это было бы достаточно легко сделать в операторе switch / if, но я нене хочу делать жесткий код, если это возможно.

Моя идея состояла в том, чтобы добавить новое свойство к вызываемым атрибутам.'display_on_frontend', который я мог бы затем использовать в цикле, чтобы увидеть, должен ли отображаться атрибут.Возможно ли это сделать?

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

Вот код, который я использую для получения атрибутов в представлении продукта.

$_attributes = Mage::getModel('catalog/product_attribute_api')->items($_product->getAttributeSetId());

foreach ($_attributes as $_attribute) :
    $attributeFull = Mage::getResourceModel('eav/entity_attribute_collection')
                                                ->setCodeFilter($_attribute['code'])
                                                ->getFirstItem();
endforeach;

Пример ответа:

[_data:protected] => Array
    (
        [attribute_id] => 139
        [entity_type_id] => 4
        [attribute_code] => safe_working_load_range_tonnes
        [attribute_model] => 
        [backend_model] => 
        [backend_type] => int
        [backend_table] => 
        [frontend_model] => 
        [frontend_input] => select
        [frontend_label] => Safe Working Load (Tonnes)
        [frontend_class] => 
        [source_model] => eav/entity_attribute_source_table
        [is_required] => 0
        [is_user_defined] => 1
        [default_value] => 
        [is_unique] => 0
        [note] => 
    )

У кого-нибудь есть предложения?о том, как расширить атрибут или о разумном способе решения проблемы?

Спасибо

1 Ответ

0 голосов
/ 29 марта 2012

Во внутреннем интерфейсе, когда вы создали атрибут, есть выбор да / нет, который помечен как «Видимый на странице представления продукта в интерфейсе».

Перейдите в Admin> Каталог> Атрибуты> Управление атрибутами> выберите свой атрибут "display_on_frontend"> Свойства внешнего интерфейса> Измените "Видимый на странице просмотра продукта на внешнем интерфейсе" на "Да".

Затем, чтобы получить доступ к значению этого атрибута, вы можете просто позвонить:

$_product->getData("display_on_frontend");

или просто используйте погонщик на верблюжьем корпусе:

$_product->getDisplayOnFrontend();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...