From 2f780b0eff8936d125ed960b1f653c2496e70f4e Mon Sep 17 00:00:00 2001 From: Aidan Saunders Date: Mon, 21 Nov 2022 11:09:56 +0000 Subject: [PATCH] More del() deprecations in favour of standard deleteRecord() --- CRM/Core/BAO/Extension.php | 6 ++--- CRM/Core/BAO/UFGroup.php | 45 +++++++++++++++++--------------- CRM/Core/BAO/Website.php | 18 +++---------- CRM/Member/BAO/MembershipLog.php | 10 +++---- 4 files changed, 36 insertions(+), 43 deletions(-) diff --git a/CRM/Core/BAO/Extension.php b/CRM/Core/BAO/Extension.php index 6c12a5139e..351db0f8b1 100644 --- a/CRM/Core/BAO/Extension.php +++ b/CRM/Core/BAO/Extension.php @@ -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]); } /** diff --git a/CRM/Core/BAO/UFGroup.php b/CRM/Core/BAO/UFGroup.php index bd55d33c1a..6987ebbff2 100644 --- a/CRM/Core/BAO/UFGroup.php +++ b/CRM/Core/BAO/UFGroup.php @@ -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; } /** diff --git a/CRM/Core/BAO/Website.php b/CRM/Core/BAO/Website.php index 8ba619e679..aafd8e8a51 100644 --- a/CRM/Core/BAO/Website.php +++ b/CRM/Core/BAO/Website.php @@ -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]); } /** diff --git a/CRM/Member/BAO/MembershipLog.php b/CRM/Member/BAO/MembershipLog.php index d7fc4f6166..16de09f4ea 100644 --- a/CRM/Member/BAO/MembershipLog.php +++ b/CRM/Member/BAO/MembershipLog.php @@ -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]); } /** -- 2.25.1