dolibarr 24.0.0-beta
ModeleImports Class Reference

Parent class for import file readers. More...

Inheritance diagram for ModeleImports:
Collaboration diagram for ModeleImports:

Public Member Functions

 __construct ()
 Constructor.
 
 getDriverId ()
 getDriverId
 
 getDriverLabel ()
 getDriverLabel
 
 getDriverDesc ()
 getDriverDesc
 
 getDriverExtension ()
 getDriverExtension
 
 getDriverVersion ()
 getDriverVersion
 
 getLibLabel ()
 getDriverLabel
 
 getLibVersion ()
 getLibVersion
 
 listOfAvailableImportFormat ($db, $maxfilenamelength=0)
 Load into memory list of available import format.
 
 getPictoForKey ($key)
 Return picto of import driver.
 
 getDriverLabelForKey ($key)
 Return label of driver import.
 
 getDriverDescForKey ($key)
 Return description of import drivervoi la description d'un driver import.
 
 getDriverVersionForKey ($key)
 Renvoi version d'un driver import.
 
 getLibLabelForKey ($key)
 Renvoi libelle de librairie externe du driver.
 
 getLibVersionForKey ($key)
 Renvoi version de librairie externe du driver.
 
 getElementFromTableWithPrefix ($tableNameWithPrefix)
 Get element from table name with prefix.
 
 runImportBulkTrigger ($importid, $user, $langs, $conf)
 Execute one global trigger for fast_bulk mode.
 
 import_open_file ($file)
 Open input file.
 
 import_get_nb_of_lines ($file)
 Return nb of records.
 
 import_read_header ()
 Input header line from file.
 
 import_read_record ()
 Return array of next record in input file.
 
 import_close_file ()
 Close file handle.
 
 import_insert ($arrayrecord, $array_match_file_to_database, $objimport, $maxfields, $importid, $updatekeys)
 Insert a record into database.
 
 write_header_example ($outputlangs)
 Output header of an example file for this format.
 
 write_title_example ($outputlangs, $headerlinefields)
 Output title line of an example file for this format.
 
 write_record_example ($outputlangs, $contentlinevalues)
 Output record of an example file for this format.
 
 write_footer_example ($outputlangs)
 Output footer of an example file for this format.
 

Protected Member Functions

 getImportTriggerMode ()
 Return effective trigger mode for import flow.
 
 registerImportBulkEvent ($tablename, $operation)
 Register one SQL operation into bulk trigger stats.
 
 getImportTriggerActions ($tableElement, $operation, $element, $object=null)
 Return trigger actions to execute for an import operation done in SQL legacy mode.
 
 buildImportTriggerActionFromPrefix ($triggerprefix, $operation)
 Build trigger action code from prefix and operation.
 
 getImportTriggerPrefixFromObject ($object)
 Return trigger prefix from a business object.
 
 getImportGenericTriggerPrefix ($element, $tableElement)
 Return generic trigger prefix derived from element or table.
 
 getImportTriggerActionsFromHooks ($tableElement, $operation, $element, $object=null)
 Resolve import trigger actions from hooks.
 
 triggerImportSqlOperation ($tablename, $operation, $rowid, $importid, $user, $langs, $conf)
 Execute triggers for SQL legacy import.
 
 commonImportInsert ($arrayrecord, $array_match_file_to_database, $objimport, $maxfields, $importid, $updatekeys, $recordpositionbase=0)
 Shared implementation of import_insert for CSV/XLSX.
 

Detailed Description

Parent class for import file readers.

Definition at line 33 of file modules_import.class.php.

Member Function Documentation

◆ buildImportTriggerActionFromPrefix()

ModeleImports::buildImportTriggerActionFromPrefix ( $triggerprefix,
$operation )
protected

Build trigger action code from prefix and operation.

Parameters
string$triggerprefixTrigger prefix (for example COMPANY or LINEORDER)
string$operationSQL operation (insert|update)
Returns
string Trigger action code, empty string if no match

Definition at line 640 of file modules_import.class.php.

Referenced by getImportTriggerActions().

