Внимание! Обязательно, прежде, чем вносить изменения в basket.js, сделайте копию этого файла, на всякий случай.
Сам задавал вопрос, сам же и отвечу на него - мне удалось реализовать задуманное (разделение цифр в корзине, где js-методы, на тысячные разряды).
По пунктам:
1. Нашел, на мой взгляд, вполне достойный, а самое главное, рабочий скрипт (см. ниже), где помимо самого скрипта, описаны примеры форматов и их результаты после обработки цифр этим скриптом:
function number_format(number, decimals, dec_point, thousands_sep) {
// example 1: number_format(1000.00) .................... returns: '1,000'
// example 2: number_format(1000.00, 0, ',', ' ') ....... returns: '1 000'
// example 3: number_format(1000.00, 2, ',', ' ') ....... returns: '1 000,00'
// example 4: number_format(1000.0000, 2, '.', '') ...... returns: '1000.00'
// example 5: number_format(10, 2, ',', '.') ............ returns: '10,00'
// example 6: number_format(1000) ....................... returns: '1,000'
// example 7: number_format(10.000, 2) .................. returns: '10.00'
// example 8: number_format(1000.55, 1) ................. returns: '1,000.6'
// example 9: number_format(10000, 5, ',', '.') ......... returns: '10.000,00000'
// example 10: number_format(0.9, 0) .................... returns: '1'
// example 11: number_format('1.10', 2) ................. returns: '1.10'
// example 12: number_format('1.10', 4) ................. returns: '1.1000'
// example 13: number_format('1.1000', 3) ............... returns: '1.100'
// example 14: number_format('1 000,50', 2, '.', ' ') ... returns: '100 050.00'
// example 15: number_format(1e-8, 8, '.', '') .......... returns: '0.00000001'
number = (number + '')
.replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + (Math.round(n * k) / k)
.toFixed(prec);
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
.split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '')
.length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1)
.join('0');
}
return s.join(dec);
}
2. Взял basket.js (/js/site/basket.js), сделал бэкап файла (это, если вдруг испорчу скрипт - я не программист, и не разработчик), открыл basket.js и в самое начало над "site.basket = {};" вставил вышеприведенный код.
3. Затем, так как мне надо было получить сумму такого формата "99 990", я выбрал пример 2/example 2 -
number_format(1000.00, 0, ',', ' '), и в basket.js начал заключать в него все то, что отвечает за вывод цифр/цен.
Поясняю, нижеприведенный код, это часть basket.js, где я вносил правки (функция "site.basket.replace = function(id)" начиная с "if (e.summary.amount > 0)"):
...
if (e.summary.amount > 0) {
text = number_format(e.summary.price.actual, 0, ',', ' ') + ' ' + e.summary.price.suffix;
goods_discount = ((typeof e.summary.price.original == 'undefined') ? number_format(e.summary.price.actual, 0, ',', ' ') : number_format(e.summary.price.original, 0, ',', ' ')) + ' ' + e.summary.price.suffix;
discount = ((typeof e.summary.price.discount != 'undefined') ? number_format(e.summary.price.discount, 0, ',', ' ') : '0') + ' ' + e.summary.price.suffix;
for (i in e.items.item) {
item = e.items.item[i];
if (item.id == id) {
rem_item = false;
item_total_price = number_format(item["total-price"].actual, 0, ',', ' ') + ' ' + item["total-price"].suffix;
item_discount = ((typeof item.discount != 'undefined') ? number_format(item.discount.amount, 0, ',', ' ') : '0') + ' ' + item["total-price"].suffix;
}
...
Поясняю дальше... Если присмотритесь в код и сравните с имеющимся у вас, поймете, что, например, следующая часть кода раньше был таким:
text = e.summary.price.actual + ' ' + e.summary.price.suffix;
А я внес коррективы в код, т.е. заключил вывод цены в нужный мне формат - код ниже:
text = number_format(e.summary.price.actual, 0, ',', ' ') + ' ' + e.summary.price.suffix;
И так далее... Думаю, если я разобрался, как это реализовать, и вам не составить труда сделать это, если возникнет такая потребность. Тем более, что примеры форматов в скрипте имеются, выбирай не хочу.
Благодарю за внимание!
P.S. Про то, как в xslt как аналогичную вещь сделать, предлагаю воспользоваться советом/вариантом от admin
http://umihelp.ru/forum/index.php/topic,1925.0.html
Внимание! Обязательно, прежде, чем вносить изменения в basket.js, сделайте копию этого файла, на всякий случай.