← Back to team overview

phpdevshell team mailing list archive

[Bug 894291] Re: Improvement to menu href link generation logic

 

** Changed in: phpdevshell
   Importance: Low => Medium

** Changed in: phpdevshell
     Assignee: (unassigned) => TitanKing (titan-phpdevshell)

** Changed in: phpdevshell
       Status: Opinion => Confirmed

-- 
You received this bug notification because you are a member of
PHPDevShell, which is subscribed to PHPDevShell.
https://bugs.launchpad.net/bugs/894291

Title:
  Improvement to menu href link generation logic

Status in Open Source PHP RAD Framework with UI.:
  Confirmed

Bug description:
  An improvement may need to be made to the mod_menu_a() function in the
  mods.php files under the themes files.

  Lets give an example of the problem first:
  Imagine you would like to create a new menu item called "Home". This menu item is not going to be placed somewhere in the menu's itself but is going to be a button somewhere on your page. So you are going to Hide it from the top menu. The "Home" menu also simply references/links to an existing menu, let's say "Dashboard". So the way you are going to configure the Home menu is:

  1) Under Select Node Type: Set the menu to: (3) Jump to Link: Dashboard
  2) Hide Menu: "From All" or "From Menu Only"

  The problem comes in when you would like to render the a href tag for this link in your own theme. One would typically use the mod_menu_a() function in the mods.php file to do this. The problem is that mod_menu_a() thinks that this menu item is simply a place marker and therefore renders the <a href> tag as:
  target="_self"
  instead of rendering the real target for the menu.

  The problem with this is that it is assumed that when a menu item is hidden from all, or from the menu itself, that it is a self referencing link and this may not always be the case. Of course one can simply change the mod_menu_a() function to suite your needs better but it takes a while for one to figure out what is going on and why your menu isn't working as it should. In my case for example I had to change the line:
  if ($mr['menu_type'] == 6 || ($mr['hide'] != 0 && $mr['hide'] != 2))

  to

  if ($mr['menu_type'] == 6 || ($mr['menu_type'] != 3 &&  $mr['hide'] !=
  0 && $mr['hide'] != 2))

  The question is, can mod_menu_a() be improved to handle this situation
  better by default or is it going to cause problems elsewhere?

To manage notifications about this bug go to:
https://bugs.launchpad.net/phpdevshell/+bug/894291/+subscriptions


References