Add Add-To-Basket button again and cleanup Fluid

This commit is contained in:
Alexander Bigga 2022-02-14 10:40:07 +01:00
parent b561a0e737
commit b12d76221a
7 changed files with 88 additions and 198 deletions

View File

@ -84,9 +84,6 @@ class BasketController extends AbstractController
*/
public function basketAction()
{
$this->requestData = GeneralUtility::_GPmerged('tx_dlf');
unset($this->requestData['__referrer'], $this->requestData['__trustedProperties']);
$basket = $this->getBasketData();
// action remove from basket

View File

@ -78,6 +78,7 @@
</settings.getTitle>
<settings.basketButton>
<TCEforms>
<onChange>reload</onChange>
<exclude>1</exclude>
<label>LLL:EXT:dlf/Resources/Private/Language/locallang_be.xlf:flexform.showBasketButton</label>
<config>
@ -88,6 +89,7 @@
</settings.basketButton>
<settings.targetBasket>
<TCEforms>
<displayCond>FIELD:settings.basketButton:REQ:true</displayCond>
<exclude>1</exclude>
<label>LLL:EXT:dlf/Resources/Private/Language/locallang_be.xlf:flexform.targetBasket</label>
<config>
@ -96,7 +98,7 @@
<allowed>pages</allowed>
<size>1</size>
<maxitems>1</maxitems>
<minitems>0</minitems>
<minitems>1</minitems>
</config>
</TCEforms>
</settings.targetBasket>

View File

@ -26,3 +26,10 @@ F-1-4 Facet Search
F-1-5 Search In Document
------------------------
F-10 Basket
==========
In the ListView it is possible to place an "Add-To-Basket" button. The list entry will be put in a basket.
The basket itself must be configures on the same or a separate page.

View File

@ -0,0 +1,27 @@
<f:comment>
<!--
* (c) Kitodo. Key to digital objects e.V. <contact@kitodo.org>
*
* This file is part of the Kitodo and TYPO3 projects.
*
* @license GNU General Public License version 3 or later.
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
-->
</f:comment>
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:kitodo="http://typo3.org/ns/Kitodo/Dlf/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:if condition="{settings.basketButton} && {settings.targetBasket}">
<div>
<f:link.action pageUid="{settings.targetBasket}"
action="add"
controller="Basket"
additionalParams="{'tx_dlf[id]':result.uid, 'tx_dlf[startpage]':result.page, 'tx_dlf[addToBasket]':'list'}">
<f:translate key="AddToBasket"/>
</f:link.action>
</div>
</f:if>
</html>

View File

@ -1,81 +0,0 @@
<f:comment>
<!--
* (c) Kitodo. Key to digital objects e.V. <contact@kitodo.org>
*
* This file is part of the Kitodo and TYPO3 projects.
*
* @license GNU General Public License version 3 or later.
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
-->
</f:comment>
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:kitodo="http://typo3.org/ns/Kitodo/Dlf/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:debug>{_all}</f:debug>
<f:for each="{documentList}" key="entryIndex" as="entry" iteration="docIterator">
<f:variable name="currentPage" value="{widgetPage.currentPage - 1}" />
<f:variable name="pageOffset" value="{settings.limit * currentPage}" />
<f:variable name="allDocuments" value="{documents->f:count()}" />
<f:variable name="numDocuments" value="{pageOffset + settings.limit}" />
<li value="{settings.limit * pageOffset + docIterator.index}">
<div class="tx-dlf-listview-thumbnail">
<img alt="{metadataList.{entryIndex}.thumbnail.alt}" src="{metadataList.{entryIndex}.thumbnail.src}" />
</div>
<dl>
<f:for each="{metadataList.{entryIndex}.metadata}" key="indexName" as="field">
<stdWrap wrap="{field.wrap}">
<kitodo:stdWrap wrap="{field.label.wrap}">{field.label.value}</kitodo:stdWrap>
<f:for each="{field.values}" as="value">
<stdWrap wrap="{value.wrap}">
<f:if condition="{indexName} == 'title'">
<f:then>
<f:if condition="{logicalPage}">
<f:then>
<f:variable name="params" value="{
'tx_dlf[id]':entry.uid,
'tx_dlf[page]':entry.page,
'tx_dlf[logicalPage]':logicalPage}" />
</f:then>
<f:else>
<f:variable name="params" value="{
'tx_dlf[id]':entry.uid,
'tx_dlf[page]':entry.page}" />
</f:else>
</f:if>
<f:link.page pageUid="{settings.targetPid}"
additionalParams="{params}">
{value.value}
</f:link.page>
</f:then>
<f:else>
{value.value}
</f:else>
</f:if>
</stdWrap>
</f:for>
</stdWrap>
</f:for>
</dl>
<div class="tx-dlf-listview-preview">{entry.preview}</div>
<ol>
<f:render partial="ListView/SubEntries" arguments="{_all}" />
</ol>
<div>
<f:if condition="{settings.basketButton} && {settings.targetBasket}">
<f:link.page pageUid="{settings.targetBasket}"
additionalParams="{'tx_dlf[id]':entry.uid, 'tx_dlf[startpage]':entry.page, 'tx_dlf[addToBasket]':'list', 'tx_dlf_basket[action]':'add', 'tx_dlf_basket[controller]':'Basket'}">
<f:translate key="AddToBasket"/>
</f:link.page>
</f:if>
</div>
</li>
</f:for>

