Re: [development] Splitting hook_menu into hook_menu and hook_router
I think we'll need to think carefully about what it means to have two different menu items tied to the same path. If these are in separate parts of the menu tree, it creates some ambiguity about which parts of the menu should be expanded and which shouldn't when a particular path is gotten to. My prediction is that trying to resolve this ambiguity will lead to some pretty messy code. I agree tab coding needs cleaning up, but there are aspects of this loose coupling that actually becomes harder when you separate the concepts. If I navigate to example.com/admin/themes and that is available say as a tab, and as separate menu item, how do I know whether to display the tabbed context or not? I don't see how I can without tightly coupling the concept of path and menu navigation. So if we separate the router and the menu, I think the path needs to stay with the menu, and not with the router. Maybe a route, can appear at multiple paths? Let the route be more namespace-like: "tincymce.config"? I bet hook_menu_alter is possible without separating concepts of menu and router, given that we're presenting drupal an array of menu items. It might be more dangerouse, but it seems possible. :). Finally having multiple links to a page does not necessarily imply that you have multiple instances of the same path to the menu, it really just means that you need links to a menu item to appear in multiple places. Dave -----Original Message----- From: development-bounces@drupal.org [mailto:development-bounces@drupal.org] On Behalf Of Karoly Negyesi Sent: Thursday, January 18, 2007 6:38 PM To: development@drupal.org Subject: Re: [development] Splitting hook_menu into hook_menu and hook_router
But sometimes, something might simply logically go in two places, because classification isn't always as clean as we want it. This is
why we have two views for the administration page now. By Task and By Module.
Sure, but how would the router/menu separation simplify that compared
to the current system. As far as I can tell, you'd still need two routers and two menu items.
You indeed need two router items for the 'by task' and the 'by module' pages. However, what Merlin says is that these two pages prove that sometimes two links eventually pointing to the same place are meaningful and needed. The current administration menu is a mirror of the 'by task' page and there is no way to have an 'administration by module' menu because one page, one visible menu link is the current possibility. This is not merely a minor shortcoming of the old menu or even the new menu patch, both of which use path as a primary key -- router items naturally have path as primary key as you just can't have two router items for the same path and this needs to be enforced. As a side effect, we gain the possibility of an easy and trivial hook_menu_alter.
participants (1)
-
Metzler, David