【问题标题】:TYPO3: show/hide specific menu items depending on current languageTYPO3:根据当前语言显示/隐藏特定菜单项
【发布时间】:2013-07-16 01:13:23
【问题描述】:

TYPO3 6.1 版

我的页面结构:

root
  page1
    subpage1-1
    subpage_only_for_fr_1-2
    subpage_only_for_de_1-3
  page2
    subpage2-1
    subpage2-2

我的菜单结构是一样的(根项除外):

  page1
    subpage1-1
    subpage_only_for_fr_1-2
    subpage_only_for_de_1-3
  page2
    subpage2-1
    subpage2-2

我的菜单 TS 是:

LEFTNAV = HMENU
LEFTNAV {
    1 = TMENU
    1 {
        wrap = <ul>|</ul>
        NO = 1
        NO {
            wrapItemAndSub = <li>|</li>
            stdWrap.field = title
        }
        ACT = 1
        ACT {
            wrapItemAndSub = <li class="active">|</li>
            stdWrap.field = title
        }
    }
    2 < .1
}

我的网站有另一种语言(默认 = 德语,附加 = 法语):

[globalVar=GP:L=0]
  config.sys_language_uid = 0
  config.language = de
[global]
[globalVar=GP:L=2]
  config.sys_language_uid = 2
  config.language = fr
[global]

我想根据当前语言在我的菜单中显示/隐藏一些页面。

例如,如果用户切换语言为法语,我想在菜单中显示页面subpage_only_for_fr_1-2并隐藏subpage_only_for_de_1-3。反之亦然。

我怎样才能做到这一点?

【问题讨论】:

    标签: menu typo3 typoscript


    【解决方案1】:

    解决了!这是一个简单的解决方案:

    只需要检查行为标签上的语言部分下的字段(当您编辑页面时):

    Language
    Localization 
    
     Hide default translation of page
     Hide page if no translation for current language exists 
    

    1) 对于我只需要德语的字段,我将复选框“如果当前语言不存在翻译则隐藏页面”激活。注意:你不应该为他们添加任何法语翻译。

    2) 对于我只需要法语的字段,我将复选框“隐藏页面的默认翻译”激活。因为它是默认语言。

    TYPO3 将根据当前语言正确隐藏/显示所需页面!

    【讨论】:

    • 有一种非常方便的方法可以将第二个复选框选项设置为所有页面的默认值:只需将$TYPO3_CONF_VARS['FE']['hidePagesIfNotTranslatedByDefault'] = '1'; 添加到您的localconf 或在安装工具中设置即可。因此,您无需为每个页面单独设置。
    • 谢谢,我看到了这个解决方案。问题是我不需要它用于我的所有页面,只是针对特定的。
    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 2017-11-06
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多