Отобразить записи tt_address при вставке через «вставить запись» в TYPO3 8.7 - PullRequest
0 голосов
/ 24 октября 2018

Я ищу способ отображения элементов tt_address, которые были вставлены с элементом содержимого «вставить запись» в TYPO3 8.7 LTS.Я знаю способ с css_styled_content, но я не могу понять, как сделать это с Fluid_styled_content.Кто-то в Slack указал мне на TS-объект «RECORDS» и, возможно, на DatabaseQueryProcessor.К сожалению, я не могу найти хорошие учебники или документацию для моего варианта использования.Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 24 октября 2018

Существует два подхода

Элемент пользовательского содержимого для tt_address

Это правильный путь.

Вы можете проверить, как сам TYPO3 делает это вэлемент содержимого «ярлык», то есть «Вставить записи» с точки зрения редактора.

Подсказки полностью действительны.Используйте FLUIDTEMPLATE, чтобы определить шаблон для отображения и добавить DatabaseQueryProcessor, как описано здесь: https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Fluidtemplate/Index.html#dataprocessing

Процессор можно найти в исходном коде: https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_8-7/typo3/sysext/frontend/Classes/DataProcessing/DatabaseQueryProcessor.php#L22 с примером конфигурации внутри PHPDoc, которыйуже использует tt_address.

Вот полный пример TypoScript для элемента содержимого:

tt_content.custom_content =< lib.contentElement
tt_content.custom_content {
    templateName = TtAddressRecords
    dataProcessing {
        10 = TYPO3\CMS\Frontend\DataProcessing\DatabaseQueryProcessor
        10 {
            table = tt_address
            pidInList = 123
            as = addresses
        }
    }
}

Использование существующего элемента содержимого ярлыка

Если вы используетеуже встроенный элемент содержимого ярлыка, это должно работать из коробки, с некоторыми конфигурациями.Это разрешит выбранные записи.

Прежде всего вы должны разрешить рендеринг записей tt_address через этот элемент.Поэтому добавьте следующее в константы TypoScript:

styles {
    content {
        shortcut {
            tables := addToList(tt_address)
        }
    }
}

Это добавит tt_address к существующей таблице tt_content.

Далее вам понадобится определение рендеринга для записей tt_address.Это делается в настройке TypoScript.Например, добавьте следующий TypoScript в настройку и отрегулируйте пути в соответствии с вашими потребностями:

tt_address < lib.contentElement
tt_address {
    templateName = TtAddress
    templateRootPaths {
        10 = EXT:cdx_site/Resources/Private/Templates/Plugins/
    }
}

В приведенном выше примере будут использоваться шаблоны Fluid cdx_site / Resources / Private / Templates / Plugins / TtAddress.html для рендеринга каждой отдельной записи tt_address.

Не нужно настраивать шаблон Shortcut.html, поскольку он будет просто отображать отображаемые записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...