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);
}
}