Перейти к содержимому


Фотография
- - - - -

поиск сразу по двум полям


Лучший Ответ axeld , 20 November 2014 - 11:04

Задача решена. 

Кому надо.

Поиск по двум полям.

Чтобы фильтр искал данные по пользовательскому полю (text) или (textarea) и по артикулу (JBZoo Price - Advance)

надо

Создать копию элемента внутри jbuniversal/elements - нашем случае переписать папку text со всеми файлами из media/zoo/elements/text 
(стандартный элемент будет переопределен) и внести изменения в функцию.
     public function getSearchData() {
 
        $result = array();
        
        if ($this->identifier == 'be08ac54-524f-4a3f-b682-4b6d9e3f9f65') {
            $result[] = $this->getItem()->getElement('b0d2b218-87a9-4573-85b7-350d2eec1061')->getSearchData();
        }
        
        foreach ($this as $self) {
             $result[] = $this->_getSearchData();
        }
 
        return (empty($result) ? null : implode("\n", $result));
    }
ID элементов свои !
 
Это сделал 

SmetDenis 

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 11

#1 axeld

axeld

Отправлено 19 November 2014 - 08:50

Возможно ли как то сделать поиск сразу по двум полям ? 

==

У нас есть поле артикул и поле аналоги.

Если настроить поиск  по артикулу не находит все что в поле аналоги (это и понятно),

Если настроить поиск  по аналогам то не у всех товаров есть аналоги.

 

Если своими силами, не подскажите где почитать ?


  • 0

#2 SmetDenis

SmetDenis

Отправлено 19 November 2014 - 08:54

Артикул заполняется из элемента JBPriceAdvance ?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 axeld

axeld

Отправлено 19 November 2014 - 08:54

Артикул заполняется из элемента JBPriceAdvance ?

Да 


  • 0

#4 SmetDenis

SmetDenis

Отправлено 19 November 2014 - 09:01

Поиск по полю основывается на данных которые возвращает элемент через функцию getSearchData()

Поэтому попробовать заменить её в файле на
elements/jbpriceadvance/jbpriceadvance.php
 
    public function getSearchData()
    {
        $data = $this->_getBasicData();
        
        $otherElementData = $this->getItem()->getElement('<ELEMENT_ID>')->getSearchData();
        
        return $data['sku'] . "\n" . $otherElementData;
    }
и сделать переиндексацию.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 axeld

axeld

Отправлено 19 November 2014 - 09:19

В фильтре я должен выставить поиск по какому полю?

JBPriceAdvance или как было (пользовательское поле) ?


  • 0

#6 SmetDenis

SmetDenis

Отправлено 19 November 2014 - 09:23

По цене, которая теперь будет в поисковый индекс сохранять свой артикул + какое-то поле
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#7 axeld

axeld

Отправлено 19 November 2014 - 09:38

Не ищет по доп. полу.  :(

Вот исправил файл, сделал переиндексацию. 

Теперь ищет артикул цены, но любое значение доп. поля не ищет.
Может что-то  я забыл. ? 

 

Сайт http://baltautotech.ru

в аналогах товаров (пользовательское поле) есть MF529 - но его не находит

Прикрепленные изображения

  • 01.jpg

  • 0

#8 axeld

axeld

Отправлено 19 November 2014 - 13:14

Ну почему не ищет. Ведь вроде все правильно сделал  (sweat)


  • 0

#9 axeld

axeld

Отправлено 20 November 2014 - 08:56

А вы мне не поможете ?


  • 0

#10 SmetDenis

SmetDenis

Отправлено 20 November 2014 - 09:01

Можете дать мне временный доступ к вашему сайту (ftp+панель) ?
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!