---
name: "Jifty::View::Declare::Helpers"
section: "3pm"
platform: "linux"
package: "libjifty-perl"
version: "1.10518+dfsg-2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/Jifty::View::Declare::Helpers"
---

# Jifty::View::Declare::Helpers(3pm)

Additional subroutines for Jifty TD templates

## NAME

Jifty::View::Declare::Helpers - Additional subroutines for Jifty TD templates

## DESCRIPTION

This library provides mixins to help build your application's user interface.

## METHODS

### Arguments

*get args*

Returns arguments as set in the dispatcher or with "set" below. If called in scalar context, pulls the first item in `"args"` and returns it. If called in list context, returns the values of all items in `"args"`.

```
    my $action = get('action');
    my ($action, $object) = get(qw(action object));
```

*set key =\> val \[ key =\> val ...\]*

Sets arguments for later grabbing with get.

### HTML pages and layouts

*page*

```
 template 'foo' => page {{ title is 'Foo' } ... };
  or
 template 'foo' => page { title => 'Foo' } content { ... };
```

Renders an HTML page wrapped in "wrapper", after calling "/\_elements/nav" and setting a content type. Generally, you shouldn't be using "/\_elements/nav" but a Dispatcher rule instead.

If `"page/content"` calling convention is used, the return value of the first sub will be passed into wrapper as the second argument as a hashref, as well as the last argument for the content sub.

*content*

Helper function for page { ... } content { ... }, read "page" instead.

*wrapper $coderef*

Render a page. `$coderef` is a Template::Declare coderef.  This badly wants to be redone.

### Forms and actions

*form CODE*

Takes a subroutine reference or block of perl as its only argument and renders it as a Jifty `"form"`, for example:

```
    my $action = new_action class => 'CreateTask';
    form {
        form_next_page url => '/';
        render_action $action;
        form_submit( label => _('Create') );
    };
```

You can specify the form name using "with" in Template::Declare::Tags, like so:

```
    with (name => 'create_task'), form {
        ...
    };
```

*new\_action*

Shortcut for "new\_action" in Jifty::Web.

*render\_action $action\_object, $fields, $args\_to\_pass\_to\_action*

Renders an action out of whole cloth.

Arguments

- $action\_object

  A Jifty::Action object which has already been initialized

- $fields

  A reference to an array of fields that should be rendered when displaying this action. If left undefined, all of the  action's fields will be rendered.

- $args\_to\_pass\_to\_action

  A hashref of arguments that should be passed to `$action`-\>form\_field for every field of this action.

### render\_param $action, $param, %args

Takes an action and one or more arguments to pass to Jifty::Action-\>form\_field.

### render\_hidden $action $name $default @args

Takes an action and one or more arguments to pass to Jifty::Action-\>hidden

*form\_return*

Shortcut for "return" in Jifty::Web::Form.

*form\_submit*

Shortcut for "submit" in Jifty::Web::Form.

*form\_next\_page*

Shortcut for "next\_page" in Jifty::Web::Form.

### Other functions and shortcuts

*hyperlink*

Shortcut for "link" in Jifty::Web.

*tangent*

Shortcut for "tangent" in Jifty::Web.

*redirect*

Shortcut for "redirect" in Jifty::Web.

*render\_region*

A shortcut for `"Jifty::Web::PageRegion->new(@_)->render"` which does the Template::Declare magic necessary to not mix its output with your current page's.

*request*

Shortcut for "request" in Jifty::Web.

*current\_user*

Shortcut for "current\_user" in Jifty::Web.

*js\_handlers*

Allows you to put javascript handlers, a la Jifty::Web::Form::Element, onto arbitrary HTML elements:

```
  div {
      js_handlers {
          onclick => { path => "/some/region/path" }
      }
  }
```

*render\_mason PATH, ARGS*

Renders the Mason template at `"PATH"` (a string) with `"ARGS"` (a hashref).
