LSldapObject : fix onModify triggers execution
authorBenjamin Renard <brenard@easter-eggs.com>
Thu, 22 Mar 2012 18:51:27 +0000 (19:51 +0100)
committerBenjamin Renard <brenard@easter-eggs.com>
Thu, 22 Mar 2012 18:51:27 +0000 (19:51 +0100)
public_html/includes/class/class.LSldapObject.php

index d6f6e93..d5ee557 100644 (file)
@@ -341,13 +341,24 @@ class LSldapObject {
       
       // $this -> attrs[ {inNewData} ] -> fireEvent('before_modify')
       foreach($new_data as $attr_name => $attr_val) {
-        if (!$this -> attrs[$attr_name] -> fireEvent('before_modify')) {
+        if ($this -> attrs[$attr_name] -> isUpdate() && !$this -> attrs[$attr_name] -> fireEvent('before_modify')) {
           return;
         }
       }
       
       if ($this -> submitChange($idForm)) {
         LSdebug('Les modifications sont submitées');
+        // Event After Modify
+        if(!$this -> submitError) {
+          $this -> fireEvent('after_modify');
+        }
+
+        // $this -> attrs[*] => After Modify
+        foreach($new_data as $attr_name => $attr_val) {
+          if ($this -> attrs[$attr_name] -> isUpdate()) {
+            $this -> attrs[$attr_name] -> fireEvent('after_modify');
+          }
+        }
         $this -> submitError = false;
         $this -> reloadData();
         $this -> refreshForm($idForm);
@@ -355,16 +366,7 @@ class LSldapObject {
       else {
         return;
       }
-      
-      // Event After Modify
-      if(!$this -> submitError) {
-        $this -> fireEvent('after_modify');
-      }
-      
-      // $this -> attrs[*] => After Modify
-      foreach($new_data as $attr_name => $attr_val) {
-        $this -> attrs[$attr_name] -> fireEvent('after_modify');
-      }
+
       return true;
     }
     else {