dolibarr  21.0.0-alpha
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
ExtraFields Class Reference

Class to manage standard extra fields. More...

Collaboration diagram for ExtraFields:
Collaboration graph
[legend]

Public Member Functions

 __construct ($db)
 Constructor. More...
 
 addExtraField ($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param='', $alwayseditable=0, $perms='', $list='-1', $help='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0, $printable=0, $moreparams=array())
 Add a new extra field parameter. More...
 
 updateExtraField ($attrname, $label, $type, $pos, $size, $elementtype, $unique=0, $required=0, $default_value='', $param='', $alwayseditable=0, $perms='', $list='-1', $help='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0, $printable=0, $moreparams=array())
 Update an existing extra field parameter. More...
 
 delete ($attrname, $elementtype='')
 Delete an optional attribute. More...
 
 update ($attrname, $label, $type, $length, $elementtype, $unique=0, $required=0, $pos=0, $param=array(), $alwayseditable=0, $perms='', $list='', $help='', $default='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0, $printable=0, $moreparams=array())
 Modify type of a personalized attribute. More...
 
 fetch_name_optionals_label ($elementtype, $forceload=false, $attrname='')
 Load the array of extrafields definition $this->attributes. More...
 
 showInputField ($key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss='', $objectid=0, $extrafieldsobjectkey='', $mode=0)
 Return HTML string to put an input field into a page Code very similar with showInputField of common object. More...
 
 showOutputField ($key, $value, $moreparam='', $extrafieldsobjectkey='', $outputlangs=null)
 Return HTML string to put an output field into a page. More...
 
 getAlignFlag ($key, $extrafieldsobjectkey='')
 Return the CSS to use for this extrafield into list. More...
 
 showSeparator ($key, $object, $colspan=2, $display_type='card', $mode='')
 Return HTML string to print separator extrafield. More...
 
 setOptionalsFromPost ($extralabels, &$object, $onlykey='', $todefaultifmissing=0)
 Fill array_options property of object by extrafields value (using for data sent by forms) More...
 
 getOptionalsFromPost ($extrafieldsobjectkey, $keysuffix='', $keyprefix='')
 return array_options array of data of extrafields value of object sent by a search form More...
 

Static Public Member Functions

static getListOfTypesLabels ()
 Return array with all possible types and labels of extrafields. More...
 
static isEmptyValue ($v, string $type)
 Return if a value is "empty" for a mandatory vision. More...
 

Private Member Functions

 create ($attrname, $type='varchar', $length='255', $elementtype='', $unique=0, $required=0, $default_value='', $param=array(), $perms='', $list='0', $computed='', $help='', $moreparams=array())
 Add a new optional attribute. More...
 
 create_label ($attrname, $label='', $type='', $pos=0, $size='', $elementtype='', $unique=0, $required=0, $param='', $alwayseditable=0, $perms='', $list='-1', $help='', $default='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0, $printable=0, $moreparams=array())
 Add description of a new optional attribute. More...
 
 delete_label ($attrname, $elementtype='')
 Delete description of an optional attribute. More...
 
 update_label ($attrname, $label, $type, $size, $elementtype, $unique=0, $required=0, $pos=0, $param=array(), $alwayseditable=0, $perms='', $list='0', $help='', $default='', $computed='', $entity='', $langfile='', $enabled='1', $totalizable=0, $printable=0, $moreparams=array())
 Modify description of personalized attribute This is a private method. More...
 

Detailed Description

Class to manage standard extra fields.

Definition at line 40 of file extrafields.class.php.

Constructor & Destructor Documentation

◆ __construct()

ExtraFields::__construct (   $db)

Constructor.

Parameters
DoliDB$dbDatabase handler

Definition at line 111 of file extrafields.class.php.

Member Function Documentation

◆ addExtraField()

ExtraFields::addExtraField (   $attrname,
  $label,
  $type,
  $pos,
  $size,
  $elementtype,
  $unique = 0,
  $required = 0,
  $default_value = '',
  $param = '',
  $alwayseditable = 0,
  $perms = '',
  $list = '-1',
  $help = '',
  $computed = '',
  $entity = '',
  $langfile = '',
  $enabled = '1',
  $totalizable = 0,
  $printable = 0,
  $moreparams = array() 
)

Add a new extra field parameter.

Parameters
string$attrnameCode of attribute
string$labellabel of attribute
string$typeType of attribute ('boolean','int','varchar','text','html','date','datetime','price', 'pricecy', 'phone','mail','password','url','select','checkbox','separate',...)
int$posPosition of attribute
string$sizeSize/length definition of attribute ('5', '24,8', ...). For float, it contains 2 numeric separated with a comma.
string$elementtypeElement type. Same value than object->table_element (Example 'member', 'product', 'thirdparty', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
string$default_valueDefaulted value (In database. use the default_value feature for default value on screen. Example: '', '0', 'null', 'avalue')
array | string$paramParams for field (ex for select list : array('options' => array(value'=>'label of option')) )
int$alwayseditableIs attribute always editable regardless of the document status
string$permsPermission to check
string$listVisibility ('0'=never visible, '1'=visible on list+forms, '2'=list only, '3'=form only or 'eval string')
string$helpText with help tooltip
string$computedComputed value
string$entityEntity of extrafields (for multicompany modules)
string$langfileLanguage file
string$enabledCondition to have the field enabled or not
int$totalizableIs a measure. Must show a total on lists
int$printableIs extrafield displayed on PDF
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>Css on list, 'cssview'=>...)
Returns
int Return integer <=0 if KO, >0 if OK

Definition at line 142 of file extrafields.class.php.

◆ create()

ExtraFields::create (   $attrname,
  $type = 'varchar',
  $length = '255',
  $elementtype = '',
  $unique = 0,
  $required = 0,
  $default_value = '',
  $param = array(),
  $perms = '',
  $list = '0',
  $computed = '',
  $help = '',
  $moreparams = array() 
)
private

Add a new optional attribute.

This is a private method. For public method, use addExtraField.

Parameters
string$attrnamecode of attribute
string$typeType of attribute ('boolean', 'int', 'varchar', 'text', 'html', 'date', 'datetime', 'price', 'pricecy', 'phone', 'mail', 'password', 'url', 'select', 'checkbox', ...)
string$lengthSize/length of attribute ('5', '24,8', ...)
string$elementtypeElement type ('member', 'product', 'thirdparty', 'contact', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
string$default_valueDefault value for field (in database)
array$paramParams for field (ex for select list : array('options'=>array('value'=>'label of option'))
string$permsPermission
string$listInto list view by default
string$computedComputed value
string$helpHelp on tooltip
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>, 'cssview'=>...)
Returns
int Return integer <=0 if KO, >0 if OK

Definition at line 277 of file extrafields.class.php.

◆ create_label()

ExtraFields::create_label (   $attrname,
  $label = '',
  $type = '',
  $pos = 0,
  $size = '',
  $elementtype = '',
  $unique = 0,
  $required = 0,
  $param = '',
  $alwayseditable = 0,
  $perms = '',
  $list = '-1',
  $help = '',
  $default = '',
  $computed = '',
  $entity = '',
  $langfile = '',
  $enabled = '1',
  $totalizable = 0,
  $printable = 0,
  $moreparams = array() 
)
private

Add description of a new optional attribute.

Parameters
string$attrnamecode of attribute
string$labellabel of attribute
string$typeType of attribute ('int', 'varchar', 'text', 'html', 'date', 'datehour', 'float')
int$posPosition of attribute
string$sizeSize/length of attribute ('5', '24,8', ...)
string$elementtypeElement type ('member', 'product', 'thirdparty', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
array | string$paramParams for field (ex for select list : array('options' => array(value'=>'label of option')) )
int$alwayseditableIs attribute always editable regardless of the document status
string$permsPermission to check
string$listVisibility
string$helpHelp on tooltip
string$defaultDefault value (in database. use the default_value feature for default value on screen).
string$computedComputed value
string$entityEntity of extrafields
string$langfileLanguage file
string$enabledCondition to have the field enabled or not
int$totalizableIs a measure. Must show a total on lists
int$printableIs extrafield displayed on PDF
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>, 'cssview'=>...)
Returns
int Return integer <=0 if KO, >0 if OK
Exceptions
Exception

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

◆ delete()

ExtraFields::delete (   $attrname,
  $elementtype = '' 
)

Delete an optional attribute.

Parameters
string$attrnameCode of attribute to delete
string$elementtypeElement type ('member', 'product', 'thirdparty', 'contact', ...)
Returns
int Return integer < 0 if KO, 0 if nothing is done, 1 if OK

Definition at line 526 of file extrafields.class.php.

◆ delete_label()

ExtraFields::delete_label (   $attrname,
  $elementtype = '' 
)
private

Delete description of an optional attribute.

Parameters
string$attrnameCode of attribute to delete
string$elementtypeElement type ('member', 'product', 'thirdparty', ...)
Returns
int Return integer < 0 if KO, 0 if nothing is done, 1 if OK

Definition at line 584 of file extrafields.class.php.

◆ fetch_name_optionals_label()

ExtraFields::fetch_name_optionals_label (   $elementtype,
  $forceload = false,
  $attrname = '' 
)

Load the array of extrafields definition $this->attributes.

Parameters
string$elementtypeType of element ('all' = all or $object->table_element like 'adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...).
boolean$forceloadForce load of extra fields whatever is status of cache.
string$attrnameThe name of the attribute.
Returns
array{}|array{label:array<string,string>,type:array<string,string>,size:array<string,string>,default:array<string,string>,computed:array<string,string>,unique:array<string,int>,required:array<string,int>,param:array<string,mixed>,perms:array<string,mixed[]>,list:array<string,int>|array<string,string>,pos:array<string,int>,totalizable:array<string,int>,help:array<string,string>,printable:array<string,int>,enabled:array<string,int>,langfile:array<string,string>,css:array<string,string>,csslist:array<string,string>,hidden:array<string,int>,mandatoryfieldsofotherentities?:array<string,string>,loaded?:int,count:int} Array of attributes keys+label for all extra fields. Note: count set as present to avoid static analysis notices

Definition at line 939 of file extrafields.class.php.

◆ getAlignFlag()

ExtraFields::getAlignFlag (   $key,
  $extrafieldsobjectkey = '' 
)

Return the CSS to use for this extrafield into list.

Parameters
string$keyKey of attribute
string$extrafieldsobjectkeyIf defined, use the new method to get extrafields data
Returns
string Formatted value

Definition at line 2144 of file extrafields.class.php.

◆ getListOfTypesLabels()

static ExtraFields::getListOfTypesLabels ( )
static

Return array with all possible types and labels of extrafields.

Returns
string[]

Definition at line 2579 of file extrafields.class.php.

◆ getOptionalsFromPost()

ExtraFields::getOptionalsFromPost (   $extrafieldsobjectkey,
  $keysuffix = '',
  $keyprefix = '' 
)

return array_options array of data of extrafields value of object sent by a search form

Parameters
array | string$extrafieldsobjectkeyarray of extrafields (old usage) or value of object->table_element (new usage)
string$keysuffixSuffix string to add into name and id of field (can be used to avoid duplicate names)
string$keyprefixPrefix string to add into name and id of field (can be used to avoid duplicate names)
Returns
array|int array_options set or 0 if no value

Definition at line 2446 of file extrafields.class.php.

◆ isEmptyValue()

static ExtraFields::isEmptyValue (   $v,
string  $type 
)
static

Return if a value is "empty" for a mandatory vision.

Parameters
mixed$vValue to test
string$typeType of extrafield 'sellist', 'link', 'select', ...
Returns
boolean True is value is an empty value, not allowed for a mandatory field.

Definition at line 2609 of file extrafields.class.php.

◆ setOptionalsFromPost()

ExtraFields::setOptionalsFromPost (   $extralabels,
$object,
  $onlykey = '',
  $todefaultifmissing = 0 
)

Fill array_options property of object by extrafields value (using for data sent by forms)

Parameters
array | null$extralabelsDeprecated (old $array of extrafields, now set this to null)
object$objectObject
string$onlykeyOnly some keys are filled: 'string' => When we make update of only one extrafield ($action = 'update_extras'), calling page can set this to avoid to have other extrafields being reset. '@GETPOSTISSET' => When we make update of several extrafields ($action = 'update'), calling page can set this to avoid to have fields not into POST being reset.
int$todefaultifmissing1=Set value to the default value in database if value is mandatory and missing
Returns
int 1 if array_options set, 0 if no value, -1 if error (field required missing for example)

Definition at line 2283 of file extrafields.class.php.

◆ showInputField()

ExtraFields::showInputField (   $key,
  $value,
  $moreparam = '',
  $keysuffix = '',
  $keyprefix = '',
  $morecss = '',
  $objectid = 0,
  $extrafieldsobjectkey = '',
  $mode = 0 
)

Return HTML string to put an input field into a page Code very similar with showInputField of common object.

Parameters
string$keyKey of attribute
string | array$valuePreselected value to show (for date type it must be in timestamp format, for amount or price it must be a php numeric value); for dates in filter mode, a range array('start'=><timestamp>, 'end'=><timestamp>) should be provided
string$moreparamTo add more parameters on html input tag
string$keysuffixSuffix string to add after name and id of field (can be used to avoid duplicate names)
string$keyprefixPrefix string to add before name and id of field (can be used to avoid duplicate names)
string$morecssMore css (to defined size of field. Old behaviour: may also be a numeric)
int$objectidCurrent object id
string$extrafieldsobjectkeyThe key to use to store retrieved data (commonly $object->table_element)
int$mode1=Used for search filters
Returns
string

Definition at line 1050 of file extrafields.class.php.

◆ showOutputField()

ExtraFields::showOutputField (   $key,
  $value,
  $moreparam = '',
  $extrafieldsobjectkey = '',
  $outputlangs = null 
)

Return HTML string to put an output field into a page.

Parameters
string$keyKey of attribute
string$valueValue to show
string$moreparamTo add more parameters on html input tag (only checkbox use html input for output rendering)
string$extrafieldsobjectkeyRequired (for example $object->table_element).
Translate$outputlangsOutput language
Returns
string Formatted value

Definition at line 1767 of file extrafields.class.php.

◆ showSeparator()

ExtraFields::showSeparator (   $key,
  $object,
  $colspan = 2,
  $display_type = 'card',
  $mode = '' 
)

Return HTML string to print separator extrafield.

Parameters
string$keyKey of attribute
object$objectObject
int$colspanValue of colspan to use (it must includes the first column with title)
string$display_type"card" for form display, "line" for document line display (extrafields on propal line, order line, etc...)
string$modeShow output ('view') or input ('create' or 'edit') for extrafield
Returns
string HTML code with line for separator

Definition at line 2184 of file extrafields.class.php.

◆ update()

ExtraFields::update (   $attrname,
  $label,
  $type,
  $length,
  $elementtype,
  $unique = 0,
  $required = 0,
  $pos = 0,
  $param = array(),
  $alwayseditable = 0,
  $perms = '',
  $list = '',
  $help = '',
  $default = '',
  $computed = '',
  $entity = '',
  $langfile = '',
  $enabled = '1',
  $totalizable = 0,
  $printable = 0,
  $moreparams = array() 
)

Modify type of a personalized attribute.

Parameters
string$attrnameName of attribute
string$labelLabel of attribute
string$typeType of attribute ('boolean', 'int', 'varchar', 'text', 'html', 'date', 'datetime','price','phone','mail','password','url','select','checkbox', ...)
int$lengthLength of attribute
string$elementtypeElement type ('member', 'product', 'thirdparty', 'contact', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
int$posPosition of attribute
array$paramParams for field (ex for select list : array('options' => array(value'=>'label of option')) )
int$alwayseditableIs attribute always editable regardless of the document status
string$permsPermission to check
string$listVisibility
string$helpHelp on tooltip
string$defaultDefault value (in database. use the default_value feature for default value on screen).
string$computedComputed value
string$entityEntity of extrafields
string$langfileLanguage file
string$enabledCondition to have the field enabled or not
int$totalizableIs extrafield totalizable on list
int$printableIs extrafield displayed on PDF
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>, 'cssview'=>...)
Returns
int >0 if OK, <=0 if KO
Exceptions
Exception

Definition at line 642 of file extrafields.class.php.

◆ update_label()

ExtraFields::update_label (   $attrname,
  $label,
  $type,
  $size,
  $elementtype,
  $unique = 0,
  $required = 0,
  $pos = 0,
  $param = array(),
  $alwayseditable = 0,
  $perms = '',
  $list = '0',
  $help = '',
  $default = '',
  $computed = '',
  $entity = '',
  $langfile = '',
  $enabled = '1',
  $totalizable = 0,
  $printable = 0,
  $moreparams = array() 
)
private

Modify description of personalized attribute This is a private method.

For public method, use updateExtraField.

Parameters
string$attrnameName of attribute
string$labelLabel of attribute
string$typeType of attribute
int$sizeLength of attribute
string$elementtypeElement type ('member', 'product', 'thirdparty', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
int$posPosition of attribute
array$paramParams for field (ex for select list : array('options' => array(value'=>'label of option')) )
int$alwayseditableIs attribute always editable regardless of the document status
string$permsPermission to check
string$listVisibility
string$helpHelp on tooltip.
string$defaultDefault value (in database. use the default_value feature for default value on screen).
string$computedComputed value
string$entityEntity of extrafields
string$langfileLanguage file
string$enabledCondition to have the field enabled or not
int$totalizableIs extrafield totalizable on list
int$printableIs extrafield displayed on PDF
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>, 'cssview'=>...)
Returns
int Return integer <=0 if KO, >0 if OK
Exceptions
Exception

Definition at line 785 of file extrafields.class.php.

◆ updateExtraField()

ExtraFields::updateExtraField (   $attrname,
  $label,
  $type,
  $pos,
  $size,
  $elementtype,
  $unique = 0,
  $required = 0,
  $default_value = '',
  $param = '',
  $alwayseditable = 0,
  $perms = '',
  $list = '-1',
  $help = '',
  $computed = '',
  $entity = '',
  $langfile = '',
  $enabled = '1',
  $totalizable = 0,
  $printable = 0,
  $moreparams = array() 
)

Update an existing extra field parameter.

Parameters
string$attrnameCode of attribute
string$labellabel of attribute
string$typeType of attribute ('boolean','int','varchar','text','html','date','datetime','price', 'pricecy', 'phone','mail','password','url','select','checkbox','separate',...)
int$posPosition of attribute
string$sizeSize/length definition of attribute ('5', '24,8', ...). For float, it contains 2 numeric separated with a comma.
string$elementtypeElement type. Same value than object->table_element (Example 'member', 'product', 'thirdparty', ...)
int$uniqueIs field unique or not
int$requiredIs field required or not
string$default_valueDefaulted value (In database. use the default_value feature for default value on screen. Example: '', '0', 'null', 'avalue')
array | string$paramParams for field (ex for select list : array('options' => array(value'=>'label of option')) )
int$alwayseditableIs attribute always editable regardless of the document status
string$permsPermission to check
string$listVisibility ('0'=never visible, '1'=visible on list+forms, '2'=list only, '3'=form only or 'eval string')
string$helpText with help tooltip
string$computedComputed value
string$entityEntity of extrafields (for multicompany modules)
string$langfileLanguage file
string$enabledCondition to have the field enabled or not
int$totalizableIs a measure. Must show a total on lists
int$printableIs extrafield displayed on PDF
array$moreparamsMore parameters. Example: array('css'=>, 'csslist'=>Css on list, 'cssview'=>...)
Returns
int Return integer <=0 if KO, >0 if OK

Definition at line 212 of file extrafields.class.php.


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