The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

The view template takes some objects (usually just one) from objects and displays the object's properties in a table.

It gets the displayable form of a column's name from the hash returned from the column_names method:

</%doc>

    <tr>
    <td class="field"> <% $classmetadata->{colnames}->{$col} %> </td>
    <td> 

%#=cut

% if ($col eq "url" && $item->url) { # Possibly too much magic. <a href="<%$item->url%>"><%$item->url%></a> % } else { %#=for doc

%#One interesting macro used in this template is maybe_link_view:

        <& macros/maybe_link_view, %ARGS, item=>$item->$col &>

<%doc> This tests whether or not the returned value is an object, and if so, creates a link to a page viewing that object; if not, it just displays the text as normal. The object is linked using its stringified name; by default this calls the name method, or returns the object's ID if there is no name method or other stringification method defined.

The view template also displays a list of other objects related to the first one via has_many style relationships; this is done by calling the related_accessors method - see "related_accessors" in Model - to return a list of has-many accessors. Next it calls each of those accessors, and displays the results in a table.

</%doc> <& macros/view_related, %ARGS, object=>$item &>

%#=cut

    <& macros/button, %ARGS, item=>$item, action=> "edit" &>
    <& macros/button, %ARGS, item=>$item, action=> "delete" &>
%}
<& footer, %ARGS &>