После некоторого поиска я нашел его в Mage_Adminhtml_Model_Search_Customer
. Этот класс имеет метод load()
, который можно изменить, чтобы он возвращал дополнительные результаты поиска и измененный подтекст. Как ни странно, Magento фактически заставляет вас загружать все возможных результатов поиска для поиска и затем ограничивает их, но независимо от того, каков код для добавления поиска в настраиваемое поле:
Старый код:
$collection = Mage::getResourceModel('customer/customer_collection')
->addNameToSelect()
->joinAttribute('company', 'customer_address/company', 'default_billing', null, 'left')
->addAttributeToFilter(array(
array('attribute'=>'firstname', 'like'=>$this->getQuery().'%'),
array('attribute'=>'lastname', 'like'=>$this->getQuery().'%'),
array('attribute'=>'company', 'like'=>$this->getQuery().'%'),
))
->setPage(1, 10)
->load();
Я создал класс в локальном пространстве для переопределения этой функции и добавил следующее:
$collection = Mage::getResourceModel('customer/customer_collection')
->addNameToSelect()
->joinAttribute('company', 'customer_address/company', 'default_billing', null, 'left')
->joinAttribute('company_name', 'customer/company_name', 'entity_id', null, 'left')
->addAttributeToFilter(array(
array('attribute'=>'firstname', 'like'=>$this->getQuery().'%'),
array('attribute'=>'lastname', 'like'=>$this->getQuery().'%'),
array('attribute'=>'company', 'like'=>$this->getQuery().'%'),
array('attribute'=>'company_name', 'like'=>$this->getQuery().'%'),
))
->setPage(1, 10)
->load();
Теперь я могу использовать глобальный поиск для своего пользовательского атрибута! Надеюсь, это поможет кому-то еще.
Спасибо,
Джо