Использую модуль Computed Field для конвертации цены.
Для вычисляемого поля написал код:
<?php
$nd = node_load(33);
$nf = round($nd->field_rate['und'][0]['value'] * $entity->field_price_ye['und'][0]['value'], 2);
$new_nf = stan($nf, 3);
function stan($value, $offset) {
$v = (string)$value;
$l = strlen($v);
$ret = array();
for($i=$l; $i>=0; $i--) {
if( ($i % $offset) == 0 ) $ret[] = " ";
$ret[] = $v[$l-$i];
}
return trim(implode(null, $ret));
}
$entity_field[0]['value'] = $new_nf." руб.";
?>
В результате на страницах собранных на Views получаю ошибку:
«Fatal error: Cannot redeclare stan() (previously declared in C:\OpenServer\domains\test.my\sites\all\modules\computed_field\computed_field.module(394) : eval()'d code:4) in C:\OpenServer\domains\test.my\sites\all\modules\computed_field\computed_field.module(394) : eval()'d code on line 13»
Если упростить код, убрав из него функцию на которую ругается ошибка, то и ошибка исчезает.
Прошу подсказать как решить задачу?
Комментарии
Так работает:
<?php
$nd = node_load(33);
$nf = round($nd->field_rate['und'][0]['value'] * $entity->field_price_ye['und'][0]['value'], 2);
$v = (string)$nf;
$l = strlen($v);
$ret = array();
for($i=$l; $i>=0; $i--) {
if( ($i % 3) == 0 ) $ret[] = " ";
$ret[] = $v[$l-$i];
}
$nv = trim(implode(null, $ret));
$entity_field[0]['value'] = $nv." руб.";
?>