首页 文章

TYPO3语言切换器不使用正确的RealURL路径

提问于
浏览
2

我使用以下TypoScript生成语言切换器 . 它基本上是现有网站的副本,其中一切正常:

lib.langMenu = HMENU
lib.langMenu {
  special = language
  addQueryString = 1
  special.value = 0,1
  special.normalWhenNoLanguage = 0
  1 = TMENU
  1 {
    noBlur = 1
    NO = 1
    NO {
        allWrap = <li>|</li>
        stdWrap2.noTrimWrap = | | |
        stdWrap.override = Deutsch || English
        ATagParams = class="lang-switcher-de" || class="lang-switcher-en"
    }

    ACT < .NO
    ACT = 1
    ACT.allWrap = <li class="active">|</li>

    wrap = <ul class="pull-right language"><li class="hidden-xs">Language:</li>|</ul>
  }
}

现在,我使用以下RealURL设置:

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
  '_DEFAULT' => array(
    'init' => array(
      'enableCHashCache' => 1, 
      'enableUrlDecodeCache' => 1,
      'enableUrlEncodeCache' => 1,
    ),
    'preVars' => array (
      0 => array (
        'GETvar' => 'L',
        'valueMap' => array (
          'en' => '1',
        ),
        'noMatch' => 'bypass',
      ),
    ),
    'pagePath' => array(
      'type' => 'user',
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
    ),
   )
 );

问题是,我有以下几页,其德语和英语路径:

  • produkte / products

  • produktuebersicht / product_overview

当我在 /produkte/produktuebersicht 时,语言切换器生成一个指向 /en/produkte/produktuebersicht 而不是 /en/products/product_overview 的链接 . 每个页面上都会出现此问题 .

它始终采用错误(读取,当前)语言的路径 . 我已经检查了ID到路径映射,它对我来说很好看:

编码缓存有这些条目 - 但即使我删除它们,问题仍然存在:

奇怪的是菜单本身是正确生成的 . 那么如何在语言切换器中将其链接到正确的RealURL?

1 回答

  • 3

    您的RealURL pagePath 部分应包含 languageGetVar 设置 .

    从RealURL文档:

    定义URL中定义语言ID的GET变量;如果设置,路径将考虑此语言值并尝试生成本地化版本中的路径 .

    您的 pagePath 部分应如下所示:

    'pagePath' => array(
      'type' => 'user',
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
      'languageGetVar' => 'L'
    ),
    

相关问题