[html-formfu] DB-driven select boxes,
checkbox groups and radio groups
Daisuke Maki
daisuke at endeworks.jp
Sat Jun 30 02:13:34 GMT 2007
I've been using Catalyst::Model::FormFu for this purpose.
I wanted to keep as much as possible in the editable .yml files so my
html coders can access it easily, so I wanted to keep this type of stuff
away from .yml files.
What I ended up doing was to create a Catalyst model that filters the
config file for dynamic content, and does a replace
For example, my .yml file looks like this:
- type: select
options: __dynamic(foo)__
then, Data::Visitor is used to traverse the config file. When it
encounters a construct like __dynamic(xxx)__, it calls the appropriate
method in the model:
sub foo {
return [
... generate a construct suitable for formfu ...
]
}
The result of calling this method replaces the original __dynamic(foo)__
With built-in caching, this approach has been working very nicely for me.
--d
Brian Cassidy wrote:
> Hey All,
>
> A common theme we're running into is providing select boxes, and
> (radio|checkbox) groups with data stored in the database.
>
> Select boxes seem to be pretty easy
>
> package MyApp::Form::Element::Thingy;
>
> use base qw( HTML::FormFu::Element::select );
>
> sub new {
> my $self = shift->SUPER::new( @_ );
>
> my $c = $self->form->stash->{ context };
> my $thingies
> = $c->model( 'DB::Thingy' )->search( { foo => bar } );
>
> $self->options(
> [ {},
> map {
> { label => $_->name, value => $_->id }
> } $thingies->all
> ]
> );
>
> return $self;
> }
>
> 1;
>
> Is this good idea? Is there a recommended way?
>
> Creating a group of checkboxes and/or radio buttons from a db table
> seems to be a much harder problem -- is there a recommended solution for
> that as well?
>
> -Brian
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>
More information about the HTML-FormFu
mailing list