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

时间:2016-05-19 15:14:23

标签: select typo3 typoscript

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

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订购的。但是我想按照他们在pagetree中的位置从子页面中订购内容。这样用户就可以定义自己的订购。

我试过了:

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
  }
}

没有工作......

有谁知道怎么做?提前谢谢!

1 个答案:

答案 0 :(得分:2)

你的方式很好,但你加入错了。

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

您需要更改脚本:

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
  }
}

我测试了它,它在测试实例上工作。