89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| 
 | |
| namespace Nextend\SmartSlider3\Widget;
 | |
| 
 | |
| 
 | |
| use Nextend\Framework\Data\Data;
 | |
| use Nextend\Framework\Form\ContainerInterface;
 | |
| use Nextend\Framework\Pattern\GetAssetsPathTrait;
 | |
| use Nextend\SmartSlider3\BackupSlider\ExportSlider;
 | |
| use Nextend\SmartSlider3\BackupSlider\ImportSlider;
 | |
| use Nextend\SmartSlider3\Widget\Group\AbstractWidgetGroup;
 | |
| 
 | |
| abstract class AbstractWidget {
 | |
| 
 | |
|     use GetAssetsPathTrait;
 | |
| 
 | |
|     protected $name;
 | |
| 
 | |
|     protected $key;
 | |
| 
 | |
|     protected $defaults = array();
 | |
| 
 | |
|     /**
 | |
|      * AbstractWidget constructor.
 | |
|      *
 | |
|      * @param AbstractWidgetGroup $widgetGroup
 | |
|      * @param string              $name
 | |
|      * @param array               $defaults
 | |
|      */
 | |
|     public function __construct($widgetGroup, $name, $defaults = array()) {
 | |
| 
 | |
|         $this->name = $name;
 | |
| 
 | |
|         $this->defaults = array_merge($this->defaults, $defaults);
 | |
| 
 | |
|         $widgetGroup->addWidget($name, $this);
 | |
|     }
 | |
| 
 | |
|     public function getName() {
 | |
|         return $this->name;
 | |
|     }
 | |
| 
 | |
|     public function getSubFormImagePath() {
 | |
|         return self::getAssetsPath() . '/' . $this->name . '.png';
 | |
|     }
 | |
| 
 | |
|     public function getDefaults() {
 | |
|         return $this->defaults;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param SliderWidget $sliderWidget
 | |
|      *
 | |
|      * @return AbstractWidgetFrontend
 | |
|      */
 | |
|     public function createFrontend($sliderWidget, $params) {
 | |
|         $className = static::class . 'Frontend';
 | |
| 
 | |
|         $params->fillDefault($this->getDefaults());
 | |
| 
 | |
|         return new $className($sliderWidget, $this, $params);
 | |
|     }
 | |
| 
 | |
|     public function getKey() {
 | |
|         return $this->key;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param ExportSlider $export
 | |
|      * @param Data         $params
 | |
|      */
 | |
|     public function prepareExport($export, $params) {
 | |
|     }
 | |
| 
 | |
| 
 | |
|     /**
 | |
|      * @param ImportSlider $import
 | |
|      * @param Data         $params
 | |
|      */
 | |
|     public function prepareImport($import, $params) {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param ContainerInterface $container
 | |
|      */
 | |
|     abstract public function renderFields($container);
 | |
| } |