X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ex%2Ffancy_example%2Ftemplates%2Ffactory%2Fmacros;fp=ex%2Ffancy_example%2Ftemplates%2Ffactory%2Fmacros;h=0000000000000000000000000000000000000000;hb=79aa8d27d124d06bf88b2fc0487ae97563b98936;hp=fc75d09cc36bf9e380c74ce7adf6289b0dc8280d;hpb=1c8db728a3fb5adb4f0ea876ea1316457700edf8;p=maypole.git diff --git a/ex/fancy_example/templates/factory/macros b/ex/fancy_example/templates/factory/macros deleted file mode 100644 index fc75d09..0000000 --- a/ex/fancy_example/templates/factory/macros +++ /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 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; - ''; - label | html; - ""; -END; -%] - -[%# - -=head2 maybe_link_view - -C 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 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 column by default, and magically -URLifies columns called C. 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); - ""; - IF col == "url" AND item.url; - ' '; item.url; ''; - 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; - - ""; - END; - ''; - button(item, "edit"); - button(item, "delete"); - ""; -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) %] -
-
-[% END %] -[% END %] -[%# - -=head2 view_related - -This takes an object, and looks up the C; 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; - "
"; accessor | ucfirst; "
\n"; - "
    "; - FOR thing = object.$accessor; - "
  • "; maybe_link_view(thing); "
  • \n"; - END; - "
"; - 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 %] -
[% item.$string | html %]
- [% INCLUDE navbar %] - - - - - - [% 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 method: - -#%] - - - - - [% END; %] -
[% classmetadata.colnames.$string %][% item.$string | html %]
[% classmetadata.colnames.$col || - col | ucfirst | replace('_',' '); %] - [% IF col == "url" && item.url; # Possibly too much magic. - ' '; item.url; ''; - 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 method, or returns the object's ID -if there is no C method or other stringification method defined. - -=cut - -#%] -
-[% END %]