Drupal → Программно изменить данные перед их импортом с помощью Feeds

25.11.2014

Пример программного изменения данных без использования Feeds Tamper:

/**
 * Implements hook_feeds_after_parse().
 */
function MODULENAME_feeds_after_parse(FeedsSource $source, FeedsParserResult $result) {
  if ($source->id == 'my_importer_machine_name') {
    foreach ($result->items as &$item) {
      // Уменьшаем длину поля my_data_item
      $item['my_data_item'] = drupal_substr($item['my_data_item'], 0, 32);
    }
  }
}
Написанное актуально для
Feeds 2
Похожие записи

Комментарии

Сергей
29.04.2015, 10:53

Подскажите пожалуйста, можно ли с помощью данного решения принудительно "заставить" прописывать определенному полю импортируемой ноды дефолтное значение?

Проблема в следующем. Импортирую данные xml и создаю при этом ноды. Есть несколько полей для импорта, но одно поле (изображение) не участвует в импорте, но должно при создании ноды автоматически генерировать картинку из определенной папки (модуль Image Field Random). Когда данные импортируются, все проходит нормально, но автоматическая генерация картинки не проходит и вообще данное поле остается не тронутым, пустым. Вот я и подумал, сможет ли данное решение принудительно устанавливать для поля картинки дефолтное значение и генерировать картинку.

Буду признателен за помощь!

Сергей
29.04.2015, 16:08

Ок. Правильно ли я понимаю, что вместо "my_importer_machine_name" я прописываю машинное имя импорта feeds импортера, а вместо "my_data_item" имя поля, которое должно автоматически вставлять дефолтное значение?

И главный вопрос - этот хук я должен использовать в новом модуле или его нужно в какое-то определенное место вставлять? (простите за невежество)

Возможно ли с помощью с помощью данного решения сделать так чтобы в случае с одинаковыми артикулами но разными фото, фото не затиралось предыдущее, а записывалось следующим для этого товара? Если да то как, а если нет, то как можно по другому?

Здравствуйте! Вопрос о совместном использовании этого трюка и Feeds Tamper.

Подскажите, пожалуйста, как изменить данные ДО того, как их обработает Feeds Tamper?

Т.е. как выполнить цепочку
1. изменяем нужные данные с помощью хука
2. дальше их обрабатывает Feeds Tamper

Спасибо!

Добавить комментарий