: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
namespace Nextend\SmartSlider3\Renderable\Item;
use Nextend\Framework\Data\Data;
use Nextend\Framework\Pattern\OrderableTrait;
use Nextend\Framework\Pattern\PluggableTrait;
use Nextend\Framework\Pattern\SingletonTrait;
use Nextend\SmartSlider3\BackupSlider\ExportSlider;
use Nextend\SmartSlider3\BackupSlider\ImportSlider;
use Nextend\SmartSlider3\Renderable\AbstractRenderableOwner;
use Nextend\SmartSlider3\Renderable\Component\ComponentLayer;
use Nextend\SmartSlider3\Renderable\Item\Button\ItemButton;
use Nextend\SmartSlider3\Renderable\Item\Heading\ItemHeading;
use Nextend\SmartSlider3\Renderable\Item\Image\ItemImage;
use Nextend\SmartSlider3\Renderable\Item\Missing\ItemMissing;
use Nextend\SmartSlider3\Renderable\Item\Text\ItemText;
use Nextend\SmartSlider3\Renderable\Item\Vimeo\ItemVimeo;
use Nextend\SmartSlider3\Renderable\Item\YouTube\ItemYouTube;
use SingletonTrait, PluggableTrait, OrderableTrait;
public static $i = array();
/** @var AbstractItem[][] */
private static $itemGroups = array();
private static $items = array();
public static function getItems() {
public static function getItem($type) {
return self::$items[$type];
* @return AbstractItem[][]
public static function getItemGroups() {
return self::$itemGroups;
* @param ComponentLayer $layer
* @return AbstractItemFrontend
public static function create($layer, $itemData) {
if (!isset($itemData['type'])) {
throw new Exception('Error with itemData: ' . $itemData);
$type = $itemData['type'];
if ($type == 'missing') {
$type = $itemData['values']['type'];
if (!isset(self::$items[$type])) {
$itemData['values']['type'] = $type;
/** @var AbstractItem $factory */
$factory = self::$items[$type];
$elementID = $layer->getOwner()
if (!isset(self::$i[$elementID])) {
self::$i[$elementID] = 0;
$id = $elementID . 'item' . self::$i[$elementID];
return $factory->createFrontend($id, $itemData['values'], $layer);
* @param AbstractRenderableOwner $slide
public static function getFilled($slide, &$item) {
if (isset(self::$items[$type])) {
$item['values'] = self::$items[$type]->getFilled($slide, new Data($item['values']))
* @param ExportSlider $export
public static function prepareExport($export, $item) {
if (isset(self::$items[$type])) {
self::$items[$type]->prepareExport($export, new Data($item['values']));
* @param ImportSlider $import
public static function prepareImport($import, $item) {
if (isset(self::$items[$type])) {
$item['values'] = self::$items[$type]->prepareImport($import, new Data($item['values']))
public static function prepareSample($item) {
if (isset(self::$items[$type])) {
$item['values'] = self::$items[$type]->prepareSample(new Data($item['values']))
* @param AbstractItem $item
public function addItem($item) {
self::$items[$item->getType()] = $item;
protected function init() {
$this->makePluggable('RenderableItem');
self::uasort(self::$items);
self::$itemGroups[n2_x('Basic', 'Layer group')] = array();
self::$itemGroups[n2_x('Media', 'Layer group')] = array();
foreach (self::$items as $type => $item) {
$group = $item->getGroup();
if (!isset(self::$itemGroups[$group])) {
self::$itemGroups[$group] = array();
self::$itemGroups[$group][$type] = $item;
ItemFactory::getInstance();