- LSattr_html_select_object && LSattr_html_select_list :

-> Mofication du paramètre de configuration 'display_attribute' en
     'display_name_format'
	-> Ajout de commentaires
This commit is contained in:
Benjamin Renard 2009-02-11 16:01:21 +00:00
parent 8cc6d37f8a
commit a7a165651d
5 changed files with 42 additions and 16 deletions

View file

@ -103,8 +103,8 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
'html_options' => array(
'selectable_object' => array(
'object_type' => 'LSeepeople', // Nom de l'objet à lister
'display_attribute' => '%{cn} (%{uidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'select_display_attrs'
'display_name_format' => '%{cn} (%{uidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'display_name_format'
// de la définition de l'objet
'value_attribute' => 'dn', // Spécifie le attributs dont la valeur sera retournée par
@ -157,7 +157,7 @@ $GLOBALS['LSobjects']['LSeegroup'] = array (
'html_options' => array (
'selectable_object' => array(
'object_type' => 'LSeepeople',
'value_attribute' => '%{dn}'
'value_attribute' => 'dn'
),
),
'validation' => array (

View file

@ -272,8 +272,8 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
'possible_values' => array(
'OTHER_OBJECT' => array(
'object_type' => 'LSeegroup', // Nom de l'objet à lister
'display_attribute' => '%{cn} (%{gidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'select_display_attrs'
'display_name_format' => '%{cn} (%{gidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'display_name_format'
// de la définition de l'objet
'value_attribute' => 'gidNumber', // Spécifie le attributs dont la valeur sera retournée par

View file

@ -23,6 +23,21 @@
/**
* Type d'attribut HTML select_list
*
* 'html_options' => array (
* 'possible_values' => array (
* '[LSformat de la valeur clé]' => '[LSformat du nom d'affichage]',
* ...
* 'OTHER_OBJECT' => array (
* 'object_type' => '[Type d'LSobject]',
* 'display_name_format' => '[LSformat du nom d'affichage des LSobjects]',
* 'value_attribute' => '[Nom de l'attribut clé]',
* 'filter' => '[Filtre de recherche des LSobject]',
* 'scope' => '[Scope de la recherche]',
* 'basedn' => '[Basedn de la recherche]'
* )
* )
* ),
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*/
class LSattr_html_select_list extends LSattr_html{
@ -72,7 +87,7 @@ class LSattr_html_select_list extends LSattr_html{
*/
function getPossibleValues() {
$retInfos = array();
if (isset($this -> config['html_options']['possible_values'])) {
if (is_array($this -> config['html_options']['possible_values'])) {
foreach($this -> config['html_options']['possible_values'] as $val_name => $val) {
if($val_name=='OTHER_OBJECT') {
if ((!isset($val['object_type'])) || (!isset($val['value_attribute']))) {
@ -84,22 +99,22 @@ class LSattr_html_select_list extends LSattr_html{
}
$obj = new $val['object_type']();
if($val['scope']) {
$param=array('scope' => $this -> config['html_options']['possible_values']['scope']);
$param=array('scope' => $val['scope']);
}
else {
$param=array();
}
$param['attributes'] = getFieldInFormat($val['display_attribute']);
$param['attributes'] = getFieldInFormat($val['display_name_format']);
if ($val['value_attribute']!='dn') {
$param['attributes'][] = $val['value_attribute'];
}
$list = $obj -> search($val['filter'],$this -> config['html_options']['possible_values']['basedn'],$param);
$list = $obj -> search($val['filter'],$val['basedn'],$param);
if(($val['value_attribute']=='dn')||($val['value_attribute']=='%{dn}')) {
for($i=0;$i<count($list);$i++) {
$retInfos[$list[$i]['dn']]=getFData($val['display_attribute'],$list[$i]['attrs']);
$retInfos[$list[$i]['dn']]=getFData($val['display_name_format'],$list[$i]['attrs']);
}
}
else {
@ -108,7 +123,7 @@ class LSattr_html_select_list extends LSattr_html{
if(is_array($key)) {
$key = $key[0];
}
$retInfos[$key]=getFData($val['display_attribute'],$list[$i]['attrs']);
$retInfos[$key]=getFData($val['display_name_format'],$list[$i]['attrs']);
}
}
}

View file

@ -143,7 +143,7 @@ class LSattr_html_select_object extends LSattr_html{
$obj = new $conf['object_type']();
foreach($DNs as $dn) {
if($obj -> loadData($dn)) {
$retInfos[$dn] = $obj -> getDisplayName($conf['display_attribute']);
$retInfos[$dn] = $obj -> getDisplayName($conf['display_name_format']);
}
}
}
@ -157,7 +157,7 @@ class LSattr_html_select_object extends LSattr_html{
if ($filter!='') {
$filter='(|'.$filter.')';
$obj = new $conf['object_type']();
$listobj = $obj -> listObjectsName($filter,NULL,array(),$conf['display_attribute']);
$listobj = $obj -> listObjectsName($filter,NULL,array(),$conf['display_name_format']);
foreach($listobj as $dn => $name) {
$DNs[]=$dn;
$retInfos[$dn] = $name;

View file

@ -24,9 +24,20 @@
/**
* Element select d'un formulaire pour LdapSaisie
*
* Cette classe définis les éléments select des formulaires.
* Elle étant la classe basic LSformElement.
* Cette classe définis les éléments select des formulaires.
* Elle étant la classe basic LSformElement.
*
* Options HTML :
* // *************************************
* 'html_options' => array (
* selectable_object => array (
* 'object_type' => '[Type d'LSobject selectionnable]',
* 'display_name_format' => '[LSformat du nom d'affichage des LSobjects]',
* 'value_attribute' => '[LSformat de la valeur clé référant à un LSobject donnée]'
* )
* ),
* // *************************************
*
* @author Benjamin Renard <brenard@easter-eggs.com>
*/
@ -144,7 +155,7 @@ class LSformElement_select_object extends LSformElement {
if (is_array($this -> params['html_options']['selectable_object'])) {
if (LSsession :: loadLSobject($this -> params['html_options']['selectable_object']['object_type'])) {
$obj = new $this -> params['html_options']['selectable_object']['object_type']();
$ret = $obj -> getSelectArray($pattern,NULL,$this -> params['html_options']['selectable_object']['display_attribute']);
$ret = $obj -> getSelectArray($pattern,NULL,$this -> params['html_options']['selectable_object']['display_name_format']);
if (is_array($ret)) {
return $ret;
}