IchHabRecht / mask_export

Export your mask elements as extension
GNU General Public License v2.0
45 stars 27 forks source link

Setup.ts of my maskexport breaks the data available in frontend #144

Closed srosskopf closed 5 years ago

srosskopf commented 5 years ago

Hi there! πŸ‘‹ I found out while debugging all variables in my base template with <f:debug>{_all}</f:debug> that some serious amount of stuff is missing from my available data. I was able to track down the part that causes this and found the typoscript files that caused it. It was the setup.ts from my maskexport. The problem only started just now after updating my TYPO3 installation from 8.7.20 to 9.5.1.

grafik

This is my available data with the typoscript commented out and

grafik this with all the typoscript of my maskexport enabled.

I deleted the setup.ts file and made another mask export to make sure I am debugging from a clean state here. The typoscript that causes trouble is as follows:

tt_content.sitemaskexport_contentcard = FLUIDTEMPLATE
tt_content.sitemaskexport_contentcard {
  layoutRootPaths.0 = EXT:site_maskexport/Resources/Private/Layouts/
  layoutRootPaths.10 = {$plugin.tx_sitemaskexport.view.layoutRootPath}
  partialRootPaths.0 = EXT:site_maskexport/Resources/Private/Partials/
  partialRootPaths.10 = {$plugin.tx_sitemaskexport.view.partialRootPath}
  templateRootPaths.0 = EXT:site_maskexport/Resources/Private/Templates/Content/
  templateRootPaths.10 = {$plugin.tx_sitemaskexport.view.templateRootPath}
  templateName = Contentcard

#  dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
#  dataProcessing.10 {
#    if.isTrue.field = tx_sitemaskexport_cardelements
#    table = tx_sitemaskexport_cardelements
#    pidInList.field = pid
#    where = parentid=###uid### AND deleted=0 AND hidden=0
#    orderBy = sorting
#    markers.uid.field = uid
#    as = data_tx_sitemaskexport_cardelements
#  }

  dataProcessing.10 {
    dataProcessing.10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    dataProcessing.10 {
      if.isTrue.field = tx_sitemaskexport_cardimage
      references {
        fieldName = tx_sitemaskexport_cardimage
        table = tx_sitemaskexport_cardelements
      }

      as = data_tx_sitemaskexport_cardimage
    }

  }
}

I am not a huge Typoscript expert, but I think it's weird that there's dataProcessing.10 twice here, wouldn't the first one be overwritten here by the second? Also, in the second dataProcessing.10 section it seems like it's "doubled" and followed directly by another dataProcessing.10. Like I said, this is the setup.ts I got after exporting my content elements with mask-export in my site_maskexport extension. I am doing any overriding of templates or anything in my sitepackage so I don't hesitate rewriting the mask-export extension if that does matter? When I "uncomment" the few lines above it causes the data to get lost. I am really lost on this issue and any help will be greatly appreciated!

My configuration TYPO3: 9.5.1 Mask_export: 2.2.0 Mask: 4.0.0 OS: Mac OS 10.12.6 Composer based installation

IchHabRecht commented 5 years ago

Hi @srosskopf,

Thank you for the issue. To be able to help you and dig into the problem, would you mind to share your mask.json (or at least some other one) where I can reproduce the output and the issue you have mentioned. Thank you very much in advance.

srosskopf commented 5 years ago

Hello,

sorry for the delayed response time! Here is my mask.json, hope this helps reproduce the weird behaviour I get.

