在 Typoscript HMENU 中,如何强制 URL 的语言
In a Typoscript HMENU, how to force the language for the URL
我有一个多语言、多站点、多域的 TYPO3 (4.5) 实例,RealURL 让我很忙。在某些子站点中,我无法为语言 1 和语言 2 创建正确的 URL。
它将导致模式 www.language-2-domain.com/language-1-pagetitle
我想知道 if/how 可以告诉 TMENU 强制使用某种语言,而不是继续摆弄 realurl_conf - 然后我可以用条件解决它。
这是一个完全正常的 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
有这样的吗?
编辑:我明白了,这与 "text" 无关。我可以用 "doNotLinkIt" 手动在 NO 中构建拼写链接并强制使用那里的语言吗?
这是"get desperate and look for hacks instead of looking at the problem after a good night's sleep"的明显例子。
RealURL 配置中存在不一致导致了错误行为。
我正在发布希望完全正常工作的 RealURL 配置。
它涵盖两个 single-domain/multi-language 个网站以及两个 multi-domain/multi-language 个网站。这就是为什么我在 URL.
上使用 regex
<?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',
),
),
);
}
?>
我有一个多语言、多站点、多域的 TYPO3 (4.5) 实例,RealURL 让我很忙。在某些子站点中,我无法为语言 1 和语言 2 创建正确的 URL。
它将导致模式 www.language-2-domain.com/language-1-pagetitle
我想知道 if/how 可以告诉 TMENU 强制使用某种语言,而不是继续摆弄 realurl_conf - 然后我可以用条件解决它。
这是一个完全正常的 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
有这样的吗?
编辑:我明白了,这与 "text" 无关。我可以用 "doNotLinkIt" 手动在 NO 中构建拼写链接并强制使用那里的语言吗?
这是"get desperate and look for hacks instead of looking at the problem after a good night's sleep"的明显例子。
RealURL 配置中存在不一致导致了错误行为。
我正在发布希望完全正常工作的 RealURL 配置。 它涵盖两个 single-domain/multi-language 个网站以及两个 multi-domain/multi-language 个网站。这就是为什么我在 URL.
上使用 regex <?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',
),
),
);
}
?>