Вы здесь

Как вывести отдельное поле отправления веб-формы?

0

Добрый день.

Допустим, есть веб-форма со своим nid. У этой формы есть submission со своим sid. И есть некоторое поле (или, компонент) этой submission, который имеет свой cid.

Вопрос - можно ли получить отформатированное значение этого отдельного поля с помощью функции drupal_render, либо как-то иначе ?

Версия Drupal: 
7.x
Категория: 
Theming
Связанные проекты: 
Webform
Вопрос задан 14.11.2017 - 18:50

Что вы хотите видеть в "отформатированном значении"?

Комментарий оставлен 14.11.2017 - 19:02

Например, просто значение поля - "1000.00". Это получить просто.
А вот отформатированное значение - "1.000,00 kr." То есть, отображение с учетом тех настроек полей веб-формы, которые сделал клиент. Вот как его получить - пока разобраться не удалось.

Комментарий оставлен 14.11.2017 - 19:07

Ответы

0
$node = node_load($nid);
$submission = webform_get_submission($nid, $sid);
$components = $node->webform['components'];

$container = [];

module_load_include('inc', 'webform', 'includes/webform.components');

$sorter = webform_get_conditional_sorter($node);
$input_values = $sorter->executeConditionals($submission->data);

_webform_client_form_add_component($node, $components[$cid], NULL, $container, $container, $input_values, 'html');

$component_form_key = $components[$cid]['form_key'];
$formatted_value = render($container[$component_form_key]);
Ответ дан 15.11.2017 - 11:11
1
$webform_nid = ...;
$submission_sid = ...;
$component_cid = ...;

module_load_include('inc', 'webform', 'includes/webform.submissions');
$webform_node = node_load($webform_nid);
$submission = webform_get_submission($webform_nid, $submission_sid);
$build = webform_submission_render($webform_node, $submission, NULL, 'html');
$formatted_value = render($build['fieldname']);
Ответ дан 15.11.2017 - 00:54
Аватар пользователя xandeadx
xandeadx
1461

Спасибо за ответ.
Но решил всё-таки выложить и свой вариант, который удалось реализовать вчера, но опубликовать здесь не было времени.

Комментарий оставлен 15.11.2017 - 11:16