2016-01-22 76 views
0

页脚菜单定义如下:TYPO3:HMENU不外语工作

temp.footerNav = HMENU 
temp.footerNav { 
    special = userfunction 
    special.userFunc = \MyNamespace\Helper->footerNavArray 

    wrap = <ul>|</ul> 

    1 = TMENU 
    1 { 
     wrap = | 
     expAll = 0 

     NO = 1 
     NO.ATagParams = class="footer-navigation-link" 
     NO.stdWrap.htmlSpecialChars = 1 
     NO.wrapItemAndSub = <li class="footer-navigation__item">|</li> 
     NO.stdWrap.field = title // nav_title 
    } 
} 

由功能footerNavArray返回的数组看起来不错,在这两个德国

array (size=7) 
    0 => 
    array (size=2) 
     'title' => string 'Unternehmen' (length=11) 
     '_OVERRIDE_HREF' => string 'de/unternehmen.html' (length=19) 
    ... 
    ... 

和英语:

array (size=7) 
    0 => 
    array (size=2) 
     'title' => string 'Company' (length=7) 
     '_OVERRIDE_HREF' => string 'en/company.html' (length=15) 
    ... 
    ... 

页脚菜单在英语(默认语言)中完美工作,但是,唯一的输出I c在德语页面(L = 1)上看到的是<ul></ul>

任何想法?

+0

您可以检查是否有条件覆盖德语的页脚菜单。 –

+0

哪里/我该怎么做? – bernland

+0

如果您转到TypoScript对象浏览器,您将在页面底部找到所有可能的条件。如果选中一个框,TSOB将显示应用了检查条件的值。现在转到temp.footerNav,看看里面有什么...... –

回答

2

首先,上述行为是由[FE][hidePagesIfNotTranslatedByDefault] = 1造成的,Solr for TYPO3要求在多语言站点中正常工作。通过添加'_SAFE' = true到菜单阵列,我终于能够解决的问题:

array (size=7) 
    0 => 
    array (size=3) 
     'title' => string 'Company' (length=7) 
     '_OVERRIDE_HREF' => string 'en/company.html' (length=15) 
     '_SAFE' => boolean true 
    ... 
    ... 

我已经找到了解决方案行1213 TYPO3\CMS\Frontend\ContentObject\Menu\AbstractMenuContentObject->filterMenuPages()(核心版本7.6.2):

+0

经过数小时的测试和搜索,您的答案拯救了我的一天!谢谢! – chris

0

你也可以针对不同的语言使用全球环境条件。

#setup the default language in case of bad L variable 
config.sys_language_mode = content_fallback 
config.uniqueLinkVars=1 
config.sys_language_overlay = 1 
config.sys_language_uid = 0 
config.language = en 
config.linkVars = L 
# Spanish language, sys_language.uid = 1 
[globalVar = GP:L = 1] 
config.sys_language_uid = 1 
config.language = es 
config.locale_all = spanish 
[global] 
# English language, sys_language.uid = 0 
[globalVar = GP:L = 0] 
config.sys_language_uid = 0 
config.language = en 
[global]