de.forumzfd.twinglecampaign/CRM/TwingleCampaign/BAO/Configuration.php
2023-08-14 16:16:50 +02:00

73 lines
1.8 KiB
PHP

<?php
class CRM_TwingleCampaign_BAO_Configuration {
private static $settingsKeys = [
'twingle_api_key',
'twinglecampaign_xcm_profile',
'twinglecampaign_default_case',
'twinglecampaign_soft_credits',
'twinglecampaign_matomo_integration'
];
/**
* Stores a setting in Civi::settings
*
* @param array $settings
* Expects an array with key => value for the setting
*/
public static function set(array $settings) {
// Remove possibly illegal data from settings
$settings = array_intersect_key($settings, array_flip(self::$settingsKeys));
// 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);
}
// Set twinglecampaign_matomo_integration to '0' if checkbox is unchecked
if (!array_key_exists('twinglecampaign_matomo_integration', $settings)) {
Civi::settings()->set('twinglecampaign_matomo_integration', 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 as associative array.
*
* @param null $key
* The name of the setting or NULL
*
* @return array|mixed|null
*/
public static function get($key = NULL) {
if (!is_null($key)) {
return Civi::settings()->get($key);
}
else {
$settings = [];
foreach (self::$settingsKeys as $key) {
$settings[$key] = Civi::settings()->get($key);
}
return $settings;
}
}
/**
* Delete all settings of the TwingleCampaign extension
*/
public static function deleteAll() {
foreach (self::$settingsKeys as $key) {
Civi::settings()->set($key, NULL);
}
}
}