Administration: keine Daten mit dump()

Ich weiß nicht was ich falsch mache. Das erweitern des backend templates funktioniert, allerdings kann ich auf keinerlei Daten zugreifen.

Ich möchte einen Block aus sw-category-detail-base.html.twig erweitern, das funktioniert auch soweit mit

{% block sw_category_detail_information_name %}
    {% parent %}
    {{ dump() }}
    {{ category.name }} {{ dump(category) }}
    {{ dump(categoryLayout) }}
{% endblock %}

Allerdings bekomme ich keinerlei Daten mit dump oder direkter Ausgabe. Irgendeinen Text direkt ausgeben funktionert allerdings.
Meine main.js
 

import { Component } from 'src/core/shopware';
import template from "./module/sw-category/view/sw-category-detail-base/sw-category-detail-base.html.twig";

Component.override('sw-category-detail-base', {
    template,
    computed: {
        categoryLayout() {
            return [
                {value: 'normal', label: 'normal'},
                {value: 'alternative', label: 'alternativ'}
            ];
        }
    }
});

Ich hoffe mir kann jemand einen Tipp geben, bin schon den ganzen Tag am Fluchen. Für einen Profi sicher ein Leichtes das zu beantworten.

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.

1 Like

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

1 Like

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