Migrate

Créé le 22/02/2014

Dernière mise à jour le 22/02/2014

Étiquettes

Parser un fichier CSV

Afin d'éviter des problèmes de sauts de ligne lors de l'import de fichiers CSV avec Migrate, il est possible d'utiliser l'option embedded_newlines dans votre classe de migration.

class TotoMigration extends Toto_Basic_Migration {
  public function __construct($arguments) {
    parent::__construct($arguments);
    $this->description = t('Import CSV-file');
    $columns = array(
      // "Source": ('Fieldname', 'Description')
      0 => array('id', t('id')),
      1 => array('title_in_csv, t('title')),
    );
    $this->source = new MigrateSourceCSV(
      DRUPAL_ROOT . '/' . drupal_get_path('module', 'mon_module') . '/data_sources/'mon_fichier.csv',
      $columns,
      array(
        'header_rows' => 1,
        'embedded_newlines' => TRUE
      )
    );
    $this->destination = new MigrateDestinationNode('mon_type_de_contenu');
    $this->map = new MigrateSQLMap($this->machineName,
      array(
        'id' => array(
          'type' => 'int',
          'unsigned' => TRUE,
          'not null' => TRUE,
        )
      ),
      MigrateDestinationNode::getKeySchema()
    );
    // Mapped fields
    $this->addFieldMapping('title', 'title_in_csv')
      ->defaultValue('');
  }
}

Ajouter un commentaire