WidgetPlacementSimple.php
1.13 KB
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
<?php
namespace Nextend\SmartSlider3\Widget;
use Nextend\Framework\View\Html;
class WidgetPlacementSimple extends WidgetPlacement {
public function add($renderCallback, $stack, $offset = 0) {
$this->items[] = array(
'stack' => $stack,
'renderCallback' => $renderCallback,
'offset' => $offset
);
}
public function render() {
usort($this->items, function ($a, $b) {
if ($a['stack'] == $b['stack']) {
return 0;
}
return ($a['stack'] < $b['stack']) ? -1 : 1;
});
$out = '';
foreach ($this->items as $item) {
$attributes = array();
if ($item['offset'] != 0) {
$attributes['style'] = '--widget-offset:' . $item['offset'] . 'px;';
}
$out .= call_user_func($item['renderCallback'], $attributes);
}
if (!empty($out)) {
return Html::tag('div', array(
'class' => 'n2-ss-slider-controls n2-ss-slider-controls-' . $this->name
), $out);
}
return '';
}
}