LSldapObject :: fireEvent() : Fixed notice PHP
[ldapsaisie.git] / public_html / includes / class / class.LSldapObject.php
index cf9b22a..1d223fd 100644 (file)
@@ -95,9 +95,10 @@ class LSldapObject {
     $data = LSldap :: getAttrs($dn);
     if(!empty($data)) {
       foreach($this -> attrs as $attr_name => $attr) {
-        if(!$this -> attrs[$attr_name] -> loadData($data[$attr_name]))
+        if( !$this -> attrs[$attr_name] -> loadData( (isset($data[$attr_name])?$data[$attr_name]:NULL) ) )
           return;
       }
+      $this->cache=array();
       return true;
     }
     return;
@@ -113,7 +114,7 @@ class LSldapObject {
   function reloadData() {
     $data = LSldap :: getAttrs($this -> dn);
     foreach($this -> attrs as $attr_name => $attr) {
-      if(!$this -> attrs[$attr_name] -> reloadData($data[$attr_name]))
+      if(!$this -> attrs[$attr_name] -> reloadData( (isset($data[$attr_name])?$data[$attr_name]:NULL) ))
         return;
     }
     return true;
@@ -212,9 +213,6 @@ class LSldapObject {
         }
       }      
     }
-    LSsession :: addJSconfigParam('LSform_'.$idForm,array(
-      'ajaxSubmit' => ((isset($this -> config['LSform']['ajaxSubmit']))?$this -> config['LSform']['ajaxSubmit']:1)
-    ));
     return $LSform;
   }
   
@@ -294,7 +292,7 @@ class LSldapObject {
       }
     }
     $new_data = $LSform -> exportValues();
-    return $this -> _updateData($new_data);
+    return $this -> _updateData($new_data,$idForm);
   }
 
   /**
@@ -309,7 +307,7 @@ class LSldapObject {
    * @see validateAttrsData()
    * @see submitChange()
    */ 
-  private function _updateData($new_data) {
+  private function _updateData($new_data,$idForm=null) {
     if(!is_array($new_data)) {
       return;
     }
@@ -367,9 +365,14 @@ class LSldapObject {
    *
    * @retval boolean true si les données sont valides, false sinon
    */ 
-  function validateAttrsData($idForm) {
+  function validateAttrsData($idForm=null) {
     $retval = true;
-    $LSform=$this -> forms[$idForm][0];
+    if ($idForm) {
+      $LSform=$this -> forms[$idForm][0];
+    }
+    else {
+      $LSform=false;
+    }
     foreach($this -> attrs as $attr) {
       $attr_values = $attr -> getValue();
       if (!$attr -> isValidate()) {
@@ -431,7 +434,7 @@ class LSldapObject {
 
         // Définition du message d'erreur
         if (!empty($test['msg'])) {
-          $msg_error=getFData($test['msg'],$this,'getValue');
+          $msg_error=getFData(__($test['msg']),$this,'getValue');
         }
         else {
           $msg_error=getFData(_("The attribute %{attr} is not valid."),$attr -> getLabel());
@@ -441,7 +444,7 @@ class LSldapObject {
           if((isset($test['filter'])||isset($test['basedn']))&&(isset($test['result']))) {
             $sparams=(isset($test['scope']))?array('scope' => $test['scope']):array();
             $this -> other_values['val']=$val;
-            $sfilter_user=(isset($test['basedn']))?getFData($test['filter'],$this,'getValue'):NULL;
+            $sfilter_user=(isset($test['filter']))?getFData($test['filter'],$this,'getValue'):NULL;
             if(isset($test['object_type'])) {
               $test_obj = new $test['object_type']();
               $sfilter=$test_obj->getObjectFilter();
@@ -460,13 +463,13 @@ class LSldapObject {
             $ret=LSldap :: getNumberResult ($sfilter,$sbasedn,$sparams);
             if($test['result']==0) {
               if($ret!=0) {
-                $LSform -> setElementError($attr,$msg_error);
+                if ($LSform) $LSform -> setElementError($attr,$msg_error);
                 $retval = false;
               }
             }
             else {
               if($ret<0) {
-                $LSform -> setElementError($attr,$msg_error);
+                if ($LSform) $LSform -> setElementError($attr,$msg_error);
                 $retval = false;
               }
             }
@@ -475,7 +478,7 @@ class LSldapObject {
           else if(isset($test['function'])) {
             if (function_exists($test['function'])) {
               if(!$test['function']($this)) {
-                $LSform -> setElementError($attr,$msg_error);
+                if ($LSform) $LSform -> setElementError($attr,$msg_error);
                 $retval = false;
               }
             }
@@ -1055,6 +1058,18 @@ class LSldapObject {
   }
 
   /**
+   * Ajoute une valeur dans le tableau $this -> other_values
+   *
+   * @param[in] $name string Le nom de la valeur
+   * @param[in] $value mixed La valeur
+   *
+   * @retval void
+   **/
+  function registerOtherValue($name,$value) {
+    $this -> other_values[$name]=$value;
+  }
+
+  /**
    * Retourn un tableau pour un select d'un objet du même type
    * 
    * @author Benjamin Renard <brenard@easter-eggs.com>
@@ -1062,7 +1077,7 @@ class LSldapObject {
    * @retval array('dn' => 'display')
    */
   function getSelectArray($pattern=NULL,$topDn=NULL,$displayFormat=NULL,$approx=false,$cache=true) {
-    return $this -> listObjectsName($filter,$topDn,array('pattern' => $pattern),$displayFormat,$cache);
+    return $this -> listObjectsName(NULL,$topDn,array('pattern' => $pattern),$displayFormat,$cache);
   }
 
   /**
@@ -1435,7 +1450,6 @@ class LSldapObject {
    * Retourne la valeur clef d'un objet en relation
    * 
    * @param[in] $object Un object de type $objectType
-   * @param[in] $attr L'attribut dans lequel l'objet doit apparaitre
    * @param[in] $objectType Le type d'objet en relation
    * @param[in] $value La valeur que doit avoir l'attribut :
    *                      - soit le dn (par defaut)
@@ -1443,8 +1457,8 @@ class LSldapObject {
    * 
    * @retval Mixed La valeur clef d'un objet en relation
    **/
-  function getObjectKeyValueInRelation($object,$attr,$objectType,$attrValue='dn') {
-    if ((!$attr)||(!$objectType)) {
+  function getObjectKeyValueInRelation($object,$objectType,$attrValue='dn') {
+    if (!$objectType) {
       LSerror :: addErrorCode('LSrelations_05','getObjectKeyValueInRelation');
       return;
     }
@@ -1828,7 +1842,7 @@ class LSldapObject {
     }
     
     // Binding via addEvent
-    if (is_array($this -> _events[$event])) {
+    if (isset($this -> _events[$event]) && is_array($this -> _events[$event])) {
       foreach ($this -> _events[$event] as $e) {
         if ($e['class']) {
           if (class_exists($e['class'])) {
@@ -1871,7 +1885,7 @@ class LSldapObject {
     }
     
     // Binding via addObjectEvent
-    if (is_array($this -> _objectEvents[$event])) {
+    if (isset($this -> _objectEvents[$event]) && is_array($this -> _objectEvents[$event])) {
       foreach ($this -> _objectEvents[$event] as $e) {
         if (method_exists($e['obj'],$e['meth'])) {
           try {