Dobrze, dzięki atrybutom klienta Mam opcję wyboru z wielu opcji, którą dodałem do karty zarządzania klientami.Wyświetl atrybut wielu opcji klienta w strukturze zarządzania klientem
$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'),
));
mam mój atrybut dodany do kolekcji na szczycie mojej Grid.php:
->addAttributeToSelect('prod_codes')
Oto moja _filterProdOptionsCondition
metoda:
protected function _filterProdOptionsCondition($collection, $column) {
if(!$value = $column->getFilter()->getValue()) {
return;
}
$this->getCollection()->addFieldToFilter('prod_codes', array('finset' => $value));
#print($collection->getSelectSql());
}
Teraz ta praca dobrze i elegancko, jeśli mam tylko ONE z wybranych opcji, gdy zastosuję więcej niż jedną opcję atrybut klientów Dostaję puste wyniki w siatce administracyjnej, jednak wciąż można ją wyszukać.
Bliskie spojrzenie z nieumieszczonym komentarzem print($collection->getSelectSql());
Widzę, że wartości identyfikatora atrybutu są zwracane na liście rozdzielanej przecinkami.
Teraz na moje pytanie z tego tła określone, czy istnieje metoda lub "Magento" sposób wyświetlania tych opcji w sieci administracyjnej jestem tylko nieświadomy? Czy muszę po prostu uzyskać wartości przecinków rozbite i wezwać do nowej kolekcji do budowania wartości wyświetlania? Każda pomoc doceniona!
Ok wydaje muszę przedłużyć renderujący opcji dla siatki widget administratora. Zabawne, że najbardziej nieokreślone odpowiedzi były najbardziej pomocne. http://www.magentocommerce.com/boards/port.php/viewthread/25566/#t84377 – B00MER