115 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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']);
 | 
						|
    }
 | 
						|
} |