Ce module permet d'importer/exporter des taxinomies, des structures ou de simples listes de termes dans/depuis un vocabulaire à partir/vers d'un fichier CSV, d'une url ou d'un texte copié-collé.

Le format CSV correspond à une simple liste de valeurs séparées par un séparateur, souvent une virgule(,) ou un point-virgule (;), et des caractères de délimitation, souvent les guillemets ("). Si vous ne savez pas comment créer un fichier CSV, vous pouvez utiliser LibreOffice Calc ou un autre tableur pour exporter vos données dans un fichier CSV.

Des formats d'import ou d'export spécifiques peuvent être ajoutés simplement par un mécanisme d'extensions (sinon, demander à l'auteur !).

Après avoir installé le module, les permissions "importer des taxinomies par csv" et "exporter des taxinomies par csv" doivent être activées. La permission "administrer les taxinomies" n'est pas nécessaire pour utiliser le module, mais est recommandée.

Les termes peuvent être internationalisés, à l'exception des champs attachés [Taxonomy CSV pour Drupal 7 seulement]. Vous pouvez donc importer une liste ou une structure de termes puis traduire ces derniers.

Ce module peut être utilisé avec drush : il est possible d'importer et d'exporter des taxinomies par le biais de la ligne de commandes.

Sommaire

  1. Formats
    1. Termes seuls
    2. Champs personnalisés (Drupal 7 Fields)
    3. Champs et liens des termes
    4. Termes (vocabulaire plat)
    5. Structure hiérarchique ou en tableau d'un terme par ligne
    6. Structure polyhiérarchique
    7. Parents de premier niveau
    8. Enfants de premier niveau
    9. Termes associés (termes connexes)
    10. Termes synonymes
    11. Définitions complètes de termes
    12. Descriptions des termes
    13. Poids des termes
    14. Term and description translation
    15. Taxonomy manager
    16. Geotaxonomy
  2. Import
    1. Que voulez-vous importer ?
    2. Où se trouvent les termes à importer ?
    3. Quel est le format de la source ?
    4. Quel est le vocabulaire de destination ?
    5. Quand un terme existe, que faire avec ?
    6. Infos sur le traitement et import de grosses taxinomies
  3. Export
  4. Taxonomy csv import API
  5. Paramètres avancés et conseils
    1. Permissions
    2. Autres conseils

1. Formats

Plusieurs formats peuvent être utilisés pour importer ou exporter un vocabulaire. Le plus souvent, la première colonne correspond au nom du terme. Vous pouvez indiquer comment les colonnes suivantes doivent être exportées ou importées.
La structure du vocabulaire doit être importée en premier lorsque plusieurs fichiers sont utilisés. Il faut donc choisir d'abord les options Champs et liens, plat, structure, polyhiérarchie, premier niveau de parents ou d'enfants avant les options relations, descriptions, etc.

1. Termes seuls

Les termes sont importés comme de simples termes. Les colonnes suivantes sont ignorées. Exemple :

2. Champs personnalisés (Drupal 7 Fields)

Les termes sont importés avec un schéma csv fourni par l'utilisateur.

Le schéma csv doit contenir chaque entête de colonne du vocabulaire à importer. L'entête de colonne est le nom (pas l'étiquette) du champ dans lequel importer les éléments. Cela peut être un champ par défaut (name, description, weight) ou un champ personnalisé.

