TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+65
@@ -0,0 +1,65 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83608-1669634686:
|
||||
|
||||
=======================================================================
|
||||
Feature: #83608 - PSR-14 event to modify resolved default upload folder
|
||||
=======================================================================
|
||||
|
||||
See :issue:`83608`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new PSR-14 event :php:`\TYPO3\CMS\Core\Resource\Event\AfterDefaultUploadFolderWasResolvedEvent`
|
||||
has been added, which allows the default upload folder to be modified after it has
|
||||
been resolved for the current page or user.
|
||||
|
||||
The new event can be used as a better alternative to the
|
||||
:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauthgroup.php']['getDefaultUploadFolder']`
|
||||
hook, serving the same purpose.
|
||||
|
||||
The event features the following methods:
|
||||
|
||||
- :php:`getUploadFolder()` returns the currently resolved :php:`$uploadFolder`
|
||||
- :php:`setUploadFolder()` sets a new upload folder
|
||||
- :php:`getPid()` returns the PID of the record we fetch the upload folder for
|
||||
- :php:`getTable()` returns the table name of the record we fetch the upload folder for
|
||||
- :php:`getFieldName()` returns the field name of the record we fetch the upload folder for
|
||||
|
||||
Registration of the event in your extension's :file:`Services.yaml`:
|
||||
|
||||
.. code-block:: yaml
|
||||
:caption: EXT:my_extension/Configuration/Services.yaml
|
||||
|
||||
MyVendor\MyExtension\Resource\EventListener\MyEventListener:
|
||||
tags:
|
||||
- name: event.listener
|
||||
identifier: 'my-extension/after-default-upload-folder-was-resolved-event-listener'
|
||||
|
||||
The corresponding event listener class:
|
||||
|
||||
.. code-block:: php
|
||||
:caption: EXT:my_extension/Classes/Resources/EventListener/MyEventListener.php
|
||||
|
||||
namespace MyVendor\MyExtension\Resource\EventListener;
|
||||
|
||||
use TYPO3\CMS\Core\Resource\Event\AfterDefaultUploadFolderWasResolvedEvent;
|
||||
|
||||
final class MyEventListener
|
||||
{
|
||||
public function __invoke(AfterDefaultUploadFolderWasResolvedEvent $event): void
|
||||
{
|
||||
$event->setUploadFolder($event->getUploadFolder()->getStorage()->getFolder('/'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
As resolving the event was moved from :php:`BackendUserAuthentication` to its own
|
||||
:php:`DefaultUploadFolderResolver` class, this event is now the preferred way
|
||||
of modifying the default upload folder.
|
||||
|
||||
.. index:: Backend, PHP-API, ext:core
|
||||
Reference in New Issue
Block a user