TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-104662-1724058079:
|
||||
|
||||
===============================================
|
||||
Deprecation: #104662 - BackendUtility thumbCode
|
||||
===============================================
|
||||
|
||||
See :issue:`104662`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`\TYPO3\CMS\Backend\Utility\BackendUtility::thumbCode()` has been deprecated since the
|
||||
method is no longer used in TYPO3 anymore. Additionally, due to multiple changes
|
||||
to file processing over the years, e.g. introducing of FAL, the method's
|
||||
signature changed a couple of times leading to a couple of method arguments
|
||||
are being unused, which is quite a bad API.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the PHP method :php:`BackendUtility::thumbCode()` will
|
||||
trigger a PHP deprecation warning.
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
TYPO3 installations with custom extensions using this method. The extension
|
||||
scanner will report any usage as strong match.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove any usage of this method. In case you currently rely on the
|
||||
functionality, you can copy it to your custom extension. However, you might
|
||||
want to consider refactoring the corresponding code places.
|
||||
|
||||
The method basically resolved given :php-short:`\TYPO3\CMS\Core\Resource\FileReference` objects. In case
|
||||
a file could not be resolved, a special icon has been rendered. Otherwise,
|
||||
the cropping configuration has been applied and the file's :php:`process()`
|
||||
has been called to get the thumbnail, which has been wrapped in corresponding
|
||||
thumbnail markup. This might has been extended to also open the information
|
||||
modal on click.
|
||||
|
||||
This means the relevant parts are:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Get file references
|
||||
$fileReferences = BackendUtility:resolveFileReferences($table, $field, $row);
|
||||
|
||||
// Check for existence of the file
|
||||
$fileReference->getOriginalFile()->isMissing()
|
||||
|
||||
// Render special icon if missing
|
||||
$iconFactory
|
||||
->getIcon('mimetypes-other-other', IconSize::MEDIUM, 'overlay-missing')
|
||||
->setTitle(static::getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.file_missing') . ' ' . $fileObject->getName())
|
||||
->render()
|
||||
|
||||
// Process file with cropping configuration if not missing
|
||||
$fileReference->getOriginalFile()->process(
|
||||
ProcessedFile::CONTEXT_IMAGEPREVIEW,// ProcessedFile::CONTEXT_IMAGECROPSCALEMASK if cropArea is defined
|
||||
[
|
||||
'width' => '...',
|
||||
'height' => '...',
|
||||
'crop' // If cropArea is defined
|
||||
]
|
||||
)
|
||||
|
||||
// Use cropped file and create <img> tag
|
||||
<img src="' . $fileReference->getOriginalFile()->process()->getPublicUrl() . '"/>
|
||||
|
||||
// Wrap the info popup via <a> around the thumbnail
|
||||
<a href="#" data-dispatch-action="TYPO3.InfoWindow.showItem" data-dispatch-args-list="_FILE,' . (int)$fileReference->getOriginalFile()->getUid() . '">
|
||||
|
||||
|
||||
Example of the HTML markup for a thumbnail:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<div class="preview-thumbnails" style="--preview-thumbnails-size: 64px">
|
||||
<div class="preview-thumbnails-element">
|
||||
<div class="preview-thumbnails-element-image">
|
||||
<img src="' . $fileReference->getOriginalFile()->process()->getPublicUrl() . '" width="64px" height="64px" alt="' . $fileReference->getAlternative() ?: $fileReference->getName() . '" loading="lazy"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
.. index:: PHP-API, FullyScanned, ext:backend
|
||||
Reference in New Issue
Block a user