diff options
Diffstat (limited to 'mod/invitefriends')
| -rw-r--r-- | mod/invitefriends/actions/invite.php | 31 | ||||
| -rw-r--r-- | mod/invitefriends/index.php | 19 | ||||
| -rw-r--r-- | mod/invitefriends/manifest.xml | 24 | ||||
| -rw-r--r-- | mod/invitefriends/start.php | 51 | ||||
| -rw-r--r-- | mod/invitefriends/views/default/forms/invitefriends/invite.php | 35 | ||||
| -rw-r--r-- | mod/invitefriends/views/default/invitefriends/form.php | 7 | ||||
| -rw-r--r-- | mod/invitefriends/views/default/invitefriends/formitems.php | 36 |
7 files changed, 111 insertions, 92 deletions
diff --git a/mod/invitefriends/actions/invite.php b/mod/invitefriends/actions/invite.php index fa95ec23d..eed156d69 100644 --- a/mod/invitefriends/actions/invite.php +++ b/mod/invitefriends/actions/invite.php @@ -6,6 +6,8 @@ * @package ElggInviteFriends */ +$site = elgg_get_site_entity(); + $emails = get_input('emails'); $emailmessage = get_input('emailmessage'); @@ -16,10 +18,10 @@ if (strlen($emails) > 0) { if (!is_array($emails) || count($emails) == 0) { register_error(elgg_echo('invitefriends:noemails')); - forward($_SERVER['HTTP_REFERER']); + forward(REFERER); } -$current_user = get_loggedin_user(); +$current_user = elgg_get_logged_in_user_entity(); $error = FALSE; $bad_emails = array(); @@ -45,22 +47,23 @@ foreach ($emails as $email) { continue; } - $link = elgg_get_site_url() . 'pg/register?friend_guid=' . $current_user->guid . '&invitecode=' . generate_invite_code($current_user->username); - $message = sprintf(elgg_echo('invitefriends:email'), - $CONFIG->site->name, + $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); @@ -68,18 +71,18 @@ foreach ($emails as $email) { } if ($error) { - register_error(sprintf(elgg_echo('invitefriends:invitations_sent'), $sent_total)); + register_error(elgg_echo('invitefriends:invitations_sent', array($sent_total))); if (count($bad_emails) > 0) { - register_error(sprintf(elgg_echo('invitefriends:email_error'), implode(', ', $bad_emails))); + register_error(elgg_echo('invitefriends:email_error', array(implode(', ', $bad_emails)))); } if (count($already_members) > 0) { - register_error(sprintf(elgg_echo('invitefriends:already_members'), implode(', ', $already_members))); + register_error(elgg_echo('invitefriends:already_members', array(implode(', ', $already_members)))); } - + } else { system_message(elgg_echo('invitefriends:success')); } -forward($_SERVER['HTTP_REFERER']); +forward(REFERER); diff --git a/mod/invitefriends/index.php b/mod/invitefriends/index.php deleted file mode 100644 index b6e45f447..000000000 --- a/mod/invitefriends/index.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -/** - * Elgg invite page - * - * @package ElggInviteFriends - */ - -require_once(dirname(dirname(dirname(__FILE__))) . '/engine/start.php'); - -gatekeeper(); - -set_context('friends'); -set_page_owner(get_loggedin_userid()); - -$body = elgg_view('invitefriends/form'); -$body = elgg_view_layout('one_column_with_sidebar', $body); - -page_draw(elgg_echo('friends:invite'), $body); diff --git a/mod/invitefriends/manifest.xml b/mod/invitefriends/manifest.xml index cf039ee13..b36238a05 100644 --- a/mod/invitefriends/manifest.xml +++ b/mod/invitefriends/manifest.xml @@ -1,11 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> -<plugin_manifest> - <field key="author" value="Curverider" /> - <field key="version" value="1.7" /> - <field key="description" value="Invite friends to Elgg network via email invites." /> - <field key="website" value="http://www.elgg.org/" /> - <field key="copyright" value="(C) Curverider 2008-2010" /> - <field key="licence" value="GNU Public License version 2" /> - <field key="elgg_version" value="2010030101" /> - <field key="admin_interface" value="advanced" /> +<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8"> + <name>Invite Friends</name> + <author>Core developers</author> + <version>1.8</version> + <category>bundled</category> + <category>social</category> + <description>Invite friends via email invites.</description> + <website>http://www.elgg.org/</website> + <copyright>See COPYRIGHT.txt</copyright> + <license>GNU General Public License version 2</license> + <requires> + <type>elgg_release</type> + <version>1.8</version> + </requires> + <activate_on_install>true</activate_on_install> </plugin_manifest> diff --git a/mod/invitefriends/start.php b/mod/invitefriends/start.php index 1841135f4..368f6348a 100644 --- a/mod/invitefriends/start.php +++ b/mod/invitefriends/start.php @@ -5,17 +5,46 @@ * @package ElggInviteFriends */ -/** - * Add menu item for invite friends - */ -function invitefriends_pagesetup() { - global $CONFIG; - if (get_context() == "friends" || - get_context() == "friendsof" || - get_context() == "collections") { - add_submenu_item(elgg_echo('friends:invite'),elgg_get_site_url()."mod/invitefriends/",'invite'); +elgg_register_event_handler('init', 'system', 'invitefriends_init'); + +function invitefriends_init() { + elgg_register_page_handler('invite', 'invitefriends_page_handler'); + + elgg_register_action('invitefriends/invite', elgg_get_plugins_path() . 'invitefriends/actions/invite.php'); + + if (elgg_is_logged_in()) { + $params = array( + 'name' => 'invite', + 'text' => elgg_echo('friends:invite'), + 'href' => "invite", + 'contexts' => array('friends'), + ); + elgg_register_menu_item('page', $params); } } -register_action('invitefriends/invite', false, $CONFIG->pluginspath . 'invitefriends/actions/invite.php'); -register_elgg_event_handler('pagesetup', 'system', 'invitefriends_pagesetup'); +/** + * Page handler function + * + * @param array $page Page URL segments + * @return bool + */ +function invitefriends_page_handler($page) { + gatekeeper(); + + elgg_set_context('friends'); + elgg_set_page_owner_guid(elgg_get_logged_in_user_guid()); + + $title = elgg_echo('friends:invite'); + + $body = elgg_view('invitefriends/form'); + + $params = array( + 'content' => $body, + 'title' => $title, + ); + $body = elgg_view_layout('one_sidebar', $params); + + echo elgg_view_page($title, $body); + return true; +} diff --git a/mod/invitefriends/views/default/forms/invitefriends/invite.php b/mod/invitefriends/views/default/forms/invitefriends/invite.php new file mode 100644 index 000000000..0d7f5d9f2 --- /dev/null +++ b/mod/invitefriends/views/default/forms/invitefriends/invite.php @@ -0,0 +1,35 @@ +<?php + +/** + * Elgg invite form contents + * + * @package ElggInviteFriends + */ + +if (elgg_get_config('allow_registration')) { + $site = elgg_get_site_entity(); + $introduction = elgg_echo('invitefriends:introduction'); + $message = elgg_echo('invitefriends:message'); + $default = elgg_echo('invitefriends:message:default', array($site->name)); + + echo <<< HTML +<div> + <label> + $introduction + <textarea class="elgg-input-textarea" name="emails" ></textarea> + </label> +</div> +<div> + <label> + $message + <textarea class="elgg-input-textarea" name="emailmessage" >$default</textarea> + </label> +</div> +HTML; + + echo '<div class="elgg-foot">'; + echo elgg_view('input/submit', array('value' => elgg_echo('send'))); + echo '</div>'; +} else { + echo elgg_echo('invitefriends:registration_disabled'); +} diff --git a/mod/invitefriends/views/default/invitefriends/form.php b/mod/invitefriends/views/default/invitefriends/form.php index de8d77388..badcf8759 100644 --- a/mod/invitefriends/views/default/invitefriends/form.php +++ b/mod/invitefriends/views/default/invitefriends/form.php @@ -5,9 +5,4 @@ * @package ElggInviteFriends */ -echo elgg_view('input/form', array( - 'action' => elgg_get_site_url() . 'action/invitefriends/invite', - 'body' => elgg_view('invitefriends/formitems'), - 'method' => 'post' - ) -); +echo elgg_view_form('invitefriends/invite'); diff --git a/mod/invitefriends/views/default/invitefriends/formitems.php b/mod/invitefriends/views/default/invitefriends/formitems.php index 68296460a..afdff4164 100644 --- a/mod/invitefriends/views/default/invitefriends/formitems.php +++ b/mod/invitefriends/views/default/invitefriends/formitems.php @@ -1,34 +1,4 @@ -<?php +<?php -/** - * Elgg invite form contents - * - * @package ElggInviteFriends - */ - -if ($CONFIG->allow_registration) { - $invite = elgg_echo('friends:invite'); - $introduction = elgg_echo('invitefriends:introduction'); - $message = elgg_echo('invitefriends:message'); - $default = sprintf(elgg_echo('invitefriends:message:default'), $CONFIG->site->name); - - echo <<< HTML -<h2>$invite</h2> -<p class="margin_top"> - <label> - $introduction - <textarea class="input_textarea" name="emails" ></textarea> - </label> -</p> -<p> - <label> - $message - <textarea class="input_textarea" name="emailmessage" >$default</textarea> - </label> -</p> -HTML; - - echo elgg_view('input/submit', array('value' => elgg_echo('send'))); -} else { - echo elgg_echo('invitefriends:registration_disabled'); -} +elgg_deprecated_notice("invitefriends/formitems was moved to forms/invitefriends/invite", 1.8); +echo elgg_view('forms/invitefriends/invite');
\ No newline at end of file |
