2013-07-29 85 views
0

我想创建一个菜单,显示在TYPO3所有子页面和父页面。我的问题是,我无法动态地分配​​。TYPO3菜单:如何设置“entryLevel”动态?

我正在使用TYPO3 6.1
这是目前我的菜单脚印。

lib.mainnavi = HMENU 
lib.mainnavi { 
    entryLevel = 1 
    1 = TMENU 
    1.wrap = <ul> | </ul> 
    1 { 
     noBlur = 1 
     NO { 
      subst_elementUid = 1 
      allWrap = <li id="link{elementUid}" class="first">| |*| <li id="link{elementUid}">| |*| <li id="link{elementUid}" class="last">| 
      wrapItemAndSub = |</li> 
     } 
     ACT = 1 
     ACT { 
      subst_elementUid = 1 
      allWrap = <li id="link{elementUid}" class="first current first_current">| |*| <li id="link{elementUid}" class="current">| |*| <li id="link{elementUid}" class="last current last_current">|   
      wrapItemAndSub = |</li> 
     } 
    } 
} 

下面是一张图片来说明我想要的。
当我去“1”时,我想看到“FAQ”,“GTC(EU)”和“GTC(USA)”。
当我去“常见问题”,我想看到A-J和“1”作为“回来”。
当我去“A”,我想看看“常见问题解答”为“回”
TYPO3 pages

我可以使“回”菜单与seccond菜单和special = browse。但我找不到一种方法来设置​​动态

回答

6

入门级可以获得正值和负值。

虽然正值标记从根页开始计算的绝对级别位置。

Root => 0 
    - Page => 1 
    - Page => 2 
     - Current Page => 3 

负值将是相对的,从当前页面计数回根

Root => -4 
    - Page => -3 
    -Page => -2 
     - Current Page => -1 

这样你就不必使用每个级别的条件,这将只是你的臃肿缓存表。

Root => 0 
    - Page => 1 
    - Current Page => 2 

Root => -3 
    - Page => -2 
    - Current Page => -1 
+0

不错,不错,但如何将这项工作没有针对不同的树级别的条件?在'A,B,C ...'页面上,值必须是'-2',当'FAQ'(低于'1')处于激活状态时,'-1'并且当'1'处于激活状态时必须是'1'。你可以发布你将使用的输入法代码吗? – Michael

+0

这只是不是它是如何工作的 - 正如我已经提到-1将是相对的,不是绝对的,所以它总是会指向当前页面。所以其他的负值也是如此,其中-2指向当前页面的父页面,-3指向盛大的父页面等等。 这样一来,整个“负面树”就会不断移动,只取决于您当前所在的页面。这样你可以完全摆脱条件。 – Joey

+0

在这个例子中,它应该始终为-1,因为这只意味着:只显示当前页面的子页面菜单。 – Joey

1

您可以调整​​设置的条件低于您的TS代码。看看documentationtreeLevel条件。

使用方法如下:

[treeLevel = 2] 
    lib.mainnavi.entryLevel = 2 
[end] 
0

有一种反璞归真的解决方案,不使用入门级的所有:

lib.mainnavi = HMENU 
lib.mainnavi { 
    special = directory 
    special.value.field = uid 
    ... 
} 

这将创建具有当前页面作为当前的PID,又名子页面的UID页面菜单页。

0

这为我做的伎俩:

lib.mainnavi = HMENU 
lib.mainnavi { 
    entryLevel = 1 
    special = directory 
    special.value.data = leveluid:-1 

    # your code here ... 
}