Модуль Entityforms Drupal 7: как получить значение поля с помощью php?

Я использую модуль entityform для сбора некоторых данных, отправленных пользователем http://drupal.org/project/entityform

Мне нужно ввести некоторые значения полей сущности в один из моих шаблонов. Я пытался сделать это с помощью некоторого кода, который работает для обычных полей узла.

<?php echo $node->field_title[$node->language]['value']; ?>

Я пробовал..

<?php echo $entity->field_title[$node->language]['value']; ?>

Но это не работает. У кого-нибудь есть идеи о том, как я могу это сделать?


person Dustin    schedule 09.10.2012    source источник
comment
Должно ли это быть ‹?php echo $entity-›field_title[$entity-›language]['value']; ?> вместо?   -  person nmc    schedule 10.10.2012
comment
Помогает ли это: drupal.stackexchange.com/questions/27293/   -  person Kev    schedule 11.10.2012
comment
Я не думаю, что это помогает :( Похоже, это просто для получения значения поля узла. Мне нужно получить значение поля из объекта.   -  person Dustin    schedule 11.10.2012


Ответы (2)


<?php
    $field_data = field_get_items('entityform',$entityform,'field_title');
    echo render(field_view_value('entityform',$entityform,'field_title',$field_data));
?>

документация по field_get_items , документация field_view_value

person mmiles    schedule 12.10.2012
comment
Получение следующей ошибки. Предупреждение: нельзя использовать скалярное значение в качестве массива в include() (строка 1 файла /home/mrktspac/public_html/nvoy/sites/all/themes/boilerplate/templates/entityform.tpl.php). Неустранимая ошибка: метод __clone вызывается для не-объекта в /home/mrktspac/public_html/nvoy/modules/field/field.module в строке 801. - person Dustin; 12.10.2012
comment
хорошо, тогда ваше поле не является массивом, я обновил свой пример кода. Возможно, вам придется передать свое поле по-разному для field_view_value в зависимости от вашего поля. Или вы можете повторить необработанное значение из массива $field_data и забыть об использовании field_view_value (но это необработанное значение не будет очищено) - person mmiles; 12.10.2012
comment
По сути, это правильный ответ ... беглый взгляд на код модуля предполагает, что вы должны заменить 'entity_type' на 'entityform' и $entity на $entityform, и это должно работать. - person Clive; 16.10.2012
comment
@Clive Да, я просто дал более общий ответ, 'entity_type' и $entity - это просто общие переменные. Дастин, я обновил свой код, чтобы он был более конкретным для используемого вами модуля entityform. - person mmiles; 19.10.2012

Если вы знаете entityform_id отправки, вы можете загрузить его следующим образом:

entity_load('entityform', $entityform_id);
person Henry    schedule 19.04.2015