More del() deprecations in favour of standard deleteRecord()
authorAidan Saunders <aidan.saunders@squiffle.uk>
Mon, 21 Nov 2022 11:09:56 +0000 (11:09 +0000)
committerAidan Saunders <aidan.saunders@squiffle.uk>
Tue, 22 Nov 2022 12:35:13 +0000 (12:35 +0000)
CRM/Core/BAO/Extension.php
CRM/Core/BAO/UFGroup.php
CRM/Core/BAO/Website.php
CRM/Member/BAO/MembershipLog.php

index 6c12a5139e03d23f1f0b5f86bb94ced7644c3d00..351db0f8b18c5ba4078b88df3c2d376103ba9dd5 100644 (file)
@@ -44,11 +44,11 @@ class CRM_Core_BAO_Extension extends CRM_Core_DAO_Extension {
    *   Id of the extension to be deleted.
    *
    * @return mixed
+   *
+   * @deprecated
    */
   public static function del($id) {
-    $extension = new CRM_Core_DAO_Extension();
-    $extension->id = $id;
-    return $extension->delete();
+    return (bool) static::deleteRecord(['id' => $id]);
   }
 
   /**
index bd55d33c1a455dd20e61fcd4e9318e6f107565b3..6987ebbff22ef7fdc972d5050f101cbdebbc5b8e 100644 (file)
@@ -18,7 +18,7 @@
 /**
  * UF group BAO class.
  */
-class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
+class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup implements \Civi\Core\HookInterface {
 
   const PUBLIC_VISIBILITY = 1,
     ADMIN_VISIBILITY = 2,
@@ -1400,30 +1400,33 @@ class CRM_Core_BAO_UFGroup extends CRM_Core_DAO_UFGroup {
    *
    * @return bool
    *
+   * @deprecated
    */
   public static function del($id) {
-    CRM_Utils_Hook::pre('delete', 'UFGroup', $id);
+    return (bool) static::deleteRecord(['id' => $id]);
+  }
 
-    //check whether this group contains  any profile fields
-    $profileField = new CRM_Core_DAO_UFField();
-    $profileField->uf_group_id = $id;
-    $profileField->find();
-    while ($profileField->fetch()) {
-      CRM_Core_BAO_UFField::del($profileField->id);
+  /**
+   * Callback for hook_civicrm_pre().
+   * @param \Civi\Core\Event\PreEvent $event
+   * @throws CRM_Core_Exception
+   */
+  public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) {
+    if ($event->action === 'delete' && $event->id) {
+      // Check whether this group contains any profile fields
+      $profileField = new CRM_Core_DAO_UFField();
+      $profileField->uf_group_id = $event->id;
+      $profileField->find();
+      while ($profileField->fetch()) {
+        CRM_Core_BAO_UFField::deleteRecord(['id' => $profileField->id]);
+      }
+
+      // Delete records from uf join table
+      // Should probably use a deleteRecord rather than direct delete
+      $ufJoin = new CRM_Core_DAO_UFJoin();
+      $ufJoin->uf_group_id = $event->id;
+      $ufJoin->delete();
     }
-
-    //delete records from uf join table
-    $ufJoin = new CRM_Core_DAO_UFJoin();
-    $ufJoin->uf_group_id = $id;
-    $ufJoin->delete();
-
-    //delete profile group
-    $group = new CRM_Core_DAO_UFGroup();
-    $group->id = $id;
-    $group->delete();
-
-    CRM_Utils_Hook::post('delete', 'UFGroup', $id, $group);
-    return 1;
   }
 
   /**
index 8ba619e6794abff8bce31cab38c451566766a67b..aafd8e8a5181f8d0b639507b9e29eed18e8efa47 100644 (file)
@@ -84,7 +84,7 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
         self::create($values);
       }
       elseif ($skipDelete && !empty($values['id'])) {
-        self::del($values['id']);
+        static::deleteRecord($values);
       }
     }
   }
@@ -95,21 +95,11 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
    * @param int $id
    *
    * @return bool
+   *
+   * @deprecated
    */
   public static function del($id) {
-    $obj = new self();
-    $obj->id = $id;
-    $obj->find();
-    if ($obj->fetch()) {
-      $params = [];
-      CRM_Utils_Hook::pre('delete', 'Website', $id, $params);
-      $obj->delete();
-    }
-    else {
-      return FALSE;
-    }
-    CRM_Utils_Hook::post('delete', 'Website', $id, $obj);
-    return TRUE;
+    return (bool) static::deleteRecord(['id' => $id]);
   }
 
   /**
index d7fc4f616606875e223a68d88b5eeef92a81e78f..16de09f4eade30fc7b215c87f4b8d7d36ce8960b 100644 (file)
@@ -35,14 +35,14 @@ class CRM_Member_BAO_MembershipLog extends CRM_Member_DAO_MembershipLog {
   /**
    * Delete membership log record.
    *
-   * @param int $membershipID
+   * @param int $id
    *
    * @return mixed
+   *
+   * @deprecated
    */
-  public static function del($membershipID) {
-    $membershipLog = new CRM_Member_DAO_MembershipLog();
-    $membershipLog->membership_id = $membershipID;
-    return $membershipLog->delete();
+  public static function del($id) {
+    return (bool) static::deleteRecord(['id' => $id]);
   }
 
   /**