2010-04-16 62 views
1

我正在开发一个网站,需要在菜单中链接一些重复:Controllling Drupal的主动/主动-TRAIL重复的菜单项

A部分
- 介绍
- 褒奖

B部分
- 介绍
- 褒奖

推荐
- A部分
- B部分

所以 '部分A>褒奖' 和 '褒奖>部分A' 点到同一节点。但无论人们使用哪个菜单链接,我都希望该人员参与到A部分。

问题是D6不喜欢重复的菜单项,并且它分配活动路径类和主动路径类而不可预知。

所以我的想法是为Testimonials菜单中的每个项目创建一个占位符节点,然后将URL设置为“testimonials/redirect/section-a”之类的内容,然后使用mod_rewrite重定向到“section- A /推荐”。

使用此解决方案,我将不会在菜单中出现重复路径。我只是希望这不会损害我的搜索引擎优化。

有谁知道更好的解决方案?

回答

3

我也有这个问题。当多个菜单项链接到相同的内容时,Drupal将使用菜单ID最低的项作为规范 - 无论您单击哪个菜单链接,都会获得最低菜单ID的活动轨迹。

我知道修复它的最好方法是我不喜欢将非标准菜单项指向节点,该节点将重定向到您想要的节点(您可以使用php输入过滤器drupal_goto或类似的东西)

不幸的是,path_redirect模块不会解决这个问题,因为它创建的重定向路径不能用作菜单项。

我不确定为什么在d6中没有更多的人使用这个用例 - 我的经验很常见,希望顶级菜单项指向第一个孩子,并且想要将活动路径设置为第一个孩子。

nodesymlinks模块解决了反向用例 - 它允许您设置多个菜单项,每个菜单项都有自己的路径,指向同一个节点。所以,根据您在菜单中单击的链接,您会得到不同的活动路径。该模块对于“规范菜单项”模块来说是一个很好的模型。

2

我们在我们的项目中遇到了同样的问题,我们在每个重复的菜单项中设置了一个“#n”,并且设置了正确的工作路径。例如:

Section A 
-- Introduction -> node/1#1 
-- Testimonials 

Section B 
-- Introduction -> node/1#2 
-- Testimonials 

Testimonials 
-- Introduction -> node/1#n 
-- Section B 

是不是最漂亮的解决方案,但绝对是一个更快的:)我们发现的唯一不方便的是,如果用户点击第一个在“A部分 - 引言”和“B区之后 - - 介绍“页面不会被重新加载。

希望这有助于

1

Multiple Node Menu可能做的伎俩:

此模块修改了标准的节点编辑表单 的“菜单设置”,让管理多个菜单链接到一个节点。 Drupal标准 的行为是只关心阳极的单个菜单链接,所有其他 菜单链接必须通过菜单管理添加。