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

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