blob: f72ad5d00305958f3b88ba365936c7071c8a09ea (
plain) (
blame)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
<?php
/**
*
* @author veselicg
*
* Večina funkcij vrača sam klass da omogočamo chaining
*
* Primer uporabe:
*
* $popUp = new PopUp();
*
* # določimo naslovno vrstico popupa. če ni podano je ne prikazuje
* $popUp -> setHeaderText('Moj PopUp:')
*
* # določimo id diva (..<div id="nek_id_diva"...)
* -> setId('nek_id_diva')
*
* # po potrebi dodamo css je (..<div class="css1 css2"...)
* -> addCss('css1')
* -> addCss('css2')
*
* #dodamo vsebino (osrednji del) popupa
* -> setContent($content);
*
* # dodamo gumb Prekliči - je standarden gumb
* $popUp->addButton(new PopUpCancelButton());
*
*
* #dodamo gumb izberi profil
* $button = new PopUpButton($lang['srv_save_profile']);
* $button -> setFloat('right')
* -> setButtonColor('orange')
* -> addAction('onClick','changeColectDataStatus(); return false;');
* $popUp->addButton($button);
*
* # izrišemo div
* echo $popUp; # lahko tudi $popUp->display();
*
*/
class PopUp
{
private $_id = null;
private $_css = array('divPopUp');
private $_headerText = null;
private $_content = null;
private $_buttons = array();
protected $_displayed = false;
public function setId($id)
{
$this->_id = $id;
return $this;
}
public function addCss($css)
{
$this->_css[] = $css;
return $this;
}
public function setHeaderText($headerText)
{
$this->_headerText = $headerText;
return $this;
}
public function setContent($content)
{
$this->_content = $content;
return $this;
}
public function addContent($content)
{
$this->_content .= $content;
return $this;
}
public function addButton(PopUpButton $button)
{
$this->_buttons[] = $button;
return $this;
}
public function display(){
$this->_displayed = true;
#začnemo osnovni div
echo '<div';
if ($this->_id != null){
echo ' id="'.$this->_id.'"';
}
if (count($this->_css) > 0){
echo ' class="'. implode(' ',$this->_css).'"';
}
echo '>';
#dodamo header
if ($this->_headerText != null){
echo '<div class="divPopUp_top">';
echo $this->_headerText;
echo '</div>'; #PM_top
echo '<div class="popup_close"><a href="#" onClick="$(\'#fade\').fadeOut(\'slow\');$(\'#fullscreen\').fadeOut(\'slow\').html(\'\'); return false;">✕</a></div>';
}
#dodamo vsebino - content
echo '<div class="popup_main">';
echo $this->_content;
echo '</div>';
# div z gumbi
echo '<div class="button_holder">';
if (count($this->_buttons) > 0) {
foreach ($this->_buttons AS $button){
echo $button;
}
}
echo '</div>';
#zaključimo osnovni div
echo '</div>';
return $this;
}
public function __toString() {
ob_start();
$this->display();
$content = ob_get_clean();
return $content;
}
public function __destruct() {
if ($this->_displayed == false)
{
$this->display();
}
return $this;
}
}
|