| 1 | <?php
|
|---|
| 2 | /**************************************************************************
|
|---|
| 3 | PLUGIN CLASS
|
|---|
| 4 | --------------------------------------------------------------------------
|
|---|
| 5 | - BP_Groups -- All group functions
|
|---|
| 6 | --------------------------------------------------------------------------
|
|---|
| 7 | **************************************************************************/
|
|---|
| 8 |
|
|---|
| 9 | include_once ( 'bp-groups-functions.php' );
|
|---|
| 10 |
|
|---|
| 11 | class BP_Groups
|
|---|
| 12 | {
|
|---|
| 13 |
|
|---|
| 14 | // set parameters
|
|---|
| 15 | var $message;
|
|---|
| 16 | var $options;
|
|---|
| 17 | var $enabled;
|
|---|
| 18 | var $slug;
|
|---|
| 19 | var $id;
|
|---|
| 20 | var $current_group;
|
|---|
| 21 | var $featuretitle;
|
|---|
| 22 | var $itemtitle;
|
|---|
| 23 | var $groups_table;
|
|---|
| 24 | var $group_members_table;
|
|---|
| 25 |
|
|---|
| 26 | // the BP_Groups object
|
|---|
| 27 | function BP_Groups()
|
|---|
| 28 | {
|
|---|
| 29 |
|
|---|
| 30 | // set the options as an array of arrays, each option has
|
|---|
| 31 | // array('Option description', 'Option name', 'Default value', 'Options type [text|boolean])
|
|---|
| 32 | $this->options = array (
|
|---|
| 33 | array("Application enabled", "bp_groups_enabled", "true", "boolean"),
|
|---|
| 34 | array("Groups application title", "bp_groups_title", "Groups", "text"),
|
|---|
| 35 | array("Group title", "bp_group_title", "group", "text"),
|
|---|
| 36 | array("Groups application description", "bp_groups_description", "Welcome to the groups.", "textarea"),
|
|---|
| 37 | array("No group members", "bp_groups_no_members", "There are no members of this group. Why not be the first?", "text"),
|
|---|
| 38 | array("Already group member", "bp_groups_already_member", "You can't join this group as you are already a member.", "text"),
|
|---|
| 39 | array("Member not invited", "bp_groups_not_invited", "You can't join this group as you have not been invited.", "text"),
|
|---|
| 40 | array("Joined group", "bp_groups_joined", "Congratulations, you've just joined this group.", "text"),
|
|---|
| 41 | array("Join group message", "bp_groups_join_message", "Click here to join this group", "text"),
|
|---|
| 42 | array("Action denied error", "bp_groups_action_denied", "You cannot perform this action", "text"),
|
|---|
| 43 | array("Error saving image", "bp_error_saving_image", "There has been a problem saving your group image. Please see the errors below for more information.", "text"),
|
|---|
| 44 | array("Error duplicate group name", "bp_error_duplicate_group_name", "Sorry, you will have to call your group something different as that name has already been used. Click back and try again. ", "text")
|
|---|
| 45 | );
|
|---|
| 46 |
|
|---|
| 47 | $this->featuretitle = get_site_option("bp_groups_title");
|
|---|
| 48 | $this->itemtitle = get_site_option("bp_group_title");
|
|---|
| 49 |
|
|---|
| 50 | //if (get_site_option("bp_groups_enabled") == "")
|
|---|
| 51 | //{
|
|---|
| 52 |
|
|---|
| 53 | $this->groups_table = $wpdb->base_prefix."bp_groups";
|
|---|
| 54 | $this->group_members_table = $wpdb->base_prefix."bp_group_members";
|
|---|
| 55 |
|
|---|
| 56 | // check the options exist
|
|---|
| 57 | $this->Check_Options();
|
|---|
| 58 |
|
|---|
| 59 | // check the tables exist
|
|---|
| 60 | $this->Tables_Action();
|
|---|
| 61 |
|
|---|
| 62 | // add the menu options
|
|---|
| 63 | $this->Menu_Action();
|
|---|
| 64 |
|
|---|
| 65 | //}
|
|---|
| 66 | }
|
|---|
| 67 |
|
|---|
| 68 | function Menu_Action()
|
|---|
| 69 | {
|
|---|
| 70 | // add the menu options
|
|---|
| 71 | add_action('admin_menu', array(&$this, 'Build_Menu'));
|
|---|
| 72 | }
|
|---|
| 73 |
|
|---|
| 74 | function Tables_Action()
|
|---|
| 75 | {
|
|---|
| 76 | // check the tables exist
|
|---|
| 77 | add_action('admin_head', array(&$this, 'Check_Tables'));
|
|---|
| 78 | }
|
|---|
| 79 |
|
|---|
| 80 | function Build_Menu()
|
|---|
| 81 | {
|
|---|
| 82 | global $userdata, $wpdb;
|
|---|
| 83 |
|
|---|
| 84 | if($wpdb->blogid == $userdata->primary_blog)
|
|---|
| 85 | {
|
|---|
| 86 | add_menu_page("Groups", "Groups", 1, basename(__FILE__), array(&$this, 'Groups'));
|
|---|
| 87 | add_submenu_page(basename(__FILE__), "Your Groups", "Your Groups", 1, basename(__FILE__), array(&$this, 'Groups'));
|
|---|
| 88 | add_submenu_page(basename(__FILE__), "Group Invites", "Group Invites", 1, "groups.invites", array(&$this, 'Invites'));
|
|---|
| 89 | add_submenu_page(basename(__FILE__), "Join Group", "Join Group", 1, "groups.join", array(&$this, 'Join'));
|
|---|
| 90 | add_submenu_page(basename(__FILE__), "Create Group", "Create Group", 1, "groups.create", array(&$this, 'Create'));
|
|---|
| 91 |
|
|---|
| 92 | if ($this->Has_Group_Admin_Rights())
|
|---|
| 93 | {
|
|---|
| 94 | add_submenu_page(basename(__FILE__), "Administer Groups", "Administer Groups", 1, "groups.edit", array(&$this, 'Edit'));
|
|---|
| 95 | }
|
|---|
| 96 | }
|
|---|
| 97 | }
|
|---|
| 98 |
|
|---|
| 99 | // feature a group
|
|---|
| 100 | function Feature_Group($groupid)
|
|---|
| 101 | {
|
|---|
| 102 |
|
|---|
| 103 | $featured_group = (int)$groupid;
|
|---|
| 104 | update_site_option("bp_featured_group", $featured_group);
|
|---|
| 105 | $this->message = "<p class=\"success\">The featured group has been successfully saved.</p>";
|
|---|
| 106 |
|
|---|
| 107 | }
|
|---|
| 108 |
|
|---|
| 109 | // check if the current group exists, and get the details for it
|
|---|
| 110 | function Get_Current_Group()
|
|---|
| 111 | {
|
|---|
| 112 | // get the globals
|
|---|
| 113 | global $wpdb;
|
|---|
| 114 | global $myjournal_members;
|
|---|
| 115 | global $current_user;
|
|---|
| 116 |
|
|---|
| 117 | // get the group details
|
|---|
| 118 | if ($this->slug)
|
|---|
| 119 | {
|
|---|
| 120 | $sql = "select n.id, n.name, n.slug, n.description, n.private, n.open, n.type,
|
|---|
| 121 | count(m.id) as members
|
|---|
| 122 | from ".$this->groups_table." n
|
|---|
| 123 | inner join ".$this->group_members_table." m on m.group_id = n.id and m.status_id = 1
|
|---|
| 124 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 125 | where n.slug = '".$wpdb->escape($this->slug)."'
|
|---|
| 126 | group by n.id;";
|
|---|
| 127 | }
|
|---|
| 128 | if ($this->id)
|
|---|
| 129 | {
|
|---|
| 130 | $sql = "select n.id, n.name, n.slug, n.description, n.private, n.open, n.type,
|
|---|
| 131 | count(m.id) as members
|
|---|
| 132 | from ".$this->groups_table." n
|
|---|
| 133 | inner join ".$this->group_members_table." m on m.group_id = n.id and m.status_id = 1
|
|---|
| 134 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 135 | where n.id = ".$wpdb->escape($this->id)."
|
|---|
| 136 | group by n.id;";
|
|---|
| 137 | }
|
|---|
| 138 | $details = $wpdb->get_row($sql);
|
|---|
| 139 |
|
|---|
| 140 | if ($details->private == "1")
|
|---|
| 141 | {
|
|---|
| 142 | $sql = "select id from ".$this->group_members_table."
|
|---|
| 143 | where group_id = ".$details->id."
|
|---|
| 144 | and user_id = ".$current_user->ID."
|
|---|
| 145 | and status_id in (1,2);";
|
|---|
| 146 |
|
|---|
| 147 | $valid_member = $wpdb->get_var($sql);
|
|---|
| 148 | } else {
|
|---|
| 149 | $valid_member = 1;
|
|---|
| 150 | }
|
|---|
| 151 |
|
|---|
| 152 | // if the group was not found, or it is private and the user isn't a member
|
|---|
| 153 | if (!$details || !$valid_member || get_site_option("bp_groups_enabled") != "true")
|
|---|
| 154 | {
|
|---|
| 155 | $this->current_group->name = "Not found";
|
|---|
| 156 | $this->current_group->description = "Sorry, the group you are looking for cannot be found.";
|
|---|
| 157 | } else {
|
|---|
| 158 | $this->current_group = $details;
|
|---|
| 159 | };
|
|---|
| 160 | }
|
|---|
| 161 |
|
|---|
| 162 | // get basic details of a group
|
|---|
| 163 | function Group_Details($groupid)
|
|---|
| 164 | {
|
|---|
| 165 | // get the globals
|
|---|
| 166 | global $wpdb;
|
|---|
| 167 | $sql = "select name, slug from ".$this->groups_table." where id = ".$wpdb->escape($groupid).";";
|
|---|
| 168 | return $wpdb->get_row($sql);
|
|---|
| 169 | }
|
|---|
| 170 |
|
|---|
| 171 | // search public groups
|
|---|
| 172 | function Search_Groups($q, $start=0, $num=10)
|
|---|
| 173 | {
|
|---|
| 174 | // get the globals
|
|---|
| 175 | global $wpdb;
|
|---|
| 176 |
|
|---|
| 177 | $sql = "select SQL_CALC_FOUND_ROWS id, name, description, slug
|
|---|
| 178 | from ".$this->groups_table."
|
|---|
| 179 | where (name like '%".$wpdb->escape($q)."%' or description like '%".$wpdb->escape($q)."%')
|
|---|
| 180 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 181 |
|
|---|
| 182 | $groups = $wpdb->get_results($sql);
|
|---|
| 183 | if (is_array($groups) && count($groups) > 0)
|
|---|
| 184 | {
|
|---|
| 185 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 186 | for ($i = 0; $i < count($groups); $i++)
|
|---|
| 187 | {
|
|---|
| 188 | $image = $this->Get_Group_Image($groups[$i]->id, "m");
|
|---|
| 189 | $groups[$i]->image = $image;
|
|---|
| 190 | $groups[$i]->rows = $rows;
|
|---|
| 191 | }
|
|---|
| 192 | }
|
|---|
| 193 | return $groups;
|
|---|
| 194 | }
|
|---|
| 195 |
|
|---|
| 196 | // get the latest groups
|
|---|
| 197 | function Latest_Groups($limit=6, $start=0)
|
|---|
| 198 | {
|
|---|
| 199 | // get the globals
|
|---|
| 200 | global $wpdb;
|
|---|
| 201 |
|
|---|
| 202 | $groups = $wpdb->get_results("select id, slug, name, description, open
|
|---|
| 203 | from ".$this->groups_table."
|
|---|
| 204 | where status_id = 1
|
|---|
| 205 | and private = 0
|
|---|
| 206 | order by timestamp desc
|
|---|
| 207 | limit ".$start.", ".$limit.";");
|
|---|
| 208 |
|
|---|
| 209 | return $groups;
|
|---|
| 210 | }
|
|---|
| 211 |
|
|---|
| 212 | // get the latest groups
|
|---|
| 213 | function Popular_Groups($limit=6, $start=0)
|
|---|
| 214 | {
|
|---|
| 215 | // get the globals
|
|---|
| 216 | global $wpdb;
|
|---|
| 217 |
|
|---|
| 218 | $groups = $wpdb->get_results("select n.id, n.slug, n.name, n.description, n.open, count(m.id) as members
|
|---|
| 219 | from ".$this->groups_table." n
|
|---|
| 220 | left outer join ".$this->group_members_table." m on m.group_id = n.id and m.status_id = 1
|
|---|
| 221 | where n.status_id = 1
|
|---|
| 222 | and n.private = 0
|
|---|
| 223 | group by n.id
|
|---|
| 224 | order by members desc
|
|---|
| 225 | limit ".$start.", ".$limit.";");
|
|---|
| 226 |
|
|---|
| 227 | return $groups;
|
|---|
| 228 | }
|
|---|
| 229 |
|
|---|
| 230 | // get the groups the current user is in
|
|---|
| 231 | function User_Groups($start = 0, $num = 10, $all = false)
|
|---|
| 232 | {
|
|---|
| 233 | // get the globals
|
|---|
| 234 | global $wpdb;
|
|---|
| 235 | global $current_user;
|
|---|
| 236 |
|
|---|
| 237 | if ($all)
|
|---|
| 238 | {
|
|---|
| 239 |
|
|---|
| 240 | $sql = "select SQL_CALC_FOUND_ROWS n.id, n.name, n.slug, n.description, n.private,
|
|---|
| 241 | n.open, n.type, m.group_admin,
|
|---|
| 242 | (select count(id) from ".$this->group_members_table." where group_id = n.id and status_id = 1) as members
|
|---|
| 243 | from ".$this->groups_table." n
|
|---|
| 244 | inner join ".$this->group_members_table." m on m.group_id = n.id
|
|---|
| 245 | where m.user_id = ".$current_user->ID."
|
|---|
| 246 | and m.status_id = 1
|
|---|
| 247 | and (n.private = 0
|
|---|
| 248 | or m.user_id = ".$current_user->ID.")
|
|---|
| 249 | group by n.id
|
|---|
| 250 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 251 |
|
|---|
| 252 | } else {
|
|---|
| 253 |
|
|---|
| 254 | $sql = "select SQL_CALC_FOUND_ROWS n.id, n.name, n.slug, n.description, n.private,
|
|---|
| 255 | n.open, n.type, m.group_admin, Group_Members
|
|---|
| 256 | (select count(id) from ".$this->group_members_table." where group_id = n.id and status_id = 1) as members
|
|---|
| 257 | from ".$this->groups_table." n
|
|---|
| 258 | inner join ".$this->group_members_table." m on m.group_id = n.id
|
|---|
| 259 | where m.user_id = ".$current_user->ID."
|
|---|
| 260 | and m.status_id = 1
|
|---|
| 261 | group by n.id
|
|---|
| 262 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 263 |
|
|---|
| 264 | }
|
|---|
| 265 | //print $sql."<br />";
|
|---|
| 266 | $groups = $wpdb->get_results($sql);
|
|---|
| 267 |
|
|---|
| 268 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 269 | $groups[0]->rows = $rows;
|
|---|
| 270 | return $groups;
|
|---|
| 271 | }
|
|---|
| 272 |
|
|---|
| 273 | // get the number of group invitations
|
|---|
| 274 | function User_Invites_Num()
|
|---|
| 275 | {
|
|---|
| 276 | // get the globals
|
|---|
| 277 | global $wpdb;
|
|---|
| 278 | global $current_user;
|
|---|
| 279 |
|
|---|
| 280 | $sql = "select count(n.id)
|
|---|
| 281 | from ".$this->groups_table." n
|
|---|
| 282 | inner join ".$this->group_members_table." m on m.group_id = n.id
|
|---|
| 283 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 284 | where m.user_id = ".$current_user->user_id."
|
|---|
| 285 | and m.status_id = 2
|
|---|
| 286 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 287 | $invites = $wpdb->get_var($sql);
|
|---|
| 288 | if ($invites > 0)
|
|---|
| 289 | {
|
|---|
| 290 | return " (".$invites.")";
|
|---|
| 291 | }
|
|---|
| 292 | }
|
|---|
| 293 |
|
|---|
| 294 | // get the groups the current user has been invited to join
|
|---|
| 295 | function User_Invites($start = 0, $num = 10)
|
|---|
| 296 | {
|
|---|
| 297 | // get the globals
|
|---|
| 298 | global $wpdb;
|
|---|
| 299 | global $current_user;
|
|---|
| 300 |
|
|---|
| 301 | $sql = "select SQL_CALC_FOUND_ROWS n.id, n.name, n.slug, n.description, n.private, n.open, n.type, m.group_admin, m.inviter_id
|
|---|
| 302 | from ".$this->groups_table." n
|
|---|
| 303 | inner join ".$this->group_members_table." m on m.group_id = n.id
|
|---|
| 304 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 305 | where m.user_id = ".$current_user->user_id."
|
|---|
| 306 | and m.status_id = 2
|
|---|
| 307 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 308 | $invites = $wpdb->get_results($sql);
|
|---|
| 309 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 310 | if (is_array($invites) && count($invites) > 0)
|
|---|
| 311 | {
|
|---|
| 312 | for ($i = 0; $i < count($invites); $i++)
|
|---|
| 313 | {
|
|---|
| 314 | $user_details = get_user_details($invites[$i]->inviter_id);
|
|---|
| 315 | $inviter = get_userdata($invites[$i]->inviter_id);
|
|---|
| 316 | $invites[$i]->inviter = $inviter->user_nicename;
|
|---|
| 317 | $invites[$i]->inviter_url = "/members/" . $inviter->user_login . "/";
|
|---|
| 318 | $invites[$i]->siteurl = $user_details->siteurl;
|
|---|
| 319 | $invites[$i]->username = $user_details->username;
|
|---|
| 320 | $invites[$i]->rows = $rows;
|
|---|
| 321 | }
|
|---|
| 322 | }
|
|---|
| 323 | return $invites;
|
|---|
| 324 | }
|
|---|
| 325 |
|
|---|
| 326 | // get the invites for the current group
|
|---|
| 327 | function Group_Invites($start = 0, $num = 10)
|
|---|
| 328 | {
|
|---|
| 329 | // get the globals
|
|---|
| 330 | global $wpdb;
|
|---|
| 331 |
|
|---|
| 332 | $sql = "select SQL_CALC_FOUND_ROWS b.user_id, i.user_id as inviter_id, m.group_admin
|
|---|
| 333 | from ".$this->group_members_table." m
|
|---|
| 334 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 335 | inner join ".$wpdb->base_prefix."users i on i.id = m.inviter_id
|
|---|
| 336 | where m.group_id = ".$this->current_group->id."
|
|---|
| 337 | and m.status_id = 2
|
|---|
| 338 | order by m.timestamp desc
|
|---|
| 339 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 340 | $invites = $wpdb->get_results($sql);
|
|---|
| 341 | if (is_array($invites) && count($invites) > 0)
|
|---|
| 342 | {
|
|---|
| 343 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 344 | for ($i = 0; $i < count($invites); $i++)
|
|---|
| 345 | {
|
|---|
| 346 |
|
|---|
| 347 | $user = get_user_details($invites[$i]->user_id);
|
|---|
| 348 | $owner = get_userdata($invites[$i]->user_id);
|
|---|
| 349 |
|
|---|
| 350 | $inviter_user = get_user_details($invites[$i]->inviter_id);
|
|---|
| 351 | $inviter = get_userdata($invites[$i]->inviter_id);
|
|---|
| 352 |
|
|---|
| 353 | $invites[$i]->inviter = $inviter->user_nicename;
|
|---|
| 354 | $invites[$i]->inviter_siteurl = $inviter->user_url;
|
|---|
| 355 | $invites[$i]->inviter_username = $inviter_user->username;
|
|---|
| 356 | $invites[$i]->inviter_userurl = $inviter_user->path;
|
|---|
| 357 |
|
|---|
| 358 | $invites[$i]->name = $owner->user_nicename;
|
|---|
| 359 | $invites[$i]->siteurl = $owner->user_url;
|
|---|
| 360 | $invites[$i]->username = $user->username;
|
|---|
| 361 | $invites[$i]->userurl = $user->path;
|
|---|
| 362 |
|
|---|
| 363 | $invites[$i]->rows = $rows;
|
|---|
| 364 |
|
|---|
| 365 | }
|
|---|
| 366 | return $invites;
|
|---|
| 367 | } else {
|
|---|
| 368 | return false;
|
|---|
| 369 | }
|
|---|
| 370 | }
|
|---|
| 371 |
|
|---|
| 372 | // get the members in the current group
|
|---|
| 373 | function Group_Members($start = 0, $num = 10)
|
|---|
| 374 | {
|
|---|
| 375 | // get the globals
|
|---|
| 376 | global $wpdb;
|
|---|
| 377 |
|
|---|
| 378 | $sql = "select SQL_CALC_FOUND_ROWS b.id as user_id, b.user_login, m.group_admin
|
|---|
| 379 | from ".$this->group_members_table." m
|
|---|
| 380 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 381 | where m.group_id = ".$this->current_group->id."
|
|---|
| 382 | and m.status_id = 1
|
|---|
| 383 | order by m.timestamp desc
|
|---|
| 384 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 385 | $users = $wpdb->get_results($sql);
|
|---|
| 386 | if (is_array($users) && count($users) > 0)
|
|---|
| 387 | {
|
|---|
| 388 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 389 | $users_out = array();
|
|---|
| 390 | foreach ($users as $user)
|
|---|
| 391 | {
|
|---|
| 392 |
|
|---|
| 393 | $user_details = get_user_details($user->user_login);
|
|---|
| 394 | $user_details->admin = $user->group_admin;
|
|---|
| 395 | $user_details->rows = $rows;
|
|---|
| 396 |
|
|---|
| 397 | $users_out[] = $user_details;
|
|---|
| 398 |
|
|---|
| 399 | }
|
|---|
| 400 | return $users_out;
|
|---|
| 401 | } else {
|
|---|
| 402 | return false;
|
|---|
| 403 | }
|
|---|
| 404 | }
|
|---|
| 405 |
|
|---|
| 406 | // get the deleted members in the current group
|
|---|
| 407 | function Deleted_Members($start = 0, $num = 10)
|
|---|
| 408 | {
|
|---|
| 409 | // get the globals
|
|---|
| 410 | global $wpdb;
|
|---|
| 411 |
|
|---|
| 412 | $sql = "select SQL_CALC_FOUND_ROWS b.id as user_id, b.user_login, m.group_admin
|
|---|
| 413 | from ".$this->group_members_table." m
|
|---|
| 414 | inner join ".$wpdb->base_prefix."users b on b.id = m.user_id
|
|---|
| 415 | where m.group_id = ".$this->current_group->id."
|
|---|
| 416 | and m.status_id = 0
|
|---|
| 417 | order by m.timestamp desc
|
|---|
| 418 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 419 | $users = $wpdb->get_results($sql);
|
|---|
| 420 | if (is_array($users) && count($users) > 0)
|
|---|
| 421 | {
|
|---|
| 422 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 423 | $users_out = array();
|
|---|
| 424 | foreach ($users as $user)
|
|---|
| 425 | {
|
|---|
| 426 |
|
|---|
| 427 | $user_details = get_user_details($user->user_login);
|
|---|
| 428 | $user_details->admin = $user->group_admin;
|
|---|
| 429 | $user_details->rows = $rows;
|
|---|
| 430 |
|
|---|
| 431 | $users_out[] = $user_details;
|
|---|
| 432 |
|
|---|
| 433 | }
|
|---|
| 434 | return $users_out;
|
|---|
| 435 | } else {
|
|---|
| 436 | return false;
|
|---|
| 437 | }
|
|---|
| 438 | }
|
|---|
| 439 |
|
|---|
| 440 | // is the current user a member of the current group
|
|---|
| 441 | function Is_Group_Member($userid = 0)
|
|---|
| 442 | {
|
|---|
| 443 | global $wpdb;
|
|---|
| 444 |
|
|---|
| 445 | if ($userid == 0)
|
|---|
| 446 | {
|
|---|
| 447 | global $current_user;
|
|---|
| 448 | $userid = $current_user->ID;
|
|---|
| 449 | }
|
|---|
| 450 |
|
|---|
| 451 | $sql = "select count(id)
|
|---|
| 452 | from ".$this->group_members_table."
|
|---|
| 453 | where group_id = ".$this->current_group->id."
|
|---|
| 454 | and status_id = 1
|
|---|
| 455 | and user_id = ".$userid.";";
|
|---|
| 456 |
|
|---|
| 457 | if ($wpdb->get_var($sql) == 0)
|
|---|
| 458 | {
|
|---|
| 459 | return false;
|
|---|
| 460 | } else {
|
|---|
| 461 | return true;
|
|---|
| 462 | }
|
|---|
| 463 | }
|
|---|
| 464 |
|
|---|
| 465 | // is the current user an administrator of the current group
|
|---|
| 466 | function Is_Group_Admin($userid = 0)
|
|---|
| 467 | {
|
|---|
| 468 | global $wpdb;
|
|---|
| 469 |
|
|---|
| 470 | if ($userid == 0)
|
|---|
| 471 | {
|
|---|
| 472 | global $current_user;
|
|---|
| 473 | $userid = $current_user->ID;
|
|---|
| 474 | }
|
|---|
| 475 |
|
|---|
| 476 | $sql = "select count(id)
|
|---|
| 477 | from ".$this->group_members_table."
|
|---|
| 478 | where group_id = ".$this->current_group->id."
|
|---|
| 479 | and status_id = 1
|
|---|
| 480 | and user_id = ".$userid."
|
|---|
| 481 | and group_admin = 1;";
|
|---|
| 482 |
|
|---|
| 483 | if ($wpdb->get_var($sql) == 0)
|
|---|
| 484 | {
|
|---|
| 485 | return false;
|
|---|
| 486 | } else {
|
|---|
| 487 | return true;
|
|---|
| 488 | }
|
|---|
| 489 | }
|
|---|
| 490 |
|
|---|
| 491 | // is the current user an administrator of the current group
|
|---|
| 492 | function User_Is_Group_Admin()
|
|---|
| 493 | {
|
|---|
| 494 | global $wpdb;
|
|---|
| 495 | global $current_user;
|
|---|
| 496 |
|
|---|
| 497 | $sql = "select count(id)
|
|---|
| 498 | from ".$this->group_members_table."
|
|---|
| 499 | where group_id = ".$this->current_group->id."
|
|---|
| 500 | and status_id = 1
|
|---|
| 501 | and user_id = ".$current_user->user_id."
|
|---|
| 502 | and group_admin = 1;";
|
|---|
| 503 |
|
|---|
| 504 | if ($wpdb->get_var($sql) == 0)
|
|---|
| 505 | {
|
|---|
| 506 | return false;
|
|---|
| 507 | } else {
|
|---|
| 508 | return true;
|
|---|
| 509 | }
|
|---|
| 510 | }
|
|---|
| 511 |
|
|---|
| 512 | // is the current user an administrator of any groups
|
|---|
| 513 | function Has_Group_Admin_Rights()
|
|---|
| 514 | {
|
|---|
| 515 | global $wpdb;
|
|---|
| 516 | global $current_user;
|
|---|
| 517 |
|
|---|
| 518 | $sql = "select count(id)
|
|---|
| 519 | from ".$this->group_members_table."
|
|---|
| 520 | where status_id = 1
|
|---|
| 521 | and user_id = ".$current_user->ID."
|
|---|
| 522 | and group_admin = 1;";
|
|---|
| 523 |
|
|---|
| 524 | if ($wpdb->get_var($sql) == 0)
|
|---|
| 525 | {
|
|---|
| 526 | return false;
|
|---|
| 527 | } else {
|
|---|
| 528 | return true;
|
|---|
| 529 | }
|
|---|
| 530 | }
|
|---|
| 531 |
|
|---|
| 532 | // get the groups the current user is an administrator of
|
|---|
| 533 | function Admin_Groups($start = 0, $num = 10)
|
|---|
| 534 | {
|
|---|
| 535 | // get the globals
|
|---|
| 536 | global $wpdb;
|
|---|
| 537 | global $current_user;
|
|---|
| 538 |
|
|---|
| 539 | $sql = "select SQL_CALC_FOUND_ROWS n.id, n.name, n.slug, n.description, n.private, n.open, n.type, m.group_admin
|
|---|
| 540 | from ".$this->groups_table." n
|
|---|
| 541 | left outer join ".$this->group_members_table." m on m.group_id = n.id
|
|---|
| 542 | where m.user_id = ".$current_user->ID."
|
|---|
| 543 | and m.status_id = 1
|
|---|
| 544 | and m.group_admin = 1
|
|---|
| 545 | limit ".$wpdb->escape($start).", ".$wpdb->escape($num).";";
|
|---|
| 546 |
|
|---|
| 547 | $groups = $wpdb->get_results($sql);
|
|---|
| 548 | $rows = $wpdb->get_var("SELECT found_rows() AS found_rows");
|
|---|
| 549 | if ($rows > 0)
|
|---|
| 550 | {
|
|---|
| 551 | $groups[0]->rows = $rows;
|
|---|
| 552 | }
|
|---|
| 553 | return $groups;
|
|---|
| 554 | }
|
|---|
| 555 |
|
|---|
| 556 | // is the current user invited to join this group
|
|---|
| 557 | function Is_Invited()
|
|---|
| 558 | {
|
|---|
| 559 | global $current_user;
|
|---|
| 560 | global $wpdb;
|
|---|
| 561 |
|
|---|
| 562 | $sql = "select id
|
|---|
| 563 | from ".$this->group_members_table."
|
|---|
| 564 | where group_id = ".$this->current_group->id."
|
|---|
| 565 | and status_id = 2
|
|---|
| 566 | and user_id = ".$current_user->user_ID.";";
|
|---|
| 567 |
|
|---|
| 568 | if ($wpdb->get_var($sql) == "")
|
|---|
| 569 | {
|
|---|
| 570 | return false;
|
|---|
| 571 | } else {
|
|---|
| 572 | return true;
|
|---|
| 573 | }
|
|---|
| 574 | }
|
|---|
| 575 |
|
|---|
| 576 | // show a form to join this group, if allowed
|
|---|
| 577 | function Join_Group_Form($message="")
|
|---|
| 578 | {
|
|---|
| 579 | if ($message == ""){ $message = get_site_option("bp_groups_join_message"); }
|
|---|
| 580 |
|
|---|
| 581 | if ($this->current_group->open == "1")
|
|---|
| 582 | {
|
|---|
| 583 |
|
|---|
| 584 | print "
|
|---|
| 585 | <a href=\"".$user->siteurl."/wp-admin/admin.php?page=groups.join&join=".$this->current_group->id."\">Click here to join this group</a>
|
|---|
| 586 | ";
|
|---|
| 587 |
|
|---|
| 588 | } else {
|
|---|
| 589 |
|
|---|
| 590 | print "
|
|---|
| 591 | You can only join this group by being invited by a member.
|
|---|
| 592 | ";
|
|---|
| 593 |
|
|---|
| 594 | }
|
|---|
| 595 | }
|
|---|
| 596 |
|
|---|
| 597 | // get the featured group
|
|---|
| 598 | function Featured_Group($imagesize="m")
|
|---|
| 599 | {
|
|---|
| 600 | // if the wall application is enabled
|
|---|
| 601 | if (get_site_option("bp_groups_enabled") == "true")
|
|---|
| 602 | {
|
|---|
| 603 |
|
|---|
| 604 | // get the globals
|
|---|
| 605 | global $wpdb;
|
|---|
| 606 | global $current_site;
|
|---|
| 607 | global $current_user;
|
|---|
| 608 |
|
|---|
| 609 | $featured_group = get_site_option("bp_featured_group");
|
|---|
| 610 |
|
|---|
| 611 | if ($featured_group != "" && $featured_group != "0")
|
|---|
| 612 | {
|
|---|
| 613 |
|
|---|
| 614 | // get the featured group
|
|---|
| 615 | $group = $wpdb->get_row("select id, name, slug, description
|
|---|
| 616 | from ".$this->groups_table."
|
|---|
| 617 | where id = ".$wpdb->escape($featured_group).";");
|
|---|
| 618 |
|
|---|
| 619 | $group->image = $this->Get_Group_Image($group->id, $imagesize);
|
|---|
| 620 |
|
|---|
| 621 | return $group;
|
|---|
| 622 |
|
|---|
| 623 | } else {
|
|---|
| 624 |
|
|---|
| 625 | return false;
|
|---|
| 626 |
|
|---|
| 627 | }
|
|---|
| 628 |
|
|---|
| 629 | }
|
|---|
| 630 |
|
|---|
| 631 | }
|
|---|
| 632 |
|
|---|
| 633 | // try to join a group
|
|---|
| 634 | function Join_Group()
|
|---|
| 635 | {
|
|---|
| 636 | global $wpdb;
|
|---|
| 637 | global $current_user;
|
|---|
| 638 | global $current_user;
|
|---|
| 639 |
|
|---|
| 640 | $this->id = $_GET["join"];
|
|---|
| 641 | $this->Get_Current_Group();
|
|---|
| 642 |
|
|---|
| 643 | // if the current user is already a member of this group
|
|---|
| 644 | if ($this->Is_Group_Member())
|
|---|
| 645 | {
|
|---|
| 646 |
|
|---|
| 647 | $this->message = "<p class=\"error\">".get_site_option("bp_groups_already_member")."</p>";
|
|---|
| 648 |
|
|---|
| 649 | } else {
|
|---|
| 650 |
|
|---|
| 651 | $invited = $this->Is_Invited();
|
|---|
| 652 |
|
|---|
| 653 | // if the group is private and the current user doesn't have an invite
|
|---|
| 654 | if (($this->current_group->private || !$this->current_group->open) && !invited)
|
|---|
| 655 | {
|
|---|
| 656 |
|
|---|
| 657 | $this->message = "<p class=\"error\">".get_site_option("bp_groups_not_invited")."</p>";
|
|---|
| 658 |
|
|---|
| 659 | } else {
|
|---|
| 660 |
|
|---|
| 661 | if ($wpdb->query("insert into ".$this->group_members_table."
|
|---|
| 662 | (timestamp, status_id, user_id, group_id)
|
|---|
| 663 | values
|
|---|
| 664 | (UNIX_TIMESTAMP(), 1, ".$current_user->user_id.", ".$wpdb->escape($_GET["join"]).");"))
|
|---|
| 665 | {
|
|---|
| 666 |
|
|---|
| 667 | $this->id = (int)$_GET["join"];
|
|---|
| 668 | $this->Get_Current_Group();
|
|---|
| 669 |
|
|---|
| 670 | $this->message = "<p class=\"success\">".get_site_option("bp_groups_joined")."</p>";
|
|---|
| 671 | } else {
|
|---|
| 672 | $this->message = "<p class=\"error\">You could not join this group because of a system error</p>";
|
|---|
| 673 | }
|
|---|
| 674 | }
|
|---|
| 675 |
|
|---|
| 676 | }
|
|---|
| 677 | }
|
|---|
| 678 |
|
|---|
| 679 | // get an image for a group
|
|---|
| 680 | function Get_Group_Image($groupid, $size, $fallback=true, $qs = "")
|
|---|
| 681 | {
|
|---|
| 682 | global $current_site;
|
|---|
| 683 | global $myjournal_config;
|
|---|
| 684 |
|
|---|
| 685 | if ($qs != "")
|
|---|
| 686 | {
|
|---|
| 687 | $qs = "?".$qs;
|
|---|
| 688 | }
|
|---|
| 689 |
|
|---|
| 690 | $image = "";
|
|---|
| 691 |
|
|---|
| 692 | // check if the image exists
|
|---|
| 693 | if (file_exists(ABSPATH."wp-content/groups.dir/".$groupid."/group_image_".$size.".jpg"))
|
|---|
| 694 | {
|
|---|
| 695 | $image = $current_site->path."wp-content/groups.dir/".$groupid."/group_image_".$size.".jpg".$qs;
|
|---|
| 696 | } else {
|
|---|
| 697 | if ($fallback)
|
|---|
| 698 | {
|
|---|
| 699 | $image = $current_site->path."wp-content/groups.dir/0/group_image_".$size.".jpg";
|
|---|
| 700 | } else {
|
|---|
| 701 | $image = "";
|
|---|
| 702 | }
|
|---|
| 703 | }
|
|---|
| 704 |
|
|---|
| 705 | return $image;
|
|---|
| 706 | }
|
|---|
| 707 |
|
|---|
| 708 | // check the tables exist, if not create them
|
|---|
| 709 | function Check_Tables()
|
|---|
| 710 | {
|
|---|
| 711 | require_once(ABSPATH . 'wp-admin/upgrade-functions.php');
|
|---|
| 712 | global $wpdb;
|
|---|
| 713 |
|
|---|
| 714 | if($wpdb->get_var("SHOW TABLES LIKE '".$this->groups_table."'") != $this->groups_table)
|
|---|
| 715 | {
|
|---|
| 716 | /* schema:
|
|---|
| 717 | id: auto-incrementing identifier
|
|---|
| 718 | timestamp: time this group was created
|
|---|
| 719 | status_id: status of this group (0 = dead, 1 = live)
|
|---|
| 720 | name: name of this group
|
|---|
| 721 | slug: URL-safe version of the name (lowercase, alphanumeric, spaces replaced with -)
|
|---|
| 722 | description: description of this group
|
|---|
| 723 | private: 1 if this group is private, i.e. can only be seen by members
|
|---|
| 724 | open: 0 if this group is private, i.e. requires members to be invited
|
|---|
| 725 | type: 1 if this group is a business group, 2 if this is group is a leisure group
|
|---|
| 726 | created_by: the ID of the user who created this group
|
|---|
| 727 | */
|
|---|
| 728 | $sql = "CREATE TABLE " . $this->groups_table . " (
|
|---|
| 729 | id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|---|
| 730 | timestamp int DEFAULT '0' NOT NULL,
|
|---|
| 731 | status_id tinyint(2) DEFAULT '1' NOT NULL,
|
|---|
| 732 | name varchar(100) NOT NULL,
|
|---|
| 733 | slug varchar(100) NOT NULL,
|
|---|
| 734 | description varchar(300) NOT NULL,
|
|---|
| 735 | private tinyint(1) DEFAULT '0' NOT NULL,
|
|---|
| 736 | open tinyint(1) DEFAULT '1' NOT NULL,
|
|---|
| 737 | type tinyint(1) DEFAULT '1' NOT NULL,
|
|---|
| 738 | created_by int NOT NULL
|
|---|
| 739 | );";
|
|---|
| 740 | dbDelta($sql);
|
|---|
| 741 | }
|
|---|
| 742 |
|
|---|
| 743 | if($wpdb->get_var("SHOW TABLES LIKE '".$this->group_members_table."'") != $this->group_members_table)
|
|---|
| 744 | {
|
|---|
| 745 | /* schema:
|
|---|
| 746 | id: auto-incrementing identifier
|
|---|
| 747 | timestamp: time this group member was created
|
|---|
| 748 | status_id: status of this group (0 = dead, 1 = live, 2 = invited)
|
|---|
| 749 | user_id: id of this member user
|
|---|
| 750 | group_admin: 1 if this member is a group administrator
|
|---|
| 751 | group_id: id of the group
|
|---|
| 752 | inviter_id: id of the user of the person who invited this member
|
|---|
| 753 | */
|
|---|
| 754 | $sql = "CREATE TABLE " . $this->group_members_table . " (
|
|---|
| 755 | id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
|---|
| 756 | timestamp int DEFAULT '0' NOT NULL,
|
|---|
| 757 | status_id tinyint(2) DEFAULT '1' NOT NULL,
|
|---|
| 758 | user_id int NOT NULL,
|
|---|
| 759 | group_admin tinyint(1) DEFAULT '0' NOT NULL,
|
|---|
| 760 | group_id int NOT NULL,
|
|---|
| 761 | inviter_id int DEFAULT '0' NOT NULL
|
|---|
| 762 | );";
|
|---|
| 763 | dbDelta($sql);
|
|---|
| 764 | }
|
|---|
| 765 | return true;
|
|---|
| 766 | }
|
|---|
| 767 |
|
|---|
| 768 | // check the options exist, if not create them
|
|---|
| 769 | function Check_Options()
|
|---|
| 770 | {
|
|---|
| 771 | foreach ($this->options as $option)
|
|---|
| 772 | {
|
|---|
| 773 | if (get_site_option($option[1]) == "")
|
|---|
| 774 | {
|
|---|
| 775 | add_site_option($option[1], $option[2]);
|
|---|
| 776 | }
|
|---|
| 777 | }
|
|---|
| 778 | return true;
|
|---|
| 779 | }
|
|---|
| 780 |
|
|---|
| 781 | // show the groups list
|
|---|
| 782 | function Groups()
|
|---|
| 783 | {
|
|---|
| 784 | include(ABSPATH."wp-content/mu-plugins/bp-groups/bp-groups-list.php");
|
|---|
| 785 | }
|
|---|
| 786 |
|
|---|
| 787 | // show the create group form
|
|---|
| 788 | function Create()
|
|---|
| 789 | {
|
|---|
| 790 | include(ABSPATH."wp-content/mu-plugins/bp-groups/bp-groups-create.php");
|
|---|
| 791 | }
|
|---|
| 792 |
|
|---|
| 793 | // show the edit group form
|
|---|
| 794 | function Edit()
|
|---|
| 795 | {
|
|---|
| 796 | include(ABSPATH."wp-content/mu-plugins/bp-groups/bp-groups-edit.php");
|
|---|
| 797 | }
|
|---|
| 798 |
|
|---|
| 799 | // show the invitations
|
|---|
| 800 | function Invites()
|
|---|
| 801 | {
|
|---|
| 802 | include(ABSPATH."wp-content/mu-plugins/bp-groups/bp-groups-invites.php");
|
|---|
| 803 | }
|
|---|
| 804 |
|
|---|
| 805 | // show the group join search form
|
|---|
| 806 | function Join()
|
|---|
| 807 | {
|
|---|
| 808 | include(ABSPATH."wp-content/mu-plugins/bp-groups/bp-groups-join.php");
|
|---|
| 809 | }
|
|---|
| 810 |
|
|---|
| 811 | // confirm leaving a group
|
|---|
| 812 | function Confirm_Leave()
|
|---|
| 813 | {
|
|---|
| 814 | $this->message = "<p class=\"warning\">Are you sure you want to leave this group? <a href=\"admin.php?page=groups.class.php&leave=".$_GET["leave"]."&confirm=leave\" class=\"del\">Click here to confirm you want to leave this group</a> <a href=\"admin.php?page=groups.class.php\" class=\"cancel\">Click here to stay in this group</a></p>";
|
|---|
| 815 | }
|
|---|
| 816 |
|
|---|
| 817 | // invite a member
|
|---|
| 818 | function Invite_Member()
|
|---|
| 819 | {
|
|---|
| 820 | // get the globals
|
|---|
| 821 | global $wpdb;
|
|---|
| 822 | global $bp_groups;
|
|---|
| 823 | global $current_user;
|
|---|
| 824 | global $current_user;
|
|---|
| 825 |
|
|---|
| 826 | // is this a deleted member
|
|---|
| 827 | $deleted_member = $wpdb->get_var("select id from ".$this->group_members_table." where user_id = ".$wpdb->escape($_GET["invite"])." and group_id = ".$wpdb->escape($_GET["group"])." and status_id = 0;");
|
|---|
| 828 |
|
|---|
| 829 | // is this an existing member
|
|---|
| 830 | $existing_member = $wpdb->get_var("select id from ".$this->group_members_table." where user_id = ".$wpdb->escape($_GET["invite"])." and group_id = ".$wpdb->escape($_GET["group"])." and status_id = 1;");
|
|---|
| 831 |
|
|---|
| 832 | // is this an already invited member
|
|---|
| 833 | $invited_member = $wpdb->get_var("select id from ".$this->group_members_table." where user_id = ".$wpdb->escape($_GET["invite"])." and group_id = ".$wpdb->escape($_GET["group"])." and status_id = 2;");
|
|---|
| 834 |
|
|---|
| 835 | if ($deleted_member > 0)
|
|---|
| 836 | {
|
|---|
| 837 | $this->message = "<p class=\"error\">You could not invite this member because they are a deleted member of this group. Only a group administrator can invite them back.</p>";
|
|---|
| 838 | } else if ($existing_member > 0) {
|
|---|
| 839 | $this->message = "<p class=\"error\">You could not invite this member because they are already a member of this group.</p>";
|
|---|
| 840 | } else if ($invited_member > 0) {
|
|---|
| 841 | $this->message = "<p class=\"error\">You could not invite this member because they have already been invited to join this group.</p>";
|
|---|
| 842 | } else {
|
|---|
| 843 |
|
|---|
| 844 | // get the members email address
|
|---|
| 845 | $invited_member = get_userdata($_GET["invite"]);
|
|---|
| 846 | $invited_email = $invited_member->user_email;
|
|---|
| 847 | $inviter = $current_user->user_email;
|
|---|
| 848 | $group = $this->Group_Details($_GET["group"]);
|
|---|
| 849 |
|
|---|
| 850 | $message_headers = "MIME-Version: 1.0\n" . "From: \"".get_site_option("myjournal_system_name")."\" <support@".$_SERVER["SERVER_NAME"].">\n" . "Content-Type: text/plain; charset=\"" . get_option('user_charset') . "\"\n";
|
|---|
| 851 |
|
|---|
| 852 | $message = $current_user->user_nicename . " has invited you to join the '" . $group->name . "' group. Please log in to your dashboard to accept or reject this invitation.\n\nRegards, ".get_site_option("myjournal_system_name")." Administrator";
|
|---|
| 853 |
|
|---|
| 854 | if ($wpdb->query("insert into ".$this->group_members_table." (timestamp, status_id, user_id, group_id, inviter_id) values (UNIX_TIMESTAMP(), 2, ".$wpdb->escape($_GET["invite"]).", ".$wpdb->escape($_GET["group"]).", ".$current_user->user_id.");") !== false && wp_mail($invited_email, get_site_option("myjournal_system_name")." group invitation", $message, $message_headers))
|
|---|
| 855 | {
|
|---|
| 856 | $this->message = "<p class=\"success\">Congratulations, you have invited this member</p>";
|
|---|
| 857 | } else {
|
|---|
| 858 | $this->message = "<p class=\"error\">You could not invite this member because of a system error</p>";
|
|---|
| 859 | }
|
|---|
| 860 | }
|
|---|
| 861 | }
|
|---|
| 862 |
|
|---|
| 863 | // leave a group
|
|---|
| 864 | function Leave_Group()
|
|---|
| 865 | {
|
|---|
| 866 | // get the globals
|
|---|
| 867 | global $wpdb;
|
|---|
| 868 | global $current_user;
|
|---|
| 869 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 0 where user_id=".$current_user->user_id." and group_id = ".$wpdb->escape($_GET["leave"]).";") !== false)
|
|---|
| 870 | {
|
|---|
| 871 | $this->message = "<p class=\"success\">You have left the group <a href=\"admin.php?page=groups.class.php&undoleave=".$_GET["leave"]."\" class=\"undo\">Undo?</a></p>";
|
|---|
| 872 | } else {
|
|---|
| 873 | $this->message = "<p class=\"error\">You could not leave this group because of a system error</p>";
|
|---|
| 874 | }
|
|---|
| 875 | }
|
|---|
| 876 |
|
|---|
| 877 | // undo leaving a group
|
|---|
| 878 | function Undo_Leave_Group()
|
|---|
| 879 | {
|
|---|
| 880 | // get the globals
|
|---|
| 881 | global $wpdb;
|
|---|
| 882 | global $current_user;
|
|---|
| 883 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 1 where user_id=".$current_user->user_id." and group_id = ".$wpdb->escape($_GET["undoleave"]).";") !== false)
|
|---|
| 884 | {
|
|---|
| 885 | $this->message = "<p class=\"success\">You have rejoined this group</p>";
|
|---|
| 886 | } else {
|
|---|
| 887 | $this->message = "<p class=\"error\">You could not rejoin this group because of a system error</p>";
|
|---|
| 888 | }
|
|---|
| 889 | }
|
|---|
| 890 |
|
|---|
| 891 | // confirm removing a group member
|
|---|
| 892 | function Confirm_Remove()
|
|---|
| 893 | {
|
|---|
| 894 | if ($this->User_Is_Group_Admin())
|
|---|
| 895 | {
|
|---|
| 896 | $this->message = "<p class=\"warning\">Are you sure you want to remove this member from this group? <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&remove=".$_GET["remove"]."&confirm=remove&view=members\" class=\"del\">Click here to confirm you want to remove this member</a> <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&view=members\" class=\"cancel\">Click here to keep this group member</a></p>";
|
|---|
| 897 | } else {
|
|---|
| 898 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 899 | }
|
|---|
| 900 | }
|
|---|
| 901 |
|
|---|
| 902 | // remove a group member
|
|---|
| 903 | function Remove_Member()
|
|---|
| 904 | {
|
|---|
| 905 | // get the globals
|
|---|
| 906 | global $wpdb;
|
|---|
| 907 | global $current_user;
|
|---|
| 908 | if ($this->User_Is_Group_Admin())
|
|---|
| 909 | {
|
|---|
| 910 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 0 where user_id=".$wpdb->escape($_GET["remove"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 911 | {
|
|---|
| 912 | $this->message = "<p class=\"success\">You have removed this member <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&undoremove=".$_GET["remove"]."&view=members\" class=\"undo\">Undo?</a></p>";
|
|---|
| 913 | } else {
|
|---|
| 914 | $this->message = "<p class=\"error\">This member could not be removed because of a system error</p>";
|
|---|
| 915 | }
|
|---|
| 916 | } else {
|
|---|
| 917 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 918 | }
|
|---|
| 919 | }
|
|---|
| 920 |
|
|---|
| 921 | // undo removing a group member
|
|---|
| 922 | function Undo_Remove_Member()
|
|---|
| 923 | {
|
|---|
| 924 | // get the globals
|
|---|
| 925 | global $wpdb;
|
|---|
| 926 | global $current_user;
|
|---|
| 927 | if ($this->User_Is_Group_Admin())
|
|---|
| 928 | {
|
|---|
| 929 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 1 where user_id=".$wpdb->escape($_GET["undoremove"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 930 | {
|
|---|
| 931 | $this->message = "<p class=\"success\">You have reinstated this member</p>";
|
|---|
| 932 | } else {
|
|---|
| 933 | $this->message = "<p class=\"error\">This member could not be reinstated because of a system error</p>";
|
|---|
| 934 | }
|
|---|
| 935 | } else {
|
|---|
| 936 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 937 | }
|
|---|
| 938 | }
|
|---|
| 939 |
|
|---|
| 940 | // confirm cancelling an invite
|
|---|
| 941 | function Confirm_Cancel()
|
|---|
| 942 | {
|
|---|
| 943 | if ($this->User_Is_Group_Admin())
|
|---|
| 944 | {
|
|---|
| 945 | $this->message = "<p class=\"warning\">Are you sure you want to cancel this group invitation? <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&cancel=".$_GET["cancel"]."&confirm=cancel&view=invites\" class=\"del\">Click here to confirm you want to cancel this invitation</a> <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&view=invites\" class=\"cancel\">Click here to keep this invitation</a></p>";
|
|---|
| 946 | } else {
|
|---|
| 947 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 948 | }
|
|---|
| 949 | }
|
|---|
| 950 |
|
|---|
| 951 | // cancel an invite
|
|---|
| 952 | function Cancel_Invite()
|
|---|
| 953 | {
|
|---|
| 954 | // get the globals
|
|---|
| 955 | global $wpdb;
|
|---|
| 956 | global $current_user;
|
|---|
| 957 | if ($this->User_Is_Group_Admin())
|
|---|
| 958 | {
|
|---|
| 959 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 0 where user_id=".$wpdb->escape($_GET["cancel"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 960 | {
|
|---|
| 961 | $this->message = "<p class=\"success\">You have cancelled this invitation <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&undocancel=".$_GET["cancel"]."&view=invites\" class=\"undo\">Undo?</a></p>";
|
|---|
| 962 | } else {
|
|---|
| 963 | $this->message = "<p class=\"error\">This invitation could not be cancelled because of a system error</p>";
|
|---|
| 964 | }
|
|---|
| 965 | } else {
|
|---|
| 966 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 967 | }
|
|---|
| 968 | }
|
|---|
| 969 |
|
|---|
| 970 | // confirm reinviting a member
|
|---|
| 971 | function Confirm_Reinvite()
|
|---|
| 972 | {
|
|---|
| 973 | if ($this->User_Is_Group_Admin())
|
|---|
| 974 | {
|
|---|
| 975 | $this->message = "<p class=\"warning\">Are you sure you want to invite this member? <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&reinvite=".$_GET["reinvite"]."&confirm=reinvite&view=deleted\" class=\"del\">Click here to confirm you want to reinvite this member</a> <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&view=deleted\" class=\"cancel\">Click here to keep this member deleted</a></p>";
|
|---|
| 976 | } else {
|
|---|
| 977 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 978 | }
|
|---|
| 979 | }
|
|---|
| 980 |
|
|---|
| 981 | // reinvite a member
|
|---|
| 982 | function Reinvite_Member()
|
|---|
| 983 | {
|
|---|
| 984 | // get the globals
|
|---|
| 985 | global $wpdb;
|
|---|
| 986 | global $current_user;
|
|---|
| 987 | if ($this->User_Is_Group_Admin())
|
|---|
| 988 | {
|
|---|
| 989 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 2 where user_id=".$wpdb->escape($_GET["reinvite"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 990 | {
|
|---|
| 991 | $this->message = "<p class=\"success\">You have reinvited this member</p>";
|
|---|
| 992 | } else {
|
|---|
| 993 | $this->message = "<p class=\"error\">This member could not be invited because of a system error</p>";
|
|---|
| 994 | }
|
|---|
| 995 | } else {
|
|---|
| 996 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 997 | }
|
|---|
| 998 | }
|
|---|
| 999 |
|
|---|
| 1000 | // confirm joining a group
|
|---|
| 1001 | function Confirm_Join()
|
|---|
| 1002 | {
|
|---|
| 1003 | $this->message = "<p class=\"warning\">Are you sure you want to join this group? <a href=\"admin.php?page=groups.join&join=".$_GET["join"]."&confirm=join\" class=\"del\">Click here to confirm you want to join this group</a> <a href=\"admin.php?page=groups.join\" class=\"cancel\">Click here to cancel joining this group</a></p>";
|
|---|
| 1004 | }
|
|---|
| 1005 |
|
|---|
| 1006 | // confirm promoting a member
|
|---|
| 1007 | function Confirm_Promote()
|
|---|
| 1008 | {
|
|---|
| 1009 | if ($this->User_Is_Group_Admin())
|
|---|
| 1010 | {
|
|---|
| 1011 | $this->message = "<p class=\"warning\">Are you sure you want to promote this member to be an administrator? <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&promote=".$_GET["promote"]."&confirm=promote&view=members\" class=\"del\">Click here to confirm you want to promote this member</a> <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&view=members\" class=\"cancel\">Click here to cancel</a></p>";
|
|---|
| 1012 | } else {
|
|---|
| 1013 | $this->message = "<p class=\"error\">You cannot perform this action</p>";
|
|---|
| 1014 | }
|
|---|
| 1015 | }
|
|---|
| 1016 |
|
|---|
| 1017 | // promote a member
|
|---|
| 1018 | function Promote_Member()
|
|---|
| 1019 | {
|
|---|
| 1020 | // get the globals
|
|---|
| 1021 | global $wpdb;
|
|---|
| 1022 | global $current_user;
|
|---|
| 1023 | if ($this->User_Is_Group_Admin())
|
|---|
| 1024 | {
|
|---|
| 1025 | if ($wpdb->query("update ".$this->group_members_table." set group_admin = 1 where user_id=".$wpdb->escape($_GET["promote"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 1026 | {
|
|---|
| 1027 | $this->message = "<p class=\"success\">You have promoted this member <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&undopromote=".$_GET["promote"]."&view=members\" class=\"undo\">Undo?</a></p>";
|
|---|
| 1028 | } else {
|
|---|
| 1029 | $this->message = "<p class=\"error\">This member could not be promoted because of a system error</p>";
|
|---|
| 1030 | }
|
|---|
| 1031 | } else {
|
|---|
| 1032 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1033 | }
|
|---|
| 1034 | }
|
|---|
| 1035 |
|
|---|
| 1036 | // undo promote a member
|
|---|
| 1037 | function Undo_Promote_Member()
|
|---|
| 1038 | {
|
|---|
| 1039 | // get the globals
|
|---|
| 1040 | global $wpdb;
|
|---|
| 1041 | global $current_user;
|
|---|
| 1042 | if ($this->User_Is_Group_Admin())
|
|---|
| 1043 | {
|
|---|
| 1044 | if ($wpdb->query("update ".$this->group_members_table." set group_admin = 0 where user_id=".$wpdb->escape($_GET["undopromote"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 1045 | {
|
|---|
| 1046 | $this->message = "<p class=\"success\">You have undone promoting this member</p>";
|
|---|
| 1047 | } else {
|
|---|
| 1048 | $this->message = "<p class=\"error\">You could not undo promoting this member because of a system error</p>";
|
|---|
| 1049 | }
|
|---|
| 1050 | } else {
|
|---|
| 1051 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1052 | }
|
|---|
| 1053 | }
|
|---|
| 1054 |
|
|---|
| 1055 | // confirm reinstating a member
|
|---|
| 1056 | function Confirm_Reinstate()
|
|---|
| 1057 | {
|
|---|
| 1058 | if ($this->User_Is_Group_Admin())
|
|---|
| 1059 | {
|
|---|
| 1060 | $this->message = "<p class=\"warning\">Are you sure you want to reinstate this member? <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&reinstate=".$_GET["reinstate"]."&confirm=reinstate&view=deleted\" class=\"del\">Click here to confirm you want to reinstate this member</a> <a href=\"admin.php?page=groups.edit&group=".$_GET["group"]."&view=deleted\" class=\"cancel\">Click here to keep this member deleted</a></p>";
|
|---|
| 1061 | } else {
|
|---|
| 1062 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1063 | }
|
|---|
| 1064 | }
|
|---|
| 1065 |
|
|---|
| 1066 | // reinstate a member
|
|---|
| 1067 | function Reinstate_Member()
|
|---|
| 1068 | {
|
|---|
| 1069 | // get the globals
|
|---|
| 1070 | global $wpdb;
|
|---|
| 1071 | global $current_user;
|
|---|
| 1072 | if ($this->User_Is_Group_Admin())
|
|---|
| 1073 | {
|
|---|
| 1074 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 1 where user_id=".$wpdb->escape($_GET["reinstate"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 1075 | {
|
|---|
| 1076 | $this->message = "<p class=\"success\">You have reinstated this member</p>";
|
|---|
| 1077 | } else {
|
|---|
| 1078 | $this->message = "<p class=\"error\">This member could not be reinstated because of a system error</p>";
|
|---|
| 1079 | }
|
|---|
| 1080 | } else {
|
|---|
| 1081 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1082 | }
|
|---|
| 1083 | }
|
|---|
| 1084 |
|
|---|
| 1085 | // undo cancelling an invite
|
|---|
| 1086 | function Undo_Cancel_Invite()
|
|---|
| 1087 | {
|
|---|
| 1088 | // get the globals
|
|---|
| 1089 | global $wpdb;
|
|---|
| 1090 | global $current_user;
|
|---|
| 1091 | if ($this->User_Is_Group_Admin())
|
|---|
| 1092 | {
|
|---|
| 1093 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 2 where user_id=".$wpdb->escape($_GET["undocancel"])." and group_id = ".$wpdb->escape($_GET["group"]).";") !== false)
|
|---|
| 1094 | {
|
|---|
| 1095 | $this->message = "<p class=\"success\">You have reinstated this invitation</p>";
|
|---|
| 1096 | } else {
|
|---|
| 1097 | $this->message = "<p class=\"error\">This invitation could not be reinstated because of a system error</p>";
|
|---|
| 1098 | }
|
|---|
| 1099 | } else {
|
|---|
| 1100 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1101 | }
|
|---|
| 1102 | }
|
|---|
| 1103 |
|
|---|
| 1104 | // accept an invitation
|
|---|
| 1105 | function Accept_Invite()
|
|---|
| 1106 | {
|
|---|
| 1107 | // get the globals
|
|---|
| 1108 | global $wpdb;
|
|---|
| 1109 | global $current_user;
|
|---|
| 1110 | global $current_user;
|
|---|
| 1111 |
|
|---|
| 1112 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 1 where user_id=".$current_user->user_id." and group_id = ".$wpdb->escape($_GET["accept"]).";") !== false)
|
|---|
| 1113 | {
|
|---|
| 1114 | $this->id = (int)$_GET["accept"];
|
|---|
| 1115 | $this->Get_Current_Group();
|
|---|
| 1116 |
|
|---|
| 1117 | $this->message = "<p class=\"success\">Congratulations, you are now a member of the group.</p>";
|
|---|
| 1118 | } else {
|
|---|
| 1119 | $this->message = "<p class=\"error\">You could not accept this invitation because of a system error</p>";
|
|---|
| 1120 | }
|
|---|
| 1121 | }
|
|---|
| 1122 |
|
|---|
| 1123 | // decline an invitation
|
|---|
| 1124 | function Decline_Invite()
|
|---|
| 1125 | {
|
|---|
| 1126 | // get the globals
|
|---|
| 1127 | global $wpdb;
|
|---|
| 1128 | global $current_user;
|
|---|
| 1129 |
|
|---|
| 1130 | if ($wpdb->query("update ".$this->group_members_table." set status_id = 0 where user_id=".$current_user->user_id." and group_id = ".$wpdb->escape($_GET["decline"]).";") !== false)
|
|---|
| 1131 | {
|
|---|
| 1132 | $this->message = "<p class=\"success\">You have declined this invitation. You will not be able to join the group unless someone invites you again.</p>";
|
|---|
| 1133 | } else {
|
|---|
| 1134 | $this->message = "<p class=\"error\">You could not decline this invitation because of a system error</p>";
|
|---|
| 1135 | }
|
|---|
| 1136 | }
|
|---|
| 1137 |
|
|---|
| 1138 | // edit a group
|
|---|
| 1139 | function Edit_Group()
|
|---|
| 1140 | {
|
|---|
| 1141 | global $wpdb;
|
|---|
| 1142 |
|
|---|
| 1143 | $this->message = "";
|
|---|
| 1144 |
|
|---|
| 1145 | if ($this->User_Is_Group_Admin())
|
|---|
| 1146 | {
|
|---|
| 1147 | $private = bp_boolean(@$_POST["private"]);
|
|---|
| 1148 | $open = bp_boolean(@$_POST["open"]);
|
|---|
| 1149 | if ($private == 1)
|
|---|
| 1150 | {
|
|---|
| 1151 | $open = 0;
|
|---|
| 1152 | }
|
|---|
| 1153 |
|
|---|
| 1154 | if ($wpdb->query("update ".$this->groups_table." set name = '".substr($wpdb->escape(stripslashes(@$_POST["name"])), 0, 100)."', description = '".substr($wpdb->escape(stripslashes(@$_POST["description"])), 0, 300)."', open = ".$open.$private." where id = ".$wpdb->escape($_GET["group"]).";") !== false && $this->Update_Group_Image())
|
|---|
| 1155 | {
|
|---|
| 1156 | $this->message = "<p class=\"success\">This group has been updated</p>";
|
|---|
| 1157 | } else {
|
|---|
| 1158 | $this->message .= "<p class=\"error\">You could not update this group because of a system error</p>";
|
|---|
| 1159 | }
|
|---|
| 1160 |
|
|---|
| 1161 | } else {
|
|---|
| 1162 | $this->message = "<p class=\"error\">" . get_site_option("bp_groups_action_denied") . "</p>";
|
|---|
| 1163 | }
|
|---|
| 1164 | }
|
|---|
| 1165 |
|
|---|
| 1166 | // create a group
|
|---|
| 1167 | function Create_Group()
|
|---|
| 1168 | {
|
|---|
| 1169 | global $wpdb;
|
|---|
| 1170 | global $current_user;
|
|---|
| 1171 | global $current_site;
|
|---|
| 1172 |
|
|---|
| 1173 | $this->message = "";
|
|---|
| 1174 |
|
|---|
| 1175 | $open = bp_boolean(@$_POST["open"]);
|
|---|
| 1176 | $private = bp_boolean(@$_POST["private"]);
|
|---|
| 1177 | $type = (int)@$_POST["type"];
|
|---|
| 1178 |
|
|---|
| 1179 | if ($private == 1)
|
|---|
| 1180 | {
|
|---|
| 1181 | $open = 0;
|
|---|
| 1182 | }
|
|---|
| 1183 |
|
|---|
| 1184 | $name = substr(stripslashes(@$_POST["name"]), 0, 100);
|
|---|
| 1185 |
|
|---|
| 1186 | $slug = sanitize_title($name);
|
|---|
| 1187 |
|
|---|
| 1188 | if ($wpdb->get_var("select count(id) from ".$this->groups_table." where slug = '".$slug."';") == 0)
|
|---|
| 1189 | {
|
|---|
| 1190 |
|
|---|
| 1191 | $sql = "insert into ".$this->groups_table."
|
|---|
| 1192 | (timestamp, name, slug, description, open, private, type, status_id, created_by)
|
|---|
| 1193 | values
|
|---|
| 1194 | (UNIX_TIMESTAMP(), '".$wpdb->escape($name)."', '".$slug."', '".substr($wpdb->escape(stripslashes(@$_POST["description"])), 0, 300)."', ".$open.", ".$private.", ".$type.", 1, ".$current_user->ID.");";
|
|---|
| 1195 | //print $sql."<br />";
|
|---|
| 1196 | $create_group = $wpdb->query($sql);
|
|---|
| 1197 |
|
|---|
| 1198 | $group_id = $wpdb->get_var("select id from ".$this->groups_table." where slug = '".$slug."' order by timestamp desc limit 1;");
|
|---|
| 1199 |
|
|---|
| 1200 | $sql = "insert into ".$this->group_members_table."
|
|---|
| 1201 | (timestamp, status_id, user_id, group_id, group_admin)
|
|---|
| 1202 | values
|
|---|
| 1203 | (UNIX_TIMESTAMP(), 1, ".$current_user->id.", ".$group_id.", 1);";
|
|---|
| 1204 | //print $sql."<br />";
|
|---|
| 1205 | $insert_member = $wpdb->query($sql);
|
|---|
| 1206 |
|
|---|
| 1207 | $this->id = $group_id;
|
|---|
| 1208 | $this->Get_Current_Group();
|
|---|
| 1209 |
|
|---|
| 1210 | if ($create_group !== false && $insert_member !== false)
|
|---|
| 1211 | {
|
|---|
| 1212 | if ($this->Update_Group_Image())
|
|---|
| 1213 | {
|
|---|
| 1214 | $this->message = "<p class=\"success\">Congratulations, your new group has been created. <a href=\"".$current_site->path."groups/".$slug."/\">Click here to see it</a>.</p>";
|
|---|
| 1215 | } else {
|
|---|
| 1216 | $this->message = "<p class=\"success\">Congratulations, your new group has been created, however the image you have chosen could not be saved. You can try to set the image for this group any time you want. <a href=\"".$current_site->path."groups/".$slug."/\">Click here to see your new group</a>.</p>";
|
|---|
| 1217 | }
|
|---|
| 1218 | } else {
|
|---|
| 1219 | $this->message .= "<p class=\"error\">Sorry, this group could not be created because of a system error (".$wpdb->print_error().")</p>";
|
|---|
| 1220 | }
|
|---|
| 1221 | } else {
|
|---|
| 1222 |
|
|---|
| 1223 | $this->message .= "<p class=\"error\">".get_site_option("bp_error_duplicate_group_name")."<a href=\"".$current_site->path."groups/".$slug."/\">Click here to see the group with that name</a></p>";
|
|---|
| 1224 |
|
|---|
| 1225 | }
|
|---|
| 1226 | }
|
|---|
| 1227 |
|
|---|
| 1228 | // update an image for the current group
|
|---|
| 1229 | function Update_Group_Image()
|
|---|
| 1230 | {
|
|---|
| 1231 | // if there is an image
|
|---|
| 1232 | if (is_array($_FILES["image"]) && $_FILES["image"]["name"] != "")
|
|---|
| 1233 | {
|
|---|
| 1234 |
|
|---|
| 1235 | // Upload the image using the built in WP upload function.
|
|---|
| 1236 | $image = wp_handle_upload($_FILES["image"],
|
|---|
| 1237 | array("action" => "save",
|
|---|
| 1238 | "upload_error_strings" => $upload_error_strings,
|
|---|
| 1239 | "uploads" => $uploads)
|
|---|
| 1240 | );
|
|---|
| 1241 |
|
|---|
| 1242 | global $wpdb;
|
|---|
| 1243 | global $current_site;
|
|---|
| 1244 | global $current_user;
|
|---|
| 1245 | $image = new Image();
|
|---|
| 1246 |
|
|---|
| 1247 | $sizes = array(
|
|---|
| 1248 | array("suffix"=>"f", "width"=>200, "width_max"=>true, "width_fixed"=>false, "height"=>200, "height_max"=>true, "height_fixed"=>false),
|
|---|
| 1249 | array("suffix"=>"l", "width"=>193, "width_max"=>false, "width_fixed"=>true, "height"=>260, "height_max"=>true, "height_fixed"=>false),
|
|---|
| 1250 | array("suffix"=>"m", "width"=>120, "width_max"=>false, "width_fixed"=>true, "height"=>90, "height_max"=>true, "height_fixed"=>false),
|
|---|
| 1251 | array("suffix"=>"t", "width"=>89, "width_max"=>false, "width_fixed"=>true, "height"=>62, "height_max"=>false, "height_fixed"=>true),
|
|---|
| 1252 | array("suffix"=>"s", "width"=>36, "width_max"=>false, "width_fixed"=>true, "height"=>36, "height_max"=>false, "height_fixed"=>true),
|
|---|
| 1253 | );
|
|---|
| 1254 |
|
|---|
| 1255 | // upload and resize the new image
|
|---|
| 1256 | $errors = $image->uploadAndResize($_FILES["image"], "myjournal_group_image", $sizes, "groups.dir/".$this->current_group->id, "jpg");
|
|---|
| 1257 |
|
|---|
| 1258 | if ($errors == "")
|
|---|
| 1259 | {
|
|---|
| 1260 | $value = $option[1];
|
|---|
| 1261 | $image->delete("groups.dir/".$this->current_group->id."_original.jpg");
|
|---|
| 1262 |
|
|---|
| 1263 | return true;
|
|---|
| 1264 | } else {
|
|---|
| 1265 | $this->message .= "<p class=\"error\">".get_site_option("bp_error_saving_image")."</p><ul>" . $errors . "</ul>";
|
|---|
| 1266 | $value = null;
|
|---|
| 1267 | return false;
|
|---|
| 1268 | }
|
|---|
| 1269 |
|
|---|
| 1270 | } else {
|
|---|
| 1271 | // no image supplied
|
|---|
| 1272 | return true;
|
|---|
| 1273 | }
|
|---|
| 1274 | }
|
|---|
| 1275 |
|
|---|
| 1276 | // show the current message
|
|---|
| 1277 | function Show_Message()
|
|---|
| 1278 | {
|
|---|
| 1279 | if ($this->message != "")
|
|---|
| 1280 | {
|
|---|
| 1281 | print $this->message;
|
|---|
| 1282 | }
|
|---|
| 1283 | }
|
|---|
| 1284 | }
|
|---|
| 1285 | // create the new BP_Groups object
|
|---|
| 1286 | global $bp_groups;
|
|---|
| 1287 | $bp_groups = new BP_Groups();
|
|---|
| 1288 | ?>
|
|---|