HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/winter_site/wp-content/plugins/smart-slider-3/Nextend/Framework/Form/TraitContainer.php
<?php


namespace Nextend\Framework\Form;


trait TraitContainer {

    /**
     * @var ContainedInterface
     */
    protected $first, $last;

    /**
     * @var ContainedInterface[]
     */
    protected $flattenElements = array();

    /**
     * @param ContainedInterface $element
     */
    public function addElement($element) {

        if (!$this->first) {
            $this->first = $element;
        }

        if ($this->last) {
            $this->last->setNext($element);
        }

        $this->last = $element;

        $name = $element->getName();
        if ($name) {
            $this->flattenElements[$name] = $element;
        }
    }

    /**
     * @param ContainedInterface $element
     * @param ContainedInterface $target
     */
    public function insertElementBefore($element, $target) {
        $previous = $target->getPrevious();
        if ($previous) {
            $previous->setNext($element);
        } else {
            $this->first = $element;
        }

        $element->setNext($target);

        $name = $element->getName();
        if ($name) {
            $this->flattenElements[$name] = $element;
        }
    }

    /**
     * @param AbstractField $element
     * @param AbstractField $target
     */
    public function insertElementAfter($element, $target) {

        $next = $target->getNext();
        $target->setNext($element);

        if ($next) {
            $element->setNext($next);
        } else {
            $this->last = $element;
        }

        $name = $element->getName();
        if ($name) {
            $this->flattenElements[$name] = $element;
        }
    }

    /**
     * @param AbstractField $element
     */
    public function removeElement($element) {
        $previous = $element->getPrevious();
        $next     = $element->getNext();

        if ($this->first === $element) {
            $this->first = $next;
        }

        if ($this->last === $element) {
            $this->last = $previous;
        }

        if ($previous) {
            $previous->setNext($next);
        } else {
            $next->setPrevious();
        }
    }

    /**
     * @param $path
     *
     * @return AbstractField
     */
    public function getElement($path) {
        $parts   = explode('/', $path, 2);
        $element = $this->flattenElements[$parts[0]];
        if (!empty($parts[1]) && $element instanceof ContainerInterface) {
            $element = $element->getElement($parts[1]);
        }

        return $element;
    }

    public function getElementIdentifiers() {
        return array_keys($this->flattenElements);
    }
}