一页上的 TYPO3 内容按页面树中的位置排序

TYPO3 content on one page order by position in pagetree

我在一个页面上显示子页面的所有内容:

lib.allPid = COA
lib.allPid {
    10 = HMENU
    10 {
        #entryLevel = 1
                special = directory
                special.value = 115
        1 = TMENU
        1 {
            expAll = 1
            NO.doNotShowLink = 1
            NO.allStdWrap.field = uid
            NO.allStdWrap.wrap = |,
        }
        2 < .1
    }
}

lib.allContent = CONTENT
lib.allContent {
    table = tt_content
    select {
        pidInList.cObject < lib.allPid
                where = colPos = 0
                orderBy = pid DESC
    }
}

此处内容按pid DESC排序。但我想根据子页面在页面树中的位置对内容进行排序。以便用户可以定义自己的顺序。

我试过了:

lib.allContent = CONTENT
lib.allContent {
  table = tt_content
  select {
    pidInList.cObject < lib.allPid
    leftjoin = pages ON (tt_content.pid = pages.pid)
                where = tt_content.colPos = 0                    
                orderBy = pages.sorting ASC
  }
}

没用...

有人知道怎么做吗?提前致谢!

你做的很好,但是你的加入有误。

在你的代码中是tt_content.pid = pages.pid,这个是错误的。 tt_content 中的 pid 值是 pages 中的 uid

您需要将脚本更改为:

lib.allContent = CONTENT
lib.allContent {
  table = tt_content
  select {
    pidInList.cObject < lib.allPid
    leftjoin = pages ON (tt_content.pid = pages.uid)
                where = tt_content.colPos = 0                    
                orderBy = pages.sorting ASC
  }
}

我测试了它,它在一个测试实例上运行。