Par exemple, vous voulez importer une liste de constructeurs automobiles et vous voulez que chaque constructeur ait des champs personnalisés indiquant la nationalité et la date de création (origine de l'exemple, fictif):

Le format des champs personnalisés sera alors :

name, field_pays, field_date_origine

ou de façon plus générique :

name, field_monchampperso_1_machinename, field_monchampperso_2_machinename...

Les éléments peuvent être répétés pour les champs multivalués (Taxonomy CSV 7.x-10.x-dev).

name, description, weight, parent, synonyme, synonyme, synonyme, terme_lien, terme_lien, terme_lien, terme_lien

Le module peut importer tous les types de champs (Field) tant que leur valeur principale est 'value'. Ces champs ont été vérifiés :

Les champs personnalisés sont créés automatiquement s'ils n'existent pas et is sont ensuite attachés au vocabulaire. Le format par défaut est 'text'. Si vous voulez en utiliser un autre, vous devez l'indiquer avec le symbole '|' dans la section 'Vocabulaire' du formulaire. Le champ n'est pas créé ni modifié s'il existe déjà.

Par exemple, vous voulez importer ces éléments (origine de l'example) :

Le format personnalisé pourra être :

name, field_nom_interne, description, field_fichier, field_statut, terme_lien, terme_lien, terme_lien

Les champs personalisés seront :

field_fichier|file, terme_lien|taxonomy_term_reference

Cette option permet d'importer la définition complète d'un terme ainsi que ses liens avec les autres termes.

Le format est : nom du terme, identifiant du terme, identifiant du vocabulaire, description, poids, nombre de synonymes, nombre de parents de premier niveau, nombre d'enfants de premier niveau, nombre de termes associés, liste des synonymes, liste des identifiants des parents de premier niveau, liste des identifiants des enfants de premier niveau, liste des identifiants des termes associés, liste des identifiants des vocabulaires des termes associés.

Seul le nom doit être défini, les autres valeurs pouvant être vides. Les identifiants ne sont pas les numéros internes des terme ou des vocabulaires, mais des identifiants uniques. Ils peuvent être des noms ou des nombres. Dans la plupart des cas, vous pouvez simplement utiliser les véritables noms. En fait, les identifiants doivent être spécifiques seulement pour les noms de termes doublons de manière à identifier chaque élément. De ce fait, pour les doublons, vous pouvez utiliser le nom plus un nombre. L'identifiant du terme principal est nécessaire seulement lorsque le terme est un doublon.

Exemples :

Avec ce format, le vocabulaire de destination est determiné par la source. Si la troisième colonne est vide, un nouveau vocabulaire sera créé. S'il s'agit d'un nom ou d'un nombre, un vocabulaire sera créé s'il n'existe pas. Ce processus est également utilisé pour les termes associés. Si le vocabulaire d'un terme associé n'est pas défini, le vocabulaire du terme principal est utilisé. Attention : il est déconseillé de modifier le vocabulaire d'un terme qui a des liens.

Un format plus simple, Définitions complètes de termes, permet d'importer les seules définitions.

4. Termes (vocabulaire plat)

Cette option permet d'importer un ensemble de termes de manière à créer un vocabulaire plat. Tous les éléments du fichier seront importés en tant que termes. Exemple :

5. Structure hiérarchique ou en tableau d'un terme par ligne

Cette option permet de créer la structure arborescente d'un vocabulaire (géographie, classification...). Pour importer une hiérarchie à plusieurs parents, il est préférable d'utiliser les importations "Polyhiérarchie", "Enfants de premier niveau" ou "Parents de premier niveau".
Votre fichier peut être écrit selon deux schémas et un mixte.

Premier schéma: tous les ancètres d'un terme
Dans le premier schéma, vous devez indiquer tous les ancêtres de chaque terme. La deuxième colonne sera importée comme un enfant du terme de la première colonne. La troisième colonne sera importée comme un enfant du terme de la deuxième colonne et ainsi de suite. Les lignes peuvent avoir n'importe quel ordre. Exemple:

Attention : lorsqu'un enfant est ajouté ou mis à jour, la ligne doit contenir tous ses ancêtres. Ainsi, une troisième ligne pourrait être :
mais pas :
car dans ce cas, < Mammifère > serait importé comme terme de premier niveau et non comme un enfant du terme < Animal > comme dans la ligne précédente.
Second schéma: structure en tableau d'un terme par ligne
Dans le schéma "structure en tableau d'un terme par ligne", vous pouvez importer les termes sans répéter tous les ancêtres si la ligne précédente les contient. Ce mode est très pratique pour importer une structure depuis un tableur. Il permet également de construire facilement une structure et de télécharger un fichier plus léger. Votre hiérarchie peut être présentée de la façon suivante :
Monde
Asie
Japon
Tokyo
Corée
Séoul

Ainsi, les premières lignes de votre fichier csv seraient :
< Paris > sera automatiquement ajouté comme enfant du terme < France >.
Schema mixte

Les lignes peuvent être partielles. Ainsi, la ligne suivante pourrait être :

< Suisse > serait alors ajouté comme enfant d'< Europe > et bien sûr < Bern > comme enfant de < Suisse >.

De la même façon, les lignes ci-dessus peuvent être simplifiées en :

Les lignes complètes, avec un seul terme ou partielles peuvent être mélangées, mais l'ordre est pris en compte deux lignes par deux, sauf lorsque toutes les lignes sont complètes. Dans cet exemple, si les cinquième et sixième lignes sont interverties, < Séoul > deviendrait un enfant de < Japon >.

6. Structure polyhiérarchique

Cette option permet de créer une structure polyhiérarchique telle qu'une généalogie.
Le format est le même que le précédent : chaque terme est l'enfant du précédent : parent, enfant, petit-enfant... et ainsi de suite.
Cependant, quatre points différent. Premièrement, le premier élément ne doit pas forcément être une racine. Deuxièmement, les doublons sont toujours fusionnés, sauf lorsque l'un est parent direct de l'autre, ceci étant interdit dans Drupal. De ce fait, dans le cas d'un vocabulaire monohierarchique sans doublons non-direct, comme l'exemple géographique ci-dessus, le résultat est le même qu'avec l'option précédente. Troisièmement, les lignes peuvent également être partielles, mais dans certains cas de doublons, le résultat sera différent. Enfin, la polyhierarchie peut être récursive.
Par exemple, des lignes peuvent être :

7. Parents de premier niveau

Cette option permet d'importer un vocabulaire dans lequel les termes peuvent avoir plusieurs parents, comme dans une généalogie (polyhierarchy).
Le premier élément est importé en tant que terme et les suivants en tant que parents de premier niveau du terme. Par exemple, des lignes peuvent être :

8. Enfants de premier niveau

Cette option permet d'importer un vocabulaire dans lequel les termes peuvent avoir plusieurs parents, comme dans une généalogie (polyhierarchy).
Le premier élément est importé en tant que terme et les suivants en tant qu'enfants de premier niveau du terme. Par exemple, des lignes peuvent être :

Les trois exemples précédents correspondent au même vocabulaire lorsque l'option des termes existants est "mettre à jour et fusionner", ce qui est l'option recommandée.

9. Termes associés (termes connexes)

Attention : sous Drupal 7, les termes associés ont été supprimés et remplacés par les champs (fields). Cette option est donc disponible seulement avec Drupal 6. Pour disposer de la même fonctionnalité, il faut créer un champ 'relations'.
Cette option permet de créer des liens entre les termes comme les "voir aussi" dans une encyclopédie. La deuxième colonne et les suivantes seront importées en tant que termes connexes du terme de la première colonne. Par exemple, une ligne pourrait être :

Ainsi, < Baobab > renverra à < Madagascar > et à < Fantôme >. Une option permet de créer également les sous-relations, en l'occurrence entre < Madagascar > et < Fantôme > (voir ci-dessous).

10. Termes synonymes

La deuxième colonne et les suivantes seront importées comme termes synonymes du terme de la première colonne. Exemple :

11. Définitions complètes de termes

Cette option permet d'importer des définitions complètes de termes.Le format est : nom, poids, description, liste des synonymes éventuels. Exemple :

Un autre choix, Champs et liens des termes, permet d'importer non seulement les définitions, mais également les liens.

12. Descriptions des termes

La seconde colonne sera importée comme description du terme défini dans la première colonne. Exemple :

13. Poids des termes

La seconde colonne sera importée comme poids du terme défini dans la première colonne. Exemple :

14. Traduction du nom et de la description [Drupal 7 seulement]

3. Term translation

Ce format est disponible seulement si le sous-module "i18n Taxonomy" du module Internationalization est activé. De plus le mode de traduction du vocabulaire doit être "Translate" ou "Localize".

Attention : Si vous avez une structure hiérarchique, vous devez importer celle-ci avant d'importer les traductions, pour chaque traduction si le mode de traduction est Translate.

Format: Le terme est dans la première colonne, suivi par ses traductions. Si le mode est Localize, alors la description du terme et ses traductions peuvent être ajoutée.

Pour un vocabulaire avec le mode Translate :

nom du terme/id, première traduction, deuxième traduction...

Pour un vocabulaire avec le mode Localize :

nom du terme/id, première traduction... , description, première traduction de la description...

Exemples :

Notes

La première colonne correspond au nom, la seconde à sa traduction et les deux suivantes à leur description éventuelle. Exemple :

La langue du premier terme est "Neutre" et celle du second élement peut être sélectionné dans le troisième onglet.

Ce format est disponible seulement si le sous-module "i18n Taxonomy" du module Internationalization est activé.

15. Taxonomy manager

Ce format est utilisé par Taxonomy manager pour exporter des vocabulaires. Les colonnes sont : identifiant du vocabulaire, identifiant du terme, nom du terme, description du terme, id du parent 1 de premier niveau, ..., id du parent n de premier niveau. Example:

Dans ce format, l'ordre des lignes est important : il est impossible d'attacher un parent à un terme si ce parent n'a pas été importé dans une ligne précédente.


Lorsqu'un vocabulaire est importé dans un vocabulaire existant, seule l'option "ignorer et créer" peut être utilisée.

16. Geotaxonomy

Importe et exporte des termes de géotaxinomie.

Format

Exemple

Seuls le nom, la latitude et la longitude sont nécessaires. Indiquer un parent est recommandé afin d'aboutir à une structure hiérarchique.

Les identifiants peuvent être des nombres ou non, par exemple le nom du terme lui-même, mais ils doivent être uniques pour éviter les termes doublons. Seuls les doublons ont besoin d'un identifiant.

2. Import

Taxonomy CSV permet d'importer des structures et des propriêtés de termes.

1. Que voulez-vous importer (contenu de la source) ?

La source peut être configurée avec le premier groupe d'options. Le plus souvent, la première colonne indique le nom du terme importé. Vous pouvez indiquer comment les colonnes suivantes doivent être importées en choisissant le format.

2. Où se trouvent les termes à importer ?

Vous pouvez importez les termes à partir d'un fichier ou avec une zone de texte. Sélectionnez simplement votre choix. L'adresse du fichier peut être un chemin local ou une url.

Les paramètres avancés permettent de choisir le séparateur et le délimiteur de champ.

3. Quel est le format de la source ?

L'import doit être formaté au format utf-8, de préférence sans la marque d'ordre des octets.

Ce groupe d'options permet de définir les séparateur et délimiteur spécifiques des champs ainsi qu'une format de langue tel que 'fr_FR.utf8'.

4. Quel est le vocabulaire de destination ?

Vous pouvez importer vos termes dans un vocabulaire existant ou en créer un nouveau. Vous pouvez également importer vos termes dans une copie d'un vocabulaire existant.

Quand vous voulez importer une nouvelle liste dans une taxinomie existante, il est recommandé de procéder en trois étapes de façon à garantir la qualité de l'importation.

Si vous voulez seulement créer un nouveau vocabulaire, le premier choix est suffisant, à moins que vous avez plusieurs fichiers pour un vocabulaire.

Quand le contenu de la source est Définitions complètes de termes et liens, la destination est déterminée par la source. Si la troisième colonne est un identifiant, un nouveau vocabulaire sera créé. S'il s'agit d'un nom, un vocabulaire sera créé s'il n'existe pas. Si elle est vide ou égale à zéro, le vocabulaire sera autocréé, dupliqué ou utilisé selon l'option. Il en est de même pour les termes associés.

5. Quand un terme existe, que faire avec ?

La destination peut être configurée avec le second groupe d'options. Vous pouvez définir ce que deviendront les termes existants. Jusqu'à quatre choix sont possibles selon le contenu de la source :

6. Infos sur le traitement et import de grosses taxinomies

Ce groupe d'options permet de choisir les informations affichés à la fin du traitement.

Pour importer une taxinomie de taille importante (à partir de 1000 ou 10000 lignes selon le serveur) lorsqu'il n'est pas possible de modifier les temps et mémoire maximum autorisés par le serveur, il est d'abord conseillé de désactiver certains modules utilisant les taxinomies tels que "pathauto" avant l'importation. Les paramètres ne sont pas perdus lorsqu'un module est désactivé - et non désinstallé -.
Ensuite, vous pouvez utiliser les paramètres avancés suivants (dans les groupes d'options).

Attention: la fonction "Lister les termes" par défaut de Drupal peut engendrer des erreurs de mémoire avec les taxinomies de taille importante. Dans ce cas, il est préférable d'utiliser un autre gestionnaire de taxinomies tel que Taxonomy manager.

3. Export

Taxonomy CSV permet d'exporter les structures et les propriétés des termes d'un ou plusieurs vocabulaires.

Choisissez simplement ce que vous voulez exporter (cf. formats) et comment exporter. Certains formats ne sont pas disponibles.

4. Taxonomy csv import API

Ce module peut être utilisé comme une API. Vous pouvez utiliser le module complet comme dépendance ou directement dans votre module. L'import s'effectue ainsi :

$csv_lines = '"Europe", "France", "Paris"';
$csv_lines .= "\n". ',, "Lyon"';
$csv_lines .= "\n". ',"Royaume-Uni", "Lyon"';
$csv_lines .= "\n". ',"Portugal", "Lisbonne"';
$result = taxonomy_csv_import(
array(
'text' => $csv_lines,
'import_format' => 'tree_structure',
'existing_items' => 'update_replace',
));

Ou comme cela (import au niveau d'une ligne) :

$result = taxonomy_csv_line_import(
array("Europe", "France", "Paris"),
array(
'import_format' => 'tree_structure',
'vocabulary_id' => 2,
'existing_items' => 'update_replace',
));

Les formats d'importation sont présentés dans les commentaires et ci-dessus. Certains peuvent être indisponibles.

Des infos complémentaires sont disponibles dans TECHINFO.txt.

5. Paramètres avancés et conseils

1. Permissions

Pour importer/exporter des termes, l'utilisateur doit disposer des droits 'Importer des taxinomies par CSV' et 'Exporter des taxinomies par CSV'.
De plus, l'utilisateur doit disposer des permissions générales d'administration des'taxinomies (Drupal 6) ou taxinomies (Drupal 7). Ces droits d'accès sont souvent associés aux permissions pour accéder aux pages d'administration.

2. Autres conseils

Un autre module Drupal permet également l'importation d'une taxinomie par le biais d'un fichier CSV, malgré son nom : taxonomy XML. Son approche est différente. Il utilise un fichier unique conforme à la norme ISO 2788 sur les thésaurus, en l'occurrence un fichier CSV à trois colonnes : terme, type de lien (relation, description, synonyme...), élément, ou, pour les specialistes, sujet, prédicat, objet. Les champs supplémentaires sont traités comme le troisième. Pour Drupal 4.7 et Drupal 5, taxonomy batch operations peut également être utilisé. Vous pouvez donc choisir le module correspondant le mieux à vos besoins.

Pour l'exportation, vous pouvez utiliser également Taxonomy XML ou l'un des modules de sauvegardes. Taxonomy CSV est un outil plus spécialisé qui permet des paramètrages plus précis.