vendor/pimcore/pimcore/models/Element/Data/MarkerHotspotItem.php line 23

Open in your IDE?
  1. <?php
  2. /**
  3.  * Pimcore
  4.  *
  5.  * This source file is available under two different licenses:
  6.  * - GNU General Public License version 3 (GPLv3)
  7.  * - Pimcore Commercial License (PCL)
  8.  * Full copyright and license information is available in
  9.  * LICENSE.md which is distributed with this source code.
  10.  *
  11.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  13.  */
  14. namespace Pimcore\Model\Element\Data;
  15. use Pimcore\Model;
  16. /**
  17.  * @internal
  18.  */
  19. class MarkerHotspotItem implements \ArrayAccess
  20. {
  21.     /**
  22.      * @var string
  23.      */
  24.     public $name '';
  25.     /**
  26.      * @var string
  27.      */
  28.     public $type '';
  29.     /**
  30.      * @var mixed
  31.      */
  32.     public $value;
  33.     /**
  34.      * @param array $data
  35.      */
  36.     public function __construct($data)
  37.     {
  38.         foreach ($data as $key => $value) {
  39.             $setter 'set' $key;
  40.             if (method_exists($this$setter)) {
  41.                 $this->$setter($value);
  42.             }
  43.         }
  44.     }
  45.     /**
  46.      * @return string
  47.      */
  48.     public function getName()
  49.     {
  50.         return $this->name;
  51.     }
  52.     /**
  53.      * @param string $name
  54.      */
  55.     public function setName($name)
  56.     {
  57.         $this->name $name;
  58.     }
  59.     /**
  60.      * @return string
  61.      */
  62.     public function getType()
  63.     {
  64.         return $this->type;
  65.     }
  66.     /**
  67.      * @param string $type
  68.      */
  69.     public function setType($type)
  70.     {
  71.         $this->type $type;
  72.     }
  73.     /**
  74.      * @return mixed
  75.      */
  76.     public function getValue()
  77.     {
  78.         return $this->value;
  79.     }
  80.     /**
  81.      * @param mixed $value
  82.      */
  83.     public function setValue($value)
  84.     {
  85.         $this->value $value;
  86.     }
  87.     /**
  88.      * @param string $offset
  89.      *
  90.      * @return bool
  91.      */
  92.     public function offsetExists($offset): bool
  93.     {
  94.         return property_exists($this$offset);
  95.     }
  96.     /**
  97.      * @param string $offset
  98.      *
  99.      * @return mixed
  100.      */
  101.     public function offsetGet($offset): mixed
  102.     {
  103.         if ($this->offsetExists($offset)) {
  104.             if ($offset === 'value' && in_array($this->type, ['object''asset''document'])) {
  105.                 return Model\Element\Service::getElementById($this->type$this->value);
  106.             }
  107.             return $this->$offset;
  108.         }
  109.         return null;
  110.     }
  111.     /**
  112.      * @param string $offset
  113.      * @param mixed $value
  114.      */
  115.     public function offsetSet($offset$value): void
  116.     {
  117.         if ($this->offsetExists($offset)) {
  118.             if ($value instanceof Model\Element\ElementInterface) {
  119.                 $value $value->getId();
  120.             }
  121.             $this->$offset $value;
  122.         }
  123.     }
  124.     /**
  125.      * @param string $offset
  126.      */
  127.     public function offsetUnset($offset): void
  128.     {
  129.         if ($this->offsetExists($offset)) {
  130.             $this->$offset null;
  131.         }
  132.     }
  133. }