Typo3 getTypoLink_URL создает неправильную ссылку после смены языка

Надеюсь, мне удастся объяснить эту проблему...

У меня есть расширение T3, которое обрабатывает общий контент.

В этом общем контенте у нас есть ссылки (идентификаторы страниц), которые определены и преобразованы во что-то вроде /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 для онлайн-установки.

Есть идеи???


person Swissdude    schedule 17.11.2014    source источник


Ответы (1)


Это было очень странно... но я нашел решение.

Вместо использования $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-параметр где-то потерялся. При добавлении вручную ссылка работает, как и ожидалось.

person Swissdude    schedule 19.11.2014