xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Пример программного изменения данных без использования 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
Похожие записи

Комментарии RSS

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

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

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

можно

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

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

вместо my_data_item надо писать имя поля из xml
http://xandeadx.ru/blog/drupal/256

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании