Added post-update script
Please review first. I don't want to test changes that are not going pass the review.
This commit is contained in:
parent
ecb28f6e94
commit
0906c3532c
1 changed files with 46 additions and 0 deletions
|
@ -7,6 +7,7 @@ namespace Friendica\Database;
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\Protocol;
|
use Friendica\Core\Protocol;
|
||||||
|
use Friendica\Core\L10n;
|
||||||
use Friendica\Model\Contact;
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Item;
|
use Friendica\Model\Item;
|
||||||
use Friendica\Model\ItemURI;
|
use Friendica\Model\ItemURI;
|
||||||
|
@ -373,4 +374,49 @@ class PostUpdate
|
||||||
|
|
||||||
return false;
|
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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue