Bug #84885

Images in backend list module aren't shown, if they in a palette

Added by David Gurk over 1 year ago. Updated over 1 year ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2018-04-27
Due date:
% Done:

100%

TYPO3 Version:
8
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

It might be a regression introduced with #26753.

I have a custom table with multiple images as FAL records. I use 'ctrl' => 'thumbnail' (https://docs.typo3.org/typo3cms/TCAReference/Ctrl/Index.html#thumbnail) to define a single as thumbnail.

This looks like:

<?php

return [
    'ctrl' => [
        // [...]
        'thumbnail' => 'image_portrait',
        // [...]
    ],
    'interface' => [
        // [...]
    ],
    'types' => [
        '1' => [
            'showitem' => '
            // [...]
            --palette--;LLL:EXT:project/Resources/Private/Language/locallang_db.xlf:tx_project_domain_model_contestapplicationformdata.palette.images;images,
            // [...]',
        ],
    ],
    'palettes' => [
        // [...]
        'images' => ['showitem' => 'image_portrait, image_fashion'],
        // [...]
    ],
    'columns' => [
        // [...]
        'image_portrait' => [
            'exclude' => 0,
            'label' => 'LLL:EXT:project/Resources/Private/Language/locallang_db.xml:tx_project_domain_model_contestapplicationformdata.image_portrait',
            'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('image_portrait', [
                // [...]
            ], 'jpg,jpeg,png,pdf'),
        ],
        'image_fashion' => [
            'exclude' => 0,
            'label' => 'LLL:EXT:project/Resources/Private/Language/locallang_db.xml:tx_project_domain_model_contestapplicationformdata.image_fashion',
            'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('image_fashion', [
                // [...]
            ], 'jpg,jpeg,png,pdf'),
        ],
        // [...]
    ],
];

But this doesn't work, since DatabaseRecordList checks for the thumbnail column name in $GLOBALS['TCA'][$table]['types'][$type]['showitem']. But I wrapped my image column in a palette.

https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php#L1460

It would be necessary to determine the visibility state of the image on another way.

Something like looking through all palettes sound wrong to me.

My current workaround is, to move the wanted image outside the palette to showitems.

Any ideas from someone?

Best regards


Related issues

Related to TYPO3 Core - Bug #26753: Picture in backend list module will be displayed after change element type from picture to text Closed 2011-05-11

Associated revisions

Revision ba07dd2a (diff)
Added by David Gurk over 1 year ago

[BUGFIX] Show thumbnail in list module for columns in palettes

By replacing the palettes in showitem of types with their content,
the following condition can consider the columns within the palettes.

Resolves: #84885
Related: #26753
Releases: master, 8.7
Change-Id: I6561fc862cb4ed569ee886e4d070e9fba6a1654b
Reviewed-on: https://review.typo3.org/56821
Tested-by: TYPO3com <>
Reviewed-by: Jörg Bösche <>
Reviewed-by: Fabien Udriot <>
Tested-by: Fabien Udriot <>
Reviewed-by: Markus Klein <>
Tested-by: Markus Klein <>

Revision 7b54811b (diff)
Added by David Gurk over 1 year ago

[BUGFIX] Show thumbnail in list module for columns in palettes

By replacing the palettes in showitem of types with their content,
the following condition can consider the columns within the palettes.

Resolves: #84885
Related: #26753
Releases: master, 8.7
Change-Id: I6561fc862cb4ed569ee886e4d070e9fba6a1654b
Reviewed-on: https://review.typo3.org/57744
Tested-by: TYPO3com <>
Reviewed-by: Markus Klein <>
Tested-by: Markus Klein <>

History

#1 Updated by David Gurk over 1 year ago

  • Related to Bug #26753: Picture in backend list module will be displayed after change element type from picture to text added

#2 Updated by Jörg Velletti over 1 year ago

I can confirm that behavior

- still works in 8.7.13 when the column is NOT in a palette
- does not work is inside of a palette

the only solution to expand the $visibleColumns with all included columns from used palettes in that type

means after 1456:
$visibleColumns = $GLOBALS['TCA'][$table]['types'][$type]['showitem'];

replace all --palette-- configs with content of that palette ..

addig this 3 lines (maybe not the perfect code):

                foreach ( $GLOBALS['TCA'][$table]['palettes'] as $key => $palette ) {
                    $visibleColumns  = str_replace( $key , $palette['showitem'] , $visibleColumns  ) ;
                }

solved it

#3 Updated by David Gurk over 1 year ago

Jörg Velletti wrote:

addig this 3 lines (maybe not the perfect code):

solved it

Nice! Would you mind to create a patch? Maybe we can get more feedback in the review phase.

#4 Updated by David Gurk over 1 year ago

My suggested solution would slightly different:

// Flatten palettes into types showitem
$visibleColumns = $GLOBALS['TCA'][$table]['types'][$type]['showitem'];
foreach ($GLOBALS['TCA'][$table]['palettes'] as $key => $palette) {
    $paletteColumns = rtrim($palette['showitem'], ',');
    $visibleColumns = preg_replace(
        '/--palette--;[^;]*;(' . $key . ')/',
        $paletteColumns,
        $visibleColumns
    );
}

if ($this->thumbs &&
    trim($row[$thumbsCol]) &&
    preg_match('/(^|(.*(;|,)?))' . $thumbsCol . '(((;|,).*)|$)/', $visibleColumns) === 1
) {
    // [...]
}

// [...]

Here the RegEx test with showitem from tt_content textmedia:
https://regex101.com/r/5uIBXb/1/

#5 Updated by Gerrit Code Review over 1 year ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#6 Updated by Gerrit Code Review over 1 year ago

Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#7 Updated by Gerrit Code Review over 1 year ago

Patch set 3 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#8 Updated by Gerrit Code Review over 1 year ago

Patch set 4 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#9 Updated by Gerrit Code Review over 1 year ago

Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#10 Updated by Gerrit Code Review over 1 year ago

Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#11 Updated by Gerrit Code Review over 1 year ago

Patch set 7 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#12 Updated by Gerrit Code Review over 1 year ago

Patch set 8 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#13 Updated by Gerrit Code Review over 1 year ago

Patch set 9 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#14 Updated by David Gurk over 1 year ago

Updated regular expression:
https://regex101.com/r/5uIBXb/5/

#15 Updated by Gerrit Code Review over 1 year ago

Patch set 10 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#16 Updated by Gerrit Code Review over 1 year ago

Patch set 11 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#17 Updated by Gerrit Code Review over 1 year ago

Patch set 12 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#18 Updated by Gerrit Code Review over 1 year ago

Patch set 13 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#19 Updated by Gerrit Code Review over 1 year ago

Patch set 14 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#20 Updated by Gerrit Code Review over 1 year ago

Patch set 15 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#21 Updated by Gerrit Code Review over 1 year ago

Patch set 16 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#22 Updated by Gerrit Code Review over 1 year ago

Patch set 17 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#23 Updated by Gerrit Code Review over 1 year ago

Patch set 18 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/56821

#24 Updated by David Gurk over 1 year ago

  • Status changed from Under Review to Resolved
  • % Done changed from 0 to 100

#25 Updated by Gerrit Code Review over 1 year ago

  • Status changed from Resolved to Under Review

Patch set 1 for branch TYPO3_8-7 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/57744

#26 Updated by David Gurk over 1 year ago

  • Status changed from Under Review to Resolved

#27 Updated by Benni Mack over 1 year ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF