TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+53
@@ -0,0 +1,53 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-92358:
|
||||
|
||||
=================================================================
|
||||
Feature: #92358 - Add getModuleTemplate() to PageLayoutController
|
||||
=================================================================
|
||||
|
||||
See :issue:`92358`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The :php:`TYPO3\CMS\Backend\Controller\PageLayoutController` features
|
||||
two hooks for manipulating the "Page" module. :php:`drawHeaderHook` and
|
||||
:php:`drawFooterHook`. Those hooks already
|
||||
receive the parent object :php:`PageLayoutController`. Since the calling
|
||||
code expects the hooks to return additional content, it was previously
|
||||
not possible to change other parts of the module, for example the module header.
|
||||
|
||||
To give developers more possibilities in manipulating the "Page" module,
|
||||
using the mentioned hooks, the parent object now contains a new getter
|
||||
method :php:`getModuleTemplate()`. It can for example be used to add an
|
||||
additional button to the modules' button bar.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
public function drawHeaderHook(array $parameters, PageLayoutController $parentObject)
|
||||
{
|
||||
$moduleTemplate = $parentObject->getModuleTemplate();
|
||||
$buttonBar = $moduleTemplate->getDocHeaderComponent()->getButtonBar();
|
||||
|
||||
$linkButton = $buttonBar
|
||||
->makeLinkButton()
|
||||
->setHref('/typo3/some/url')
|
||||
->setTitle('My custom button')
|
||||
->setClasses('custom-link-class')
|
||||
->setIcon($moduleTemplate->getIconFactory()->getIcon('actions-link', Icon::SIZE_SMALL));
|
||||
|
||||
$buttonBar->addButton($linkButton);
|
||||
}
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
When using either the :php:`drawHeaderHook` or the :php:`drawFooterHook` of the
|
||||
:php:`PageLayoutController`, the provided parent object now contains
|
||||
the :php:`getModuleTemplate()` method, which can be used to retrieve
|
||||
the corresponding :php:`\TYPO3\CMS\Backend\Template\ModuleTemplate` instance.
|
||||
This provides more flexibility to third party code manipulating the "Page"
|
||||
module view.
|
||||
|
||||
.. index:: Backend, PHP-API, ext:backend
|
||||
Reference in New Issue
Block a user