Bug #86698

FilesProcessor w/ custom FileReference for pages w/ plugin

Added by Benjamin Reinisch 11 months ago. Updated 8 months ago.

Status:
Needs Feedback
Priority:
-- undefined --
Assignee:
-
Category:
File Abstraction Layer (FAL)
Target version:
-
Start date:
2018-10-19
Due date:
% Done:

0%

TYPO3 Version:
9
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

I have set an additional page property (FileReference) in TCA. The defined FileProcessor:

page {
 10 {
    dataProcessing {
     50 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
       50 {
          references.fieldName = page_additional_image
          as = page_additional_image
        }
      }
    }
  }
} 

Until 8.7 all is working fine, in 9.5 the Query which is generated is wrong, if a CType list (plugin) is on the page.

SELECT `uid` FROM `sys_file_reference` 
WHERE (`uid_foreign` = 202) 
AND (`tablenames` = 'tt_content') 
AND (`fieldname` = 'page_additional_image') 
AND ((`sys_file_reference`.`deleted` = 0) 
AND ((`sys_file_reference`.`t3ver_state` <= 0) 
AND (`sys_file_reference`.`pid` <> -1)) 
AND (`sys_file_reference`.`hidden` = 0)) 
ORDER BY `sorting_foreign` ASC

The uid_foreign In the WHERE-clause is not the page uid anymore, it is the uid of the plugin from tt_content.

Information from debugging so far:
The variable $processedData["data"] in "typo3/sysext/frontend/Classes/DataProcessing/FilesProcessor.php” has already the wrong uid

History

#1 Updated by Benjamin Reinisch 11 months ago

  • Subject changed from FilesProcessor w/ custom FileReference for pages w/ Plugin to FilesProcessor w/ custom FileReference for pages w/ plugin

#2 Updated by Joerg Kummer 11 months ago

Its because the FileProcessor uses the current ContentObject, where this DataProcessor is requested from. Had some similar issues, and must drop using the FileProcessor from sysext frontend.

#3 Updated by Benjamin Reinisch 11 months ago

Some additional experience today. If the scenario is the same (some CType list - Plugin on the page), the access to all page attributes via data.PAGEPROPERTY does not work. I.e accessing the page uid via {data.uid} gives the uid from the tt_content Plugin element.

#4 Updated by Markus Klein 11 months ago

  • Category set to File Abstraction Layer (FAL)

#5 Updated by Josef Glatz 10 months ago

Could you please provide the whole TypoScript setup of your content element?

#6 Updated by Markus Klein 9 months ago

  • Status changed from New to Needs Feedback

#7 Updated by Benjamin Reinisch 8 months ago

It does not matter which CType list (plugin) is on the page w/ it's TS settings, even w/ georgringer/news and other ones this behavior is the same.

Also available in: Atom PDF