name]; // Inizializzazione del lettore CSV $csv = new $import_selezionato($record->filepath); $fields = $csv->getAvailableFields(); // Generazione della base per i campi da selezionare $campi_disponibili = []; foreach ($fields as $key => $value) { $campi_disponibili[] = [ 'id' => $key, 'text' => $value['label'], ]; if ($value['primary_key']) { $primary_key = $value['field']; } } echo '
{[ "type": "checkbox", "label": "'.tr('Importa prima riga').'", "name": "include_first_row", "extra":"", "value": "1" ]}
{[ "type": "select", "label": "'.tr('Chiave primaria').'", "name": "primary_key", "values": '.json_encode($campi_disponibili).', "value": "'.$primary_key.'" ]}
'; // Lettura delle prime righe disponibili $righe = $csv->get(0, 10); $prima_riga = $righe[0]; $numero_colonne = count($prima_riga); // Trasformazione dei nomi indicati per i campi in lowercase $nomi_disponibili = []; foreach ($fields as $key => $value) { $nomi_disponibili[$key] = []; $names = isset($value['names']) ? $value['names'] : [$value['label']]; foreach ($names as $name) { $nomi_disponibili[$key][] = trim(str_to_lower($name)); } } echo '
'; for ($column = 0; $column < $numero_colonne; ++$column) { echo '

'.tr('Colonna _NUM_', [ '_NUM_' => $column + 1, ]).'

'; // Individuazione delle corrispondenze $selezionato = null; foreach ($fields as $key => $value) { // Confronto per l'individuazione della relativa colonna $nome = trim(str_to_lower($prima_riga[$column])); if (in_array($nome, $nomi_disponibili[$key])) { $escludi_prima_riga = 1; $selezionato = $key; break; } } echo ' {[ "type": "select", "label": "'.tr('Campo').'", "name": "fields['.$column.']", "values": '.json_encode($campi_disponibili).', "value": "'.$selezionato.'" ]} '; foreach ($righe as $key => $row) { echo ' '; } echo '
'.tr('#').' '.tr('Valore').'
'.($key + 1).' '.$row[$column].'
'; } echo '
'; echo ' '; }