From 7e08c075f41a63d57699295d4f1dad687ac19aa8 Mon Sep 17 00:00:00 2001 From: Mathieu Lu Date: Tue, 25 Jul 2023 15:34:08 -0400 Subject: [PATCH] hook_civicrm_copy: Pass the original id when available --- CRM/Contribute/BAO/ContributionPage.php | 2 +- CRM/Core/BAO/Job.php | 2 +- CRM/Core/BAO/UFGroup.php | 2 +- CRM/Event/BAO/Event.php | 2 +- CRM/Price/BAO/PriceSet.php | 2 +- CRM/Utils/Hook.php | 8 +++++--- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CRM/Contribute/BAO/ContributionPage.php b/CRM/Contribute/BAO/ContributionPage.php index 94aeb05556..bca1fb59b1 100644 --- a/CRM/Contribute/BAO/ContributionPage.php +++ b/CRM/Contribute/BAO/ContributionPage.php @@ -711,7 +711,7 @@ WHERE entity_table = 'civicrm_contribution_page' $copy->save(); - CRM_Utils_Hook::copy('ContributionPage', $copy); + CRM_Utils_Hook::copy('ContributionPage', $copy, $id); return $copy; } diff --git a/CRM/Core/BAO/Job.php b/CRM/Core/BAO/Job.php index c281bf8a71..57b1691aa1 100644 --- a/CRM/Core/BAO/Job.php +++ b/CRM/Core/BAO/Job.php @@ -112,7 +112,7 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job { ]; $copy = CRM_Core_DAO::copyGeneric('CRM_Core_DAO_Job', ['id' => $id], NULL, $fieldsFix); $copy->save(); - CRM_Utils_Hook::copy('Job', $copy); + CRM_Utils_Hook::copy('Job', $copy, $id); return $copy; } diff --git a/CRM/Core/BAO/UFGroup.php b/CRM/Core/BAO/UFGroup.php index e3962a6083..be15fb87a9 100644 --- a/CRM/Core/BAO/UFGroup.php +++ b/CRM/Core/BAO/UFGroup.php @@ -2648,7 +2648,7 @@ AND ( entity_id IS NULL OR entity_id <= 0 ) $params = [1 => [$copy->id, 'Integer']]; CRM_Core_DAO::executeQuery($query, $params); } - CRM_Utils_Hook::copy('UFGroup', $copy); + CRM_Utils_Hook::copy('UFGroup', $copy, $id); return $copy; } diff --git a/CRM/Event/BAO/Event.php b/CRM/Event/BAO/Event.php index 3875bc5e04..c97e3554c6 100644 --- a/CRM/Event/BAO/Event.php +++ b/CRM/Event/BAO/Event.php @@ -1017,7 +1017,7 @@ WHERE civicrm_event.is_active = 1 } CRM_Utils_System::flushCache(); - CRM_Utils_Hook::copy('Event', $copyEvent); + CRM_Utils_Hook::copy('Event', $copyEvent, $id); return $copyEvent; } diff --git a/CRM/Price/BAO/PriceSet.php b/CRM/Price/BAO/PriceSet.php index 410867551a..5785d955ba 100644 --- a/CRM/Price/BAO/PriceSet.php +++ b/CRM/Price/BAO/PriceSet.php @@ -1060,7 +1060,7 @@ WHERE id = %1"; } $copy->save(); - CRM_Utils_Hook::copy('Set', $copy); + CRM_Utils_Hook::copy('Set', $copy, $id); unset(\Civi::$statics['CRM_Core_PseudoConstant']); return $copy; } diff --git a/CRM/Utils/Hook.php b/CRM/Utils/Hook.php index 5e6005b77b..f2e0532190 100644 --- a/CRM/Utils/Hook.php +++ b/CRM/Utils/Hook.php @@ -993,13 +993,15 @@ abstract class CRM_Utils_Hook { * Name of the object. * @param object $object * Reference to the copy. + * @param int $original_id + * Original entity ID. * * @return null */ - public static function copy($objectName, &$object) { + public static function copy($objectName, &$object, $original_id = NULL) { $null = NULL; - return self::singleton()->invoke(['objectName', 'object'], $objectName, $object, - $null, $null, $null, $null, + return self::singleton()->invoke(['objectName', 'object'], $objectName, $object, $original_id, + $null, $null, $null, 'civicrm_copy' ); } -- 2.25.1