summaryrefslogtreecommitdiff
path: root/includes/module_controls_inc.php
blob: 751bcdca66b919639e130aa5cd3379d51d92179b (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
<?php
/**
 * module controlls
 *
 * @copyright (c) 2004-15 bitweaver.org
 *
 * @package users
 * @subpackage functions
 */

/**
 * Initialization
 */
use Bitweaver\KernelTools;

$check_req = (isset($_REQUEST["mc_unassign"])
		   || isset($_REQUEST["mc_up"])
		   || isset($_REQUEST["mc_down"])
		   || isset($_REQUEST["mc_move"]));
if (!$gBitUser->hasPermission( 'p_tidbits_configure_modules' ) && $check_req) {
	$gBitSmarty->assign('msg', KernelTools::tra( "You dont have permission to use this feature" ));
	$gBitSystem->display( 'error.tpl' , null, [ 'display_mode' => 'display' ]);
	die;
}
if ($site_user_assigned_modules != 'y' && $check_req) {
	$gBitSmarty->assign('msg', KernelTools::tra( "This feature is disabled").": site_user_assigned_modules" );
	$gBitSystem->display( 'error.tpl' , null, [ 'display_mode' => 'display' ]);
	die;
}
if ( !$gBitUser->isRegistered() && $check_req) {
	$gBitSmarty->assign('msg', KernelTools::tra( "You must log in to use this feature" ));
	$gBitSystem->display( 'error.tpl' , null, [ 'display_mode' => 'display' ]);
	die;
}
$url = $_SERVER["REQUEST_URI"];
if ($check_req) {
//    global $debugger;
//    $debugger->msg('Module control clicked: '.$check_req);
	// Make defaults if user still ot configure modules for himself
	if (!$usermoduleslib->user_has_assigned_modules($user))
		$usermoduleslib->create_user_assigned_modules($user);
	// Handle control icon click
	if (isset($_REQUEST["mc_up"]))
		$usermoduleslib->swap_up_user_module($_REQUEST["mc_up"], $user);
	elseif (isset($_REQUEST["mc_down"]))
		$usermoduleslib->swap_down_user_module($_REQUEST["mc_down"], $user);
	elseif (isset($_REQUEST["mc_move"]))
		$usermoduleslib->move_module($_REQUEST["mc_move"], $user);
	else
		$usermoduleslib->unassign_user_module($_REQUEST["mc_unassign"], $user);
	// Remove module movemet paramaters from an URL
	// \todo What if 'mc_xxx' arg was not at the end? (if smbd fix URL by hands...)
	//       should I handle this very special (hack?) case?
	$url = preg_replace('/(.*)(\?|&)[1](mc_up|mc_down|mc_move|mc_unassign)=[^&]*/','\1', $url);
}
// Fix locaton if parameter was removed...
if ($url != $_SERVER["REQUEST_URI"]) header('location: '.$url);
$gBitSmarty->assign('current_location', $url);
$gBitSmarty->assign('mpchar', (strpos($url, '?') ? '&' : '?'));
?>