Как вывести цену с пробелами в битриксе?

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

Прошу помочь разобраться в ситуации.

Есть сайт с фильтром. Как видно, цена указывается не совсем удобно для пользователя. Как сделать разделение по типу такого 500 000 или 1 000 000?
Выводится это, как я понял, вот этим кодом

Код
<form action="#">
	<div class="ye_filter" id="ys_filter_bitronic">
	<?if(count($arrN) > 0):?>
	<?foreach($arrN as $arItem):?>

	<? if($arItem['VALUES']['MIN'] == $arItem['VALUES']['MAX']) continue; ?>
	<?		
		preg_match_all("| name=\"(.*)\" |U", $arItem["INPUT"], $names);
		$min_name = $names[1][0];
		$max_name = $names[1][1];
	?>
							<script type="text/javascript">
							$(function(){
							
								$("#<?=$arItem['CODE']?>-min").attr('value', <?=$arItem['VALUES']['MIN_VALUE']?$arItem['VALUES']['MIN_VALUE']:$arItem['VALUES']['MIN'];?>);
								$("#<?=$arItem['CODE']?>-max").attr('value', <?=$arItem['VALUES']['MAX_VALUE']?$arItem['VALUES']['MAX_VALUE']:$arItem['VALUES']['MAX'];?>);
							
								$("#limit-<?=$arItem['CODE']?>").slider({
									range: true,
									min: <?=$arItem['VALUES']['MIN']?$arItem['VALUES']['MIN']:0;?>,
									max:  <?=$arItem['VALUES']['MAX']?$arItem['VALUES']['MAX']:10000;?>,
									<?if ($arItem["IS_FLOAT"] == 1):?>
										step: 0.1,
									<?endif;?>
									values: [ <?=$arItem['VALUES']['MIN_VALUE']?$arItem['VALUES']['MIN_VALUE']:$arItem['VALUES']['MIN'];?>, <?=$arItem['VALUES']['MAX_VALUE']?$arItem['VALUES']['MAX_VALUE']:$arItem['VALUES']['MAX'];?> ],
									slide: function(event, ui) {
										$("#<?=$arItem['CODE']?>-min").attr('value', ui.values[0]);
										$("#<?=$arItem['CODE']?>-max").attr('value', ui.values[1]);
										$("#left-<?=$arItem['CODE']?>").html(ui.values[0]);
										$("#right-<?=$arItem['CODE']?>").html(ui.values[1]);
									}
								});
							});
							</script>
		<div class="ye_price">
			<div class="ye_price_left">
				<span class="ye_tit"><?=$arItem["NAME"]?>:</span>
				<span><?=GetMessage('OT');?></span> <input value="<?=$arItem['VALUES']['MIN_VALUE']?$arItem['VALUES']['MIN_VALUE']:$arItem['VALUES']['MIN'];?>" name="<?=$min_name?>" type="text" class="txt" id="<?=$arItem[CODE]?>-min" />
			</div>
			<div class="ye_price_right"><span><?=GetMessage('DO');?></span> <input name="<?=$max_name?>" value="<?=$arItem['VALUES']['MAX_VALUE']?$arItem['VALUES']['MAX_VALUE']:$arItem['VALUES']['MAX'];?>" type="text" class="txt" id="<?=$arItem['CODE']?>-max" /></div>
			<div class="ye_price_content">
				<span class="ye_from"><?=$arItem['VALUES']['MIN']?$arItem['VALUES']['MIN']:0;?></span>
				<span class="ye_to"><?=$arItem['VALUES']['MAX']?$arItem['VALUES']['MAX']:10000;?></span>
				<div class="ye_limit" id="limit-<?=$arItem['CODE']?>"></div>
			</div>

		
		</div>



Пробовал играться с number_format, но результата не получил. Отступ в цифрах не появляется.
  • Вопрос задан
  • 6405 просмотров
Решения вопроса 1
iiil
@iiil
Инженер и вэб-дизайнер, рисую.
Даже если Вы первоначально выведете с помощью битрикса число в отформатированном виде, меняя его ползунком Вы получите опять неотформатированное число.
Также, скрипт работы ползунка не умеет работать с числами с пробелом - можете сами убедиться, вбив число 10 000, например. Ползунок просто исчезает.
Соответственно, все это тянет нас дальше:
1. Надо переделать работу скрипта ползунка на:
а. Проверку на число или преобразование в число строки
б. Преобразование результата в форматированную строку (с пробелами)
2. Необходимо убедиться, что фильтр будет работать - сейчас он не работает, так как насколько я понял, считает 10 000 как 10 (фильтрует результаты только по 1 руб.)
Если со вторым пунктом битрикс может и сам разберется (это при условии, что вывод в форматированном виде будет происходить средствами битрикса, насколько я знаю формат там только для price, то есть не Ваш случай), то первый пункт все равно придется решать самому.

А если Вы про результат работы фильтра, то есть список товаров с ценами, то это как раз случай решаемый, см. dev.1c-bitrix.ru/api_help/catalog/price.php#Format...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Glomen
Смотри в $arResult все возможные цены, вообще есть цена с форматированием там и будет содержаться цена 1 000 000, ну или как задано форматирование цены в настройках
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы