[html-formfu] position element not found

Gabor HALASZ halasz.g at freemail.hu
Tue Jan 10 10:22:51 GMT 2012


On 1/10/2012 10:56 AM, Carl Franks wrote:
> On 10 January 2012 09:16, Gabor HALASZ<halasz.g at freemail.hu>  wrote:
>> On 1/10/2012 9:38 AM, Carl Franks wrote:
>>>
>>> Hi,
>>> Can you provide the config / code which sets-up the form,  and the rest
>>> of your code which looks like it's cut off mid-line?
>>
>>
>> Hi!
>>
>> My configs:
>>
>> picture/manage.conf:
>>
>> <<include                       ../common/filter.conf>>
>> <elements>
>>     type                        Block
>>     <attributes>
>>         id                      fieldbox
>>         class                   fifty
>>     </attributes>
>>     <elements>
>>         type                    Block
>>         tag                     label
>>         content_loc             form.config.label.picture.manage.fieldset
>>     </elements>
>>     <elements>
>>         type                    Fieldset
>>         <attributes>
>>             class               placeholder
>>         </attributes>
>>
>>         <elements>
>>             <<include           ../common/element/file.picture.conf>>
>>         </elements>
>>
>>     </elements>
>> </elements>
>>
>> The included elements:
>>
>> common/filter.conf:
>>
>> filter                          TrimEdges
>> filter                          HTMLEscape
>> filter                          HTMLScrubber
>>
>> common/element/file.picture.conf:
>>
>> type                            File
>> name                            image
>> label_loc                       form.element.label.picture
>> <attributes>
>>     title                       form.element.title.picture
>> </attributes>
>> <constraints>
>>     type                        File::MIME
>>     types                       image/bmp
>>     types                       image/gif
>>     types                       image/jpeg
>>     types                       image/png
>>     types                       image/tiff
>> </constraints>
>> <constraints>
>>     type                        File::MinSize
>>     min                         32768
>> </constraints>
>> <constraints>
>>     type                        File::MaxSize
>>     max                         524288
>> </constraints>
>>
>> My Ctalyst controller:
>>
>> =head2 manage
>>
>>   Picture manager logic
>>
>> =cut
>>
>> sub manage : Chained( 'base' ) : PathPart( 'manage' ) : Args( 0 ) : Form {
>>     my ( $self, $c ) = @_;
>>
>>     $c->stash->{title} = 'template.title.picture.manage';
>>
>>     $c->stash->{form}->load_config_file('picture/manage.conf');
>>
>>
>>     if ( exists $c->flash->{productId} ) {
>>
>>         my $position = $c->stash->{form}->get_all_element({ type =>  'File',
>> });
>> #        my $position = $c->stash->{form}->get_all_element;
>>
>> use Data::Dumper;
>> $c->log->debug( 'HIER: ' . $position );
>>
>>         $c->stash->{form}->insert_after( $c->stash->{form}->element( {
>>                 name =>  '5',
>>                 src  =>  $c->uri_for( '/api/getproducticon/' .
>> $c->flash->{productId} ),
>>                 type =>  'Image',
>>             } ), $position );
>>
>>     }
>>     else {
>>         $c->model('Event')->error;
>>         $c->detach('/forbidden');
>>     }
>>
>>     $c->stash->{form}->process;
>>
>>
>>     return;
>> }
>>
>> Thanks
>
> Ah, it's the old FAQ :) - you need to call insert_after() on the
> parent of $position, not the $form object.

I read the current documentation on cpan:

http://search.cpan.org/~perler/HTML-FormFu-0.09005/lib/HTML/FormFu.pm#insert_before

Please, correct it, if possible!

> So, do this:
>
>      $position->parent->insert_after( \%new_spec, $position );
>

Thanks :) My last question today: I created a simple element/constraint 
pair for my app to protect form's hidden fields (with sha1 checksum) 
from malicious users. What do you think, its maybe interesting to publish?




More information about the HTML-FormFu mailing list