1

我用以下打字稿构建我的菜单

includeLibs.myadminmenu = typo3conf/ext/my_admin/user_makemenu.php
lib.userMenu = COA_INT
lib.userMenu.10 = HMENU
lib.userMenu.10 {
    special = directory
    special.value = 184
    modules = {$modules}
    entryLevel = 1
    1 = TMENU
    1.itemArrayProcFunc = user_myadminmenu->makemenu
    1 {
        NO = 1
        NO.allWrap = |
        ACT = 1
        ACT.allWrap = |
    }
}

这很好用,但是在我的 makemenu 方法中,我有以下内容

foreach($menuArr AS $i => $menu) {
    if (array_key_exists($menu['uid'], $this->paymentModules)) {
        if (! in_array($this->paymentModules[$menu['uid']], $modules)) {
            $menuArr[$i]['doNotLinkIt'] = 1;
        }
    }
}

这不起作用 - 我试过了

unset($menuArr[$i])

这删除了菜单项,但我只想让它不链接,有什么办法吗?

如果无法取消链接菜单项,是否可以将 url 覆盖到另一个页面?

4

1 回答 1

0

一种不同的方法可能是:

(未经测试)

includeLibs.myadminmenu = typo3conf/ext/my_admin/user_makemenu.php
lib.userMenu = COA_INT
lib.userMenu.10 = HMENU
lib.userMenu.10 {
    special = directory
    special.value = 184
    modules = {$modules}
    entryLevel = 1
    1 = TMENU
    1 {
        NO = 1
        NO.allWrap = |
        NO.doNotLinkIt = 1
        NO.doNotLinkIt.if {
          # the userfunc needs to return a list of pids like
          # value = 10,12,24,44
          value.postUserFunc = user_myadminmenu->makemenu
          isInList.field = uid
        }
        ACT = 1
        ACT.allWrap = |
        ACT.doNotLinkIt < .NO.doNotLinkIt
    }
}

恕我直言,这更容易阅读和维护。

于 2014-01-30T09:26:34.693 回答