Перейти к содержимому


Фотография
- - - - -

Как Изменить Код Checkbox Выводимого В Фильтре


Лучший Ответ Sandmansss , 21 February 2019 - 11:51

Спасибо. Уже решил через jQuery

 

Может кому потребуется.

В mod_jbzoo_search.php добавил 

echo '<script src="/templates/jblank/js/jbzoo-filter.js" type="text/javascript"></script>';

в "/jblank/js/" создал - jbzoo-filter.js с кодом

if (typeof jQuery != "undefined") jQuery(function ($) {
 
 $(window).load(function() { 
		var tag_val = $(".checkbox-lbl"); 
        for (i = 0; i < tag_val.length; i++) {
			var input = $(tag_val[i]).find("input");
			var s_temp = $(tag_val[i]).text().trim();
			$(tag_val[i]).html("").append(input).append("<span>" + s_temp + "</span>");  
			}
	}); 
});

При загрузке страницы подменяет код. 

В принципе это годится как рецепт ко всем подобным ситуациям, когда надо переопределить код не трогая основных модулей

Перейти к сообщению


Сообщений в теме: 5

#1 Sandmansss

Sandmansss

Отправлено 20 February 2019 - 17:02

У меня есть ряд параметров в фильтре в виде чекбоксов.

сейчас отдельный чекбокс выводится так 

<label for="id-boboli-642082" class="checkbox-lbl lbl-boboli"> 
<input value="Boboli" name="e[45d76de4-1c84-4d10-aeb6-14e5d3706a4b][]" type="checkbox" class="value-boboli" id="id-boboli-642082" checked="checked"> 
  Boboli (2)
</label>

А мне надо добавить тег span между тегами label

Вот так 

<label for="id-boboli-642082" class="checkbox-lbl lbl-boboli"> 

<input value="Boboli" name="e[45d76de4-1c84-4d10-aeb6-14e5d3706a4b][]" type="checkbox" class="value-boboli" id="id-boboli-642082" checked="checked"> 
<span class="myClass">
Boboli (2)
</span>
</label>

Вроде все перерыл, никак не пойму где правки вносить.

Это необходимо для переопределения внешнего вида чекбокса, а то стандартный очень уж уродлив.

 

Может кто нибудь подсказать.


  • 0

#2 Станислав

Станислав

Отправлено 20 February 2019 - 19:51

Насколько помню, в JBZoo чекбокс используется от стандартного элемента ZOO.

media\zoo\elements\checkbox\checkbox.php

  • 0

«Ну и зачем все это, лучше бы водки выпили». Из писем Белинского Гоголю.

 


#3 Sandmansss

Sandmansss

Отправлено 21 February 2019 - 10:11

Не то. 

Я пробовал даже удалять - media\zoo\elements\checkbox\checkbox.php

Что привело бы к ошибке при загрузке страницы. Но нет.

Так что в фильтре он где то в ином месте формируется


  • 0

#4 Sandmansss

Sandmansss

Отправлено 21 February 2019 - 10:35

Нашел в \modules\mod_jbzoo_search\renderer\filter\tab.php

echo $label . '<div class="' . implode(' ', $classes) . '">'. $elementHTML . '</div>';

все что мне нужно сидит в $elementHTML

А где он формируется хз.

Судя по всему через jQuery придется изворачиваться. Переопределять на лету содержимое label/


  • 0

#5 CB9TOIIIA

CB9TOIIIA

Отправлено 21 February 2019 - 11:37

а если Выше: $elementHTML сделать дамп var_dump($elementHTML);

 

ну и потом заменой preg_replace как требуется. RegExp


  • 0

#6 Sandmansss

Sandmansss

Отправлено 21 February 2019 - 11:51   Лучший Ответ

Спасибо. Уже решил через jQuery

 

Может кому потребуется.

В mod_jbzoo_search.php добавил 

echo '<script src="/templates/jblank/js/jbzoo-filter.js" type="text/javascript"></script>';

в "/jblank/js/" создал - jbzoo-filter.js с кодом

if (typeof jQuery != "undefined") jQuery(function ($) {
 
 $(window).load(function() { 
		var tag_val = $(".checkbox-lbl"); 
        for (i = 0; i < tag_val.length; i++) {
			var input = $(tag_val[i]).find("input");
			var s_temp = $(tag_val[i]).text().trim();
			$(tag_val[i]).html("").append(input).append("<span>" + s_temp + "</span>");  
			}
	}); 
});

При загрузке страницы подменяет код. 

В принципе это годится как рецепт ко всем подобным ситуациям, когда надо переопределить код не трогая основных модулей


Сообщение отредактировал Sandmansss: 21 February 2019 - 11:51

  • 2




Click to return to top of page in style!