当节点也有 Drupal 的顶级 link 时,保持二级菜单可见?
Keep secondary level menu visible when node also has a top level link with Drupal?
我有以下菜单结构。 Node1 和 Node2 是顶级 links。 NodeA 和 NodeB 是 Node2 的子节点。
-Node1
-Node2
--NodeA
--NodeB
当您在 Node2、NodeA 或 NodeB 上时,通过菜单块模块显示二级菜单。此二级菜单包含 NodeA 和 NodeB。
到目前为止一切正常。但是,我还需要向 NodeB 添加一个顶级 link。
-Node1
-Node2
-NodeB
--NodeA
--NodeB
如果我这样做,那么一旦我进入 NodeB 的页面,我就会失去二级菜单。我尝试使用菜单和菜单块的设置,并将 links 设置为展开,但它并没有改变任何东西。
即使节点也有顶级 link,我如何保持二级菜单可见?
我认为问题在于作为顶层的 NodeB link 也与子菜单中的 NodeB 具有相同的别名。
在 NodeB 顶层 link 尝试将 URL 设置为绝对值 URL。
- NodeB(顶级): http://yourdomain/alias
- NodeB(子级别): node/1234(或者你现在拥有的任何东西)
如果您这样做,Drupal 菜单系统将不会因为有两个 "equal" 菜单项而混淆。
编辑
您也可以尝试使用令牌模块(我找到了一个特定于您需要的模块:https://www.drupal.org/project/menu_token). It appears to have issues with using the site-url token. It appears to have a workaround 您可以尝试使用。
但这并不能解决更新别名的问题。这比较困难,因为您需要使用 hook_node_update 来更新您需要的菜单 link。
也许可以结合使用名为 whatever 的替代别名和使用 301 重定向到 node/1234 的组合。
编辑 2
我想起来了,也许您还可以使用规则模块来更新别名。
我有以下菜单结构。 Node1 和 Node2 是顶级 links。 NodeA 和 NodeB 是 Node2 的子节点。
-Node1
-Node2
--NodeA
--NodeB
当您在 Node2、NodeA 或 NodeB 上时,通过菜单块模块显示二级菜单。此二级菜单包含 NodeA 和 NodeB。
到目前为止一切正常。但是,我还需要向 NodeB 添加一个顶级 link。
-Node1
-Node2
-NodeB
--NodeA
--NodeB
如果我这样做,那么一旦我进入 NodeB 的页面,我就会失去二级菜单。我尝试使用菜单和菜单块的设置,并将 links 设置为展开,但它并没有改变任何东西。
即使节点也有顶级 link,我如何保持二级菜单可见?
我认为问题在于作为顶层的 NodeB link 也与子菜单中的 NodeB 具有相同的别名。
在 NodeB 顶层 link 尝试将 URL 设置为绝对值 URL。
- NodeB(顶级): http://yourdomain/alias
- NodeB(子级别): node/1234(或者你现在拥有的任何东西)
如果您这样做,Drupal 菜单系统将不会因为有两个 "equal" 菜单项而混淆。
编辑
您也可以尝试使用令牌模块(我找到了一个特定于您需要的模块:https://www.drupal.org/project/menu_token). It appears to have issues with using the site-url token. It appears to have a workaround 您可以尝试使用。
但这并不能解决更新别名的问题。这比较困难,因为您需要使用 hook_node_update 来更新您需要的菜单 link。
也许可以结合使用名为 whatever 的替代别名和使用 301 重定向到 node/1234 的组合。
编辑 2
我想起来了,也许您还可以使用规则模块来更新别名。