0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1257 Просмотров
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Хак мультивалютности VM
« : 07.07.2009, 20:25:52 »
Всем привет!
В связи с тем что для VM нету ни одного мало-мальски сносного решения мультивалютности для российских магазинов довожу до ума один хак, который нарыл в инете (доведу - поделюсь, пока нету смысла).
Так вот, знаний малость не хватило, обращаюсь за помощью к сообществу.
Вопрос в том как вывести название(символ или обозначение) выбранной валюты.
По идее, как то так:
Код: php
 $res = round($nb,2);

if( $symbol != '' ) {

$this->symbol = $old_symbol;

}

$res = $res." ".$price_info["product_currency"];

return($res);

}
Где вместо $price_info["product_currency"] должно формироваться название текущей валюты.
Валюты магазина находятся в таблице jos_vm_currency

Проблема в том, что при таком раскладе не выводится название валюты.
Ткните в правильный запрос, если мало информации, говорите, расскажу больше ^-^

Спасибо за внимание и участие ;)
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

otshelnik

  • Захожу иногда
  • 116
  • 7 / 0
  • мы вместе!
Re: Хак мультивалютности VM
« Ответ #1 : 31.08.2009, 08:36:31 »
если тебя устроит такой вариант, могу написать как сделать.

[вложение удалено Администратором]
*

otshelnik

  • Захожу иногда
  • 116
  • 7 / 0
  • мы вместе!
Re: Хак мультивалютности VM
« Ответ #2 : 31.08.2009, 13:12:11 »
Мультивалютность магазина рассматриваемая в дополнительных модулях производит вывод цены товара product_price помноженного на курс валют, при этом совершенно не учитывается параметр product_currency.
Вопрос состоит в следующем: как сделать вывод цены товара в одной валюте в файле basket.php для правильного суммирования если цена товаров в прайсе в различных валютах (параметр product_currency), учитывая параметр product_currency.
   
Я просмотрел ветку форума, нашел много аналогичных вопросов и ни одного ответа.
Попробую несколько упростить задачу.
Если добавить этот кусок кода в файл basket.php :
Код
//*****************************************************************
$rub='Руб';
$usd='$';
$euro='€';

$db->setQuery("SELECT product_currency FROM #__{vm}_product_price where product_id='$product_id'");
$li = $db->loadObjectList();
foreach($li as $product_id) {
        $valuta=$product_id->product_currency;
}
if ($valuta == $rub)
   {
  $curs = '1';
   }
if ($valuta == $usd)
   {
  $curs = '43';
   }
if ($valuta == $euro)
   {
  $curs = '33';
   }

//*****************************************************************

То получим коэффициент пересчета валюты product_currency, прописанной в таблице #__{vm}_product_price
Но данный код выдает только одно значение (для одного товара $product_id, последнего добавленного или последнего с измененным количеством )
Выполнив распечатку:
Код
print_r($_SESSION['cart'][$i]["product_id"]);
получаем распечатку всех product_id, добавленных в корзину.
Если создать переменную, например $pppp равную:
Код
$pppp = $_SESSION['cart'][$i]["product_id"];
И использовать ее в выражении:
Код
$product_price = $CURRENCY_DISPLAY->getRounded($product_price);
Результирующее выражение получается:
Код
$product_price = $CURRENCY_DISPLAY->getRounded($product_price) * $pppp;
То все цены товаров умножаются на их id.
Если же переменная $pppp будет выводить не id а curs, то это и будет решением задачи.
Вопрос следующий:
Как получить выражение типа
Код
$_SESSION['cart'][$i]["product_id"]
, где вместо product_id будет находится $curs равный курсу валюты для каждого товара?
В этом случае все добавленные товары, в какой бы валюте они небыли будут пересчитаны по курсу к рублю и промежуточное и итоговое значение покупки будет истинным и в одной валюте ибо все операции будут произведены в одной валюте.
« Последнее редактирование: 31.08.2009, 13:17:41 от otshelnik »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться