diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 934eb672c7c..0d198fda0ce 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -4105,7 +4105,7 @@ abstract class CommonObject
$out .= $extrafields->showOutputField($key,$value);
break;
case "edit":
- $out .= $extrafields->showInputField($key,$value,'',$keyprefix);
+ $out .= $extrafields->showInputField($key,$value,'',$keyprefix,0,$this->id);
break;
}
diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 645b50cb8bc..df2c443660b 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -636,10 +636,11 @@ class ExtraFields
* @param string $moreparam To add more parametes on html input tag
* @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names)
* @param string $keysuffix Suffix string to add into name and id of field (can be used to avoid duplicate names)
- * @param int $showsize Value for size attribute
+ * @param int $showsize Value for size attributed
+ * @param int $objectid Current object id
* @return string
*/
- function showInputField($key,$value,$moreparam='',$keyprefix='',$keysuffix='',$showsize=0)
+ function showInputField($key,$value,$moreparam='',$keyprefix='',$keysuffix='',$showsize=0, $objectid=0)
{
global $conf,$langs;
@@ -805,6 +806,10 @@ class ExtraFields
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
if (!empty($InfoFieldList[4]))
{
+ // current object id can be use into filter
+ if (strpos($InfoFieldList[4], '$ID$')!==false && !empty($objectid)) {
+ $InfoFieldList[4]=str_replace('$ID$',$objectid,$InfoFieldList[4]);
+ }
//We have to join on extrafield table
if (strpos($InfoFieldList[4], 'extra')!==false)
{
@@ -820,7 +825,11 @@ class ExtraFields
{
$sqlwhere.= ' WHERE 1';
}
- if (in_array($InfoFieldList[0],array('tablewithentity'))) $sqlwhere.= ' AND entity = '.$conf->entity; // Some tables may have field, some other not. For the moment we disable it.
+ // Some tables may have field, some other not. For the moment we disable it.
+ if (in_array($InfoFieldList[0],array('tablewithentity')))
+ {
+ $sqlwhere.= ' AND entity = '.$conf->entity;
+ }
$sql.=$sqlwhere;
//print $sql;
@@ -978,6 +987,12 @@ class ExtraFields
$sql = 'SELECT ' . $keyList;
$sql .= ' FROM ' . MAIN_DB_PREFIX . $InfoFieldList[0];
if (! empty($InfoFieldList[4])) {
+
+ // current object id can be use into filter
+ if (strpos($InfoFieldList[4], '$ID$')!==false && !empty($objectid)) {
+ $InfoFieldList[4]=str_replace('$ID$',$objectid,$InfoFieldList[4]);
+ }
+
// We have to join on extrafield table
if (strpos($InfoFieldList[4], 'extra') !== false) {
$sql .= ' as main, ' . MAIN_DB_PREFIX . $InfoFieldList[0] . '_extrafields as extra';
@@ -988,12 +1003,14 @@ class ExtraFields
} else {
$sqlwhere .= ' WHERE 1';
}
- if (in_array($InfoFieldList[0], array (
- 'tablewithentity'
- )))
- $sqlwhere .= ' AND entity = ' . $conf->entity; // Some tables may have field, some other not. For the moment we disable it.
- // $sql.=preg_replace('/^ AND /','',$sqlwhere);
- // print $sql;
+ // Some tables may have field, some other not. For the moment we disable it.
+ if (in_array($InfoFieldList[0], array ('tablewithentity')))
+ {
+ $sqlwhere .= ' AND entity = ' . $conf->entity;
+ }
+ // $sql.=preg_replace('/^ AND /','',$sqlwhere);
+ // print $sql;
+
$sql .= $sqlwhere;
dol_syslog(get_class($this) . '::showInputField type=chkbxlst',LOG_DEBUG);
$resql = $this->db->query($sql);
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index f4d311c8f27..32c1365c03d 100755
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -397,8 +397,8 @@ ExtrafieldLink=Link to an object
ExtrafieldParamHelpselect=Parameters list have to be like key,value
for example :
1,value1
2,value2
3,value3
...
In order to have the list depending on another :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key
ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value
for example :
1,value1
2,value2
3,value3
...
ExtrafieldParamHelpradio=Parameters list have to be like key,value
for example :
1,value1
2,value2
3,value3
...
-ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter
-ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter
+ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter
+ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter
filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
if you want to filter on extrafields use syntaxt extra.fieldcode=... (where field code is the code of extrafield)
In order to have the list depending on another :
c_typent:libelle:id:parent_list_code|parent_column:filter
ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php
LibraryToBuildPDF=Library used to build PDF
WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir'