Package: libcgi-formbuilder-perl Version: 3.04.01-1 This new upstream version of CGI::FormBuilder is broken. I mailed the message below to the upstream mailing list when I became aware of the breakage, but there has been no reply. I had to work around this bug in ikiwiki using the ugly hack described below.
(This is not the only way that this new upstream version broke ikiwiki,
but the others are harder to write good bug reports about, especially
since I'm still scrambling to fix most of them and avoid ikiwiki getting
kicked out of the etch release due to not working right anymore...)
----- Forwarded message from Joey Hess <[EMAIL PROTECTED]> -----
From: Joey Hess <[EMAIL PROTECTED]>
Date: Fri, 10 Nov 2006 15:04:42 -0500
To: [EMAIL PROTECTED]
Subject: CGI::FormBuilder 3.0401 broke FORM-SUBMIT?
User-Agent: Mutt/1.5.13 (2006-08-11)
I have a form with a customised template that contains this:
<TMPL_VAR FORM-SUBMIT>
Which is expanded to all the submit buttons in previous versions of
CGI::FormBuilder. Apparently version 3.0401 has broken this. A small
testcase:
#!/usr/bin/perl
my @fields=qw(editcontent);
my @buttons=("Save", "Preview", "Cancel");
use CGI::FormBuilder;
my $form = CGI::FormBuilder->new(
fields => [EMAIL PROTECTED],
template => "foo.tmpl",
);
print $form->render(submit => [EMAIL PROTECTED]);
If I put the above template fragment into foo.tmpl and run this, it dies:
HTML::Template::param() : attempt to set parameter 'form-submit' with a scalar
- parameter is not a TMPL_VAR! at /usr/share/perl5/CGI/FormBuilder.pm line 1337
Some debugging shows that CGI::FormBuilder::Template::HTML::render is doing
this:
HTML::Template::param('undef', 'form-submit', 'ARRAY(0x847a058)') called
at /usr/local/share/perl/5.8.4/CGI/FormBuilder/Template/HTML.pm line 155
CGI::FormBuilder::Template::HTML::render('CGI::FormBuilder::Template::HT
ML=HASH(0x86507fc)', 'CGI::FormBuilder=HASH(0x86ca734)') called at /usr/local/sh
are/perl/5.8.4/CGI/FormBuilder.pm line 1415
CGI::FormBuilder::render('CGI::FormBuilder=HASH(0x86ca734)', 'submit', '
ARRAY(0x847a058)') called at /usr/local/share/perl/5.8.4/IkiWiki/CGI.pm line 586
IkiWiki::cgi_editpage('CGI=HASH(0x84579d8)', 'CGI::Session::DB_File=HASH
(0x84f1a80)') called at /usr/local/share/perl/5.8.4/IkiWiki/CGI.pm line 728
IkiWiki::cgi() called at /usr/local/bin/ikiwiki line 107
IkiWiki::main() called at /usr/local/bin/ikiwiki line 133
The array contains my three buttons that I passed in to the form. But
it's only valid to pass an array into HTML::Template::param if the array
contains data to set up a TMPL_LOOP .. which it doesn't. Also, the docs
don't say anything about using a TMPL_LOOP for FORM-SUBMIT.
The end result seems to be that FORM-SUBMIT is not usable at all in a
customised template with this version of CGI::FormBuilder.
--
see shy jo
----- End forwarded message -----
--
see shy jo
signature.asc
Description: Digital signature

