dolibarr  19.0.0-dev
Functions
functions2.lib.php File Reference

A set of functions for Dolibarr This file contains all rare functions. More...

Go to the source code of this file.

Functions

 jsUnEscape ($source)
 Same function than javascript unescape() function but in PHP. More...
 
 dolGetModulesDirs ($subdir='')
 Return list of modules directories. More...
 
 dol_getDefaultFormat (Translate $outputlangs=null)
 Try to guess default paper format according to language into $langs. More...
 
 dol_print_file ($langs, $filename, $searchalt=0)
 Output content of a file $filename in version of current language (otherwise may use an alternate language) More...
 
 dol_print_object_info ($object, $usetable=0)
 Show informations on an object TODO Move this into html.formother. More...
 
 dolAddEmailTrackId ($email, $trackingid)
 Return an email formatted to include a tracking id For example myema.nosp@m.il@e.nosp@m.xampl.nosp@m.e.co.nosp@m.m becom myema.nosp@m.il+t.nosp@m.racki.nosp@m.ngid.nosp@m.@exam.nosp@m.ple..nosp@m.com. More...
 
 isValidMailDomain ($mail)
 Return true if email has a domain name that can be resolved to MX type. More...
 
 isValidUrl ($url, $http=0, $pass=0, $port=0, $path=0, $query=0, $anchor=0)
 Url string validation <http[s]> :// [user[:pass]@] hostname [port] [/path] [?getquery] [anchor]. More...
 
 isValidVATID ($company)
 Check if VAT numero is valid (check done on syntax only, no database or remote access) More...
 
 clean_url ($url, $http=1)
 Clean an url string. More...
 
 dolObfuscateEmail ($mail, $replace="*", $nbreplace=8, $nbdisplaymail=4, $nbdisplaydomain=3, $displaytld=true)
 Returns an email value with obfuscated parts. More...
 
 array2tr ($data, $troptions='', $tdoptions='')
 Return lines of an html table from an array Used by array2table function only. More...
 
 array2table ($data, $tableMarkup=1, $tableoptions='', $troptions='', $tdoptions='')
 Return an html table from an array. More...
 
 get_next_value ($db, $mask, $table, $field, $where='', $objsoc='', $date='', $mode='next', $bentityon=true, $objuser=null, $forceentity=null)
 Return last or next value for a mask (according to area we should not reset) More...
 
 get_string_between ($string, $start, $end)
 Get string between. More...
 
 check_value ($mask, $value)
 Check value. More...
 
 binhex ($bin, $pad=false, $upper=false)
 Convert a binary data to string that represent hexadecimal value. More...
 
 hexbin ($hexa)
 Convert an hexadecimal string into a binary string. More...
 
 numero_semaine ($time)
 Retourne le numero de la semaine par rapport a une date. More...
 
 weight_convert ($weight, &$from_unit, $to_unit)
 Convertit une masse d'une unite vers une autre unite. More...
 
 dol_set_user_param ($db, $conf, &$user, $tab)
 Save personnal parameter. More...
 
 dol_print_reduction ($reduction, $langs)
 Returns formated reduction. More...
 
 version_os ($option='')
 Return OS version. More...
 
 version_php ()
 Return PHP version. More...
 
 version_dolibarr ()
 Return Dolibarr version. More...
 
 version_webserver ()
 Return web server version. More...
 
 getListOfModels ($db, $type, $maxfilenamelength=0)
 Return list of activated modules usable for document generation. More...
 
 is_ip ($ip)
 This function evaluates a string that should be a valid IPv4 Note: For ip 169.254.0.0, it returns 0 with some PHP (5.6.24) and 2 with some minor patchs of PHP (5.6.25). More...
 
 dol_buildlogin ($lastname, $firstname)
 Build a login from lastname, firstname. More...
 
 getSoapParams ()
 Return array to use for SoapClient constructor. More...
 
 dolGetElementUrl ($objectid, $objecttype, $withpicto=0, $option='')
 Return link url to an object. More...
 
 cleanCorruptedTree ($db, $tabletocleantree, $fieldfkparent)
 Clean corrupted tree (orphelins linked to a not existing parent), record linked to themself and child-parent loop. More...
 
 colorArrayToHex ($arraycolor, $colorifnotfound='888888')
 Convert an array with RGB value into hex RGB value. More...
 
 colorStringToArray ($stringcolor, $colorifnotfound=array(88, 88, 88))
 Convert a string RGB value ('FFFFFF', '255,255,255') into an array RGB array(255,255,255). More...
 
 colorValidateHex ($color, $allow_white=true)
 
 colorAgressiveness ($hex, $ratio=-50, $brightness=0)
 Change color to make it less aggressive (ratio is negative) or more aggressive (ratio is positive) More...
 
 colorAdjustBrightness ($hex, $steps)
 
 colorDarker ($hex, $percent)
 
 colorLighten ($hex, $percent)
 
 colorHexToRgb ($hex, $alpha=false, $returnArray=false)
 
 cartesianArray (array $input)
 Applies the Cartesian product algorithm to an array Source: http://stackoverflow.com/a/15973172. More...
 
 getModuleDirForApiClass ($moduleobject)
 Get name of directory where the api_...class.php file is stored. More...
 
 randomColorPart ($min=0, $max=255)
 Return 2 hexa code randomly. More...
 
 randomColor ($min=0, $max=255)
 Return hexadecimal color randomly. More...
 
