From 5cb56a6b120a1aed376dda79252c218679ca6b2c Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Mon, 24 Dec 2018 10:53:44 +0100 Subject: [PATCH] Fixes some more things --- config/dbstructure.config.php | 2 +- mod/profiles.php | 6 +- update.php | 129 +++++++++++++++++++++++++++++++--- 3 files changed, 123 insertions(+), 14 deletions(-) diff --git a/config/dbstructure.config.php b/config/dbstructure.config.php index a59b7c361e..0be6ba4028 100644 --- a/config/dbstructure.config.php +++ b/config/dbstructure.config.php @@ -34,7 +34,7 @@ use Friendica\Database\DBA; if (!defined('DB_UPDATE_VERSION')) { - define('DB_UPDATE_VERSION', 1297); + define('DB_UPDATE_VERSION', 1298); } return [ diff --git a/mod/profiles.php b/mod/profiles.php index 6a32fbee5a..70917d7df8 100644 --- a/mod/profiles.php +++ b/mod/profiles.php @@ -618,11 +618,11 @@ function profiles_content(App $a) { '$postal_code' => ['postal_code', L10n::t('Postal/Zip Code:'), $r[0]['postal-code']], '$country_name' => ['country_name', L10n::t('Country:'), $r[0]['country-name']], '$age' => ((intval($r[0]['dob'])) ? '(' . L10n::t('Age: ') . Temporal::getAgeByTimezone($r[0]['dob'],$a->user['timezone'],$a->user['timezone']) . ')' : ''), - '$gender' => ContactSelector::gender($r[0]['gender']), - '$marital' => ['selector' => ContactSelector::maritalStatus($r[0]['marital']), 'value' => $r[0]['marital']], + '$gender' => L10n::t(ContactSelector::gender($r[0]['gender'])), + '$marital' => ['selector' => ContactSelector::maritalStatus($r[0]['marital']), 'value' => L10n::t($r[0]['marital'])], '$with' => ['with', L10n::t("Who: \x28if applicable\x29"), strip_tags($r[0]['with']), L10n::t('Examples: cathy123, Cathy Williams, cathy@example.com')], '$howlong' => ['howlong', L10n::t('Since [date]:'), ($r[0]['howlong'] <= DBA::NULL_DATETIME ? '' : DateTimeFormat::local($r[0]['howlong']))], - '$sexual' => ['selector' => ContactSelector::sexualPreference($r[0]['sexual']), 'value' => $r[0]['sexual']], + '$sexual' => ['selector' => ContactSelector::sexualPreference($r[0]['sexual']), 'value' => L10n::t($r[0]['sexual'])], '$about' => ['about', L10n::t('Tell us about yourself...'), $r[0]['about']], '$xmpp' => ['xmpp', L10n::t("XMPP \x28Jabber\x29 address:"), $r[0]['xmpp'], L10n::t("The XMPP address will be propagated to your contacts so that they can follow you.")], '$homepage' => ['homepage', L10n::t('Homepage URL:'), $r[0]['homepage']], diff --git a/update.php b/update.php index 4fb3144920..d608669f16 100644 --- a/update.php +++ b/update.php @@ -291,16 +291,17 @@ function update_1288() return Update::SUCCESS; } - // Post-update script of PR 5751 -function update_1293() +function update_1296() { - $allGenders = DBA::select('contact', ['id', 'gender']); + $translateKey = 'gender'; + $allData = DBA::select('profile', ['id', $translateKey]); $allLangs = L10n::getAvailableLanguages(); $success = 0; $fail = 0; - foreach ($allGenders as $key => $gender) { - if ($gender['gender'] != '') { + foreach ($allData as $key => $data) { + $toTranslate = $data[$translateKey]; + if ($toTranslate != '') { foreach ($allLangs as $key => $lang) { $a = new \stdClass(); $a->strings = []; @@ -316,7 +317,7 @@ function update_1293() $localizedStrings = $a->strings; unset($a); - $key = array_search($gender['gender'], $localizedStrings); + $key = array_search($toTranslate, $localizedStrings); if ($key !== false) { break; } @@ -328,14 +329,122 @@ function update_1293() if ($key == '') { $fail++; } else { - DBA::update('contact', ['gender' => $key], ['id' => $gender['id']]); - logger::log('Updated contact ' . $gender['id'] . ' to gender ' . $key . - ' (was: ' . $gender['gender'] . ')'); + 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("Gender 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_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"); + 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