From 841c71f37d45ec2e0df26961d211a29f02c8dbb7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 27 Sep 2011 11:16:14 -0400 Subject: [PATCH] Add profile lists for all tags on upgrade --- scripts/upgrade.php | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/scripts/upgrade.php b/scripts/upgrade.php index 1bf444267c..7d81c19835 100644 --- a/scripts/upgrade.php +++ b/scripts/upgrade.php @@ -52,6 +52,8 @@ function main() initSubscriptionURI(); initGroupMemberURI(); + initProfileLists(); + Event::handle('EndUpgrade'); } } @@ -374,4 +376,47 @@ function initGroupMemberURI() printfnq("DONE.\n"); } +function initProfileLists() +{ + printfnq("Ensuring all profile tags have a corresponding list..."); + + $ptag = new Profile_tag(); + $ptag->selectAdd(); + $ptag->selectAdd('tagger, tag, count(*) as tagged_count'); + $ptag->whereAdd('NOT EXISTS (SELECT tagger, tagged from profile_list '. + 'where profile_tag.tagger = profile_list.tagger '. + 'and profile_tag.tag = profile_list.tag)'); + $ptag->groupBy('tagger, tag'); + $ptag->orderBy('tagger, tag'); + + if ($ptag->find()) { + while ($ptag->fetch()) { + $plist = new Profile_list(); + + $plist->tagger = $ptag->tagger; + $plist->tag = $ptag->tag; + $plist->private = 0; + $plist->created = common_sql_now(); + $plist->modified = $plist->created; + $plist->mainpage = common_local_url('showprofiletag', + array('tagger' => $plist->getTagger()->nickname, + 'tag' => $plist->tag));; + + $plist->tagged_count = $ptag->tagged_count; + $plist->subscriber_count = 0; + + $plist->insert(); + + $orig = clone($plist); + // After insert since it uses auto-generated ID + $plist->uri = common_local_url('profiletagbyid', + array('id' => $plist->id, 'tagger_id' => $plist->tagger)); + + $plist->update($orig); + } + } + + printfnq("DONE.\n"); +} + main(); -- 2.39.2