Skip to content

Commit 9e6ecf5

Browse files
committed
[TASK] Adaptions after split of ProductPlugin
After the migration of switchableControllerActions the pluginName can differ which needs to be considered.
1 parent 3e848a5 commit 9e6ecf5

4 files changed

Lines changed: 54 additions & 34 deletions

File tree

Classes/Domain/Model/Cart/DetailPageLink.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public function __construct(
1717
protected int $pageUid,
1818
protected string $extensionName = '',
1919
protected string $pluginName = '',
20-
protected string $controller = ''
20+
protected string $controller = '',
21+
protected string $action = '',
2122
) {}
2223

2324
public function getPageUid(): int
@@ -39,4 +40,16 @@ public function getController(): string
3940
{
4041
return $this->controller;
4142
}
43+
public function getAction(): string
44+
{
45+
return $this->action;
46+
}
47+
48+
public function isActionLink(): bool
49+
{
50+
if ($this->pageUid && $this->extensionName && $this->pluginName && $this->controller && $this->action) {
51+
return true;
52+
}
53+
return false;
54+
}
4255
}

Classes/Domain/Model/Cart/DetailPageLinkFactory.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ public function getDetailPageLink(
1717
int $detailPageUid,
1818
string $extensionName = '',
1919
string $pluginName = '',
20-
string $controller = ''
20+
string $controller = '',
21+
string $action = '',
2122
): ?DetailPageLink {
2223
if ($detailPageUid > 0) {
23-
return new DetailPageLink($detailPageUid, $extensionName, $pluginName, $controller);
24+
return new DetailPageLink($detailPageUid, $extensionName, $pluginName, $controller, $action);
2425
}
2526
return null;
2627
}

Classes/Domain/Model/Cart/DetailPageLinkFactoryInterface.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public function getDetailPageLink(
1717
int $detailPageUid,
1818
string $extensionName = '',
1919
string $pluginName = '',
20-
string $controller = ''
20+
string $controller = '',
21+
string $action = ''
2122
): ?DetailPageLink;
2223
}

Resources/Private/Partials/Cart/ProductForm/ProductList.html

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,41 @@
22
xmlns:cart="http://typo3.org/ns/Extcode/Cart/ViewHelpers"
33
data-namespace-typo3-fluid="true">
44

5+
<f:section name="detailLink">
6+
<f:if condition="{product.detailPageLink}">
7+
<f:then>
8+
<f:if condition="{product.detailPageLink.actionLink}">
9+
<f:link.action
10+
pageUid="{product.detailPageLink.pageUid}"
11+
extensionName="{product.detailPageLink.extensionName}"
12+
pluginName="{product.detailPageLink.pluginName}"
13+
controller="{product.detailPageLink.controller}"
14+
action="{product.detailPageLink.action}"
15+
arguments="{product: product.productId}">
16+
{linkedTitle}
17+
</f:link.action>
18+
</f:if>
19+
<f:if condition="!{product.detailPageLink.actionLink} && {product.detailPageLink.pageUid}">
20+
<f:link.page pageUid="{product.detailPageLink.pageUid}">
21+
{linkedTitle}
22+
</f:link.page>
23+
</f:if>
24+
25+
</f:then>
26+
<f:else>
27+
{linkedTitle}
28+
</f:else>
29+
</f:if>
30+
</f:section>
31+
532
<f:section name="withoutVariant">
633
<tr class="{f:if(condition: product.quantityInRange, then: '', else: 'danger')}">
734
<td colspan="2" class="col-md-6">
835
<div class="product-name">
9-
<f:if condition="{product.detailPageLink}">
10-
<f:then>
11-
<f:link.action
12-
pageUid="{product.detailPageLink.pageUid}"
13-
extensionName="{product.detailPageLink.extensionName}"
14-
pluginName="{product.detailPageLink.pluginName}"
15-
controller="{product.detailPageLink.controller}"
16-
arguments="{product: product.productId}">
17-
{product.title} {f:if(condition:'{product.feVariant.value}',then:'- {product.feVariant.value}')}
18-
</f:link.action>
19-
</f:then>
20-
<f:else>
21-
{product.title} {f:if(condition:'{product.feVariant.value}',then:'- {product.feVariant.value}')}
22-
</f:else>
23-
</f:if>
36+
<f:variable name="linkedTitle">
37+
{product.title} {f:if(condition:'{product.feVariant.value}',then:'- {product.feVariant.value}')}
38+
</f:variable>
39+
<f:render section="detailLink" arguments="{product: product, linkedTitle: linkedTitle}"/>
2440
</div>
2541
<p>
2642
<f:translate key="tx_cart_domain_model_order_product.sku.short"/>
@@ -74,21 +90,10 @@
7490
<td class="col-md-1">&nbsp;</td>
7591
<td class="col-md-5">
7692
<div class="product-name">
77-
<f:if condition="{product.detailPageParameter.pageUid} && {product.detailPageParameter.extensionName}">
78-
<f:then>
79-
<f:link.action
80-
pageUid="{product.detailPageLink.pageUid}"
81-
extensionName="{product.detailPageLink.extensionName}"
82-
pluginName="{product.detailPageLink.pluginName}"
83-
controller="{product.detailPageLink.controller}"
84-
arguments="{product: product.productId}">
85-
{variant.title}
86-
</f:link.action>
87-
</f:then>
88-
<f:else>
89-
{variant.title}
90-
</f:else>
91-
</f:if>
93+
<f:variable name="linkedTitle">
94+
{variant.title}
95+
</f:variable>
96+
<f:render section="detailLink" arguments="{product: product, linkedTitle: linkedTitle}"/>
9297
</div>
9398
<p>
9499
<f:translate key="tx_cart_domain_model_order_product.sku.short"/>

0 commit comments

Comments
 (0)