if(!function_exists('dolEscapeXML')) convertBackOfficeMediasLinksToPublicLinks ($notetoshow)
 Convert links to local wrapper to medias files into a string into a public external URL readable on internet. More...
 
 price2fec ($amount)
 Function to format a value into a defined format for French administration (no thousand separator & decimal separator force to ',' with two decimals) Function used into accountancy FEC export. More...
 
 phpSyntaxError ($code)
 Check the syntax of some PHP code. More...
 
 acceptLocalLinktoMedia ()
 Check the syntax of some PHP code. More...
 
 removeGlobalParenthesis ($string)
 Remove first and last parenthesis but only if first is the opening and last the closing of the same group. More...
 

Detailed Description

A set of functions for Dolibarr This file contains all rare functions.

Definition in file functions2.lib.php.

Function Documentation

◆ acceptLocalLinktoMedia()

acceptLocalLinktoMedia ( )

Check the syntax of some PHP code.

Returns
int >0 if OK, 0 if no Return if we accept link added from the media browser into HTML field for public usage

Definition at line 2868 of file functions2.lib.php.

◆ array2table()

array2table (   $data,
  $tableMarkup = 1,
  $tableoptions = '',
  $troptions = '',
  $tdoptions = '' 
)

Return an html table from an array.

Parameters
array$dataArray of data
int$tableMarkupTable markup
string$tableoptionsOptions for table
string$troptionsOptions for tr
string$tdoptionsOptions for td
Returns
string

Definition at line 932 of file functions2.lib.php.

◆ array2tr()

array2tr (   $data,
  $troptions = '',
  $tdoptions = '' 
)

Return lines of an html table from an array Used by array2table function only.

Parameters
array$dataArray of data
string$troptionsOptions for tr
string$tdoptionsOptions for td
Returns
string

Definition at line 912 of file functions2.lib.php.

◆ binhex()

binhex (   $bin,
  $pad = false,
  $upper = false 
)

Convert a binary data to string that represent hexadecimal value.

Parameters
string$binValue to convert
boolean$padAdd 0
boolean$upperConvert to tupper
Returns
string x

Definition at line 1644 of file functions2.lib.php.

References dol_strlen().

◆ cartesianArray()

cartesianArray ( array  $input)

Applies the Cartesian product algorithm to an array Source: http://stackoverflow.com/a/15973172.

Parameters
array$inputArray of products
Returns
array Array of combinations

Definition at line 2597 of file functions2.lib.php.

◆ check_value()

check_value (   $mask,
  $value 
)

Check value.

Parameters
string$maskMask to use
string$valueValue
Returns
int|string <0 or error string if KO, 0 if OK

Definition at line 1520 of file functions2.lib.php.

◆ clean_url()

