Я успешно создал собственный компонент веб-формы для определенного типа данных. Данные поступают в различные разделы, поэтому мне нужно создать дополнительные, но уже существующие типы компонентов, которые будут подкомпонентами моего пользовательского компонента.
По сути, я пытаюсь программно создать композицию компонентов веб-формы. Моя проблема в том, что весь код выполняется успешно: я получаю сообщение о том, что мой пользовательский компонент создан, и получаю обратную связь о том, что мои подкомпоненты также были успешно созданы.
Однако, подкомпоненты не отображаются в моей веб-форме.
В тот момент, когда мой пользовательский компонент создается и вставляется в БД, я пытаюсь создать все необходимые подкомпоненты с помощью следующего кода:
function _create_sub_component($nid, $new_component, $cid, $pid){
$node = node_load($nid);
$processed_name = str_replace(' ', '_', strtolower($new_component));
// Create the webform components array. Not sure if we need all these
// values, but let's be sure.
$component = array(
'cid' => (int)$cid,
'pid' => 0,#(int)$pid,
'nid' => (int)$node->nid,
// I don't trust the admin to make a key based on input :)
'form_key' => $processed_name,
'name' => $new_component,
// I want all lines to be numeric type component.
'type' => 'textfield',
'value' => '',
'extra' => array(),
'mandatory' => '0',
'weight' => 0,
'page_num' => 1,
);
array_push($node->webform['components'], $component);
node_save($node);
drupal_set_message("{$new_component} component successfully created in {$node->title}");
}
Я предполагаю, что вызов node_save вызывает проблему, но я не знаю точно, почему.
Я успешно создал собственный компонент веб-формы для определенного типа данных. Данные поступают в различные разделы, поэтому мне нужно создать дополнительные, но уже существующие типы компонентов, которые будут подкомпонентами моего пользовательского компонента. По сути, я пытаюсь программно создать композицию компонентов веб-формы. [b]Моя проблема в том, что весь код выполняется успешно: я получаю сообщение о том, что мой пользовательский компонент создан, и получаю обратную связь о том, что мои подкомпоненты также были успешно созданы. Однако, подкомпоненты не отображаются в моей веб-форме.[/b]
В тот момент, когда мой пользовательский компонент создается и вставляется в БД, я пытаюсь создать все необходимые подкомпоненты с помощью следующего кода:
$processed_name = str_replace(' ', '_', strtolower($new_component)); // Create the webform components array. Not sure if we need all these // values, but let's be sure. $component = array( 'cid' => (int)$cid, 'pid' => 0,#(int)$pid, 'nid' => (int)$node->nid, // I don't trust the admin to make a key based on input :) 'form_key' => $processed_name, 'name' => $new_component, // I want all lines to be numeric type component. 'type' => 'textfield', 'value' => '', 'extra' => array(), 'mandatory' => '0', 'weight' => 0, 'page_num' => 1, );