[FEATURE] Introduce backend layout data providers 04/11804/43
authorOliver Hader <oliver@typo3.org>
Sat, 12 Oct 2013 16:47:22 +0000 (18:47 +0200)
committerOliver Hader <oliver.hader@typo3.org>
Mon, 14 Oct 2013 23:43:37 +0000 (01:43 +0200)
commita569758696c82501ee5bee1b78ca4b70dd755895
treea7bb06319195304ca4260013441c5f9a28825187
parentf58a27c8b2bc8256f3e0b95374e32a19e0167647
[FEATURE] Introduce backend layout data providers

Backend layouts are currently stored in the database as
regular records. Since extension cannot ship their specific
backend layout definitions, data providers become handy in
providing the accordant information taken from e.g. static
files in the file system.

Data providers can be registered like shown in the follow and
need to be implement DataProviderInterface of the namespace
TYPO3\CMS\Backend\View\BackendLayout:

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']
['BackendLayoutDataProvider'][$_EXTKEY] = 'Classname';

A DataProviderContext object is used to transport submitted
data (e.g. table or field name) to the accordant data providers.

Change-Id: I2e3d39e720c6d1bffa9a586148f0eea4cab0210e
Resolves: #37208
Documentation: #52809
Releases: 6.2
Reviewed-on: https://review.typo3.org/11804
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
16 files changed:
typo3/sysext/backend/Classes/Controller/ContentElement/MoveElementController.php
typo3/sysext/backend/Classes/View/BackendLayout/BackendLayout.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayout/BackendLayoutCollection.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayout/DataProviderCollection.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayout/DataProviderContext.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayout/DataProviderInterface.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayout/DefaultDataProvider.php [new file with mode: 0644]
typo3/sysext/backend/Classes/View/BackendLayoutView.php
typo3/sysext/backend/Classes/View/PageLayoutView.php
typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutCollectionTest.php [new file with mode: 0644]
typo3/sysext/backend/Tests/Unit/View/BackendLayout/BackendLayoutTest.php [new file with mode: 0644]
typo3/sysext/backend/Tests/Unit/View/BackendLayout/DataProviderCollectionTest.php [new file with mode: 0644]
typo3/sysext/backend/Tests/Unit/View/BackendLayoutViewTest.php [new file with mode: 0644]
typo3/sysext/cms/locallang_tca.xlf
typo3/sysext/core/Configuration/TCA/pages.php
typo3/sysext/core/ext_tables.sql