我必须使用typoscript替换我的typo3页面上的标记来构建指向另一个页面的链接(即同一页面的另一种类型)。
对于此链接,我必须设置与当前页面相同的查询参数,以及当前页面的页面ID,例如<a href="index.php?id=11¶m1=abc¶m2=def&type=123">
到目前为止,我将收到的QUERY_STRING传递给以下网站。当当前页面的路径没有id
参数时会出现问题,例如由RealURL设定。
所以我需要的是这样的映射:
mysite.com/about_us
==> mysite.com/index.php?id=11&type=123&L=1
mysite.com/index.php?id=33¶m1=abc¶m2=def&L=1
==> mysite.com/index.php?id=33¶m1=abc¶m2=def&L=1
这是我试过的:
page.10.marks.printlink = HTML
page.10.marks.printlink.value = dummy
# For plugin pages with querystring
page.10.marks.printlink.value.data= getIndpEnv:QUERY_STRING
# For other Typo3 pages
page.10.marks.printlink.value.ifEmpty.data = page:uid
page.10.marks.printlink.value.ifEmpty.dataWrap = id=|
page.10.marks.printlink.value.wrap = <a target="_blank" href="index.php?|&type=123">print</a>
这适用于大多数情况,但是如果RealURL PREVar就位则不适用,在这种情况下会映射以下内容:
mysite.com/de/über_uns
==> mysite.com/de/index.php?L=2&type=123
所以,没有id传递! (可能是因为RealURL取代了/de/
的{{1}},但没有设置L=2
)
我的问题是:有没有办法简单地连接id
和page:uid
?或者我是否还需要做更多的typoscript魔术?
感谢任何提示!
答案 0 :(得分:5)
未经测试,但如果您需要链接,请使用typolink:)
page.10.marks.printlink = HTML
page.10.marks.printlink {
value = linktext
value.typolink.data = TSFE:id
value.typolink.addQueryString = 1
value.typolink.addQueryString.method = get
value.typolink.additionalParams = &type=123
}
# Check for duplicate parameters and remove them
page.config.uniqueLinkVars = 1
答案 1 :(得分:0)
好吧,我终于弄清楚了!关键在于insertData
。这就是我现在所做的:
page.10.marks.printlink = TEXT
page.10.marks.printlink.value = id={page:uid}&{getIndpEnv:QUERY_STRING}
page.10.marks.printlink.insertData = 1
page.10.marks.printlink.wrap = <a target="_blank" href="index.php?|&type=123">print</a>
[globalVar = GP:L = 1]
page.10.marks.printlink.wrap = <a target="_blank" href="index.php?|&type=123&L=1">drucken</a>
[global]
这会立即发布id
参数两次,但会使用相同的值,并且可能会有其他&
,但它会有效。