IGOR

Приложение выгрузки объявлений в AFY.ru

Recommended Posts

Нужно явно создать в модели data поле под выбор валюты. Я уже писал, что при включении менеджера валют для работы с объекатми data на форме это поле добавляется автоматически, но для работы с data другими приложениями - выгрузчики и тд - такого не происходит, поэтому они считают, что валюту вы не задали.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добавил! Карточку обновил, Поддержка выбора валют включена! Но результат тот же!

Рубль нормально выводится, даже если менять в той же карточке, EUR упорно выводит USD! Посмотрел и исправил в настройках Менеджера валют, не помогло

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Какие имена указаны для валют - то, что значится в списке в элементе выбора валюты в форме объявления?

2. Указано ли что-то в настроках приложения в конфигине "Код валюты по умолчанию, например, RUR/EUR"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, abushyk сказал:

Нужно явно создать в модели data поле под выбор валюты. Я уже писал, что при включении менеджера валют для работы с объекатми data на форме это поле добавляется автоматически, но для работы с data другими приложениями - выгрузчики и тд - такого не происходит, поэтому они считают, что валюту вы не задали.

 

Создал поле!) И оно работает при смене, рубль, доллар, без проблем, не хочет выводить евро!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, Александр Лубянский сказал:

не хочет выводить евро!

Возможно вы вставляете евро как € - хтмл сущность. Попробуйте прописать его имя скопировав этот значек € отсюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, abushyk сказал:

Возможно вы вставляете евро как € - хтмл сущность. Попробуйте прописать его имя скопировав этот значек € отсюда.

 

Так и было! Переписал! Может обновить что то?! Карточку обновил!

image.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ересь какая-то. По коду оно не могло бы значек евро определить как доллар. Даже если бы оно не могло корректно определить, что это евро, оно вернуло бы ошибку, но не USD, если только он не указан дефлолтным.

Сможете сделать фтп?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В итоге.... просмотрел бекапы и в частности этот кусок:

	protected function currencyCheck($currency_string){
		$currencies=array('RUR', 'RUB', 'USD', 'EUR', 'UAH', 'BYR', 'KZT');
		if($currency_string!=''){
			if(in_array($currency_string, $currencies)){
				if($currency_string==='RUB'){
					return 'RUR';
				}
				return $currency_string;
			}
if(preg_match('/₽/i',$currency_string)){
	return 'RUR';
}
if(preg_match('/&#8381/i',$currency_string)){
	return 'RUR';
}
			if(preg_match('/рубль/i',$currency_string)){
				return 'RUR';
			}
			if(preg_match('/руб./i',$currency_string)){
				return 'RUR';
			}
			if(preg_match('/р./i',$currency_string)){
				return 'RUR';
			}
			if(preg_match('/доллар/i',$currency_string)){
				return 'USD';
			}
			if(preg_match('/США/i',$currency_string)){
				return 'USD';
			}
			if(preg_match('/$/i',$currency_string)){
				return 'USD';
			}
			if(preg_match('/евро/i',$currency_string)){
				return 'EUR';
			}
			if(preg_match('/€/i',$currency_string)){
				return 'EUR';
			}
			if(preg_match('/гривна/i',$currency_string)){
				return 'UAH';
			}
			if(preg_match('/грн/i',$currency_string)){
				return 'UAH';
			}
			if(preg_match('/теньге/i',$currency_string)){
				return 'KZT';
			}

Поправил, как в рабочей версии:

static function currencyCheck($currency_string){
		$currencies=array('USD', 'EUR', 'RUB');
		if($currency_string!=''){
			if(in_array($currency_string, $currencies)){
				return $currency_string;
			}
			if(preg_match('/\$/i',$currency_string)){
				return 'USD';
			}
			if(preg_match('/\&euro\;/i',$currency_string)){
				return 'EUR';
			}
			if(preg_match('/€/i',$currency_string)){
				return 'EUR';
			}
			if(preg_match('/\₽/i',$currency_string)){
				return 'RUR';
			}	
			if(preg_match('/\&#8381\;/i',$currency_string)){
				return 'RUR';
			}	
			if(preg_match('/руб./i',$currency_string)){
				return 'RUR';
			}
			if(preg_match('/р\./i',$currency_string)){
				return 'RUR';
			}

Все прекрасно работает! Символ &#8381... видимо на тот момент был косяк с отображением символа рубля!
P.S. Господи! Когда же танцы с бубнами закончатся?!

admin#.php

admin.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас