Skip to content

Commit 77b59b2

Browse files
author
Aleksander Laurowski
committed
FFWEB-2195 disable search-immediate on home page
1 parent 63f9068 commit 77b59b2

7 files changed

Lines changed: 28 additions & 13 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
name: build
33

4-
on: [push]
4+
on: [pull_request]
55

66
jobs:
77
build:

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
"autoload": {
2525
"psr-4": {
2626
"Omikron\\FactFinder\\Shopware6\\": "src/"
27-
}
27+
},
28+
"files": ["src/Internal/utils.php"]
2829
},
2930
"scripts": {
3031
"test": [

spec/Subscriber/CategoryViewSpec.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public function let(
3838
$salesChannelContext->getSalesChannel()->willReturn($salesChannelEntity);
3939
$salesChannelEntity->getNavigationCategoryId()->willReturn($navigationId);
4040
$request->get('navigationId', $navigationId)->willReturn($navigationId);
41+
$request->get('_route')->willReturn('');
4142
$cmsPageRoute->load('1', $request, $salesChannelContext)->willReturn($categoryRouteResponse);
4243
$categoryRouteResponse->getCategory()->willReturn($categoryEntity);
4344
$categoryEntity->getBreadcrumb()->willReturn(

src/Internal/utils.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Omikron\FactFinder\Shopware6\Internal\Utils;
6+
7+
use Closure;
8+
9+
function safeGetByName(?array $collection): Closure
10+
{
11+
return fn (string $name) => is_array($collection) && isset($collection[$name]) && $collection[$name];
12+
}

src/OmikronFactFinder.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,10 @@ public function uninstall(UninstallContext $uninstallContext): void
113113
private function removeModuleData(UninstallContext $uninstallContext): void
114114
{
115115
$customFieldSetRepository = $this->container->get('custom_field_set.repository');
116+
$customFieldSet = $this->getCustomFieldSet(self::FACT_FINDER_CUSTOM_FIELD_SET_NAME, $uninstallContext->getContext());
116117

117-
$setId = $this->customFieldsExist($uninstallContext->getContext());
118-
119-
if ($setId) {
120-
$customFieldSetRepository->delete(array_values($setId->getData()), $uninstallContext->getContext());
118+
if ($customFieldSet) {
119+
$customFieldSetRepository->delete([['id' => $customFieldSet->getId()]], $uninstallContext->getContext());
121120
}
122121
}
123122

@@ -168,7 +167,7 @@ private function fixCMSExportIncludeFieldType(Context $context): void
168167
$field = $this->getCustomField(OmikronFactFinder::CMS_EXPORT_INCLUDE_CUSTOM_FIELD_NAME, $context);
169168
if ($field instanceof CustomFieldEntity) {
170169
$customFieldRepository->update(
171-
[
170+
[
172171
[
173172
'id' => $field->getId(),
174173
'type' => CustomFieldTypes::BOOL,

src/Subscriber/CategoryView.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Shopware\Core\Content\Category\SalesChannel\AbstractCategoryRoute;
1111
use Shopware\Storefront\Page\Navigation\NavigationPageLoadedEvent;
1212
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
13+
use function Omikron\FactFinder\Shopware6\Internal\Utils\safeGetByName;
1314

1415
class CategoryView implements EventSubscriberInterface
1516
{
@@ -40,15 +41,16 @@ public static function getSubscribedEvents()
4041

4142
public function onPageLoaded(NavigationPageLoadedEvent $event): void
4243
{
43-
$navigationId = $event->getRequest()->get('navigationId', $event->getSalesChannelContext()->getSalesChannel()->getNavigationCategoryId());
44-
$category = $this->cmsPageRoute->load($navigationId, $event->getRequest(), $event->getSalesChannelContext())->getCategory();
45-
$path = $this->getPath($category);
46-
$safeGetByName = fn (?array $collection) => fn (string $name) => is_array($collection) && isset($collection[$name]) && $collection[$name];
44+
$navigationId = $event->getRequest()->get('navigationId', $event->getSalesChannelContext()->getSalesChannel()->getNavigationCategoryId());
45+
$category = $this->cmsPageRoute->load($navigationId, $event->getRequest(), $event->getSalesChannelContext())->getCategory();
46+
$path = $this->getPath($category);
47+
$disableImmediate = safeGetByName($category->getCustomFields())(OmikronFactFinder::DISABLE_SEARCH_IMMEDIATE_CUSTOM_FIELD_NAME);
48+
$isHome = $event->getRequest()->get('_route') === 'frontend.home.page';
4749

4850
$event->getPage()->getExtension('factfinder')->assign(
4951
[
5052
'communication' => [
51-
'search-immediate' => $safeGetByName($category->getCustomFields())(OmikronFactFinder::DISABLE_SEARCH_IMMEDIATE_CUSTOM_FIELD_NAME) ? 'false' : 'true',
53+
'search-immediate' => $isHome && $disableImmediate ? 'false' : 'true',
5254
'add-params' => $path ? implode(',', $this->initial + [sprintf('filter=%s', urlencode($this->fieldName . ':' . $path))]) : '',
5355
],
5456
]);

src/Upload/UploadService.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function upload($fileHandle): void
4848
private function config(): array
4949
{
5050
return [
51-
'type' => $this->config->getAuthenticationType(),
51+
'type' => $this->config->getProtocol(),
5252
'config' => array_filter([
5353
'host' => $this->config->getHost(),
5454
'port' => $this->config->getPort(),

0 commit comments

Comments
 (0)