У меня есть сайт 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] =>
)
У кого-нибудь есть предложения?о том, как расширить атрибут или о разумном способе решения проблемы?
Спасибо