- LSattr_html_select_object : Correction d'un bug dans la méthode getValue()
authorBenjamin Renard <brenard@easter-eggs.com>
Mon, 6 Oct 2008 14:53:32 +0000 (14:53 +0000)
committerBenjamin Renard <brenard@easter-eggs.com>
Mon, 6 Oct 2008 14:53:32 +0000 (14:53 +0000)
- Lattribute : Correction d'un bug dans la méthode getFormVal()

trunk/includes/class/class.LSattr_html_select_object.php
trunk/includes/class/class.LSattribute.php

index 30bed0a..7ce6c5a 100644 (file)
@@ -91,7 +91,7 @@ class LSattr_html_select_object extends LSattr_html{
         return;
       }
       
-      if (is_array($values)) {
+      if ((is_array($values))&&(!empty($values))) {
         if(($conf['value_attribute']=='dn')||($conf['value_attribute']=='%{dn}')) {
           $list=array();
           foreach($values as $dn) {
@@ -102,13 +102,20 @@ class LSattr_html_select_object extends LSattr_html{
           }
         }
         else {
-          $filter='(|';
+          $filter='';
           foreach($values as $val) {
-            $filter.='('.$conf['value_attribute'].'='.$val.')';
+            if (!empty($val)) {
+              $filter.='('.$conf['value_attribute'].'='.$val.')';
+            }
+          }
+          if ($filter!='') {
+            $filter='(|'.$filter.')';
+            $obj = new $conf['object_type']();
+            $list = $obj -> listObjects($filter);
+          }
+          else {
+            $list=array();
           }
-          $filter.=')';
-          $obj = new $conf['object_type']();
-          $list = $obj -> listObjects($filter);
         }
         if(($conf['value_attribute']=='dn')||($conf['value_attribute']=='%{dn}')) {
           for($i=0;$i<count($list);$i++) {
index 4377f1e..253a2ee 100644 (file)
@@ -338,8 +338,9 @@ class LSattribute {
    */
   function getFormVal() {
     $data=$this -> getDisplayValue();
-    if(!is_array($data))
+    if((!is_array($data))&&($data!=NULL)) {
       $data=array($data);
+    }
     return $data;
   }