5 The C<view> template takes some objects (usually just one) from
6 C<objects> and displays the object's properties in a table.
13 [% FOR item = objects %]
14 [% SET string = item.stringify_column %]
15 <div id="title"> [% item.$string %]</div>
19 <td class="field">[% classmetadata.colnames.$string %]</td>
20 <td>[% item.$string %]</td>
22 [% FOR col = classmetadata.columns.list;
23 NEXT IF col == "id" OR col == string;
24 NEXT UNLESS item.$col;
30 It gets the displayable form of a column's name from the hash returned
31 from the C<column_names> method:
35 <td class="field">[% classmetadata.colnames.$col; %]</td>
37 [% IF col == "url" && item.url; # Possibly too much magic.
38 '<a href="'; item.url; '"> '; item.url; '</a>';
40 maybe_link_view(item.$col);
44 This tests whether or not the returned value is an object, and if so,
45 creates a link to a page viewing that object; if not, it just displays
46 the text as normal. The object is linked using its stringified name;
47 by default this calls the C<name> method, or returns the object's ID
48 if there is no C<name> method or other stringification method defined.
61 The C<view> template also displays a list of other objects related to the first
62 one via C<has_many> style relationships; this is done by calling the
63 C<related_accessors> method - see L<Model/related_accessors> - to return
64 a list of has-many accessors. Next it calls each of those accessors, and
65 displays the results in a table.
68 <br /><a href="[%base%]/[%item.table%]/list">Back to listing</a>
69 [% view_related(item); %]
73 button(item, "delete");