2012-03-21 8 views
2

typo3ページのマーカーをtyposcriptで置き換えて、別のページ(別の同じページのタイプ)へのリンクを構築する必要があります。このリンクの typoscript:Page-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ははL=2/de/ prevarを置き換えますが、idを設定していないため)

は、私の質問は:単に page:uidQUERY_STRINGを連結する方法はありますか?あるいは、私はいくつかのtyposcriptの魔法をしなくてはなりませんか?

ありがとうございました!

+0

が必要な場合は、URLに設定することができ、すべてのGETパラメータを知っていますか解決策は、それがいずれかのために働くことをとても普遍的でなければならないのtypolinkにご使用ください変数はURLに設定されていますか? RealURLが使用されているかどうかにかかわらず、現在のページのIDは常にわかります。 – tmt

+0

通常は2〜4のパラメータがあり、その名前はすべて知っています。しかし、私はすべてのパラメータとIDを添付する普遍的な方法を考え出しました。下の私の答えを参照してください –

答えて

5

テストされていないが、あなたがリンク:)

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

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パラメータを掲載する予定、と&追加があるかもしれないが、それは動作します:これは私が今何をすべきかです。

関連する問題