【问题标题】:TYPO3 find tt_content from pagesTYPO3 从页面中查找 tt_content
【发布时间】:2021-05-16 09:44:09
【问题描述】:

我正在使用 TYPO3 10.4.14

我相信,我了解pagestt_content 的关系。但是我还没有弄清楚,如何从表pages中获取tt_content元素和顺序。

tt_content获取页面很容易,但从pagestt_content则不然。

我最终想要做的是标记一个页面(附加列),以在概览中显示页面的开头。

为此,我需要页面的内容元素!

编辑: 我想做数据库查询。

一种可能的方法是使用pagesuid 并转到tt_content 并在那里搜索pid。但这是一条漫长的道路。

TYPO3 在显示页面时表现如何?

【问题讨论】:

  • 您能指定如何从页面中获取所有内容元素吗?数据库查询?排版?
  • tt_content 有 uid 和 pid,pid 是页面 id? (在数据库中)

标签: typo3 typo3-10.x


【解决方案1】:

您有多种方式来呈现任何输出(典型的 HTML):

  1. 排版
  2. PHP
  3. 流体

(最终都是 PHP,但关于您正在编程或配置的内容)

如果您想呈现当前页面的一些常规内容,您将使用定义的打字稿styles.content.get(有修改),这是一个打字稿CONTENT object。这将执行查询以获取默认(或其他)列中属于当前页面的那些 tt_content 记录。这会产生类似SELECT * FROM tt_content WHERE pid = current_page_uid AND column = 0 的查询(以及一些关于可见性的附加条件(隐藏、开始时间、结束时间、工作区...)
这可以分配给 FLUID 变量或由 viewhelper (f:cObject) 请求。

如果您想从当前页面以外的其他页面获取内容,您需要执行类似的请求并使用另一个页面 uid。您可以构建自己的 CONTENT 对象并像使用默认内容一样使用它。或者您在 PHP 中构建自己的 viewhelper,您可以在 FLUID 中使用它。您可以通过减少您考虑的记录数来修改查询,您还可以修改有关哪些字段将显示在哪些 HTML 标记中的呈现。
根据您使用的包,它可能包含已经专门的 viewhelper,它可以让您获取其他页面和/或其他列的内容。


我认为您想为其他页面制作包含这些页面内容的预告片。
考虑在页面记录中使用一个特殊字段,其中包含页面内容的干净摘要。并非每个页面的第一段都有相关或可识别的信息。
这与搜索引擎相同:如果您向搜索引擎提供摘要,则该摘要将显示在搜索结果中,并且搜索者可以更好地确定此页面是否与他相关。

【讨论】:

  • Bernd 你是对的,我想构建预告片,我想为它编写自己的扩展。为此,我想向pages 添加一列。这应该是在预告片中使用它的标记。我还考虑为这些页面使用自己的扩展名,以便我可以标记相关部分。但我的主要问题仍然是,我如何从pages 获得tt_content!来自pagesuid,即tt_content 中的pid。有没有直接的方法或者我总是在整个tt_content 中搜索符合pagepids?
  • 如前所述:尝试使用 SEO 字段。这将提供更好的摘要(并且这些字段无论如何都应该是搜索引擎的字段)。那么你不需要自己做查询。如果您想访问tt_contentrecords,您需要进行查询(WHERE pid = pagenumber),但请放心:它会很快。唉,数据库中没有从pages 直接访问(引用)分配给该页面的任何记录(tt_content 或其他)。
猜你喜欢
  • 1970-01-01
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多