diff options
Diffstat (limited to 'mod/invitefriends/actions/invite.php')
| -rw-r--r-- | mod/invitefriends/actions/invite.php | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/mod/invitefriends/actions/invite.php b/mod/invitefriends/actions/invite.php index abc212bea..eed156d69 100644 --- a/mod/invitefriends/actions/invite.php +++ b/mod/invitefriends/actions/invite.php @@ -4,12 +4,10 @@ * Elgg invite friends action * * @package ElggInviteFriends - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @link http://elgg.org/ */ +$site = elgg_get_site_entity(); + $emails = get_input('emails'); $emailmessage = get_input('emailmessage'); @@ -19,15 +17,17 @@ if (strlen($emails) > 0) { } if (!is_array($emails) || count($emails) == 0) { - register_error(elgg_echo('invitefriends:failure')); - forward($_SERVER['HTTP_REFERER']); + register_error(elgg_echo('invitefriends:noemails')); + forward(REFERER); } -$current_user = get_loggedin_user(); +$current_user = elgg_get_logged_in_user_entity(); $error = FALSE; $bad_emails = array(); -foreach($emails as $email) { +$already_members = array(); +$sent_total = 0; +foreach ($emails as $email) { $email = trim($email); if (empty($email)) { @@ -41,31 +41,48 @@ foreach($emails as $email) { continue; } - $link = $CONFIG->wwwroot . 'pg/register?friend_guid=' . $current_user->guid . '&invitecode=' . generate_invite_code($current_user->username); - $message = sprintf(elgg_echo('invitefriends:email'), - $CONFIG->site->name, + if (get_user_by_email($email)) { + $error = TRUE; + $already_members[] = $email; + continue; + } + + $link = elgg_get_site_url() . 'register?friend_guid=' . $current_user->guid . '&invitecode=' . generate_invite_code($current_user->username); + $message = elgg_echo('invitefriends:email', array( + $site->name, $current_user->name, $emailmessage, $link + ) ); - $subject = sprintf(elgg_echo('invitefriends:subject'), $CONFIG->site->name); + $subject = elgg_echo('invitefriends:subject', array($site->name)); // create the from address - $site = get_entity($CONFIG->site_guid); - if (($site) && (isset($site->email))) { + $site = get_entity($site->guid); + if ($site && $site->email) { $from = $site->email; } else { - $from = 'noreply@' . get_site_domain($CONFIG->site_guid); + $from = 'noreply@' . get_site_domain($site->guid); } elgg_send_email($from, $email, $subject, $message); + $sent_total++; } if ($error) { - register_error(sprintf(elgg_echo('invitefriends:email_error'), implode(', ', $bad_emails))); + register_error(elgg_echo('invitefriends:invitations_sent', array($sent_total))); + + if (count($bad_emails) > 0) { + register_error(elgg_echo('invitefriends:email_error', array(implode(', ', $bad_emails)))); + } + + if (count($already_members) > 0) { + register_error(elgg_echo('invitefriends:already_members', array(implode(', ', $already_members)))); + } + } else { system_message(elgg_echo('invitefriends:success')); } -forward($_SERVER['HTTP_REFERER']); +forward(REFERER); |
