[TYPO3-core] RFC: fix IRRE in workspaces

Michael Stucki michael at typo3.org
Tue May 1 16:48:32 CEST 2007

Hi Dmitry,

first of all, thanks for taking care of these problems. As we discussed in
Dietikon there are many people waiting for Workspaces, but as it seems it is
not used often yet, probably because it's still so hard to manage. Therefore
I really appreciate the comments and consolidations of functions you are
adding all over the place...

However, I have a wish though: If possible I would like to see those huge
changes split up into smaller parts in future. It's just so hard to
understand what is being changed if there is so much at once...

Alright, here are some comments. I just looked at the code but made no
changes. I assume you have some people that have been testing this...

> Branch: trunk (only trunk because because some parts rely on existing
> trunk changes)
> Problem: IRRE does not work in non-Live workspace (does not show records
> at all or show wrong records, saving causes errors, publishing creates
> wrong relations)
> Solution: hard to explain due to large amount of changes. Changes come
> from Oliver (he did it in typo3xdev/typo3-playground) and me. I mostly
> used Oliver's code but changed it a bit and added/updated other core
> functions to work with irre. It includes also other small workspace
> fixes made during t3dd07 in Dietikon.

1. I see you have used a query that selects "t2" as an alias for the "pages"
table. However, this query will be ignored then:

+       t3lib_BEfunc::deleteClause('t2') .

Because deleteClause requires the table name to be defined in $TCA.

2. In t3lib/class.t3lib_loaddbgroup.php, there is a mistake:

@@ -517,7 +517,9 @@
                        // if there are table items and we have a proper $parentUid
                if (t3lib_div::testInt($parentUid) && count($this->tableArray)) {
                                // if updateToUid is not a positive integer, set it to '0', so it will be ignored
-                       if (!(t3lib_div::testInt($updateToUid) && $updateToUid > 0)) $updateToUid = 0;
+                       if (!t3lib_div::testInt($updateToUid) && $updateToUid > 0) {
+                               $updateToUid = 0;
+                       }
                        $fields = 'uid,'.$foreign_field.($symmetric_field ? ','.$symmetric_field : '');

                                // update all items

=> $updateToUid is never >0 when it is not an integer value!

It's probably hard to track corrections of such a huge patch. If possible I
would like to ask if you can append additional changes in _postX.diff patches
which are all based on this one... Another idea might be to commit the
changes so far now and fix the obvious problems which I mentioned above right
after it...

Regards, michael
Use a newsreader! Check out

More information about the TYPO3-team-core mailing list