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

Drupal → Пропустить импорт определённых записей в Feeds

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

Два способа не импортировать определённые записи через Feeds:

Способ 1 — на стадии парсинга данных:

/**
 * 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 $key => $item) {
      // Пропускаем импорт термина с идентификатором 123
      if ($item['tid'] == 123) {
        unset($result->items[$key]);
      }
    }
  }
}

Способ 2 — на стадии сохранения сущности:

/**
 * Implements hook_feeds_presave().
 */
function MODULENAME_feeds_presave(FeedsSource $source, $entity, $item) {
  if ($source->id == 'my_importer_machine_name') {
    // Пропускаем импорт термина с идентификатором 123
    if ($entity->tid == 123) {
      $entity->feeds_item->skip = TRUE;
    }
  }
}
Написанное актуально для Feeds 2
Похожие записи

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

Привет, столкнулся с такой проблемой, поле типа termrefereces. Задача проимпортировать с вложениями "1lvl/2lvl/3lvl", и создавать не только термин но и родителей, если они не существуют. Просто указать последний термин "lvl3" не подходит потому, что он может быть не один с таким название в таксономии.
Как бы ты решал такую задачу?

https://www.drupal.org/sandbox/manarth/1540722

можно самостоятельно создать отсутствующие термины и вернуть нужный tid
http://xandeadx.ru/blog/drupal/791
http://cgit.drupalcode.org/sandbox-xandeadx-2160935/tree/helpers/Taxonom...

Есть еще вариант: https://www.drupal.org/project/feeds_tamper

Кстати а вы не интерисовались импортом переводов нод через Feeds так чтобы связать сразу с нодой источником? Буду премного благодарен если осветите данный вопрос

А как можно проверить поле товара? Например, если поле товара "Поставщик" равно "Склад", то запись пропускаем. Это из MODULENAME_feeds_presave можно сделать? Или другой хук нужен?

можно

можно

А может подскажите как обратиться к произвольному полю товара из этого хука?

так же как и везде - $entity->имя_поля

спасибо))

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

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

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