HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/kommabasic.nl/app/Components/Types/DoubleUSP.php
<?php


namespace App\Components\Types;

use App\Buttons\Kms\ButtonService;
use App\Buttons\Models\Button;
use App\Components\ComponentTypes;
use Komma\KMS\Components\Component\ViewComponent;
use Komma\KMS\Components\ComponentType\Types\AbstractComponentType;
use Komma\KMS\Core\Attributes\Attribute;
use Komma\KMS\Core\Attributes\Documents;
use Komma\KMS\Core\Attributes\Models\ImageProperty;
use Komma\KMS\Core\Attributes\MultiSelect;
use Komma\KMS\Core\Attributes\Seperator;
use Komma\KMS\Core\Attributes\TextField;
use Komma\KMS\Core\Attributes\Title;

class DoubleUSP extends AbstractComponentType
{
    protected int $id = ComponentTypes::DOUBLE_USP;
    protected string $name = 'double-usp';

    const POSSIBLE_AMOUNT = 5;

    public function defineAttributesAndTabs()
    {
        for ($i = 0; $i < 2; $i++) {

            $this->addItems([
                (new TextField())
                    ->setLabelText(__('KMS::attributes/components.title'))
                    ->setReference('header_' . ($i + 1))
                    ->setDataAttribute('tab', ($i + 1)),
                (new Seperator())->setDataAttribute('tab', ($i + 1))
            ]);

            for ($j = 0; $j < self::POSSIBLE_AMOUNT; $j++) {
                $this->addItems([
                    (new TextField())
                        ->setLabelText('USP '.($j + 1))
                        ->setReference('USP_'.($i + 1).'_'.($j + 1))
                        ->setDataAttribute('tab', ($i + 1))
                ]);
            }
        }
    }

    public function prepare(ViewComponent $viewComponent)
    {

        for ($i = 0; $i < 2; $i++) {

            $items = collect();
            for($j = 0; $j <= self::POSSIBLE_AMOUNT; $j++) {
                $usp = $viewComponent->{'USP_' . ($i + 1).'_'.($j + 1)};

                if(!empty($usp) ) {
                    $items->push($usp);
                }
                unset($viewComponent->{'USP_' . ($i + 1).'_'.($j + 1)});
            }

            $sideAttributes = [
                'header' => $viewComponent->{'header_' . ($i + 1)},
                'items' => $items,
            ];

            unset($viewComponent->{'header_' . ($i + 1)});

            if($i == 0 ) $viewComponent->left = $sideAttributes;
            else $viewComponent->right = $sideAttributes;
        }

    }
}