Modal   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 100
Duplicated Lines 0 %

Coupling/Cohesion

Components 3
Dependencies 3

Importance

Changes 0
Metric Value
wmc 13
c 0
b 0
f 0
lcom 3
cbo 3
dl 0
loc 100
rs 10

11 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A setKeyboard() 0 3 1
A onShow() 0 3 1
A onShown() 0 3 1
A onHide() 0 3 1
A onHidden() 0 3 1
A onLoaded() 0 3 1
A attach() 0 7 1
A setShow() 0 3 1
A setBackdrop() 0 3 1
A setDraggable() 0 9 3
1
<?php
2
3
namespace Ajax\bootstrap\components;
4
5
use Ajax\JsUtils;
6
use Ajax\bootstrap\components\js\Draggable;
7
use Ajax\common\components\SimpleExtComponent;
8
9
/**
10
 * Composant Twitter Bootstrap Modal
11
 * @author jc
12
 * @version 1.001
13
 */
14
class Modal extends SimpleExtComponent {
15
16
	public function __construct(JsUtils $js) {
17
		parent::__construct($js);
18
		$this->uiName="modal";
19
	}
20
21
	public function attach($identifier) {
22
		parent::attach($identifier);
23
		$this->js->addClass($identifier, "modal", true);
24
		$this->js->attr($identifier, "role", "dialog", true);
25
		$this->js->attr($identifier, "aria-labelledby", "myModalLabel", true);
26
		$this->js->attr($identifier, "aria-hidden", true, true);
0 ignored issues
show
Documentation introduced by
true is of type boolean, but the function expects a 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...
27
	}
28
29
	/**
30
	 * Shows the modal when initialized.
31
	 * @param Boolean $value default : true
32
	 * @return $this
33
	 */
34
	public function setShow($value) {
35
		return $this->setParam("show", $value);
36
	}
37
38
	/**
39
	 * Includes a modal-backdrop element.
40
	 * Alternatively, specify static for a backdrop which doesn't close the modal on click.
41
	 * @param Boolean $value default : true
42
	 * @return $this
43
	 */
44
	public function setBackdrop($value) {
45
		return $this->setParam("backdrop", $value);
46
	}
47
48
	/**
49
	 * Closes the modal when escape key is pressed.
50
	 * @param Boolean $value default : false
51
	 * @return $this
52
	 */
53
	public function setKeyboard($value) {
54
		return $this->setParam("keyboard", $value);
55
	}
56
57
	public function setDraggable($value) {
58
		if ($value) {
59
			$this->jsCodes ["draggable"]=new Draggable();
60
			$this->setBackdrop(false);
61
		} else if (array_key_exists("draggable", $this->jsCodes)) {
62
			unset($this->jsCodes ["draggable"]);
63
			unset($this->params ["backdrop"]);
64
		}
65
	}
66
67
	/**
68
	 * This event fires immediately when the show instance method is called.
69
	 * If caused by a click, the clicked element is available as the relatedTarget property of the event.
70
	 * @param string $jsCode
71
	 * @return $this
72
	 */
73
	public function onShow($jsCode) {
74
		return $this->addEvent("show.bs.modal", $jsCode);
75
	}
76
77
	/**
78
	 * This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete).
79
	 * If caused by a click, the clicked element is available as the relatedTarget property of the event.
80
	 * @param string $jsCode
81
	 * @return $this
82
	 */
83
	public function onShown($jsCode) {
84
		return $this->addEvent("shown.bs.modal", $jsCode);
85
	}
86
87
	/**
88
	 * This event is fired immediately when the hide instance method has been called.
89
	 * @param string $jsCode
90
	 * @return $this
91
	 */
92
	public function onHide($jsCode) {
93
		return $this->addEvent("hide.bs.modal", $jsCode);
94
	}
95
96
	/**
97
	 * This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete).
98
	 * @param string $jsCode
99
	 * @return $this
100
	 */
101
	public function onHidden($jsCode) {
102
		return $this->addEvent("hidden.bs.modal", $jsCode);
103
	}
104
105
	/**
106
	 * This event is fired when the modal has loaded content using the remote option.
107
	 * @param string $jsCode
108
	 * @return $this
109
	 */
110
	public function onLoaded($jsCode) {
111
		return $this->addEvent("loaded.bs.modal", $jsCode);
112
	}
113
}