Builder administration area
* Page builder foundation * Form builder document type * Dashboard builder document type * Report builder document type * Menu builder document type * Email builder document type * Query builder document type * Workflow builder document type * Reusable component registry * Form-field registry * Dashboard-widget registry * Hero, heading, and rich-content components * JSON document schema * Saved builder documents * Draft, published, and archived states * Document version history * Reusable builder templates * Component rendering service * Extensible BuilderComponent contract * Authenticated Builder REST endpoints * Administration navigation * Builder permissions * Module registration and test
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
namespace Modules\Builder\Services;
|
||||
final class BuilderRenderer
|
||||
{
|
||||
public function __construct(private BuilderRegistry $registry) {}
|
||||
public function render(array $document, array $context=[]): string
|
||||
{
|
||||
return collect($document['nodes'] ?? [])->map(function(array $node) use ($context) {
|
||||
if (($node['kind'] ?? 'component') === 'container') return '<div class="builder-container">'.$this->render($node,$context).'</div>';
|
||||
return $this->registry->component((string)($node['type'] ?? 'content'))->render($node['properties'] ?? [],$context);
|
||||
})->implode("\n");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user