diff --git a/.github/workflows/packages_components.yml b/.github/workflows/packages_components.yml
index 6af99d233e..27986d3709 100644
--- a/.github/workflows/packages_components.yml
+++ b/.github/workflows/packages_components.yml
@@ -19,7 +19,7 @@ jobs:
- name: "List Packages"
id: create-list
- run: echo "packages=$(find src/CoreShop/Bundle -mindepth 2 -maxdepth 2 -type f -name composer.json -exec dirname '{}' \; | sed -e 's/src\/CoreShop\///g' | sort | jq --raw-input . | jq --slurp . | jq -c .)" >> $GITHUB_OUTPUT
+ run: echo "packages=$(find src/CoreShop/Component -mindepth 2 -maxdepth 2 -type f -name composer.json -exec dirname '{}' \; | sed -e 's/src\/CoreShop\///g' | sort | jq --raw-input . | jq --slurp . | jq -c .)" >> $GITHUB_OUTPUT
outputs:
packages: "${{ steps.create-list.outputs.packages }}"
diff --git a/src/CoreShop/Bundle/FrontendBundle/Resources/install/pimcore/staticroutes.yml b/src/CoreShop/Bundle/FrontendBundle/Resources/install/pimcore/staticroutes.yml
index 981b3933d8..62ba5dee90 100644
--- a/src/CoreShop/Bundle/FrontendBundle/Resources/install/pimcore/staticroutes.yml
+++ b/src/CoreShop/Bundle/FrontendBundle/Resources/install/pimcore/staticroutes.yml
@@ -247,8 +247,8 @@ routes:
priority: 2
coreshop_wishlist_summary:
- pattern: '/(\w+)\/shop\/wishlist(?:\/((.*)))$/'
- reverse: '/%_locale/shop/wishlist/{%identifier}'
+ pattern: '/(\w+)\/shop\/wishlist(?:\/((.*)))?$/'
+ reverse: '/%_locale/shop/wishlist{/%identifier}'
controller: 'coreshop.storage_list.controller.wishlist:summaryAction'
variables: _locale,identifier
priority: 2
diff --git a/src/CoreShop/Bundle/FrontendBundle/Resources/views/Wishlist/share/summary.html.twig b/src/CoreShop/Bundle/FrontendBundle/Resources/views/Wishlist/share/summary.html.twig
deleted file mode 100644
index b2ebf9216b..0000000000
--- a/src/CoreShop/Bundle/FrontendBundle/Resources/views/Wishlist/share/summary.html.twig
+++ /dev/null
@@ -1,50 +0,0 @@
-{% extends '@CoreShopFrontend/layout.html.twig' %}
-{% import '@CoreShopFrontend/Common/Macro/currency.html.twig' as currency %}
-
-{% block content %}
- {% if storage_list.hasItems %}
-
- {% else %}
- {{ 'coreshop.ui.wishlist_empty'|trans }}
- {% endif %}
-
-{% endblock %}
diff --git a/src/CoreShop/Bundle/ResourceBundle/Resources/config/services.yml b/src/CoreShop/Bundle/ResourceBundle/Resources/config/services.yml
index b6a3812585..56822bb9b0 100755
--- a/src/CoreShop/Bundle/ResourceBundle/Resources/config/services.yml
+++ b/src/CoreShop/Bundle/ResourceBundle/Resources/config/services.yml
@@ -97,4 +97,10 @@ services:
decorates: 'CoreShop\Component\Pimcore\Slug\DataObjectSlugGeneratorInterface'
arguments:
- '@CoreShop\Bundle\ResourceBundle\Slug\ResourceConfigurationSlugGenerator.inner'
+ - '@CoreShop\Component\Resource\Metadata\RegistryInterface'
+
+ CoreShop\Component\Resource\Pimcore\ResourceSlugLinkGenerator:
+ decorates: 'CoreShop\Component\Pimcore\Slug\SluggableLinkGenerator'
+ arguments:
+ - '@CoreShop\Component\Resource\Pimcore\ResourceSlugLinkGenerator.inner'
- '@CoreShop\Component\Resource\Metadata\RegistryInterface'
\ No newline at end of file
diff --git a/src/CoreShop/Bundle/StorageListBundle/Controller/StorageListController.php b/src/CoreShop/Bundle/StorageListBundle/Controller/StorageListController.php
index b3e6bc5616..a5772e368e 100644
--- a/src/CoreShop/Bundle/StorageListBundle/Controller/StorageListController.php
+++ b/src/CoreShop/Bundle/StorageListBundle/Controller/StorageListController.php
@@ -238,7 +238,7 @@ public function summaryAction(Request $request): Response
}
if (!$isSharedList && $list instanceof ShareableStorageListInterface && $list->listCanBeShared()) {
- $params['share_link'] = $this->generateUrl($this->summaryRoute, ['token' => $list->getToken()], UrlGeneratorInterface::ABSOLUTE_URL);
+ $params['share_link'] = $this->generateUrl($this->summaryRoute, ['identifier' => $list->getToken()], UrlGeneratorInterface::ABSOLUTE_URL);
}
return $this->render($this->templateSummary, $params);
diff --git a/src/CoreShop/Component/Pimcore/Slug/SluggableLinkGenerator.php b/src/CoreShop/Component/Pimcore/Slug/SluggableLinkGenerator.php
index c1b57c88ea..d5ff9e639d 100644
--- a/src/CoreShop/Component/Pimcore/Slug/SluggableLinkGenerator.php
+++ b/src/CoreShop/Component/Pimcore/Slug/SluggableLinkGenerator.php
@@ -19,7 +19,6 @@
namespace CoreShop\Component\Pimcore\Slug;
use CoreShop\Component\Pimcore\Exception\LinkGenerationNotPossibleException;
-use CoreShop\Component\Resource\Metadata\RegistryInterface;
use Pimcore\Http\Request\Resolver\SiteResolver;
use Pimcore\Model\DataObject\ClassDefinition\LinkGeneratorInterface;
use Pimcore\Model\DataObject\Concrete;
@@ -30,7 +29,6 @@ class SluggableLinkGenerator implements LinkGeneratorInterface
public function __construct(
private SiteResolver $siteResolver,
private RequestStack $requestStack,
- private RegistryInterface $metadataRegistry,
) {
}
@@ -44,14 +42,6 @@ public function generate(Concrete $object, array $params = []): string
));
}
- if ($this->metadataRegistry->hasClass($object::class)) {
- $metadata = $this->metadataRegistry->getByClass($object::class);
-
- if ($metadata->hasParameter('slug') && !$metadata->getParameter('slug')) {
- throw new LinkGenerationNotPossibleException();
- }
- }
-
$slugs = $object->getSlug($params['_locale'] ?? null);
$slug = null;
$fallbackSlug = null;
diff --git a/src/CoreShop/Component/Pimcore/composer.json b/src/CoreShop/Component/Pimcore/composer.json
index 8579473b99..7e54d6f420 100644
--- a/src/CoreShop/Component/Pimcore/composer.json
+++ b/src/CoreShop/Component/Pimcore/composer.json
@@ -24,7 +24,8 @@
}
],
"require": {
- "pimcore/pimcore": "^10.5"
+ "pimcore/pimcore": "^10.5",
+ "laminas/laminas-stdlib": "^3.6"
},
"require-dev": {
"phpstan/phpstan": "^1.5.4",
diff --git a/src/CoreShop/Component/Resource/Pimcore/ResourceSlugLinkGenerator.php b/src/CoreShop/Component/Resource/Pimcore/ResourceSlugLinkGenerator.php
new file mode 100644
index 0000000000..ccd1c3f046
--- /dev/null
+++ b/src/CoreShop/Component/Resource/Pimcore/ResourceSlugLinkGenerator.php
@@ -0,0 +1,57 @@
+getFullPath(),
+ SluggableInterface::class,
+ )
+ );
+ }
+
+ if ($this->metadataRegistry->hasClass($object::class)) {
+ $metadata = $this->metadataRegistry->getByClass($object::class);
+
+ if ($metadata->hasParameter('slug') && !$metadata->getParameter('slug')) {
+ throw new LinkGenerationNotPossibleException();
+ }
+ }
+
+ return $this->inner->generate($object, $params);
+ }
+}