1

TYP 4.5.5、RealURL 1.11.2、および tt_news 3.0.1 を使用しています。ユーザーが言語を切り替えて、対応するニュースがユーザーの言語で表示されるようにします。すべて RealURL で動作するはずです。

言語を切り替えると、ニュース 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>
  )

私が見つけた情報によるとadditionalParams、パラメータを使用して設定する必要がありますGPVar。しかし、私はいつも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>
  )
}
4

2 に答える 2

4

メニューの次のプロパティを見てください。

保護Lvar

addQueryString <--- keeps the params to the string when switching languages.

TSREF はあなたの友達です: http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.6.0/view/1/7/#id2635691

于 2012-02-10T09:23:31.757 に答える
1

あなたの TypoScript にはいくつかのエラーがあります:

20.wrap = &tx_tt_news[tt_news]=|

下線を削除します。

20.wrap = &tx_ttnews[tt_news]=|

また、cHash を手で設定しないでください。30.wrap = &cHash=| cHashが間違っているため、ページがキャッシュされなくなります。

于 2012-02-16T08:28:30.197 に答える