View File

@ -58,6 +58,9 @@
</dd>
</dl>
</f:link.page>
<f:render partial="Basket/AddToBasket" arguments="{result: document}" />
<f:if condition="{document.children} || {document.searchResults}">
<button class="tx-dlf-morevolumes" title="{f:translate(key='listview.moredetails.toggle')}"><f:translate key='listview.moredetails.toggle' /></button>
</f:if>
@ -110,6 +113,9 @@
</dd>
</dl>
</f:link.page>
<f:render partial="Basket/AddToBasket" arguments="{result: child}" />
</li>
</f:else>
</f:if>
@ -121,48 +127,51 @@
<ol class="tx-dlf-volume">
<f:for each="{document.searchResults}" as="result" iteration="resultIterator">
<li value="{resultIterator.cycle}" class="pageresult">
<f:link.page
pageUid="{settings.targetPidPageView}"
additionalParams="{tx_dlf:{page:'{result.page}', double:'0', id:'{document.uid}', pagegrid:'0', highlight_word: '{result.highlight_word}'}}"
class=""
title="{f:if(condition:'{result.title}', then:'{result.title}', else:'[{document.title}]')}, Seite {result.page}">
<div class="tx-dlf-listview-thumbnail">
<f:if condition="{result.thumbnail}">
<img src="{result.thumbnail}" alt="Vorschaubild von {f:if(condition:'{result.title}', then:'{result.title}', else:'[{document.title}]')}" />
</f:if>
</div>
<dl>
<f:if condition="{result.title}">
<f:then>
<dt class="tx-dlf-title"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_metadata.xlf:metadata.title' /></dt>
<dd class="tx-dlf-title">{result.title}</dd>
</f:then>
</f:if>
<f:if condition="{result.structure} != 'page'">
<dt class="tx-dlf-type"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_metadata.xlf:metadata.type' /></dt>
<dd class="tx-dlf-type">
<f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_structure.xlf:structure.{result.structure}' />
</dd>
</f:if>
<dt class="tx-dlf-page"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_structure.xlf:structure.page' /></dt>
<dd class="tx-dlf-page">{result.page}</dd>
<f:for each="{listedMetadata}" as="metadata">
<f:if condition="{result.metadata.{metadata.indexName}.0} && {metadata.indexName} != 'type' && {metadata.indexName} != 'title'">
<dt class="tx-dlf-metadata-{metadata.indexName}">{metadata.label}</dt>
<f:for each="{result.metadata.{metadata.indexName}}" as="metadataentry">
<dd class="tx-dlf-metadata-{metadata.indexName}">
{metadataentry}
</dd>
</f:for>
<f:link.page
pageUid="{settings.targetPidPageView}"
additionalParams="{tx_dlf:{page:'{result.page}', double:'0', id:'{document.uid}', pagegrid:'0', highlight_word: '{result.highlight_word}'}}"
class=""
title="{f:if(condition:'{result.title}', then:'{result.title}', else:'[{document.title}]')}, Seite {result.page}">
<div class="tx-dlf-listview-thumbnail">
<f:if condition="{result.thumbnail}">
<img src="{result.thumbnail}" alt="Vorschaubild von {f:if(condition:'{result.title}', then:'{result.title}', else:'[{document.title}]')}" />
</f:if>
</f:for>
</dl>
<div class="tx-dlf-listview-preview">
<f:if condition="{result.snippet}">
<p class="textsnippet">[...] <f:format.raw>{result.snippet}</f:format.raw> [...]</p>
</f:if>
</div>
</f:link.page>
</div>
<dl>
<f:if condition="{result.title}">
<f:then>
<dt class="tx-dlf-title"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_metadata.xlf:metadata.title' /></dt>
<dd class="tx-dlf-title">{result.title}</dd>
</f:then>
</f:if>
<f:if condition="{result.structure} != 'page'">
<dt class="tx-dlf-type"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_metadata.xlf:metadata.type' /></dt>
<dd class="tx-dlf-type">
<f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_structure.xlf:structure.{result.structure}' />
</dd>
</f:if>
<dt class="tx-dlf-page"><f:translate key='LLL:EXT:dlf/Resources/Private/Language/locallang_structure.xlf:structure.page' /></dt>
<dd class="tx-dlf-page">{result.page}</dd>
<f:for each="{listedMetadata}" as="metadata">
<f:if condition="{result.metadata.{metadata.indexName}.0} && {metadata.indexName} != 'type' && {metadata.indexName} != 'title'">
<dt class="tx-dlf-metadata-{metadata.indexName}">{metadata.label}</dt>
<f:for each="{result.metadata.{metadata.indexName}}" as="metadataentry">
<dd class="tx-dlf-metadata-{metadata.indexName}">
{metadataentry}
</dd>
</f:for>
</f:if>
</f:for>
</dl>
<div class="tx-dlf-listview-preview">
<f:if condition="{result.snippet}">
<p class="textsnippet">[...] <f:format.raw>{result.snippet}</f:format.raw> [...]</p>
</f:if>
</div>
</f:link.page>
<f:render partial="Basket/AddToBasket" arguments="{result: {uid:document.uid, page: result.page}}" />
</li>
</f:for>
</ol>
@ -170,6 +179,7 @@
</li>
</f:for>
</ol>
</f:widget.paginate>
</html>

