Typo3 getTypoLink_URL语言更改后创建错误的链接


Typo3 getTypoLink_URL creates wrong link after language change

我希望我能设法解释这个问题...

我有一个处理共享内容的 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 参数在某个地方、某个地方丢失了。通过手动添加,链接将按预期工作。