Это зависит от того, какую версию вы используете и какие типы полей вы используете, но что-то вроде этого:
// Drupal 6
$n = node_load($node->id);
$n->title = 'A title';
$n->field_my_field_a[0]['value'] = 'A value';
$n->field_my_field_b[0]['value'] = 'B value';
node_save($n);
// Drupal 7
$n = node_load($node->id);
$n->title = 'A title';
$n->field_my_field_a[LANGUAGE_NONE][0]['value'] = 'A value';
$n->field_my_field_b[LANGUAGE_NONE][0]['value'] = 'B value';
node_save($n);
В обоих случаях данные поля будут сохранены вместе с узлом при вызове node_save()
.
Стоит отметить, что индекс 0
в обоих случаях относится к первому элементу в поле. Если поле имеет несколько значений, вы можете просто добавлять их в массив. Клавиша value
может потребоваться изменить в зависимости от типа данных, которые содержит поле (например, файловое поле будет содержать fid
(идентификатор файла) файла, которое оно содержит, поэтому настройте его соответствующим образом.
Кроме того, LANGUAGE_NONE
может потребоваться заменить требуемый код языка, если вы используете версию Drupal 7.