Конвертер валют для виртуемарта
Что это и зачем?
По умолчанию Virtuemart берёт данные из Европейского Центрального Банка (http://www.ecb.int). Но для деятельности в России требуется брать курсы валют из Банка России (ЦБ РФ) (http://cbr.ru).
Что предлагается?
Василий Ерёменко предложил достаточно простой, расширяемый и надёжный способ научить Virtuemart брать данные из ЦБ РФ. Смысл предложения заключается в преобразовании XML-данных от cbr.ru (см. http://cbr.ru/scripts/Root.asp?Prtid=SXML и http://www.cbr.ru/scripts/XML_daily.asp ) к формату, повторяющему XML от ECB (см. http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html и http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml ) при помощи специально разработанной программы-конвертера cbr2ecbformat.cgi.
Процедура установки
ВНИМАНИЕ в выбор редактора!!! кодировать без БОМ иначе работать не будет!!!
Последовательность действий проста и понятна. Она требует минимума "кодирования". Скачиваем файл cbr2ecbformat.cgi: http://cbr2ecbformat.googlecode.com/files/cbr2ecbformat.cgi
Открываем его в текстовом редакторе и меняем пароль на 25-й строке: passwd = "вашпароль"
Обращаю внимание: в качестве пароля советую использовать только латинские буквы и цифры. Никаких пробелов и прочей ереси! Иначе будут проблемы.
Отредактированный файл cbr2ecbformat.cgi "забрасываем" в директорию cgi-bin вашего сайта и выставляем права доступа, разрешающие выполнение этого файла (executable, 0755).
Проверяем работоспособность получившегося преобразователя: в браузере набираем адрес http://ваш.сайт/cgi-bin/cbr2ecbformat.cgi?pass=вашпароль. Если увидите что-то похожее на такое: http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml - всё хорошо.
Переходим к следующему шагу. В Virtuemart-овский файл administrator/components/com_virtuemart/classes/currency/convertECB.php копируем себе и редактором находим строку вида
var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml' и меняем ссылку в ней на только что созданый "поддельный" Европейский Центробанк:
var $document_address = 'http://ваш.сайт/cgi-bin/cbr2ecbformat.cgi?pass=вашпароль' // Change pass!!! Сохраняем, заменяем на сервере исходный Virtuemart-овский файл на наш.
Удаляем файл /cache/daily.xml на сервере. Проверяем работу конвертера валют, прямо на вашем сайте, сравнивая цены на товары, выраженные в разных валютах.
Есть более новый сервис ( бесплатный в нынешнем виде) http://ce-rates.info/cbr2ecbformat.cgi
Теперь не надо возиться с этим файлом cbr2ecbformat.cgi совсем.
Достаточно в файле administrator/components/com_virtuemart/classes/currency/convertECB.php заменить адрес источника XML:
было - var $document_address = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'
стало - var $document_address = 'http://ce-rates.info/cbr2ecbformat.cgi'
Пока будущий полноценный сервис находится в стадии разработки, поэтому нет внятной документации.