protected function aliasImportOne($info, $force_ids, $validateOnly = false) { AdminImportController::setDefaultValues($info); if ($force_ids && isset($info['id']) && (int) $info['id']) { $alias = new Alias((int) $info['id']); } else { if (array_key_exists('id', $info) && (int) $info['id'] && Alias::existsInDatabase((int) $info['id'], 'alias')) { $alias = new Alias((int) $info['id']); } else { $alias = new Alias(); } } AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $alias); $res = false; if (($field_error = $alias->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $alias->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) { if ($alias->id && $alias->aliasExists($alias->id)) { $res = $validateOnly || $alias->update(); } $alias->force_id = (bool) $force_ids; if (!$res) { $res = $validateOnly || $alias->add(); } if (!$res) { $this->errors[] = Db::getInstance()->getMsgError() . ' ' . sprintf($this->trans('%1$s (ID: %2$s) cannot be saved', array(), 'Admin.Parameters.Notification'), $info['name'], isset($info['id']) ? $info['id'] : 'null'); } } else { $this->errors[] = $this->l('Alias is invalid') . ' (' . $alias->name . ')'; $this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : ''); } }
public function aliasImport() { $this->receiveTab(); $handle = $this->openCsvFile(); AdminImportController::setLocale(); for ($current_line = 0; $line = fgetcsv($handle, MAX_LINE_SIZE, $this->separator); $current_line++) { if (Tools::getValue('convert')) { $line = $this->utf8EncodeArray($line); } $info = AdminImportController::getMaskedRow($line); AdminImportController::setDefaultValues($info); if (Tools::getValue('forceIDs') && isset($info['id']) && (int) $info['id']) { $alias = new Alias((int) $info['id']); } else { if (array_key_exists('id', $info) && (int) $info['id'] && Alias::existsInDatabase((int) $info['id'], 'alias')) { $alias = new Alias((int) $info['id']); } else { $alias = new Alias(); } } AdminImportController::arrayWalk($info, array('AdminImportController', 'fillInfo'), $alias); $res = false; if (($field_error = $alias->validateFields(UNFRIENDLY_ERROR, true)) === true && ($lang_field_error = $alias->validateFieldsLang(UNFRIENDLY_ERROR, true)) === true) { if ($alias->id && $alias->aliasExists($alias->id)) { $res = $alias->update(); } $alias->force_id = (bool) Tools::getValue('forceIDs'); if (!$res) { $res = $alias->add(); } if (!$res) { $this->errors[] = Db::getInstance()->getMsgError() . ' ' . sprintf(Tools::displayError('%1$s (ID: %2$s) cannot be saved'), $info['name'], isset($info['id']) ? $info['id'] : 'null'); } } else { $this->errors[] = $this->l('Alias is invalid') . ' (' . $alias->name . ')'; $this->errors[] = ($field_error !== true ? $field_error : '') . (isset($lang_field_error) && $lang_field_error !== true ? $lang_field_error : ''); } } $this->closeCsvFile($handle); }