• Home
  • Support
  • Forum
  • Cobalt 8
  • Dividing a number into bits in a filter / Разделение числа на разряды в фильтре

Pavel8289
Total posts: 66
20 May 2020 11:47

Привествую. С помощью mod_cobalt_filters был сделан фильтр с ползунком image Как раставить пробелы между цифр и чтоб фильтр работал ? Я пробовал и вышло это сделать тут /components/com_cobalt/fields/digits/tmpl/filter/default.php на строке 80-81 я долбавил min.val(parseInt(ui.values[0]).toLocaleString()); max.val(parseInt(ui.values[1]).toLocaleString()); но ошибка выскакивает после применение фильтра 404

Я так понимаю надо научить фильтр принимать на стороне backend только цифры, и все эти знаки лишние убирать?

P.S. разделение работает везде кроме input в фильтре. В админки все выставил

adminpanel

Last Modified: 21 May 2020


Sergey
Total posts: 13,748
20 May 2020 15:52

Там нужно переделать. Поля для ввода цифр сделать спрятаными и в них остваить занчения которые там стоят сейчас, а для отображения просто добавить 2 дива и в них уже форматированое число показывать.


Pavel8289
Total posts: 66
21 May 2020 07:08

Sergey Там нужно переделать. Поля для ввода цифр сделать спрятаными и в них остваить занчения которые там стоят сейчас, а для отображения просто добавить 2 дива и в них уже форматированое число показывать.

Спасибо Серега что на мысель натолкнул. Вышло сделать вот так. Input min и max спрятал и добавил после них такие вот поля

<div class="special-field-min<?php echo $this->key;?>" style="margin-left: 10px;"></div> <div class="special-field-max<?php echo $this->key;?>" style="margin-left: 10px;"></div>

В том же файле фильтра в скрипте дописал вот так

var key = "<?php echo $this->key;?>"; // НАШЕ КЛЮЧ УНИКАЛЬНЫЙ ДЛЯ ФОРМИРВОАНИЯ КЛАССА
var sldr = $("#digitslider<?php echo $this->key;?>");
var errbox = $('#erralert<?php echo $this->id;?>');

    var min = $('#input_minmax_min<?php echo $this->id;?>'); // УСТАНОВКА ЗНАЧЕНИЙ ПРИ ЗАГРУЗКИ СЛАЙДА
    var max = $('#input_minmax_max<?php echo $this->id;?>'); // УСТАНОВКА ЗНАЧЕНИЙ ПРИ ЗАГРУЗКИ СЛАЙДА

errbox.hide();


//get default min and max value from input and than change
$('.special-field-min'+key).text(parseInt("<?php echo $data->min;?>").toLocaleString());
    $('.special-field-max'+key).text(parseInt("<?php echo $data->max;?>").toLocaleString());
    sldr.slider({
 range: true,
 min: <?php echo $data->min;?>,
 max: <?php echo $data->max;?>,
 step: <?php echo $this->params->get('params.steps', 1) ?>,
 values: [ <?php echo $this->value->get('min', $data->min);?>, <?php echo $this->value->get('max', $data->max);?> ],
 slide: function( event, ui ) {
 min.val(ui.values[0]);
 max.val(ui.values[1]);

 // ===== Spacial field=====
 $('.special-field-min'+key).text(parseInt(ui.values[0]).toLocaleString()); // МЕНЯЕМ ЗНАЧЕНИЕ ПРИ ИЗМЕНЕНИЕ ПОЛЗУНКОВ
 $('.special-field-max'+key).text(parseInt(ui.values[1]).toLocaleString());

 }
});
Powered by Cobalt