[!!!][TASK] Use move placeholders as default in workspaces 85/35685/13
authorBenjamin Mack <benni@typo3.org>
Fri, 21 Aug 2015 13:02:51 +0000 (15:02 +0200)
committerOliver Hader <oliver.hader@typo3.org>
Fri, 30 Oct 2015 14:23:01 +0000 (15:23 +0100)
Only allow workspaces version 2 (TCA->ctrl->versioningWS)
and use this option as default when setting versioningWS to TRUE.

Releases: master
Resolves: #24449
Change-Id: I5cfa5aa4c11fa7ef38b45b42082da6e0d75eb4ed
Reviewed-on: https://review.typo3.org/35685
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
48 files changed:
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/backend/Tests/Unit/Utility/BackendUtilityTest.php
typo3/sysext/core/Classes/DataHandling/PlainDataResolver.php
typo3/sysext/core/Configuration/TCA/pages.php
typo3/sysext/core/Configuration/TCA/sys_category.php
typo3/sysext/core/Configuration/TCA/sys_file_reference.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-24449-UseMovePlaceholdersAsDefaultInWorkspaces.rst [new file with mode: 0644]
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_offer.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1ncsv_price.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_offer.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_1nff_price.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_hotel_offer_rel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_offer.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnasym_price.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_hotel_offer_rel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnattr_offer.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_offer.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnmmasym_price.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/irre_tutorial/Configuration/TCA/tx_irretutorial_mnsym_hotel_rel.php
typo3/sysext/core/Tests/Functional/Fixtures/Extensions/test_datahandler/Configuration/TCA/tx_testdatahandler_element.php
typo3/sysext/core/Tests/Unit/Database/RelationHandlerTest.php
typo3/sysext/extbase/Classes/Persistence/Generic/Storage/Typo3DbBackend.php
typo3/sysext/extbase/Tests/Functional/Fixtures/Extensions/blog_example/ext_tables.php
typo3/sysext/frontend/Classes/ContentObject/ContentObjectRenderer.php
typo3/sysext/frontend/Classes/Page/PageRepository.php
typo3/sysext/frontend/Configuration/TCA/tt_content.php
typo3/sysext/frontend/Tests/Unit/ContentObject/ContentObjectRendererTest.php
typo3/sysext/frontend/Tests/Unit/Page/PageRepositoryTest.php
typo3/sysext/frontend/ext_tables.sql
typo3/sysext/impexp/Tests/Functional/Fixtures/Extensions/impexp_group_files/Configuration/TCA/tx_impexpgroupfiles_item.php
typo3/sysext/lowlevel/Classes/VersionsCommand.php
typo3/sysext/version/Classes/Hook/DataHandlerHook.php
typo3/sysext/workspaces/Classes/Service/WorkspaceService.php
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/changeContentSorting.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/moveContentToDifferentPage.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Modify/DataSet/moveContentToDifferentPageNChangeSorting.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/changeContentSorting.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/moveContentToDifferentPage.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/Publish/DataSet/moveContentToDifferentPageNChangeSorting.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/changeContentSorting.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/moveContentToDifferentPage.csv
typo3/sysext/workspaces/Tests/Functional/DataHandling/FAL/PublishAll/DataSet/moveContentToDifferentPageNChangeSorting.csv

