【问题标题】:typoscript: build URL from Page-ID and GET Parameters打字稿:从页面 ID 和 GET 参数构建 URL
【发布时间】:2012-03-21 11:42:01
【问题描述】:

我必须使用typoscript 替换我的typo3 页面上的标记以建立到另一个页面的链接(即同一页面的另一种类型)。

对于这个链接,我要设置和当前页面一样的查询参数,加上当前页面的pageId,比如<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?还是我必须做更多的排版魔术?

感谢任何提示!

【问题讨论】:

  • 您是否知道可以在 URL 中设置的所有 GET 参数,或者解决方案是否必须如此通用才能适用于 URL 中设置的任何变量?无论是否使用 RealURL,当前页面的 ID 始终是已知的。
  • 参数一般有2-4个,名字我都知道。但我想出了一种附加所有参数和 id 的通用方法。请参阅下面的答案

标签: typo3 typoscript


【解决方案1】:

未经测试,但如果您需要链接,请使用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

【讨论】:

  • 不错!我不知道typolinkaddQueryString参数。
【解决方案2】:

好吧,我终于弄明白了!关键在于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 参数,但使用相同的值,并且可能会有额外的&amp;,但它可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多