typo3 - 在 TYPO3 8.7 中通过“插入记录”插入时显示 tt_address 记录
问题描述
我正在寻找一种方法来显示在 TYPO3 8.7 LTS 中使用“插入记录”内容元素插入的 tt_address 元素。我知道使用 css_styled_content 的方法,但我不知道如何使用 fluid_styled_content 来做到这一点。Slack 上的某个人向我指出了“记录”TS-Object,也许还有 DatabaseQueryProcessor。可悲的是,我找不到适合我用例的好的教程或文档。任何帮助将不胜感激。
解决方案
有两种方法
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/
}
}
上面的示例将使用流体模板cdx_site/Resources/Private/Templates/Plugins/TtAddress.html来呈现每个单独的 tt_address 记录。
不需要调整 Shortcut.html 模板,因为它只会显示渲染的记录。
推荐阅读
- javascript - 移除
在 JavaScript 中从内容的开始和结束标记 - python - Python 如何使用 subprocess.call 调用另一个 python 脚本并获得正确的返回值
- php - preg_replace 没有删除 CSV 数据中的不可见字符
- vue.js - 如何从使用 v-for 循环显示的项目的属性中呈现 HTML?
- java - 未找到 id viewpager (ScaleFragment) 的视图
- python - 生成要导入到 pandas df 的元组列表
- tensorflow - Keras 为什么二进制分类不如分类分类准确
- java - 无法识别的工件类型:轨道,不会将其添加为 IntelliJ 中的依赖项
- python - 如何从 base64 Python 发送 multipart/form 文件
- laravel - 我如何将 laravel 设置为 nuxtjs 的后端 api