Install
Works with Drupal: ^9.3 || ^10Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
New directory for temporary, http downloaded files; Layout changes for mapping form; Drupal 10.1 support
New directory for temporary, http downloaded files
Previously, files downloaded by the HTTP fetcher were saved to "temporary://", causing issues if the temporary directory changed or was emptied while an import was still running. Instead, http downloaded files are saved to private://feeds/in_progress/[feed ID] (or public://feeds/in_progress/[feed ID] in case no private file system is configured).
This directory is configurable:
$config['feeds.settings']['in_progress_dir'] = 'private://feeds/in_progress';
No UI exists to change it because the default should be good in most cases.
There also has been a new service added to interact with this directory: feeds.file_system.in_progress
See #2912130: Missing temporary files in load balanced environments.
The problem is only fixed for new imports. To fix this retroactively, one issue remains to be solved: #3158678: FetcherResult::checkFile() throws \RuntimeException, which is never caught
Layout changes for mapping form
On the mapping form you can now see better which source maps to which target property. This is a welcome change for targets that have many properties, such as the Address target (provided by the Address module).
There is now a table row for each target property, instead of for each target. It is possible that modules that alter the Feeds mapping form need to be adjusted.
See the change record for screenshots.
Drupal 10.1 support: importing hashed users passwords
In Drupal 10.1, the password hashing changed. This affects importing hashed user passwords with Feeds. You will need the new Password Compatibility module in order to keep importing hashed user passwords.
Signature of EntityProcessorBase::clearTarget() changed
The job of clearing a target has moved to the target plugin and this caused EntityProcessorBase::clearTarget() to get an additional parameter at the beginning of the method. See the change record for details.
Contributors (19)
MegaChriz, irinaz, damondt, joelpittet, bruno.bicudo, andypost, ptmkenny, Fant0m, artematem, n4r3n, merauluka, bburg, rdivince, smustgrave, jwilson3, pingwin4eg, trackleft2, Olarin, Abyss
Changelog
Issues: 13 issues resolved, 1 issue partly resolved (coding standards).
Changes since 8.x-3.0-beta3:
Bug
Feature
- #3173943 by MegaChriz, irinaz, damondt, joelpittet: Make target selection same height as source selection in mapping form.
- #3341082 by MegaChriz, Olarin: added an option for entityreference targets to select bundle for entity autocreation when applicable.
- #3049631 by MegaChriz: Added an action to bulk import feeds.
- #3165187 by MegaChriz: Added an action to bulk delete imported items.
Task
- #3354383 by MegaChriz: Fixed importing hashed passwords on Drupal 10.1.
- #2939688 by bruno.bicudo, MegaChriz: Fixed coding standards and added dependency injection for:
- SyndicationParser and SyndicationItem;
- The file target;
- The user role target.
- #3356227 by MegaChriz, andypost: Moved clearing the target from EntityProcessorBase::clearTarget() to TargetBase::clearTarget().
- #3325568 by MegaChriz, ptmkenny: Added PHP 8.2 support.
- #3351610 by MegaChriz: Fixed some Drupal 10.1 test failures.
- #2912130 by Fant0m, MegaChriz, artematem, n4r3n, merauluka, bburg, rdivince, smustgrave, jwilson3, pingwin4eg: Put http downloaded files in a configurable directory and added service to interact with this directory - to fix issue with missing temporary files in load balanced environments.
- #3349776 by trackleft2: Fixed code comment for UploadFetcherFeedForm constructor.
- #3341640 by MegaChriz: Added method getStateStorage() to \Drupal\feeds\Entity\Feed.
- #3332987 by MegaChriz: Check for logged errors in Kernel tests.