protected function formatGroupItemField(GroupItemField $field, ItemInterface $item)
    {
        $name = $field->getName();
        $element = $this->dom->createElement($name);

        $this->addAttributes($element, $field, $item);

        $itemFields = $field->getItemFields();

        foreach ($itemFields as $itemField) {
            $class = get_class($itemField);

            switch ($class) {
                case GroupItemField::class:
                    $itemElements = $this->formatGroupItemField($itemField, $item);
                    break;

                case MediaItemField::class:
                    $itemElements = $this->formatMediaItemField($itemField, $item);
                    break;

                case ItemField::class:
                    $itemElements = $this->formatItemField($itemField, $item);
                    break;
            }

            foreach ($itemElements as $itemElement) {
                $element->appendChild($itemElement);
            }
        }

        return [$element];
    }
protected function formatGroupItemField(GroupItemField $field, ItemInterface $item)
    {
        $name = $field->getName();
        $element = $this->dom->createElement($name);

        $this->addAttributes($element, $field, $item);

        $itemFields = $field->getItemFields();

        foreach ($itemFields as $itemField) {
            $class = get_class($itemField);

            switch ($class) {
                case GroupItemField::class:
                    $itemElements = $this->formatGroupItemField($itemField, $item);
                    break;

                case MediaItemField::class:
                    $itemElements = $this->formatMediaItemField($itemField, $item);
                    break;

                case ItemField::class:
                    $itemElements = $this->formatItemField($itemField, $item);
                    break;
            }

            foreach ($itemElements as $itemElement) {
                $element->appendChild($itemElement);
            }
        }

        return [$element];
    }
protected function formatGroupItemField ( GroupItemField $ field , ItemInterface $ item ) { $ name = $ field -> getName ( ) ; $ element = $ this -> dom -> createElement ( $ name ) ; $ this -> addAttributes ( $ element , $ field , $ item ) ; $ itemFields = $ field -> getItemFields ( ) ; foreach ( $ itemFields as $ itemField ) { $ class = get_class ( $ itemField ) ; switch ( $ class ) { case GroupItemField :: class : $ itemElements = $ this -> formatGroupItemField ( $ itemField , $ item ) ; break ; case MediaItemField :: class : $ itemElements = $ this -> formatMediaItemField ( $ itemField , $ item ) ; break ; case ItemField :: class : $ itemElements = $ this -> formatItemField ( $ itemField , $ item ) ; break ; } foreach ( $ itemElements as $ itemElement ) { $ element -> appendChild ( $ itemElement ) ; } } return [ $ element ] ; }
Format a group item field.

@param GroupItemField $field An item field instance
@param ItemInterface  $item  An entity instance

@return \DOMElement
Format a group item field .