Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Adding 'everyone' to a new group


Reply


4 Posts   709 Views

Avatar
Futureweb

Community Member, 233 Posts

7 September 2011 at 10:26am

Hi,
I've created a new group type called 'newsletter', and I want to add everyone (about 2000 people) to this list (then i'll manually remove the few that don't want to receive newsletters).

Is there an easy way of doing this? I cant seem to see how without going through each person individually...

Avatar
Ryan M.

Community Member, 309 Posts

7 September 2011 at 12:09pm

You could write a small function within SS that copies the users over and then visit the function's address in the browser to trigger it.

Avatar
Futureweb

Community Member, 233 Posts

7 September 2011 at 12:45pm

ok, if there is no function within the CMS, i'll probably do it by exporting a CSV file of all the members, opening in excel, removing all the data but the ID, and then importing again into Group_Member table..

Avatar
Howard

Community Member, 215 Posts

7 September 2011 at 2:17pm

Hey - no need for the export you can just do a little function like this:

function MoveGroups(){
   $oldGroupID = "1";
   $newGroupID = "2";
   
   $oldGroup = DataObject::get_one('Group', "ID = $oldGroupID");
   $newGroup = DataObject::get_one('Group', "ID = $newGroupID");
   
   foreach ($oldGroup->Members() as $member) {
      $member->Groups()->add($newGroup);
   }
   
   Director::redirect($this->link());
}

Then if you set the IDs to be the correct groups and run the function it'll move them over. I haven't actually tested that code so you may need to play with it a lil to get it to work.