my ($self, $app, $conf) = @_;
$self->{app} = $app;
- for my $k (qw[boxes]) {
+ for my $k (qw[boxes format_timestamp]) {
$app->helper($k => $self->can("_$k"))
}
}
return $items;
}
+sub _format_timestamp {
+ my $c = shift;
+ my $params = {};
+
+ if (!ref($_[0])) {
+ $params = {@_};
+ } else {
+ $params = shift;
+ }
+
+ my $offset_sec = 0;
+ if ($params->{user} && $params->{user}->{config}->{offset_sec}) {
+ $offset_sec = $params->{user}->{config}->{offset_sec};
+ }
+
+ my $dt;
+ if ($params->{from_epoch}) {
+ $dt = DateTime->from_epoch(epoch => $params->{from_epoch});
+ } elsif ($params->{datetime}) {
+ $dt = $params->{datetime}
+ } else {
+ return;
+ }
+
+ if ($offset_sec) {
+ $dt->add(seconds => $offset_sec);
+ }
+
+ my $format = $params->{format} || $params->{user} ? "user" : "simple";
+ if ($format eq "simple") {
+ return $dt->strftime('%Y-%m-%d %H:%M:%S');
+ } elsif ($format eq "user" && $params->{user}) {
+ return $dt->strftime($params->{user}->{config}->{time_format});
+ }
+
+ return;
+}
+
1;
=encoding utf8
Fetch box contents for current user and returns them.
+=head2 format_timestamp
+
+ $c->format_timestamp(user => $user, epoch => $epoch, format => "user")
+ $c->format_timestamp(datetime => $dt, format => "simple")
+
+Return formated string.
+
=head1 METHODS
=head2 register
$app->plugin('Newslash::Plugin::TT2Renderer');
# use ViewFunctions
- $app->plugin('Newslash::Plugin::ViewFunctions');
+ #$app->plugin('Newslash::Plugin::ViewFunctions');
# use CustomBoxes
$app->plugin('Newslash::Plugin::CustomBoxes');
<div class="header">
<span class="type">[% result.type %]</span>
[% IF result.author %]<span class="author">by [% result.author.nickname %]</span>[% END %]
- <span class="timestamp">([% view.format_timestamp(from_epoch => result.create_time, user => user) %])</span>
+ <span class="timestamp">([% helpers.format_timestamp(from_epoch => result.create_time, user => user) %])</span>
</div>
<div class="contents-text">
[% result.content_text %]