任务1. 在TypoScript中,我需要根据给定的页面ID{$my_page_uid}
获取页面标题。
任务2. 这个页面标题应该根据当前语言进行获取。
我需要将这个标题以temp.pTitle的形式呈现,以便我可以使用page.10 < temp.pTitle
来实现页面效果。
任务1. 在TypoScript中,我需要根据给定的页面ID{$my_page_uid}
获取页面标题。
任务2. 这个页面标题应该根据当前语言进行获取。
我需要将这个标题以temp.pTitle的形式呈现,以便我可以使用page.10 < temp.pTitle
来实现页面效果。
一开始我以为这很简单,哈哈!但实际上它并不是。这里有一个聪明的解决方案,是我在德语论坛中发现的:
temp.pTitle = HMENU
temp.pTitle {
special = list
special.value = {$my_page_uid}
1 = TMENU
1 {
NO {
doNotLinkIt = 1
}
}
}
不知道这是否解决语言部分,但应该可以。
data = DB : pages : {$my_page_uid} : title
。 - Matengtemp.pTitle = TEXT
temp.pTitle.data = DB:pages:{$my_page_uid}:title
lib.pagetitle = RECORDS
lib.pagetitle {
source.data = page:uid
tables = pages
conf.pages = TEXT
conf.pages.field = nav_title
}
lib.pagetitle = TEXT
lib.pagetitle.field=title
这里有一个更简单的解决方案...
10 = TYPOLINK
10.parameter = [your_page_id]
当您省略 .value 或 .field 时,它会自动将页面标题作为值。这甚至适用于多种语言。
重要提示:此答案仅适用于2011年,TypoScript自那以后显然已经发生了变化...
<f:cObject typoscriptObjectPath="lib.pageInfo" data="{pageUid: '48', pageField: 'subtitle'}" />
lib.pageInfo = COA
lib.pageInfo {
5 = LOAD_REGISTER
5 {
## Set the content's field (default: title):
pageField.cObject = TEXT
pageField.cObject {
field = pageField
ifEmpty.data = title
}
## Allows to override the current page ID:
pageUid.cObject = TEXT
pageUid.cObject {
field = pageUid
ifEmpty.data = TSFE:id
}
}
20 = RECORDS
20 {
source.data = register:pageUid
tables = pages
dontCheckPid = 1
conf.pages = TEXT
conf.pages.field.data = register:pageField
}
90 = RESTORE_REGISTER }
希望这能对你有所帮助
在你的流体模板中
<f:cObject typoscriptObjectPath="lib.pagetitle" data='your page id'/>
在 Typoscript 中
lib.pagetitle = HMENU
lib.pagetitle {
special = list
special.value.current = 1
1 = TMENU
1 {
NO {
doNotLinkIt = 1
}
}
}
如果这个方法不起作用,请告诉我,我还有其他的方法!