From 1bdd0bcbb2b68537c108c7899593947e9e44c1de Mon Sep 17 00:00:00 2001
From: Jeroen De Meerleer <me@jeroened.be>
Date: Mon, 24 Dec 2018 11:15:32 +0100
Subject: [PATCH] 1 update to rule them all

---
 update.php | 189 ++++++++++++-----------------------------------------
 1 file changed, 43 insertions(+), 146 deletions(-)

diff --git a/update.php b/update.php
index d608669f16..6b8dc5d9e2 100644
--- a/update.php
+++ b/update.php
@@ -292,159 +292,56 @@ function update_1288()
 }
 
 // Post-update script of PR 5751
-function update_1296()
+function update_1298()
 {
-	$translateKey = 'gender';
-	$allData = DBA::select('profile', ['id', $translateKey]);
-	$allLangs = L10n::getAvailableLanguages();
-	$success = 0;
-	$fail = 0;
-	foreach ($allData as $key => $data) {
-		$toTranslate = $data[$translateKey];
-		if ($toTranslate != '') {
-			foreach ($allLangs as $key => $lang) {
-				$a = new \stdClass();
-				$a->strings = [];
-
-				// First we get the the localizations
-				if (file_exists("view/lang/$lang/strings.php")) {
-					include "view/lang/$lang/strings.php";
-				}
-				if (file_exists("addon/morechoice/lang/$lang/strings.php")) {
-					include "addon/morechoice/lang/$lang/strings.php";
+	$keys = ['gender', 'marital', 'sexual'];
+	foreach ($keys as $translateKey) {
+		$allData = DBA::select('profile', ['id', $translateKey]);
+		$allLangs = L10n::getAvailableLanguages();
+		$success = 0;
+		$fail = 0;
+		foreach ($allData as $key => $data) {
+			$toTranslate = $data[$translateKey];
+			if ($toTranslate != '') {
+				foreach ($allLangs as $key => $lang) {
+					$a = new \stdClass();
+					$a->strings = [];
+
+					// First we get the the localizations
+					if (file_exists("view/lang/$lang/strings.php")) {
+						include "view/lang/$lang/strings.php";
+					}
+					if (file_exists("addon/morechoice/lang/$lang/strings.php")) {
+						include "addon/morechoice/lang/$lang/strings.php";
+					}
+
+					$localizedStrings = $a->strings;
+					unset($a);
+
+					$key = array_search($toTranslate, $localizedStrings);
+					if ($key !== false) {
+						break;
+					}
+
+					// defaulting to empty string
+					$key = '';
 				}
 
-				$localizedStrings = $a->strings;
-				unset($a);
-
-				$key = array_search($toTranslate, $localizedStrings);
-				if ($key !== false) {
-					break;
+				if ($key == '') {
+					$fail++;
+				} else {
+					DBA::update('profile', [$translateKey => $key], ['id' => $data['id']]);
+					logger::log('Updated contact ' . $data['id'] . " to $translateKey " . $key .
+						' (was: ' . $data[$translateKey] . ')');
+					Worker::add(PRIORITY_LOW, 'ProfileUpdate', $data['id']);		
+					Contact::updateSelfFromUserID($data['id']);
+					GContact::updateForUser($data['id']);
+					$success++;
 				}
-
-				// defaulting to empty string
-				$key = '';
-			}
-
-			if ($key == '') {
-				$fail++;
-			} else {
-				DBA::update('profile', [$translateKey => $key], ['id' => $data['id']]);
-				logger::log('Updated contact ' . $data['id'] . " to $translateKey " . $key .
-					' (was: ' . $data[$translateKey] . ')');
-				Worker::add(PRIORITY_LOW, 'ProfileUpdate', $data['id']);		
-				Contact::updateSelfFromUserID($data['id']);
-				GContact::updateForUser($data['id']);
-				$success++;
 			}
 		}
-	}
-
-	Logger::log($translateKey . " fix completed. Success: $success. Fail: $fail");
-	return Update::SUCCESS;
-}
-// Post-update script of PR 5751
-function update_1297()
-{
-	$translateKey = 'marital';
-	$allData = DBA::select('profile', ['id', $translateKey]);
-	$allLangs = L10n::getAvailableLanguages();
-	$success = 0;
-	$fail = 0;
-	foreach ($allData as $key => $data) {
-		$toTranslate = $data[$translateKey];
-		if ($toTranslate != '') {
-			foreach ($allLangs as $key => $lang) {
-				$a = new \stdClass();
-				$a->strings = [];
-
-				// First we get the the localizations
-				if (file_exists("view/lang/$lang/strings.php")) {
-					include "view/lang/$lang/strings.php";
-				}
-				if (file_exists("addon/morechoice/lang/$lang/strings.php")) {
-					include "addon/morechoice/lang/$lang/strings.php";
-				}
-
-				$localizedStrings = $a->strings;
-				unset($a);
 
-				$key = array_search($toTranslate, $localizedStrings);
-				if ($key !== false) {
-					break;
-				}
-
-				// defaulting to empty string
-				$key = '';
-			}
-
-			if ($key == '') {
-				$fail++;
-			} else {
-				DBA::update('profile', [$translateKey => $key], ['id' => $data['id']]);
-				logger::log('Updated contact ' . $data['id'] . " to $translateKey " . $key .
-					' (was: ' . $data[$translateKey] . ')');
-				Worker::add(PRIORITY_LOW, 'ProfileUpdate', $data['id']);		
-				Contact::updateSelfFromUserID($data['id']);
-				GContact::updateForUser($data['id']);
-				$success++;
-			}
-		}
+		Logger::log($translateKey . " fix completed. Success: $success. Fail: $fail");	
 	}
-
-	Logger::log($translateKey . " fix completed. Success: $success. Fail: $fail");
 	return Update::SUCCESS;
 }
-
-// Post-update script of PR 5751
-function update_1298()
-{
-	$translateKey = 'sexual';
-	$allData = DBA::select('profile', ['id', $translateKey]);
-	$allLangs = L10n::getAvailableLanguages();
-	$success = 0;
-	$fail = 0;
-	foreach ($allData as $key => $data) {
-		$toTranslate = $data[$translateKey];
-		if ($toTranslate != '') {
-			foreach ($allLangs as $key => $lang) {
-				$a = new \stdClass();
-				$a->strings = [];
-
-				// First we get the the localizations
-				if (file_exists("view/lang/$lang/strings.php")) {
-					include "view/lang/$lang/strings.php";
-				}
-				if (file_exists("addon/morechoice/lang/$lang/strings.php")) {
-					include "addon/morechoice/lang/$lang/strings.php";
-				}
-
-				$localizedStrings = $a->strings;
-				unset($a);
-
-				$key = array_search($toTranslate, $localizedStrings);
-				if ($key !== false) {
-					break;
-				}
-
-				// defaulting to empty string
-				$key = '';
-			}
-
-			if ($key == '') {
-				$fail++;
-			} else {
-				DBA::update('profile', [$translateKey => $key], ['id' => $data['id']]);
-				logger::log('Updated contact ' . $data['id'] . " to $translateKey " . $key .
-					' (was: ' . $data[$translateKey] . ')');
-				Worker::add(PRIORITY_LOW, 'ProfileUpdate', $data['id']);		
-				Contact::updateSelfFromUserID($data['id']);
-				GContact::updateForUser($data['id']);
-				$success++;
-			}
-		}
-	}
-
-	Logger::log($translateKey . " fix completed. Success: $success. Fail: $fail");
-	return Update::SUCCESS;
-}
\ No newline at end of file
-- 
2.39.5