...or add a new option to skip auto-adding classes :) Probably the least work for this specific case, though maybe not if there are many more changes required for bootstrap
On 4 April 2012 15:11, Brian Cassidy <brian.cass...@gmail.com> wrote: > On Wed, Apr 4, 2012 at 10:30 AM, abhishek jain > <abhishek.netj...@gmail.com> wrote: >> I don’t want the default values: i just want <div class="row "> > > Ah yes, it's all becoming clear now -- this is an inherent problem > with how FormFu does its rendering. > > Before I try to reason this all out, I should tell you that I'm also > playing around with Twitter's Bootstrap framework [1] in conjunction > with FormFu forms -- more on that later. > > So, the way I've traditionally rendered forms was by simply using the > render() method. I was always pleased with the output. But as you've > noted, the current output does not match what Bootstrap wants. > > If you look closely at the Role::Element::Field source code, you'll > see this (shortened slightly to save space): > > sub _render_container_class { > my ( $self, $render ) = @_; > my $type = $self->type; > $type =~ s/:://g; > append_xml_attribute( $render->{container_attributes}, 'class', > lc($type), ); > return; > } > > This means that no matter what you put in your config for this form, > it will *always* add a class for the type of element we're dealing > with (text, for e.g.). the "del_container_attrs" method will have no > effect due to the fact that it is called when the config file is read, > which happens before you render anything. > > IMO, this means that string rendering is out. > > Side bar: Also, IMHO, rendering should be done via a completely > different set of modules -- which means you could do: > > my $r = HTML::FormFu::Renderer::Basic->new; > print $r->render( $form ); > > Or write a bootstrap specific renderer for our purposes. (Note: > render() could be a simple wrapper around the above for compatibility) > > Anyway, back on track. Next we try the TT rendering method. > Unfortunately, the same data is injected into the attribute list. > > Thus, we have to make our own set of templates! ...and that's where > I'm at. I have a set of custom templates that *seem* to work okay with > the bootstrap framework, in my limited testing. > > I would be happy to share them with you off-list if you would like. > Eventually it would be nice to put them up on github or the like for > everyone to use. > > I think the takeaway here is that if you want radically customized > templates you either have to create your own rendering method which > circumvents the built-ins, or use a custom set of templates. > > Hope that helps! > > [1] for those of you not aware of Bootstrap: > http://twitter.github.com/bootstrap/ > > -- > Brian Cassidy (brian.cass...@gmail.com) > > _______________________________________________ > HTML-FormFu mailing list > HTML-FormFu@lists.scsys.co.uk > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu