Три года думал как в VirtuaeMart 1.x конвертировать валюту, оказалось что всё очень просто. VirtuaeMart берет курсы валют на сайте ЕЦБ по адресу http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml (файл administrator/components/com_virtuemart/classes/currency/convertECB.php), и в PHP коде функция конвертации выглядит следующим образом (файл libraries/user/product_parser.php):
function FormatProductPrice($price, $product_currency) { global $CURRENCY_DISPLAY; $converted_price = $GLOBALS['CURRENCY']->convert($price, $product_currency); return $CURRENCY_DISPLAY->getFullValue($converted_price); }
чтобы product_currency бралось из базы при листинге продуктов надо добавить соответствующее поле в запрос в файле administrator/components/com_virtuemart/html/shop_browse_queries.php:
// These are the names of all fields we fetch data from $fieldnames = ... , `#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`, `attribute`, `product_currency`";
и в administrator/components/com_virtuemart/html/shop.browse.php добавить сточку
$products[$i]['product_currency'] = $db_browse->f('product_currency');