forked from GNUsocial/gnu-social
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();
|
initProfileLists();
|
||||||
|
|
||||||
|
migrateProfilePrefs();
|
||||||
|
|
||||||
Event::handle('EndUpgrade');
|
Event::handle('EndUpgrade');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -518,4 +520,30 @@ function setFilehashOnLocalFiles()
|
|||||||
printfnq("DONE.\n");
|
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();
|
main();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user