]> git.mxchange.org Git - friendica.git/blobdiff - src/Database/PostUpdate.php
Added post-update script
[friendica.git] / src / Database / PostUpdate.php
index 9329e31cac1bf53174ae69e5be64774853b852aa..59b6964084862ef452c33f661de6faf40b0b1221 100644 (file)
@@ -7,6 +7,7 @@ namespace Friendica\Database;
 use Friendica\Core\Config;
 use Friendica\Core\Logger;
 use Friendica\Core\Protocol;
+use Friendica\Core\L10n;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
 use Friendica\Model\ItemURI;
@@ -373,4 +374,49 @@ class PostUpdate
 
                return false;
        }
+
+       // Post-update script of PR 5596
+       function fixGenderStrings() {
+           $allGenders = DBA::select('contact', ['id', 'gender']);
+        $allLangs = L10n::getAvailableLanguages();
+        $success = 0;
+        $fail = 0;
+           foreach($allGenders as $key=>$gender) {
+            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($gender['gender'], $localizedStrings);
+                if($key !== false) {
+                    break;
+                }
+
+                // defaulting to empty string
+                $key = '';
+            }
+            DBA::update('contact', ['gender' => $key], ['id' => $gender['id']]);
+            logger::log('Updated contact ' . $gender['id'] . ' to gender ' . $key . ' (was: ' . $gender['gender'] . ')');
+
+            if ($key == '') {
+                $fail++;
+            }
+            else {
+                $success++;
+            }
+        }
+
+           Logger::log("Gender fix completed. Success: $success. Fail: $fail");
+    }
 }