Jump to content

Featured Replies

Posted
comment_137968

Кто-нибудь сталкивался с необходимостью изменения количества отображаемых знаков после запятой в ценах Nexus?

Куда копать?

  • Author
comment_138159

Если кому понадобится:

/applications/nexus/sources/Money/Money.php

Функция - public static function numberOfDecimalsForCurrency( $currency )

Добавляем строку -             case 'RUB':

Куда добавлять строку определяем исходя из требуемого количества отображаемых знаков цены после запятой.

Если вообще без знаков, то перед "return 0;", если 1, то перед "return 1;" и т.д.

  • Author
comment_138285

Хрену лысого... на локалке работает, а с локалями на сервере фигня какая-то... выше описанный способ может менять все остальные валюты, но не 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

comment_138301
3 часа назад, Cheshir сказал:

Должна быть добавлена валюта RUB и у товара указана цена в рублях.

Не работает, валюта RUB не появляется! Пробовал через плагин и в ручную.

  • Author
comment_138302
3 минуты назад, Sipsb сказал:

Не работает, валюта RUB не появляется! Пробовал через плагин и в ручную.

Зараза... Думал в настройках сервак дело. Максимум до чего дошел, для всех валют убрать знаки после точки. Спасибо Sipsb.

  • Author
comment_138331

Работает, если дописать/изменить в том же /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':

 

Работать - работает, но как себя может повести с платежными системами, не знаю. Вроде должно работать :af:

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.