Gernott / mask

TYPO3 Extension Mask
https://www.facebook.com/typo3mask
GNU General Public License v2.0
130 stars 86 forks source link

Double relations when using records in repeating elements #603

Closed wtdesign closed 12 months ago

wtdesign commented 1 year ago

I created a new element in the new TYPO3 v12 using MASK, which allows for the inclusion of other elements through "repeating." The problem now is that the created element is displayed not only within the designated element but also additionally in colPos=1. Thus, it is being rendered twice. How do I prevent this so that the element is only displayed within the element I intended?

nhovratov commented 1 year ago

Mask uses a hook to hide nested Content Elements with the colPos=999. I suppose your element, for some reason, has got the colPos=1 instead of 999. This might happen when you disable the colPos field in the form engine.

wtdesign commented 1 year ago

i don't even now how to disable the field. Do you mean like this?

TCEFORM.tt_content.colPos {
  removeItems = 999
}

I haven't done something like that. I have simply created a backend layout with two columns (colPos=1, and colPos=3). Does this automatically deactivate colPos=999? I added a new column with colPos=999, but I don't want the customer to see this column. Of course, due to the backend layout, the column is now always visible, although I don't want that.

nhovratov commented 1 year ago

Yes, I meant that. Then I have no idea, how this happened. I need more information.

I added a new column with colPos=999

You don't need a real column with colPos 999 for Mask. Mask will hide those elements. Maybe the Mask hook isn't working in your installation for some reason?

It is this hook:

// Hook to override colpos check for unused tt_content elements
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['record_is_used'][] = \MASK\Mask\Hooks\PageLayoutViewHook::class . '->contentIsUsed';
nhovratov commented 12 months ago

Closing as there was no feedback for 3 weeks.