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/rentman2019.komma.pro/app/Komma/Dynamic/ComponentType/Types/Table.php
<?php

namespace App\Komma\Dynamic\ComponentType\Types;

use App\Komma\Dynamic\Component\ViewComponent;
use App\Komma\Dynamic\ComponentType\ComponentTypes;
use App\Komma\Kms\Core\Attributes\Attribute;
use App\Komma\Kms\Core\Attributes\TextField;

class Table extends AbstractComponentType
{
    protected $id = ComponentTypes::TABLE;

    protected $name = 'table';

    private $ROWS = 11;
    private $COLUMNS = 4;

    public function __construct()
    {
        parent::__construct();

        for ($column = 1; $column <= $this->COLUMNS; $column++) {
            for ($row = 1; $row <= $this->ROWS; $row++) {
                $this->attributes->push(
                    (new TextField('Row '.$row))
                        ->setPlaceholderText('')
                        ->mapValueFrom(Attribute::ValueFromItself, 'c_'.$column.'_r_'.$row)
                        ->setDataAttribute('tab', 'Column '.$column)
                );
                $this->attributes->push(
                    (new TextField('Row '.$row.' link'))
                        ->mapValueFrom(Attribute::ValueFromItself, 'c_'.$column.'_r_'.$row.'_link')
                        ->setDataAttribute('tab', 'Column '.$column)
                );
            }
        }
    }

    public function prepare(ViewComponent $viewComponent) {

        $rows = [];

        $columnCount = $this->COLUMNS;

        for($r = 1; $r <= $this->ROWS; $r++) {

            $row = [];


            for($c = 1; $c <= $columnCount; $c++) {

                if($r == 1 && empty($viewComponent->{'c_'.$c.'_r_'.$r})) {
                    $columnCount = $c - 1;
                    continue 2;
                }


                $row[] = (object) [
                    'text' => $viewComponent->{'c_'.$c.'_r_'.$r},
                    'link' => $viewComponent->{'c_'.$c.'_r_'.$r.'_link'},
                ];

//                unset($viewComponent->{'c_' . $c . '_r_' . $r});
//                unset($viewComponent->{'c_' . $c . '_r_' . $r.'_link'});

            }

            $rows[] = $row;
        }

        $viewComponent->rows = $rows;

        debug($rows);

//        dd($viewComponent);
    }
}