This is from my copy (1.7.0.2) of app/code/core/Mage/Catalog/Model/Layer/Filter/Attribute.php
_getOptionText
is returning an array, not a string like the code is clearly expecting. I'd see what class getFrontend
is returning and then see how that can be returning an array.
protected function _getOptionText($optionId)
{
return $this->getAttributeModel()->getFrontend()->getOption($optionId);
}
/**
* Apply attribute option filter to product collection
*
* @param Zend_Controller_Request_Abstract $request
* @param Varien_Object $filterBlock
* @return Mage_Catalog_Model_Layer_Filter_Attribute
*/
public function apply(Zend_Controller_Request_Abstract $request, $filterBlock)
{
$filter = $request->getParam($this->_requestVar);
if (is_array($filter)) {
return $this;
}
$text = $this->_getOptionText($filter);
if ($filter && strlen($text)) {
$this->_getResource()->applyFilterToCollection($this, $filter);
$this->getLayer()->getState()->addFilter($this->_createItem($text, $filter));
$this->_items = array();
}
return $this;
}