2013-05-02 61 views
1

林建設我的菜單,下面的TypoScriptdoNotLinkIt在userFunc

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覆蓋到另一頁?

回答

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 
    } 
} 

恕我直言,這是更容易閱讀和維護。

相關問題