diff options
Diffstat (limited to 'mod/groups/actions/addtogroup.php')
-rw-r--r-- | mod/groups/actions/addtogroup.php | 52 |
1 files changed, 31 insertions, 21 deletions
diff --git a/mod/groups/actions/addtogroup.php b/mod/groups/actions/addtogroup.php index db697d573..af99c3edf 100644 --- a/mod/groups/actions/addtogroup.php +++ b/mod/groups/actions/addtogroup.php @@ -19,25 +19,27 @@ $group_guid = get_input('group_guid'); $user = get_entity($user_guid); - $group = get_entity($group); - - if ($_SESSION['user']->getGUID() == $group->getGUID()) + $group = get_entity($group_guid); + + if ($_SESSION['user']->getGUID() == $group->owner_guid) { $requests = $user->group_join_request; + if ($requests) { foreach ($requests as $request) { if ($request == $group->getGUID()) { + // User has requested to join this group previously, so we can safely add them // add them - if ($group->join($user)) + if ((!$group->isMember($user)) && ($group->join($user))) { // send welcome email - notify_user($user->getGUID(), "", + notify_user($user->getGUID(), $group->owner_guid, sprintf(elgg_echo('groups:welcome:subject'), $group->title), sprintf(elgg_echo('groups:welcome:body'), $user->name, $group->title, $group->getURL()), NULL, "email"); @@ -52,28 +54,36 @@ exit; } } + } - // Not found in request array, so send an invite and set invite flag - - // Set invite flag - if (!$user->setMetaData('group_invite', $group->getGUID(), "", true)) - system_message(elgg_echo("groups:usernotinvited")); + // Not found in request array, so send an invite and set invite flag + $methods = $user->group_invite; + if (($methods) && (!is_array($methods))) + $methods = array($methods); + if (!$methods) $methods=array(); + $methods[] = $group->getGUID(); + $methods = array_unique($methods); + + // Set invite flag + //if (!$user->setMetaData('group_invite', $group->getGUID(), "", true)) + if (!$user->group_invite = $methods) + system_message(elgg_echo("groups:usernotinvited")); + else + { + // Send email + if (notify_user($user->getGUID(), $group->owner_guid, + sprintf(elgg_echo('groups:invite:subject'), $user->name, $group->title), + sprintf(elgg_echo('groups:invite:body'), $user->name, $group->title, "{$CONFIG->url}action/groups/join?user_guid={$user->guid}&group_guid={$group->guid}"), + NULL, "email")) + system_message(elgg_echo("groups:userinvited")); else - { - // Send email - if (notify_user($user->getGUID(), "", - sprintf(elgg_echo('groups:invite:subject'), $user->name, $group->title), - sprintf(elgg_echo('groups:invite:body'), $user->name, $group->title, "http://{$CONFIG->url}action/groups/join?user_guid={$user->guid}&group_guid={$group->guid}"), - NULL, "email")) - system_message(elgg_echo("groups:userinvited")); - else - system_message(elgg_echo("groups:usernotinvited")); - } + system_message(elgg_echo("groups:usernotinvited")); } + } else system_message(elgg_echo("groups:notowner")); - forward($_SERVER['HTTP_REFERER']); + //forward($_SERVER['HTTP_REFERER']); exit; ?>
\ No newline at end of file |