Добавление данных в поле даты, прикрепленное к узлу в drupal 7
Мне нужно добавить данные в поле datetime в drupal 7. Я пытаюсь использовать
$node->field_test_a_updated[0]['value'] = $val;
$node->field_test_a_updated[0]['delta'] = 0;
$node->field_test_a_updated[0]['timezone'] = 'UTC';
$node->field_test_a_updated[0]['timezone_db'] = 'UTC';
$node->field_test_a_updated[0]['date_type'] = 'datetime';
где $val имеет значение "2010-06-15T00:00:00-00:00".
Когда я пытаюсь импортировать содержимое, все остальные поля, прикрепленные к узлу, переносятся правильно, кроме поля даты. Я также пытался использовать опцию [LANGUAGE_NONE].
Я уверен, что я упускаю что-то, что связано с drupal7 field api.
Пожалуйста помоги.
1 ответ
Решение
Структура полей в Drupal 7 (в этом контексте):
array(
'language_code' => array(
0 => array(
'value => $val,
'other_column_value' => $other_val
)
)
);
delta
обрабатывается ключом каждого из массивов внутри $array['language_code']
так что вам не нужно включать его. В вашем случае вы хотите, чтобы код выглядел следующим образом (если, конечно, вы проходите через узел node_save()
впоследствии):
$node->field_test_a_updated[LANGUAGE_NONE] = array(
0 => array(
'value' => $val,
'timezone' => 'UTC',
'timezone_db' => 'UTC',
'date_type' => 'datetime'
)
);
надеюсь, это поможет