здравствуйте, уважаемые форумчане!
может быть кто-нибудь может поделиться опытом вывода цены в результатах поиска, но при том условии, что цены на товары в админке могут быть указаны в одной из трех валют.
plugins/search/joomshopping/joomshopping.php
выводит только цифру
т.е получается так, что в результатах поиска
20 евро
20 $
20 грн
у меня есть решение немного для другой ситуации: тогда цена была указана в одной валюте везде, но на сайте был конвертер валют.
может быть возможно на основе этого решения сделать так, чтобы цена, указанная в одной валюте, пересчитывалась в другую.
файл plugins/search/joomshopping/joomshopping.php
код под
$db->setQuery( $query, 0, $limit );
$rows = $db->loadObjectList();
полностью заменить на этот
$jshopConfig = JSFactory::getConfig();
$jshopConfig->loadCurrencyValue();
JTable::addIncludePath(JPATH_SITE.DS.'components'.DS.'com_jshopping'.DS.'tables');
$currency = JTable::getInstance('currency', 'jshop');
$currencis_list = $currency->getAllCurrencies('1');
$cur = array();
foreach($currencis_list AS $currency) {
$cur[$currency->currency_id] = $currency;
}
if ($rows){
foreach($rows as $key => $row) {
if($jshopConfig->cur_currency == 2) { //основная валюта - в моем случае грн
$row->price = $cur[2]->currency_value / $cur[3]->currency_value * $row->price;
/* пояснение
$cur[2] - грн. Обменный курс = 1
$cur[3] - $. Обменный курс = 0.035087
$row->price - цена товара
*/
}
$rows[$key]->href = SEFLink('index.php?option=com_jshopping&controller=product&task=view&category_id='.$row->catslug.'&product_id='.$row->slug, 1);
$rows[$key]->image = JUri::Root().'components/com_jshopping/files/img_products/'.$row->myimg;
$rows[$key]->cat = SEFLink('index.php?option=com_jshopping&controller=category&task=view&category_id='.$row->catslug,1);
$rows[$key]->price = round($row->price, 2).' '.$cur[$jshopConfig->cur_currency]->currency_code;
}
}
return $rows;
}
}
?>
т.е. наверное, нужно каким-то образом проверять в какой валюте указана цена: usd (id 3), грн (id 2) или евро (id 1)
и использовать нужную формулу
$row->price = $cur[2]->currency_value / $cur[3]->currency_value * $row->price; - для usd
$row->price = $cur[2]->currency_value / $cur[1]->currency_value * $row->price; - для евро
для грн ничего не использовать