Rechercher une page de manuel
Net::LDAP::HTMLWidget.3pm
Langue: en
Version: 2008-01-02 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
NAME
Net::LDAP::HTMLWidget - Like FromForm but with Net::LDAP and HTML::WidgetSYNOPSIS
You'll need a working Net::LDAP setup and some knowledge of HTML::Widget and Catalyst. If you have no idea what I'm talking about, check the (sparse) docs of those modules.package My::Controller::Pet; # Catalyst-style # define the widget in a sub (DRY) sub widget_pet { my ($self,$c)=@_; my $w=$c->widget('pet')->method('get'); $w->element('Textfield','name')->label('Name'); $w->element('Textfield','age')->label('Age'); ... return $w; } # this renders an edit form with values filled in from the DB sub edit : Local { my ($self,$c,$id)=@_; # get the object my $item=$c->model('LDAP')->search(uid=>$id); $c->stash->{item}=$item; # get the widget my $w=$self->widget_pet($c); $w->action($c->uri_for('do_edit/'.$id)); # fill widget with data from DB Net::LDAP::HTMLWidget->fill_widget($item,$w); } sub do_edit : Local { my ($self,$c,$id)=@_; # get the object from DB my $item=$c->model('LDAP')->search(uid=>$id); $c->stash->{item}=$item; $ get the widget my $w=$self->widget_pet($c); $w->action($c->uri_for('do_edit/'.$id)); # process the form parameters my $result = $w->process($c->req); $c->stash->{'result'}=$result; # if there are no errors save the form values to the object unless ($result->has_errors) { Net::LDAP::HTMLWidget->populate_from_widget($item,$result); $c->res->redirect('/users/pet/'.$id); } }
DESCRIPTION
Something like Class::DBI::FromForm / Class::DBI::FromCGI but using HTML::Widget for form creation and validation and Net::LDAP.Methods
fill_widget $item, $widget
Fill the values of a widgets elements with the values of the LDAP object.
populate_from_widget $item, $results, $ldap_connection
Updates the $item with new values from $result and updated using $ldap_connection.
CHARACTER ENCODING
As a result of utf-8 handling in general beeing a pain in the ass, we also provide an bad hack to work around certain odities.We have a package scoped variabel called DECODE which, if set, will cause values from the ldap-server to be decoded from that encoding to perls internal string format before it gets added to the HTML::Widget
Example
package MyApp::LDAP::Entry; use base qw/Net::LDAP::HTMLWidget/; $Net::LDAP::HTMLWidget::DECODE = 'utf-8'; 1;
AUTHOR
Thomas Klausner, <domm@cpan.org>, http://domm.zsi.at Marcus Ramberg, <mramberg@cpan.org> Andreas Marienborg, <andremar@cpan.org>LICENSE
This code is Copyright (c) 2003-2006 Thomas Klausner. All rights reserved.You may use and distribute this module according to the same terms that Perl is distributed under.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre