Alex Vandiver


Jifty::Web::PageRegion - Defines a page region


Describes a region of the page which contains a Mason fragment which can be updated via AJAX or via query parameters.


Creates a new page region. The possible arguments in the PARAMHASH are:


The (unqualified) name of the region. This is used to generate a unique id -- it should consist of only letters and numbers.


The path to the fragment that this page region contains. Defaults to /__jifty/empty, which, as its name implies, is empty.

arguments (optional) (formerly 'defaults')

Specifies an optional set of parameter defaults. These should all be simple scalars, as they might be passed across HTTP if AJAX is used.

See Jifty::Web::Form::Element for a list of the supported parameters.

force_arguments (optional)

Specifies an optional set of parameter values. They will override anything sent by the user or set via AJAX.

force_path (optional)

A fixed path to the fragment that this page region contains. Overrides anything set by the user.

parent (optional)

The parent Jifty::Web::PageRegion that this region is enclosed in.

region_wrapper (optional)

A boolean; whether or not the region, when rendered, will include the HTML region preamble that makes Javascript aware of its presence. Defaults to true.

lazy (optional)

Delays the loading of the fragment until client render-time. Obviously, does not work with downlevel browsers which don't support javascript.

loading_path (optional)

The fragment to display while the client fetches the actual region. Make this lightweight, or you'll be losing most of the benefits of lazy loading!

name [NAME]

Gets or sets the name of the page region.

qualified_name [NAME]

Gets or sets the fully qualified name of the page region. This should be unique on a page. This is usually set by "enter", based on the page regions that this region is inside. See "qualified_region" in Jifty::Web.

default_path [PATH]

Gets or sets the default path of the fragment. This is overridden by "path".

path [PATH]

Gets or sets the path that the fragment actually contains. This overrides "default_path".

default_argument NAME [VALUE]

Gets or sets the default value of the NAME argument. This is used as a fallback, and also to allow generated links to minimize the amount of state they must transmit.

argument NAME [VALUE]

Gets or sets the actual run-time value of the page region. This usually comes from HTTP parameters. It overrides the "default_argument" of the same NAME.

arguments [HASHREF]

Sets all arguments at once, or returns all arguments. The latter will also include all default arguments.


Enters the region; this sets the qualified name based on "qualified_region" in Jifty::Web, and uses that to pull runtime values for the "path" and "argument"s from the "state_variables" in Jifty::Request before overriding them with the "force" versions.


Exits the page region, if it is the most recent one. Normally, you won't need to call this by hand; however, if you are calling "enter" by hand, you will need to call the corresponding exit.


Deals with the bulk of the effort to show a page region. Returns a string of the fragment and associated javascript (if any).


Calls "enter", outputs the results of "as_string", and then calls "exit". Returns an empty string.


Outputs the results of the region to the current buffer.


get_element [RULES]

Returns a CSS2 selector which selects only elements under this region which fit the RULES. This method is used by AJAX code to specify where to add new regions.


Returns the client cacheable state of the regions path. Returns false if the template has not been marked as client cacheable. Otherwise it returns the string "static" or "action" based on the cacheable attribute set on the template.


Returns the template as JavaScript code.