2015-11-01 39 views
1

我已經建立了使用不同語言並配置了RealURL的單域網站。TYPO3:用於Extbase Extension的RealURL語言切換

在一個頁面上,有一個帶有列表和顯示操作的FE插件。從列表中顯示的行動鏈接正確地呈現,例如:

en/press.html -> en/press/release1.html 
en/press.html -> en/press/release2.html 

點擊其中一個鏈接,表面詳細信息頁面 - 到目前爲止,那麼好。一切都按預期工作。

然而,語言切換返回下面的鏈接(詳細信息頁面上):

en/press.html 
de/presse.html 

的聯繫,當然,應該如下:

en/press/release1.html 
de/presse/aussendung1.html 

此外,麪包屑菜單不顯示詳細信息頁面;它會顯示Home > Press,無論我是在列表中還是顯示操作。

語言導航

temp.langNav = COA 
temp.langNav { 
    10 = HMENU 
    10 { 
    special = language 
    special.value = 0,1,2,3,4,5,6,7,8 
    special.normalWhenNoLanguage = 0 
    wrap = <ul class="lang-sel__list">|</ul> 
    1 = TMENU 
    1 { 
     noBlur = 1 
     NO = 1 
     NO { 
     allWrap = <li class="lang-sel__item">|</li> 
     ATagParams = class="lang-sel__link" 
     stdWrap.setCurrent = English || Deutsch || Русский || Česky || Polski || Français || Română || Hrvatski || Slovenčina 
     stdWrap.current = 1 
     } 

     USERDEF1 = 1 
     USERDEF1 { 
     doNotLinkIt = 1 
     stdWrap.cObject = TEXT 
     stdWrap.cObject.value = 
     } 
    } 
    } 
} 

temp.selectedLang = TEXT 
temp.selectedLang.value < config.language 

麪包屑導航

temp.breadcrumbNav=COA 
temp.breadcrumbNav { 
10 = HMENU 
10 { 
special = rootline 
special.range = 0|-1 
includeNotInMenu = 1 
wrap = | 
1 = TMENU 
    1.noBlur = 1 
    1.CUR = 1 
    1.wrap = | 
    1.NO { 
     stdWrap.field = title 
     ATagParams = class="main-header__breadcrumb-link" 
     ATagTitle.field = nav_title // title 
     linkWrap = <li class="main-header__breadcrumb-item">|</li> 
    } 
    1.CUR { 
     stdWrap.field = title 
     linkWrap = <li class="main-header__breadcrumb-item">|</li> 
     doNotLinkIt = 1 
     } 
    } 
} 

RealURL配置

$TYPO3_CONF_VARS['FE']['addRootLineFields'].= ',tx_realurl_pathsegment'; 

$TYPO3_CONF_VARS['EXTCONF']['realurl'] = array(
    '_DEFAULT' => array(
     'init' => array(
      'enableCHashCache' => 1, 
      'appendMissingSlash' => 'ifNotFile', 
      'enableUrlDecodeCache' => 1, 
      'enableUrlEncodeCache' => 1, 
      'postVarSet_failureMode' => '', 
     ), 
     'redirects' => array(), 
     'preVars' => array(
      array(
       'GETvar' => 'L', 
       'valueMap' => array(
        'en' => 0, 
        'de' => 1, 
        'ru' => 2, 
        'cz' => 3, 
        'pl' => 4, 
        'fr' => 5, 
        'ro' => 6, 
        'hr' => 7, 
        'sk' => 8 
       ), 
       'valueDefault' => 'en', 
      ), 
     ), 
     'pagePath' => array(
      'type' => 'user', 
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', 
      'spaceCharacter' => '-', 
      'languageGetVar' => 'L', 
      'expireDays' => 7, 
      'rootpage_id' => 1, 
      'firstHitPathCache' => 1, 
     ), 
     'fixedPostVars' => array(
      '_DEFAULT' => array(
       array(
        'GETvar' => 'press', 
        'lookUpTable' => array(
         'table' => 'tx_myext_domain_model_press', 
         'id_field' => 'uid', 
         'alias_field' => 'title', 
         'addWhereClause' => ' AND NOT deleted', 
         'useUniqueCache' => 1, 
         'useUniqueCache_conf' => array(
          'strtolower' => 1, 
          'spaceCharacter' => '-' 
         ), 
         'languageGetVar' => 'L', 
         'languageField' => 'sys_language_uid', 
         'transOrigPointerField' => 'l10n_parent', 
        ) 
      ) 
     ), 
     'fileName' => array(
      'defaultToHTMLsuffixOnPrev' => 1 
     ), 
    ), 
); 

回答

1

你需要告訴TY PO3保持參數。

這是通過在HMENU ConentObject中配置addQueryString完成的。 你的例子將被擴展:

temp.breadcrumbNav=COA 
temp.breadcrumbNav { 
    10 = HMENU 
    10 { 
     1 { 
      NO { 
       addQueryString.exclude = L,cHash 
      } 
     } 
    } 
} 

如需進一步信息查詢的文檔:

docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/Hmenu/Index.htmldocs.typo3.org/typo3cms/TyposcriptReference/Functions/Typolink/Index.html

而且上述方案中可以在鍛造中找到:https://forge.typo3.org/issues/16466#note-3