Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Где отбивается пробелом знак валюты?

Уже недели четыре кряду между делом ищу где, в каком файле, отбивается знак валюты слева от суммы.

Везде на страницах это убожество с отлетающим знаком вида $ 1,234,567.00. Надо, чтобы было без отбивки или с волосяным неразрывным пробелом, так: $1,234,567.00.

И еще, вопрос тоже связанный с грамотной типографикой отображения сумм: где находится функция, вставляющая разделитель тысяч? Ведь суммы до 9999,99 не должны выглядеть так: 1 234,00, а так: 1234,00



Если я правильно понял... В файле \includes\classes\price.php

строка
$Pprice = $this->checkAttributes($pID).$this->currencies['symbol_left'].' '.$Pprice.' '.$this->currencies['symbol_right'];
и ниже. в общем там где-то.

перед и после '.$Pprice.' идут явные пробелы


Спасибо! Покопаю там...


Нашел способ правильного представления сумм до 9999,99 (т.е. единицы тысяч не должны отбиваться разделителем)

В файле includes/class/price.php найти

$Pprice = number_format($price, $this->currencies['decimal_places'], $this->currencies['decimal_point'], $this->currencies['thousands_point']);

и заменить на

$thousands_point = $this->currencies['thousands_point'];
if (defined('TRIADS_OVER_MYRIAD') && TRIADS_OVER_MYRIAD == true) {
if (strlen(strval(intval($price))) <= 4) $thousands_point = '';
}
$Pprice = number_format($price, $this->currencies['decimal_places'], $this->currencies['decimal_point'], $thousands_point);


в файле langs/ru/lang.php после строки начинающейся с


define('LANGUAGE_CURRENCY',

вставить строку

define('TRIADS_OVER_MYRIAD', true);

Так нужно делать для всех языков, где применяется французская нотация (1234,56 но 12 345,67).
Так же,  чтобы применять пробел в качестве разделителя разрядов, надо в таблице  os_currencies сменить тип у поля `thousands_point` на tinytext (предварительно экспортировав таблицу) и вручную сменить значение поля на пробел. Через админку сделать этого не получится (там вырезаются все пробелы из поля ввода).


Источник



Copyright ShopOS