Здравствуйте, подскажите где у меня ошибка, не могу понять, пишет что неопределенный индекс вот тут
$result[$i]['price'] = $res['price']*$ratios[$res['currency']];
а именно переменная ratios, если вместо нее умножить на любую цифру, то все работает
, не пойму почему он не определен, когда вот переменная в начале
$ratios = $mc->getRatios();
я это не писал, поэтому не пойму что тут не так
function multicurrencyInitTemplate($smarty) {
global $smarty;
$mc = new multicurrency();
$mc_default_currency = $mc->getDefault();
$smarty->assign("mc_default_currency", $mc_default_currency);
}
function calculateUnitPrice($ad_id) {
$mc = new multicurrency();
$mc->setUnitPrice($ad_id);
}
function alterSortColumn(&$order_by, &$order_way) {
//if price column
if( strstr($order_by, "price") ) {
$order_by = str_replace("price", "unit_price", $order_by);
}
}
function transformPrices(&$result) {
$mc = new multicurrency();
$ratios = $mc->getRatios();
$mc_default_currency = $mc->getDefault();
global $post_array;
if(isset($post_array['currency']) && $post_array['currency']) {
$crt_currency = $post_array['currency'];
$crt_currency = strtoupper($crt_currency);
$mc->setMulticurrencyCookie($crt_currency);
}
else
$crt_currency = $mc_default_currency;
$mc_default_ratio = $ratios[$crt_currency];
// recalculate ratios if not default currency
if($crt_currency != strtolower($mc_default_currency)) {
foreach($ratios as $key=>$value) {
if($key==$crt_currency) $ratios[$key] = 1;
else {
$ratios[$key] = $ratios[$key]/$mc_default_ratio;
}
}
} // end recalculate ratios
$i = 0;
foreach($result as $res) {
if( $res['price']>0 && $res['currency'] && strtolower($res['currency'])!=$crt_currency) {
$result[$i]['price'] = $res['price']*$ratios[$res['currency']];
$result[$i]['currency'] = $crt_currency;
$result[$i]['price_curr'] = add_currency(format_price_field($result[$i]['price']), $crt_currency);
}
if( $res['price']==0 && $res['currency']!=$crt_currency) {
$result[$i]['price_curr'] = add_currency(format_price_field(0), $crt_currency);
}
$i++;
}
}
вот функция которая там вызывается
function getRatios() {
global $db;
$result = $db->fetchAssocList("select `currency`, `ratio` from `".$this->settings_table."`");
$ratio_array = array();
foreach($result as $r) {
$ratio_array[$r['currency']] = $r['ratio'];
}
return $ratio_array;
}
может в ней что-то не то