mFilter - TV выпадающим списком.

Доброго времени суток!

Иногда, когда вариантов параметра очень много, стандартные чекбоксы mFilter не удобны. Обычный выпадающий список был бы намного удобней.

Очень интересует вопрос — как привести фильтр к виду выпадающих списков?

Заранее благадарен.
Fedor
16 февраля 2013, 12:06
modx.pro
3 857
0

Комментарии: 15

Василий Наумкин
16 февраля 2013, 17:34
0
Такого не предусмотрено, но ты можешь попробовать поменять чанк для чекбоксов. В ckeckbox outer пропиши тег select, а в checkbox row — тег option.
    Fedor
    16 февраля 2013, 18:20
    0
    Вот только есть проблема — в моей версии нет чанка 'ckeckbox outer' — есть только row.
    Мне к сожалению сложно понять где искать 'ckeckbox outer'

    Василий, не могли бы вы более конкретнее указать на нужные чанки.

      Василий Наумкин
      16 февраля 2013, 19:33
      0
      tpl.mFilter.param.outer.

      Еще можно этого не всего не делать, а просто указать в css, чтобы блоки в большим количеством чекбоксов прокручивались. У каждого блока есть id, который зависит от имени параметра. Посмотри какой html генерируется — поймешь.

      Типа такого:
      #mfilter_ms_add1 {
      	height: 250px;
      	overflow: auto;
      }
        Fedor
        16 февраля 2013, 22:37
        0
        Спасибо, попробую.

        можно этого не всего не делать, а просто указать в css, чтобы блоки в большим количеством чекбоксов прокручивались.
        Так дело в эстетике еще :) Зачем столько места занимать в принципе, тем более когда вариант выбора только 1н. Не всегда же множественный выбор. Получается не совсем корректно..)
          Fedor
          16 февраля 2013, 22:55
          0
          Василий, если изменять чанк tpl.mFilter.param.outer, то меняется и шаблон слайдера. А это очень не хорошо :(
            Василий Наумкин
            16 февраля 2013, 22:58
            0
            Поэтому я и написал в первом комментарии, что «Такого не предусмотрено».
              Fedor
              16 февраля 2013, 23:01
              0
              Т.е. вариантов никаких?
      Fedor
      16 февраля 2013, 18:14
      0
      Спасибо, попробую)

      Было бы круто включить такую возможность в новые версии. Думаю, это не такой уж частный случай :)
        Василий Краковецкий
        16 февраля 2013, 23:56
        0
        github.com/vasia123/mSearch — вот тут у меня лежит версия в которой я сделал &tplParamCheckboxOuter и теперь если переопределить его и &tplParamCheckbox то можно получить выпадающий список, но минус в том что нельзя одни поля сделать селектами, а другие чекбоксами, т.е. либо то либо другое.

        пример mFilter.param.select.outer:
        <select name="[[+paramname]][]" >
        <option value="">-- Все --</option>
        [[+inner]]
        </select>
        пример mFilter.param.select:
        <option value="[[+value]]">[[+value]]</option>
          Fedor
          17 февраля 2013, 01:44
          0
          Большое спасибо, попробую!
            Сергей Глазунов
            06 августа 2014, 03:20
            0
            Подскажите пожалуйста по пунктам, как правильно все это переделать?
            Попробовал заменить все файлы с Github
            Тут: assets / components / msearch /
            Тут: core / components / msearch /

            Добавил чанки:
            mFilter.param.checkbox.outer
            mFilter.param.number.outer
            mFilter.param.select.outer
            mFilter.param.select

            И заменил код в снипетах с Github:
            mFilter
            mSearch

            Обновил кэш.
            В итоге ничего не находит через поиск вообще. Пишет «Ничего не найдено».
            Индексировать после всех изменений пробовал…
            Как же переделать эти чекбоксы в селекты ???
              Василий Краковецкий
              06 августа 2014, 14:23
              0
              Смысл не в замене вообще всех файлов, а вот в этих изменениях — github.com/bezumkin/mSearch/pull/9/files за давностью уже не вспомню подробностей, но если выводятся селекты правильно, то нужно копать javascript
                Сергей Глазунов
                06 августа 2014, 14:42
                0
                Ок, попробую заменить только строки. Красные строчки заменяю зелеными, значит?
                  Сергей Глазунов
                  06 августа 2014, 18:42
                  0
                  Возможно глупый вопрос, но эта ведь папка _build для установки из репозитория? То есть ее отредактировать сейчас не получится, потому что ее нету:
                  _build/data/transport.chunks.php
                  _build/properties/properties.php
                  Где редактировать эти файлы?
                  Было бы здорово, если бы чуточку подробнее объяснили, как все правильно сделать ?

                  Например:
                  1. Идем сюда assets/components/msearch/js/mfilter.js меняем на код из Github

                  2. Идем сюда core/components/msearch/elements/chunks/mFilter.param.checkbox.outer.tpl меняем на код из Github

                  3. Идем сюда core/components/msearch/elements/chunks/mFilter.param.number.outer.tpl меняем код из Github

                  4. Идем сюда core/components/msearch/elements/snippets/snippet.mfilter.php меняем код из Github

                  5. Идем сюда core/components/msearch/lexicon/en/properties.inc.php меняем код из Github

                  6. Идем сюда core/components/msearch/lexicon/ru/properties.inc.php меняем код из Github

                  7. Идем в админку сайта и добавляем 4 чанка:
                  tpl.mFilter.param.checkbox.outer
                  Содержания:
                  [[+inner]]

                  tpl.mFilter.param.number.outer
                  Содержания:
                  [[+inner]]

                  tpl.mFilter.param.select
                  Содержания:
                  <option value="[[+value]]">[[+value]]</option>

                  tpl.mFilter.param.select.outer
                  Содержания:
                  <select name="[[+paramname]][]" >
                  <option value="">-- Все --</option>
                  [[+inner]]
                  </select>

                  8. Чанк mFilter
                  Содержание:
                  <div class="row">
                  	<div class="span3">
                  		<div class="filter">
                  			<form action="[[~[[*id]]]]" method="post" id="mFilter">
                  				[[!mFilter?
                  					&resources=`[[!getCatIds?parents=`2`]]`
                  					&includeTVs=`0`
                  					&includeMS=`1`
                  					&includeMSList=`vendor:extra_filter_vendor,price,new,favorite,popular,size,color`
                  					&sortFilters=`ms_vendor,ms_price,ms_new,ms_favorite,ms_popular,ms_size,ms_color`
                  					&tpl=`tpl.msProducts.row`
                  					&pageNavScheme=`abs`
                  				]]
                  				<input type="hidden" name="query" value="[[+mse.query]]">
                  				<input type="hidden" name="page" value="1">
                  				<input type="hidden" name="sort" value="ms_price,asc">
                  				<input type="hidden" name="limit" value="3">
                  				<input type="hidden" name="parents" value="[[+parents]]">
                  				<input type="hidden" name="action" value="filter" />
                  			</form>
                  		</div><!-- end_filter -->
                  	</div>
                  	<div class="span9" id="mItems"></div>
                  </div>
                  
                  <link href="/manager/templates/firstgm/css/jquery-ui.min.css" rel="stylesheet" />
                  <script src="http://yandex.st/jquery-ui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
                  <script src="/assets/components/msearch/js/mfilter.js" type="text/javascript"></script>
                  Поиск и фильтр работают, но чекбоксы остались чекбоксами. Что еще нужно сделать?
                  Помогите разобраться пожалуйста.
              Мордынский Николай
              18 февраля 2013, 09:57
              0
              Проблема тоже стала актуальной((
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                15