X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=templates%2Ffactory%2Fmacros;h=8743afc4d1fe53b7e7e9d83abda195288a365395;hb=373d926f352c8fdfd62279cfc1b41b7c17c88522;hp=367d74faaeaea8e69bfcab9163754694e03c01f1;hpb=e72c221ab5ef5973233bbfb2fa710c993f2be87d;p=maypole.git diff --git a/templates/factory/macros b/templates/factory/macros index 367d74f..8743afc 100644 --- a/templates/factory/macros +++ b/templates/factory/macros @@ -62,7 +62,8 @@ for some. ELSIF col == item.stringify_column; maybe_link_view(item); ELSE; - maybe_link_view(item.$col); + accessor = item.accessor_name(col); + maybe_link_view(item.$accessor); END; ""; END; @@ -117,3 +118,57 @@ MACRO test_xxxx(myblock) BLOCK; END; END; %] +[%# + +=head2 view_item + +This takes an object and and displays its properties in a table. + +=cut + +#%] +[% MACRO view_item(item) BLOCK; %] + [% SET string = item.stringify_column %] +
[% classmetadata.colnames.$string %] | +[% item.$string %] | +
[% classmetadata.colnames.$col; %] | +
+ [% IF col == "url" && item.url; # Possibly too much magic.
+ ' '; item.url; '';
+ ELSE;
+ maybe_link_view(item.$col);
+ END; %]
+[%#
+
+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 C |
+