AvailableSitesBlock   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 71
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
c 1
b 0
f 0
lcom 1
cbo 4
dl 0
loc 71
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B render() 0 66 4
1
<?php
2
3
namespace Icybee\Modules\Users\Block;
4
5
use Brickrouge\Button;
6
use Brickrouge\Element;
7
use Brickrouge\Form;
8
9
use Icybee\Binding\Core\PrototypedBindings;
10
11
class AvailableSitesBlock extends Element
12
{
13
	use PrototypedBindings;
14
15
	public function render()
16
	{
17
		$app = $this->app;
18
		$document = $app->document;
19
		$document->js->add('available-sites.js');
20
		$document->page_title = 'Select a website';
21
22
		/* @var $site \Icybee\Modules\Sites\Site */
23
		$site = $app->site;
24
		$ws_title = \ICanBoogie\escape($site->admin_title ? $site->admin_title : $site->title .':' . $site->language);
25
26
		$available = $site->model
27
		->where('site_id IN(' . implode(',', $app->user->restricted_sites_ids) . ')')
28
		->order('admin_title, title')
29
		->all;
30
31
		$uri = substr($_SERVER['REQUEST_URI'], strlen($site->path));
32
		$options = [];
33
34
		foreach ($available as $site)
35
		{
36
			$title = $site->title . ':' . $site->language;
37
38
			if ($site->admin_title)
39
			{
40
				$title .= ' (' . $site->admin_title . ')';
41
			}
42
43
			$options[$site->url . $uri] = $title;
44
		}
45
46
		$form = new Form([
47
48
			Form::ACTIONS => new Button('Change', [
49
50
				'class' => 'btn-primary',
51
				'type' => 'submit'
52
53
			]),
54
55
			Form::RENDERER => Form\GroupRenderer::class,
56
57
			Element::CHILDREN => [
58
59
				new Element('select', [
60
61
					Element::DESCRIPTION => "Select one of the website available to your profile.",
62
					Element::OPTIONS => $options
63
64
				])
65
			],
66
67
			'name' => 'change-working-site',
68
			'class' => 'form-primary'
69
70
		]);
71
72
		return <<<EOT
73
<div id="block--site-access-denied" class="block-alert">
74
<h2>Access denied</h2>
75
<p>You don't have permission to access the administration interface for the website <q>$ws_title</q>,
76
please select another website to work with:</p>
77
$form
78
</div>
79
EOT;
80
	}
81
}
82