◆ commonImportInsert()

ModeleImports::commonImportInsert ( $arrayrecord,
$array_match_file_to_database,
$objimport,
$maxfields,
$importid,
$updatekeys,
$recordpositionbase = 0 )
protected

Shared implementation of import_insert for CSV/XLSX.

Parameters
array<int,array{val:mixed,type:int}>|array<string,array{val:mixed,type:int}>|bool$arrayrecord Array of read values
array<int|string,string>$array_match_file_to_database Array of target fields where to insert data
Object$objimportObject import descriptor
int$maxfieldsMax number of fields to use
string$importidImport key
string[]$updatekeysArray of keys used to update first before insert
int$recordpositionbase0 when $arrayrecord starts at 0, 1 when starts at 1
Returns
int Return integer <0 if KO, >0 if OK

Definition at line 1002 of file modules_import.class.php.

References $conf, dol_include_once(), dol_print_error(), dol_stringtotime(), dol_syslog(), dol_trunc(), getDolGlobalString(), getElementFromTableWithPrefix(), getImportTriggerMode(), isModEnabled(), num2Alpha(), price2num(), registerImportBulkEvent(), string, testSqlAndScriptInject(), and triggerImportSqlOperation().

Referenced by ImportCsv\import_insert(), ImportXlsx\import_insert(), and import_insert().

◆ getDriverDesc()

ModeleImports::getDriverDesc ( )

getDriverDesc

Returns
string Description

Definition at line 283 of file modules_import.class.php.

◆ getDriverDescForKey()

ModeleImports::getDriverDescForKey ( $key)

Return description of import drivervoi la description d'un driver import.

Parameters
string$keyKey
Returns
string

Definition at line 404 of file modules_import.class.php.

◆ getDriverExtension()

ModeleImports::getDriverExtension ( )

getDriverExtension

Returns
string Driver suffix

Definition at line 293 of file modules_import.class.php.

◆ getDriverId()

ModeleImports::getDriverId ( )

getDriverId

Returns
string Code of driver

Definition at line 263 of file modules_import.class.php.

◆ getDriverLabel()

ModeleImports::getDriverLabel ( )

getDriverLabel

Returns
string Label

Definition at line 273 of file modules_import.class.php.

◆ getDriverLabelForKey()

ModeleImports::getDriverLabelForKey ( $key)

Return label of driver import.

Parameters
string$keyKey
Returns
string

Definition at line 393 of file modules_import.class.php.

◆ getDriverVersion()

ModeleImports::getDriverVersion ( )

getDriverVersion

Returns
string Driver version

Definition at line 303 of file modules_import.class.php.

◆ getDriverVersionForKey()

ModeleImports::getDriverVersionForKey ( $key)

Renvoi version d'un driver import.

Parameters
string$keyKey
Returns
string

Definition at line 415 of file modules_import.class.php.

◆ getElementFromTableWithPrefix()

ModeleImports::getElementFromTableWithPrefix ( $tableNameWithPrefix)

Get element from table name with prefix.

Parameters
string$tableNameWithPrefixTable name with prefix
Returns
string Element name or table element as default

Definition at line 448 of file modules_import.class.php.

Referenced by commonImportInsert(), and triggerImportSqlOperation().

◆ getImportGenericTriggerPrefix()

ModeleImports::getImportGenericTriggerPrefix ( $element,
$tableElement )
protected

Return generic trigger prefix derived from element or table.

Parameters
string$elementObject element name
string$tableElementTable name without DB prefix
Returns
string Trigger prefix

Definition at line 682 of file modules_import.class.php.

References string.

Referenced by getImportTriggerActions().

◆ getImportTriggerActions()

ModeleImports::getImportTriggerActions ( $tableElement,
$operation,
$element,
$object = null )
protected

Return trigger actions to execute for an import operation done in SQL legacy mode.

Parameters
string$tableElementTable name without database prefix
string$operationOperation insert|update
string$elementElement name
object | null$objectObject context
Returns
string[] List of trigger action codes

Definition at line 569 of file modules_import.class.php.

