在 Typoscript HMENU 中,如何强制 URL 的语言

2023-12-31

我有一个多语言、多站点、多域 TYPO3 (4.5) 实例,RealURL 让我很忙。在某些子站点中,我无法让它为语言 1 和 2 创建正确的 URL。

它将导致模式 www.language-2-domain.com/language-1-pagetitle

我不想继续摆弄 realurl_conf,而是想知道是否/如何可以告诉 TMENU 强制使用某种语言 - 然后我可以用一个条件来解决它。

这是一个完全正常的 TMENU:

lib.content_sitemap = COA
lib.content_sitemap {
5 = HMENU
5 {
  wrap = <ul>|</ul>
  1 = TMENU
  1 {
    expAll = 1
    noBlur = 1
    NO {
       wrapItemAndSub = <li>|</li>
       text = nav_title // title
     }

   ACT < .NO
   ACT {
       wrapItemAndSub = <li>|</li>
       }
   ACT = 1

   CUR < .NO
   CUR {
       wrapItemAndSub = <li>|</li>
       }
   CUR = 1
    }
  }
}

现在我可以使用的是这样的

5.1.NO.text.sys_language_uid = 1

有这样的事吗?

编辑:我明白了,所关心的不是“文本”。我可以使用“doNotLinkIt”手动在 NO 中构建打字链接并强制在那里使用语言吗?


这是一个明显的例子,“绝望地寻找黑客,而不是在睡个好觉后看看问题”。

RealURL 配置中存在不一致,从而引发了错误行为。

我正在发布希望完全正常工作的 RealURL 配置。 它涵盖两个单域/多语言网站以及两个多域/多语言网站。这就是为什么我使用regex http://blog.teamgeist-medien.de/2013/09/hardcore-realurl-mehrere-domains-prevars-sprachen-rootpages-decodeencode.html在网址上。

 <?php
 $TYPO3_CONF_VARS['EXTCONF']['realurl'] = array (
    '_DEFAULT' => array (
        'init' => array(
            'enableCHashCache' => 1,
            'respectSimulateStaticURLs' => 0,
            'appendMissingSlash' => 'ifNotFile',
            'enableUrlDecodeCache' => 1,
            'enableUrlEncodeCache' => 1,
        ),
        'preVars' => array(
            array(
                 'GETvar' => 'L',
                 'valueMap' => array(
                                    'de' => '0',
                                    'fr' => '1',
                                    'it' => '2',
                            ),
                 'valueDefault' => 'de',
                 'noMatch' => 'bypass',
            ),
            array(
                'GETvar' => 'no_cache',
                'valueMap' => array(
                    'no_cache' => 1,
                ),
                'noMatch' => 'bypass',
            ),
        ),
        'pagePath' => array (
            'rootpage_id' => 1,
            'type' => 'user',
            'disablePathCache' => 0,
            'userFunc' =>
            'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
            'spaceCharacter' => '-',
            'languageGetVar' => 'L',
            'expireDays' => 3
        ),
        'fileName' => array(
            'defaultToHTMLsuffixOnPrev' => 0,
        ),
    ),
);

/* site1 and site2 are single-domain */

/* site3 */
# http://blog.teamgeist-medien.de/2013/09/hardcore-realurl-mehrere-domains-prevars-sprachen-rootpages-decodeencode.html

if (    preg_match('/(www\.)?site3-d\.ch/', $_SERVER['HTTP_HOST']) > 0 
    ||  preg_match('/(www\.)?site3-f\.ch/', $_SERVER['HTTP_HOST']) > 0 
    ||  preg_match('/(www\.)?site3-i\.ch/', $_SERVER['HTTP_HOST']) > 0 ) {

$TYPO3_CONF_VARS['EXTCONF']['realurl']['site3'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['site3']['pagePath']['rootpage_id'] = '618';

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DOMAINS'] = array(
    'encode' => array(
        array(
            'GETvar' => 'L',
            'value' => '',
            'useConfiguration' => 'site3',
            'urlPrepend' => 'http://www.site3-d.ch',
        ),
        array(
            'GETvar' => 'L',
            'value' => '0',
            'useConfiguration' => 'site3',
            'urlPrepend' => 'http://www.site3-d.ch',
        ),
        array(
            'GETvar' => 'L',
            'value' => '1',
            'useConfiguration' => 'site3',
            'urlPrepend' => 'http://www.site3-f.ch'
        ),
        array(
            'GETvar' => 'L',
            'value' => '2',
            'useConfiguration' => 'site3',
            'urlPrepend' => 'http://www.site3-i.ch',
        ),
    ),
    'decode' => array(
        'www.site3-d.ch' => array(
            'GETvars' => array(
                'L' => '0',
            ),
            'useConfiguration' => 'site3',
        ),
        'www.site3-f.ch' => array(
            'GETvars' => array(
                'L' => '1',
            ),
            'useConfiguration' => 'site3',
        ),
        'www.site3-i.ch' => array(
            'GETvars' => array(
                'L' => '2',
            ),
            'useConfiguration' => 'site3',
        ),
    ),
);
}

/**      site4    */

if (    preg_match('/(www\.)?site4-d\.ch/', $_SERVER['HTTP_HOST']) > 0 
    ||  preg_match('/(www\.)?site4-f\.ch/', $_SERVER['HTTP_HOST']) > 0 ) {

// default Konfiguration übernehmen
$TYPO3_CONF_VARS['EXTCONF']['realurl']['site4'] = $TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'];
$TYPO3_CONF_VARS['EXTCONF']['realurl']['site4']['pagePath']['rootpage_id'] = '574';
$TYPO3_CONF_VARS['EXTCONF']['realurl']['site4']['preVars'] = array();

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DOMAINS'] = array(
    'encode' => array(
        array(
            'GETvar' => 'L',
            'value' => '',
            'useConfiguration' => 'site4',
            'urlPrepend' => 'http://www.site4-d.ch',
        ),
        array(
            'GETvar' => 'L',
            'value' => '0',
            'useConfiguration' => 'site4',
            'urlPrepend' => 'http://www.site4-d.ch',
        ),
        array(
            'GETvar' => 'L',
            'value' => '1',
            'useConfiguration' => 'site4',
            'urlPrepend' => 'http://www.site4-f.ch'
        ),
    ),
    'decode' => array(
        'www.site4-d.ch' => array(
            'GETvars' => array(
                'L' => '0',
            ),
            'useConfiguration' => 'site4',
        ),
        'www.site4-f.ch' => array(
            'GETvars' => array(
                'L' => '1',
            ),
            'useConfiguration' => 'site4',
        ),
    ),
);
}


?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Typoscript HMENU 中,如何强制 URL 的语言 的相关文章

随机推荐