It turns out that the requirement that we formulated in
#1186208: Unable to chain in front of some system paths,
namely that client modules should also call cmac() on any MENU_DEFAULT_LOCAL_TASK item, whenever calling it the parent item, is unreasonable.
Case in point is #1337412: Advanced Forum breaks Forum Access 6.x-1.7: AF creates a path forum/view and makes this the MENU_DEFAULT_LOCAL_TASK (and unfortunately, it also specifies 'access arguments' — quite unnecessarily, but that's what it does...).
FA calls cmac() on forum, but it does not know about forum/view, which is not in core. It would have to scan the router item array for a MENU_DEFAULT_LOCAL_TASK for every menu item that it wants to chain to.
[BTW, the D6 version of AF got fixed (to not specify access for forum/view) at the end of the long discussion, but the same misbehavior is still present in the D7 version, making the D7 versions of AF and FA incompatible.]
Comment | File | Size | Author |
---|---|---|---|
#1 | chain_menu_access.v2.1757616.1.patch | 4.91 KB | salvis |
Comments
Comment #1
salvisThis requires an API change: rather than passing the router item to change, we need to pass the array of router items and the path (index into the array).
Comment #2
salvisComment #3
salvisCommitted to