[freeside-commits] branch FREESIDE_3_BRANCH updated. a792cb684abd3f132c683821416e4c97a7ee471c
Mark Wells
mark at 420.am
Mon Feb 10 17:14:58 PST 2014
The branch, FREESIDE_3_BRANCH has been updated
via a792cb684abd3f132c683821416e4c97a7ee471c (commit)
from 3be3e98fde6ea3d19e843551e960f77c41e2fba2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a792cb684abd3f132c683821416e4c97a7ee471c
Author: Mark Wells <mark at freeside.biz>
Date: Mon Feb 10 17:14:49 2014 -0800
missing file for date_format localization
diff --git a/FS/FS/cust_main_Mixin.pm b/FS/FS/cust_main_Mixin.pm
index 92dea28..769b049 100644
--- a/FS/FS/cust_main_Mixin.pm
+++ b/FS/FS/cust_main_Mixin.pm
@@ -7,6 +7,7 @@ use FS::UID qw(dbh);
use FS::cust_main;
use FS::Record qw( qsearch qsearchs );
use FS::Misc qw( send_email generate_email );
+use HTML::Entities;
$DEBUG = 0;
$me = '[FS::cust_main_Mixin]';
@@ -582,16 +583,31 @@ sub mt {
return $lh->maketext(@_);
}
-=item time2str_local FORMAT, TIME
+=item time2str_local FORMAT, TIME[, ESCAPE]
Localizes a date (see L<Date::Language>) for the customer's locale.
+FORMAT can be a L<Date::Format> string, or one of these special words:
+
+- "short": the value of the "date_format" config setting for the customer's
+ locale, defaulting to "%x".
+- "rdate": the same as "short" except that the default has a four-digit year.
+- "long": the value of the "date_format_long" config setting for the
+ customer's locale, defaulting to "%b %o, %Y".
+
+ESCAPE, if specified, is one of "latex" or "html", and will escape non-ASCII
+characters and convert spaces to nonbreaking spaces.
+
=cut
sub time2str_local {
# renamed so that we don't have to change every single reference to
# time2str everywhere
my $self = shift;
+ my ($format, $time, $escape) = @_;
+ return '' unless $time > 0; # work around time2str's traditional stupidity
+
+ $self->{_date_format} ||= {};
if (!exists($self->{_dh})) {
my $cust_main = $self->cust_main;
my $locale = $cust_main->locale if $cust_main;
@@ -601,7 +617,31 @@ sub time2str_local {
Date::Language->new(); # fall back to English
$self->{_dh} = $dh;
}
- $self->{_dh}->time2str(@_);
+
+ if ($format eq 'short') {
+ $format = $self->{_date_format}->{short}
+ ||= $self->conf->config('date_format') || '%x';
+ } elsif ($format eq 'rdate') {
+ $format = $self->{_date_format}->{rdate}
+ ||= $self->conf->config('date_format') || '%m/%d/%Y';
+ } elsif ($format eq 'long') {
+ $format = $self->{_date_format}->{long}
+ ||= $self->conf->config('date_format_long') || '%b %o, %Y';
+ }
+
+ # actually render the date
+ my $string = $self->{_dh}->time2str($format, $time);
+
+ if ($escape) {
+ if ($escape eq 'html') {
+ $string = encode_entities($string);
+ $string =~ s/ +/ /g;
+ } elsif ($escape eq 'latex') { # just do nbsp's here
+ $string =~ s/ +/~/g;
+ }
+ }
+
+ $string;
}
=back
-----------------------------------------------------------------------
Summary of changes:
FS/FS/cust_main_Mixin.pm | 44 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 42 insertions(+), 2 deletions(-)
More information about the freeside-commits
mailing list