Строка поиска на сайте

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #1 makki » 18.03.2019, 10:43

Небольшое дополнение, для повышения юзабилити сайта.
В строке поиска отображается количество товаров на сайте. Например "Поиск из 2550 товаров"
Автор идеи и спонсор undermi

1) Файл view/IndexView.php
После строки

Код: Выделить всё

$this->design->assign('categories', $this->categories->get_categories_tree());

Добавляем

Код: Выделить всё

$this->design->assign('count_products', $this->products->count_products(array('visible'=>1)));


2) Файл design/ваш_шаблон/html/index.tpl
В форме поиска вместо строки

Код: Выделить всё

<input class="fn_search search_input" type="text" name="keyword" value="{$keyword|escape}" data-language="index_search" placeholder="{$lang->index_search}"/>

Пишем

Код: Выделить всё

<input class="fn_search search_input" type="text" name="keyword" value="{$keyword|escape}" data-language="index_search" placeholder="Поиск из {$count_products} товаров"/>
Последний раз редактировалось makki 18.03.2019, 11:39, всего редактировалось 1 раз.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 18.03.2019, 11:07

1. Если на сайте 2550 товаров, из которых только 1000 активны и реально могут находиться при поиске, то выводимая надпись "Поиск из 2550 товаров" некорректна.
2. При загрузке каждой страницы сайта выполняется отдельный SQL запрос. Несколько расточительно. С другой стороны - обязательно пользователю нужна абсолютно точная информация о числе товаров?
3. Формально предложенный функционал ПОРТИТ работу мультиязычности в строке поиске - еще один недостаток.

Как по мне, для такого мелкого функционала недостатков слишком много...

По-моему, куда лучше было бы просто написать "Поиск из более чем 2 тысяч товаров" в шаблоне. А еще лучше в переводах...

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #3 makki » 18.03.2019, 11:48

korshunov писал(а):1. Если на сайте 2550 товаров, из которых только 1000 активны и реально могут находиться при поиске, то выводимая надпись "Поиск из 2550 товаров" некорректна.
Исправил. Добавил фильтр по активным товарам.
2. При загрузке каждой страницы сайта выполняется отдельный SQL запрос. Несколько расточительно. С другой стороны - обязательно пользователю нужна информацияо абсолютно точная информация о числе товаров?
Да, такая была изначальная задача. Максимум что можно сделать чтобы немного облегчить запрос, это написать отдельный SQL запрос в БД а не использовать функцию, которая через LEFT JOIN подключает таблицу переводов. Например так:

Код: Выделить всё

SELECT COUNT(DISTINCT id) as count FROM __products WHERE visible=1

3. Формально предложенный функционал ПОРТИТ работу мультиязычности в строке поиске - еще один мелкий недостаток.
Не стал заморачиваться с этим. Несложно добавить новый перевод на свой вкус.
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя