Ich bin kein Entwickler, daher entschuldige, wenn es vielleicht nur Halbwissen ist.
Soweit ich weiß, ist das nicht 1:1 Twig, es werden keine Variablen an das Template gegeben, sondern per Javascript gerendert. Das ist nicht das gleiche wie ein PHP/Twig Stack in der Administration. Es wird twigjs benutzt: Home · twigjs/twig.js Wiki · GitHub
Entsprechend kannst du dir per Javascript auch die Variablen ausgeben lassen, aber nicht per dump, denn zur Zeit in der die Templates gerendert werden, noch garkeine Variablen verfügbar sind. Lass dir doch am besten mit console.log in deinem Javascript die Variablen ausgeben.
Es wird nur Twig im Admin verwendet um ein Block System zu haben. Alle anderen Features funktionieren nicht wirklich. Wenn du etwas ausgeben willst schreib einfach {{ category }} dann wird das als JSON ausgegeben
Irgendwie bekomme ich für meine Erweiterung der Felder der Category trotzdem immer null, keine Ahnung warum.
CustomExtension.php
class CustomExtension implements EntityExtensionInterface
{
public function extendFields(FieldCollection $collection): void
{
$collection->add(
(new ObjectField('custom_struct', 'test'))->addFlags(new Runtime())
);
}
public function getDefinitionClass(): string
{
return CategoryDefinition::class;
}
}
MySubscriber.php
class MySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
CategoryEvents::CATEGORY_LOADED_EVENT => 'onCategoryLoaded'
];
}
public function onCategoryLoaded(EntityLoadedEvent $event): void
{
/** @var CategoryEntity $categoryEntity */
foreach ($event->getEntities() as $categoryEntity) {
$categoryEntity->addExtension('custom_struct', new ArrayEntity(['test'=>'123']));
}
}
}