---
name: "Prophet::Web::Menu"
section: "3pm"
platform: "linux"
package: "libprophet-perl"
version: "0.743-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Prophet::Web::Menu"
---

# Prophet::Web::Menu(3pm)

Handle the API for menu navigation

## NAME

Prophet:Web::Menu - Handle the API for menu navigation

## METHODS

### new PARAMHASH

Creates a new Prophet::Web::Menu object.  Possible keys in the *PARAMHASH* are `"label"`, `"parent"`, `"sort_order"`, `"url"`, and `"active"`.  See the subroutines with the respective name below for each option's use.

### label \[STRING\]

Sets or returns the string that the menu item will be displayed as.

### parent \[MENU\]

Gets or sets the parent Prophet::Web::Menu of this item; this defaults to null. This ensures that the reference is weakened.

### sort\_order \[NUMBER\]

Gets or sets the sort order of the item, as it will be displayed under the parent.  This defaults to adding onto the end.

### link

Gets or set a Jifty::Web::Link object that represents this menu item. If you're looking to do complex ajaxy things with menus, this is likely the option you want.

### target \[STRING\]

Get or set the frame or pseudo-target for this link. something like \_blank

### class \[STRING\]

Gets or sets the CSS class the link should have in addition to the default classes.  This is only used if `"link"` isn't specified.

### url

Gets or sets the URL that the menu's link goes to.  If the link provided is not absolute (does not start with a "/"), then is is treated as relative to it's parent's url, and made absolute.

### active \[BOOLEAN\]

Gets or sets if the menu item is marked as active.  Setting this cascades to all of the parents of the menu item.

### child KEY \[, PARAMHASH\]

If only a *KEY* is provided, returns the child with that *KEY*.

Otherwise, creates or overwrites the child with that key, passing the *PARAMHASH* to "new" in Jifty::Web::Menu.  Additionally, the paramhash's `"label"` defaults to the *KEY*, and the `"sort_order"` defaults to the pre-existing child's sort order (if a `"KEY"` is being over-written) or the end of the list, if it is a new `"KEY"`.

### active\_child

Returns the first active child node, or `"undef"` is there is none.

### delete KEY

Removes the child with the provided *KEY*.

### children

Returns the children of this menu item in sorted order; as an array in array context, or as an array reference in scalar context.

### render\_as\_menubar \[PARAMHASH\]

Render menubar with YUI menu, suitable for an application's menu. It can support arbitary levels of submenu.

### as\_link

Return this menu item as a `"Jifty::Web::Link"`, either the one we were initialized with or a new one made from the `"/label"` and `"/url"`

If there's no `"/url"` and no `"/link"`, renders just the label.
