Вы здесь

Как в Feeds добавить значение к multi-value полю, а не перезаписать его?

0

Добрый день.
В XML есть:

Где C - это nid
F_V_C и F_N_C - это tid

Надо чтобы у всех nid обновились tid
Все кажется просто, но nid в файле повторяются, и если его делать уникальным, то запишется только последний блок feature, а надо сделать так, чтобы tidы дополнялись каждый раз., т.е. :
у ноды с nid =5 был F_V_C = 7 и 8, F_N_C = 10 и 12
Как это реализовать?

Версия Drupal: 
7.x
Связанные проекты: 
Feeds
Вопрос задан 18.01.2018 - 10:19

Ответы

1

Можно через костыль - в hook_feeds_presave подгрузить оригинальную ноду и смержить значения поля:

/**
 * Implements hook_feeds_presave().
 */
function hook_feeds_presave(FeedsSource $source, $entity, $item) {
  if ($source->id == '...') {
    $original_entity = node_load($entity->nid, NULL, TRUE);
    // добавить в $entity->field_name данные из $original_entity->field_name
  }
}
Ответ дан 18.01.2018 - 22:50
Аватар пользователя xandeadx
xandeadx
1501

Спасибо, работает, но работает правильно только в том случае, если до этого у ноды небыло заполнено это поле, а если было то он мержит то что было + все новое :)

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