clean_url (   $url,
  $http = 1 
)

Clean an url string.

Parameters
string$urlUrl
integer$http1 = keep both http:// and https://, 0: remove http:// but not https://
Returns
string Cleaned url

Definition at line 825 of file functions2.lib.php.

◆ cleanCorruptedTree()

cleanCorruptedTree (   $db,
  $tabletocleantree,
  $fieldfkparent 
)

Clean corrupted tree (orphelins linked to a not existing parent), record linked to themself and child-parent loop.

Parameters
DoliDB$dbDatabase handler
string$tabletocleantreeTable to clean
string$fieldfkparentField name that contains id of parent
Returns
int Nb of records fixed/deleted

Definition at line 2279 of file functions2.lib.php.

◆ colorAdjustBrightness()

colorAdjustBrightness (   $hex,
  $steps 
)
Parameters
string$hexColor in hex ('#AA1122' or 'AA1122' or '#a12' or 'a12')
integer$stepsStep/offset added to each color component. It should be between -255 and 255. Negative = darker, positive = lighter
Returns
string New color with format '#AA1122'
See also
colorAgressiveness()

Definition at line 2513 of file functions2.lib.php.

Referenced by colorDarker(), and colorLighten().

◆ colorAgressiveness()

colorAgressiveness (   $hex,
  $ratio = -50,
  $brightness = 0 
)

Change color to make it less aggressive (ratio is negative) or more aggressive (ratio is positive)

Parameters
string$hexColor in hex ('#AA1122' or 'AA1122' or '#a12' or 'a12')
integer$ratioDefault=-50. Note: 0=Component color is unchanged, -100=Component color become 88, +100=Component color become 00 or FF
integer$brightnessDefault=0. Adjust brightness. -100=Decrease brightness by 100%, +100=Increase of 100%.
Returns
string New string of color
See also
colorAdjustBrightness()

Definition at line 2456 of file functions2.lib.php.

◆ colorArrayToHex()

colorArrayToHex (   $arraycolor,
  $colorifnotfound = '888888' 
)

Convert an array with RGB value into hex RGB value.

This is the opposite function of colorStringToArray

