48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?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 '';
 | 
						|
    }
 | 
						|
} |