Dict::S('UI:CSVImport:MappingSelectOne')); $aChoices[':none:'] = Dict::S('UI:CSVImport:MappingNotApplicable'); if ($bAdvancedMode) { $aChoices['id'] = Dict::S('UI:CSVImport:idField'); } foreach(MetaModel::ListAttributeDefs($sClassName) as $sAttCode => $oAttDef) { if ($oAttDef->IsExternalKey()) { $aChoices[$sAttCode] = $oAttDef->GetLabel(); // Get fields of the external class that are considered as reconciliation keys $sTargetClass = $oAttDef->GetTargetClass(); foreach(MetaModel::ListAttributeDefs($sTargetClass) as $sTargetAttCode => $oTargetAttDef) { if (MetaModel::IsReconcKey($sTargetClass, $sTargetAttCode)) { $aChoices[$sAttCode.'->'.$sTargetAttCode] = $oAttDef->GetLabel().'->'.$oTargetAttDef->GetLabel(); } } } else if ($oAttDef->IsWritable()) { $aChoices[$sAttCode] = $oAttDef->GetLabel(); } } asort($aChoices); $sHtml = "\n"; return $sHtml; } require_once('../application/startup.inc.php'); session_start(); if (isset($_SESSION['auth_user'])) { $sAuthUser = $_SESSION['auth_user']; $sAuthPwd = $_SESSION['auth_pwd']; // Attempt to login, fails silently UserRights::Login($sAuthUser, $sAuthPwd); } else { // No session information echo "
No session information
\n"; } $oContext = new UserContext(); $sOperation = utils::ReadParam('operation', ''); switch($sOperation) { case 'parser_preview': $oPage = new ajax_page(""); $oPage->no_cache(); $sSeparator = utils::ReadParam('separator', ','); if ($sSeparator == 'tab') $sSeparator = "\t"; $sTextQualifier = utils::ReadParam('qualifier', '"'); $iLinesToSkip = utils::ReadParam('nb_lines_skipped', 0); $bFirstLineAsHeader = utils::ReadParam('header_line', true); $sData = stripslashes(utils::ReadParam('csvdata', true)); $oCSVParser = new CSVParser($sData, $sSeparator, $sTextQualifier); $aData = $oCSVParser->ToArray($iLinesToSkip); $iTarget = count($aData); if ($iTarget == 0) { $oPage->p(Dict::S('UI:CSVImport:NoData')); } else { $sMaxLen = (strlen(''.$iTarget) < 3) ? 3 : strlen(''.$iTarget); // Pad line numbers to the appropriate number of chars, but at least 3 $sFormat = '%0'.$sMaxLen.'d'; $oPage->p("".sprintf($sFormat, $index)." | "); $oPage->add(implode(' | ', $aRow)); $oPage->add(" |
---|---|---|
".sprintf($sFormat, $index)." | "); $oPage->add(implode(' | ', $aRow)); $oPage->add(" |
'.Dict::S('UI:CSVImport:HeaderFields').' | '.Dict::S('UI:CSVImport:HeaderMappings').' | '.Dict::S('UI:CSVImport:HeaderSearch').' | '.Dict::S('UI:CSVImport:DataLine1').' | '.Dict::S('UI:CSVImport:DataLine2').' | '); $oPage->add('|
---|---|---|---|---|---|
$sField | "); $oPage->add(''.GetMappingForField($sClassName, $sField, $index, $bAdvanced).' | '); $oPage->add(''); $oPage->add(' | '); $oPage->add(' | '.(isset($aData[$iStartLine][$index-1]) ? htmlentities($aData[$iStartLine][$index-1], ENT_QUOTES, 'UTF-8') : ' ').' | '); $oPage->add(''.(isset($aData[$iStartLine+1][$index-1]) ? htmlentities($aData[$iStartLine+1][$index-1], ENT_QUOTES, 'UTF-8') : ' ').' | '); $oPage->add('