X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FRecord.pm;h=978ea72e7f00861781b569a98bad74929be3e77f;hb=52a07a405e197fda1654fc61eefa538450f269e8;hp=0bd7aeda46eee853503cbf34a4dec6f0cf078969;hpb=d4dabf21a2c9022dfb7023fb5df49f1536b2f29a;p=freeside.git diff --git a/FS/FS/Record.pm b/FS/FS/Record.pm index 0bd7aeda4..978ea72e7 100644 --- a/FS/FS/Record.pm +++ b/FS/FS/Record.pm @@ -12,6 +12,7 @@ use DBI qw(:sql_types); use DBIx::DBSchema 0.19; use FS::UID qw(dbh checkruid getotaker datasrc driver_name); use FS::SearchCache; +use FS::msgcat qw(gettext); @ISA = qw(Exporter); @EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef jsearch); @@ -398,32 +399,32 @@ $record->column('value') is a synonym for $record->set('column','value'); =cut # readable/safe -#sub AUTOLOAD { -# my($self,$value)=@_; -# my($field)=$AUTOLOAD; -# $field =~ s/.*://; -# if ( defined($value) ) { -# confess "errant AUTOLOAD $field for $self (arg $value)" -# unless $self->can('setfield'); -# $self->setfield($field,$value); -# } else { -# confess "errant AUTOLOAD $field for $self (no args)" -# unless $self->can('getfield'); -# $self->getfield($field); -# } -#} - -# efficient sub AUTOLOAD { - my $field = $AUTOLOAD; + my($self,$value)=@_; + my($field)=$AUTOLOAD; $field =~ s/.*://; - if ( defined($_[1]) ) { - $_[0]->setfield($field, $_[1]); + if ( defined($value) ) { + confess "errant AUTOLOAD $field for $self (arg $value)" + unless $self->can('setfield'); + $self->setfield($field,$value); } else { - $_[0]->getfield($field); + confess "errant AUTOLOAD $field for $self (no args)" + unless $self->can('getfield'); + $self->getfield($field); } } +# efficient +#sub AUTOLOAD { +# my $field = $AUTOLOAD; +# $field =~ s/.*://; +# if ( defined($_[1]) ) { +# $_[0]->setfield($field, $_[1]); +# } else { +# $_[0]->getfield($field); +# } +#} + =item hash Returns a list of the column/value pairs, usually for assigning to a new hash. @@ -825,7 +826,8 @@ false. sub ut_text { my($self,$field)=@_; $self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]+)$/ - or return "Illegal or empty (text) $field: ". $self->getfield($field); + or return gettext('illegal_or_empty_text'). " $field: ". + $self->getfield($field); $self->setfield($field,$1); ''; } @@ -841,7 +843,7 @@ May be null. If there is an error, returns the error, otherwise returns false. sub ut_textn { my($self,$field)=@_; $self->getfield($field) =~ /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/]*)$/ - or return "Illegal (text) $field: ". $self->getfield($field); + or return gettext('illegal_text'). " $field: ". $self->getfield($field); $self->setfield($field,$1); ''; } @@ -896,7 +898,7 @@ sub ut_phonen { } elsif ( $country eq 'US' || $country eq 'CA' ) { $phonen =~ s/\D//g; $phonen =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/ - or return "Illegal (phone) $field: ". $self->getfield($field); + or return gettext('illegal_phone'). " $field: ". $self->getfield($field); $phonen = "$1-$2-$3"; $phonen .= " x$4" if $4; $self->setfield($field,$phonen); @@ -947,7 +949,7 @@ Check/untaint host and domain names. sub ut_domain { my( $self, $field ) = @_; #$self->getfield($field) =~/^(\w+\.)*\w+$/ - $self->getfield($field) =~/^(\w+\.)*\w+$/ + $self->getfield($field) =~/^(([\w\-]+\.)*\w+)$/ or return "Illegal (domain) $field: ". $self->getfield($field); $self->setfield($field,$1); ''; @@ -965,7 +967,7 @@ May not be null. sub ut_name { my( $self, $field ) = @_; $self->getfield($field) =~ /^([\w \,\.\-\']+)$/ - or return "Illegal (name) $field: ". $self->getfield($field); + or return gettext('illegal_name'). " $field: ". $self->getfield($field); $self->setfield($field,$1); ''; } @@ -980,12 +982,12 @@ sub ut_zip { my( $self, $field, $country ) = @_; if ( $country eq 'US' ) { $self->getfield($field) =~ /\s*(\d{5}(\-\d{4})?)\s*$/ - or return "Illegal (zip) $field for country $country: ". + or return gettext('illegal_zip'). " $field for country $country: ". $self->getfield($field); $self->setfield($field,$1); } else { $self->getfield($field) =~ /^\s*(\w[\w\-\s]{2,8}\w)\s*$/ - or return "Illegal (zip) $field: ". $self->getfield($field); + or return gettext('illegal_zip'). " $field: ". $self->getfield($field); $self->setfield($field,$1); } '';