【问题标题】:Overview page of elements from a Typo3 page treeTypo3 页面树中​​元素的概览页面
【发布时间】:2014-07-01 13:45:11
【问题描述】:

我主要是一名 UI 和图形设计师,尽管我对 Typo3 有一些经验,但我完全陷入了以下问题:

我有一个大页面树,其中包含目录中的项目的单页(每页一个项目),这些项目的布局是使用 Armin Vieweg 的漂亮 "Dynamic Content Elements" extension (DCE) 构建的。

现在我想创建一个概览页面,在其中自动引用其中的一些项目 - 理想情况下,我想在每个要显示的元素中选中一个框(我会添加一个字段 catalogueItemPreview 到作者可以选中或取消选中的项目 DCE。

不幸的是,我对数据库的结构以及如何构建查询一无所知(我什至在哪里可以做到这一点?在定制插件中?)。

这就是我想象的工作方式:在概览页面上,我在内容元素中使用了一个插件/扩展,它执行以下操作:

  1. 在 Typo3 DB 中搜索具有名为“catalogueItemPreview”的字段的内容元素

  2. 返回字段“catalogueItemTitle”、“catalogueItemShortDescription”、“cataloguePreviewImage

  3. 使用模板在概览页面上呈现所有这些元素的预览

我很高兴任何指向解决方案的指针,因为目前我完全不知道从哪里开始......

Schematic screenshot from the Typo3 backend

【问题讨论】:

  • 您可以使用HMENU 获取树中的所有页面。对于每个项目 (NO),您创建一个新的 cObject CONTENT 来呈现项目。使用扩展名xpath,您可以使用新提供的XPATH cObject 仅渲染那些设置了复选标记的内容。换句话说:渲染所有,但跳过不需要的。
  • AFAIK dce 使用 XML 来存储数据。

标签: database content-management-system typo3 typoscript typo3-extensions


【解决方案1】:

感谢您使用我的 DCE 扩展 :)

您定义的字段及其在内容元素中的值都存储为 XML,因为当前版本的 DCE 是基于 Flexforms。

这使得使用 WHERE 子句中的字段属性之一执行 MySQL 查询变得非常困难。您可以在 pi_flexform 字段中检查 xml 字符串,但不建议这样做。

相反,我会使用内容元素的另一个属性 (tt_content) 将项目标记为“在首页上显示”。例如,您可以为此创建一个新的 layoutsection_frame 值。然后使用 TypoScript 很容易地输出你想要的元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多