Два способа не импортировать определённые записи через 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
Похожие записи
Комментарии
Привет, столкнулся с такой проблемой, поле типа 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/Taxono…
Есть еще вариант: https://www.drupal.org/project/feeds_tamper
Кстати а вы не интерисовались импортом переводов нод через Feeds так чтобы связать сразу с нодой источником? Буду премного благодарен если осветите данный вопрос
А как можно проверить поле товара? Например, если поле товара "Поставщик" равно "Склад", то запись пропускаем. Это из MODULENAME_feeds_presave можно сделать? Или другой хук нужен?
можно
А может подскажите как обратиться к произвольному полю товара из этого хука?
так же как и везде - $entity->имя_поля
спасибо))
Здравствуйте!
Подскажите, пожалуйста, а как проконтролировать ещё до парсинга условие, что имя импортируемого файла содержит, например, "abcde", и не запускать импорт, если это условие не соблюдено?
Спасибо!
повесьте #validate на форму импорта
xandeadx, cпасибо за совет! Вот, что-то подобное получилось.
Добавить комментарий