diff --git a/composer.json b/composer.json index 15b7ac4..0c5e7c1 100644 --- a/composer.json +++ b/composer.json @@ -1,7 +1,7 @@ { "name": "netlogix/neos-content", "description": "This plugin enables Shopware templates to be designed with an Enterprise CMS.", - "version": "0.1.26", + "version": "0.1.27", "type": "shopware-platform-plugin", "license": "MIT", "autoload": { diff --git a/src/Core/Content/NeosNode/NeosNodeDefinition.php b/src/Core/Content/NeosNode/NeosNodeDefinition.php index 4c46a95..a1150ee 100644 --- a/src/Core/Content/NeosNode/NeosNodeDefinition.php +++ b/src/Core/Content/NeosNode/NeosNodeDefinition.php @@ -9,12 +9,12 @@ use Shopware\Core\Framework\DataAbstractionLayer\Field\BoolField; use Shopware\Core\Framework\DataAbstractionLayer\Field\DateField; use Shopware\Core\Framework\DataAbstractionLayer\Field\FkField; +use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\ApiAware; use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\PrimaryKey; use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\Required; use Shopware\Core\Framework\DataAbstractionLayer\Field\IdField; use Shopware\Core\Framework\DataAbstractionLayer\Field\OneToOneAssociationField; use Shopware\Core\Framework\DataAbstractionLayer\Field\ReferenceVersionField; -use Shopware\Core\Framework\DataAbstractionLayer\Field\StringField; use Shopware\Core\Framework\DataAbstractionLayer\Field\VersionField; use Shopware\Core\Framework\DataAbstractionLayer\FieldCollection; @@ -36,13 +36,13 @@ protected function defineFields(): FieldCollection { return new FieldCollection([ new VersionField(), - ((new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey())), + (new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey(), new ApiAware()), (new DateField('created_at', 'createdAt')), (new DateField('updated_at', 'updatedAt')), - (new BoolField('neos_connection', 'neosConnection')), + (new BoolField('neos_connection', 'neosConnection'))->addFlags(new ApiAware()), (new FkField('cms_page_id', 'cmsPageId', CmsPageDefinition::class))->addFlags(new Required()), (new ReferenceVersionField(CmsPageDefinition::class, 'cms_page_version_id')), - (new OneToOneAssociationField('cmsPage', 'cms_page_id', 'id', CmsPageDefinition::class, false)), + (new OneToOneAssociationField('cmsPage', 'cms_page_id', 'id', CmsPageDefinition::class, false))->addFlags(new ApiAware()), ]); } } diff --git a/src/Extension/Definition/Content/Cms/CmsPageDefinitionExtension.php b/src/Extension/Definition/Content/Cms/CmsPageDefinitionExtension.php index aabac3e..860b16c 100644 --- a/src/Extension/Definition/Content/Cms/CmsPageDefinitionExtension.php +++ b/src/Extension/Definition/Content/Cms/CmsPageDefinitionExtension.php @@ -7,16 +7,18 @@ use nlxNeosContent\Core\Content\NeosNode\NeosNodeDefinition; use Shopware\Core\Content\Cms\CmsPageDefinition; use Shopware\Core\Framework\DataAbstractionLayer\EntityExtension; +use Shopware\Core\Framework\DataAbstractionLayer\Field\Flag\ApiAware; use Shopware\Core\Framework\DataAbstractionLayer\Field\OneToOneAssociationField; use Shopware\Core\Framework\DataAbstractionLayer\FieldCollection; -use Symfony\Component\DependencyInjection\Attribute\AutoconfigureTag; class CmsPageDefinitionExtension extends EntityExtension { public function extendFields(FieldCollection $collection): void { $collection->add( - new OneToOneAssociationField('nlxNeosNode', 'id', 'cms_page_id', NeosNodeDefinition::class, true) + (new OneToOneAssociationField( + 'nlxNeosNode', 'id', 'cms_page_id', NeosNodeDefinition::class, true + ))->addFlags(new ApiAware()) ); } diff --git a/src/Listener/NavigationLoadedListener.php b/src/Listener/NavigationLoadedListener.php index 5041074..343da24 100644 --- a/src/Listener/NavigationLoadedListener.php +++ b/src/Listener/NavigationLoadedListener.php @@ -6,6 +6,7 @@ use nlxNeosContent\Factory\NeosPageTreeItemFactory; use nlxNeosContent\Neos\Endpoint\AbstractNeosPageTreeLoader; +use nlxNeosContent\Service\ConfigService; use Shopware\Core\Content\Category\Event\NavigationLoadedEvent; use Symfony\Component\EventDispatcher\Attribute\AsEventListener; @@ -15,11 +16,15 @@ public function __construct( private AbstractNeosPageTreeLoader $neosPageTreeLoader, private NeosPageTreeItemFactory $neosPageTreeItemFactory, + private ConfigService $configService, ) { } public function __invoke(NavigationLoadedEvent $navigationLoadedEvent): void { + if (!$this->configService->isEnabled()) { + return; + } $navigation = $navigationLoadedEvent->getNavigation(); $tree = $navigation->getTree(); diff --git a/src/Service/ConfigService.php b/src/Service/ConfigService.php index 260eca9..dd03e75 100644 --- a/src/Service/ConfigService.php +++ b/src/Service/ConfigService.php @@ -22,7 +22,7 @@ public function __construct( public function isEnabled(?string $salesChannelId = null): bool { - return $this->getBaseUrl($salesChannelId) !== null; + return !empty($this->getBaseUrl($salesChannelId)); } /**