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 '';
 | |
|     }
 | |
| } |