2012-03-21 51 views
2

我必須使用typoscript替換typo3頁面上的標記來構建到另一個頁面(即同一頁面的另一種類型)的鏈接。typoscript:從頁面ID和GET參數生成URL

對於這個環節,我必須設置相同的查詢參數當前頁面,再加上網頁的當前頁的ID,例如<a href="index.php?id=11&param1=abc&param2=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&param1=abc&param2=def&L=1 
    ==> mysite.com/index.php?id=33&param1=abc&param2=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/ prevar通過L=2,但不設置id

我的問題是:有沒有辦法簡單地串聯了page:uidQUERY_STRING?還是我必須做更多的輸入法魔術?

感謝您的任何提示!

+0

你知道可以在URL設置或解決方案是否必須如此普遍,它適用於任何的所有GET參數在URL中設置的變量?無論是否使用RealURL,當前頁面的ID始終是已知的。 – tmt 2012-03-21 13:54:29

+0

通常有2-4個參數,我知道他們的所有名字。但是我想出了一種通用的方式來附加所有的參數和id。看到我的回答如下 – 2012-03-21 14:09:39

回答

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 
+0

不錯!我不知道'typolink'的addQueryString參數。 – tmt 2012-03-21 15:12:10

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參數兩次了,然後,但具有相同的價值,並且有可能是額外的&,但它的作品。