diff --git a/CRM/TwingleCampaign/Utils/StringOperations.php b/CRM/TwingleCampaign/Utils/StringOperations.php new file mode 100644 index 0000000..b737c70 --- /dev/null +++ b/CRM/TwingleCampaign/Utils/StringOperations.php @@ -0,0 +1,55 @@ + 1) { + $lastname = array_pop($names); + $test = $names[count($names) - 1]; + $lastnamePrefixes = ['da', 'de', 'der', 'van', 'von']; + if (in_array($test, $lastnamePrefixes)) { + if ($test == 'der' && + $names[count($names) - 2] == 'van' || + $names[count($names) - 2] == 'von' + ) { + $lastname = implode(' ', array_splice($names, -2)) + . ' ' . $lastname; + } + else { + array_pop($names); + $lastname = $test . ' ' . $lastname; + } + } + $firstnames = implode(" ", $names); + return ['firstnames' => $firstnames, 'lastname' => $lastname]; + } + return $string; + } +} \ No newline at end of file