aboutsummaryrefslogtreecommitdiff
path: root/mod/groups/actions/edit.php
blob: c8eebbd8482f0fbfe213aeaaef57575c12870d18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
	/**
	 * Elgg groups plugin edit action.
	 * 
	 * @package ElggGroups
	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
	 * @author Marcus Povey
	 * @copyright Curverider Ltd 2008
	 * @link http://elgg.com/
	 */

	// Load configuration
	global $CONFIG;

	// Get group fields
	$input = array();
	foreach($CONFIG->group as $shortname => $valuetype) {
		$input[$shortname] = get_input($shortname);
		if ($valuetype == 'tags')
			$input[$shortname] = string_to_tag_array($input[$shortname]);
	}
	
	$user_guid = get_input('user_guid');
	$user = NULL;
	if (!$user_guid) $user = $_SESSION['user'];
	else
		$user = get_entity($user_guid);
		
	$group_guid = get_input('group_guid');
	
	$group = new ElggGroup($group_guid); // load if present, if not create a new group
	if (($group_guid) && (!$group->canEdit()))
	{
		system_message(elgg_echo("groups:cantedit"));
		
		forward($_SERVER['HTTP_REFERER']);
		exit;
	}
	
	// Assume we can edit or this is a new group
	if (sizeof($input) > 0)
	{
		foreach($input as $shortname => $value) {
			$group->$shortname = $value;
		}
	}
	
	// Validate create
	if (!$group->title)
	{
		system_message(elgg_echo("groups:notitle"));
		
		forward($_SERVER['HTTP_REFERER']);
		exit;
	}
	
	// Get access
	$group->access_id = get_input('access_id', 0);
	
	$group->save();
	
	$group->join($user); // Creator always a member
	
	system_message(elgg_echo("groups:saved"));
	
	// Forward to the user's profile
	forward($group->getUrl());
	exit;
?>