View File

@ -1,72 +0,0 @@
<f:comment>
<!--
* (c) Kitodo. Key to digital objects e.V. <contact@kitodo.org>
*
* This file is part of the Kitodo and TYPO3 projects.
*
* @license GNU General Public License version 3 or later.
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
-->
</f:comment>
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:kitodo="http://typo3.org/ns/Kitodo/Dlf/ViewHelpers"
data-namespace-typo3-fluid="true">
<f:debug>{_all}</f:debug>
<f:for each="{entry.subparts}" key="subentryIndex" as="subentry">
<li>
<div class="tx-dlf-listview-thumbnail">
<img alt="{metadataList.{entryIndex}.subparts.{subentryIndex}.thumbnail.alt}"
src="{metadataList.{entryIndex}.subparts.{subentryIndex}.thumbnail.src}}" />
</div>
<dl>
<f:for each="{metadataList.{entryIndex}.subparts.{subentryIndex}.metadata}" key="subentryIndexName" as="subentryField">
<kitodo:stdWrap wrap="{subentryField.wrap}">
<kitodo:stdWrap wrap="{subentryField.label.wrap}">{subentryField.label.value}</kitodo:stdWrap>
<f:for each="{subentryField.values}" as="value">
<kitodo:stdWrap wrap="{value.wrap}">
<f:if condition="{subentryIndexName} == 'title'">
<f:then>
<f:if condition="{logicalPage}">
<f:then>
<f:variable name="params" value="{
'tx_dlf[id]':subentry.uid,
'tx_dlf[page]':subentry.page,
'tx_dlf[highlight_word]':highlightWord
'tx_dlf[logicalPage]':logicalPage}" />
</f:then>
<f:else>
<f:variable name="params" value="{
'tx_dlf[id]':subentry.uid,
'tx_dlf[page]':subentry.page,
'tx_dlf[highlight_word]':highlightWord}" />
</f:else>
</f:if>
<f:link.page pageUid="{settings.targetPid}"
additionalParams="{params}"
noCacheHash = "{f:if(condition:'{documentList.metadata.searchString}', then: 'false', else: 'true')}">
{value.value}
</f:link.page>
</f:then>
<f:else>
{value.value}
</f:else>
</f:if>
</kitodo:stdWrap>
</f:for>
</kitodo:stdWrap>
</f:for>
</dl>
<div class="tx-dlf-listview-preview">{subentry.preview}</div>
</li>
<div>
<f:if condition="{settings.basketButton} && {settings.targetBasket}">
<f:link.page pageUid="{settings.targetBasket}"
additionalParams="{'tx_dlf[id]':entry.uid, 'tx_dlf[startpage]':subentry.page, 'tx_dlf[endpage]':subentry.page, 'tx_dlf[logId]':subentry.sid, 'tx_dlf[addToBasket]':'subentry', 'tx_dlf_basket[action]':'add', 'tx_dlf_basket[controller]':'Basket'}">
<f:translate key="AddToBasket"/>
</f:link.page>
</f:if>
</div>
</f:for>