Я надеюсь, что смогу объяснить эту проблему …
У меня есть расширение 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 для онлайн-установки.
Есть идеи???
Это было очень странно … но я нашел решение.
Вместо того, чтобы использовать $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-параметр где-то потерялся, когда-нибудь. Добавляя его вручную, ссылка работает как положено.
Других решений пока нет …