TYPO3 在 TMENU 中嵌套了 CONTENT Object 和 select,没有结果
TYPO3 nested CONTENT Object with select in TMENU, no result
我正在使用 TYPO3 6.2.15 中的嵌套 CATEGORIES 生成国家/地区内的城市列表。
所以我的分类是这样的:
LOCATIONS (ID 1)
GERMANY (ID 2)
Trier (ID 7)
Stuttgart (ID 8)
Bonn (ID 9)
FRANCE (ID 3)
Paris (ID 4)
Marseille (ID 5)
我随机将一些页面归类为这些类别。现在我正在为每个页面输出一个带有国家/地区的 TMENU,效果很好:
page.120 = HMENU
page.120 {
special = directory
special.value = 92
1 = TMENU
1.NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
5 = COA
5 {
10 = CONTENT
10 {
noTrimWrap = |<div>{field:uid}: |</div>|
noTrimWrap.insertData = 1
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle
wrap = <p>|</p>
}
}
}
}
}
}
接下来我要获取城市:因此我将整个 select 复制到第一个的 renderObj
中,只将 andWhere 设置为 {field:localUid}
,因此利用parent 我在第一个 select 中编辑的 ID。select。
page.120 = HMENU
page.120 {
special = directory
special.value = 92
1 = TMENU
1.NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
5 = COA
5 {
10 = CONTENT
10 {
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle
wrap = <p>|</p>
}
20 = CONTENT
20 {
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid2, sys_category.title as sysTitle2
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '{field:localUid}'
andWhere.insertData = 1
orderBy = localUid2
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle2
wrap = <p>|</p>
}
}
}
}
}
}
当我查看生成的查询并在 phpmyadmin 中对其进行测试时,它工作得非常好。但在我的网站上它没有提供任何结果。任何想法为什么?我尝试将 andWhere 和 uid_foreign 设置为固定值 - 这将输出一个结果,但仅在不共享此特定 uid 的菜单项上。因此,如果我的第二个查询具有固定 ID 96 (where=sys_category_record_mm.uid_foreign = 96
) 并且在德国境内具有城市 (andWhere = sys_category.parent = '2'
),则该查询将仅在所有其他 TMENU 项目(即第 95、97、98 页)中提供结果但不是在96 ...
我不知道为什么会这样。有任何想法吗?谢谢...
我仍然不知道为什么第二个 select 会失败,但我已经能够通过将第一个 andWhere
变成 cObject
来解决这个问题 returns 所有国家/地区类别 ID 作为 OR
语句。完成后,我通过替换切断了最后一个 OR
,因为 optionsplit
在 renderObj
上不可用(因为它总是只有一个结果被包装)。这提供了所有城市,我不再需要 cObject
中的第二个 SELECT
。
select.andWhere.cObject = CONTENT
select.andWhere.cObject {
wrap = (|)
stdWrap.replacement {
10 {
search = OR )
replace = )
}
}
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
5 = TEXT
5.field = localUid
5.noTrimWrap = |sys_category.parent ='|' OR |
}
}
我正在使用 TYPO3 6.2.15 中的嵌套 CATEGORIES 生成国家/地区内的城市列表。
所以我的分类是这样的:
LOCATIONS (ID 1)
GERMANY (ID 2)
Trier (ID 7)
Stuttgart (ID 8)
Bonn (ID 9)
FRANCE (ID 3)
Paris (ID 4)
Marseille (ID 5)
我随机将一些页面归类为这些类别。现在我正在为每个页面输出一个带有国家/地区的 TMENU,效果很好:
page.120 = HMENU
page.120 {
special = directory
special.value = 92
1 = TMENU
1.NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
5 = COA
5 {
10 = CONTENT
10 {
noTrimWrap = |<div>{field:uid}: |</div>|
noTrimWrap.insertData = 1
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle
wrap = <p>|</p>
}
}
}
}
}
}
接下来我要获取城市:因此我将整个 select 复制到第一个的 renderObj
中,只将 andWhere 设置为 {field:localUid}
,因此利用parent 我在第一个 select 中编辑的 ID。select。
page.120 = HMENU
page.120 {
special = directory
special.value = 92
1 = TMENU
1.NO {
doNotLinkIt = 1
stdWrap.cObject = COA
stdWrap.cObject {
5 = COA
5 {
10 = CONTENT
10 {
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle
wrap = <p>|</p>
}
20 = CONTENT
20 {
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid2, sys_category.title as sysTitle2
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '{field:localUid}'
andWhere.insertData = 1
orderBy = localUid2
}
renderObj = COA
renderObj {
10 = TEXT
10 {
field = sysTitle2
wrap = <p>|</p>
}
}
}
}
}
}
当我查看生成的查询并在 phpmyadmin 中对其进行测试时,它工作得非常好。但在我的网站上它没有提供任何结果。任何想法为什么?我尝试将 andWhere 和 uid_foreign 设置为固定值 - 这将输出一个结果,但仅在不共享此特定 uid 的菜单项上。因此,如果我的第二个查询具有固定 ID 96 (where=sys_category_record_mm.uid_foreign = 96
) 并且在德国境内具有城市 (andWhere = sys_category.parent = '2'
),则该查询将仅在所有其他 TMENU 项目(即第 95、97、98 页)中提供结果但不是在96 ...
我不知道为什么会这样。有任何想法吗?谢谢...
我仍然不知道为什么第二个 select 会失败,但我已经能够通过将第一个 andWhere
变成 cObject
来解决这个问题 returns 所有国家/地区类别 ID 作为 OR
语句。完成后,我通过替换切断了最后一个 OR
,因为 optionsplit
在 renderObj
上不可用(因为它总是只有一个结果被包装)。这提供了所有城市,我不再需要 cObject
中的第二个 SELECT
。
select.andWhere.cObject = CONTENT
select.andWhere.cObject {
wrap = (|)
stdWrap.replacement {
10 {
search = OR )
replace = )
}
}
table = pages
select {
pidInList = 92
selectFields = sys_category_record_mm.uid_local as localUid, sys_category.title as sysTitle
join = sys_category_record_mm ON pages.uid = sys_category_record_mm.uid_foreign JOIN sys_category ON sys_category.uid = sys_category_record_mm.uid_local
where = sys_category_record_mm.uid_foreign = {field:uid} AND sys_category.deleted = 0
where.insertData = 1
andWhere = sys_category.parent = '1'
orderBy = localUid
}
renderObj = COA
renderObj {
5 = TEXT
5.field = localUid
5.noTrimWrap = |sys_category.parent ='|' OR |
}
}