Всего 123 765 комментариев

Алексей Карташов
03 октября 2012, 15:34
0
Надеюсь мой вопрос не будет проигнорирован в свете выводов:
«Пока все остается как есть, но отвечать я буду значительно реже, и только на хорошие вопросы.»
из этого поста: bezumkin.ru/blog/2012/09/26/thought_the_idea/

Всё-таки это больше из разряда «прошу совета», нежели бесплатной помощи :-)
Иван Волков
02 октября 2012, 20:30
0
Иван, громадное спасибо! Сэкономили кучу времени и нервов, которые бы тратились на пробы и ошибки!:)
Иван Брежнев
02 октября 2012, 20:22
0
Но он обрезает нули если их нет в цене. Вам не подойдет
Вам такой нужен
<?php
$output = number_format($input,2,'.',' ');
return $output;
Иван Волков
02 октября 2012, 20:21
0
Спасибо! Попробую и ваш вариант!
Иван Волков
02 октября 2012, 20:17
0
ЗЫ. обязательно выложу код сниппета. Во первых — проверить правильность, во вторых — комунибудь да пригодится.
Иван Брежнев
02 октября 2012, 20:16
0
Вызываю вот так [[+price:num]]
Иван Брежнев
02 октября 2012, 20:16
0
Вот пример моего модификатора по формированию цены

<?php
$output = number_format($input,(floor($input) == $input? 0: 2),'.',' ');
return $output;
Иван Волков
02 октября 2012, 20:15
0
вот! спасибо за действительно внятное объяснение!
Дело в том, что фильтры я еще особо не осваивал. Т.е. функционала заложенного Вами в miniShop, для моих целей, вполне достаточно. То, что попадалось под руку и нужно было править делал почти интуитивно :)
Материал, на который Вы дали ссылку перечмтал два раза, но пока Вы не показали «на пальцах» — путался)
Еще раз спасибо!
Василий Наумкин
02 октября 2012, 19:14
0
Как и все фильтры вывода — [[+price:yoursnippetname]] в нужных местах.

Я же дал вам ссылку, смотрите там раздел «Creating a Custom Output Modifier»
Sadykh Sadykhov
02 октября 2012, 18:00
0
Кстати, однажды я спрашивал это на сообществе, тогда видимо была та же ошибка, но каким-то другим (не знаю каким) способом исправил проблему. Теперь буду знать, спасибо всем.
Sadykh Sadykhov
02 октября 2012, 17:58
0
По умолчанию так.
Иван Волков
02 октября 2012, 17:54
0
Спасбо, Иван!
Из прочитанного по ссылке делаю такие выводы:
по идее мне подойтет:

<?php
$number = 1234,56;

// снг формат без разделителей групп
$su_format_number = number_format($number, 2, ',', '');
?>

Результат: 1234,57
СНГ формат — вид чисел к которому мы привыкли со школы.
Судя из следуещего примера эта функция округляет числа.
т.е. .896 после разделителя (сепаратора) функция округлила до .90
(php таки наш человек =))

так же нашел подсказки для разного изврата :) с видом цены:
<?php
$number = 1234567.896;
echo '1: '.number_format($number, 2, ',', '').'
';
echo '2: '.number_format($number, 2, '.', '').'
';
echo '3: '.number_format($number, 2, ',', '.').'
';
echo '4: '.number_format($number, 2, '.', ',').'
';
echo '5: '.number_format($number, 2, ',', ' ').'
';
echo '6: '.number_format($number, 2, ',', "'").'
';
echo '7: '.number_format($number, 2, '', '').'
';
?>

Result:

1: 1234567,90 -> Decimal separado por, (сепаратор — запятая)
2: 1234567.90 -> Decimal separado por. (сепаратор — точка)
дальше — прочие извращения с разделителями)
3: 1.234.567,90 -> Moeda Brasil, Alemanha
4: 1,234,567.90 -> Inglês, USA
5: 1 234 567,90 -> França
6: 1'234'567,90 -> Suíça
7: 123456790 -> Sem decimal

хм… осталось домучать Василия с вопросом как это применить в виде снипета и куда его потом «всувать»…
Перечитал по его ссылке материал, совсем запутался…
Valentin Rasulov
02 октября 2012, 17:48
0
Система -> Настройка ситемы
Фильтр по разделу -> Кеширование
параметр cache_default -> Да
Иван Брежнев
02 октября 2012, 16:53
0
есть такая функция в php для формирование формата вывода числа, number_format()
www.php.net/manual/ru/function.number-format.php
Sadykh Sadykhov
02 октября 2012, 15:14
0
Стыдно, как-то всё просто оказалось.

Это я так понимаю нормальное явление, не баг? Логично было сделать при галочке «опубликовать» обязательную чистку кеша, а не отдельно, или я чего-то не понимаю.
Иван Волков
02 октября 2012, 15:11
0
Большое спасибо! Ушел сильно думать:)