Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : bug sur la fct showinputtype de l'obj commonobject

bug sur la fct showinputtype de l'obj commonobject il y a 1 mois 2 semaines #110082

  • thom
  • Portrait de thom
  • Hors ligne
  • Fresh Boarder
  • Messages : 8
  • Remerciements reçus 1
  • Karma: 0
Bonjour,

Dans la fonction showInputField de l'objet commonobject (fichier /code/class/commonobject.class.php)

la variable $val passé en paramètre est écrasé dans les 1ere ligne et remplacé par $this->fields[$key]. De plus dans la suite il est certaine fois utilisé $val , d'autres fois il est utilisé $this->fields[$key].

Si $val passé en paramètre est déjà égale à $this->fields[$key] (je pense dans la grande majorité des cas) ça pose pas de problème. Mais ça ferme à une variation de $val par rapport à $this->fields[$key].

Et dans ce cas, pourquoi mettre en entré $val ??

Perso, je faisait une modification de $val avant affichage du input pour ajouter l'info d'un choix par défaut conseillé suivant certain paramètres.

Serai-il possible de ne pas écraser $val et de l'utiliser au lieux de $this->fields[$key] ?? d'autant que çà porte à confusion...

Extrait de la fonction:

function showInputField($val, $key, $value, $moreparam='', $keysuffix='', $keyprefix='', $morecss=0)
{
global $conf,$langs,$form;

if (! is_object($form))
{
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
$form=new Form($this->db);
}

$val=$this->fields[$key];

$out='';
$type='';
$param = array();
$param=array();
$size =$this->fields[$key];
// Because we work on extrafields
if(preg_match('/^integer:(.*):(.*)/i', $val, $reg)){
$param=array($reg[1].':'.$reg[2]=>'N');
$type ='link';
} elseif(preg_match('/^link:(.*):(.*)/i', $val, $reg)) {
$param=array($reg[1].':'.$reg[2]=>'N');
$type ='link';
} elseif(preg_match('/^sellist:(.*):(.*):(.*):(.*)/i', $val, $reg)) {
$param=array($reg[1].':'.$reg[2].':'.$reg[3].':'.$reg[4]=>'N');
$type ='sellist';
} elseif(preg_match('/varchar\((\d+)\)/', $val,$reg)) {
$param=array();
$type ='varchar';
$size=$reg[1];
} elseif(preg_match('/varchar/', $val)) {
$param=array();
$type ='varchar';
} elseif(is_array($this->fields[$key])) {
$param=$this->fields[$key];
$type ='select';
} else {
$param=array();
$type =$this->fields[$key];
L'administrateur a désactivé l'accès en écriture pour le public.

bug sur la fct showinputtype de l'obj commonobject il y a 1 mois 2 semaines #110089

  • ksar
  • Portrait de ksar
  • En ligne
  • Admin
  • Bijour!
  • Messages : 791
  • Remerciements reçus 231
  • Karma: 12
Bonjour,

Pour le code source, tout se passe sur GitHub.
Ouvrez une issue : github.com/Dolibarr/dolibarr/issues
L'administrateur a désactivé l'accès en écriture pour le public.

bug sur la fct showinputtype de l'obj commonobject il y a 1 mois 2 semaines #110094

  • philazerty
  • Portrait de philazerty
  • Hors ligne
  • Gold Boarder
  • Intégrateur Mon-Dolibarr.fr Hébergement Infogéré
  • Messages : 5715
  • Remerciements reçus 855
  • Karma: 112
Bonjour
J'ajoute que lorsque vous postez du code, utilisez les balises code pour ça,
On aura moins de smileys et ce sera plus lisible.
Rdv sur Github
@+
L'administrateur a désactivé l'accès en écriture pour le public.

bug sur la fct showinputtype de l'obj commonobject il y a 1 mois 2 semaines #110122

  • ksar
  • Portrait de ksar
  • En ligne
  • Admin
  • Bijour!
  • Messages : 791
  • Remerciements reçus 231
  • Karma: 12
Bonjour,

Merci d'avoir remonté :https://github.com/Dolibarr/dolibarr/issues/11104
Dernière édition: il y a 1 mois 2 semaines par ksar.
L'administrateur a désactivé l'accès en écriture pour le public.