Select 通过 Typoscript 查询来自 Typo3 数据库的 url

Select urls from Typo3 Database via Typoscript query

首先是我的目标:我想创建一个包含指向内部页面的链接的列表。此列表必须按创建日期排序(数据库中的 crdate)

为了实现这个,我写了下面的代码:

99 = CONTENT
99.table = pages
99.select {
    pidInList = root,-1
    selectFields = url
    orderBy = crdate
}

可悲的是,这returns没什么。 为了进行调试,我使用了不同的属性。 有

99 = CONTENT
99.table = tt_content
99.select {
    pidInList = 1
    orderBy = crdate
}

我克隆了我的根页面。我从中得到了所有记录。 所以我知道所有页面记录都应该存储在页面 table 和 url.

我做错了什么?

其他信息:Typo3 8.7,不,默认后端元素对我不起作用,是的,我必须在打字稿中这样做

提前感谢您的任何建议。

pages 记录中的字段 url 通常不包含该页面的 url。
它仅用于 external URL 类型的页面,因此此页面的内部 link 可以转发到 url.

如果您想要一个包含所有页面的 link 列表,您需要为这些页面创建 link:

99 = CONTENT
99 {
   table = pages
   select {
      // your selection here
   }

   renderObj = TEXT
   renderObj {
      typolink {
         parameter.field = uid
      }
   }
}

这将为您提供一个完整的 link 列表(如果用 <li>|</li> 包裹 renderObj),页面标题为 link 文本。

如果您只想要 urls,您可以添加:

typolink {
   returnLast = url
}

不换行就是一个没有分隔的长字符串。


编辑:

99 = CONTENT
99 {
   table = pages
   select {
      pidInList = 69
      orderBy = crdate desc
   }
   wrap = <ul>|</ul>

   renderObj = TEXT
   renderObj {
      wrap = <li>|</li>
      typolink {
         parameter.field = uid
      }
      if.isFalse.cObject = CONTENT
      if.isFalse.cObject {
         table = pages
         select {
            // this 'uid' is from context of current pages record we have selected above
            pidInList.field = uid
            // this 'uid' is the field from the records we are selecting here
            selectFields = uid
         }

         renderObj = TEXT
         // this 'uid' is the selected field above 
         // a field in the pages record of the subquery to decide if there are child pages
         renderObj.field = uid
         # renderObj.wrap = |,
      }
   }
}