vendor/pimcore/pimcore/models/DataObject/ClassDefinition/Layout.php line 310

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\DataObject\ClassDefinition;
  15. use Pimcore\Model;
  16. use Pimcore\Model\Element;
  17. class Layout
  18. {
  19.     use Model\DataObject\ClassDefinition\Helper\VarExportElement\ChildsCompatibilityTrait;
  20.     /**
  21.      * @var string
  22.      */
  23.     public $name;
  24.     /**
  25.      * @var string
  26.      */
  27.     public $type;
  28.     /**
  29.      * @var string
  30.      */
  31.     public $region;
  32.     /**
  33.      * @var string
  34.      */
  35.     public $title;
  36.     /**
  37.      * @var string|int
  38.      */
  39.     public $width 0;
  40.     /**
  41.      * @var string|int
  42.      */
  43.     public $height 0;
  44.     /**
  45.      * @var bool
  46.      */
  47.     public $collapsible false;
  48.     /**
  49.      * @var bool
  50.      */
  51.     public $collapsed false;
  52.     /**
  53.      * @var string
  54.      */
  55.     public $bodyStyle;
  56.     /**
  57.      * @var string
  58.      */
  59.     public $datatype 'layout';
  60.     /**
  61.      * @var array
  62.      */
  63.     public $permissions;
  64.     /**
  65.      * @var array
  66.      */
  67.     public $childs = [];
  68.     /**
  69.      * @var bool
  70.      */
  71.     public $locked false;
  72.     /**
  73.      * @return string
  74.      */
  75.     public function getName()
  76.     {
  77.         return $this->name;
  78.     }
  79.     /**
  80.      * @return string
  81.      */
  82.     public function getType()
  83.     {
  84.         return $this->type;
  85.     }
  86.     /**
  87.      * @return string
  88.      */
  89.     public function getRegion()
  90.     {
  91.         return $this->region;
  92.     }
  93.     /**
  94.      * @return string
  95.      */
  96.     public function getTitle()
  97.     {
  98.         return $this->title;
  99.     }
  100.     /**
  101.      * @return int
  102.      */
  103.     public function getWidth()
  104.     {
  105.         return $this->width;
  106.     }
  107.     /**
  108.      * @return int
  109.      */
  110.     public function getHeight()
  111.     {
  112.         return $this->height;
  113.     }
  114.     /**
  115.      * @return bool
  116.      */
  117.     public function getCollapsible()
  118.     {
  119.         return $this->collapsible;
  120.     }
  121.     /**
  122.      * @return array
  123.      */
  124.     public function getPermissions()
  125.     {
  126.         return $this->permissions;
  127.     }
  128.     /**
  129.      * @param string $name
  130.      *
  131.      * @return $this
  132.      */
  133.     public function setName($name)
  134.     {
  135.         $this->name $name;
  136.         return $this;
  137.     }
  138.     /**
  139.      * @param string $type
  140.      *
  141.      * @return $this
  142.      */
  143.     public function setType($type)
  144.     {
  145.         $this->type $type;
  146.         return $this;
  147.     }
  148.     /**
  149.      * @param string $region
  150.      *
  151.      * @return $this
  152.      */
  153.     public function setRegion($region)
  154.     {
  155.         $this->region $region;
  156.         return $this;
  157.     }
  158.     /**
  159.      * @param string $title
  160.      *
  161.      * @return $this
  162.      */
  163.     public function setTitle($title)
  164.     {
  165.         $this->title $title;
  166.         return $this;
  167.     }
  168.     /**
  169.      * @param string|int $width
  170.      *
  171.      * @return $this
  172.      */
  173.     public function setWidth($width)
  174.     {
  175.         if (is_numeric($width)) {
  176.             $width = (int)$width;
  177.         }
  178.         $this->width $width;
  179.         return $this;
  180.     }
  181.     /**
  182.      * @param string|int $height
  183.      *
  184.      * @return $this
  185.      */
  186.     public function setHeight($height)
  187.     {
  188.         if (is_numeric($height)) {
  189.             $height = (int)$height;
  190.         }
  191.         $this->height $height;
  192.         return $this;
  193.     }
  194.     /**
  195.      * @param bool $collapsible
  196.      *
  197.      * @return $this
  198.      */
  199.     public function setCollapsible($collapsible)
  200.     {
  201.         $this->collapsible = (bool) $collapsible;
  202.         $this->filterCollapsibleValue();
  203.         return $this;
  204.     }
  205.     /**
  206.      * @param array $permissions
  207.      *
  208.      * @return $this
  209.      */
  210.     public function setPermissions($permissions)
  211.     {
  212.         $this->permissions $permissions;
  213.         return $this;
  214.     }
  215.     /**
  216.      * @return array
  217.      */
  218.     public function getChildren()
  219.     {
  220.         return $this->childs;
  221.     }
  222.     /**
  223.      * @param array $children
  224.      *
  225.      * @return $this
  226.      */
  227.     public function setChildren($children)
  228.     {
  229.         $this->childs $children;
  230.         return $this;
  231.     }
  232.     /**
  233.      * @return bool
  234.      */
  235.     public function hasChildren()
  236.     {
  237.         if (is_array($this->childs) && count($this->childs) > 0) {
  238.             return true;
  239.         }
  240.         return false;
  241.     }
  242.     /**
  243.      * @param Data|Layout $child
  244.      */
  245.     public function addChild($child)
  246.     {
  247.         $this->childs[] = $child;
  248.     }
  249.     /**
  250.      * @param array $data
  251.      * @param array $blockedKeys
  252.      *
  253.      * @return $this
  254.      */
  255.     public function setValues($data = [], $blockedKeys = [])
  256.     {
  257.         foreach ($data as $key => $value) {
  258.             if (!in_array($key$blockedKeys)) {
  259.                 $method 'set' ucfirst($key);
  260.                 if (method_exists($this$method)) {
  261.                     $this->$method($value);
  262.                 }
  263.             }
  264.         }
  265.         return $this;
  266.     }
  267.     /**
  268.      * @return mixed
  269.      */
  270.     public function getDatatype()
  271.     {
  272.         return $this->datatype;
  273.     }
  274.     /**
  275.      * @param mixed $datatype
  276.      *
  277.      * @return $this
  278.      */
  279.     public function setDatatype($datatype)
  280.     {
  281.         $this->datatype $datatype;
  282.         return $this;
  283.     }
  284.     /**
  285.      *
  286.      * @return bool
  287.      */
  288.     public function getLocked()
  289.     {
  290.         return $this->locked;
  291.     }
  292.     /**
  293.      * @param bool $locked
  294.      *
  295.      * @return $this
  296.      */
  297.     public function setLocked($locked)
  298.     {
  299.         $this->locked = (bool) $locked;
  300.         return $this;
  301.     }
  302.     /**
  303.      * @param bool $collapsed
  304.      *
  305.      * @return $this
  306.      */
  307.     public function setCollapsed($collapsed)
  308.     {
  309.         $this->collapsed = (bool) $collapsed;
  310.         $this->filterCollapsibleValue();
  311.         return $this;
  312.     }
  313.     /**
  314.      * @return bool
  315.      */
  316.     public function getCollapsed()
  317.     {
  318.         return $this->collapsed;
  319.     }
  320.     /**
  321.      * @param string $bodyStyle
  322.      *
  323.      * @return $this
  324.      */
  325.     public function setBodyStyle($bodyStyle)
  326.     {
  327.         $this->bodyStyle $bodyStyle;
  328.         return $this;
  329.     }
  330.     /**
  331.      * @return string
  332.      */
  333.     public function getBodyStyle()
  334.     {
  335.         return $this->bodyStyle;
  336.     }
  337.     /**
  338.      * @return Layout
  339.      */
  340.     protected function filterCollapsibleValue()
  341.     {
  342.         //if class definition set as collapsed the code below forces collapsible, issue: #778
  343.         $this->collapsible $this->getCollapsed() || $this->getCollapsible();
  344.         return $this;
  345.     }
  346. }