diff --git a/CRM/TwingleCampaign/BAO/Configuration.php b/CRM/TwingleCampaign/BAO/Configuration.php index 526d49e..d6cdf92 100644 --- a/CRM/TwingleCampaign/BAO/Configuration.php +++ b/CRM/TwingleCampaign/BAO/Configuration.php @@ -7,6 +7,7 @@ class CRM_TwingleCampaign_BAO_Configuration { 'twingle_api_key', 'twinglecampaign_xcm_profile', 'twinglecampaign_start_case', + 'twinglecampaign_soft_credits' ]; @@ -17,13 +18,19 @@ class CRM_TwingleCampaign_BAO_Configuration { * Expects an array with key => value for the setting */ public static function set(array $settings) { + + // Set twinglecampaign_soft_credits to '0' if checkbox is unchecked + if (!array_key_exists('twinglecampaign_soft_credits', $settings)) { + Civi::settings()->set('twinglecampaign_soft_credits', 0); + } + Civi::settings()->add($settings); } /** * Returns a specific value of a setting if the key is passed as parameter. - * Else all settings will be returned als associative array. + * Else all settings will be returned as associative array. * * @param null $key * The name of the setting or NULL @@ -31,7 +38,7 @@ class CRM_TwingleCampaign_BAO_Configuration { * @return array|mixed|null */ public static function get($key = NULL) { - if ($key) { + if (!is_null($key)) { return Civi::settings()->get($key); } else { diff --git a/CRM/TwingleCampaign/Form/Settings.php b/CRM/TwingleCampaign/Form/Settings.php index 3cad412..c06ddcb 100644 --- a/CRM/TwingleCampaign/Form/Settings.php +++ b/CRM/TwingleCampaign/Form/Settings.php @@ -35,6 +35,13 @@ class CRM_TwingleCampaign_Form_Settings extends CRM_Core_Form { ['class' => 'crm-select2 huge'] ); + $this->addElement( + 'checkbox', + 'twinglecampaign_soft_credits', + E::ts('Create soft credits for event initiators'), + FALSE + ); + $this->addButtons([ [ 'type' => 'submit', diff --git a/CRM/TwingleCampaign/Utils/APIWrapper.php b/CRM/TwingleCampaign/Utils/APIWrapper.php index bec1b26..5ceb88e 100644 --- a/CRM/TwingleCampaign/Utils/APIWrapper.php +++ b/CRM/TwingleCampaign/Utils/APIWrapper.php @@ -1,6 +1,7 @@ getApiRequestSig(); - if ($request == '3.twingledonation.submit') { + if ( + $request == '3.twingledonation.submit' && + Configuration::get('twinglecampaign_soft_credits') + ) { $response = $event->getResponse(); diff --git a/templates/CRM/TwingleCampaign/Form/Settings.tpl b/templates/CRM/TwingleCampaign/Form/Settings.tpl index 0669bd8..0954591 100644 --- a/templates/CRM/TwingleCampaign/Form/Settings.tpl +++ b/templates/CRM/TwingleCampaign/Form/Settings.tpl @@ -21,6 +21,11 @@