我希望我能设法解释这个问题...
我有一个处理共享内容的 T3 扩展。
在此共享内容中,我们有链接(页面 ID),这些链接被定义并转换为类似/en/clients/contact 的内容,使用
$cObj = t3lib_div::makeInstance('tslib_cObj');
$href = $cObj->getTypoLink_URL($linkValue); // $linkValue is an integer (e.g. 153)
这工作正常 - 直到我更改页面上的语言。然后,最后使用的 URL 有点"粘",并且 URL 中不再存在语言指示器。
方法:
- 致电德语页面 ->作品
- 更改为英文 ->作品
- 更改回德语 ->显示英文链接。
所以上面的链接结果像客户/联系人(前导斜杠也消失了)。
奇怪的是,我有一个本地安装的同一页面,其中没有出现问题。它只是在线页面上。
我试图找到配置的差异,但没有任何差异。
到目前为止,我能找到的唯一区别是,我使用 Typo3 v4.5.35 进行本地安装,使用 v4.7.17 进行在线安装。
有什么想法吗???
这
很奇怪...但是,我找到了解决方案。
我没有使用$cObj->getTypoLink_URL($linkValue);
而是使用它:
$configurations['additionalParams'] = "&L=".(int)t3lib_div::_GP('L');
$configurations['returnLast'] = 'url'; // get it as URL
$configurations['parameter'] = $linkValue;
$href = $cObject->typolink(NULL, $configurations);
似乎当我创建$cObj时,L 参数在某个地方、某个地方丢失了。通过手动添加,链接将按预期工作。