X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=doc%2FStandardTemplates.pod;h=e5eb9f06b2f32aeaebde9438469bb90301b9b2d1;hb=0f0ccfbbe2488b34841e5af2ecedd9f256c8489f;hp=9a933bdd106450cdeb1ed8f09b4d987f08413802;hpb=ce776d474df109def560a589e8f08af965b3c45e;p=maypole.git diff --git a/doc/StandardTemplates.pod b/doc/StandardTemplates.pod index 9a933bd..e5eb9f0 100644 --- a/doc/StandardTemplates.pod +++ b/doc/StandardTemplates.pod @@ -176,7 +176,6 @@ is then sent back to the C template. if (my %errors = $obj->cgi_update_errors) { # Set it up as it was: - warn "There were errors: ".Dumper(\%errors)."\n"; $r->{template_args}{cgi_params} = $r->{params}; $r->{template_args}{errors} = \%errors; $r->{template} = "edit"; @@ -240,7 +239,8 @@ The beauty of the factory specified templates is that they make use of the classes' metadata as supplied by the view class. Although you're strongly encouraged to write your own templates, in which you don't need to necessarily be as generic, the factory templates will always do the -right thing for any class without further modification. +right thing for any class without further modification, and as such are +useful examples of how to build Maypole templates. =head3 Commonalities @@ -252,10 +252,37 @@ macros as we come across them. =head3 F -The C template takes some objects (usually just one) from -C and displays the object's properties in a table. It also -displays a list of other objects related to the first one via -C style relationships. +=template view =head3 F + +The F template is pretty much the same as F, but it uses the +C method on each column of an object to return a C +object representing a form element to edit that property. These elements +are then rendered to HTML with C. It expects to see a list of +editing errors, if any, in the C template variable: + + FOR col = classmetadata.columns; + NEXT IF col == "id"; + "

"; + ""; classmetadata.colnames.$col; ""; + ": "; + item.to_field(col).as_HTML; + "

"; + IF errors.$col; + ""; errors.$col; ""; + END; + END; + =head3 F + +Browsing records and search results are both handled by the F template. +The C template argument is used to distinguish between the two cases: + + [% IF search %] +

Search results

+ [% ELSE %] +

Listing of all [% classmetadata.plural %]

+ [% END %] + +=head1 Customizing Generic CRUD Applications