diff --git a/CRM/TwingleCampaign/BAO/TwingleCampaign.php b/CRM/TwingleCampaign/BAO/TwingleCampaign.php index 5d1753e..31a3c65 100644 --- a/CRM/TwingleCampaign/BAO/TwingleCampaign.php +++ b/CRM/TwingleCampaign/BAO/TwingleCampaign.php @@ -134,23 +134,29 @@ class CRM_TwingleCampaign_BAO_TwingleCampaign { if ($parent_campaign_type_id == $twingle_project_campaign_type_id) { $this->values['parent_project_id'] = $parent_id; - // Get custom field name for twingle_project_page field + // Get custom field names for twingle_project_page and + // twingle_project_url fields $cf_page = ExtensionCache::getInstance() ->getCustomFieldMapping('twingle_project_page'); + $cf_url = ExtensionCache::getInstance() + ->getCustomFieldMapping('twingle_project_url'); - // Extract twingle_project_page url from parent_campaign - if ($parent_campaign[$cf_page]) { + // Try to extract twingle_project_url from parent_campaign + if (!empty($parent_campaign[$cf_url])) { + $this->values['parent_project_url'] = $parent_campaign[$cf_url]; + } + // If there is no twingle_project_url use the parent_project_page instead + elseif (!empty($parent_campaign[$cf_page])) { $this->values['parent_project_url'] = $parent_campaign[$cf_page]; } - - // If twingle_project_widget value is missing, try a synchronization + // If both values are missing, try a synchronization else { $parent_campaign = civicrm_api3('TwingleProject', 'sync', ['id' => $parent_id]); - // Now try again to extract the twingle_project_widget url + // Now try again to extract the twingle_project_page url if ($parent_campaign[$cf_url]) { - $this->values['parent_project_url'] = $parent_campaign[$cf_url]; + $this->values['parent_project_url'] = $parent_campaign[$cf_page]; } // If twingle_project_widget value is still missing, show an alert on diff --git a/CRM/TwingleCampaign/resources/campaigns.json b/CRM/TwingleCampaign/resources/campaigns.json index 0b10c29..672ef9e 100644 --- a/CRM/TwingleCampaign/resources/campaigns.json +++ b/CRM/TwingleCampaign/resources/campaigns.json @@ -140,7 +140,7 @@ "html_type": "TextArea", "text_length": 600, "is_active": 1, - "is_view": 0, + "is_view": 1, "weight": 1 }, "twingle_project_widget": { diff --git a/api/v3/TwingleForm/Create.php b/api/v3/TwingleForm/Create.php index dd7f526..131b44e 100644 --- a/api/v3/TwingleForm/Create.php +++ b/api/v3/TwingleForm/Create.php @@ -18,8 +18,8 @@ function _civicrm_api3_twingle_form_Create_spec(array &$spec) { 'api.required' => 1, 'description' => E::ts('ID of the TwingleProject campaign'), ]; - $spec['page'] = [ - 'name' => 'page', + $spec['url'] = [ + 'name' => 'url', 'title' => E::ts('TwingleProject Page URL'), 'type' => CRM_Utils_Type::T_STRING, 'api.required' => 1, diff --git a/api/v3/TwingleProject/Create.php b/api/v3/TwingleProject/Create.php index 19bfb3f..0944984 100644 --- a/api/v3/TwingleProject/Create.php +++ b/api/v3/TwingleProject/Create.php @@ -49,9 +49,9 @@ function _civicrm_api3_twingle_project_Create_spec(array &$spec) { 'api.required' => 0, 'description' => E::ts('Financial Target of a Project'), ]; - $spec['page'] = [ - 'name' => 'page', - 'title' => E::ts('Project Page'), + $spec['url'] = [ + 'name' => 'url', + 'title' => E::ts('TwingleProject Page URL'), 'type' => CRM_Utils_Type::T_STRING, 'api.required' => 0, 'description' => E::ts('The URL of the TwingleProject page'),