aboutsummaryrefslogtreecommitdiff
path: root/pages/friends/collections/pickercallback.php
blob: c6ed61cf01004c12d661edfedf75557c13942c7e (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
<?php
/**
 * Elgg friends picker callback
 *
 * @package Elgg.Core
 * @subpackage Social.Collections
 */

// Load Elgg engine
require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/engine/start.php");

$site_url = elgg_get_site_url();

// Get callback type (list or picker)
$type = get_input('type', 'picker');

$collection = (int) get_input('collection', 0);
$members = get_members_of_access_collection($collection, true);
if (!$members) {
	$members = array();
}

$friendspicker = (int) get_input('friendspicker', 0);

// Get page owner (bomb out if there isn't one)
$pageowner = elgg_get_page_owner_entity();
if (!$pageowner) {
	forward();
	exit;
}

// Depending on the view type, launch a different view
switch($type) {
	case 'list':
		$js_segment = elgg_view('core/friends/tablelistcountupdate', array(
			'friendspicker' => $friendspicker,
			'count' => sizeof($members),
		));
		$content = elgg_view('core/friends/tablelist', array(
			'entities' => $members,
			'content' => $js_segment,
		));
		break;
	default:
		$friends = $pageowner->getFriends('', 9999);

		$content = elgg_view('input/friendspicker', array(
			'entities' => $friends,
			'value' => $members,
			'callback' => true,
			'friendspicker' => $friendspicker,
			'collection_id' => $collection,
			'formtarget' => $site_url . 'action/friends/collections/edit',
		));
		break;
}

// Output the content
echo $content;