Перейти к содержанию
stparts

Перенаправление страницы поиска

Рекомендуемые сообщения

Здравствуйте.

Подскажите, мне необходимо заменить страницу поиска, при отсутствии результатов, на свою. 

Т.е. если поиск ничего не нашёл, то вывести свою страницу, а не стандартную.

Как это возможно сделать?

OcStore 2.3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ничего умнее не приходит в голову кроме как при помощи js ловить фразу пустых рез-тов поиска и редиректить им же

фраза в catalog\language\ru-ru\product\search.php 

ловить примерно так: $(':contains(Нет товаров, соответствующих критериям поиска.)')

ну перенаправить самое простое)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а расскажите какую цель преследуете, может есть более изящное решение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
27 минут назад, PaulKravchenko сказал:

Ничего умнее не приходит в голову кроме как при помощи js ловить фразу пустых рез-тов поиска и редиректить им же

а посмотреть в контроллер например?

			$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			$results = $this->model_catalog_product->getProducts($filter_data);

 

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
11 часов назад, PaulKravchenko сказал:

а расскажите какую цель преследуете, может есть более изящное решение

Хочу сделать поиск по сторонней БД, если нет товара в магазине. Сейчас использую две поисковые строки, а это неудобно. Если заменить эту страницу на второй поиск, то можно оставить одну поисковую строку, и если товара нет в магазине, автоматически будет происходить его поиск в другом поиске. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне кажется, что можно реализовать подключение ко второй БД в контроллере поиска и выполнять поиск по ней по условию отсутствия результатов в БД магазина

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, PaulKravchenko сказал:

мне кажется, что можно реализовать подключение ко второй БД в контроллере поиска и выполнять поиск по ней по условию отсутствия результатов в БД магазина

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

Поиск у меня реализован, мне нужна переадресация с переменной поиска. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
16 часов назад, Otvet сказал:

а посмотреть в контроллер например?


			$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			$results = $this->model_catalog_product->getProducts($filter_data);

 

 

Спасибо за подсказку.

В файле catalog/controller/product/search.php  сделал так:

			$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

			$results = $this->model_catalog_product->getProducts($filter_data);
			if ($product_total == '0') {
                header ('Location: /autoparts/search/'.$search); //отправка в новый поиск
                die;
                }

 

Изменено пользователем stparts

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

правильнее

if ((int)$product_total == 0) $this->response->redirect(****, 301);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.