HTML::Shakanの使い方とか
#!perl use strict; use warnings; package My::Form; use HTML::Shakan::Declare; form 'add' => ( TextField( name => 'name', label => 'name', constraints => [ [ 'REGEXP' => qr/^[\w]+$/ ], ], ), ); package main; use CGI; use Text::Xslate qw/mark_raw/; use Data::Section::Simple; my $vpath = Data::Section::Simple->new()->get_data_section(); my $tx = Text::Xslate->new( path => [$vpath] ); my $q = CGI->new;$q->param(name => 'hogehoge'); my $form = My::Form->get( 'add' => ( request => $q, ) ); my $html; if ($form->submitted_and_valid) { $html = $form->render(); } else { $html = 'not valid'; } my %var = ( html => mark_raw($html) ); print $tx->render('index.xt', \%var); __DATA__ @@ index.xt <: $html :>
基本は以上。これでformのvalueとかは勝手に埋まってくれる。
Fieldのオプションは
$ perldoc HTML::Shakan::Field
使えるfieldの種類は
$ perldoc HTML::Shakan::Fields
constraintsについては
$ perldoc FormValidator::Lite::Constraint::Default $ perldoc FormValidator::Lite::Constraint::Email $ perldoc FormValidator::Lite::Constraint::URL $ perldoc FormValidator::Lite::Constraint::Date $ perldoc FormValidator::Lite::Constraint::File
あたりを参照するとだいたいわかる