index f007477..928e01c 100755 (executable)
@@ -4376,7 +4376,7 @@ class BackendUtility
             // If version was found, swap the default record with that one.
             if (is_array($wsAlt)) {
                 // Check if this is in move-state:
-                if ($previewMovePlaceholders && !$movePldSwap && ($table == 'pages' || (int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2) && $unsetMovePointers) {
+                if ($previewMovePlaceholders && !$movePldSwap && $GLOBALS['TCA'][$table]['ctrl']['versioningWS'] && $unsetMovePointers) {
                     // Only for WS ver 2... (moving)
                     // If t3ver_state is not found, then find it... (but we like best if it is here...)
                     if (!isset($wsAlt['t3ver_state'])) {
@@ -4428,8 +4428,7 @@ class BackendUtility
      */
     public static function movePlhOL($table, &$row)
     {
-        // Only for WS ver 2... (moving)
-        if ($table == 'pages' || (int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2) {
+        if ($GLOBALS['TCA'][$table]['ctrl']['versioningWS']) {
             // If t3ver_move_id or t3ver_state is not found, then find it... (but we like best if it is here...)
             if (!isset($row['t3ver_move_id']) || !isset($row['t3ver_state'])) {
                 $moveIDRec = self::getRecord($table, $row['uid'], 't3ver_move_id, t3ver_state');
@@ -4563,13 +4562,10 @@ class BackendUtility
         $output = array();
         foreach ($GLOBALS['TCA'] as $tableName => $cfg) {
             if ($tableName != 'pages' && $cfg['ctrl']['versioningWS']) {
-                $joinStatement = 'A.t3ver_oid=B.uid';
-                // Consider records that are moved to a different page
-                if (self::isTableMovePlaceholderAware($tableName)) {
-                    $movePointer = new VersionState(VersionState::MOVE_POINTER);
-                    $joinStatement = '(A.t3ver_oid=B.uid AND A.t3ver_state<>' . $movePointer
-                        . ' OR A.t3ver_oid=B.t3ver_move_id AND A.t3ver_state=' . $movePointer . ')';
-                }
+                $movePointer = new VersionState(VersionState::MOVE_POINTER);
+                $joinStatement = '(A.t3ver_oid=B.uid AND A.t3ver_state<>' . $movePointer
+                    . ' OR A.t3ver_oid=B.t3ver_move_id AND A.t3ver_state=' . $movePointer . ')';
+
                 // Select all records from this table in the database from the workspace
                 // This joins the online version with the offline version as tables A and B
                 $output[$tableName] = static::getDatabaseConnection()->exec_SELECTgetRows(
@@ -4625,7 +4621,7 @@ class BackendUtility
         if ($workspace === null) {
             $workspace = static::getBackendUserAuthentication()->workspace;
         }
-        if ((int)$workspace !== 0 && $GLOBALS['TCA'][$table] && (int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2) {
+        if ((int)$workspace !== 0 && $GLOBALS['TCA'][$table] && $GLOBALS['TCA'][$table]['ctrl']['versioningWS']) {
             // Select workspace version of record:
             $row = static::getDatabaseConnection()->exec_SELECTgetSingleRow(
                 $fields,
@@ -4781,13 +4777,15 @@ class BackendUtility
     /**
      * Determines whether a table is aware of using move placeholders,
      * which means 'versioningWS' is set to 2.
+     * As of TYPO3 CMS 7, move placeholders is used as default so the method is obsolete.
      *
      * @param string $table
      * @return bool
+     * @deprecated since TYPO3 CMS 7, will be removed in TYPO3 CMS 8, use isTableWorkspaceEnabled() directly
      */
     public static function isTableMovePlaceholderAware($table)
     {
-        return (self::isTableWorkspaceEnabled($table) && (int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] === 2);
+        return self::isTableWorkspaceEnabled($table);
     }
 
     /**
index 360169c..3878420 100644 (file)
@@ -439,7 +439,7 @@ class BackendUtilityTest extends UnitTestCase
                 'presetFields' => array(),
                 'tca' => array(
                     'ctrl' => array(
-                        'versioningWS' => '2'
+                        'versioningWS' => true
                     )
                 ),
                 'expectedFields' => 'uid,t3ver_id,t3ver_state,t3ver_wsid,t3ver_count'
index 09d0329..85e093d 100644 (file)
@@ -167,7 +167,7 @@ class PlainDataResolver
     protected function processVersionMovePlaceholders(array $ids)
     {
         // Early return on insufficient data-set
-        if (empty($this->workspaceId) || !$this->isVersionMovePlaceholderAware() || empty($ids)) {
+        if (empty($this->workspaceId) || !$this->isWorkspaceEnabled() || empty($ids)) {
             return $ids;
         }
 
@@ -292,14 +292,6 @@ class PlainDataResolver
     /**
      * @return bool
      */
-    protected function isVersionMovePlaceholderAware()
-    {
-        return BackendUtility::isTableMovePlaceholderAware($this->tableName);
-    }
-
-    /**
-     * @return bool
-     */
     protected function isLocalizationEnabled()
     {
         return BackendUtility::isTableLocalizable($this->tableName);
index 7fb4e07..71c4771 100644 (file)
@@ -6,7 +6,7 @@ return array(
         'sortby' => 'sorting',
         'title' => 'LLL:EXT:lang/locallang_tca.xlf:pages',
         'type' => 'doktype',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         'delete' => 'deleted',
         'crdate' => 'crdate',
index a569e25..86ab513 100644 (file)
@@ -9,7 +9,7 @@ return array(
         'cruser_id' => 'cruser_id',
         'delete' => 'deleted',
         'sortby' => 'sorting',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'rootLevel' => -1,
         'versioning_followPages' => true,
         'origUid' => 't3_origuid',
index fa4c329..a9417e8 100644 (file)
@@ -23,7 +23,7 @@ return array(
         'transOrigDiffSourceField' => 'l10n_diffsource',
         'rootLevel' => -1,
         // records can and should be edited in workspaces
-        'shadowColumnsForNewPlaceholders' => 'tablenames,fieldname,uid_local,uid_foreign',
+        'shadowColumnsForMovePlaceholders' => 'tablenames,fieldname,uid_local,table_local,uid_foreign',
         'enablecolumns' => array(
             'disabled' => 'hidden'
         ),
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-24449-UseMovePlaceholdersAsDefaultInWorkspaces.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-24449-UseMovePlaceholdersAsDefaultInWorkspaces.rst
new file mode 100644 (file)
index 0000000..bce0c58
--- /dev/null
@@ -0,0 +1,34 @@
+=================================================================
+Breaking: #24449 - Use move placeholders as default in workspaces
+=================================================================
+
+Description
+===========
+
+The ctrl section of each TCA table has the property "versioningWS" which might be set to "1" (enabled) or to "2"
+which enables "move placeholders" functionality.
+
+The "move placeholders" are now active by default, removing the possibility to have a "simple workspace" concept
+which does not consider sorting records inside a workspace.
+
+
+Impact
+======
+
+All checks in TYPO3 consider all TCA tables that have workspaces enabled ("versioningWS") to be
+move-placeholder-aware. All TCA tables that only have non-moveable-records in workspace now need the DB
+table field "t3ver_moveid" to be added.
+
+All existing TCA configurations with "versioningWS" can now simply be set to TRUE instead of "2".
+
+
+Affected Installations
+======================
+
+Any installation with third-party extensions that use workspace functionality but do not have move-placeholder-enabled records.
+
+
+Migration
+=========
+
+Make all TCA tables "move-placeholders" aware by adding the necessary database fields.
\ No newline at end of file
index b45bb1b..23cbf1d 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         'shadowColumnsForNewPlaceholders' => 'offers',
         'shadowColumnsForMovePlaceholders' => 'offers',
index c69aa49..7b9a55d 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_offer.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         'shadowColumnsForNewPlaceholders' => 'prices',
         'shadowColumnsForMovePlaceholders' => 'prices',
index 3d05351..29871a7 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_price.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 596fbc7..131aae5 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'parentid,parenttable',
index 920c5a4..48d524c 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_offer.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'parentid,parenttable',
index 2d8374f..9865bcd 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_price.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'parentid,parenttable',
index f4b7ef2..836f9a0 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 25ed2e6..481a280 100644 (file)
@@ -14,7 +14,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel_offer_rel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'hotelid,offerid',
index 43822fe..38e23cd 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_offer.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 735f41c..efcd4f1 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_price.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'parentid',
index 1f691fa..dda206c 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 039f626..7c87ee0 100644 (file)
@@ -14,7 +14,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel_offer_rel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'hotelid,offerid',
index 678b2b7..027fb46 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_offer.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 403e833..c4f107a 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index cad263c..41eb2dd 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_offer.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index 9b94255..bbecedf 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_price.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index c95af3b..fc0318a 100644 (file)
@@ -15,7 +15,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index f2284a4..6e01e67 100644 (file)
@@ -14,7 +14,7 @@ return array(
             'disabled' => 'hidden',
         ),
         'iconfile' => 'EXT:irre_tutorial/Resources/Public/Icons/icon_tx_irretutorial_hotel_rel.gif',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
         // @see http://forge.typo3.org/issues/29278 which solves it implicitly in the Core
         // 'shadowColumnsForNewPlaceholders' => 'hotelid',
index 563a5ac..855011a 100644 (file)
@@ -15,7 +15,7 @@ return array(
         'enablecolumns' => array(
             'disabled' => 'hidden',
         ),
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'origUid' => 't3_origuid',
     ),
     'interface' => array(
index ab8f0ee..33056fe 100644 (file)
@@ -59,7 +59,7 @@ class RelationHandlerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
      */
     public function purgeItemArrayReturnsTrueIfItemsHaveBeenPurged()
     {
-        $GLOBALS['TCA']['sys_category']['ctrl']['versioningWS'] = 2;
+        $GLOBALS['TCA']['sys_category']['ctrl']['versioningWS'] = true;
 
         $this->subject->tableArray = array(
             'sys_category' => array(1, 2, 3),
index 29156d3..7e18a80 100755 (executable)
@@ -795,8 +795,7 @@ class Typo3DbBackend implements BackendInterface, \TYPO3\CMS\Core\SingletonInter
         // (applying this to all rows does not work, since the sorting
         // order would be destroyed and possible limits not met anymore)
         if (!empty($pageRepository->versioningWorkspaceId)
-            && !empty($GLOBALS['TCA'][$tableName]['ctrl']['versioningWS'])
-            && (int)$GLOBALS['TCA'][$tableName]['ctrl']['versioningWS'] >= 2
+            && BackendUtility::isTableWorkspaceEnabled($tableName)
             && count($rows) === 1
         ) {
             $movePlaceholder = $this->databaseHandle->exec_SELECTgetSingleRow(
index 27747ab..8162499 100644 (file)
@@ -20,7 +20,7 @@ $TCA['tx_blogexample_domain_model_blog'] = array(
         'label' => 'title',
         'tstamp' => 'tstamp',
         'crdate' => 'crdate',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'versioning_followPages' => true,
         'origUid' => 't3_origuid',
         'languageField' => 'sys_language_uid',
@@ -44,7 +44,7 @@ $TCA['tx_blogexample_domain_model_post'] = array(
         'label_alt_force' => true,
         'tstamp'   => 'tstamp',
         'crdate'   => 'crdate',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'versioning_followPages' => true,
         'origUid' => 't3_origuid',
         'languageField' => 'sys_language_uid',
@@ -84,7 +84,7 @@ $TCA['tx_blogexample_domain_model_person'] = array(
         'label_alt_force' => true,
         'tstamp' => 'tstamp',
         'crdate' => 'crdate',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'versioning_followPages' => true,
         'origUid' => 't3_origuid',
         'prependAtCopy' => 'LLL:EXT:lang/locallang_general.xml:LGL.prependAtCopy',
index 2c98ea6..6e81f96 100644 (file)
@@ -8399,7 +8399,6 @@ class ContentObjectRenderer
         $considerMovePlaceholders = (
             $tsfe->sys_page->versioningPreview && $table !== 'pages'
             && !empty($GLOBALS['TCA'][$table]['ctrl']['versioningWS'])
-            && (int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2
         );
         if (trim($conf['uidInList'])) {
             $listArr = GeneralUtility::intExplode(',', str_replace('this', $tsfe->contentPid, $conf['uidInList']));
index 34e654d..3defe3c 100644 (file)
@@ -1463,10 +1463,10 @@ class PageRepository
      */
     public function movePlhOL($table, &$row)
     {
-        if ((int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2
+        if (!empty($GLOBALS['TCA'][$table]['ctrl']['versioningWS'])
             && (int)VersionState::cast($row['t3ver_state'])->equals(VersionState::MOVE_PLACEHOLDER)
         ) {
-            // Only for WS ver 2... (moving)
+            // Only for WS ver 2... (moving) - enabled by default with CMS7
             // If t3ver_move_id is not found, then find it (but we like best if it is here)
             if (!isset($row['t3ver_move_id'])) {
                 $moveIDRec = $this->getRawRecord($table, $row['uid'], 't3ver_move_id', true);
@@ -1501,7 +1501,7 @@ class PageRepository
     {
         if ($this->versioningPreview) {
             $workspace = (int)$this->versioningWorkspaceId;
-            if ((int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2 && $workspace !== 0) {
+            if (!empty($GLOBALS['TCA'][$table]['ctrl']['versioningWS']) && $workspace !== 0) {
                 // Select workspace version of record:
                 $row = $this->getDatabaseConnection()->exec_SELECTgetSingleRow($fields, $table, 'pid<>-1 AND
                                                t3ver_state=' . new VersionState(VersionState::MOVE_PLACEHOLDER) . ' AND
index 31e371e..3b7d2e4 100644 (file)
@@ -11,7 +11,7 @@ return array(
         'editlock' => 'editlock',
         'title' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:tt_content',
         'delete' => 'deleted',
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'versioning_followPages' => true,
         'origUid' => 't3_origuid',
         'type' => 'CType',
index c0b43e5..618d0c8 100644 (file)
@@ -1629,7 +1629,7 @@ class ContentObjectRendererTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
                     'enablecolumns' => array(
                         'disabled' => 'hidden'
                     ),
-                    'versioningWS' => 2
+                    'versioningWS' => true
                 )
             ),
         );
index e2f758c..65290c0 100644 (file)
@@ -30,7 +30,7 @@ class PageRepositoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
             'tstamp' => 'tstamp',
             'sortby' => 'sorting',
             'type' => 'doktype',
-            'versioningWS' => 2,
+            'versioningWS' => true,
             'origUid' => 't3_origuid',
             'delete' => 'deleted',
             'enablecolumns' => array(
@@ -271,7 +271,7 @@ class PageRepositoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
             'pages' => $this->defaultTcaForPages,
             $table => array(
                 'ctrl' => array(
-                    'versioningWS' => 2
+                    'versioningWS' => true
                 )
             )
         );
@@ -295,7 +295,7 @@ class PageRepositoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
             'pages' => $this->defaultTcaForPages,
             $table => array(
                 'ctrl' => array(
-                    'versioningWS' => 2
+                    'versioningWS' => true
                 )
             )
         );
@@ -319,7 +319,7 @@ class PageRepositoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
             'pages' => $this->defaultTcaForPages,
             $table => array(
                 'ctrl' => array(
-                    'versioningWS' => 2
+                    'versioningWS' => true
                 )
             )
         );
@@ -343,7 +343,7 @@ class PageRepositoryTest extends \TYPO3\CMS\Core\Tests\UnitTestCase
             'pages' => $this->defaultTcaForPages,
             $table => array(
                 'ctrl' => array(
-                    'versioningWS' => 2
+                    'versioningWS' => true
                 )
             )
         );
index 140c3dd..78cb41d 100644 (file)
@@ -132,6 +132,7 @@ CREATE TABLE pages_language_overlay (
        t3ver_stage int(11) DEFAULT '0' NOT NULL,
        t3ver_count int(11) DEFAULT '0' NOT NULL,
        t3ver_tstamp int(11) DEFAULT '0' NOT NULL,
+       t3ver_move_id int(11) DEFAULT '0' NOT NULL,
        t3_origuid int(11) DEFAULT '0' NOT NULL,
        tstamp int(11) unsigned DEFAULT '0' NOT NULL,
        crdate int(11) unsigned DEFAULT '0' NOT NULL,
@@ -198,6 +199,7 @@ CREATE TABLE sys_template (
        t3ver_stage int(11) DEFAULT '0' NOT NULL,
        t3ver_count int(11) DEFAULT '0' NOT NULL,
        t3ver_tstamp int(11) DEFAULT '0' NOT NULL,
+       t3ver_move_id int(11) DEFAULT '0' NOT NULL,
        t3_origuid int(11) DEFAULT '0' NOT NULL,
        tstamp int(11) unsigned DEFAULT '0' NOT NULL,
        sorting int(11) unsigned DEFAULT '0' NOT NULL,
index 839f6d3..4298b12 100644 (file)
@@ -10,7 +10,7 @@ return array(
         'cruser_id' => 'cruser_id',
         'sortby' => 'sorting',
 
-        'versioningWS' => 2,
+        'versioningWS' => true,
         'versioning_followPages' => true,
 
         'origUid' => 't3_origuid',
index b3c96e2..bb86752 100644 (file)
@@ -100,7 +100,7 @@ Automatic Repair:
         $resultArray['versions_move_placeholders_ok'] = array();
         $resultArray['versions_move_placeholders_bad'] = array();
         foreach ($GLOBALS['TCA'] as $table => $cfg) {
-            if ((int)$cfg['ctrl']['versioningWS'] >= 2) {
+            if (BackendUtility::isTableWorkspaceEnabled($table)) {
                 $placeHolders = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows(
                     'uid,pid,t3ver_move_id,t3ver_wsid,t3ver_state',
                     $table,
@@ -139,7 +139,7 @@ Automatic Repair:
         // Finding move_id_check inconsistencies:
         $resultArray['versions_move_id_check'] = array();
         foreach ($GLOBALS['TCA'] as $table => $cfg) {
-            if ((int)$cfg['ctrl']['versioningWS'] >= 2) {
+            if (BackendUtility::isTableWorkspaceEnabled($table)) {
                 $placeHolders = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid,pid,t3ver_move_id,t3ver_wsid,t3ver_state', $table, 't3ver_move_id<>0' . BackendUtility::deleteClause($table));
                 foreach ($placeHolders as $phrec) {
                     if (VersionState::cast($phrec['t3ver_state'])->equals(VersionState::MOVE_PLACEHOLDER)) {
index f40b509..af6aff8 100644 (file)
@@ -286,7 +286,7 @@ class DataHandlerHook
         $WSversion = BackendUtility::getWorkspaceVersionOfRecord($tcemainObj->BE_USER->workspace, $table, $uid, 'uid,t3ver_oid');
         // Handle move-placeholders if the current record is not one already
         if (
-            BackendUtility::isTableMovePlaceholderAware($table)
+            BackendUtility::isTableWorkspaceEnabled($table)
             && !$moveRecVersionState->equals(VersionState::MOVE_PLACEHOLDER)
         ) {
             // Create version of record first, if it does not exist
@@ -304,7 +304,7 @@ class DataHandlerHook
         // Element was in "New/Deleted/Moved" so it can be moved...
         $recIsNewVersion = $moveRecVersionState->indicatesPlaceholder();
         $destRes = $tcemainObj->BE_USER->workspaceAllowLiveRecordsInPID($resolvedPid, $table);
-        $canMoveRecord = ($recIsNewVersion || BackendUtility::isTableMovePlaceholderAware($table));
+        $canMoveRecord = ($recIsNewVersion || BackendUtility::isTableWorkspaceEnabled($table));
         // Workspace source check:
         if (!$recIsNewVersion) {
             $errorCode = $tcemainObj->BE_USER->workspaceCannotEditRecord($table, $WSversion['uid'] ? $WSversion['uid'] : $uid);
@@ -319,6 +319,7 @@ class DataHandlerHook
         // Only new versions can be inserted if $destRes is FALSE.
         // NO RECORDS can be inserted if $destRes is negative which indicates a stage
         //  not allowed for use. If "versioningWS" is version 2, moving can take place of versions.
+        // since TYPO3 CMS 7, version2 is the default and the only option
         if (!($destRes > 0 || $canMoveRecord && !$destRes)) {
             $workspaceAccessBlocked['dest1'] = 'Could not insert record from table "' . $table . '" in destination PID "' . $resolvedPid . '" ';
         } elseif ($destRes == 1 && $WSversion['uid']) {
@@ -327,7 +328,8 @@ class DataHandlerHook
         if (empty($workspaceAccessBlocked)) {
             // If the move operation is done on a versioned record, which is
             // NOT new/deleted placeholder and versioningWS is in version 2, then...
-            if ($WSversion['uid'] && !$recIsNewVersion && BackendUtility::isTableMovePlaceholderAware($table)) {
+            // since TYPO3 CMS 7, version2 is the default and the only option
+            if ($WSversion['uid'] && !$recIsNewVersion && BackendUtility::isTableWorkspaceEnabled($table)) {
                 $this->moveRecord_wsPlaceholders($table, $uid, $destPid, $WSversion['uid'], $tcemainObj);
             } else {
                 // moving not needed, just behave like in live workspace
@@ -382,7 +384,7 @@ class DataHandlerHook
         $inlineFieldType = $dataHandler->getInlineFieldType($configuration);
         $inlineProcessing = (
             ($inlineFieldType === 'list' || $inlineFieldType === 'field')
-            && BackendUtility::isTableMovePlaceholderAware($configuration['foreign_table'])
+            && BackendUtility::isTableWorkspaceEnabled($configuration['foreign_table'])
             && (!isset($configuration['behaviour']['disableMovingChildrenWithParent']) || !$configuration['behaviour']['disableMovingChildrenWithParent'])
         );
 
@@ -882,7 +884,7 @@ class DataHandlerHook
             $swapVersion['t3ver_state'] = (string)new VersionState(VersionState::DEFAULT_STATE);
         }
         // Moving element.
-        if ((int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2) {
+        if (BackendUtility::isTableWorkspaceEnabled($table)) {
             //  && $t3ver_state['swapVersion']==4   // Maybe we don't need this?
             if ($plhRec = BackendUtility::getMovePlaceholder($table, $id, 't3ver_state,pid,uid' . ($GLOBALS['TCA'][$table]['ctrl']['sortby'] ? ',' . $GLOBALS['TCA'][$table]['ctrl']['sortby'] : ''))) {
                 $movePlhID = $plhRec['uid'];
@@ -1164,7 +1166,7 @@ class DataHandlerHook
             $tcemainObj->deleteEl($table, $id, true, true);
         }
         // Remove the move-placeholder if found for live record.
-        if ((int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] >= 2) {
+        if (BackendUtility::isTableWorkspaceEnabled($table)) {
             if ($plhRec = BackendUtility::getMovePlaceholder($table, $liveRec['uid'], 'uid')) {
                 $tcemainObj->deleteEl($table, $plhRec['uid'], true, true);
             }
index 951c996..549bd4a 100644 (file)
@@ -224,10 +224,8 @@ class WorkspaceService implements SingletonInterface
             }
             if ($GLOBALS['TCA'][$table]['ctrl']['versioningWS']) {
                 $recs = $this->selectAllVersionsFromPages($table, $pageList, $wsid, $filter, $stage, $language);
-                if ((int)$GLOBALS['TCA'][$table]['ctrl']['versioningWS'] === 2) {
-                    $moveRecs = $this->getMoveToPlaceHolderFromPages($table, $pageList, $wsid, $filter, $stage);
-                    $recs = array_merge($recs, $moveRecs);
-                }
+                $moveRecs = $this->getMoveToPlaceHolderFromPages($table, $pageList, $wsid, $filter, $stage);
+                $recs = array_merge($recs, $moveRecs);
                 $recs = $this->filterPermittedElements($recs, $table);
                 if (!empty($recs)) {
                     $output[$table] = $recs;
@@ -386,7 +384,7 @@ class WorkspaceService implements SingletonInterface
             $pageList = implode(',', $newList);
         }
         unset($searchObj);
-        if ((int)$GLOBALS['TCA']['pages']['ctrl']['versioningWS'] === 2 && $pageList) {
+        if (BackendUtility::isTableWorkspaceEnabled('pages') && $pageList) {
             // Remove the "subbranch" if a page was moved away
             $movedAwayPages = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('uid, pid, t3ver_move_id', 'pages', 't3ver_move_id IN (' . $pageList . ') AND t3ver_wsid=' . (int)$wsid . BackendUtility::deleteClause('pages'), '', 'uid', '', 't3ver_move_id');
             $pageIds = GeneralUtility::intExplode(',', $pageList, true);
@@ -747,13 +745,11 @@ class WorkspaceService implements SingletonInterface
             if ($tableName === 'pages' || empty($tableConfiguration['ctrl']['versioningWS'])) {
                 continue;
             }
-            $joinStatement = 'A.t3ver_oid=B.uid';
             // Consider records that are moved to a different page
-            if (BackendUtility::isTableMovePlaceholderAware($tableName)) {
-                $movePointer = new VersionState(VersionState::MOVE_POINTER);
-                $joinStatement = '(A.t3ver_oid=B.uid AND A.t3ver_state<>' . $movePointer
-                    . ' OR A.t3ver_oid=B.t3ver_move_id AND A.t3ver_state=' . $movePointer . ')';
-            }
+            $movePointer = new VersionState(VersionState::MOVE_POINTER);
+            $joinStatement = '(A.t3ver_oid=B.uid AND A.t3ver_state<>' . $movePointer
+                . ' OR A.t3ver_oid=B.t3ver_move_id AND A.t3ver_state=' . $movePointer . ')';
+
             // Select all records from this table in the database from the workspace
             // This joins the online version with the offline version as tables A and B
             $records = $this->getDatabaseConnection()->exec_SELECTgetRows(
index 23f1709..f18478a 100644 (file)
@@ -4,8 +4,10 @@ sys_file_reference
 ,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
 ,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
-,130,-1,64,0,0,0,1,0,0,127,0,21,330,tt_content,image,10,sys_file,Kasper,,,,
-,131,-1,128,0,0,0,1,0,0,126,0,1,330,tt_content,image,10,sys_file,T3BOARD,,,,
+,130,-1,64,0,0,0,1,4,0,127,0,21,330,tt_content,image,10,sys_file,Kasper,,,,
+,131,-1,128,0,0,0,1,4,0,126,0,1,330,tt_content,image,10,sys_file,T3BOARD,,,,
+,132,89,8,0,0,0,1,3,0,0,127,0,330,tt_content,image,0,sys_file,,,,,
+,133,89,4,0,0,0,1,3,0,0,126,0,330,tt_content,image,0,sys_file,,,,,
 tt_content
 ,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image
 ,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2
index 215fcf0..7d9c8a3 100644 (file)
@@ -4,8 +4,10 @@ sys_file_reference
 ,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
 ,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
-,130,-1,32,0,0,0,1,0,0,128,0,21,331,tt_content,image,10,sys_file,"Taken at T3BOARD",,,,
-,131,-1,16,0,0,0,1,0,0,129,0,1,331,tt_content,image,10,sys_file,"This is Kasper",,,,
+,130,-1,32,0,0,0,1,4,0,128,0,21,331,tt_content,image,10,sys_file,"Taken at T3BOARD",,,,
+,131,-1,16,0,0,0,1,4,0,129,0,1,331,tt_content,image,10,sys_file,"This is Kasper",,,,
+,132,90,256,0,0,0,1,3,0,0,128,0,331,tt_content,image,0,sys_file,,,,,
+,133,90,128,0,0,0,1,3,0,0,129,0,331,tt_content,image,0,sys_file,,,,,
 tt_content
 ,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image
 ,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2
index 71239b3..592f18e 100644 (file)
@@ -4,10 +4,14 @@ sys_file_reference
 ,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
 ,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
-,130,-1,32,0,0,0,1,0,0,128,0,21,331,tt_content,image,10,sys_file,"Taken at T3BOARD",,,,
-,131,-1,16,0,0,0,1,0,0,129,0,1,331,tt_content,image,10,sys_file,"This is Kasper",,,,
-,132,-1,64,0,0,0,1,0,0,127,0,21,330,tt_content,image,10,sys_file,Kasper,,,,
-,133,-1,128,0,0,0,1,0,0,126,0,1,330,tt_content,image,10,sys_file,T3BOARD,,,,
+,130,-1,32,0,0,0,1,4,0,128,0,21,331,tt_content,image,10,sys_file,"Taken at T3BOARD",,,,
+,131,-1,16,0,0,0,1,4,0,129,0,1,331,tt_content,image,10,sys_file,"This is Kasper",,,,
+,132,90,256,0,0,0,1,3,0,0,128,0,331,tt_content,image,0,sys_file,,,,,
+,133,90,128,0,0,0,1,3,0,0,129,0,331,tt_content,image,0,sys_file,,,,,
+,134,-1,64,0,0,0,1,4,0,127,0,21,330,tt_content,image,10,sys_file,Kasper,,,,
+,135,-1,128,0,0,0,1,4,0,126,0,1,330,tt_content,image,10,sys_file,T3BOARD,,,,
+,136,90,64,0,0,0,1,3,0,0,127,0,330,tt_content,image,0,sys_file,,,,,
+,137,90,32,0,0,0,1,3,0,0,126,0,330,tt_content,image,0,sys_file,,,,,
 tt_content
 ,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image
 ,330,89,256,0,0,0,0,0,0,0,0,"Regular Element #1",2
index f7f8bdd..255a1c4 100644 (file)
@@ -1,7 +1,7 @@
 sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
-,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
-,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,126,89,4,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,127,89,8,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
 ,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
index 4b3f51b..af4a025 100644 (file)
@@ -2,8 +2,8 @@ sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
 ,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
 ,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
-,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
+,128,90,256,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
+,129,90,128,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,32,0,0,0,0,0,0,128,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,131,-1,16,0,0,0,0,0,0,129,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 tt_content
index 6ba9b16..340cf54 100644 (file)
@@ -1,13 +1,13 @@
 sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
-,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
-,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
-,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
+,126,90,32,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,127,90,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,128,90,256,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
+,129,90,128,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,32,0,0,0,0,0,0,128,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,131,-1,16,0,0,0,0,0,0,129,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
-,132,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,133,-1,128,0,0,0,0,0,0,126,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,134,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,135,-1,128,0,0,0,0,0,0,126,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
 tt_content
 ,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image
 ,330,90,512,0,0,0,0,0,0,0,0,"Regular Element #1",2
index f7f8bdd..255a1c4 100644 (file)
@@ -1,7 +1,7 @@
 sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
-,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
-,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,126,89,4,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,127,89,8,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
 ,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
index 4b3f51b..af4a025 100644 (file)
@@ -2,8 +2,8 @@ sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
 ,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
 ,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
-,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
+,128,90,256,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
+,129,90,128,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,32,0,0,0,0,0,0,128,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,131,-1,16,0,0,0,0,0,0,129,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 tt_content
index 6ba9b16..340cf54 100644 (file)
@@ -1,13 +1,13 @@
 sys_file_reference
 ,uid,pid,sorting,deleted,sys_language_uid,l10n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,uid_local,uid_foreign,tablenames,fieldname,sorting_foreign,table_local,title,description,alternative,link,downloadname
-,126,89,128,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
-,127,89,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,128,89,32,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
-,129,89,16,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
+,126,90,32,0,0,0,0,0,0,0,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,127,90,64,0,0,0,0,0,0,0,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,128,90,256,0,0,0,0,0,0,0,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
+,129,90,128,0,0,0,0,0,0,0,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
 ,130,-1,32,0,0,0,0,0,0,128,0,21,331,tt_content,image,1,sys_file,"Taken at T3BOARD",,,,
 ,131,-1,16,0,0,0,0,0,0,129,0,1,331,tt_content,image,2,sys_file,"This is Kasper",,,,
-,132,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
-,133,-1,128,0,0,0,0,0,0,126,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
+,134,-1,64,0,0,0,0,0,0,127,0,21,330,tt_content,image,1,sys_file,Kasper,,,,
+,135,-1,128,0,0,0,0,0,0,126,0,1,330,tt_content,image,2,sys_file,T3BOARD,,,,
 tt_content
 ,uid,pid,sorting,deleted,sys_language_uid,l18n_parent,t3ver_wsid,t3ver_state,t3ver_stage,t3ver_oid,t3ver_move_id,header,image
 ,330,90,512,0,0,0,0,0,0,0,0,"Regular Element #1",2