Carnet Wiki

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

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

JLuc - Mise à jour :10 septembre 2023 à 19h05min