Zum Inhalt springen

Extensioninhalte über list füttern - unabhängig von tt_content?

Erstellt am 11. September 2020 · 2 Antworten · letzte Antwort am 16. September 2020

Tags: Extbase, Inhaltselemente, TYPO3 8, Frage

sanktusm ·

Hallo,
ich habe mit dem Extension Builder ein Plugin geschrieben, das eigentlich sehr gut funktioniert. Ich kann vom Frontend Daten eingeben, die dann auch angezeigt werden.

Nun möchte ich, dass Daten, die im Backend über die Listenansicht eingegeben werden auch angezeigt werden. Derzeit wird beim Eintrag über das Frontend eine tt_content Zeile angelegt, bei Eintrag über die Listenansicht im Backend aber nicht, was folglich dazu führt, dass die Daten nicht angezeigt werden.

Wie kann ich Daten unabhängig von tt_content ausgeben lassen?

Bestimmt benötigt Ihr weitere Informationen, um meine Fragen zu beantworten. Bitte sagt mir welche.
Anbei sende ich schon mal die TCA

<?php
return [
    'ctrl' => [
        'title' => 'LLL:EXT:co_smartsearch/Resources/Private/Language/locallang_db.xlf:tx_cosmartsearch_domain_model_cosmartsearch',
        'label' => 'table_names',
        'tstamp' => 'tstamp',
        'crdate' => 'crdate',
        'cruser_id' => 'cruser_id',
        'versioningWS' => true,
        'languageField' => 'sys_language_uid',
        'transOrigPointerField' => 'l10n_parent',
        'transOrigDiffSourceField' => 'l10n_diffsource',
        'delete' => 'deleted',
        'enablecolumns' => [
            'disabled' => 'hidden',
            'starttime' => 'starttime',
            'endtime' => 'endtime',
        ],
        'searchFields' => 'table_names,table_columns,table_joins',
        'iconfile' => 'EXT:co_smartsearch/Resources/Public/Icons/tx_cosmartsearch_domain_model_cosmartsearch.gif'
    ],
    'interface' => [
        'showRecordFieldList' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, table_names, table_columns, table_joins',
    ],
    'types' => [
        '1' => ['showitem' => 'sys_language_uid, l10n_parent, l10n_diffsource, hidden, table_names, table_columns, table_joins, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access, starttime, endtime'],
    ],
    'columns' => [
        'sys_language_uid' => [
            'exclude' => true,
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.language',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'special' => 'languages',
                'items' => [
                    [
                        'LLL:EXT:lang/locallang_general.xlf:LGL.allLanguages',
                        -1,
                        'flags-multiple'
                    ]
                ],
                'default' => 0,
            ],
        ],
        'l10n_parent' => [
            'displayCond' => 'FIELD:sys_language_uid:>:0',
            'exclude' => true,
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.l18n_parent',
            'config' => [
                'type' => 'select',
                'renderType' => 'selectSingle',
                'default' => 0,
                'items' => [
                    ['', 0],
                ],
                'foreign_table' => 'tx_cosmartsearch_domain_model_cosmartsearch',
                'foreign_table_where' => 'AND tx_cosmartsearch_domain_model_cosmartsearch.pid=###CURRENT_PID### AND tx_cosmartsearch_domain_model_cosmartsearch.sys_language_uid IN (-1,0)',
            ],
        ],
        'l10n_diffsource' => [
            'config' => [
                'type' => 'passthrough',
            ],
        ],
        't3ver_label' => [
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.versionLabel',
            'config' => [
                'type' => 'input',
                'size' => 30,
                'max' => 255,
            ],
        ],
        'hidden' => [
            'exclude' => true,
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.hidden',
            'config' => [
                'type' => 'check',
                'items' => [
                    '1' => [
                        '0' => 'LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.enabled'
                    ]
                ],
            ],
        ],
        'starttime' => [
            'exclude' => true,
            'behaviour' => [
                'allowLanguageSynchronization' => true
            ],
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.starttime',
            'config' => [
                'type' => 'input',
                'renderType' => 'inputDateTime',
                'size' => 13,
                'eval' => 'datetime',
                'default' => 0,
            ],
        ],
        'endtime' => [
            'exclude' => true,
            'behaviour' => [
                'allowLanguageSynchronization' => true
            ],
            'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.endtime',
            'config' => [
                'type' => 'input',
                'renderType' => 'inputDateTime',
                'size' => 13,
                'eval' => 'datetime',
                'default' => 0,
                'range' => [
                    'upper' => mktime(0, 0, 0, 1, 1, 2038)
                ],
            ],
        ],

        'table_names' => [
            'exclude' => false,
            'label' => 'LLL:EXT:co_smartsearch/Resources/Private/Language/locallang_db.xlf:tx_cosmartsearch_domain_model_cosmartsearch.table_names',
            'config' => [
                'type' => 'text',
                'cols' => 40,
                'rows' => 15,
                'eval' => 'trim,required'
            ]
        ],
        'table_columns' => [
            'exclude' => false,
            'label' => 'LLL:EXT:co_smartsearch/Resources/Private/Language/locallang_db.xlf:tx_cosmartsearch_domain_model_cosmartsearch.table_columns',
            'config' => [
                'type' => 'text',
                'cols' => 40,
                'rows' => 15,
                'eval' => 'trim,required'
            ]
        ],
        'table_joins' => [
            'exclude' => false,
            'label' => 'LLL:EXT:co_smartsearch/Resources/Private/Language/locallang_db.xlf:tx_cosmartsearch_domain_model_cosmartsearch.table_joins',
            'config' => [
                'type' => 'text',
                'cols' => 40,
                'rows' => 15,
                'eval' => 'trim,required'
            ]
        ],
    
    ],
];
Julian.​Hofmann ·

Ich verstehe noch nicht ganz, was Dein Plugin tut. Wenn aus dem FE heraus eine Zeile in die Tabelle 'tt_content' geschrieben wird, was tut dann die Tabelle 'tx_cosmartsearch_domain_model_cosmartsearch', deren TCA Du mit gepostet hast?

Und was legst Du im List-Modul an? Einen tt_content-Datensatz oder einen tx_cosmartsearch_domain_model_cosmartsearch-Datensatz? Was meldet Dir TYPO3, wenn es den Datensatz nicht speichert? Normalerweise solltest Du da eine Fehlermeldung bekommen, die Dir weiterhilft.

Viele Grüße
Julian

sanktusm ·

Über das List-Modul lege ich einen tx_cosmartsearch_domain_model_cosmartsearch-Datensatz an. Das Plugin soll eine Suche aus bestimmten Tabellen von tx_mask realisieren. Im tx_cosmartsearch_domain_model_cosmartsearch-Datensatz möchte ich die Auswahl der externen Tabellen oder der tt_content internen Tabelle speichern sowie optional ein Abhängigkeit
Wenn ich das über das Frontend mach wird ein Datensatz in tt_content gespeichert. Über das List Modul nicht. Ich möchte also im Controller nur die in der externen Tabelles tx_cosmartsearch_domain_model_cosmartsearch auslesen.