typoscript: сборка URL из параметров Page-ID и GET - PullRequest
2 голосов
/ 21 марта 2012

Мне нужно заменить маркер на моей странице typo3, используя typoscript, чтобы создать ссылку на другую страницу (т.е. другой тип той же страницы).

Для этой ссылки я должен установить те же параметры запроса, что и для текущей страницы, плюс идентификатор страницы текущей страницы, например, <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

Итак, идентификатор не передается! (предположительно потому, что RealURL заменяет /de/ prevar на L=2, но не устанавливает id)

Мой вопрос: есть ли способ просто объединить page:uid и QUERY_STRING? Или мне нужно сделать еще одну магию опечаток?

Спасибо за любые подсказки!

Ответы [ 2 ]

5 голосов
/ 21 марта 2012

Не проверено, но, пожалуйста, используйте 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 голосов
/ 21 марта 2012

Ну, мне наконец-то удалось это выяснить!Ключ лежит в 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 дважды, но с одним и тем же значением, и могут быть дополнительные &, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...