Carnet Wiki

Créer les objets décrits par un Importer fichier csv

Version 2 — Juin 2023 JLuc

Le core de SPIP fournit un fichier ecrire/inc/importer_csv.php pour ses besoins d’import de fichier CSV, et il est possible de l’utiliser pour nos propres besoins.

C’est ce que fait par exemple le plugin livraison, avec le code suivant :

function livraison_installer_modes(){
  include_spip("action/editer_objet");
  if ($importer_csv = charger_fonction("importer_csv","inc",true)
    AND $f = find_in_path("base/livraisonmodes.csv")){
    $modes = $importer_csv($f,true);


foreach($modes as $mode){
      $id = objet_inserer("livraisonmode");
      $set = $mode;
      $set['prix_poids_ht'] = preg_replace(",\s+,","\n",$set['prix_poids_ht']);
      $set['prix_volume_ht'] = preg_replace(",\s+,","\n",$set['prix_volume_ht']);
      $set['statut'] = 'prop';
      objet_modifier("livraisonmode",$id,$set);
    }
  }
}

Ici, il complète les champs lus dans le CSV par des champs calculés et il fait appel aux fonctions de l’API de gestion des objets SPIP : objet_inserer et objet_modifier pour créer les objets décrits par chaque ligne du .CSV