Wiki

Clone wiki

Search in Shop in HostCMS v.6 Free / Home

Поиск по товарам интернет-магазина в HostCMS v.6 Халява

В данном репозитории размещена разработка для поиска по товарам интернет-магазина в HostCMS v.6 Халява.

Поиск осуществляется только по названию товара, по совпадению поискового запроса с подстрокой в названии товара. Поисковый запрос регистрово независим.

По умолчанию поиск осуществляется среди товаров из всех групп магазина, возможно ограничение поиска по одной конкретной группе. Ограничение поиска по набору групп, или по группе с подгруппами не поддерживается.

Поиск осуществляется только по основным товарам - модификации в поиске не участвуют. Поиск поддерживает пейджинг, число товаров на странице определяется из настроек того Интернет-магазина, по которому осуществляется поиск.

Данная разработка представляет собой очень частный случай ТДС "Интернет-магазин" и XSL-шаблона "МагазинКаталогТоваров" от стандартного демо-сайта с макетом "Корпорация v.6".

Дальнейшей развитие поиска по товарам в Халяве не планируется!

Как скачать

Для того чтобы получить самую последнюю версию кода, содержащую все исправления, воспользуйтесь следующей ссылкой: https://bitbucket.org/JamesKotov/search-in-shop-in-hostcms-v.6-free/get/tip.zip

Как установить

Установка поиска по товарам очень проста, и осуществляется в несколько шагов.

  1. В разделе ЦА "XSL-шаблоны" создайте новый шаблон с именем "МагазинКаталогТоваровПоиск", и скопируйте в него весь код из файла xsl_template.xsl
  2. В разделе ЦА "Типовые динамические страницы" перейдите в группу "Интернет-магазин" и создайте новую ТДС:
    1. на вкладке "Основные" в поле "Название типовой динамической страницы" напишите "Интернет-магазин Поиск";
    2. на вкладке "Настройки страницы" не делайте ничего;
    3. на вкладке "Код страницы" в поле "PHP код типовой динамической страницы" скопируйте весь код из файла lib.php
    4. Нажмите "Применить"
  3. В разделе ЦА "Типовые динамические страницы" посмотрите, какой код присвоился вашей ТДС
  4. Откройте блокнотом файл lib_params.sql и вместо слов "ID_ВАШЕЙ_ТДС_ЗДЕСЬ" впишите цифрой код вашей ТДС (без кавычек). В начале файла содержится комментарий с примерами правильного запроса.
  5. Перейдите в раздел ЦА "SQL-Запросы" скопируйте из блокнота исправленный запрос в поле "Текст запроса" и нажмите "Выполнить запрос". На вопрос "Вы уверены, что хотите выполнить данный запрос?" ответьте "ОК".
  6. Перейдите в раздел ЦА "Структура сайта". Перейдите в раздел структуры "Интернет-магазин" (/shop/) и создайте там новый раздел:
    1. В поле "Название раздела в меню" напишите "Поиск";
    2. В поле "Название раздела" напишите "search";
    3. В переключателе "Тип раздела" выберите "Типовая динамическая страница";
    4. В появившемся после предыдущего пункта списке "Макет" выберите "Шаблон для интернет-магазина";
    5. В Списке "Раздел" выберите "Интернет-магазин", в списке "Страница" выберите "Интернет-магазин Поиск". Нижеследующие настройки оставьте как есть;
    6. Нажмите "Применить".
  7. Страница поиска по товарам готова.

Как использовать

Ниже я приведу несколько примеров использования и внедрения поиска по товарам в Халяве.

Примеры поискового запроса:

  • Самый простой пример поискового запроса - http://mysite.ru/shop/search/?text=Whirlpool - запрос ищет во всех группа магазина товары, содержащие в названии слово "Whirlpool"
  • Наиболее полный url запроса содержит указатель на текущую страницу, параметр text и параметр group_id: http://mysite.ru/shop/search/page-2/?text=H&group_id=586 Этот запрос отобразит вторую страницу результатов поиска товаров из группы "Видеокамеры" (id=586), в названии которых встречаются буквы H или h.

Пример простейшей формы для поиска:

<p>Поиск товаров</p>
<form action="/shop/search/" method="get">
	<input type="text" name="text" />
	<input type="submit" value="Искать" />
</form> 

Более сложная форма, с передачей текущей группы:

<p>Поиск товаров</p>
<form action="/shop/search/" method="get">
	<input type="text" name="text" />
	<input type="checkbox" name="group_id" value="586" /> - искать только в текущей группе
	<input type="submit" value="Искать" />
</form> 

Данную форму целесообразно внедрять в XSL-шаблон "Магазин каталог товаров", передавая значение в чекбокс с помощью

<input type="checkbox" name="group_id" value="{/shop/group}" /> - искать только в текущей группе

Поисковая форма с выбором нужной группы:

<p>Поиск товаров</p>
<form action="/shop/search/" method="get">
	<input type="text" name="text" />		
	Искать в группе:
	<select name="group_id">
		<option value="0">по всем группам</option>
		<option value="586">Видеокамеры</option>
		<option value="587">Плазменные панели</option>
		<option value="588">Цифровые фотоаппараты</option>
		<option value="599">MP3-плееры</option>
	</select>
	<input type="submit" value="Искать" />
</form> 

XSL-код для постоения форм я здесь не привожу, т.к. он может сильно отличаться в зависимости от места размещения формы, а также метода и контекста ее построения.

P.S.

А лучше всего, не жадничать, и купить за 1900 рублей редакцию "Мой сайт", с родным поиском от HostCMS ;-)

--

Желаю вам удачи в разработке ваших сайтов!

С уважением, Евгений В. Котов, web-разработчик

--

P.S. Если вы хотите сказать автору спасибо, или просто сделать ему приятно, то вы можете сделать это

  • Вебманями, в кошелек R224757089049;
  • Яндекс.Деньгами, на счет 41001811131268
  • или Кивями, на номер +79213098751.

Updated