start.php ➔ au_subgroups_pagehandler()   B
last analyzed

Complexity

Conditions 6
Paths 6

Size

Total Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 6
nc 6
nop 1
dl 0
loc 35
rs 8.7377
c 0
b 0
f 0
1
<?php
2
3
namespace AU\SubGroups;
4
5
const AU_SUBGROUPS_RELATIONSHIP = 'au_subgroup_of';
6
const PLUGIN_ID = 'au_subgroups';
7
const PLUGIN_VERSION = 20150912;
8
9
// include our functions
10
require_once 'lib/events.php';
11
require_once 'lib/functions.php';
12
require_once 'lib/hooks.php';
13
14
elgg_register_event_handler('init', 'system', __NAMESPACE__ . '\\init');
15
16
function init()
17
{
18
	// add in our own css
19
	elgg_extend_view('css/elgg', 'au_subgroups/css');
20
	elgg_extend_view('forms/groups/edit', 'forms/au_subgroups/edit');
21
	elgg_extend_view('navigation/breadcrumbs', 'au_subgroups/breadcrumb_override', 1);
22
	elgg_extend_view('group/elements/summary', 'au_subgroups/group/elements/summary');
23
	elgg_extend_view('groups/tool_latest', 'au_subgroups/group_module');
24
	elgg_extend_view('groups/sidebar/members', 'au_subgroups/sidebar/subgroups');
25
	elgg_extend_view('groups/edit', 'au_subgroups/group/transfer');
26
27
	// after group creation or editing we need to check the permissions
28
	elgg_register_event_handler('update', 'group', __NAMESPACE__ . '\\group_visibility');
29
	elgg_register_event_handler('create', 'relationship', __NAMESPACE__ . '\\join_group_event', 0);
30
	elgg_register_event_handler('leave', 'group', __NAMESPACE__ . '\\leave_group_event');
31
32
	// break up the create/update events to be more manageable
33
	elgg_register_event_handler('create', 'group', __NAMESPACE__ . '\\add_parent', 1000);
34
	elgg_register_event_handler('create', 'group', __NAMESPACE__ . '\\clone_layout_on_create', 1000);
35
	elgg_register_event_handler('create', 'group', __NAMESPACE__ . '\\group_visibility', 1000);
36
	elgg_register_event_handler('delete', 'group', __NAMESPACE__ . '\\delete_group_event', 1000);
37
	elgg_register_event_handler('pagesetup', 'system', __NAMESPACE__ . '\\pagesetup');
38
39
	// replace the existing groups library so we can push some display options
40
	elgg_register_library('elgg:groups', __DIR__ . '/lib/groups.php');
41
	elgg_register_page_handler('au_subgroups', __NAMESPACE__ . '\\au_subgroups_pagehandler');
42
	add_group_tool_option('subgroups', elgg_echo('au_subgroups:group:enable'));
43
	add_group_tool_option('subgroups_members_create', elgg_echo('au_subgroups:group:memberspermissions'));
44
45
	// route some urls that go through 'groups' handler
46
	elgg_register_plugin_hook_handler('route', 'groups', __NAMESPACE__ . '\\groups_router', 400);
47
48
	// make sure river entries have the correct access
49
	elgg_register_plugin_hook_handler('creating', 'river', __NAMESPACE__ . '\\river_permissions');
50
51
	// admins of the parent group can edit the sub-group
52
	elgg_register_plugin_hook_handler('permissions_check', 'group', __NAMESPACE__ . '\\group_canedit');
53
54
	// sort out what happens when a parent group is deleted
55
	elgg_register_plugin_hook_handler('action', 'groups/delete', __NAMESPACE__ . '\\delete_group');
56
57
	// remove 'join' and 'request membership' title links on subgroups for people not members of the parent
58
	elgg_register_plugin_hook_handler('register', 'menu:title', __NAMESPACE__ . '\\titlemenu');
59
60
	// register our widget
61
	elgg_register_widget_type('au_subgroups', elgg_echo('au_subgroups'), elgg_echo('au_subgroups:widget:description'), array('groups'));
62
	elgg_register_ajax_view('au_subgroups/search_results');
63
64
	// actions
65
	elgg_register_action('au_subgroups/move', __DIR__ . '/actions/move.php');
66
	elgg_register_event_handler('upgrade', 'system', __NAMESPACE__ . '\\upgrades');
67
}
68
69
function au_subgroups_pagehandler($page)
70
{
71
72
	// dirty check to avoid duplicate page handlers
73
	// since this should only be called from the route, groups hook
74
	if (strpos(current_page_url(), elgg_get_site_url() . 'au_subgroups') === 0) {
75
		return false;
76
	}
77
78
	switch ($page[0]) {
79
		case 'add':
80
			set_input('au_subgroup', true);
0 ignored issues
show
Documentation introduced by
true is of type boolean, but the function expects a string|array<integer,string>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
81
			set_input('au_subgroup_parent_guid', $page[1]);
82
			elgg_set_page_owner_guid($page[1]);
83
			echo elgg_view('resources/au_subgroups/add');
84
			return true;
85
86
		case 'list':
87
			elgg_set_page_owner_guid($page[1]);
88
			echo elgg_view('resources/au_subgroups/list');
89
			break;
90
91
		case 'delete':
92
			elgg_set_page_owner_guid($page[1]);
93
			echo elgg_view('resources/au_subgroups/delete');
94
			break;
95
96
		case 'openclosed':
97
			set_input('filter', $page[1]);
98
			echo elgg_view('resources/au_subgroups/openclosed');
99
			return true;
100
	}
101
102
	return false;
103
}
104