Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Поиск с выбором категории в шапке


Recommended Posts

Здравствуйте. Не могу найти модуль который используется во многих шаблонах.  шапке строка поиска и сбоку выбор в какой категории искать.

Картинку с примером прилагаю.:unsure:

 

Clip2net_210606080839.png

Надіслати
Поділитися на інших сайтах


Посмотреть, как реализовано на странице поиска. Там штатно есть такая возможность. Повторить.

Только обратите внимание, что контроллер поиска собирает массив $categories(); а т.к. поиск находится в шапке и контроллер header'a тоже собирает массив с таким именем, то изменить ему название, в шаблоне соответственно тоже. Скрипт этого поиска также в файле шаблона - catalog/view/theme/default/template/product/search.twig в конце файла. Найти можно по:

$('#button-search').bind('click', function() {

 

Надіслати
Поділитися на інших сайтах

2 минуты назад, SGrWr_34 сказал:

Посмотреть, как реализовано на странице поиска. Там штатно есть такая возможность. Повторить.

Мне кажется, скачать бесплатный модуль и посмотреть будет все же проще :)

  • +1 1
Надіслати
Поділитися на інших сайтах


@Shureg Мне кажется, равнозначно. Что в бесплатный модуль, что в штатное решение = смотреть :)

  • +1 1
Надіслати
Поділитися на інших сайтах

<div class="categories hidden-xs">
<div class="select-wrapper">
<div class="select-arrow-3"></div>
<select name="category_id" class="form-control">
<option value="0">{{ text_search_cat }}</option>
{% for category_1 in categories %}
<option value="{{ category_1['category_id'] }}">{{ category_1['name'] }}</option>
{% for category_2 in category_1['children'] %}
<option value="{{ category_2['category_id'] }}">&nbsp;&nbsp;&nbsp;-&nbsp;{{ category_2['name'] }}</option>
{% endfor %}
{% endfor %}
</select>
</div>
</div>

Нашла в одном шаблоне вот такой код в search.twig

Но контроллера почему-то нет ни к этому файлу, ни к header.

Непонятно откуда тянутся в таком случае категории

Надіслати
Поділитися на інших сайтах


@dizastill нет файла catalog/controller/common/header.php ?

Не может быть

Надіслати
Поділитися на інших сайтах

@SGrWr_34

Нет в файлах конкретного шаблона. Значит контроллер используется дефолтный. И работоспособность кода выше задается скриптом. Осталось его найти. Как-то так)

Надіслати
Поділитися на інших сайтах


Итак, вроде что-то получилось.

В контроллер добавляем /catalog/controller/common/search.php

 

if (isset($this->request->get['category_id'])) {
						$category_id = $this->request->get['category_id'];
					} else {
						$category_id = 0;
					}
					$this->load->model('catalog/category');
					$data['categories'] = array();
					$categories_1 = $this->model_catalog_category->getCategories(0);
					foreach ($categories_1 as $category_1) {
						$level_2_data = array();
						$categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);
						foreach ($categories_2 as $category_2) {
							$level_2_data[] = array(
								'category_id' => $category_2['category_id'],
								'name'        => $category_2['name'],
							);
						}
						$data['categories'][] = array(
							'category_id' => $category_1['category_id'],
							'name'        => $category_1['name'],
							'children'    => $level_2_data
						);
					}

 

Файл шаблона выглядит так /template/common/search.twig

 

<div id="search" class="input-group">
<div class="categories hidden-xs">
<div class="select-wrapper">
<div class="select-arrow-3"></div>
<select name="category_id" class="form-control">
<option value="0">{{ text_search_cat }}</option>
{% for category_1 in categories %}
<option value="{{ category_1['category_id'] }}">{{ category_1['name'] }}</option>
{% for category_2 in category_1['children'] %}
<option value="{{ category_2['category_id'] }}">&nbsp;&nbsp;&nbsp;-&nbsp;{{ category_2['name'] }}</option>
{% endfor %}
{% endfor %}
</select>
</div>
</div>
<input type="text" name="search" value="{{ search }}" placeholder="{{ text_search }}" class="form-control input-lg" />
<span class="input-group-btn">
<button type="button" class="btn btn-default btn-lg"><i class="fa fa-search"></i></button>
</span>
</div>

 

Поиск работает, но категории значение не передает. Вопрос что еще нужно добавить?

Может знает кто-то? Не только же мне по-любому решение нужно. Достаточно популярный вариант реализации поиска...

Надіслати
Поділитися на інших сайтах


8 минут назад, dizastill сказал:

Не только же мне по-любому решение нужно. Достаточно популярный вариант реализации поиска...

 

Так он во многих шаблонах уже есть, как вы написали )

Надіслати
Поділитися на інших сайтах

@dizastill в шаблоне product/search.twig еще есть скрипт вот такой
 

Spoiler

$('#button-search').bind('click', function() {
    url = 'index.php?route=product/search';

    var search = $('#content input[name=\'search\']').prop('value');

    if (search) {
        url += '&search=' + encodeURIComponent(search);
    }

    var category_id = $('#content select[name=\'category_id\']').prop('value');

    if (category_id > 0) {
        url += '&category_id=' + encodeURIComponent(category_id);
    }

    var sub_category = $('#content input[name=\'sub_category\']:checked').prop('value');

    if (sub_category) {
        url += '&sub_category=true';
    }

    var filter_description = $('#content input[name=\'description\']:checked').prop('value');

    if (filter_description) {
        url += '&description=true';
    }

    location = url;
});

$('#content input[name=\'search\']').bind('keydown', function(e) {
    if (e.keyCode == 13) {
        $('#button-search').trigger('click');
    }
});

 

Подставьте айдишники полям и кнопке соответствующие - все заработает

 

В вашем случае будет на кнопке

<button type="button" class="btn btn-default btn-lg" id=button-search"><i class="fa fa-search"></i></button>

и в скрипте

var category_id = $('#content select[name=\'category_id\']').prop('value');

заменить на

var category_id = $('#category_id').prop('value');

 

 

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.