Поиск на дополнительных страницах

Многие знают, что с поисков в webasyst очень много проблем и куча вопросов, у меня есть один.

Каким образом и где исправить ошибку вывода данных в теле шаблона для доп магазинов?

Адреса типа "www.choto.ru/blackfriday/" не выдают поиск (после нажатия энтер) априори, то есть показывает пустую страницу без товаров

2 ответа

  • 3
    Евгений Леман 15 декабря 2019 00:31 #

    То ли это неудачная попытка написать что-то осмысленное, то ли вы просто чихнули на клавиатуру... Будьте здоровы!

  • 1
    Никита Аристархов 15 декабря 2019 12:14 #

    Специально для остряков:


    Почему так поиск работает

    а так не работает

    • +1
      Fedoric Fedoric 15 декабря 2019 12:49 #

      Потому что судя по урлу это не дополнительный магазин, а страница все в том же магазине.

      • +1
        Никита Аристархов Никита Аристархов 15 декабря 2019 13:10 #

        Как можно исправить проблему?

        shopFrontendSearchAction

        public function execute()
            {
                $query = waRequest::get('query');
                //$this->setCollection(new shopProductsCollection('search/query='.str_replace('&', '\&', $query)));
                $this->setCollection(new shopProductsCollection('search/query='.str_replace('&', '\&', $query)));
        
                $query = htmlspecialchars($query);
                $this->view->assign('title', $query);
                $this->getResponse()->setTitle($query.' — '.$this->getStoreName());
        
                if ($this->layout) {
                    $this->layout->assign('query', $query);
                }
                if (!$query) {
                    $this->view->assign('sorting', true);
                }
        
                /**
                 * @event frontend_search
                 * @return array[string]string $return[%plugin_id%] html output for search
                 */
                $this->view->assign('frontend_search', wa()->event('frontend_search'));
                $this->setThemeTemplate('search.html');
            }

        • +1
          Павел Трофимов Павел Трофимов 15 декабря 2019 13:34 #

          Что вы хотите получить на выходе? С какой целью вам в URL'е потребовалось /sale/ и т.п.? 

          • +1
            Никита Аристархов Никита Аристархов 15 декабря 2019 13:38 #

            стандартный поиск товаров, при условии что "sale" остается, но он ничего не выдает в запросах. В url "sale" является страницей распродаж, например на НГ, хотелось бы иметь возможность искать товары в каждой такой "sale"

            • +1
              Павел Трофимов Павел Трофимов 15 декабря 2019 13:42 #

              Т.е. вы хотите чтобы поиск отрабатывал (отбирал товары) только в той категории, из которой к нему произошло обращение?

              • +1
                Никита Аристархов Никита Аристархов 15 декабря 2019 13:44 #

                Да, именно так

                • +1
                  Павел Трофимов Павел Трофимов 15 декабря 2019 14:00 #

                  Вряд ли вам удастся решить эту задачу вот так вот в лоб... Это должна быть или отдельная разработка (плагин), или поискать что-то приближенное в маркете WA. Из того что удалось найти навскидку:

                  • Поиск PRO (https://www.webasyst.ru/store/plugin/shop/searchpro/) (shop)
                  • Smart Поиск 2.2 (https://www.webasyst.ru/store/plugin/shop/searchsmart/) (shop)
                  • +1
                    Никита Аристархов Никита Аристархов 15 декабря 2019 14:04 #

                    Это понятно, но куда именно копать и где искать?

                    Плагины не подходят к сожалению

                    • +1
                      Павел Трофимов Павел Трофимов 15 декабря 2019 14:07 #

                      Да, плагины скорее всего не подходят, согласен.

                      Копайте в сторону создания своего плагина с роутингом и своим поисковым контроллером.

                      • +1
                        Никита Аристархов Никита Аристархов 15 декабря 2019 14:12 #

                        Придется, в таком случае, поиск переписать в плагин и сделать отслеживание адреса пользователя. Или, как вариант, просто передать значения поиска со страницы "sale" внутри плагина в обычный поиск, получить данные и вывести их на "sale". Но есть проблемка, при выводе дампа поиска во фронте, на странице "sale" ничего не выводит, следовательно, нет связи между основными страницами и отдельной папкой, например "sale". Что дальше?

                        • +1
                          Павел Трофимов Павел Трофимов 15 декабря 2019 14:19 #
                          поиск переписать в плагин и сделать отслеживание адреса пользователя

                          Ну очень грубо говоря - да

    • +1
      WebAsyst Master WebAsyst Master 15 декабря 2019 18:58 #

      А при чём здесь поиск. Вам же фильтр нужен.

      • +1
        Syrnik.com Syrnik.com 15 декабря 2019 19:53 #

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

      • +1
        Никита Аристархов Никита Аристархов 15 декабря 2019 20:27 #

        Фильтр это фильтр, а нужен конкретно поиск, получается, по отдельным категориям товаров с распродажами. Именно поиск. Куда копать?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите