OSDN Git Service

Plugin: depracate ViewFunctions and move those functions to NewslashHelpers
authorhylom <hylom@users.sourceforge.jp>
Fri, 22 Jun 2018 10:09:08 +0000 (19:09 +0900)
committerhylom <hylom@users.sourceforge.jp>
Fri, 22 Jun 2018 10:09:08 +0000 (19:09 +0900)
src/newslash_web/lib/Newslash/Plugin/NewslashHelpers.pm
src/newslash_web/lib/Newslash/Plugin/TT2Renderer.pm
src/newslash_web/lib/Newslash/Plugin/deprecated/ViewFunctions.pm [moved from src/newslash_web/lib/Newslash/Plugin/ViewFunctions.pm with 100% similarity]
src/newslash_web/lib/Newslash/Web.pm
src/newslash_web/templates/search/search.html.tt2

index 690e42e..5b47526 100644 (file)
@@ -8,7 +8,7 @@ sub register {
     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"))
     }
 }
@@ -73,6 +73,44 @@ sub _boxes {
     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
@@ -101,6 +139,13 @@ L<Mojolicious::Plugin::NewslashHelpers> implements the following helpers.
 
 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
index 92769a3..8550cfe 100644 (file)
@@ -176,11 +176,6 @@ sub register {
                                      }
                                  }
 
-                                 if ($app->renderer->get_helper("view_functions")) {
-                                     $vars->{view} = $app->view_functions;
-                                 }
-
-
                                  $vars->{NS} = {};
                                  for my $k (keys %{$self->{NS_plugin}}) {
                                      if (ref($self->{NS_plugin}->{$k}) eq 'CODE') {
index 723b767..ab3316a 100644 (file)
@@ -116,7 +116,7 @@ sub startup {
     $app->plugin('Newslash::Plugin::TT2Renderer');
 
     # use ViewFunctions
-    $app->plugin('Newslash::Plugin::ViewFunctions');
+    #$app->plugin('Newslash::Plugin::ViewFunctions');
 
     # use CustomBoxes
     $app->plugin('Newslash::Plugin::CustomBoxes');
index f19223b..c799639 100644 (file)
@@ -64,7 +64,7 @@
           <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 %]