Désolé si je ne suis pas assez explicite sur le sujet, mais il est des fois très difficile d'expliquer ceci dans un post.
POUR FAIRE FONCTIONNER UN CHAMP SELECT
A l'heure actuelle si je retire la "function renderValidationJS()" dans "formselect.php" le hack select other ajouter à mon profil (et non Ext Profil) fonctionne dans register.php et edituser.php (avec l'ajout de True sur le champ obligatoire).
Le resultat est que mon champ choisi par défaut dans "../include/function.php" du style texte (---, Choisir) n'est pas sélectionnable par le membre à l'inscription et/ou la modification.
POUR INFO AVANT :
Dans la version 2.31RC la fonction défaut "None" avec "obligation" dans le module "Ext Profil" ne fonctionnait pas non plus (voir site tests v2 toujours dans cette version actuellement)
Dans modules\profile\class\field.php existait ceci
case "select":
$element = new XoopsFormSelect($caption, $name, $value);
// If options do not include an empty element, then add a blank option to prevent any default selection
if (!in_array('', array_keys($options))) {
$element->addOption('', _NONE);
}
$element->addOptionArray($options);
break;
Pour le faire fonctionner il suffisait donc de retirer la "function renderValidationJS()" dans "formselect.php" et le sujet était résolu pour le core comme pour le module comme je l'avais montré sur le site test.
POUR INFO MAINTENANT :
Dans la version 2.31 Finale le module Profile 1.51 est résolu de cette manière :
case "select":
$element = new XoopsFormSelect($caption, $name, $value);
// If options do not include an empty element, then add a blank option to prevent any default selection
if (!in_array('', array_keys($options))) {
$element->addOption('', _NONE);
$eltmsg = empty($caption) ? sprintf( _FORM_ENTER, $name ) : sprintf( _FORM_ENTER, $caption );
$eltmsg = str_replace('"', '"', stripslashes( $eltmsg ) );
$element->customValidationCode[] = "nvar hasSelected = false; var selectBox = myform.{$name};" .
"for (i = 0; i < selectBox.options.length; i++ ) { if (selectBox.options[i].selected == true && selectBox.options[i].value != '') { hasSelected = true; break; } }" .
"if (!hasSelected) { window.alert("{$eltmsg}"); selectBox.focus(); return false; }";
}
$element->addOptionArray($options);
break;
ceci fonctionne donc aujourd'hui dans la version 2.31 Finale pour le module profile mais pas pour le core.
Conclusion :
Je voudrais savoir si cette fonction ajouter à "formselect.php" à une incidence sur autre chose car sinon le sujet serait résolu en l'éliminant.