migrateProfilePrefs added to scripts/upgrade.php
Makes it easier for plugin developers to change the topics set in Profile_prefs
This commit is contained in:
parent
fb7f572eed
commit
c0851d59f5
@ -58,6 +58,8 @@ function main()
|
||||
|
||||
initProfileLists();
|
||||
|
||||
migrateProfilePrefs();
|
||||
|
||||
Event::handle('EndUpgrade');
|
||||
}
|
||||
}
|
||||
@ -518,4 +520,30 @@ function setFilehashOnLocalFiles()
|
||||
printfnq("DONE.\n");
|
||||
}
|
||||
|
||||
function migrateProfilePrefs()
|
||||
{
|
||||
printfnq("Finding and possibly migrating Profile_prefs entries: ");
|
||||
|
||||
$prefs = array(); // ['qvitter' => ['cover_photo'=>'profile_banner_url', ...], ...]
|
||||
Event::handle('GetProfilePrefsMigrations', array(&$prefs));
|
||||
|
||||
foreach($prefs as $namespace=>$mods) {
|
||||
echo "$namespace... ";
|
||||
assert(is_array($mods));
|
||||
$p = new Profile_prefs();
|
||||
$p->namespace = $namespace;
|
||||
// find all entries in all modified topics given in this namespace
|
||||
$p->whereAddIn('topic', array_keys($mods), $p->columnType('topic'));
|
||||
$p->find();
|
||||
while ($p->fetch()) {
|
||||
// for each entry, update 'topic' to the new key value
|
||||
$orig = clone($p);
|
||||
$p->topic = $mods[$p->topic];
|
||||
$p->updateWithKeys($orig);
|
||||
}
|
||||
}
|
||||
|
||||
printfnq("DONE.\n");
|
||||
}
|
||||
|
||||
main();
|
||||
|
Loading…
Reference in New Issue
Block a user