Typo3 打字3,打字稿。上次发布的工作区的输出时间戳

Typo3 打字3,打字稿。上次发布的工作区的输出时间戳,typo3,typoscript,Typo3,Typoscript,我用工作区设置了Typo36.2。所有内容都在临时工作区中更改并一起发布。 现在,我希望在每一页上都有一个类似“last changes:”的标签 我不想要更改页面的日期,而是上次发布工作区编辑的日期 我得到了类似于: 30 = CONTENT 30 { table = sys_log select { selectFields = tstamp where = (workspace = 1 AND tablename = 'tt_content'

我用工作区设置了Typo36.2。所有内容都在临时工作区中更改并一起发布。 现在,我希望在每一页上都有一个类似“last changes:”的标签

我不想要更改页面的日期,而是上次发布工作区编辑的日期

我得到了类似于:

30 = CONTENT
30 {
    table = sys_log
    select {
        selectFields = tstamp
        where = (workspace = 1 AND tablename = 'tt_content' AND details_nr = 30 AND details = 'Published')
        orderBy = tstamp DESC
        max = 1
    }
    renderObj {
        10 = TEXT
        10.stdWrap.field = tstamp
        10.stdWrap.wrap = (|)
    }
    wrap = <span class="tstamp">|</span>
}
30=内容
30 {
表=系统日志
挑选{
selectFields=tstamp
其中=(workspace=1,tablename='tt\u content'和details\u nr=30,details='Published')
orderBy=tstamp DESC
最大值=1
}
伦德罗布{
10=文本
10.stdWrap.field=tstamp
10.stdWrap.wrap=(|)
}
包裹=|
}
我几乎被困在这里了。前端中没有呈现的内容。我得到了跨度,但是括号和它们的内容丢失了

我试图找到一些例子,因为文档编写得不太好


提前感谢。

您要查找的值作为unix时间戳存储在字段
t3ver\u tstamp
中的每个工作区感知表中。此字段仅在数据发布或“交换”时更新,这是一个特殊的发布过程

不幸的是,从sys_log表中进行选择的方法不起作用,因为相关的负载在字段log_数据中是PHP序列化的,例如
a:2:{i:0;s:4:“Test”;i:1;s:7:“pages:1”}
(在本例中,使用uid
1
指向表
pages

据我所知,您希望检索特定页面上任何记录已从草稿工作区发布到实时工作区的最后一个时间点,这意味着为指向该特定页面的任何表选择任何记录上的最大unix时间戳。不幸的是,这不适用于纯打字脚本,因此您必须实现一个用PHP实现的服务

如果要显示ID为
123
的页面的最后发布日期,则需要执行以下任务:

  • 从uid=123的页面中选择t3ver\u tstamp…
  • foreach(数组_键($GLOBALS['TCA'])作为$tableName)
    • 从$tableName中选择MAX(t3ver\u tstamp),其中pid=123,t3ver\u wsid=0…
  • 根据上述公式确定PHP中的最大时间戳

不确定您的select语句是否有效,但我认为在
renderObj
中应该是
10.value.field
10.value.wrap
。我需要该功能的项目是很久以前的事了,我不记得是否以及如何完成了。但我会认为这个答案是正确的,因为它是解决问题的一种方法由于TYPO3 6.2 LTS到目前为止已经过时,当前的LTS.Hm中可能还有其他可能性,那么
stamp
t3ver\u tstamp
之间的区别是什么?
t3ver\u tstamp
只有在版本记录发布或丢弃时才会更新(请参阅)
tstamp
每次记录被修改时都会被修改。。。