在Typhoscript HMENU中,如何强制使用URL语言 [英] In a Typoscript HMENU, how to force the language for the URL

查看:83
本文介绍了在Typhoscript HMENU中,如何强制使用URL语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a multi-language, multi-site, multi-domain TYPO3 (4.5) Instance where RealURL keeps me busy. In some sub-sites, I just can't get it to create the right URLs for Languages 1 and 2.

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

It will result in the pattern www.language-2-domain.com/language-1-pagetitle

我不想一直摆弄realurl_conf,而是想知道是否/如何可以告诉TMENU强制使用某种语言-那么我可以有条件地解决它.

Instead of keeping on fiddling with realurl_conf, I would like to know if/how it is possible to tell a TMENU to force use a certain language - then I could solve it with a condition.

这是一个完全正常的TMENU:

Here's a completely normal 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"手动构建拼写链接并在其中强制使用语言吗?

I see, it's not the "text" that's concerned. Can I build the typolink in NO by hand with "doNotLinkIt" and force the language there?

推荐答案

这是一个明显的例子,绝望地睡一觉,而不是在睡个好觉后再看问题".

This is an obvious example of "get desperate and look for hacks instead of looking at the problem after a good night's sleep".

RealURL Config中存在不一致之处,从而引发了错误的行为.

There were inconsistencies in the RealURL Config which provoked the erroneous behaviour.

我正在发布希望能够完全正常运行的RealURL配置. 它涵盖了两个单域/多语言网站以及两个多域/多语言网站.这就是为什么我使用 URL上的> regex .

I'm posting the hopefully fully working RealURL config. It covers two single-domain/multi-language websites as well as two multi-domain/multi-language websites. That is why I use the regex on the URL.

 <?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',
        ),
    ),
);
}


?>

这篇关于在Typhoscript HMENU中,如何强制使用URL语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