BingoX

 view release on metacpan or  search on metacpan

lib/BingoX/Chromium.pm  view on Meta::CPAN

		return $q->scrolling_list(
					-NAME		=> $qfieldname,
					-OVERRIDE	=> $qoptions->{'-OVERRIDE'}	|| 1,
					-SIZE		=> $qoptions->{'-SIZE'}		|| 6,
					-MULTIPLE	=> $qoptions->{'-MULTIPLE'}	|| 'true',
					-VALUES		=> [ keys %{$hashref} ],
					-LABELS		=> $hashref,
					-DEFAULT	=> ($q->param( $qfieldname )
								?	[ $q->param( $qfieldname ) ]
								:	(($self->displaymode eq 'modify')
										?	[
												map {
														$_->cpkey()
													} @$selected
											]
										: ($qoptions->{'-DEFAULT'} || [ ])))
				) . "\n";
	}
} # END sub HTML_scrolling


=item C<HTML_checkbox> ( $fieldname [, $qoptions ] )

Object Method:

Generic form field method called by AUTOLOAD.  
Gets the default field params based on the fieldname and returns the value 
in a checkbox field or in viewable format if the displaymode is 'view'.

Note: Not used yet because its not easy to populate the 
vaules & labels fields. USually always overloaded in the subclasses.

=cut

sub HTML_checkbox {
	my $self		= shift;
	return undef unless ref($self);
	my $fieldname	= shift;
	my $qoptions	= shift || $self->fieldhtmloptions( $fieldname );
	my $q			= $self->cgi;
	my $qfieldname	= $self->qfieldname( $fieldname );
	($self->displaymode eq 'view')
	? $self->db_obj->$fieldname()
	: $q->checkbox(
			-NAME		=> $qfieldname,
			-CHECKED	=> $self->displaymode eq 'modify'
						?	$self->db_obj->$fieldname()
						:	$qoptions->{'-CHECKED'},
			-VALUE		=> $qoptions->{'-VALUE'} || '1',
			-LABEL		=> $qoptions->{'-LABEL'} || ''
		);
} # END sub HTML_checkbox


=item C<HTML_file> ( $fieldname [, $qoptions ] )

Object Method:

Generic form field method called by AUTOLOAD.  
Gets the default field params based on the fieldname and returns the value 
in a form file upload field or in viewable format if the displaymode is 'view'.

=cut

sub HTML_file {
	my $self		= shift;
	return undef unless ref($self);
	my $fieldname	= shift;
	my $qoptions	= shift || $self->fieldhtmloptions( $fieldname );
	my $q = $self->cgi;
	my $qfieldname	= $self->qfieldname( $fieldname );
	($self->displaymode eq 'view')
	? $self->db_obj->$fieldname()
	: $q->filefield(
			-NAME		=> $qfieldname,
			-SIZE		=> $qoptions->{'-SIZE'}			|| 40,
			-MAXLENGTH	=> $qoptions->{'-MAXLENGTH'}	|| 200,
			-OVERRIDE	=> 1,
			-DEFAULT	=> ''	# browsers null defaults in upload fields anyway
		);
} #END sub HTML_file


=back

=head2 SANITY METHODS

These methods can be overridden at any level to provide customized sanity 
checking. These methods always return an error message on failure, and an 
empty string on success.

=over 4

=item C<sane_regex> ( $data, $regex [, $error ] )

If C<$data> matches the regular expression in C<$regex>, returns an empty 
string. Otherwise, returns C<$error> or a default error message.

=cut

sub sane_regex {
	my $self	= shift;
	my $data	= shift;
	my $regex	= shift;
	my $error	= shift || 'Not correctly formatted.';
	warn("sane_regex('$data', '$regex', '$error')\n") if $debug > 2;
	return $error unless $data =~ /$regex/;
	return "";
} #END sub sane_regex


=item C<sane_maxlength> ( $data, $length )

Makes sure that C<$data> is no more than C<$length> characters long. Returns 
an error message on failure, an empty string on success.

=cut

sub sane_maxlength {
	my $self	= shift;
	my $data	= shift;
	my $length	= shift;
	warn("sane_maxlength('$data', $length)\n") if $debug > 2;
	return "Exceeds $length characters in length." unless (length($data) <= $length);
	return "";
} #END sub sane_maxlength


=item C<sane_minlength> ( $data, $length )

Makes sure that C<$data> is at least C<$length> characters long. Returns an 
error message on failure, an empty string on success.

=cut

sub sane_minlength {
	my $self	= shift;
	my $data	= shift;
	my $length	= shift;



( run in 1.414 second using v1.01-cache-2.11-cpan-b16cb0d3907 )