Валюта не по умолчанию для Tienda 0.70

Я так подозреваю что возможность отображать цены во фронтенде в валюте отличной от той что в базе будет в последующих версиях, но все равно опыт интересен, и я по просьбе lmd и по своему хотению решил немного покопаться в коде. Вот что я нарыл... Посмотрев шаблоны вывода цены, обнаружил что за это отвечает метод dispayPriceWithTax класса TiendaHelperProduct его можно найти по адресу administrator/components/co_tienda/helpers/product.php Выглядит он примерно так:

function dispayPriceWithTax($price='0', $tax='0', $show='0')
    {
     	$txt = '';
     	if($show && $tax)
     	{
     		if ($show == '2')
     		{
     			$txt .= TiendaHelperBase::currency($price + $tax);
			}
			else
			{
				$txt .= TiendaHelperBase::currency($price);
				$txt .= sprintf( JText::_('INCLUDE_TAX'), TiendaHelperBase::currency($tax));
			}
     	}
     	else
     	{
     		$txt .= TiendaHelperBase::currency($price);
     	}

     	return $txt;
    }

Как видим в любом случае (с налогами или без них) цену для нас добывает метод TiendaHelperBase::currency. Да прибудет с нами священный поиск... :) Находим его в: administrator/components/co_tienda/helpers/_base.php И вот так он выглядит:

function currency($amount, $currency='', $options='')
    {
        $currency_helper =& TiendaHelperBase::getInstance( 'Currency' );
        $amount = $currency_helper->_($amount, $currency, $options);
        return $amount;
    }

Второй параметр $currency у нас пуст. По умолчанию дадим ему id валюты в которой мы хотим отображать цены на сайте. Это значение мы возьмем из таблицы валют tienda_currencies поле currency_id. У меня валютой по умолчанию будет UAH и ее id = 5. Для меня код будет следующим:

function currency($amount, $currency='5', $options='')
    {
        $currency_helper =& TiendaHelperBase::getInstance( 'Currency' );
        $amount = $currency_helper->_($amount, $currency, $options);
        return $amount;
    }

 

Comments