Cheshir Опубликовано 20 октября, 2017 Поделиться Опубликовано 20 октября, 2017 Кто-нибудь сталкивался с необходимостью изменения количества отображаемых знаков после запятой в ценах Nexus? Куда копать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheshir Опубликовано 23 октября, 2017 Автор Поделиться Опубликовано 23 октября, 2017 Если кому понадобится: /applications/nexus/sources/Money/Money.php Функция - public static function numberOfDecimalsForCurrency( $currency ) Добавляем строку - case 'RUB': Куда добавлять строку определяем исходя из требуемого количества отображаемых знаков цены после запятой. Если вообще без знаков, то перед "return 0;", если 1, то перед "return 1;" и т.д. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheshir Опубликовано 24 октября, 2017 Автор Поделиться Опубликовано 24 октября, 2017 Хрену лысого... на локалке работает, а с локалями на сервере фигня какая-то... выше описанный способ может менять все остальные валюты, но не RUB. Есть у кого-нибудь возможность протестировать на своем сервере (не локальном)? Необходимо заменить функцию в /applications/nexus/sources/Money/Money.php с Спойлер public static function numberOfDecimalsForCurrency( $currency ) { switch ( $currency ) { case 'CLF': return 4; case 'BHD': case 'IQD': case 'JOD': case 'KWD': case 'LYD': case 'OMR': case 'TND': return 3; case 'MGA': case 'MRO': return 1; case 'BIF': case 'BYR': case 'CLP': case 'CVE': case 'DJF': case 'GNF': case 'ISK': case 'JPY': case 'KMF': case 'KRW': case 'PYG': case 'RWF': case 'UGX': case 'UYI': case 'VND': case 'VUV': case 'XAF': return 0; default: return 2; } } на Спойлер public static function numberOfDecimalsForCurrency( $currency ) { switch ( $currency ) { case 'CLF': return 4; case 'BHD': case 'IQD': case 'JOD': case 'KWD': case 'LYD': case 'OMR': case 'TND': return 3; case 'MGA': case 'MRO': return 1; case 'BIF': case 'BYR': case 'CLP': case 'CVE': case 'DJF': case 'GNF': case 'ISK': case 'JPY': case 'KMF': case 'KRW': case 'PYG': case 'RWF': case 'UGX': case 'UYI': case 'VND': case 'VUV': case 'XAF': case 'RUB': return 0; default: return 2; } } или установить плагин Tuning.xml Должна быть добавлена валюта RUB и у товара указана цена в рублях. Tuning.xml Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Sipsb Опубликовано 24 октября, 2017 Поделиться Опубликовано 24 октября, 2017 3 часа назад, Cheshir сказал: Должна быть добавлена валюта RUB и у товара указана цена в рублях. Не работает, валюта RUB не появляется! Пробовал через плагин и в ручную. Cheshir 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheshir Опубликовано 24 октября, 2017 Автор Поделиться Опубликовано 24 октября, 2017 3 минуты назад, Sipsb сказал: Не работает, валюта RUB не появляется! Пробовал через плагин и в ручную. Зараза... Думал в настройках сервак дело. Максимум до чего дошел, для всех валют убрать знаки после точки. Спасибо Sipsb. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Cheshir Опубликовано 25 октября, 2017 Автор Поделиться Опубликовано 25 октября, 2017 Работает, если дописать/изменить в том же /applications/nexus/sources/Money/Money.php в функции public function toString( \IPS\Lang $language ): if ( $this->currency == 'RUB' ){ $return = money_format( '%.0n', (string) $this->amount ); } elseif ( $this->currency == 'USD' ){ $return = money_format( '%.1n', (string) $this->amount ); } else { $return = money_format( '%n', (string) $this->amount ); } В функции - public static function numberOfDecimalsForCurrency( $currency ) Перед return 0; добавляем case 'RUB': Затем в той же функции перед return 1; добавляем case 'USD': Работать - работает, но как себя может повести с платежными системами, не знаю. Вроде должно работать Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.