Parameters
array$arraycolorArray
string$colorifnotfoundColor code to return if entry not defined or not a RGB format
Returns
string RGB hex value (without # before). For example: 'FF00FF', '01FF02'
See also
colorStringToArray(), colorHexToRgb()

Definition at line 2392 of file functions2.lib.php.

◆ colorDarker()

colorDarker (   $hex,
  $percent 
)
Parameters
string$hexcolor in hex
integer$percent0 to 100
Returns
string

Definition at line 2542 of file functions2.lib.php.

References colorAdjustBrightness().

◆ colorHexToRgb()

colorHexToRgb (   $hex,
  $alpha = false,
  $returnArray = false 
)
Parameters
string$hexcolor in hex
float$alpha0 to 1 to add alpha channel
bool$returnArraytrue=return an array instead, false=return string
Returns
string|array String or array

Definition at line 2566 of file functions2.lib.php.

◆ colorLighten()

colorLighten (   $hex,
  $percent 
)
Parameters
string$hexcolor in hex
integer$percent0 to 100
Returns
string

Definition at line 2553 of file functions2.lib.php.

References colorAdjustBrightness().

◆ colorStringToArray()

colorStringToArray (   $stringcolor,
  $colorifnotfound = array(88, 88, 88) 
)

Convert a string RGB value ('FFFFFF', '255,255,255') into an array RGB array(255,255,255).

This is the opposite function of colorArrayToHex. If entry is already an array, return it.

Parameters
string$stringcolorString with hex (FFFFFF) or comma RGB ('255,255,255')
array$colorifnotfoundColor code array to return if entry not defined
Returns
array RGB hex value (without # before). For example: FF00FF
See also
colorArrayToHex(), colorHexToRgb()

Definition at line 2413 of file functions2.lib.php.

◆ colorValidateHex()

colorValidateHex (   $color,
  $allow_white = true 
)
Parameters
string$colorthe color you need to valid
boolean$allow_whitein case of white isn't valid
Returns
boolean

Definition at line 2435 of file functions2.lib.php.

◆ convertBackOfficeMediasLinksToPublicLinks()

if (!function_exists( 'dolEscapeXML')) convertBackOfficeMediasLinksToPublicLinks (   $notetoshow)

Convert links to local wrapper to medias files into a string into a public external URL readable on internet.

Parameters
string$notetoshowText to convert
Returns
string String

Definition at line 2726 of file functions2.lib.php.

◆ dol_buildlogin()

dol_buildlogin (   $lastname,
  $firstname 
)

Build a login from lastname, firstname.

Parameters
string$lastnameLastname
string$firstnameFirstname
Returns
string Login

Definition at line 2045 of file functions2.lib.php.

◆ dol_getDefaultFormat()

dol_getDefaultFormat ( Translate  $outputlangs = null)

Try to guess default paper format according to language into $langs.

Parameters
Translate | null$outputlangsOutput lang to use to autodetect output format if setup not done
Returns
string Default paper format code

Definition at line 119 of file functions2.lib.php.

◆ dol_print_file()

dol_print_file (   $langs,
  $filename,
  $searchalt = 0 
)

Output content of a file $filename in version of current language (otherwise may use an alternate language)

Parameters
Translate$langsObject language to use for output
string$filenameRelative filename to output
int$searchalt1=Search also in alternative languages
Returns
boolean true if OK, false if KO

Definition at line 145 of file functions2.lib.php.

◆ dol_print_object_info()

dol_print_object_info (   $object,
  $usetable = 0 
)

Show informations on an object TODO Move this into html.formother.

Parameters
object$objectObjet to show
int$usetableOutput into a table
Returns
void

Definition at line 205 of file functions2.lib.php.

◆ dol_print_reduction()

dol_print_reduction (   $reduction,
  $langs 
)

Returns formated reduction.

Parameters
int$reductionReduction percentage
Translate$langsOutput language
Returns
string Formated reduction

Definition at line 1856 of file functions2.lib.php.

◆ dol_set_user_param()

dol_set_user_param (   $db,
  $conf,
$user,
  $tab 
)

Save personnal parameter.

Parameters
DoliDB$dbHandler database
Conf$confObject conf
User$userObject user
array$tabArray (key=>value) with all parameters to save/update
Returns
int <0 if KO, >0 if OK
See also
dolibarr_get_const(), dolibarr_set_const(), dolibarr_del_const()

Definition at line 1792 of file functions2.lib.php.

◆ dolAddEmailTrackId()

dolAddEmailTrackId (   $email,
  $trackingid 
)

Return an email formatted to include a tracking id For example myema.nosp@m.il@e.nosp@m.xampl.nosp@m.e.co.nosp@m.m becom myema.nosp@m.il+t.nosp@m.racki.nosp@m.ngid.nosp@m.@exam.nosp@m.ple..nosp@m.com.

Parameters
string$emailEmail address (Ex: "toto@example.com", "John Do <johndo@example.com>")
string$trackingidTracking id (Ex: thi123 for thirdparty with id 123)
Returns
string Return email tracker string

Definition at line 717 of file functions2.lib.php.

◆ dolGetElementUrl()

dolGetElementUrl (   $objectid,
  $objecttype,
  $withpicto = 0,
  $option = '' 
)

Return link url to an object.

Parameters
int$objectidId of record
string$objecttypeType of object ('invoice', 'order', 'expedition_bon', 'myobject@mymodule', ...)
int$withpictoPicto to show
string$optionMore options
Returns
string URL of link to object id/type

Definition at line 2119 of file functions2.lib.php.

◆ dolGetModulesDirs()

dolGetModulesDirs (   $subdir = '')

Return list of modules directories.

We detect directories that contains a subdirectory /core/modules We discard directory modules that contains 'disabled' into their name.

Parameters
string$subdirSub directory (Example: '/mailings')
Returns
array Array of directories that can contains module descriptors

Definition at line 80 of file functions2.lib.php.

◆ dolObfuscateEmail()

dolObfuscateEmail (   $mail,
  $replace = "*",
  $nbreplace = 8,
  $nbdisplaymail = 4,
  $nbdisplaydomain = 3,
  $displaytld = true 
)

Returns an email value with obfuscated parts.

Parameters
string$mailEmail
string$replaceReplacement character (defaul: *)
int$nbreplaceNumber of replacement character (default: 8)
int$nbdisplaymailNumber of character unchanged (default: 4)
int$nbdisplaydomainNumber of character unchanged of domain (default: 3)
bool$displaytldDisplay tld (default: true)
Returns
string Return email with hidden parts or '';

Definition at line 870 of file functions2.lib.php.

References isValidEmail().

◆ get_next_value()

get_next_value (   $db,
  $mask,
  $table,
  $field,
  $where = '',
  $objsoc = '',
  $date = '',
  $mode = 'next',
  $bentityon = true,
  $objuser = null,
  $forceentity = null 
)

Return last or next value for a mask (according to area we should not reset)

Parameters
DoliDB$dbDatabase handler
string$maskMask to use
string$tableTable containing field with counter
string$fieldField containing already used values of counter
string$whereTo add a filter on selection (for exemple to filter on invoice types)
Societe$objsocThe company that own the object we need a counter for
string$dateDate to use for the {y},{m},{d} tags.
string$mode'next' for next value or 'last' for last value
bool$bentityonActivate the entity filter. Default is true (for modules not compatible with multicompany)
User$objuserObject user we need data from.
int$forceentityEntity id to force
Returns
string New value (numeric) or error message

Definition at line 970 of file functions2.lib.php.

◆ get_string_between()

get_string_between (   $string,
  $start,
  $end 
)

Get string between.

Parameters
string$stringString to test
int$startValue for start
int$endValue for end
Returns
string Return part of string

Definition at line 1501 of file functions2.lib.php.

◆ getListOfModels()

getListOfModels (   $db,
  $type,
  $maxfilenamelength = 0 
)

Return list of activated modules usable for document generation.

Parameters
DoliDB$dbDatabase handler
string$typeType of models (company, invoice, ...)
int$maxfilenamelengthMax length of value to show
Returns
array|int 0 if no module is activated, or array(key=>label). For modules that need directory scan, key is completed with ":filename".

Definition at line 1925 of file functions2.lib.php.

◆ getModuleDirForApiClass()

getModuleDirForApiClass (   $moduleobject)

Get name of directory where the api_...class.php file is stored.

Parameters
string$moduleobjectModule object name
Returns
string Directory name

Definition at line 2627 of file functions2.lib.php.

◆ getSoapParams()

getSoapParams ( )

Return array to use for SoapClient constructor.

Returns
array

Definition at line 2072 of file functions2.lib.php.

◆ hexbin()

hexbin (   $hexa)

Convert an hexadecimal string into a binary string.

Parameters
string$hexaHexadecimal string to convert (example: 'FF')
Returns
string bin

Definition at line 1668 of file functions2.lib.php.

◆ is_ip()

is_ip (   $ip)

This function evaluates a string that should be a valid IPv4 Note: For ip 169.254.0.0, it returns 0 with some PHP (5.6.24) and 2 with some minor patchs of PHP (5.6.25).

See https://github.com/php/php-src/pull/1954.

Parameters
string$ipIP Address
Returns
int 0 if not valid or reserved range, 1 if valid and public IP, 2 if valid and private range IP

Definition at line 2018 of file functions2.lib.php.

◆ isValidMailDomain()

isValidMailDomain (   $mail)

Return true if email has a domain name that can be resolved to MX type.

Parameters
string$mailEmail address (Ex: "toto@example.com", "John Do <johndo@example.com>")
Returns
int -1 if error (function not available), 0=Not valid, 1=Valid

Definition at line 729 of file functions2.lib.php.

◆ isValidUrl()

isValidUrl (   $url,
  $http = 0,
  $pass = 0,
  $port = 0,
  $path = 0,
  $query = 0,
  $anchor = 0 
)

Url string validation <http[s]> :// [user[:pass]@] hostname [port] [/path] [?getquery] [anchor].

Parameters
string$urlUrl
int$http1: verify http is provided, 0: not verify http
int$pass1: verify user and pass is provided, 0: not verify user and pass
int$port1: verify port is provided, 0: not verify port
int$path1: verify a path is provided "/" or "/..." or "/.../", 0: not verify path
int$query1: verify query is provided, 0: not verify query
int$anchor1: verify anchor is provided, 0: not verify anchor
Returns
int 1=Check is OK, 0=Check is KO

Definition at line 748 of file functions2.lib.php.

◆ isValidVATID()

isValidVATID (   $company)

Check if VAT numero is valid (check done on syntax only, no database or remote access)

Parameters
Societe$companyVAT number
Returns
int 1=Check is OK, 0=Check is KO

Definition at line 801 of file functions2.lib.php.

◆ jsUnEscape()

jsUnEscape (   $source)

Same function than javascript unescape() function but in PHP.

Parameters
string$sourceString to decode
Returns
string Unescaped string

Definition at line 40 of file functions2.lib.php.

◆ numero_semaine()

numero_semaine (   $time)

Retourne le numero de la semaine par rapport a une date.

Parameters
string$timeDate au format 'timestamp'
Returns
string Number of week

Definition at line 1684 of file functions2.lib.php.

◆ phpSyntaxError()

phpSyntaxError (   $code)

Check the syntax of some PHP code.

Parameters
string$codePHP code to check.
Returns
boolean|array If false, then check was successful, otherwise an array(message,line) of errors is returned.

Definition at line 2774 of file functions2.lib.php.

◆ price2fec()

price2fec (   $amount)

Function to format a value into a defined format for French administration (no thousand separator & decimal separator force to ',' with two decimals) Function used into accountancy FEC export.

Parameters
float$amountAmount to format
Returns
string Chain with formatted upright
See also
price2num() Format a numeric into a price for FEC files

Definition at line 2745 of file functions2.lib.php.

◆ randomColor()

randomColor (   $min = 0,
  $max = 255 
)

Return hexadecimal color randomly.

Parameters
int$minBetween 0 and 255
int$maxBetween 0 and 255
Returns
string A color string '123456'

Encode string for xml usage

Parameters
string$stringString to encode
Returns
string String encoded

Definition at line 2700 of file functions2.lib.php.

◆ randomColorPart()

randomColorPart (   $min = 0,
  $max = 255 
)

Return 2 hexa code randomly.

Parameters
int$minBetween 0 and 255
int$maxBetween 0 and 255
Returns
string A color string '12'

Definition at line 2688 of file functions2.lib.php.

◆ removeGlobalParenthesis()

removeGlobalParenthesis (   $string)

Remove first and last parenthesis but only if first is the opening and last the closing of the same group.

Parameters
string$stringString to sanitize
Returns
string String without global parenthesis

Definition at line 2921 of file functions2.lib.php.

◆ version_dolibarr()

version_dolibarr ( )

Return Dolibarr version.

Returns
string Dolibarr version
See also
versiondolibarrarray(), versioncompare()

Definition at line 1902 of file functions2.lib.php.

◆ version_os()

version_os (   $option = '')

Return OS version.

Note that PHP_OS returns only OS (not version) and OS PHP was built on, not necessarly OS PHP runs on.

Parameters
string$optionOption string
Returns
string OS version

Definition at line 1875 of file functions2.lib.php.

◆ version_php()

version_php ( )

Return PHP version.

Returns
string PHP version
See also
versionphparray(), versioncompare()

Definition at line 1891 of file functions2.lib.php.

◆ version_webserver()

version_webserver ( )

Return web server version.

Returns
string Web server version

Definition at line 1912 of file functions2.lib.php.

◆ weight_convert()

weight_convert (   $weight,
$from_unit,
  $to_unit 
)

Convertit une masse d'une unite vers une autre unite.

Parameters
float$weightMasse a convertir
int$from_unitUnite originale en puissance de 10
int$to_unitNouvelle unite en puissance de 10
Returns
float Masse convertie

Definition at line 1757 of file functions2.lib.php.