From 108d2c95866cc80447911a5ffe909ca8e1f11f3b Mon Sep 17 00:00:00 2001 From: Marc Michalsky Date: Mon, 4 Oct 2021 09:37:19 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=BE=20bug=20fix:=20cid=20changes=20whe?= =?UTF-8?q?n=20updating=20TwingleCampaing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CRM/TwingleCampaign/BAO/TwingleCampaign.php | 27 +++++++-------------- 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/CRM/TwingleCampaign/BAO/TwingleCampaign.php b/CRM/TwingleCampaign/BAO/TwingleCampaign.php index ca9af4f..1c035b9 100644 --- a/CRM/TwingleCampaign/BAO/TwingleCampaign.php +++ b/CRM/TwingleCampaign/BAO/TwingleCampaign.php @@ -17,32 +17,31 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { private $values; - /** * ## TwingleCampaign constructor * - * @param array|null $values - * @param int|null $id + * @param array $values * * @throws \CiviCRM_API3_Exception */ - public function __construct(array $values = [], int $id = NULL) { + public function __construct(array $values = []) { $this->prefix = 'twingle_campaign_'; - $this->id = $id ?? NULL; + $this->id = $values['id'] ?? NULL; $this->values['campaign_type_id'] = 'twingle_campaign'; + if ($this->id != NULL) { + $this->fetch($this->id); + } $this->update($values); + $this->getParentProject(); if (!isset($this->values['cid'])) { $this->createCid(); } $this->createUrl(); - - } - /** * ## Create TwingleCampaign * Create this TwingleCampaign as a campaign in CiviCRM @@ -69,19 +68,17 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { } } - /** * ## Fetch TwingleCampaign * Populate this instance with values from an existing TwingleCampaign. * * @throws CiviCRM_API3_Exception */ - public function fetch() { + public function fetch(int $id) { $this->values = civicrm_api3('TwingleCampaign', 'getsingle', - ['id' => $this->id]); + ['id' => $id]); } - /** * ## Get Parent Project * Determines the id of the parent TwingleProject. If there is no parent @@ -128,7 +125,6 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { } } - // Set parent_project_id and retrieve parent_project_url if ($parent_campaign_type_id == $twingle_project_campaign_type_id) { $this->values['parent_project_id'] = $parent_id; @@ -205,7 +201,6 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { $this->values['parent_project_url'] . '?tw_cid=' . $this->values['cid']; } - /** * */ @@ -214,7 +209,6 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { $this->values['cid'] = uniqid(); } - /** * ## Translate field names and custom field names * @@ -283,7 +277,6 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { } } - /** * ## Delete TwingleCampaign * Deletes this TwingleCampaign from CiviCRM @@ -303,7 +296,6 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { } } - /** * ## Get a response * Get a response that describes the status of this TwingleCampaign instance. @@ -380,5 +372,4 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { return (int) $this->id; } - } \ No newline at end of file