Добавьте к глобальному поиску на стороне администратора Magento - PullRequest
0 голосов
/ 05 марта 2010

Как добавить поле базы данных в глобальный поиск Magento? Я хочу создать настраиваемое поле "название компании" в клиентах, а затем сделать его доступным для поиска с помощью этой глобальной панели поиска на административной панели.

1 Ответ

1 голос
/ 09 марта 2010

После некоторого поиска я нашел его в 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();

Теперь я могу использовать глобальный поиск для своего пользовательского атрибута! Надеюсь, это поможет кому-то еще.

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...