2012-02-09 82 views
1

我使用TYP 4.5.5,RealURL 1.11.2和tt_news 3.0.1。我希望用戶可以切換語言,並在用戶語言中顯示相應的新聞。所有人都應該使用RealURL。tt_news:在單一視圖中更改語言時沒有news_id

切換語言時,不會提交新聞ID。所以我必須明確提交ID。我發現了一些線索,告訴我它如何工作,但我沒有得到它的管理。這裏是我的TS:

lib.tslangmenu = COA 
lib.tslangmenu { 
    10 = HTML 
    10.value(
    <img src="fileadmin/templates/images/languages_en.png" width="48" height="121" alt="Languages" /> 
    <div id="LanguageContents"> 
) 

    20 = HMENU 
    20.special = language 
    20.wrap = <div id="AvailableLanguages">|</div> 
    20.special.value = 0,1 
    20.1 = GMENU 
    20.1.NO { 
    XY = 24,16 
    5 = IMAGE 
    5.file = fileadmin/templates/images/deutsch.png || fileadmin/templates/images/englisch.png 
    additionalParams.cObject = COA 
    additionalParams.cObject { 
     5 = TEXT 
     5.wrap = &L=1 

     10 = TEXT 
     10.data = GPvar : tx_ttnews | backPid 
     10.wrap = &tx_ttnews[backPid]=| 
     10.required = 1 

     20 = TEXT 
     20.data = GPvar : tx_ttnews | tt_news 
     20.wrap = &tx_tt_news[tt_news]=| 
     20.required = 1 

     30 = TEXT 
     30.data = GPvar : cHash 
     30.wrap = &cHash=| 
     30.required = 1 
    } 
    } 

    30 = HTML 
    30.value(
    <img class="languagebutton" src="fileadmin/templates/images/languages_en.png" width="48" height="121" alt="Languages" /> 
    </div> 
) 

據我發現我應該使用additionalParamsGPVar設置參數的信息。但我總是得到no news_id given消息。

這裏是我的RealURL配置:

$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['realurl'] = array ( 
    '_DEFAULT' => array (
     'init' => array (
      'enableCHashCache' => '1', 
      'appendMissingSlash' => 'ifNotFile', 
      'enableUrlDecodeCache' => '1', 
      'enableUrlEncodeCache' => '1', 
     ), 
     'redirects' => array (
     ), 
     'preVars' => array (
      '0' => array (
       'GETvar' => 'no_cache', 
       'valueMap' => array (
        'nc' => '1', 
       ), 
       'noMatch' => 'bypass' 
      ), 
      '1' => array (
       'GETvar' => 'L', 
       'valueMap' => array (
        'de' => '0', 
        'en' => '1', 
       ), 
       'valueDefault' => 'de', 
       'noMatch' => 'bypass', 
      ), 
      '2' => array (
       'GETvar' => 'lang', 
       'valueMap' => array (
        'de' => 'de', 
        'en' => 'en', 
       ), 
       'noMatch' => 'bypass', 
      ), 
     ), 
     'pagePath' => array (
      'type' => 'user', 
      'userFunc' => 'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main', 
      'spaceCharacter' => '-', 
      'languageGetVar' => 'L', 
      'expireDays' => '7', 
      'rootpage_id' => '1', 
     ), 
     'fixedPostVars' => array (
     ), 
     'postVarSets' => array (
      '_DEFAULT' => array (
       'archive' => array (
        '0' => array (
         'GETvar' => 'tx_ttnews[year]', 
        ), 
        '1' => array (
         'GETvar' => 'tx_ttnews[month]', 
         'valueMap' => array (
          'january' => '01', 
          'february' => '02', 
          'march' => '03', 
          'april' => '04', 
          'may' => '05', 
          'june' => '06', 
          'july' => '07', 
          'august' => '08', 
          'september' => '09', 
          'october' => '10', 
          'november' => '11', 
          'december' => '12', 
         ), 
        ), 
       ), 
       'browse' => array (
        '0' => array (
         'GETvar' => 'tx_ttnews[pointer]', 
        ), 
       ), 
       'select_category' => array (
        '0' => array (
         'GETvar' => 'tx_ttnews[cat]', 
        ), 
       ), 
       'article' => array(
        array(
         'GETvar' => 'tx_ttnews[pointer]', 
         'valueMap' => array(), 
         'noMatch' => 'bypass', 
        ), 
        array(
         'GETvar' => 'tx_ttnews[tt_news]', 
         'lookUpTable' => array(
          'table' => 'tt_news', 
          'id_field' => 'uid', 
          'alias_field' => 'title', 
          'addWhereClause' => ' AND NOT deleted', 
          'useUniqueCache' => 1, 
          'useUniqueCache_conf' => array(
           'strtolower' => 1, 
           'spaceCharacter' => '-', 
          ), 
          'languageGetVar' => 'L', 
          'languageExceptionUids' => '', 
          'languageField' => 'sys_language_uid', 
          'transOrigPointerField' => 'l18n_parent', 
          'autoUpdate' => 1, 
          'expireDays' => 180, 
         ), 
        ), 
        array (
         'GETvar' => 'tx_ttnews[swords]', 
        ), 
       ), 
      ), 
     ), 

解決方案:

似乎增加addQueryString做這項工作。這是我最後的語言切換器:

lib.tslangmenu = COA 
lib.tslangmenu { 
    10 = HTML 
    10.value(
    <img src="fileadmin/templates/images/languages.png" width="48" height="121" alt="Sprachen" /> 
    <div id="LanguageContents"> 
) 

    20 = HMENU 
    20.special = language 
    20.wrap = <div id="AvailableLanguages">|</div> 
    20.special.value = 0,1 
    20.addQueryString = 1 
    20.1 = GMENU 
    20.1.NO { 
    XY = 24,16 
    5 = IMAGE 
    5.file = fileadmin/templates/images/deutsch.png || fileadmin/templates/images/englisch.png || fileadmin/templates/images/kroatisch.png 
    } 

    20.1.ACT < 20.1.NO 
    20.1.ACT = 1 
    20.1.ACT.wrap =<span class="langhide">|</span> 
    20.1.ACT { 
    XY = 24,16 
    5 = IMAGE 
    5.file = fileadmin/templates/images/deutsch.png || fileadmin/templates/images/englisch.png || fileadmin/templates/images/kroatisch.png 
    } 

    20.1.CUR < 20.1.ACT 
    20.1.CUR = 1 
    20.1.CUR{ 
    XY = 24,16 
    5 = IMAGE 
    5.file = fileadmin/templates/images/deutsch.png || fileadmin/templates/images/englisch.png || fileadmin/templates/images/kroatisch.png 
    } 

    30 = HTML 
    30.value(
    <img class="languagebutton" src="fileadmin/templates/images/languages.png" width="48" height="121" alt="Sprachen" /> 
    </div> 
) 
} 

回答

1

您的TypoScript有一些錯誤:

20.wrap = &tx_tt_news[tt_news]=| 

刪除裏邊反強調:

20.wrap = &tx_ttnews[tt_news]=| 

而且不要用手設置cHash! 30.wrap = &cHash=|它會阻止你的頁面被緩存,因爲cHash將是錯誤的!