- 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( 'html_options' => array(
'selectable_object' => array( 'selectable_object' => array(
'object_type' => 'LSeepeople', // Nom de l'objet à lister 'object_type' => 'LSeepeople', // Nom de l'objet à lister
'display_attribute' => '%{cn} (%{uidNumber})', // Spécifie le attributs à lister pour le choix, 'display_name_format' => '%{cn} (%{uidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'select_display_attrs' // si non définie => utilisation du 'display_name_format'
// de la définition de l'objet // de la définition de l'objet
'value_attribute' => 'dn', // Spécifie le attributs dont la valeur sera retournée par '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 ( 'html_options' => array (
'selectable_object' => array( 'selectable_object' => array(
'object_type' => 'LSeepeople', 'object_type' => 'LSeepeople',
'value_attribute' => '%{dn}' 'value_attribute' => 'dn'
), ),
), ),
'validation' => array ( 'validation' => array (

View file

@ -272,8 +272,8 @@ $GLOBALS['LSobjects']['LSeepeople'] = array (
'possible_values' => array( 'possible_values' => array(
'OTHER_OBJECT' => array( 'OTHER_OBJECT' => array(
'object_type' => 'LSeegroup', // Nom de l'objet à lister 'object_type' => 'LSeegroup', // Nom de l'objet à lister
'display_attribute' => '%{cn} (%{gidNumber})', // Spécifie le attributs à lister pour le choix, 'display_name_format' => '%{cn} (%{gidNumber})', // Spécifie le attributs à lister pour le choix,
// si non définie => utilisation du 'select_display_attrs' // si non définie => utilisation du 'display_name_format'
// de la définition de l'objet // de la définition de l'objet
'value_attribute' => 'gidNumber', // Spécifie le attributs dont la valeur sera retournée par '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 * 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> * @author Benjamin Renard <brenard@easter-eggs.com>
*/ */
class LSattr_html_select_list extends LSattr_html{ class LSattr_html_select_list extends LSattr_html{
@ -72,7 +87,7 @@ class LSattr_html_select_list extends LSattr_html{
*/ */
function getPossibleValues() { function getPossibleValues() {
$retInfos = array(); $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) { foreach($this -> config['html_options']['possible_values'] as $val_name => $val) {
if($val_name=='OTHER_OBJECT') { if($val_name=='OTHER_OBJECT') {
if ((!isset($val['object_type'])) || (!isset($val['value_attribute']))) { 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'](); $obj = new $val['object_type']();
if($val['scope']) { if($val['scope']) {
$param=array('scope' => $this -> config['html_options']['possible_values']['scope']); $param=array('scope' => $val['scope']);
} }
else { else {
$param=array(); $param=array();
} }
$param['attributes'] = getFieldInFormat($val['display_attribute']); $param['attributes'] = getFieldInFormat($val['display_name_format']);
if ($val['value_attribute']!='dn') { if ($val['value_attribute']!='dn') {
$param['attributes'][] = $val['value_attribute']; $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}')) { if(($val['value_attribute']=='dn')||($val['value_attribute']=='%{dn}')) {
for($i=0;$i<count($list);$i++) { 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 { else {
@ -108,7 +123,7 @@ class LSattr_html_select_list extends LSattr_html{
if(is_array($key)) { if(is_array($key)) {
$key = $key[0]; $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'](); $obj = new $conf['object_type']();
foreach($DNs as $dn) { foreach($DNs as $dn) {
if($obj -> loadData($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!='') { if ($filter!='') {
$filter='(|'.$filter.')'; $filter='(|'.$filter.')';
$obj = new $conf['object_type'](); $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) { foreach($listobj as $dn => $name) {
$DNs[]=$dn; $DNs[]=$dn;
$retInfos[$dn] = $name; $retInfos[$dn] = $name;

View file

@ -24,9 +24,20 @@
/** /**
* Element select d'un formulaire pour LdapSaisie * Element select d'un formulaire pour LdapSaisie
* *
* Cette classe définis les éléments select des formulaires. * Cette classe définis les éléments select des formulaires.
* Elle étant la classe basic LSformElement. * 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> * @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 (is_array($this -> params['html_options']['selectable_object'])) {
if (LSsession :: loadLSobject($this -> params['html_options']['selectable_object']['object_type'])) { if (LSsession :: loadLSobject($this -> params['html_options']['selectable_object']['object_type'])) {
$obj = new $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)) { if (is_array($ret)) {
return $ret; return $ret;
} }