]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
updated the group actions - edit group needs more work
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 4 Mar 2011 01:26:36 +0000 (01:26 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 4 Mar 2011 01:26:36 +0000 (01:26 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8573 36083f99-b078-4883-b0ff-0f9b5a30f544

16 files changed:
mod/groups/actions/addtogroup.php [deleted file]
mod/groups/actions/groups/delete.php [moved from mod/groups/actions/delete.php with 89% similarity]
mod/groups/actions/groups/edit.php [moved from mod/groups/actions/edit.php with 91% similarity]
mod/groups/actions/groups/featured.php [moved from mod/groups/actions/featured.php with 99% similarity]
mod/groups/actions/groups/membership/add.php [new file with mode: 0644]
mod/groups/actions/groups/membership/delete_invite.php [moved from mod/groups/actions/groupskillinvitation.php with 90% similarity]
mod/groups/actions/groups/membership/delete_request.php [moved from mod/groups/actions/groupskillrequest.php with 90% similarity]
mod/groups/actions/groups/membership/invite.php [new file with mode: 0644]
mod/groups/actions/groups/membership/join.php [new file with mode: 0644]
mod/groups/actions/groups/membership/leave.php [moved from mod/groups/actions/leave.php with 100% similarity]
mod/groups/actions/invite.php [deleted file]
mod/groups/actions/join.php [deleted file]
mod/groups/actions/joinrequest.php [deleted file]
mod/groups/start.php
mod/groups/views/default/groups/invitationrequests.php
mod/groups/views/default/groups/profile/buttons.php

diff --git a/mod/groups/actions/addtogroup.php b/mod/groups/actions/addtogroup.php
deleted file mode 100644 (file)
index d75c5fd..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-/**
- * Add a user to a group
- *
- * @package ElggGroups
- */
-$logged_in_user = elgg_get_logged_in_user_entity();
-
-$user_guid = get_input('user_guid');
-if (!is_array($user_guid))
-       $user_guid = array($user_guid);
-$group_guid = get_input('group_guid');
-
-if (sizeof($user_guid)) {
-       foreach ($user_guid as $u_id) {
-               $user = get_entity($u_id);
-               $group = get_entity($group_guid);
-
-               set_page_owner($group->guid);
-
-               if ($user && $group) {
-
-                       //if (elgg_get_logged_in_user_guid() == $group->owner_guid)
-                       if ($group->canEdit()) {
-
-                               // If the group is open or the user has requested membership
-                               if (
-                                               (check_entity_relationship($user->guid, 'membership_request', $group->guid)) ||
-                                               ($group->isPublicMembership())
-                               ) {
-
-                                       if (!$group->isMember($user)) {
-                                               // Remove relationships
-                                               remove_entity_relationship($group->guid, 'invited', $user->guid);
-                                               remove_entity_relationship($user->guid, 'membership_request', $group->guid);
-
-                                               //add_entity_relationship($user->guid, 'member', $group->guid);
-                                               $group->join($user);
-
-                                               // send welcome email
-                                               notify_user($user->getGUID(), $group->owner_guid,
-                                                               elgg_echo('groups:welcome:subject', array($group->name)),
-                                                               elgg_echo('groups:welcome:body', array($user->name, $group->name, $group->getURL())),
-                                                               NULL);
-
-                                               system_message(elgg_echo('groups:addedtogroup'));
-                                       }
-                                       else
-                                               register_error(elgg_echo("groups:cantjoin"));
-                               }
-                               else {
-                                       if ($user->isFriend()) {
-
-                                               // Create relationship
-                                               add_entity_relationship($group->guid, 'invited', $user->guid);
-
-                                               // Send email
-                                               $url = elgg_get_site_url() . "pg/groups/invited?user_guid={$user->guid}&group_guid={$group->guid}";
-                                               if (notify_user($user->getGUID(), $group->owner_guid,
-                                                                               elgg_echo('groups:invite:subject', array($user->name, $group->name)),
-                                                                               elgg_echo('groups:invite:body', array($user->name, $logged_in_user->name, $group->name, $url)),
-                                                                               NULL))
-                                                       system_message(elgg_echo("groups:userinvited"));
-                                               else
-                                                       register_error(elgg_echo("groups:usernotinvited"));
-                                       }
-                                       else
-                                               register_error(elgg_echo("groups:usernotinvited"));
-                               }
-                       }
-                       else
-                               register_error(elgg_echo("groups:notowner"));
-               }
-       }
-}
-
-forward(REFERER);
similarity index 89%
rename from mod/groups/actions/delete.php
rename to mod/groups/actions/groups/delete.php
index 6eed12a9c6c981cddabc0f59d3504d598e7528fc..9ed7954dcfffdc6dcd694d7ad36ccd394d05de33 100644 (file)
@@ -6,6 +6,11 @@
 $guid = (int) get_input('group_guid');
 $entity = get_entity($guid);
 
+if (!$entity->canEdit()) {
+       register_error(elgg_echo('group:notdeleted'));
+       forward(REFERER);
+}
+
 if (($entity) && ($entity instanceof ElggGroup)) {
        // delete group icons
        $owner_guid = $entity->owner_guid;
similarity index 91%
rename from mod/groups/actions/edit.php
rename to mod/groups/actions/groups/edit.php
index baa1a7065a321e774f6cc20004a73588758ffe45..b3c39c46133176eddb375636fa31f73198c3ca86 100644 (file)
@@ -44,7 +44,6 @@ if (($group_guid) && (!$group->canEdit())) {
        register_error(elgg_echo("groups:cantedit"));
 
        forward(REFERER);
-       exit;
 }
 
 // Assume we can edit or this is a new group
@@ -59,7 +58,6 @@ if (!$group->name) {
        register_error(elgg_echo("groups:notitle"));
 
        forward(REFERER);
-       exit;
 }
 
 // Group membership - should these be treated with same constants as access permissions?
@@ -73,22 +71,17 @@ switch (get_input('membership')) {
 
 // Set access - all groups are public from elgg's point of view, unless the override is in place
 if (elgg_get_plugin_setting('hidden_groups', 'groups') == 'yes') {
-       $visibility = (int)get_input('vis','',false);
+       $visibility = (int)get_input('vis', '', false);
 
        $group->access_id = $visibility;
 } else {
        $group->access_id = ACCESS_PUBLIC;
 }
 
-// Set group tool options
-//$group->files_enable = get_input('files_enable', 'yes');
-//$group->pages_enable = get_input('pages_enable', 'yes');
-//$group->forum_enable = get_input('forum_enable', 'yes');
-
 // Set group tool options
 if (isset($CONFIG->group_tool_options)) {
-       foreach($CONFIG->group_tool_options as $group_option) {
-               $group_option_toggle_name = $group_option->name."_enable";
+       foreach ($CONFIG->group_tool_options as $group_option) {
+               $group_option_toggle_name = $group_option->name . "_enable";
                if ($group_option->default_on) {
                        $group_option_default_value = 'yes';
                } else {
@@ -156,6 +149,4 @@ if ((isset($_FILES['icon'])) && (substr_count($_FILES['icon']['type'],'image/'))
 
 system_message(elgg_echo("groups:saved"));
 
-
 forward($group->getUrl());
-
similarity index 99%
rename from mod/groups/actions/featured.php
rename to mod/groups/actions/groups/featured.php
index 72ca7eebd2fe04411f0777f27492fde11c39c3bc..2d623b1e4b12d84a74d5bef29b3fa23600e9bb54 100644 (file)
@@ -5,7 +5,6 @@
  * @package ElggGroups
  */
 
-
 $group_guid = get_input('group_guid');
 $action = get_input('action_type');
 
diff --git a/mod/groups/actions/groups/membership/add.php b/mod/groups/actions/groups/membership/add.php
new file mode 100644 (file)
index 0000000..de0cba6
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Add users to a group
+ *
+ * @package ElggGroups
+ */
+$logged_in_user = elgg_get_logged_in_user_entity();
+
+$user_guid = get_input('user_guid');
+if (!is_array($user_guid)) {
+       $user_guid = array($user_guid);
+}
+$group_guid = get_input('group_guid');
+$group = get_entity($group_guid);
+
+if (sizeof($user_guid)) {
+       foreach ($user_guid as $u_id) {
+               $user = get_user($u_id);
+
+               if ($user && $group && $group->canEdit()) {
+                       if (!$group->isMember($user)) {
+                               if (groups_join_group($group, $user)) {
+
+                                       // send welcome email to user
+                                       notify_user($user->getGUID(), $group->owner_guid,
+                                                       elgg_echo('groups:welcome:subject', array($group->name)),
+                                                       elgg_echo('groups:welcome:body', array(
+                                                               $user->name,
+                                                               $group->name,
+                                                               $group->getURL())
+                                                       ));
+
+                                       system_message(elgg_echo('groups:addedtogroup'));
+                               } else {
+                                       // huh
+                               }
+                       }
+               }
+       }
+}
+
+forward(REFERER);
similarity index 90%
rename from mod/groups/actions/groupskillinvitation.php
rename to mod/groups/actions/groups/membership/delete_invite.php
index 516490bc9e33ceaeaae816c5fc25af892b40a4bd..4b654f0b6dfd4f55844be92e0261babae11e13a3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Delete an invitation to join a closed group.
+ * Delete an invitation to join a group.
  *
  * @package ElggGroups
  */
similarity index 90%
rename from mod/groups/actions/groupskillrequest.php
rename to mod/groups/actions/groups/membership/delete_request.php
index 9d45bb25f45609a5e95d34d45cab9d943c3d39b0..883c9d74870b9afde7c7558ab09f538b5c3057dd 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Delete a user request to join a closed group.
+ * Delete a request to join a closed group.
  *
  * @package ElggGroups
  */
diff --git a/mod/groups/actions/groups/membership/invite.php b/mod/groups/actions/groups/membership/invite.php
new file mode 100644 (file)
index 0000000..b106e48
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Invite users to join a group
+ *
+ * @package ElggGroups
+ */
+
+$logged_in_user = elgg_get_logged_in_user_entity();
+
+$user_guid = get_input('user_guid');
+if (!is_array($user_guid)) {
+       $user_guid = array($user_guid);
+}
+$group_guid = get_input('group_guid');
+
+if (sizeof($user_guid)) {
+       foreach ($user_guid as $u_id) {
+               $user = get_entity($u_id);
+               $group = get_entity($group_guid);
+
+               if ($user && $group && ($group instanceof ElggGroup) && $group->canEdit()) {
+
+                       if (!check_entity_relationship($group->guid, 'invited', $user->guid)) {
+
+                               // Create relationship
+                               add_entity_relationship($group->guid, 'invited', $user->guid);
+
+                               // Send email
+                               $url = elgg_normalize_url("pg/groups/invitations/$user->username");
+                               $result = notify_user($user->getGUID(), $group->owner_guid,
+                                               elgg_echo('groups:invite:subject', array($user->name, $group->name)),
+                                               elgg_echo('groups:invite:body', array(
+                                                       $user->name,
+                                                       $logged_in_user->name,
+                                                       $group->name,
+                                                       $url,
+                                               )),
+                                               NULL);
+                               if ($result) {
+                                       system_message(elgg_echo("groups:userinvited"));
+                               } else {
+                                       register_error(elgg_echo("groups:usernotinvited"));
+                               }
+                       } else {
+                               register_error(elgg_echo("groups:useralreadyinvited"));
+                       }
+               }
+       }
+}
+
+forward(REFERER);
diff --git a/mod/groups/actions/groups/membership/join.php b/mod/groups/actions/groups/membership/join.php
new file mode 100644 (file)
index 0000000..3c4571a
--- /dev/null
@@ -0,0 +1,70 @@
+<?php
+/**
+ * Join a group
+ *
+ * Three states:
+ * open group so user joins
+ * closed group so request sent to group owner
+ * closed group with invite so user joins
+ * 
+ * @package ElggGroups
+ */
+
+$user_guid = get_input('user_guid', elgg_get_logged_in_user_guid());
+$group_guid = get_input('group_guid');
+
+$user = get_entity($user_guid);
+
+// @todo investigate if the access bypass is needed
+$ia = elgg_set_ignore_access(true);
+$group = get_entity($group_guid);
+elgg_set_ignore_access($ia);
+
+if (($user instanceof ElggUser) && ($group instanceof ElggGroup)) {
+
+       // join or request
+       $join = false;
+       if ($group->isPublicMembership() || $group->canEdit($user->guid)) {
+               // anyone can join public groups and admins can join any group
+               $join = true;
+       } else {
+               if (check_entity_relationship($user->guid, 'membership_request', $group->guid)) {
+                       // user has invite to closed group
+                       $join = true;
+               }
+       }
+
+       if ($join) {
+               if (groups_join_group($group, $user)) {
+                       system_message(elgg_echo("groups:joined"));
+                       forward($group->getURL());
+               } else {
+                       register_error(elgg_echo("groups:cantjoin"));
+               }
+       } else {
+               add_entity_relationship($user->guid, 'membership_request', $group->guid);
+
+               // Notify group owner
+               $url = "{$CONFIG->url}mod/groups/membershipreq.php?group_guid={$group->guid}";
+               $subject = elgg_echo('groups:request:subject', array(
+                       $user->name,
+                       $group->name,
+               ));
+               $body = elgg_echo('groups:request:body', array(
+                       $group->getOwnerEntity()->name,
+                       $user->name,
+                       $group->name,
+                       $user->getURL(),
+                       $url,
+               ));
+               if (notify_user($group->owner_guid, $user->getGUID(), $subject, $body)) {
+                       system_message(elgg_echo("groups:joinrequestmade"));
+               } else {
+                       register_error(elgg_echo("groups:joinrequestnotmade"));
+               }
+       }
+} else {
+       register_error(elgg_echo("groups:cantjoin"));
+}
+
+forward(REFERER);
diff --git a/mod/groups/actions/invite.php b/mod/groups/actions/invite.php
deleted file mode 100644 (file)
index 1f82810..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Invite a user to join a group
- *
- * @package ElggGroups
- */
-
-$logged_in_user = elgg_get_logged_in_user_entity();
-
-$user_guid = get_input('user_guid');
-if (!is_array($user_guid)) {
-       $user_guid = array($user_guid);
-}
-$group_guid = get_input('group_guid');
-
-if (sizeof($user_guid)) {
-       foreach ($user_guid as $u_id) {
-               $user = get_entity($u_id);
-               $group = get_entity($group_guid);
-
-               if ( $user && $group) {
-
-                       if (($group instanceof ElggGroup) && ($group->canEdit())) {
-                               if (!check_entity_relationship($group->guid, 'invited', $user->guid)) {
-                                       if ($user->isFriend()) {
-
-                                               // Create relationship
-                                               add_entity_relationship($group->guid, 'invited', $user->guid);
-
-                                               // Send email
-                                               $url = elgg_normalize_url("pg/groups/invitations/$user->username");
-                                               $result = notify_user($user->getGUID(), $group->owner_guid,
-                                                               elgg_echo('groups:invite:subject', array($user->name, $group->name)),
-                                                               elgg_echo('groups:invite:body', array($user->name, $logged_in_user->name, $group->name, $url)),
-                                                               NULL);
-                                               if ($result) {
-                                                       system_message(elgg_echo("groups:userinvited"));
-                                               } else {
-                                                       register_error(elgg_echo("groups:usernotinvited"));
-                                               }
-                                       } else {
-                                               register_error(elgg_echo("groups:usernotinvited"));
-                                       }
-                               } else {
-                                       register_error(elgg_echo("groups:useralreadyinvited"));
-                               }
-                       } else {
-                               register_error(elgg_echo("groups:notowner"));
-                       }
-               }
-       }
-}
-
-forward(REFERER);
diff --git a/mod/groups/actions/join.php b/mod/groups/actions/join.php
deleted file mode 100644 (file)
index 72294c3..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/**
- * Join a group action.
- *
- * @package ElggGroups
- */
-
-$user_guid = get_input('user_guid', elgg_get_logged_in_user_guid());
-$group_guid = get_input('group_guid');
-
-// @todo fix for #287
-// disable access to get entity.
-$invitations = groups_get_invited_groups($user_guid, TRUE);
-
-if (in_array($group_guid, $invitations)) {
-       $ia = elgg_set_ignore_access(TRUE);
-}
-
-$user = get_entity($user_guid);
-$group = get_entity($group_guid);
-
-set_page_owner($group->guid);
-
-if (($user instanceof ElggUser) && ($group instanceof ElggGroup)) {
-       if ($group->isPublicMembership() || $group->canEdit($user->guid)) {
-               if ($group->join($user)) {
-                       system_message(elgg_echo("groups:joined"));
-
-                       // Remove any invite or join request flags
-                       remove_entity_relationship($group->guid, 'invited', $user->guid);
-                       remove_entity_relationship($user->guid, 'membership_request', $group->guid);
-
-                       // add to river
-                       add_to_river('river/relationship/member/create','join',$user->guid,$group->guid);
-
-                       forward($group->getURL());
-               } else {
-                       register_error(elgg_echo("groups:cantjoin"));
-               }
-       } else {
-               // Closed group, request membership
-               system_message(elgg_echo('groups:privategroup'));
-               forward(elgg_add_action_tokens_to_url("action/groups/joinrequest?user_guid=$user_guid&group_guid=$group_guid", FALSE));
-       }
-} else {
-       register_error(elgg_echo("groups:cantjoin"));
-}
-
-forward(REFERER);
-
diff --git a/mod/groups/actions/joinrequest.php b/mod/groups/actions/joinrequest.php
deleted file mode 100644 (file)
index 1631712..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-/**
- * User requests to join a closed group.
- *
- * @package ElggGroups
- */
-
-$user_guid = get_input('user_guid', elgg_get_logged_in_user_guid());
-$group_guid = get_input('group_guid');
-
-
-// @todo fix for #287
-// disable access to get entity.
-$invitations = groups_get_invited_groups($user_guid, TRUE);
-
-if (in_array($group_guid, $invitations)) {
-       $ia = elgg_set_ignore_access(TRUE);
-}
-
-
-$user = get_entity($user_guid);
-$group = get_entity($group_guid);
-
-set_page_owner($group->guid);
-
-// If not a member of this group
-if (($group) && ($user) && (!$group->isMember($user))) {
-       // If open group or invite exists
-       if (
-               ($group->isPublicMembership()) ||
-               (check_entity_relationship($group->guid, 'invited', $user->guid))
-       ) {
-               //$ia = elgg_set_ignore_access(TRUE);
-               if ($group->join($user)) {
-                       // Remove relationships
-                       remove_entity_relationship($group->guid, 'invited', $user->guid);
-                       remove_entity_relationship($user->guid, 'membership_request', $group->guid);
-
-                       // Group joined
-                       system_message(elgg_echo('groups:joined'));
-                       elgg_set_ignore_access($ia);
-
-                       forward($group->getURL());
-               } else {
-                       elgg_set_ignore_access($ia);
-                       system_message(elgg_echo('groups:cantjoin'));
-               }
-       } else {
-               // If join request not already made
-               if (!check_entity_relationship($user->guid, 'membership_request', $group->guid)) {
-                       // Add membership requested
-                       add_entity_relationship($user->guid, 'membership_request', $group->guid);
-
-                       // Send email
-                       $url = elgg_normalize_url("mod/groups/membershipreq.php?group_guid={$group->guid}");
-                       if (notify_user($group->owner_guid, $user->getGUID(),
-                                       elgg_echo('groups:request:subject', array($user->name, $group->name)),
-                                       elgg_echo('groups:request:body', array($group->getOwnerEntity()->name, $user->name, $group->name, $user->getURL(), $url)),
-                                       NULL)) {
-                               system_message(elgg_echo("groups:joinrequestmade"));
-                       } else {
-                               register_error(elgg_echo("groups:joinrequestnotmade"));
-                       }
-               } else {
-                       system_message(elgg_echo("groups:joinrequestmade"));
-               }
-       }
-}
-
-forward(REFERER);
\ No newline at end of file
index fe3600dec9b76de68d0873f0424b2b7e6d2f5e53..04f50919ad5c781e42526d6f65a75e8340a6c983 100644 (file)
@@ -35,17 +35,18 @@ function groups_init() {
        elgg_register_page_handler('groupicon', 'groups_icon_handler');
 
        // Register some actions
-       $action_base = elgg_get_plugins_path() . 'groups/actions';
+       $action_base = elgg_get_plugins_path() . 'groups/actions/groups';
        elgg_register_action("groups/edit", "$action_base/edit.php");
        elgg_register_action("groups/delete", "$action_base/delete.php");
+       elgg_register_action("groups/featured", "$action_base/featured.php", 'admin');
+
+       $action_base .= '/membership';
+       elgg_register_action("groups/invite", "$action_base/invite.php");
        elgg_register_action("groups/join", "$action_base/join.php");
        elgg_register_action("groups/leave", "$action_base/leave.php");
-       elgg_register_action("groups/joinrequest", "$action_base/joinrequest.php");
-       elgg_register_action("groups/killrequest", "$action_base/groupskillrequest.php");
-       elgg_register_action("groups/killinvitation", "$action_base/groupskillinvitation.php");
-       elgg_register_action("groups/addtogroup", "$action_base/addtogroup.php");
-       elgg_register_action("groups/invite", "$action_base/invite.php");
-       elgg_register_action("groups/featured", "$action_base/featured.php", 'admin');
+       elgg_register_action("groups/killrequest", "$action_base/delete_request.php");
+       elgg_register_action("groups/killinvitation", "$action_base/delete_invite.php");
+       elgg_register_action("groups/addtogroup", "$action_base/add.php");
 
        // Add some widgets
        elgg_register_widget_type('a_users_groups', elgg_echo('groups:widget:membership'), elgg_echo('groups:widgets:description'));
@@ -393,24 +394,45 @@ function groups_user_leave_event_listener($event, $object_type, $object) {
  * Grabs groups by invitations
  * Have to override all access until there's a way override access to getter functions.
  *
- * @param $user_guid
- * @return unknown_type
+ * @param int  $user_guid    The user's guid
+ * @param bool $return_guids Return guids rather than ElggGroup objects
+ *
+ * @return array ElggGroups or guids depending on $return_guids
  */
 function groups_get_invited_groups($user_guid, $return_guids = FALSE) {
        $ia = elgg_set_ignore_access(TRUE);
-       $invitations = elgg_get_entities_from_relationship(array('relationship' => 'invited', 'relationship_guid' => $user_guid, 'inverse_relationship' => TRUE, 'limit' => 9999));
+       $groups = elgg_get_entities_from_relationship(array(
+               'relationship' => 'invited',
+               'relationship_guid' => $user_guid,
+               'inverse_relationship' => TRUE,
+               'limit' => 0,
+       ));
        elgg_set_ignore_access($ia);
 
        if ($return_guids) {
                $guids = array();
-               foreach ($invitations as $invitation) {
-                       $guids[] = $invitation->getGUID();
+               foreach ($groups as $group) {
+                       $guids[] = $group->getGUID();
                }
 
                return $guids;
        }
 
-       return $invitations;
+       return $groups;
+}
+
+function groups_join_group($group, $user) {
+       if ($group->join($user)) {
+               // Remove any invite or join request flags
+               remove_entity_relationship($group->guid, 'invited', $user->guid);
+               remove_entity_relationship($user->guid, 'membership_request', $group->guid);
+
+               add_to_river('river/relationship/member/create', 'join', $user->guid, $group->guid);
+
+               return true;
+       }
+
+       return false;
 }
 
 /**
index 60a0ec853d034c009c998e1b66bfdb3c94f4eddd..11cac52de51cbd92ab4f9932ab620bdc3d00ad94 100644 (file)
@@ -1,37 +1,44 @@
 <?php
+/**
+ * A user's group invitations
+ *
+ * @uses $vars['invitations']
+ */
 
 if (!empty($vars['invitations']) && is_array($vars['invitations'])) {
        $user = elgg_get_logged_in_user_entity();
-       foreach($vars['invitations'] as $group)
+       foreach ($vars['invitations'] as $group) {
                if ($group instanceof ElggGroup) {
-               
-               ?>
-               <div class="elgg-image-block group_invitations clearfix">
-                       <?php
-                               echo "<div class='elgg-image'>";
-                               echo elgg_view_entity_icon($group, 'tiny', array('override' => 'true'));
-                               echo "</div>";
+                       $icon = elgg_view_entity_icon($group, 'tiny', array('override' => 'true'));
+
+                       $group_title = elgg_view('output/url', array(
+                               'href' => $group->getURL(),
+                               'text' => $group->name,
+                       ));
 
                        $url = elgg_add_action_tokens_to_url(elgg_get_site_url()."action/groups/join?user_guid={$user->guid}&group_guid={$group->guid}");
-                       ?>
-                       <div class="elgg-body">
-                       <a href="<?php echo $url; ?>" class="elgg-button elgg-button-submit"><?php echo elgg_echo('accept'); ?></a>
-                       <?php           
-                               echo str_replace('<a', '<a class="elgg-button elgg-button-action elgg-state-disabled" ', elgg_view('output/confirmlink',array(
-                                       'href' => "action/groups/killinvitation?user_guid={$user->getGUID()}&group_guid={$group->getGUID()}",
+                       $accept_button = elgg_view('output/url', array(
+                               'href' => $url,
+                               'text' => elgg_echo('accept'),
+                               'class' => 'elgg-button elgg-button-submit',
+                       ));
+
+                       $url = "action/groups/killinvitation?user_guid={$user->getGUID()}&group_guid={$group->getGUID()}";
+                       $delete_button = elgg_view('output/confirmlink', array(
+                                       'href' => $url,
                                        'confirm' => elgg_echo('groups:invite:remove:check'),
                                        'text' => elgg_echo('delete'),
-                               )));
-                       
-                       echo "<p class='entity-title'><a href=\"" . $group->getUrl() . "\">" . $group->name . "</a></p>";
-                       echo "<p class='entity-subtext'>" . $group->briefdescription . "</p>";
+                                       'class' => 'elgg-button elgg-button-action elgg-state-disabled',
+                       ));
 
-                       ?>
-               </div></div>
-               <?php
+                       $body = <<<HTML
+<p class="entity-title">$group_title</p>
+<p class="entity-subtext">$group->briefdescription</p>
+$accept_button $delete_button
+HTML;
+                       echo elgg_view_image_block($icon, $body);
                }
-
-       } else {
+       }
+} else {
                echo "<p class='default_string mtm'>" . elgg_echo('groups:invitations:none') . "</p>";
 }
-?>
\ No newline at end of file
index 0aef3920b15252f7dc3770d66da479ff7182fe9a..32d9867abcf1825cc1d7058ef18b177a030332ca 100644 (file)
@@ -31,14 +31,12 @@ if ($vars['entity']->isMember($user)) {
        $actions[$url] = elgg_echo('groups:leave');
 } else {
        // join - admins can always join.
+       $url = elgg_get_site_url() . "action/groups/join?group_guid={$vars['entity']->getGUID()}";
+       $url = elgg_add_action_tokens_to_url($url);
        if ($vars['entity']->isPublicMembership() || $vars['entity']->canEdit()) {
-               $url = elgg_get_site_url() . "action/groups/join?group_guid={$vars['entity']->getGUID()}";
-               $url = elgg_add_action_tokens_to_url($url);
                $actions[$url] = elgg_echo('groups:join');
        } else {
                // request membership
-               $url = elgg_get_site_url() . "action/groups/joinrequest?group_guid={$vars['entity']->getGUID()}";
-               $url = elgg_add_action_tokens_to_url($url);
                $actions[$url] = elgg_echo('groups:joinrequest');
        }
 }