Вход • Регистрация

Магазин/Поиск с учётом категорий

  • 09 января 2011 г. , редакция: 09 января 2011 г.
  • Здравия желаю.
    Помогите сделать поиск в магазине с учётом выбора категории. В файле shop.view шаблонной функции поиска по товарам в категориях есть строка
    Код
    <input type="hidden" value="'.$result["cat_id"].'" name="catid">'

    Хочу сделать выпадающий список категорий, чтобы поиск осуществлялся по остальным параметрам в выбранной. Если я тип формы прописываю как select, то в форме у меня выводится цифра "0", а не выпадающий список, хотя бы, всех категорий почисленно. Как бы исхитриться?
    • 11 января 2011 г.
    • Так смотри сам. Когда ты находишься в каталоге то существуют глобальные переменная окружения позиционирующие твоё положение. ID категории и уровень погружения внутрь и ещё ссылки на соседей этого уровня. И всё. Если тебе нужен список категорий, то придётся делать выборку категорий по которым ты хочешь осуществлять поиск ( возможно с учётом вложенности или на сколько глубоко ты хочешь погрузится).
      По умолчанию поиск работает от места нахождения. То-есть если у тебя есть 2 категории: Телефоны и Ноутбуки и ты находишься в категории телефоны, то ноутбук никакой найти не сможешь.
      • 11 января 2011 г.
      • в том оно и дело, что форма поиска будет только там, где доступны все категории . У меня получается переделка модуля магазин под туристическое агентство, категории - это список стран, чтобы при поиске пользователь мог выбрать одну и по этой категории производился поиск
        • 12 января 2011 г. , редакция: 12 января 2011 г.
        • Можете список категорий брать из базы данных, тогда надо в моделе в функции show_search делать запрос к таблице категорий магазина и сохранять данные, предположим в переменную $this->result["category"] в таком формате:
          Код
          array(id => name, id2 => name2, ...)

          А затем в шаблоне уже циклом надо пройтись по полученным данным
          Код
          echo '<select name="catid">';
          foreach($result["category"] as $id => $name)
          {
          echo '<option value="'.$id.'"'.($id == $result["cat_id"] ? 'checked' :
          '').'>'.$name.'</option>';
          }
          echo '</select>';

          Можно и статичный список категорий в шаблоне задать. Если категории меняются редко и Вам трудно в модель лезть.
          тогда список готовится примерно такой:
          Код
          $result["category"] = array(3 => 'Италия', 5 => 'Франция', ...);

          И ниже тот же цикл
      • 12 января 2011 г.
      • Не обязательно. Такая логика верна, если в теге show_search module="shop" задать атрибут cat_id="current". По умолчанию же поиск осуществляется по всем категориям.
        Так ведет себя тег начиная с релиза 4.3.4.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум