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


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

Фильтр нестандартных элементов


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

#11 SmetDenis

SmetDenis

Отправлено 13 August 2012 - 17:57

Эти модели работают только для поиска.
Путь до них (как и другие) я указал чтобы вы могли сделать свой поиск, если это понадобиться...

Сохранением занимается только сам Zoo.
После удачного сохранения вызывается событие item:saved
К этому событию прицеплено действие, которое вызовет "JBModelSearchindex -> updateByItemId($item);"
Выберутся данные из таблицы _zoo_search_index
Данные обрабатываются и заносятся в отдельную таблицу jbzoo index

Собственно процесс переиндексации это ни что иное как переработка индекса Zoo в что-то более подходящее для поиска.

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



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


#12 SmetDenis

SmetDenis

Отправлено 13 August 2012 - 17:59

Как происходит сохранение подробно можно увидеть тут
administrator\components\com_zoo\tables\item.php ( public function save($object) ) - Это не относится к JBZoo
Ваши данные должны попасть в массив "search_data".


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



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


#13 svizina

svizina

Отправлено 13 August 2012 - 18:32

спасибо за развернутый ответ - переделал getSearchData вижу уже в массиве "search_data" index от категории бренда - это уже полдела
  • 0

#14 svizina

svizina

Отправлено 13 August 2012 - 18:40

еще

Соответственно после того как он появится, нужно пересохранить все материалы, чтобы данные попали в таблицы поискового индекса.

у меня 14 тыщ итемов товара (ручками это убийство) - посоветуйте как пересохранить (функция) все материалы автоматом чтоб заполнилась таб. jos_zoo_jbzoo_index ...
  • 0

#15 SmetDenis

SmetDenis

Отправлено 13 August 2012 - 18:50

На свой страх и риск попробуйте запустить следующий скрипт. Например из шаблона Zoo

<?php
$zoo = App::getInstance('zoo');
$allItems = $zoo->table->item->findAll(<ID ВАШЕГО КАТАЛОГА>);
foreach($allItems as $item) {
    $zoo->table->item->save($item);
}

die('Mission complete!');
?>



По идее должно сработать. Реализовать не сложно, но есть минусы.
В вашем случае займет довольно много времени и памяти. Поэтому предварительно настройте PHP чтобы он не свалился в самом интересном месте...
Думаю памяти 500мб хватит и убрать ограничение по времени. Как это сделать подскажет гугл.


Не забывайте бекапиться. Удачи! =)


PS Кусок кода не проверял, написал по памяти. Просто нет сайта под рукой... =)


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



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





Click to return to top of page in style!