DARTHARTH

Скрипт замены input radio на checkbox в модуле Better Exposed Filters

Небольшой костыль для модуля Better Exposed Filters на Drupal 7, который в представлениях почему-то не умеет из коробки выводить фильтры или сортировку именно чекбоксом. В списке выбора есть пункт радиокнопка/чекбокс, но при его выборе выводится только радиокнопка.

Для нашего костылинга сделаем копию файла site/all/modules/views/theme/views-view.tpl.php и кидаем эту копию в папку с шаблонами нашей темы.

Открываем файл на редактирование и находим строки отвечающие за вывод сортировки и фильтрации представления

<?php if ($exposed): ?>
   <div class="view-filters">
      <?php print $exposed; ?>
   </div>
<?php endif; ?>

Добавляем скрипт простой замены типа инпута

<script>
   (function($){
      $(document).ready(function() {
         $('input.form-radio').prop('type','checkbox');
      });
   })(jQuery);
</script>

Стоит отметить, что «form-radio» у нас является классом инпута, где нужно осуществить замену.

В итоге строчки фильтрации/сортировки будут примерно такими

<?php if ($exposed): ?>
   <div class="view-filters">
      <?php print $exposed; ?>
         <script>
	    (function($){
	        $(document).ready(function() {
		   $('input.form-radio').prop('type','checkbox');
		});
	      })(jQuery);
	  </script>
    </div>
<?php endif; ?>

Вот и всё. Не стоит воспринимать этот костылинг как единсвтенное правильное решение для подобной задачи, просто легкий, быстрый и наименее болезненный способ замены типа инпута.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up