From 954e443e18fb6353900ad4036f5e0bd8e6429c5a Mon Sep 17 00:00:00 2001 From: Mathieu Lutfy Date: Thu, 27 Jan 2022 15:00:01 -0500 Subject: [PATCH] dev/translation#38 Fix multilingual triggers for when fields default to an empty string --- CRM/Core/I18n/Schema.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CRM/Core/I18n/Schema.php b/CRM/Core/I18n/Schema.php index 9336a0e436..e000811f52 100644 --- a/CRM/Core/I18n/Schema.php +++ b/CRM/Core/I18n/Schema.php @@ -522,19 +522,19 @@ class CRM_Core_I18n_Schema { $trigger = []; foreach ($hash as $column => $_) { - $trigger[] = "IF NEW.{$column}_{$locale} IS NOT NULL THEN"; + $trigger[] = "IF NEW.{$column}_{$locale} IS NOT NULL AND NEW.{$column}_{$locale} != '' THEN"; foreach ($locales as $old) { - $trigger[] = "IF NEW.{$column}_{$old} IS NULL THEN SET NEW.{$column}_{$old} = NEW.{$column}_{$locale}; END IF;"; + $trigger[] = "IF NEW.{$column}_{$old} IS NULL OR NEW.{$column}_{$old} = '' THEN SET NEW.{$column}_{$old} = NEW.{$column}_{$locale}; END IF;"; } foreach ($locales as $old) { - $trigger[] = "ELSEIF NEW.{$column}_{$old} IS NOT NULL THEN"; + $trigger[] = "ELSEIF NEW.{$column}_{$old} IS NOT NULL AND NEW.{$column}_{$old} != '' THEN"; foreach (array_merge($locales, [ $locale, ]) as $loc) { if ($loc == $old) { continue; } - $trigger[] = "IF NEW.{$column}_{$loc} IS NULL THEN SET NEW.{$column}_{$loc} = NEW.{$column}_{$old}; END IF;"; + $trigger[] = "IF NEW.{$column}_{$loc} IS NULL OR NEW.{$column}_{$loc} = '' THEN SET NEW.{$column}_{$loc} = NEW.{$column}_{$old}; END IF;"; } } $trigger[] = 'END IF;'; -- 2.25.1