{
    "tt_content": {
        "elements": {
            "contentcard": {
                "label": "Content Card",
                "key": "contentcard",
                "shortLabel": "Content Card",
                "description": "A card element which displays an image, a small headline, subheader, short teaser text and a link. Either with or without background.",
                "icon": "fa-window-maximize",
                "color": "#000000",
                "columns": {
                    "0": "tx_mask_cardelements",
                    "6": "tx_mask_cardbackground"
                },
                "labels": {
                    "0": "Card Elements",
                    "6": "Gray background"
                }
            },
            "quote": {
                "label": "Quote",
                "key": "quote",
                "shortLabel": "Quote",
                "description": "A quote element with text on a background image",
                "icon": "fa-quote-right",
                "color": "#000000",
                "options": [
                    "rte"
                ],
                "labels": [
                    "Quote Text",
                    "Quote Image"
                ],
                "columns": [
                    "tx_mask_quotetext",
                    "image"
                ]
            }
        },
        "sql": {
            "tx_mask_cardelements": {
                "tt_content": {
                    "tx_mask_cardelements": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            },
            "tx_mask_cardbackground": {
                "tt_content": {
                    "tx_mask_cardbackground": "int(11) DEFAULT '0' NOT NULL"
                }
            },
            "tx_mask_quotetext": {
                "tt_content": {
                    "tx_mask_quotetext": "text"
                }
            }
        },
        "tca": {
            "tx_mask_cardelements": {
                "config": {
                    "type": "inline",
                    "foreign_table": "--inlinetable--",
                    "foreign_field": "parentid",
                    "foreign_table_field": "parenttable",
                    "foreign_sortby": "sorting",
                    "appearance": {
                        "enabledControls": {
                            "dragdrop": "1"
                        },
                        "collapseAll": "1",
                        "newRecordLinkTitle": "",
                        "levelLinksPosition": "top",
                        "useSortable": "1"
                    },
                    "minitems": "1",
                    "maxitems": "2"
                },
                "exclude": "1",
                "inlineLabel": "",
                "inlineIcon": "",
                "l10n_mode": "copy",
                "key": "cardelements"
            },
            "tx_mask_cardbackground": {
                "config": {
                    "type": "check",
                    "items": [
                        [
                            "Enable gray background "
                        ]
                    ],
                    "cols": "",
                    "default": ""
                },
                "exclude": "1",
                "key": "cardbackground"
            },
            "tx_mask_quotetext": {
                "config": {
                    "type": "text",
                    "eval": "required",
                    "richtextConfiguration": "default",
                    "enableRichtext": "1",
                    "cols": "",
                    "rows": "",
                    "default": "",
                    "placeholder": "",
                    "max": ""
                },
                "exclude": "1",
                "key": "quotetext"
            }
        }
    },
    "sys_file_reference": {
        "sql": {
            "tx_mask_cardimage": {
                "sys_file_reference": {
                    "tx_mask_cardimage": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            }
        }
    },
    "tx_mask_cardelements": {
        "sql": {
            "tx_mask_cardheader": {
                "tx_mask_cardelements": {
                    "tx_mask_cardheader": "tinytext"
                }
            },
            "tx_mask_cardsubheader": {
                "tx_mask_cardelements": {
                    "tx_mask_cardsubheader": "tinytext"
                }
            },
            "tx_mask_cardlink": {
                "tx_mask_cardelements": {
                    "tx_mask_cardlink": "tinytext"
                }
            },
            "tx_mask_carddescription": {
                "tx_mask_cardelements": {
                    "tx_mask_carddescription": "text"
                }
            },
            "tx_mask_cardimage": {
                "tx_mask_cardelements": {
                    "tx_mask_cardimage": "int(11) unsigned DEFAULT '0' NOT NULL"
                }
            }
        },
        "tca": {
            "tx_mask_cardheader": {
                "config": {
                    "type": "input",
                    "eval": "required",
                    "default": "",
                    "placeholder": "",
                    "size": "1",
                    "max": "",
                    "is_in": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_cardelements",
                "label": "Header",
                "key": "cardheader"
            },
            "tx_mask_cardsubheader": {
                "config": {
                    "type": "input",
                    "eval": "",
                    "default": "",
                    "placeholder": "",
                    "size": "1",
                    "max": "",
                    "is_in": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_cardelements",
                "label": "Subheader",
                "key": "cardsubheader"
            },
            "tx_mask_cardlink": {
                "config": {
                    "type": "input",
                    "renderType": "inputLink",
                    "softref": "typolink",
                    "fieldControl": {
                        "linkPopup": {
                            "options": {
                                "title": "Link",
                                "windowOpenParameters": "height=300,width=500,status=0,menubar=0,scrollbars=1",
                                "blindLinkOptions": ""
                            }
                        }
                    },
                    "wizards": {
                        "link": {
                            "icon": "actions-wizard-link",
                            "params": {
                                "allowedExtensions": ""
                            }
                        }
                    },
                    "eval": "",
                    "default": "",
                    "placeholder": "",
                    "size": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_cardelements",
                "label": "Link",
                "key": "cardlink"
            },
            "tx_mask_carddescription": {
                "config": {
                    "type": "text",
                    "eval": "required",
                    "cols": "",
                    "rows": "",
                    "default": "",
                    "placeholder": "",
                    "max": "",
                    "format": ""
                },
                "exclude": "1",
                "inlineParent": "tx_mask_cardelements",
                "label": "Description",
                "key": "carddescription"
            },
            "tx_mask_cardimage": {
                "exclude": "1",
                "options": "file",
                "config": {
                    "appearance": {
                        "collapseAll": "1",
                        "fileUploadAllowed": "1"
                    },
                    "minitems": "1",
                    "maxitems": "1",
                    "filter": [
                        {
                            "parameters": {
                                "allowedFileExtensions": ""
                            }
                        }
                    ]
                },
                "l10n_mode": "copy",
                "inlineParent": "tx_mask_cardelements",
                "label": "Image",
                "key": "cardimage"
            }
        }
    }
}
IchHabRecht commented 5 years ago

Hi @srosskopf,

After reading your issue again several times now, I'm still unsure how to test your mentioned issue. Would you mind to explain me, what you did and where you inserted the <f:debug>{_all}</f:debug> command? Are you in any export context or are you in a site context? Sorry for the late reaction, but I still don't understand what gets wrong in your case.

As explanation for the current TypoScript:

Both processors are needed for your use case to retrieve all necessary information in your Fluid template. The TypoScript output is quite ugly but related to recursion and data handling inside of the mask_export extension.

srosskopf commented 5 years ago

Heyho, the <f:debug>{_all}</f:debug> is placed in the base template on the most basic place.

I just read the following by coincidence in the TYPO3 Slack:

Hey Guys! I've recently noticed for the first time since i am using TYPO3 9, that i get in my fluid template in the {data} field now a content element (except the page is empty) instead of the page, is that how it should work now or is that a bug?

I think this is related to my issue here and then has probably nothing to do with the mask_export extension. A possible solution to the problem has been linked here.

I will try to get this fix in and then hopefully my problems will be gone πŸ˜… As I said this issue then has probably nothing to do with mask_export and can probably be closed. Also thank you very much for explaining the relevant TypoScript and your time in general! Love the mask_export extension πŸ‘

IchHabRecht commented 5 years ago

This issue will be closed because there hasn't been any activity for a few months. Feel free to open a new one if you still experience a problem.