NAME¶
Jifty::Web::Menu - Handle the API for menu navigation
METHODS¶
new PARAMHASH¶
Creates a new Jifty::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.
Gets or sets the parent Jifty::Web::Menu of this item; this defaults to null.
This ensures that the reference is weakened.
raw_html [STRING]¶
Sets the content of this menu item to a raw blob of HTML. When asked or output,
rather than constructing a link, Jifty will return this raw content. No
escaping is done.
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::Form::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.
render_children_inline [BOOLEAN]¶
Gets or sets whether children are rendered inline as a menu "group"
instead of a true submenu. Only used when rendering with YUI for now. Defaults
to false.
Note that YUI doesn't support rendering nested menu groups, so having direct
parent/children render_children_inline is likely not going to do what you want
or expect.
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".
If the paramhash contains a key called "menu", that will be used
instead of creating a new Jifty::Web::Menu.
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 this menu with HTML markup as multiple dropdowns, suitable for an
application's menu
Any arguments are passed to render_as_hierarchical_menu_item.
Render this menu with html markup as an inline dropdown menu.
Render an <li> for this item. suitable for use in a regular or contextual
menu. Currently renders one level of submenu, if it exists, using
"render_submenu".
If you pass "expand =" 0>, the javascript expansion
"span" won't be output.
Any arguments are passed to render_submenu.
Renders a <ul> for the children (but not descendants) of this menu object,
suitable for use as part of a regular or contextual menu. Called by
"render_as_hierarchical_menu_item". You probably don't need to use
this on it's own.
If passed "deep_active =" 1>, then it renders active descendants
recursively all the way down.
Render this menu with html markup as old classical mason menu. Currently renders
one level of submenu, if it exists.
Render menu with YUI menu. It can support arbitrary levels of submenus.
Valid options for the paramhash are as follows:
- id
- The HTML element ID to use for the menu
- show
- A boolean indicating whether to show the menu after
rendering the HTML. Defaults to true. If you don't set this to true, you
should use the button option (see below) or show the menu with Javascript
like:
YAHOO.widget.MenuManager.getMenu("menu-html-id").show();
- button
- The ID of an HTML element. The element's onclick Javascript
event is bound to a function which shows the menu.
- options
- A hashref of options passed directly to the Javascript
constructor for the menu. See
<http://developer.yahoo.com/yui/menu/#configreference> for a list of
the options available.
- beforeshow
- A string of Javascript to run immediately before the menu
is shown. The variable "menu" is available and represents the
current YUI Menu object.
Render menubar with YUI menu, suitable for an application's menu. It can support
arbitrary levels of submenu.
as_link¶
Return this menu item as a Jifty::Web::Form::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.