TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-52156:
|
||||
|
||||
=======================================================
|
||||
Breaking: #52156 - Replaced JumpURL features with hooks
|
||||
=======================================================
|
||||
|
||||
See :issue:`52156`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
JumpURL handling
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The generation and handling of JumpURLs has been removed from the frontend extension and
|
||||
has been moved to a new core extension called "jumpurl".
|
||||
|
||||
URL handler hooks
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
New hooks were introduced in :code:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer`
|
||||
and :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` that allow
|
||||
custom URL generation and handling.
|
||||
|
||||
This is how you can register a hook for manipulating URLs during link generation:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Place this in your ext_localconf.php file
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['urlProcessing']['urlHandlers']['myext_myidentifier']['handler'] =
|
||||
\Company\MyExt\MyUrlHandler::class;
|
||||
|
||||
// The class needs to implement the UrlHandlerInterface:
|
||||
class MyUrlHandler implements \TYPO3\CMS\Frontend\Http\UrlHandlerInterface {}
|
||||
|
||||
This is how you can handle URLs in a custom way:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Place this in your ext_localconf.php file
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['urlProcessing']['urlProcessors']['myext_myidentifier']['processor']
|
||||
= \Company\MyExt\MyUrlProcessor::class;
|
||||
|
||||
// The class needs to implement the UrlProcessorInterface:
|
||||
class MyUrlProcessor implements \TYPO3\CMS\Frontend\Http\UrlProcessorInterface {}
|
||||
|
||||
|
||||
External URL page handling
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The core functionality for redirecting the user to an external URL when he hits a page with doktype "external"
|
||||
is moved from the :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` to the
|
||||
:code:`\TYPO3\CMS\Frontend\Page\ExternalPageUrlHandler` class.
|
||||
|
||||
|
||||
ResourceStorage adjustment
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The method :code:`\TYPO3\CMS\Core\Resource\ResourceStorage::dumpFileContents()` accepts an additional
|
||||
parameter for overriding the mime type that is sent in the `Content-Type` header when delivering a file.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Unless the jumpurl extension is installed, no JumpURL related feature will work anymore.
|
||||
|
||||
If an extension tightly integrates into the JumpURL process it might break, because some of the related
|
||||
methods have been removed, disabled or changed.
|
||||
|
||||
These methods have been removed and their functionality has been moved to the new jumpurl extension:
|
||||
|
||||
:code:`\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::locDataJU()`
|
||||
|
||||
:code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::locDataCheck()`
|
||||
|
||||
The :code:`$initP` parameter of the method :code:`\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::getMailTo()` has been removed.
|
||||
|
||||
The method :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::setExternalJumpUrl()` has been marked as deprecated
|
||||
and is an alias for the new :code:`initializeRedirectUrlHandlers()` method that does no jumpurl handling any more. The
|
||||
new method only checks if the current page is a link to an external URL and sets the :code:`redirectUrl` property.
|
||||
|
||||
The method :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::jumpUrl()` has also been marked as deprecated
|
||||
and is an alias for the new :code:`redirectToExternalUrl()` method. The jumpurl handling has been removed from
|
||||
this method. It loops over all registered URL handlers and handles the redirection to the :code:`redirectUrl`.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All CMS 7.4 installations that use the JumpURL features or that use Extensions that rely on these features
|
||||
or one of the removed methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If you want to use the JumpURL features you need to install the jumpurl extension. Your configuration should
|
||||
work as before.
|
||||
|
||||
Please note that the configuration of the :ref:`filelink <t3tsref:typolink-resource_references>` TypoScript function has changed.
|
||||
Passing the :code:`jumpurl` parameter in the configuration has been marked as deprecated and will be removed in future versions.
|
||||
|
||||
You can now pass arbitrary configuration options for the typolink call that is used to generate
|
||||
the file link in the :code:`typolinkConfiguration` parameter:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.myfilelink = TEXT
|
||||
lib.myfilelink.value = fileadmin/myfile.txt
|
||||
lib.myfilelink.filelink {
|
||||
typolinkConfiguration.jumpurl = 1
|
||||
typolinkConfiguration.jumpurl.secure = 1
|
||||
}
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:jumpurl, TypoScript, Frontend
|
||||
Reference in New Issue
Block a user