References $object, buildImportTriggerActionFromPrefix(), getImportGenericTriggerPrefix(), getImportTriggerActionsFromHooks(), and getImportTriggerPrefixFromObject().

Referenced by triggerImportSqlOperation().

◆ getImportTriggerActionsFromHooks()

ModeleImports::getImportTriggerActionsFromHooks ( $tableElement,
$operation,
$element,
$object = null )
protected

Resolve import trigger actions from hooks.

Hook signature:

  • context: import
  • method: getImportTriggerActions
  • expected output (one of):
    • $hookmanager->resArray['actions'] = array('ACTION_A', 'ACTION_B')
    • $hookmanager->resArray['actions'] = 'ACTION_A,ACTION_B'
    • $hookmanager->resArray['action'] = 'ACTION_A'
Parameters
string$tableElementTable name without prefix
string$operationinsert|update
string$elementElement name
object | null$objectObject context
Returns
string[]

Definition at line 711 of file modules_import.class.php.

References $object, and string.

Referenced by getImportTriggerActions().

◆ getImportTriggerMode()

ModeleImports::getImportTriggerMode ( )
protected

Return effective trigger mode for import flow.

Returns
string

Definition at line 465 of file modules_import.class.php.

References getDolGlobalString(), and string.

Referenced by commonImportInsert(), runImportBulkTrigger(), and triggerImportSqlOperation().

◆ getImportTriggerPrefixFromObject()

ModeleImports::getImportTriggerPrefixFromObject ( $object)
protected

Return trigger prefix from a business object.

Parameters
object$objectBusiness object
Returns
string Trigger prefix

Definition at line 664 of file modules_import.class.php.

References $object.

Referenced by getImportTriggerActions().

◆ getLibLabel()

ModeleImports::getLibLabel ( )

getDriverLabel

Returns
string Label of external lib

Definition at line 313 of file modules_import.class.php.

◆ getLibLabelForKey()

ModeleImports::getLibLabelForKey ( $key)

Renvoi libelle de librairie externe du driver.

Parameters
string$keyKey
Returns
string

Definition at line 426 of file modules_import.class.php.

◆ getLibVersion()

ModeleImports::getLibVersion ( )

getLibVersion

Returns
string Version of external lib

Definition at line 323 of file modules_import.class.php.

◆ getLibVersionForKey()

ModeleImports::getLibVersionForKey ( $key)

Renvoi version de librairie externe du driver.

Parameters
string$keyKey
Returns
string

Definition at line 437 of file modules_import.class.php.

◆ getPictoForKey()

ModeleImports::getPictoForKey ( $key)

Return picto of import driver.

Parameters
string$keyKey
Returns
string

Definition at line 382 of file modules_import.class.php.

◆ import_close_file()

ModeleImports::import_close_file ( )

Close file handle.

Returns
int

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 980 of file modules_import.class.php.

References dol_syslog().

◆ import_get_nb_of_lines()

ModeleImports::import_get_nb_of_lines ( $file)

Return nb of records.

File must be closed.

Parameters
string$filePath of filename
Returns
int Return integer <0 if KO, >=0 if OK

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 930 of file modules_import.class.php.

References dol_syslog().

◆ import_insert()

ModeleImports::import_insert ( $arrayrecord,
$array_match_file_to_database,
$objimport,
$maxfields,
$importid,
$updatekeys )

Insert a record into database.

Parameters
array<string,array{val:mixed,type:int<-1,1>}>|boolean$arrayrecord Array of read values: [fieldpos] => (['val']=>val, ['type']=>-1=null,0=blank,1=string), [fieldpos+1]...
array<int|string,string>$array_match_file_to_database Array of target fields where to insert data: [fieldpos] => 's.fieldname', [fieldpos+1]...
Object$objimportObject import (contains objimport->array_import_tables, objimport->array_import_fields, objimport->array_import_convertvalue, ...)
int$maxfieldsMax number of fields to use
string$importidImport key
string[]$updatekeysArray of keys to use to try to do an update first before insert. This field are defined into the module descriptor.
Returns
int Return integer <0 if KO, >0 if OK

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 1817 of file modules_import.class.php.

