tt_content.menu_abstract < lib.contentElement
tt_content.menu_abstract {
    templateName = MenuAbstract
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        10 {
            if {
                value = 0
                equals.field = layout
            }
            special = directory
            special.value.field = pages
            dataProcessing {
                10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
                10 {
                    as = compatibleWith
                    selectFields = sys_category.*
                    table = sys_category
                    pidInList = 2
                    where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.parent = 2
                    where.insertData = 1
                    leftjoin = sys_category_record_mm ON sys_category_record_mm.uid_local = sys_category.uid
                    orderBy = sorting
                }

                11 < .10
                11 {
                    as = topics
                    where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.parent = 1
                }

                100 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
                100 {
                    as = media
                    references.fieldName = media
                }
            }
        }

        100 < .10
        100 {
            if.value = 100
            special >
            special = categories
            special.value {
                data = GP:topic_id
                intval = 1
            }
        }

        500 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        500 {
            as = topic
            if {
                value = 100
                equals.field = layout
            }
            table = sys_category
            pidInList = 2
            where = uid = ###UID###
            markers {
                UID {
                    data = GP:topic_id
                    intval = 1
                }
            }
        }
    }

    stdWrap {
        editIcons := appendString(header, header_layout, pages, layout)
    }
}