LSattr_html::select_list: clean code of getPossibleValues() method

This commit is contained in:
Benjamin Renard 2020-09-10 15:53:19 +02:00
parent b8c00a8708
commit 1169772c4a

View file

@ -66,12 +66,12 @@ class LSattr_html_select_list extends LSattr_html{
} }
/** /**
* Retourne un tableau des valeurs possibles de la liste de l'attribut courant * Return array of possible values with translated labels (if enabled)
* *
* @author Benjamin Renard <brenard@easter-eggs.com> * @author Benjamin Renard <brenard@easter-eggs.com>
* *
* @retval array Tableau associatif des valeurs possible de la liste avec en clé * @retval array Associative array with possible values as key and corresponding
* la valeur des balises option et en valeur ce qui sera affiché. * translated label as value.
*/ */
protected function getPossibleValues() { protected function getPossibleValues() {
return static :: _getPossibleValues( return static :: _getPossibleValues(
@ -82,7 +82,7 @@ class LSattr_html_select_list extends LSattr_html{
} }
/** /**
* Retourne un tableau des valeurs possibles de la liste * Return array of possible values with translated labels (if enabled)
* *
* @param[in] $options Attribute options (optional) * @param[in] $options Attribute options (optional)
* @param[in] $name Attribute name (optional) * @param[in] $name Attribute name (optional)
@ -90,11 +90,12 @@ class LSattr_html_select_list extends LSattr_html{
* *
* @author Benjamin Renard <brenard@easter-eggs.com> * @author Benjamin Renard <brenard@easter-eggs.com>
* *
* @retval array Tableau associatif des valeurs possible de la liste avec en clé * @retval array Associative array with possible values as key and corresponding
* la valeur des balises option et en valeur ce qui sera affiché. * translated label as value.
*/ */
public static function _getPossibleValues($options=false,$name=false,&$ldapObject=false) { public static function _getPossibleValues($options=false,$name=false,&$ldapObject=false) {
$retInfos = array(); $retInfos = array();
$translate_labels = LSconfig :: get('translate_labels', true, 'bool', $options);
if (isset($options['possible_values']) && is_array($options['possible_values'])) { if (isset($options['possible_values']) && is_array($options['possible_values'])) {
foreach($options['possible_values'] as $val_key => $val_label) { foreach($options['possible_values'] as $val_key => $val_label) {
if($val_key==='OTHER_OBJECT') { if($val_key==='OTHER_OBJECT') {
@ -105,47 +106,32 @@ class LSattr_html_select_list extends LSattr_html{
$attrInfos=static :: getLSattributePossibleValues($val_label, $options, $name, $ldapObject); $attrInfos=static :: getLSattributePossibleValues($val_label, $options, $name, $ldapObject);
$retInfos=static :: _array_merge($retInfos,$attrInfos); $retInfos=static :: _array_merge($retInfos,$attrInfos);
} }
elseif (is_array($val_label)) { elseif (is_array($val_label)) {
if (!isset($val_label['possible_values']) || !is_array($val_label['possible_values']) || !isset($val_label['label'])) if (!isset($val_label['possible_values']) || !is_array($val_label['possible_values']) || !isset($val_label['label']))
continue; continue;
$subRetInfos=array(); $subRetInfos=array();
foreach($val_label['possible_values'] as $vk => $vl) { foreach($val_label['possible_values'] as $vk => $vl) {
if ($vk==='OTHER_OBJECT') { if ($vk==='OTHER_OBJECT') {
$objInfos=static :: getLSobjectPossibleValues($vl,$options,$name); $objInfos=static :: getLSobjectPossibleValues($vl,$options,$name);
$subRetInfos=static :: _array_merge($subRetInfos,$objInfos); $subRetInfos=static :: _array_merge($subRetInfos,$objInfos);
} }
else { else {
$vk=$ldapObject->getFData($vk); $vk = $ldapObject->getFData($vk);
if (isset($options['translate_labels']) && !$options['translate_labels']) { $vl = $ldapObject->getFData(($translate_labels?__($vl):$vl));
$vl=$ldapObject->getFData($vl); $subRetInfos[$vk] = $vl;
} }
else { }
$vl=$ldapObject->getFData(__($vl)); static :: _sort($subRetInfos,$options);
} $subRetLabel = $ldapObject->getFData(($translate_labels?__($val_label['label']):$val_label['label']));
$subRetInfos[$vk]=$vl; $retInfos[] = array (
} 'label' => $subRetLabel,
} 'possible_values' => $subRetInfos
static :: _sort($subRetInfos,$options); );
if (isset($options['translate_labels']) && !$options['translate_labels']) { }
$subRetLabel = $ldapObject->getFData($val_label['label']);
}
else {
$subRetLabel = $ldapObject->getFData(__($val_label['label']));
}
$retInfos[] = array (
'label' => $subRetLabel,
'possible_values' => $subRetInfos
);
}
else { else {
$val_key=$ldapObject->getFData($val_key); $val_key = $ldapObject->getFData($val_key);
if (isset($options['translate_labels']) && !$options['translate_labels']) { $val_label = $ldapObject->getFData(($translate_labels?__($val_label):$val_label));
$val_label=$ldapObject->getFData($val_label); $retInfos[$val_key] = $val_label;
}
else {
$val_label=$ldapObject->getFData(__($val_label));
}
$retInfos[$val_key]=$val_label;
} }
} }
} }