From 36a756e4dd599ed3613b7d575514903f97dd9271 Mon Sep 17 00:00:00 2001 From: Jens Schuppe Date: Thu, 4 Jun 2020 14:21:06 +0200 Subject: [PATCH] [#28] Add parameter for preferred language and pass to XCM --- CRM/Twingle/Submission.php | 8 ++++++++ api/v3/TwingleDonation/Submit.php | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/CRM/Twingle/Submission.php b/CRM/Twingle/Submission.php index ddd239e..bf8efd0 100644 --- a/CRM/Twingle/Submission.php +++ b/CRM/Twingle/Submission.php @@ -177,6 +177,14 @@ class CRM_Twingle_Submission { } } + // Prepare values: language. + if (!empty($contact_data['preferred_language'])) { + $mapping = CRM_Core_I18n_PseudoConstant::longForShortMapping(); + // Override the default mapping for German. + $mapping['de'] = 'de_DE'; + $contact_data['preferred_language'] = $mapping[$contact_data['preferred_language']]; + } + // Pass to XCM. $contact_data['contact_type'] = $contact_type; $contact = civicrm_api3('Contact', 'getorcreate', $contact_data); diff --git a/api/v3/TwingleDonation/Submit.php b/api/v3/TwingleDonation/Submit.php index 5856996..de8fee4 100644 --- a/api/v3/TwingleDonation/Submit.php +++ b/api/v3/TwingleDonation/Submit.php @@ -224,6 +224,13 @@ function _civicrm_api3_twingle_donation_Submit_spec(&$params) { 'api.required' => 0, 'description' => E::ts('The company of the contact.'), ); + $params['user_extrafield'] = array( + 'name' => 'user_language', + 'title' => E::ts('Language'), + 'type' => CRM_Utils_Type::T_STRING, + 'api.required' => 0, + 'description' => E::ts('The preferred language of the contact. A 2-digit ISO-639-1 language code.'), + ); $params['user_extrafield'] = array( 'name' => 'user_extrafield', 'title' => E::ts('User extra field'), @@ -376,6 +383,7 @@ function civicrm_api3_twingle_donation_Submit($params) { 'user_birthdate' => 'birth_date', 'user_email' => 'email', 'user_telephone' => 'phone', + 'user_language' => 'preferred_language', 'user_title' => 'formal_title', 'debit_iban' => 'iban', ) as $contact_param => $contact_component) {