У меня такая проблема с Magento CMS. Мне нужно найти всех производителей для категории.
На первый взгляд, это не проблема, потому что есть Блок фильтров и Слой навигации , из которого вы можете выбрать необходимые методы.
Прежде всего я создаю публичный метод в переопределенной модели категории /app/code/local/Mage/ Catalog/Model/Category.php
public function getManufacturers()
{
$collection = Mage::getResourceModel('catalog/product_attribute_collection')
->setItemObjectClass('catalog/resource_eav_attribute');
$setIds = $this->getProductCollection()->getSetIds();
$collection->getSelect()->distinct(true);
$collection
->setAttributeSetFilter($setIds)
->addStoreLabel(Mage::app()->getStore()->getId())
->setOrder('position', 'ASC');
$collection->addIsFilterableFilter();;
$collection->load();
return $collection;
}
Я вызываю этот метод в шаблоне категории:
$manufscturers = $_category->getManufacturers();
Итак, мы получаем огромный объект Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Collection
.
Тогда:
$items = $manufscturers->getItems();
И мы получаем объект Mage_Catalog_Model_Resource_Eav_Attribute
.
Тогда я не знаю, что делать. Это тупик. Может это неправильный путь?
Версия Magento - 1.4.0.1
Спасибо за вашу помощь!