Перейти к содержимому


Xml Банка Израиля


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 16

#1 Гость_Direct_*

Гость_Direct_*
  • Гости

Отправлено 20 марта 2011 - 17:12

Вот есть Национальный банк Израиля, все сделал по инструкции с плагином и шаблоном, а выводить информацию не хочет, пишет ошибка вывода, может есть возможность прикрутить к модулю готовый плагин Банка Израиля, буду очень признателен.

#2 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 21 марта 2011 - 22:20

В папке models создать файл bankisrael.class.php (Create a file bankisrael.class.php in the folder models.)

<?php
/**
* @author	  Darang
* @date		21-March-2011
* @copyright   (c)2011 JExt.biz
*/
 
// no direct access
defined ( '_JEXEC' ) or die ( 'Restricted access' );
 
/**
* Official exchange rates of the bank of Israel
*/
class currency_data_bankisrael extends currency_data {
  
	function __construct() {
		parent::__construct ();
		$this->url = "http://www.bankisrael.gov.il/currency.xml";
		$this->bank_name = "Банк Израиля";
		$this->bank_url = "http://www.bankisrael.gov.il";
		$this->currency_name = " ";
		$this->before_flag = FALSE;
	}
  
	function get_array($xml, $day = '', $replace_currency_array) {
	  
		// Handle no data received error
		if (! isset ( $xml->document->CURRENCY )) {
			$error ['error'] = 1;
			return $error;
		}
	  
		// Save currencies' rates in an associative array indexed by currency 3 char code
		$rates = array (); // array to store currencies exchange rates
		$rates ['date'] = $xml->document->LAST_UPDATE [0]->data ();
		$data = $xml->document->CURRENCY;
	  
		foreach ( $data as $dt ) {
			$code = $dt->CURRENCYCODE [0]->data ();
			// Store data for selected by user currencies only, if they are set
			if (empty ( $this->currencies ) || in_array ( $code, $this->currencies )) {
				$rates ['currency'] [$code] ['scale'] = $dt->UNIT [0]->data (); // units
				// Set currency name (array with replacement rules will be searched for the ISO code)
				$rates ['currency'] [$code] ['name'] = parent::replace_currency_name ( $dt->NAME [0]->data (), $code, $replace_currency_array );
				$rates ['currency'] [$code] ['rate'] = $dt->RATE [0]->data (); // exchange rate
				$rates ['currency'] [$code] ['change'] = $dt->CHANGE [0]->data (); // exchange rate
			}
		}
	  
		// Save additional info (only one time)
		if ($day == 'today' || $this->before_flag == FALSE) {
			$rates ['info'] = array ("bank_name" => $this->bank_name, "bank_url" => $this->bank_url, "currency_name" => $this->currency_name );
		}
	  
		return $rates;
	}
  
}

в mod_jextcurrency.xml в секцию source_class добавить (add code to section source_class in mod_jextcurrency.xml)
<option value="bankisrael">MOD_JEXTCURRENCY_SOURCE_OPTION_BANKISRAEL</option>


#3 Гость_Direct_*

Гость_Direct_*
  • Гости

Отправлено 22 марта 2011 - 22:30

Все работает пока, спасибо большое, ток один нюанс но щас разберусь, в поле источник одни вопросики, меняю кодировку пока не помогает, хз может что то упустил.
Еще раз спасиб.

#4 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 23 марта 2011 - 09:02

файл должен быть в utf8 без bom

#5 Гость_HomtDirect_*

Гость_HomtDirect_*
  • Гости

Отправлено 29 марта 2011 - 09:49

Вот ток заметил, раз через раз выскакивает
XML Parsing Error at 10:8. Error 76: Mismatched tag
, а так все работает как часы. Обновишь страницу надпись пропадает, где может быть проблема?

#6 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 29 марта 2011 - 19:43

Почитайте здесь или в Google.
Это скорее всего ошибка в xml файле модуля, возможно, когда вносили изменения какой то символ лишний добавили или еще что-то.

#7 Гость_den_*

Гость_den_*
  • Гости

Отправлено 26 мая 2011 - 23:44

А почему не получается вывести 3-4 валюты, если указываю в таком виде USD,EUR,GBP,CAD все равно вся таблица курсов вылазит?

#8 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 27 мая 2011 - 08:07

нужно обновить кэш

#9 Гость_den_*

Гость_den_*
  • Гости

Отправлено 27 мая 2011 - 09:32

А у меня в таком виде уже недели две стоит КЭШ на 60 стандартно выставлен курсы прекрасно обновляются кэш стирал, а все равно полную таблицу показывает.

#10 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 27 мая 2011 - 14:18

напишите для какой версии joomla модуль и источник - банк Израиля?

#11 Гость_den_*

Гость_den_*
  • Гости

Отправлено 28 мая 2011 - 01:35

Joomla! 1.5.22 Stable, Jext Currency v.1.3.0

Где еще может быть проблема я хз может в самих шаблонах для плагина?

#12 Гость_den_*

Гость_den_*
  • Гости

Отправлено 28 мая 2011 - 01:40

на сервере кстати safe mod off это не может влиять?)
а если мешает где исправить?

#13 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 01 июня 2011 - 21:36

Просмотр сообщенияden (28 мая 2011 - 01:40 ) писал:

на сервере кстати safe mod off это не может влиять?)
а если мешает где исправить?
Нашёл ошибку, переменную одну заглавными буквами написал. Подправил, смотрите выше.

#14 Гость_Grig_*

Гость_Grig_*
  • Гости

Отправлено 18 июня 2011 - 11:19

Добрый день. Не получилось сделать все как надо. После установки пишет такую ошибку
"Warning: Invalid argument supplied for foreach() in /modules/mod_jextcurrency/tmpl/default.php on line 23"
Буду признателен за помощь

#15 Гость_Grig_*

Гость_Grig_*
  • Гости

Отправлено 18 июня 2011 - 13:48

Прошу прощения, но как-то само-собой все уладилось .
Спасибо за красивый, работающий модуль

#16 Гость_Раиса_*

Гость_Раиса_*
  • Гости

Отправлено 11 сентября 2011 - 15:14

Здравствуйте!
Буду признательна, если поможете настроить вывод определенного количества валют.
У меня Joomla! 1.5.23 Stable, Jext Currency v.1.3.0. Прописала в поле Currencies: USD,EUR,RUB,UAH
Чистила кеш, но все равно выводится полный список валют.
И как русифицировать модуль?
Спасибо. Раиса

#17 admin

admin

    Администратор

  • Администраторы
  • 377 сообщений

Отправлено 11 сентября 2011 - 18:24

попробуйте отключить кеширование в настройках модуля и посмотреть, затем опять включите.
Валюты из вашего списка будут выводиться только usd, eur для других этот банк не даёт котировок