<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><BR><DIV><DIV>On 17 Jan 2007, at 9:06 PM, Dries Buytaert wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">I agree that a logically seperation is a good thing, but this in</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">particular case, it seems as if there is some overlap.<SPAN class="Apple-converted-space"> </SPAN>For example,</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">both routers and menus would have to do access control ...</FONT></P> </BLOCKQUOTE></DIV>I also realized that the overlap isn't as much as you'd think<BR><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Menu items can point to user/1 or node/12345. These would still need to be mapped to the</DIV><DIV>'node/%s' router. Which then gets the access permission.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Another idea I had was to pass the routes to the menu hook, and allow people to do the following: (i'm not sure what we are using as the wildcard now)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>function module_menu($routes) {</DIV><DIV> $menu['wherever/too'] = drupal_menu('node/12345', $routes['node/%s'], $array_props);</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV># or alternatively perhaps :</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> $menu['wherever/this/is/shown'] = drupal_menu('user/12') // this could do the mapping and cache it. (without the need for recursion through the whole tree later)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV> return $menu;</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>}</DIV></BODY></HTML>