Вывод значения поля в теме views

Главные вкладки

Аватар пользователя y4achek y4achek 1 октября 2019 в 19:45

Приветствую форумчане!

Помощь очень нужна Ваша.

Views 3

Темизировал вывод views по полям.
Настроил вывод полей в это представление.
Одно из полей необходимо математически посчитать.

---------------------------------------------------
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>

<?php
if($id=='title'){$field_title=$field->content;}
if($id=='field_kartinka_tovara'){$field_kartinka_tovara=$field->content;}
if($id=='field_cena_usd'){$field_cena_usd=$field->content;}
?>
<?php endforeach;?>

<? echo $field_kartinka_tovara;?>
<? echo $field_title;?>

<? var_dump($field_cena_usd); ?>
---------------------------------------------------

var_dump($field_cena_usd);

выводит:
string(38) "55.55"

Надо получить значение 55.55
Как получить значение переменной или поля field_cena_usd?

Лучший ответ

Аватар пользователя y4achek y4achek 2 октября 2019 в 10:46

Благодарю!

Итог: в настройках поля поставил галочки "Убрать HTML тэги" и "Убрать пробелы".
В коде страницы вывелось < div >55.55< / div >
Далее использовал функцию trim();

$field_cena_usd = trim($field_cena_usd, "< div >.....< / div >");

var_dump($field_cena_usd);
Показал String(5)

Далее без преобразования во Float в формуле подсчета все посчиталось.

Однако, это не феншуй.
Разве нельзя одним запросом drupal получить значение этого поля?

Комментарии

Аватар пользователя y4achek y4achek 2 октября 2019 в 8:37

#1 #2 и #3 Выдают значение 0

var_dump($field_cena_usd);
float(0)

Это происходит потому что в переменную попадает массив. String(38) вместо String(5). Ведь в значении 55.55 имеем 5 знаков, а не 38.
Если во views в настройках вывода поля убрать вывод тегов и пробелов и т.д., то получается String(16). Визуально views выводит само значение 55.55, но по факту там есть еще что-то. Из-за это что-то не работают (int), (float) - выводят просто 0.

Вот и вопрос, как вытащить само значение 55.55, что-бы var_dump($field_cena_usd); показал String(5)? Тогда значение можно будет перевести во Float и посчитать.

Аватар пользователя y4achek y4achek 2 октября 2019 в 10:46

Благодарю!

Итог: в настройках поля поставил галочки "Убрать HTML тэги" и "Убрать пробелы".
В коде страницы вывелось < div >55.55< / div >
Далее использовал функцию trim();

$field_cena_usd = trim($field_cena_usd, "< div >.....< / div >");

var_dump($field_cena_usd);
Показал String(5)

Далее без преобразования во Float в формуле подсчета все посчиталось.

Однако, это не феншуй.
Разве нельзя одним запросом drupal получить значение этого поля?