如何根据FE组对链接页面的访问权限对菜单项进行不同的样式设置?

时间:2012-11-23 17:50:52

标签: typo3 typoscript

我们的客户希望菜单中的某些页面样式不同,具体取决于FE组的访问权限。

我们的想法是提供某些菜单项,这些菜单项仅对主持人可见,是一个小图标,以便主持人明白此页面仅适用于他们。

我确信我可以通过在PHP中实现逻辑来提出解决方案,但我更愿意在纯TypoScript中解决这个问题,以便为网站的未来维护人员提供更轻松的维护。

我喜欢applying a style through CSS based on the UID的想法,但从长远来看,这似乎是一种维护。

2 个答案:

答案 0 :(得分:1)

您可以使用USR状态应用不同的换行

10 = HMENU
10.1 = TMENU
10.1.wrap = <ul>|</ul>
10.NO = 1
10.NO.wrapItemAndSub = <li>|</li>
10.ACT < .NO
10.ACT.wrapItemAndSub = <li class="menu-active">|</li>
10.USR < .NO
10.USR.wrapItemAndSub = <li class="menu-user">|</li>

用户和活动没有组合,因此我推荐另一个approch。

根据已处理页面的某些页面属性修改链接:

10.NO.wrapItemAndSub.override = <li class="menu-user">|</li>
10.NO.wrapItemAndSub.override {
  # the list of matching fe groups
  if.value = 1,3
  if.isInList.field = fe_group
}

同时了解TypoScript条件的力量。 http://typo3.org/documentation/document-library/core-documentation/doc_core_tsref/4.7.0/view/1/5/#id553579

答案 1 :(得分:0)

要做的两个步骤:

  1. 仅为选定的群组设置Usergroup Access Rights这些页面(因此其他人无法看到这些页面)
  2. 如果需要,使用TS condition修改CSS / JS或其他任何内容。
  3. 样品

    [usergroup = 1,2]
    lib.moderator_menu = HMENU
    // ... etc
    [end]
    

    向菜单项添加图标的最简单方法是使用CSS:

    <div id="main_menu">
      <a href="some-moderator-page.html" id="page_123" class="mod_link_icon">Moderators only</a>
    </div>
    

    并在css文件中:

    #main_menu a {
        display:block;
        padding: 5px;
    }
    
    .mod_link_icon{
        padding-left:25px;
        background: url("img/moderator_icon1_20x20.png") no-repeat left top;
    }
    

    提示:您还可以使用jQuery .addClass()为所选用户组的mod_link_icon元素设置必需的#page_123类。

    <div id="main_menu">
      <a href="some-moderator-page.html" id="page_123">Moderators only</a>
    </div>
    
    <script type="text/javascript">
        // displays only when user's in 'moderator' group
        $('#page_123').addClass('mod_link_icon');
    </script>