$group->mainpage = $mainpage;
$group->created = common_sql_now();
- $result = $group->insert();
+ if (Event::handle('StartGroupSave', array(&$group))) {
- if (!$result) {
- common_log_db_error($group, 'INSERT', __FILE__);
- // TRANS: Server exception thrown when creating a group failed.
- throw new ServerException(_('Could not create group.'));
- }
+ $result = $group->insert();
- if (!isset($uri) || empty($uri)) {
- $orig = clone($group);
- $group->uri = common_local_url('groupbyid', array('id' => $group->id));
- $result = $group->update($orig);
if (!$result) {
- common_log_db_error($group, 'UPDATE', __FILE__);
- // TRANS: Server exception thrown when updating a group URI failed.
- throw new ServerException(_('Could not set group URI.'));
+ common_log_db_error($group, 'INSERT', __FILE__);
+ // TRANS: Server exception thrown when creating a group failed.
+ throw new ServerException(_('Could not create group.'));
}
- }
- $result = $group->setAliases($aliases);
+ if (!isset($uri) || empty($uri)) {
+ $orig = clone($group);
+ $group->uri = common_local_url('groupbyid', array('id' => $group->id));
+ $result = $group->update($orig);
+ if (!$result) {
+ common_log_db_error($group, 'UPDATE', __FILE__);
+ // TRANS: Server exception thrown when updating a group URI failed.
+ throw new ServerException(_('Could not set group URI.'));
+ }
+ }
- if (!$result) {
- // TRANS: Server exception thrown when creating group aliases failed.
- throw new ServerException(_('Could not create aliases.'));
- }
+ $result = $group->setAliases($aliases);
- $member = new Group_member();
+ if (!$result) {
+ // TRANS: Server exception thrown when creating group aliases failed.
+ throw new ServerException(_('Could not create aliases.'));
+ }
- $member->group_id = $group->id;
- $member->profile_id = $userid;
- $member->is_admin = 1;
- $member->created = $group->created;
+ $member = new Group_member();
- $result = $member->insert();
+ $member->group_id = $group->id;
+ $member->profile_id = $userid;
+ $member->is_admin = 1;
+ $member->created = $group->created;
- if (!$result) {
- common_log_db_error($member, 'INSERT', __FILE__);
- // TRANS: Server exception thrown when setting group membership failed.
- throw new ServerException(_('Could not set group membership.'));
- }
+ $result = $member->insert();
- if ($local) {
- $local_group = new Local_group();
+ if (!$result) {
+ common_log_db_error($member, 'INSERT', __FILE__);
+ // TRANS: Server exception thrown when setting group membership failed.
+ throw new ServerException(_('Could not set group membership.'));
+ }
- $local_group->group_id = $group->id;
- $local_group->nickname = $nickname;
- $local_group->created = common_sql_now();
+ if ($local) {
+ $local_group = new Local_group();
- $result = $local_group->insert();
+ $local_group->group_id = $group->id;
+ $local_group->nickname = $nickname;
+ $local_group->created = common_sql_now();
- if (!$result) {
- common_log_db_error($local_group, 'INSERT', __FILE__);
- // TRANS: Server exception thrown when saving local group information failed.
- throw new ServerException(_('Could not save local group info.'));
+ $result = $local_group->insert();
+
+ if (!$result) {
+ common_log_db_error($local_group, 'INSERT', __FILE__);
+ // TRANS: Server exception thrown when saving local group information failed.
+ throw new ServerException(_('Could not save local group info.'));
+ }
}
+
+ $group->query('COMMIT');
+
+ Event::handle('EndGroupSave', array($group));
}
- $group->query('COMMIT');
return $group;
}