[FEATURE] TCA refactoring
authorChristian Kuhn <lolli@schwarzbu.ch>
Sat, 23 Feb 2013 18:54:14 +0000 (19:54 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Thu, 28 Feb 2013 19:00:37 +0000 (20:00 +0100)
Follow up to core patch for workspaces submodule

Related: #45767
Releases: 6.1
Change-Id: I9ffd0b9bcecf98987f16e4e665cee079c1486a5f
Reviewed-on: https://review.typo3.org/18450
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/sysext/workspaces/Classes/ExtDirect/ExtDirectServer.php
typo3/sysext/workspaces/Classes/Service/HistoryService.php
typo3/sysext/workspaces/Configuration/TCA/sys_workspace.php [new file with mode: 0644]
typo3/sysext/workspaces/Configuration/TCA/sys_workspace_stage.php [new file with mode: 0644]
typo3/sysext/workspaces/ext_tables.php
typo3/sysext/workspaces/tca.php [deleted file]

index aa6c89e..4669766 100644 (file)
@@ -129,8 +129,6 @@ class ExtDirectServer extends \TYPO3\CMS\Workspaces\ExtDirect\AbstractHandler {
                $icon_Workspace = \TYPO3\CMS\Backend\Utility\IconUtility::mapRecordTypeToSpriteIconClass($parameter->table, $versionRecord);
                $stagePosition = $this->getStagesService()->getPositionOfCurrentStage($parameter->stage);
                $fieldsOfRecords = array_keys($liveRecord);
-               // get field list from TCA configuration, if available
-               \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA($parameter->table);
                if ($GLOBALS['TCA'][$parameter->table]) {
                        if ($GLOBALS['TCA'][$parameter->table]['interface']['showRecordFieldList']) {
                                $fieldsOfRecords = $GLOBALS['TCA'][$parameter->table]['interface']['showRecordFieldList'];
index 8eb3d3f..bb2e9aa 100644 (file)
@@ -109,7 +109,6 @@ class HistoryService implements \TYPO3\CMS\Core\SingletonInterface {
                if (is_array($entry['newRecord'])) {
                        $fields = array_keys($entry['newRecord']);
                        foreach ($fields as $field) {
-                               \TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA($tableName);
                                if (!empty($GLOBALS['TCA'][$tableName]['columns'][$field]['config']['type']) && $GLOBALS['TCA'][$tableName]['columns'][$field]['config']['type'] !== 'passthrough') {
                                        // Create diff-result:
                                        $fieldDifferences = $this->getDifferencesObject()->makeDiffDisplay(\TYPO3\CMS\Backend\Utility\BackendUtility::getProcessedValue($tableName, $field, $entry['oldRecord'][$field], 0, TRUE), \TYPO3\CMS\Backend\Utility\BackendUtility::getProcessedValue($tableName, $field, $entry['newRecord'][$field], 0, TRUE));
diff --git a/typo3/sysext/workspaces/Configuration/TCA/sys_workspace.php b/typo3/sysext/workspaces/Configuration/TCA/sys_workspace.php
new file mode 100644 (file)
index 0000000..5aa6df3
--- /dev/null
@@ -0,0 +1,278 @@
+<?php
+return array(
+       'ctrl' => array(
+               'label' => 'title',
+               'tstamp' => 'tstamp',
+               'title' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace',
+               'adminOnly' => 1,
+               'rootLevel' => 1,
+               'delete' => 'deleted',
+               'iconfile' => 'sys_workspace.png',
+               'typeicon_classes' => array(
+                       'default' => 'mimetypes-x-sys_workspace'
+               ),
+               'versioningWS_alwaysAllowLiveEdit' => TRUE,
+               'dividers2tabs' => TRUE
+       ),
+       'columns' => array(
+               'title' => array(
+                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.title',
+                       'config' => array(
+                               'type' => 'input',
+                               'size' => '20',
+                               'max' => '30',
+                               'eval' => 'required,trim,unique'
+                       )
+               ),
+               'description' => array(
+                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.description',
+                       'config' => array(
+                               'type' => 'text',
+                               'rows' => 5,
+                               'cols' => 30
+                       )
+               ),
+               'adminusers' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.adminusers',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '10',
+                               'autoSizeMax' => 10,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'members' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.members',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '100',
+                               'autoSizeMax' => 10,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'db_mountpoints' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:db_mountpoints',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'pages',
+                               'size' => '3',
+                               'maxitems' => 25,
+                               'autoSizeMax' => 10,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'file_mountpoints' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:file_mountpoints',
+                       'config' => array(
+                               'type' => 'select',
+                               'foreign_table' => 'sys_filemounts',
+                               'foreign_table_where' => ' AND sys_filemounts.pid=0 ORDER BY sys_filemounts.title',
+                               'size' => '3',
+                               'maxitems' => 25,
+                               'autoSizeMax' => 10,
+                               'renderMode' => $GLOBALS['TYPO3_CONF_VARS']['BE']['accessListRenderMode'],
+                               'iconsInOptionTags' => 1
+                       )
+               ),
+               'publish_time' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_time',
+                       'config' => array(
+                               'type' => 'input',
+                               'size' => '8',
+                               'max' => '20',
+                               'eval' => 'datetime',
+                               'default' => '0',
+                               'checkbox' => '0'
+                       )
+               ),
+               'unpublish_time' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.unpublish_time',
+                       'config' => array(
+                               'type' => 'input',
+                               'size' => '8',
+                               'max' => '20',
+                               'eval' => 'datetime',
+                               'checkbox' => '0',
+                               'default' => '0',
+                               'range' => array(
+                                       'upper' => mktime(0, 0, 0, 12, 31, 2020)
+                               )
+                       ),
+                       'displayCond' => 'FALSE'
+               ),
+               'freeze' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.freeze',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => '0'
+                       )
+               ),
+               'live_edit' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.live_edit',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => '0'
+                       )
+               ),
+               'disable_autocreate' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.disable_autocreate',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => '0'
+                       )
+               ),
+               'swap_modes' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.swap_modes',
+                       'config' => array(
+                               'type' => 'select',
+                               'items' => array(
+                                       array('', 0),
+                                       array('Swap-Into-Workspace on Auto-publish', 1),
+                                       array('Disable Swap-Into-Workspace', 2)
+                               )
+                       )
+               ),
+               'publish_access' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_access',
+                       'config' => array(
+                               'type' => 'check',
+                               'items' => array(
+                                       array('Publish only content in publish stage', 0),
+                                       array('Only workspace owner can publish', 0)
+                               )
+                       )
+               ),
+               'stagechg_notification' => array(
+                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.stagechg_notification',
+                       'config' => array(
+                               'type' => 'select',
+                               'items' => array(
+                                       array('', 0),
+                                       array('Notify users on next stage only', 1),
+                                       array('Notify all users on any change', 10)
+                               )
+                       )
+               ),
+               'custom_stages' => array(
+                       'exclude' => 1,
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.custom_stages',
+                       'config' => array(
+                               'type' => 'inline',
+                               'foreign_table' => 'sys_workspace_stage',
+                               'appearance' => 'useSortable,expandSingle',
+                               'foreign_field' => 'parentid',
+                               'foreign_table_field' => 'parenttable',
+                               'minitems' => 0
+                       ),
+                       'default' => 0
+               ),
+               'edit_notification_mode' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_notification_mode',
+                       'config' => array(
+                               'type' => 'select',
+                               'items' => array(
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
+                               )
+                       )
+               ),
+               'edit_notification_defaults' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_notification_defaults',
+                       'displayCond' => 'FIELD:edit_notification_mode:IN:0,1',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '100',
+                               'autoSizeMax' => 20,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'edit_allow_notificaton_settings' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_allow_notificaton_settings',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => 1
+                       )
+               ),
+               'publish_notification_mode' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_notification_mode',
+                       'config' => array(
+                               'type' => 'select',
+                               'items' => array(
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
+                               )
+                       )
+               ),
+               'publish_notification_defaults' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_notification_defaults',
+                       'displayCond' => 'FIELD:publish_notification_mode:IN:0,1',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '100',
+                               'autoSizeMax' => 20,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'publish_allow_notificaton_settings' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_allow_notificaton_settings',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => 1
+                       )
+               )
+       ),
+       'types' => array(
+               '0' => array('showitem' => 'title,description,
+                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.users,adminusers,members,
+                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:tabs.notification_settings,stagechg_notification,edit_notification_mode,edit_notification_defaults,edit_allow_notificaton_settings,publish_notification_mode,publish_notification_defaults,publish_allow_notificaton_settings,
+                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.mountpoints,db_mountpoints,file_mountpoints,
+                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.publishing,publish_time,unpublish_time,
+                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_filemounts.tabs.staging,custom_stages,
+                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.other,freeze,live_edit,disable_autocreate,swap_modes,publish_access')
+       )
+);
+?>
\ No newline at end of file
diff --git a/typo3/sysext/workspaces/Configuration/TCA/sys_workspace_stage.php b/typo3/sysext/workspaces/Configuration/TCA/sys_workspace_stage.php
new file mode 100644 (file)
index 0000000..eec9553
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+return array(
+       'ctrl' => array(
+               'label' => 'title',
+               'tstamp' => 'tstamp',
+               'sortby' => 'sorting',
+               'title' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage',
+               'adminOnly' => 1,
+               'rootLevel' => 1,
+               'hideTable' => TRUE,
+               'delete' => 'deleted',
+               'iconfile' => 'sys_workspace.png',
+               'typeicon_classes' => array(
+                       'default' => 'mimetypes-x-sys_workspace'
+               ),
+               'versioningWS_alwaysAllowLiveEdit' => TRUE,
+               'dividers2tabs' => TRUE
+       ),
+       'columns' => array(
+               'title' => array(
+                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.title',
+                       'config' => array(
+                               'type' => 'input',
+                               'size' => '20',
+                               'max' => '30',
+                               'eval' => 'required,trim'
+                       )
+               ),
+               'responsible_persons' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.responsible_persons',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '100',
+                               'autoSizeMax' => 20,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'default_mailcomment' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.default_mailcomment',
+                       'config' => array(
+                               'type' => 'text',
+                               'rows' => 5,
+                               'cols' => 30
+                       )
+               ),
+               'parentid' => array(
+                       'exclude' => 0,
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.parentid',
+                       'config' => array(
+                               'type' => 'passthrough'
+                       )
+               ),
+               'parenttable' => array(
+                       'exclude' => 0,
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.parenttable',
+                       'config' => array(
+                               'type' => 'passthrough'
+                       )
+               ),
+               'notification_mode' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.notification_mode',
+                       'config' => array(
+                               'type' => 'select',
+                               'items' => array(
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
+                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
+                               )
+                       )
+               ),
+               'notification_defaults' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.notification_defaults',
+                       'displayCond' => 'FIELD:notification_mode:IN:0,1',
+                       'config' => array(
+                               'type' => 'group',
+                               'internal_type' => 'db',
+                               'allowed' => 'be_users,be_groups',
+                               'prepend_tname' => 1,
+                               'size' => '3',
+                               'maxitems' => '100',
+                               'autoSizeMax' => 20,
+                               'show_thumbs' => '1',
+                               'wizards' => array(
+                                       'suggest' => array(
+                                               'type' => 'suggest'
+                                       )
+                               )
+                       )
+               ),
+               'allow_notificaton_settings' => array(
+                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.allow_notificaton_settings',
+                       'config' => array(
+                               'type' => 'check',
+                               'default' => 1
+                       )
+               )
+       ),
+       'types' => array(
+               '0' => array('showitem' => '
+                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xlf:tabs.general,title,responsible_persons,
+                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xlf:tabs.notification_settings,notification_mode,notification_defaults,allow_notificaton_settings,default_mailcomment')
+       )
+);
+?>
\ No newline at end of file
index 3e48d2a..8e599cd 100644 (file)
@@ -11,7 +11,7 @@ if (TYPO3_MODE == 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
                'workspaces',
                'before:info',
                array(
-                               // An array holding the controller-action-combinations that are accessible
+                       // An array holding the controller-action-combinations that are accessible
                        'Review' => 'index,fullIndex,singleIndex',
                        'Preview' => 'index,newPage'
                ),
@@ -28,50 +28,7 @@ if (TYPO3_MODE == 'BE' && !(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL)) {
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerExtDirectComponent('TYPO3.Workspaces.ExtDirectMassActions', \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Classes/ExtDirect/MassActionHandler.php:TYPO3\\CMS\\Workspaces\\ExtDirect\\MassActionHandler', 'web_WorkspacesWorkspaces', 'user,group');
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::registerExtDirectComponent('TYPO3.Ajax.ExtDirect.ToolbarMenu', \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Classes/ExtDirect/ToolbarMenu.php:TYPO3\\CMS\\Workspaces\\ExtDirect\\ToolbarMenu');
 }
-/**
- * Table "sys_workspace":
- */
-$TCA['sys_workspace'] = array(
-       'ctrl' => array(
-               'label' => 'title',
-               'tstamp' => 'tstamp',
-               'title' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace',
-               'adminOnly' => 1,
-               'rootLevel' => 1,
-               'delete' => 'deleted',
-               'iconfile' => 'sys_workspace.png',
-               'typeicon_classes' => array(
-                       'default' => 'mimetypes-x-sys_workspace'
-               ),
-               'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'tca.php',
-               'versioningWS_alwaysAllowLiveEdit' => TRUE,
-               'dividers2tabs' => TRUE
-       )
-);
-/**
- * Table "sys_workspace_stage":
- * Defines single custom stages which are related to sys_workspace table to create complex working processes
- * This is only the 'header' part (ctrl). The full configuration is found in t3lib/stddb/tbl_be.php
- */
-$TCA['sys_workspace_stage'] = array(
-       'ctrl' => array(
-               'label' => 'title',
-               'tstamp' => 'tstamp',
-               'sortby' => 'sorting',
-               'title' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage',
-               'adminOnly' => 1,
-               'rootLevel' => 1,
-               'hideTable' => TRUE,
-               'delete' => 'deleted',
-               'iconfile' => 'sys_workspace.png',
-               'typeicon_classes' => array(
-                       'default' => 'mimetypes-x-sys_workspace'
-               ),
-               'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'tca.php',
-               'versioningWS_alwaysAllowLiveEdit' => TRUE,
-               'dividers2tabs' => TRUE
-       )
-);
+
 // todo move icons to Core sprite or keep them here and remove the todo note ;)
 $icons = array(
        'sendtonextstage' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Images/version-workspace-sendtonextstage.png',
diff --git a/typo3/sysext/workspaces/tca.php b/typo3/sysext/workspaces/tca.php
deleted file mode 100644 (file)
index 2562624..0000000
+++ /dev/null
@@ -1,367 +0,0 @@
-<?php
-/**
- * System workspaces - Defines the offline workspaces available to users in TYPO3.
- */
-$TCA['sys_workspace'] = array(
-       'ctrl' => $TCA['sys_workspace']['ctrl'],
-       'columns' => array(
-               'title' => array(
-                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.title',
-                       'config' => array(
-                               'type' => 'input',
-                               'size' => '20',
-                               'max' => '30',
-                               'eval' => 'required,trim,unique'
-                       )
-               ),
-               'description' => array(
-                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.description',
-                       'config' => array(
-                               'type' => 'text',
-                               'rows' => 5,
-                               'cols' => 30
-                       )
-               ),
-               'adminusers' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.adminusers',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '10',
-                               'autoSizeMax' => 10,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'members' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.members',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '100',
-                               'autoSizeMax' => 10,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'db_mountpoints' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:db_mountpoints',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'pages',
-                               'size' => '3',
-                               'maxitems' => 25,
-                               'autoSizeMax' => 10,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'file_mountpoints' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:file_mountpoints',
-                       'config' => array(
-                               'type' => 'select',
-                               'foreign_table' => 'sys_filemounts',
-                               'foreign_table_where' => ' AND sys_filemounts.pid=0 ORDER BY sys_filemounts.title',
-                               'size' => '3',
-                               'maxitems' => 25,
-                               'autoSizeMax' => 10,
-                               'renderMode' => $GLOBALS['TYPO3_CONF_VARS']['BE']['accessListRenderMode'],
-                               'iconsInOptionTags' => 1
-                       )
-               ),
-               'publish_time' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_time',
-                       'config' => array(
-                               'type' => 'input',
-                               'size' => '8',
-                               'max' => '20',
-                               'eval' => 'datetime',
-                               'default' => '0',
-                               'checkbox' => '0'
-                       )
-               ),
-               'unpublish_time' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.unpublish_time',
-                       'config' => array(
-                               'type' => 'input',
-                               'size' => '8',
-                               'max' => '20',
-                               'eval' => 'datetime',
-                               'checkbox' => '0',
-                               'default' => '0',
-                               'range' => array(
-                                       'upper' => mktime(0, 0, 0, 12, 31, 2020)
-                               )
-                       ),
-                       'displayCond' => 'FALSE'
-               ),
-               'freeze' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.freeze',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => '0'
-                       )
-               ),
-               'live_edit' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.live_edit',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => '0'
-                       )
-               ),
-               'disable_autocreate' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.disable_autocreate',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => '0'
-                       )
-               ),
-               'swap_modes' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.swap_modes',
-                       'config' => array(
-                               'type' => 'select',
-                               'items' => array(
-                                       array('', 0),
-                                       array('Swap-Into-Workspace on Auto-publish', 1),
-                                       array('Disable Swap-Into-Workspace', 2)
-                               )
-                       )
-               ),
-               'publish_access' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_access',
-                       'config' => array(
-                               'type' => 'check',
-                               'items' => array(
-                                       array('Publish only content in publish stage', 0),
-                                       array('Only workspace owner can publish', 0)
-                               )
-                       )
-               ),
-               'stagechg_notification' => array(
-                       'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.stagechg_notification',
-                       'config' => array(
-                               'type' => 'select',
-                               'items' => array(
-                                       array('', 0),
-                                       array('Notify users on next stage only', 1),
-                                       array('Notify all users on any change', 10)
-                               )
-                       )
-               ),
-               'custom_stages' => array(
-                       'exclude' => 1,
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.custom_stages',
-                       'config' => array(
-                               'type' => 'inline',
-                               'foreign_table' => 'sys_workspace_stage',
-                               'appearance' => 'useSortable,expandSingle',
-                               'foreign_field' => 'parentid',
-                               'foreign_table_field' => 'parenttable',
-                               'minitems' => 0
-                       ),
-                       'default' => 0
-               ),
-               'edit_notification_mode' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_notification_mode',
-                       'config' => array(
-                               'type' => 'select',
-                               'items' => array(
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
-                               )
-                       )
-               ),
-               'edit_notification_defaults' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_notification_defaults',
-                       'displayCond' => 'FIELD:edit_notification_mode:IN:0,1',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '100',
-                               'autoSizeMax' => 20,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'edit_allow_notificaton_settings' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.edit_allow_notificaton_settings',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => 1
-                       )
-               ),
-               'publish_notification_mode' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_notification_mode',
-                       'config' => array(
-                               'type' => 'select',
-                               'items' => array(
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
-                               )
-                       )
-               ),
-               'publish_notification_defaults' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_notification_defaults',
-                       'displayCond' => 'FIELD:publish_notification_mode:IN:0,1',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '100',
-                               'autoSizeMax' => 20,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'publish_allow_notificaton_settings' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.publish_allow_notificaton_settings',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => 1
-                       )
-               )
-       ),
-       'types' => array(
-               '0' => array('showitem' => 'title,description,
-                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.users,adminusers,members,
-                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:tabs.notification_settings,stagechg_notification,edit_notification_mode,edit_notification_defaults,edit_allow_notificaton_settings,publish_notification_mode,publish_notification_defaults,publish_allow_notificaton_settings,
-                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.mountpoints,db_mountpoints,file_mountpoints,
-                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.publishing,publish_time,unpublish_time,
-                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_filemounts.tabs.staging,custom_stages,
-                       --div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.other,freeze,live_edit,disable_autocreate,swap_modes,publish_access')
-       )
-);
-/**
- * Workspace stages - Defines the single workspace stages which are related to a workspace.
- */
-$TCA['sys_workspace_stage'] = array(
-       'ctrl' => $TCA['sys_workspace_stage']['ctrl'],
-       'columns' => array(
-               'title' => array(
-                       'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.title',
-                       'config' => array(
-                               'type' => 'input',
-                               'size' => '20',
-                               'max' => '30',
-                               'eval' => 'required,trim'
-                       )
-               ),
-               'responsible_persons' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.responsible_persons',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '100',
-                               'autoSizeMax' => 20,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'default_mailcomment' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.default_mailcomment',
-                       'config' => array(
-                               'type' => 'text',
-                               'rows' => 5,
-                               'cols' => 30
-                       )
-               ),
-               'parentid' => array(
-                       'exclude' => 0,
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.parentid',
-                       'config' => array(
-                               'type' => 'passthrough'
-                       )
-               ),
-               'parenttable' => array(
-                       'exclude' => 0,
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.parenttable',
-                       'config' => array(
-                               'type' => 'passthrough'
-                       )
-               ),
-               'notification_mode' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.notification_mode',
-                       'config' => array(
-                               'type' => 'select',
-                               'items' => array(
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.0', 0),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.1', 1),
-                                       array('LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace.notification_mode.2', 2)
-                               )
-                       )
-               ),
-               'notification_defaults' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.notification_defaults',
-                       'displayCond' => 'FIELD:notification_mode:IN:0,1',
-                       'config' => array(
-                               'type' => 'group',
-                               'internal_type' => 'db',
-                               'allowed' => 'be_users,be_groups',
-                               'prepend_tname' => 1,
-                               'size' => '3',
-                               'maxitems' => '100',
-                               'autoSizeMax' => 20,
-                               'show_thumbs' => '1',
-                               'wizards' => array(
-                                       'suggest' => array(
-                                               'type' => 'suggest'
-                                       )
-                               )
-                       )
-               ),
-               'allow_notificaton_settings' => array(
-                       'label' => 'LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xml:sys_workspace_stage.allow_notificaton_settings',
-                       'config' => array(
-                               'type' => 'check',
-                               'default' => 1
-                       )
-               )
-       ),
-       'types' => array(
-               '0' => array('showitem' => '
-                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xlf:tabs.general,title,responsible_persons,
-                       --div--;LLL:EXT:workspaces/Resources/Private/Language/locallang_db.xlf:tabs.notification_settings,notification_mode,notification_defaults,allow_notificaton_settings,default_mailcomment')
-       )
-);
-?>
\ No newline at end of file