References commonImportInsert().

◆ import_open_file()

ModeleImports::import_open_file ( $file)

Open input file.

Parameters
string$filePath of filename
Returns
int Return integer <0 if KO, >=0 if OK

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 912 of file modules_import.class.php.

References dol_syslog().

◆ import_read_header()

ModeleImports::import_read_header ( )

Input header line from file.

Returns
int Return integer <0 if KO, >=0 if OK

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 946 of file modules_import.class.php.

References dol_syslog().

◆ import_read_record()

ModeleImports::import_read_record ( )

Return array of next record in input file.

Returns
array<string,array{val:mixed,type:int<-1,1>}>|boolean Array of field values. Data are UTF8 encoded. [fieldpos] => (['val']=>val, ['type']=>-1=null,0=blank,1=not empty string)

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 963 of file modules_import.class.php.

References dol_syslog().

◆ listOfAvailableImportFormat()

ModeleImports::listOfAvailableImportFormat ( $db,
$maxfilenamelength = 0 )

Load into memory list of available import format.

Parameters
DoliDB$dbDatabase handler
int$maxfilenamelengthMax length of value to show
Returns
array<int,string> List of templates

Definition at line 336 of file modules_import.class.php.

References dol_syslog().

◆ registerImportBulkEvent()

ModeleImports::registerImportBulkEvent ( $tablename,
$operation )
protected

Register one SQL operation into bulk trigger stats.

Parameters
string$tablenameTable name with prefix
string$operationinsert|update
Returns
void

Definition at line 484 of file modules_import.class.php.

Referenced by commonImportInsert().

◆ runImportBulkTrigger()

ModeleImports::runImportBulkTrigger ( $importid,
$user,
$langs,
$conf )

Execute one global trigger for fast_bulk mode.

Parameters
string$importidImport key
User$userUser
Translate$langsLangs
Conf$confConf
Returns
int

Definition at line 519 of file modules_import.class.php.

References $conf, $object, and getImportTriggerMode().

◆ triggerImportSqlOperation()

ModeleImports::triggerImportSqlOperation ( $tablename,
$operation,
$rowid,
$importid,
$user,
$langs,
$conf )
protected

Execute triggers for SQL legacy import.

Parameters
string$tablenameTable name with database prefix
string$operationOperation insert|update
int$rowidRow id if available, 0 otherwise
string$importidImport key
User$userUser
Translate$langsLangs object
Conf$confConf object
Returns
int 1 on success, <0 on trigger error

Definition at line 772 of file modules_import.class.php.

References $conf, $object, dol_syslog(), getDolGlobalInt(), getElementFromTableWithPrefix(), getImportTriggerActions(), and getImportTriggerMode().

Referenced by commonImportInsert().

◆ write_footer_example()

ModeleImports::write_footer_example ( $outputlangs)

Output footer of an example file for this format.

Parameters
Translate$outputlangsOutput language
Returns
string String output

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 1883 of file modules_import.class.php.

References dol_syslog().

◆ write_header_example()

ModeleImports::write_header_example ( $outputlangs)

Output header of an example file for this format.

Parameters
Translate$outputlangsOutput language
Returns
string Empty string

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 1830 of file modules_import.class.php.

References dol_syslog().

◆ write_record_example()

ModeleImports::write_record_example ( $outputlangs,
$contentlinevalues )

Output record of an example file for this format.

Parameters
Translate$outputlangsOutput language
mixed[]$contentlinevaluesArray of lines
Returns
string Empty string

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 1866 of file modules_import.class.php.

References dol_syslog().

◆ write_title_example()

ModeleImports::write_title_example ( $outputlangs,
$headerlinefields )

Output title line of an example file for this format.

Parameters
Translate$outputlangsOutput language
string[]$headerlinefieldsArray of fields name
Returns
string String output

Reimplemented in ImportCsv, and ImportXlsx.

Definition at line 1848 of file modules_import.class.php.

References dol_syslog().


The documentation for this class was generated from the following file: