добавление данных в поле даты, прикрепленное к узлу в drupal 7 - PullRequest
0 голосов
/ 07 сентября 2011

Мне нужно добавить данные в поле 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].

Я уверен, что упускаю что-то, что связано с api поля drupal7.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 сентября 2011

Структура полей в 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'
  )
);

Надеюсь, что поможет

...