]> git.decadent.org.uk Git - maypole.git/blobdiff - ex/fancy_example/templates/factory/macros
moved ex to examples, fix to edit template
[maypole.git] / ex / fancy_example / templates / factory / macros
diff --git a/ex/fancy_example/templates/factory/macros b/ex/fancy_example/templates/factory/macros
deleted file mode 100644 (file)
index fc75d09..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-[%#
-
-=head1 MACROS
-
-These are some default macros which are used by various templates in the
-system.
-
-=head2 link
-
-This creates an <A HREF="..."> to a command in the Apache::MVC system by
-catenating the base URL, table, command, and any arguments.
-
-#%]
-[%
-MACRO link(table, command, additional, label) BLOCK;
-    SET lnk = base _ "/" _ table _ "/" _ command _ "/" _ additional;
-    lnk = lnk | uri | html;
-    '<a href="' _ lnk _ '">';
-    label | html;
-    "</a>";
-END;
-%]
-
-[%#
-
-=head2 maybe_link_view
-
-C<maybe_link_view> takes something returned from the database - either
-some ordinary data, or an object in a related class expanded by a
-has-a relationship. If it is an object, it constructs a link to the view
-command for that object. Otherwise, it just displays the data.
-
-#%]
-
-[%
-MACRO maybe_link_view(object) BLOCK;
-    IF object.isa('Maypole::Model::Base');
-        link(object.table, "view", object.id.join('/'), object);
-    ELSE;
-        object | html ;
-    END;
-END;
-%]
-
-[%#
-
-=head2 display_line
-
-C<display_line> is used in the list template to display a row from the
-database, by iterating over the columns and displaying the data for each
-column. It misses out the C<id> column by default, and magically
-URLifies columns called C<url>. This may be considered too much magic
-for some.
-
-#%]
-[% MACRO display_line(item) BLOCK;
-    FOR col = classmetadata.list_columns;
-       NEXT IF col == "id" OR col == classmetadata.table _ "_id";
-       col_obj = item.find_column(col);
-        "<td>";
-        IF col == "url" AND item.url;
-            '<a href="'; item.url | html ; '"> '; item.url; '</a>';
-        ELSIF col == classmetadata.stringify_column;
-            maybe_link_view(item);
-               ELSIF col_obj; # its a real column
-            accessor = item.accessor_name_for(col_obj) ||
-                                  item.accessor_name(col_obj); # deprecated in cdbi
-            maybe_link_view(item.$accessor);
-        ELSE; 
-            item.$col;
-        END;
-
-        "</td>";
-    END;
-    '<td class="actions">';
-    button(item, "edit");
-    button(item, "delete");
-    "</td>";
-END %]
-[%#
-
-=head2 button
-
-This is a generic button, which performs an action on an object.
-
-=cut
-
-#%]
-[% MACRO button(obj, action) BLOCK; %]
-[% IF obj.is_public(action) %]
-<form class="actionform" action="[% base %]/[% obj.table %]/[% action %]/[% obj.id.join('/') %]" method="post">
-<div class="field"><input class="actionbutton" type="submit" value="[% action %]" /></div></form>
-[% END %]
-[% END %]
-[%#
-
-=head2 view_related
-
-This takes an object, and looks up the C<related_accessors>; this should
-give a list of accessors that can be called to get a list of related
-objects. It then displays a title for that accessor, (i.e. "Beers" for a
-brewery) calls the accesor, and displays a list of the results. 
-
-=cut
-
-#%]
-[% 
-MACRO view_related(object) BLOCK;
-    FOR accessor = classmetadata.related_accessors.list;
-        "<div id=\"subtitle\">"; accessor | ucfirst; "</div>\n";
-        "<ul id=\"vlist\">";
-        FOR thing = object.$accessor;
-            "<li>"; maybe_link_view(thing); "</li>\n";
-        END;
-        "</ul>";
-    END; 
-END;
-
-MACRO test_xxxx(myblock) BLOCK;
-    FOR col = classmetadata.columns;
-        NEXT IF col == "id";
-        myblock;
-    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 = classmetadata.stringify_column %]
-    <div id="title"> [% item.$string | html %]</div>
-    [% INCLUDE navbar %]
-    <table class="view">
-        <tr>
-            <td class="field">[% classmetadata.colnames.$string  %]</td>
-            <td>[% item.$string | html %]</td>
-        </tr>
-        [% FOR col = classmetadata.columns.list;
-            NEXT IF col == "id" OR col == string OR col == classmetadata.table _ "_id";;
-            NEXT UNLESS item.$col;
-        %]
-[%# 
-
-=for doc
-
-It gets the displayable form of a column's name from the hash returned
-from the C<column_names> method:
-
-#%]
-            <tr>
-                <td class="field">[% classmetadata.colnames.$col || 
-                     col | ucfirst | replace('_',' '); %]</td>
-                <td>
-                    [% IF col == "url" && item.url;  # Possibly too much magic.
-                        '<a href="'; item.url | html ; '"> '; item.url; '</a>';
-                                       ELSIF item.$col.size > 1; # has_many column
-                                               FOR thing IN item.$col; 
-                                                       maybe_link_view(thing);",  ";
-                                                END;
-
-                    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<name> method, or returns the object's ID
-if there is no C<name> method or other stringification method defined.
-
-=cut
-
-#%] 
-                </td>
-            </tr>
-        [% END; %]
-    </table>
-[% END %]