从tt_news转tx_news后,如何用Typolink触发搜索?Typo3新手求助
嘿,作为刚折腾过tx_news的TYPO3新手,太懂你这种参数踩坑的痛苦了!我来给你捋清楚怎么解决这个上下文搜索的Typolink参数问题:
解决tx_news上下文搜索的Typolink参数失效问题
你遇到的数字错误提示,核心原因是Typolink对数组参数的解析规则和你之前写的格式不兼容。tx_news的搜索参数确实是tx_news_pi1[search],但在TypoScript里不能直接这么写,得换两种正确的方式:
方式1:用点语法替代方括号(字符串形式)
如果习惯直接写additionalParams的字符串内容,把方括号换成点就行,TYPO3会自动转成正确的GET参数格式:
typolink { parameter = 123 // 替换成你的新闻列表页UID additionalParams = &tx_news_pi1.search=###SEARCH_KEYWORD### insertData = 1 // 必须开启,才能解析占位符里的搜索关键词 // 如果关键词有特殊字符,加上encode = 1来转义 }
方式2:用数组形式定义参数(更规范)
推荐这种写法,不仅不会出错,后期维护也更清晰:
typolink { parameter = 123 additionalParams { tx_news_pi1 { search = ###SEARCH_KEYWORD### } } insertData = 1 }
额外检查点
- 渲染后看前端链接,正确的URL应该是
https://你的域名/新闻列表页?tx_news_pi1[search]=你的关键词 - 确认你的tx_news列表插件已经开启搜索功能:在插件配置里找到「搜索」选项,确保它是启用状态,允许前端触发搜索
为啥原来的写法会报错?
TYPO3的Typolink解析器对字符串里的[]很敏感,容易把它当成数字索引处理,直接写&tx_news_pi1[search]=|就会触发那个莫名其妙的数字错误,换成点语法或者数组形式就能完美避开这个坑。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

