CRM-14707 - CRM_Core_BAO_Cache::setItem - Don't fire hooks
authorTim Otten <totten@civicrm.org>
Wed, 16 Sep 2015 04:41:23 +0000 (21:41 -0700)
committerTim Otten <totten@civicrm.org>
Thu, 17 Sep 2015 22:49:32 +0000 (15:49 -0700)
CRM/Core/BAO/Cache.php
CRM/Core/DAO.php

index d6eb3d39ef9065bb79b020706f8d02189d01af5f..cb504ed9dd55e261fd3c0173f54116f17f31a5fa 100644 (file)
@@ -161,7 +161,7 @@ class CRM_Core_BAO_Cache extends CRM_Core_DAO_Cache {
     $dao->find(TRUE);
     $dao->data = serialize($data);
     $dao->created_date = date('YmdHis');
-    $dao->save();
+    $dao->save(FALSE);
 
     $lock->release();
 
index e139a3d9fa1d9b0eac9847b45cf13f7624e8ab37..baa3033c9d862d25ff756b9e1143d61144072f2c 100644 (file)
@@ -433,22 +433,28 @@ class CRM_Core_DAO extends DB_DataObject {
   /**
    * @return $this
    */
-  public function save() {
+  public function save($hook = TRUE) {
     if (!empty($this->id)) {
       $this->update();
 
-      $event = new \Civi\Core\DAO\Event\PostUpdate($this);
-      \Civi::service('dispatcher')->dispatch("DAO::post-update", $event);
+      if ($hook) {
+        $event = new \Civi\Core\DAO\Event\PostUpdate($this);
+        \Civi::service('dispatcher')->dispatch("DAO::post-update", $event);
+      }
     }
     else {
       $this->insert();
 
-      $event = new \Civi\Core\DAO\Event\PostUpdate($this);
-      \Civi::service('dispatcher')->dispatch("DAO::post-insert", $event);
+      if ($hook) {
+        $event = new \Civi\Core\DAO\Event\PostUpdate($this);
+        \Civi::service('dispatcher')->dispatch("DAO::post-insert", $event);
+      }
     }
     $this->free();
 
-    CRM_Utils_Hook::postSave($this);
+    if ($hook) {
+      CRM_Utils_Hook::postSave($this);
+    }
 
     return $this;
   }