dolibarr  13.0.2
Public Member Functions | Private Member Functions | List of all members
ExtraFields Class Reference

Class to manage standard extra fields. More...

+ Collaboration diagram for ExtraFields:

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)
 Add a new extra field parameter. More...
 
 delete ($attrname, $elementtype= 'member')
 Delete an optional attribute. More...
 
 update ($attrname, $label, $type, $length, $elementtype, $unique=0, $required=0, $pos=0, $param= '', $alwayseditable=0, $perms= '', $list= '', $help= '', $default= '', $computed= '', $entity= '', $langfile= '', $enabled= '1', $totalizable=0, $printable=0)
 Modify type of a personalized attribute. More...
 
 fetch_name_optionals_label ($elementtype, $forceload=false)
 Load array this->attributes, or old this->attribute_xxx like attribute_label, attribute_type, ... 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= '')
 Return HTML string to put an output field into a page. More...
 
 getAlignFlag ($key, $extrafieldsobjectkey= '')
 Return tag to describe alignement to use for this extrafield. More...
 
 showSeparator ($key, $object, $colspan=2)
 Return HTML string to print separator extrafield. More...
 
 setOptionalsFromPost ($extralabels, &$object, $onlykey= '')
 Fill array_options property of object by extrafields value (using for data sent by forms) More...
 
 getOptionalsFromPost ($extrafieldsobjectkey, $keyprefix= '', $keysuffix= '')
 return array_options array of data of extrafields value of object sent by a search form More...
 

Private Member Functions

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

Detailed Description

Class to manage standard extra fields.

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

Constructor & Destructor Documentation

ExtraFields::__construct (   $db)

Constructor.

Parameters
DoliDB$dbDatabase handler

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

References db.

Member Function Documentation

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 
)

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','datehour','price','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$listVisibilty ('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
Returns
int <=0 if KO, >0 if OK

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

References create(), and create_label().

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

Add a new optional attribute.

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

Parameters
string$attrnamecode of attribute
int$typeType of attribute ('boolean', 'int', 'varchar', 'text', 'html', 'date', 'datehour','price','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
Returns
int <=0 if KO, >0 if OK

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

References $resql, and db.

Referenced by addExtraField().

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

Add description of a new optional attribute.

Parameters
string$attrnamecode of attribute
string$labellabel of attribute
int$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$listVisibily
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
Returns
int <=0 if KO, >0 if OK
Exceptions
Exception

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

References db, dol_now(), and dol_syslog().

Referenced by addExtraField().

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

Delete an optional attribute.

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

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

References $resql, db, and delete_label().

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

Delete description of an optional attribute.

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

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

References $resql, db, dol_print_error(), and dol_syslog().

Referenced by delete().

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

Load array this->attributes, or old this->attribute_xxx like attribute_label, attribute_type, ...

Parameters
string$elementtypeType of element ('' = all or $object->table_element like 'adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...).
boolean$forceloadForce load of extra fields whatever is status of cache.
Returns
array Array of attributes keys+label for all extra fields.

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

References $resql, db, and dol_syslog().

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

Return tag to describe alignement to use for this extrafield.

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

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

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

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$keyprefixPrefix string to add into name and id of field (can be used to avoid duplicate names)
string$keysuffixSuffix 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 2072 of file extrafields.class.php.

References dol_mktime(), GETPOST(), GETPOSTISSET(), and price2num().

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

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

Parameters
array$extralabelsDeprecated (old $array of extrafields, now set this to null)
object$objectObject
string$onlykeyOnly some keys are filled:$this '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. '' => When we make update of extrafields ($action = 'update'), calling page can set this to avoid to have fields not into POST being reset.
Returns
int 1 if array_options set, 0 if no value, -1 if error (field required missing for example)

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

References dol_eval(), dol_mktime(), GETPOST(), GETPOSTISSET(), price2num(), and setEventMessages().

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$valuePreselected value to show (for date type it must be in timestamp format, for amount or price it must be a php numeric value)
string$moreparamTo add more parametes on html input tag
string$keysuffixPrefix string to add after name and id of field (can be used to avoid duplicate names)
string$keyprefixSuffix 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$extrafieldsobjectkeyIf defined (for example $object->table_element), use the new method to get extrafields data
string$mode1=Used for search filters
Returns
string

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

References $resql, ajax_combobox(), db, dol_escape_htmltag(), dol_eval(), dol_syslog(), price(), and print.

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

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$extrafieldsobjectkeyIf defined (for example $object->table_element), function uses the new method to get extrafields data
Returns
string Formated value

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

References $resql, db, dol_eval(), dol_print_date(), dol_print_email(), dol_print_phone(), dol_print_url(), dol_syslog(), dol_trunc(), and price().

ExtraFields::showSeparator (   $key,
  $object,
  $colspan = 2 
)

Return HTML string to print separator extrafield.

Parameters
string$keyKey of attribute
string$objectObject
int$colspanValue of colspan to use (it must includes the first column with title)
Returns
string HTML code with line for separator

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

References $_SERVER, and GETPOST().

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

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', 'datehour','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
Returns
int >0 if OK, <=0 if KO
Exceptions
Exception

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

References $resql, db, dol_syslog(), and update_label().

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

Modify description of personalized attribute.

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$listVisiblity
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
Returns
int <=0 if KO, >0 if OK
Exceptions
Exception

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

References db, dol_now(), dol_print_error(), and dol_syslog().

Referenced by update().


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