X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FManual%2FTutorial%2F09_AdvancedCRUD%2F09_FormFu.pod;h=e3b5a0dc3eda053f37a7b3ff7dff08a8fefff5e3;hb=16d0d3969b36142004136ddb3e50b8cf499ab7e2;hp=680feaea12655cd595e367b3c46fdb2544ad8f9e;hpb=ec3ef4ad2ba72cc751c8c5eccccb705602d87d09;p=catagits%2FCatalyst-Manual.git diff --git a/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod b/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod index 680feae..e3b5a0d 100644 --- a/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod +++ b/lib/Catalyst/Manual/Tutorial/09_AdvancedCRUD/09_FormFu.pod @@ -56,28 +56,26 @@ L =head1 DESCRIPTION -This portion of the tutorial explores L and -how it can be used to manage forms, perform validation of form input, -as well as save and restore data to/from the database. This was written -using HTML::FormFu version 0.05001. +This portion of the tutorial explores L and how it can be +used to manage forms, perform validation of form input, as well as save +and restore data to/from the database. This was written using +HTML::FormFu version 0.05001. -See -L -for additional form management options other than -L. +See L for additional form +management options other than L. =head1 HTML::FormFu FORM CREATION -This section looks at how L can be used to -add additional functionality to the manually created form from Chapter 4. +This section looks at how L can be used to add additional +functionality to the manually created form from Chapter 4. =head2 Inherit From Catalyst::Controller::HTML::FormFu First, change your C to inherit from -L -by changing the C line from the default of: +L by changing the C line +from the default of: BEGIN {extends 'Catalyst::Controller'; } @@ -107,7 +105,7 @@ following method: # Get the form that the :FormConfig attribute saved in the stash my $form = $c->stash->{form}; - + # Check if the form has been submitted (vs. displaying the initial # form) and if the data passed validation. "submitted_and_valid" # is shorthand for "$form->submitted && !$form->has_errors" @@ -134,7 +132,7 @@ following method: # Add the authors to it $select->options(\@authors); } - + # Set the template $c->stash(template => 'books/formfu_create.tt2'); } @@ -143,12 +141,12 @@ following method: =head2 Create a Form Config File Although C supports any configuration file handled by -L, most people tend to use YAML. First -create a directory to hold your form configuration files: +L, most people tend to use YAML. First create a directory +to hold your form configuration files: mkdir -p root/forms/books -Then create the file C and enter the +Then create the file C and enter the following text: --- @@ -186,15 +184,15 @@ following text: name: submit value: Submit -B Copying and pasting YAML from perl documentation is sometimes +B Copying and pasting YAML from Perl documentation is sometimes tricky. See the L section of this document for a more foolproof config format. =head2 Update the CSS -Edit C and add the following lines to the bottom of -the file: +Edit C and add the following lines to the +bottom of the file: ... input { @@ -208,16 +206,13 @@ the file: display: block; } -These changes will display form elements vertically. Note that the -existing definition of the C<.error> class is pulling the color scheme -settings from the C file that was created by the -TTSite helper. This allows control over the CSS color settings from a -single location. +These changes will display form elements vertically. =head2 Create a Template Page To Display The Form -Open C in your editor and enter the following: +Open C in your editor and enter the +following: [% META title = 'Create/Update Book' %] @@ -239,8 +234,8 @@ the bottom of the existing file: Create

-This adds a new link to the bottom of the book list page that we can -use to easily launch our HTML::FormFu-based form. +This adds a new link to the bottom of the book list page that we can use +to easily launch our HTML::FormFu-based form. =head2 Test The HTML::FormFu Create Form @@ -261,12 +256,12 @@ Click the Submit button, and you will be returned to the Book List page with a "Book created" status message displayed. Also note that this implementation allows you to create books with any -bogus information. Although we have constrained the authors with the -drop-down list (note that this isn't bulletproof because we still have -not prevented a user from "hacking" the form to specify other values), -there are no restrictions on items such as the length of the title (for -example, you can create a one-letter title) and the value of the rating -(you can use any number you want, and even non-numeric values with +bogus information. Although we have constrained the authors with the +drop-down list (note that this isn't bulletproof because we still have +not prevented a user from "hacking" the form to specify other values), +there are no restrictions on items such as the length of the title (for +example, you can create a one-letter title) and the value of the rating +(you can use any number you want, and even non-numeric values with SQLite). The next section will address this concern. B Depending on the database you are using and how you established @@ -278,19 +273,18 @@ performing any validation. =head1 HTML::FormFu VALIDATION AND FILTERING -Although the use of L in the previous section -did provide an automated mechanism to build the form, the real power of -this module stems from functionality that can automatically validate and -filter the user input. Validation uses constraints to be sure that -users input appropriate data (for example, that the email field of a -form contains a valid email address). Filtering can also be used to -remove extraneous whitespace from fields or to escape meta-characters in -user input. +Although the use of L in the previous section did provide +an automated mechanism to build the form, the real power of this module +stems from functionality that can automatically validate and filter the +user input. Validation uses constraints to be sure that users input +appropriate data (for example, that the email field of a form contains a +valid email address). Filtering can also be used to remove extraneous +whitespace from fields or to escape meta-characters in user input. =head2 Add Constraints -Open C in your editor and update it +Open C in your editor and update it to match: --- @@ -376,7 +370,7 @@ to match: # Escape HTML characters for safety - HTMLEscape -B Copying and pasting YAML from perl documentation is sometimes +B Copying and pasting YAML from Perl documentation is sometimes tricky. See the L section of this document for a more foolproof config format. @@ -387,39 +381,37 @@ The main changes are: =item * The C