This post is a short how-to on importing data from multiple fields of a comma separated value (CSV) file into one multi-value field using the Drupal Feeds Tamper.
Chances are you have been in a situation where you need to import some data into a Drupal site. The data was provided to you in a CSV file. Because you are smart and know better than to spend your client’s money writing your own code for this, you grab the Feeds module which conveniently includes a CSV parser.
All is well until you need to merge the content of multiple sources (eg: “cells”) into one target (eg: “field”). This might be the case if you have a List field where multiple options can be checked.
For each of these names we want all of the certifications to be passed to a single field:
This is where Feeds Tamper shines. Here’s how you do it:
1. Go to your feed processor mapping page and map all three sources to the one target:
2. Go to the Tamper tab (if you are using the dev version) or to the Feeds Tamper link above the mapping table (if you are using the beta-3 version) and add a plugin for the last of your 3 sources (in our example certification_three).
3. Select the Rewrite plugin and use the tokens to rewrite the input to include all of your sources separated by a comma and save.
4. Add a second plugin: Explode. Make sure that the string separator is the same as the one you have used in the Rewrite plugin. Save.
5. Run your import et voilĂ !
A couple of gotchas: there seems to be some cases where this module misbehaves. In the example I just described, each of the certifications is numbered by a string. Using an integer (eg: certification1, certification2) made the Rewrite plugin fail. Indeed instead of the value the token represents, you will get the label of the token itself.
No comments:
Post a Comment