Imports vides avec Feeds dans Drupal
Si vous souhaitez faire des imports de contenus ou d’utilisateurs vers un site développé sous Drupal, on vous recommandera d’utiliser le module Feeds, qui permet justement ces actions. L’avantage de cet outil est qu’il permet d’importer vers un site des contenus, des utilisateurs, par exemple par des fichiers au format CSV, ce qui est pratique pour des changements importants.
Mais il est un bug assez handicapant avec Feeds qui peut survenir : les imports vides.
Revoyons rapidement la manipulation pour travailler avec Feeds.
Vous commencez par installer les modules suivants :
Une fois téléchargés, vous activez les modules.
Si vous souhaitez créer un type de contenu spécifique pour vos imports, vous créez d’abord le contenu ad-hoc.
Ensuite, vous allez dans admin/structure/feeds et vous pouvez configurer votre propre importateur, surtout si vous avez des champs spécifiques.
Enfin, vous vous rendez dans /import, vous choisissez votre fichier en CSV, vous sélectionnez le séparateur et vous cliquez sur import. Et là, il peut arriver que vos champs soient vides. Drupal vous informe que les contenus ont bien été créés, mais vous n’avez absolument rien dans les contenus.
Cela est dû à un petit bug dans la version stable de Feeds. Donc, téléchargez et installez la version de dév à la place et normalement, cela devra résoudre le bug.
Mais avant cela, assurez-vous que :
- le fichier que vous essayez d’importer est un bien un CSV, préparé avec Libre Office/Open Office;
- que le séparateur choisi est le bon;
- que l’encodage soit correct.
Enfin, je recommande ce très bon tutoriel vidéo en deux parties
Qui vous montrera pas à pas la marche à suivre.
Une autre problématique peut se poser avec les imports vides dans Feeds. Le souci a été rencontré sur la version 7 de Drupal. Dans votre base de données, vous avez une table qui contient un historique des imports. Chaque import correspond à un hash et si, pour une raison ou pour une autre, le hash est identique, Feeds ne comprendra pas qu’il s’agit d’un nouvel import.
Rendez-vous dans votre base de données et cherchez la table « Feeds item ». Vous pouvez purger cette table. Un essai a été fait pour vérifier que cela ne supprimait pas les données importées. Ce n’est pas le cas. Néanmoins, on vous encourage à faire le test.
Après la purge des lignes de la table Feeds item, les imports se sont fait correctement. Cette solution n’a été documentée nulle part. Dans la mesure où Drupal 7 s’arrête en janvier 2025, il est probable que cette solution ne vous sera plus utile. Néanmoins, si vous rencontrez le problème sur Drupal 9 ou 10, essayez cette solution au cas où.