Хорошо, так с Атрибутами Клиента у меня есть выбор из нескольких вариантов, который я добавил в Сетка управления клиентами.
$prodCode = Mage::getSingleton('eav/config')->getAttribute('customer','prod_codes');
$prodCodeOptions = $prodCode->getSource()->getAllOptions(false);
$prodOptions = array();
foreach($prodCodeOptions as $k)
$prodOptions[$k['value']] = $k['label'];
$this->addColumn('prod_codes', array(
'header' => Mage::helper('customer')->__('Product Code'),
'width' => '100',
'index' => 'prod_codes',
'type' => 'options',
'options' => $prodOptions,
'filter_condition_callback'
=> array($this, '_filterProdOptionsCondition'),
));
Мой атрибут добавлен в коллекцию в верхней части моей Сетки.php:
->addAttributeToSelect('prod_codes')
Вот мой _filterProdOptionsCondition
метод:
protected function _filterProdOptionsCondition($collection, $column) {
if(!$value = $column->getFilter()->getValue()) {
return;
}
$this->getCollection()->addFieldToFilter('prod_codes', array('finset' => $value));
#print($collection->getSelectSql());
}
Теперь это работает отлично и денди, если у меня только ONE из выбранных опций, как только я применю более одного параметра к атрибуту клиентов, я получу пустые результаты в сетке администратора, однако он все еще доступен для поиска.
При ближайшем рассмотрении без комментария print($collection->getSelectSql());
я вижу, что значения идентификатора атрибута возвращаются в списке через запятую.
Теперь на мой вопрос с выложенным фоном, есть лиметод или "Magento" способ отображения этих мульти-опций в сетке администратора, о которых я просто не знаю?Или мне просто нужно разобрать значения запятой и вызвать новую коллекцию для построения отображаемых значений?Любая помощь приветствуется!