From 2f6361658a09f576e857c535a5d9013b64d0f6cc Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 27 Jun 2013 13:35:28 +0200 Subject: [PATCH 1/3] Can choose several fields to display with extrafield list of table --- htdocs/core/class/extrafields.class.php | 63 ++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 6 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 206856c3530..92dca75f045 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -690,7 +690,13 @@ class ExtraFields if (count($InfoFieldList)==3) $keyList=$InfoFieldList[2].' as rowid'; - $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) { + $keyList .=', '; + $keyList .= implode(', ', $fields_label); + } + + $sql = 'SELECT '.$keyList; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; //$sql.= ' WHERE entity = '.$conf->entity; @@ -706,8 +712,24 @@ class ExtraFields { while ($i < $num) { + $labeltoshow=''; $obj = $this->db->fetch_object($resql); - $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18); + + // Several field into label (eq table:code|libelle:rowid) + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) + { + foreach ($fields_label as $field_toshow) + { + $labeltoshow.= $obj->$field_toshow.' '; + } + } + else + { + $labeltoshow=$obj->$InfoFieldList[1]; + } + $labeltoshow=dol_trunc($labeltoshow,45); + if ($value==$obj->rowid) { $out.=''; @@ -826,21 +848,50 @@ class ExtraFields { $param_list=array_keys($params['options']); $InfoFieldList = explode(":", $param_list[0]); + + $selectkey="rowid"; $keyList='rowid'; + if (count($InfoFieldList)==3) - $keyList=$InfoFieldList[2]; + { + $selectkey = $InfoFieldList[2]; + $keyList=$InfoFieldList[2].' as rowid'; + } + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) { + $keyList .=', '; + $keyList .= implode(', ', $fields_label); + } - $sql = 'SELECT '.$InfoFieldList[1]; + $sql = 'SELECT '.$keyList; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; - $sql.= ' WHERE '.$keyList.'=\''.$this->db->escape($value).'\''; + $sql.= ' WHERE '.$selectkey.'=\''.$this->db->escape($value).'\''; //$sql.= ' AND entity = '.$conf->entity; + print $sql; dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); - $value=$obj->$InfoFieldList[1]; + // Several field into label (eq table:code|libelle:rowid) + $fields_label = explode('|',$InfoFieldList[1]); + + if(is_array($fields_label)) + { + $valuetmp=''; + foreach ($fields_label as $field_toshow) + { + $valuetmp.= $obj->$field_toshow.' '; + } + $value=$valuetmp; + } + else + { + $value=$obj->$InfoFieldList[1]; + } + + } } elseif ($type == 'radio') From 162fc6e6dd094a7097a8108c03662bcde6469313 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 27 Jun 2013 13:45:06 +0200 Subject: [PATCH 2/3] Remove debug info --- htdocs/core/class/extrafields.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 92dca75f045..c7b2dd42bb7 100755 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -868,7 +868,6 @@ class ExtraFields $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; $sql.= ' WHERE '.$selectkey.'=\''.$this->db->escape($value).'\''; //$sql.= ' AND entity = '.$conf->entity; - print $sql; dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) From 95e2f30f6bdf6d521f20d2a6cb90cbf463febd82 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 27 Jun 2013 13:35:28 +0200 Subject: [PATCH 3/3] Can choose several fields to display with extrafield list of table --- htdocs/core/class/extrafields.class.php | 98 +++++++++++++++---- .../modules/propale/doc/pdf_azur.modules.php | 4 +- 2 files changed, 81 insertions(+), 21 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 1100e240015..825b9a7e7aa 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -701,7 +701,13 @@ class ExtraFields $keyList.= ', '.$parentField; } - $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) { + $keyList .=', '; + $keyList .= implode(', ', $fields_label); + } + + $sql = 'SELECT '.$keyList; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; //$sql.= ' WHERE entity = '.$conf->entity; @@ -717,14 +723,38 @@ class ExtraFields { while ($i < $num) { + $labeltoshow=''; $obj = $this->db->fetch_object($resql); - $translabel=$langs->trans($obj->$InfoFieldList[1]); - if ($translabel!=$obj->$InfoFieldList[1]) { - $labeltoshow=dol_trunc($translabel,18); - }else { - $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18); + + + // Several field into label (eq table:code|libelle:rowid) + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) + { + foreach ($fields_label as $field_toshow) + { + $translabel=$langs->trans($obj->$field_toshow); + if ($translabel!=$obj->$field_toshow) { + $labeltoshow=dol_trunc($translabel,18).' '; + }else { + $labeltoshow=dol_trunc($obj->$field_toshow,18).' '; + } + } } - + else + { + $translabel=$langs->trans($obj->$InfoFieldList[1]); + if ($translabel!=$obj->$InfoFieldList[1]) { + $labeltoshow=dol_trunc($translabel,18); + }else { + $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18); + } + + if ($value==$obj->rowid) + { + $out.=''; + } + if(!empty($InfoFieldList[3])) { $parent = $parentName.':'.$obj->{$parentField}; } @@ -733,7 +763,7 @@ class ExtraFields $out.= ($value==$obj->rowid?' selected="selected"':''); $out.= (!empty($parent)?' parent="'.$parent.'"':''); $out.='>'.$labeltoshow.''; - + $i++; } } @@ -846,26 +876,56 @@ class ExtraFields { $param_list=array_keys($params['options']); $InfoFieldList = explode(":", $param_list[0]); - $keyList='rowid'; - if (count($InfoFieldList)==3) - $keyList=$InfoFieldList[2]; - $sql = 'SELECT '.$InfoFieldList[1]; + $selectkey="rowid"; + $keyList='rowid'; + + if (count($InfoFieldList)==3) + { + $selectkey = $InfoFieldList[2]; + $keyList=$InfoFieldList[2].' as rowid'; + } + + $fields_label = explode('|',$InfoFieldList[1]); + if(is_array($fields_label)) { + $keyList .=', '; + $keyList .= implode(', ', $fields_label); + } + + $sql = 'SELECT '.$keyList; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; - $sql.= ' WHERE '.$keyList.'=\''.$this->db->escape($value).'\''; + $sql.= ' WHERE '.$selectkey.'=\''.$this->db->escape($value).'\''; //$sql.= ' AND entity = '.$conf->entity; dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql); $resql = $this->db->query($sql); if ($resql) { $obj = $this->db->fetch_object($resql); - $translabel=$langs->trans($obj->$InfoFieldList[1]); - if ($translabel!=$obj->$InfoFieldList[1]) { - $value=dol_trunc($translabel,18); - }else { - $value=$obj->$InfoFieldList[1]; - } + // Several field into label (eq table:code|libelle:rowid) + $fields_label = explode('|',$InfoFieldList[1]); + + if(is_array($fields_label)) + { + foreach ($fields_label as $field_toshow) + { + $translabel=$langs->trans($obj->$InfoFieldList[1]); + if ($translabel!=$obj->$InfoFieldList[1]) { + $value=dol_trunc($translabel,18).' '; + }else { + $value=$obj->$InfoFieldList[1].' '; + } + } + } + else + { + $translabel=$langs->trans($obj->$InfoFieldList[1]); + if ($translabel!=$obj->$InfoFieldList[1]) { + $value=dol_trunc($translabel,18); + }else { + $value=$obj->$InfoFieldList[1]; + } + } } } elseif ($type == 'radio') diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php index 9dfa20e8551..ea60ca5175d 100644 --- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php +++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php @@ -303,7 +303,7 @@ class pdf_azur extends ModelePDFPropales $pdf->SetTextColor(0,0,0); // Define size of image if we need it - $imglinesize=array(); + $imglinesize=array(); if (! empty($realpatharray[$i])) $imglinesize=pdf_getSizeForImage($realpatharray[$i]); $pdf->setTopMargin($tab_top_newpage); @@ -347,7 +347,7 @@ class pdf_azur extends ModelePDFPropales $pageposafter=$pageposbefore; //print $pageposafter.'-'.$pageposbefore;exit; $pdf->setPageOrientation('', 1, $heightforfooter); // The only function to edit the bottom margin of current page to set it. - pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc); + pdf_writelinedesc($pdf,$object,$i,$outputlangs,$this->posxpicture-$curX,3,$curX,$curY,$hideref,$hidedesc); $pageposafter=$pdf->getPage(); $posyafter=$pdf->GetY();