From 15c7452fbf602d5d26e7d5f46575adb5482a5649 Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 3 May 2023 11:33:12 +0200 Subject: [PATCH 1/3] [WishlistBundle] make wishlist easier usable outside of CoreShop --- docker-compose.yaml | 2 + .../Pimcore/Repository/WishlistRepository.php | 4 +- .../CoreShopResourceExtension.php | 1 + .../Pimcore/Repository/WishlistRepository.php | 17 ++++ .../pimcore/classes/CoreShopWishlist.json | 77 +------------------ .../pimcore/classes/CoreShopWishlistItem.json | 8 -- .../WishlistRepositoryInterface.php | 3 +- 7 files changed, 25 insertions(+), 87 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0e0f3badc8..67fccd6643 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -84,6 +84,7 @@ services: - db volumes: - .:/var/www/html:cached + - ./.docker/xdebug-config.ini:/usr/local/etc/php/conf.d/21-xdebug.ini environment: PHP_IDE_CONFIG: serverName=localhost XDEBUG_TRIGGER: PHPSTORM @@ -110,6 +111,7 @@ services: - db volumes: - .:/var/www/html:cached + - ./.docker/xdebug-config.ini:/usr/local/etc/php/conf.d/21-xdebug.ini environment: PHP_IDE_CONFIG: serverName=localhost COMPOSER_HOME: /var/www/html diff --git a/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php b/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php index 71d7d9cc07..701d2c0594 100644 --- a/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php +++ b/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php @@ -18,12 +18,12 @@ namespace CoreShop\Bundle\CoreBundle\Pimcore\Repository; -use CoreShop\Component\Core\Wishlist\Repository\WishlistRepositoryInterface; +use CoreShop\Component\Core\Wishlist\Repository\WishlistRepositoryInterface as BaseWishlistRepository; use CoreShop\Component\Customer\Model\CustomerInterface; use CoreShop\Component\Store\Model\StoreInterface; use CoreShop\Component\Wishlist\Model\WishlistInterface; -class WishlistRepository extends \CoreShop\Bundle\WishlistBundle\Pimcore\Repository\WishlistRepository implements WishlistRepositoryInterface +class WishlistRepository extends BaseWishlistRepository implements WishlistRepositoryInterface { public function findLatestByStoreAndCustomer( StoreInterface $store, diff --git a/src/CoreShop/Bundle/ResourceBundle/DependencyInjection/CoreShopResourceExtension.php b/src/CoreShop/Bundle/ResourceBundle/DependencyInjection/CoreShopResourceExtension.php index 40417cde3e..5ad09c38d1 100644 --- a/src/CoreShop/Bundle/ResourceBundle/DependencyInjection/CoreShopResourceExtension.php +++ b/src/CoreShop/Bundle/ResourceBundle/DependencyInjection/CoreShopResourceExtension.php @@ -76,6 +76,7 @@ public function load(array $configs, ContainerBuilder $container): void 'priority' => 10, ]); + $container->setParameter('coreshop.resources', []); $container->setDefinition('coreshop.body_listener', $bodyListener); $container diff --git a/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php b/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php index b7ef20b40c..47ff435a6c 100644 --- a/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php +++ b/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php @@ -18,6 +18,7 @@ namespace CoreShop\Bundle\WishlistBundle\Pimcore\Repository; +use Carbon\Carbon; use CoreShop\Bundle\ResourceBundle\Pimcore\PimcoreRepository; use CoreShop\Component\StorageList\Model\StorageListInterface; use CoreShop\Component\Wishlist\Model\WishlistInterface; @@ -25,6 +26,22 @@ class WishlistRepository extends PimcoreRepository implements WishlistRepositoryInterface { + public function findExpiredStorageLists(int $days, array $params = []): array + { + $daysTimestamp = Carbon::now(); + $daysTimestamp->subDays($days); + $queryParams = [$daysTimestamp->getTimestamp()]; + + $list = $this->getList(); + $list->setCondition('o_modificationDate < ?', $queryParams); + + /** + * @var StorageListInterface[] $result + */ + $result = $list->getObjects(); + + return $result; + } public function findByStorageListId(int $id): ?StorageListInterface { return $this->find($id); diff --git a/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlist.json b/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlist.json index 5ca1747cb7..18d61783a9 100644 --- a/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlist.json +++ b/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlist.json @@ -42,31 +42,6 @@ "datatype": "layout", "permissions": null, "children": [ - { - "fieldtype": "input", - "width": "", - "defaultValue": null, - "columnLength": 190, - "regex": "", - "regexFlags": [], - "unique": false, - "showCharCount": false, - "name": "name", - "title": "Name", - "tooltip": "", - "mandatory": false, - "noteditable": false, - "index": false, - "locked": false, - "style": "", - "permissions": null, - "datatype": "data", - "relationType": false, - "invisible": false, - "visibleGridView": false, - "visibleSearch": false, - "defaultValueGenerator": "" - }, { "fieldtype": "input", "width": null, @@ -92,27 +67,9 @@ "visibleSearch": false, "defaultValueGenerator": "" }, - { - "fieldtype": "coreShopStore", - "allowEmpty": false, - "name": "store", - "title": "coreshop.order.store", - "tooltip": "", - "mandatory": false, - "noteditable": true, - "index": false, - "locked": false, - "style": "", - "permissions": null, - "datatype": "data", - "relationType": false, - "invisible": false, - "visibleGridView": false, - "visibleSearch": false - }, { "fieldtype": "coreShopRelations", - "stack": "coreshop.product", + "stack": "coreshop.wishlist_item", "relationType": true, "objectsAllowed": true, "assetsAllowed": false, @@ -139,38 +96,6 @@ "invisible": false, "visibleGridView": false, "visibleSearch": false - }, - { - "fieldtype": "coreShopRelation", - "stack": "coreshop.customer", - "relationType": true, - "objectsAllowed": true, - "assetsAllowed": false, - "documentsAllowed": false, - "returnConcrete": false, - "width": null, - "assetUploadPath": null, - "assetTypes": [], - "documentTypes": [], - "classes": [ - { - "classes": "CoreShopCustomer" - } - ], - "pathFormatterClass": "", - "name": "customer", - "title": "Customer", - "tooltip": "", - "mandatory": false, - "noteditable": false, - "index": false, - "locked": false, - "style": "", - "permissions": null, - "datatype": "data", - "invisible": false, - "visibleGridView": false, - "visibleSearch": false } ], "locked": false, diff --git a/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlistItem.json b/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlistItem.json index ea7c079b86..3807deab66 100644 --- a/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlistItem.json +++ b/src/CoreShop/Bundle/WishlistBundle/Resources/install/pimcore/classes/CoreShopWishlistItem.json @@ -55,9 +55,6 @@ "assetTypes": [], "documentTypes": [], "classes": [ - { - "classes": "CoreShopProduct" - } ], "pathFormatterClass": "", "name": "product", @@ -119,11 +116,6 @@ "invisible": false, "visibleGridView": false, "visibleSearch": false, - "classes": [ - { - "classes": "CoreShopWishlist" - } - ], "pathFormatterClass": "", "width": null, "assetUploadPath": null, diff --git a/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php b/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php index 25c7a6f9d5..6eafda5a91 100644 --- a/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php +++ b/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php @@ -18,11 +18,12 @@ namespace CoreShop\Component\Wishlist\Repository; +use CoreShop\Component\StorageList\Repository\ExpireAbleStorageListRepositoryInterface; use CoreShop\Component\StorageList\Repository\PimcoreStorageListRepositoryInterface; use CoreShop\Component\StorageList\Repository\ShareableStorageListRepositoryInterface; use CoreShop\Component\Wishlist\Model\WishlistInterface; -interface WishlistRepositoryInterface extends PimcoreStorageListRepositoryInterface, ShareableStorageListRepositoryInterface +interface WishlistRepositoryInterface extends PimcoreStorageListRepositoryInterface, ShareableStorageListRepositoryInterface, ExpireAbleStorageListRepositoryInterface { public function findByToken(string $token): ?WishlistInterface; } From 27e2efe7f7a257a83b5be3f3735abf413f8f6d66 Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 3 May 2023 11:34:41 +0200 Subject: [PATCH 2/3] [WishlistBundle] make wishlist easier usable outside of CoreShop --- .../CoreBundle/Pimcore/Repository/WishlistRepository.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php b/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php index 701d2c0594..1b115f7bc4 100644 --- a/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php +++ b/src/CoreShop/Bundle/CoreBundle/Pimcore/Repository/WishlistRepository.php @@ -18,11 +18,11 @@ namespace CoreShop\Bundle\CoreBundle\Pimcore\Repository; -use CoreShop\Component\Core\Wishlist\Repository\WishlistRepositoryInterface as BaseWishlistRepository; +use CoreShop\Component\Core\Wishlist\Repository\WishlistRepositoryInterface; use CoreShop\Component\Customer\Model\CustomerInterface; use CoreShop\Component\Store\Model\StoreInterface; use CoreShop\Component\Wishlist\Model\WishlistInterface; - +use CoreShop\Bundle\WishlistBundle\Pimcore\Repository\WishlistRepository as BaseWishlistRepository; class WishlistRepository extends BaseWishlistRepository implements WishlistRepositoryInterface { public function findLatestByStoreAndCustomer( From a7a274f2215bb52266ed43456c7882dec460bf7c Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 3 May 2023 12:11:34 +0200 Subject: [PATCH 3/3] [WishlistBundle] make wishlist easier usable outside of CoreShop - remove expire --- .../Pimcore/Repository/WishlistRepository.php | 16 ---------------- .../Repository/WishlistRepositoryInterface.php | 3 +-- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php b/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php index 47ff435a6c..635ea69ba3 100644 --- a/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php +++ b/src/CoreShop/Bundle/WishlistBundle/Pimcore/Repository/WishlistRepository.php @@ -26,22 +26,6 @@ class WishlistRepository extends PimcoreRepository implements WishlistRepositoryInterface { - public function findExpiredStorageLists(int $days, array $params = []): array - { - $daysTimestamp = Carbon::now(); - $daysTimestamp->subDays($days); - $queryParams = [$daysTimestamp->getTimestamp()]; - - $list = $this->getList(); - $list->setCondition('o_modificationDate < ?', $queryParams); - - /** - * @var StorageListInterface[] $result - */ - $result = $list->getObjects(); - - return $result; - } public function findByStorageListId(int $id): ?StorageListInterface { return $this->find($id); diff --git a/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php b/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php index 6eafda5a91..25c7a6f9d5 100644 --- a/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php +++ b/src/CoreShop/Component/Wishlist/Repository/WishlistRepositoryInterface.php @@ -18,12 +18,11 @@ namespace CoreShop\Component\Wishlist\Repository; -use CoreShop\Component\StorageList\Repository\ExpireAbleStorageListRepositoryInterface; use CoreShop\Component\StorageList\Repository\PimcoreStorageListRepositoryInterface; use CoreShop\Component\StorageList\Repository\ShareableStorageListRepositoryInterface; use CoreShop\Component\Wishlist\Model\WishlistInterface; -interface WishlistRepositoryInterface extends PimcoreStorageListRepositoryInterface, ShareableStorageListRepositoryInterface, ExpireAbleStorageListRepositoryInterface +interface WishlistRepositoryInterface extends PimcoreStorageListRepositoryInterface, ShareableStorageListRepositoryInterface { public function findByToken(string $token): ?WishlistInterface; }