186 global $langs,
$conf;
188 dol_syslog(get_class($this).
"::load_arrays user=".$user->id.
" filter=".$filter);
192 require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
196 foreach ($modulesdir as $dir) {
198 if (!is_resource($handle)) {
203 while (($file = readdir($handle)) !==
false) {
205 if (preg_match(
'/\.back$/i', $file)) {
209 if (!preg_match(
"/^(mod.*)\.class\.php/i", $file, $reg)) {
213 $modulename = $reg[1];
217 $part = strtolower(preg_replace(
'/^mod/i',
'', $modulename));
219 if ($part ===
'propale') {
222 if (empty(
$conf->$part->enabled)) {
226 if (empty($enabled)) {
231 $file = $dir.
"/".$modulename.
".class.php";
232 $classname = $modulename;
234 $module =
new $classname($this->db);
235 '@phan-var-force DolibarrModules $module';
237 if (isset($module->import_code) && is_array($module->import_code)) {
238 foreach ($module->import_code as $r => $value) {
239 if ($filter && ($filter != $module->import_code[$r])) {
259 $langtoload = $module->getLangFilesArray();
260 if (is_array($langtoload)) {
261 foreach ($langtoload as $key) {
267 $this->array_import_perms[$i] = $user->hasRight(
'import',
'run');
269 $this->array_import_icon[$i] = (isset($module->import_icon[$r]) ? $module->import_icon[$r] : $module->picto);
271 $this->array_import_code[$i] = $module->import_code[$r];
273 $this->array_import_label[$i] = $module->getImportDatasetLabel($r);
275 $this->array_import_tables[$i] = $module->import_tables_array[$r];
277 $this->array_import_tables_creator[$i] = (isset($module->import_tables_creator_array[$r]) ? $module->import_tables_creator_array[$r] :
'');
279 $this->array_import_fields[$i] = (isset($module->import_fields_array[$r]) ? $module->import_fields_array[$r] : []);
281 $this->array_import_fieldshidden[$i] = (isset($module->import_fieldshidden_array[$r]) ? $module->import_fieldshidden_array[$r] :
'');
283 $this->array_import_entities[$i] = (isset($module->import_entities_array[$r]) ? $module->import_entities_array[$r] :
'');
285 $this->array_import_regex[$i] = (isset($module->import_regex_array[$r]) ? $module->import_regex_array[$r] :
'');
287 $this->array_import_updatekeys[$i] = (isset($module->import_updatekeys_array[$r]) ? $module->import_updatekeys_array[$r] :
'');
290 $this->array_import_preselected_updatekeys[$i] = (isset($module->import_preselected_updatekeys_array[$r]) ? $module->import_preselected_updatekeys_array[$r] :
'');
292 $this->array_import_examplevalues[$i] = (isset($module->import_examplevalues_array[$r]) ? $module->import_examplevalues_array[$r] :
'');
294 $this->array_import_convertvalue[$i] = (isset($module->import_convertvalue_array[$r]) ? $module->import_convertvalue_array[$r] :
'');
296 $this->array_import_run_sql_after[$i] = (isset($module->import_run_sql_after_array[$r]) ? $module->import_run_sql_after_array[$r] :
'');
298 $this->array_import_module[$i] = array(
'position_of_profile' => ($module->module_position.
'-'.$module->import_code[$r]),
'module' => $module);
300 $this->array_import_types[$i] = (isset($module->import_TypeFields_array[$r]) ? $module->import_TypeFields_array[$r] : array());
302 dol_syslog(
"Import loaded for module ".$modulename.
" with index ".$i.
", dataset=".$module->import_code[$r].
", nb of fields=".count($module->import_fields_array[$r]));
328 global
$conf, $langs;
332 dol_syslog(get_class($this).
"::build_example_file ".$model);
335 $dir = DOL_DOCUMENT_ROOT.
"/core/modules/import/";
336 $file =
"import_".$model.
".modules.php";
337 $classname =
"Import".$model;
338 require_once $dir.$file;
339 $objmodel =
new $classname($this->db, $datatoimport);
340 '@phan-var-force ModeleImports $objmodel';
342 $outputlangs = $langs;
346 $s .= $objmodel->write_header_example($outputlangs);
349 $s .= $objmodel->write_title_example($outputlangs, $headerlinefields);
352 $s .= $objmodel->write_record_example($outputlangs, $contentlinevalues);
355 $s .= $objmodel->write_footer_example($outputlangs);
371 if (empty($this->model_name)) {
372 $this->error =
'ErrorWrongParameters';
375 if (empty($this->datatoimport)) {
376 $this->error =
'ErrorWrongParameters';
379 if (empty($this->hexa)) {
380 $this->error =
'ErrorWrongParameters';
386 $sql =
'INSERT INTO '.MAIN_DB_PREFIX.
'import_model (';
393 $sql .= (isset($this->fk_user) ? (int) $this->fk_user :
'null').
",";
394 $sql .=
" '".$this->db->escape($this->model_name).
"',";
395 $sql .=
" '".$this->db->escape($this->datatoimport).
"',";
396 $sql .=
" '".$this->db->escape($this->hexa).
"'";
399 $resql = $this->db->query($sql);
404 $this->error = $this->db->lasterror();
405 $this->errno = $this->db->lasterrno();
406 $this->db->rollback();
419 $sql =
'SELECT em.rowid, em.field, em.label, em.type';
420 $sql .=
' FROM '.MAIN_DB_PREFIX.
'import_model as em';
421 $sql .=
' WHERE em.rowid = '.((int) $id);
423 dol_syslog(get_class($this).
"::fetch", LOG_DEBUG);
424 $result = $this->db->query($sql);
426 $obj = $this->db->fetch_object($result);
428 $this->
id = $obj->rowid;
429 $this->hexa = $obj->field;
430 $this->model_name = $obj->label;
431 $this->datatoimport = $obj->type;
432 $this->fk_user = $obj->fk_user;
435 $this->error =
"Model not found";