ComponentLayer.php
2.95 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
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
<?php
namespace Nextend\SmartSlider3\Renderable\Component;
use Nextend\Framework\View\Html;
use Nextend\SmartSlider3\Renderable\AbstractRenderableOwner;
use Nextend\SmartSlider3\Renderable\Item\AbstractItemFrontend;
use Nextend\SmartSlider3\Renderable\Item\ItemFactory;
class ComponentLayer extends AbstractComponent {
protected $type = 'layer';
/** @var AbstractItemFrontend */
private $item;
public function __construct($index, $owner, $group, $data) {
parent::__construct($index, $owner, $group, $data);
$this->attributes['style'] = '';
$item = $this->data->get('item');
if (empty($item)) {
$items = $this->data->get('items');
$item = $items[0];
}
$this->item = ItemFactory::create($this, $item);
$this->placement->attributes($this->attributes);
}
public function render($isAdmin) {
if ($this->isRenderAllowed()) {
$this->runPlugins();
$this->serveLocalStyle();
$this->prepareHTML();
if ($isAdmin) {
$renderedItem = $this->item->renderAdmin();
} else {
$renderedItem = $this->item->render();
}
if ($renderedItem === false) {
return '';
}
if ($this->item->needHeight()) {
$this->attributes['class'] .= ' n2-ss-layer--need-height';
}
if ($this->item->isAuto()) {
$this->attributes['class'] .= ' n2-ss-layer--auto';
}
$html = $this->renderPlugins($renderedItem);
if ($isAdmin) {
$this->admin();
}
return Html::tag('div', $this->attributes, $html);
}
return '';
}
/**
* @param AbstractRenderableOwner $slide
* @param array $layer
*/
public static function getFilled($slide, &$layer) {
AbstractComponent::getFilled($slide, $layer);
if (empty($layer['item'])) {
$layer['item'] = $layer['items'][0];
unset($layer['items']);
}
ItemFactory::getFilled($slide, $layer['item']);
}
public static function prepareExport($export, $layer) {
if (empty($layer['item'])) {
$layer['item'] = $layer['items'][0];
unset($layer['items']);
}
ItemFactory::prepareExport($export, $layer['item']);
}
public static function prepareImport($import, &$layer) {
if (empty($layer['item'])) {
$layer['item'] = $layer['items'][0];
unset($layer['items']);
}
$layer['item'] = ItemFactory::prepareImport($import, $layer['item']);
}
public static function prepareSample(&$layer) {
if (empty($layer['item'])) {
$layer['item'] = $layer['items'][0];
unset($layer['items']);
}
$layer['item'] = ItemFactory::prepareSample($layer['item']);
}
}