Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
фильтр товаров с условием OR и поиск по нескольким (не всем) разделам каталога

Автор bosyaРаздел Custom макросы

Ответов: 3
Просмотров: 3353
Последний ответ 18 Май 2012, 11:08:37
от web-industry
Поиск по каталогу только среди товаров из активных разедлов

Автор khpvolgaРаздел Шаблоны XSLT

Ответов: 3
Просмотров: 384
Последний ответ 04 Февраль 2016, 20:36:23
от crazygeorgio
НАстройка системных параметров при импорте из 1С (меню, поиск и т.п.)

Автор atachРаздел Custom макросы

Ответов: 3
Просмотров: 2057
Последний ответ 16 Ноябрь 2012, 16:18:48
от admin
В selector не работает поиск по имени объекта?

Автор verolomРаздел Custom макросы

Ответов: 0
Просмотров: 505
Последний ответ 22 Октябрь 2015, 03:29:04
от verolom
Как исправить поиск на сайте

Автор BabajkaРаздел Настройка системы и модулей

Ответов: 4
Просмотров: 2259
Последний ответ 17 Август 2012, 16:42:03
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

johnsmith

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Мультисайтовость + поиск
« : 27 Апрель 2016, 17:15:47 »
Здравствуйте!

Есть сайт(ы) на юми, в одной админке:
domain.ru
tema1.domain.ru
tema2.domain.ru
...
и т.д.

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

Спасибо!

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Мультисайтовость + поиск
« Ответ #1 : 27 Апрель 2016, 18:15:26 »
Самый простой способ - использовать uhttp://tema2.domain.ru/udata/search/search_do/?search_string=... и интерпретировать результаты поиска по каждому домену отдельно.

В ЮМИ жестко прописан домен, который используется для поиска - это текущий домен, так что без изменения системных файлов тут особо не поиграешься.
Мой блог http://umicms.me

*

johnsmith

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Re: Мультисайтовость + поиск
« Ответ #2 : 28 Апрель 2016, 09:40:25 »
Благодарю за ответ!

... и интерпретировать результаты поиска по каждому домену отдельно.
Т.е. получить N поисковых выдач (N = число доменов) и среди этих выдач еще как-то сортировать результаты по релевантности?

В ЮМИ жестко прописан домен, который используется для поиска - это текущий домен, так что без изменения системных файлов тут особо не поиграешься.
Ok, если ковырять системные файлы, есть какие-нибудь подсказки - какие, где, как? ;-)

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Мультисайтовость + поиск
« Ответ #3 : 28 Апрель 2016, 10:11:36 »
По сортировке и релевантности: я бы сказал, что все зависит от задачи. Если задача сводится к тому, чтобы перемешать все итоговые результаты - то да. А если можно представить дополнительные домены как разделы с поиском, типа "посмотрите еще и вот эти результаты" - то нет. Тут нужна конкретная детализация итоговой задачи.

По ковырянию системных файлов - /classes/system/subsystems/models/search/searchModel.php функция buildQueries строка $domain_id = cmsController::getInstance()->getCurrentDomain()->getId();
Но только я очень не рекомендую вам этого делать, ибо аукнется это все буквально через год
Мой блог http://umicms.me

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: Мультисайтовость + поиск
« Ответ #4 : 29 Апрель 2016, 09:47:44 »
Я обычно копирую системный файл searchModel в /classes/modules/search/ext/searchModelCustom.php (в нем переименовываю класс searchModel на searchModelCustom), затем подключаю его в макросе поиска
public function search_doCustom($template = "default", $search_string = "", $search_types = "", $search_branches = "", $per_page = 0) {
// Код пропущен
searchModel::getInstance();
require_once CURRENT_WORKING_DIR. '/classes/modules/search/ext/searchModelCustom.php';
$result = searchModelCustom::getInstance()->runSearch($search_string, $search_types, $arr_search_by_rels, $orMode);
}

И дальше вношу все изменения в файл searchModelCustom.php
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Мультисайтовость + поиск
« Ответ #5 : 29 Апрель 2016, 11:51:24 »
Результат хорош, но не до конца. В случае, если в ЮМИ решат, что функцию search_do нужно переписать - кастом все так же придется переделывать.

Так что при выборе решения внимательно смотрите на цели и на то, какой результат вы ожидаете получать
Мой блог http://umicms.me

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re: Мультисайтовость + поиск
« Ответ #6 : 29 Апрель 2016, 12:37:08 »
После обновления сравнить diff-ом два файла - дело одной минуты. Особенно, если есть IDE. На моей памяти функционал search_do кардинально не менялся последние два года.

Конкретно по этой задаче нужно убрать строчку 476 в файле с классом searchModelCustom:

s.domain_id = '{$domain_id}' AND

Возможно, после этого потребуется подправить код генерации ссылок (сложно сказать без боевого проекта).

Цитировать
Так что при выборе решения внимательно смотрите на цели и на то, какой результат вы ожидаете получать

Также не стоит забывать о сопутствующих факторах, как то:
- производительность решения
- сложность дальнейшей поддержки
- полнота решения задач клиента
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Мультисайтовость + поиск
« Ответ #7 : 29 Апрель 2016, 13:17:33 »
Полностью согласен с e.ioffe
Мой блог http://umicms.me

*

johnsmith

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Re: Мультисайтовость + поиск
« Ответ #8 : 05 Май 2016, 17:57:14 »
Благодарю за помощь! Чтобы все заработало как мне надо, достаточно было удалить строку с "domain_id" (как написал e.ioffe).
Но только я очень не рекомендую вам этого делать, ибо аукнется это все буквально через год
А почему не рекомендуете? И почему именно через год? Слетит при обновлении? Или еще какие-то причины?

Возможно, после этого потребуется подправить код генерации ссылок (сложно сказать без боевого проекта).
Да, потребуется. Ссылки локального домена генерятся так: "/path/to/page/", остальные домены так: "http://domain.ru/path/to/page/". В принципе, ссылки корректны и работают. Проблема возникает только тогда, когда есть необходимость показать УРЛ красиво и полностью (т.е. неважно - локальный, нелокальный домен - чтобы УРЛ всегда был таким: "http://domain.ru/path/to/page/"). Как сообщество любителей ЮМИ посоветует обойти эту проблему?

*

aghigay

  • *****
  • 599
  • +28/-3
  • Просто пытаюсь помочь. Иногда пинком
    • Просмотр профиля
    • umicms.me
Re: Мультисайтовость + поиск
« Ответ #9 : 05 Май 2016, 18:03:38 »
Через год - так как примерно за это время вы забудете где и что исправляли, случайно обновите ЮМИ и будете долго думать: как же теперь жить с результатами. Но для начала вам еще предстоит увидеть эту ошибку после обновления. А сделать это будет ОООООООчень непросто: результаты поиска ведь не всегда одинаковые :-)
Мой блог http://umicms.me