OSDN Git Service

introduce DiscussionHelper plugin
authorhylom <hylom@users.sourceforge.jp>
Tue, 28 Nov 2017 10:57:50 +0000 (19:57 +0900)
committerhylom <hylom@users.sourceforge.jp>
Tue, 28 Nov 2017 10:57:50 +0000 (19:57 +0900)
src/newslash_web/lib/Newslash/Plugin/DiscussionHelper.pm [new file with mode: 0644]
src/newslash_web/lib/Newslash/Web.pm
src/newslash_web/lib/Newslash/Web/Controller/Comment.pm
src/newslash_web/lib/Newslash/Web/Controller/Journal.pm
src/newslash_web/lib/Newslash/Web/Controller/Poll.pm
src/newslash_web/lib/Newslash/Web/Controller/Story.pm
src/newslash_web/lib/Newslash/Web/Controller/Submission.pm

diff --git a/src/newslash_web/lib/Newslash/Plugin/DiscussionHelper.pm b/src/newslash_web/lib/Newslash/Plugin/DiscussionHelper.pm
new file mode 100644 (file)
index 0000000..7391e9c
--- /dev/null
@@ -0,0 +1,23 @@
+package Newslash::Plugin::DiscussionHelper;
+use Mojo::Base 'Mojolicious::Plugin';
+use Data::Dumper;
+sub register {
+    my ($self, $app, $conf) = @_;
+
+    $app->hook(before_render => sub {
+                   my ($c, $args) = @_;
+                   my $discus = $args->{discussion} || $c->stash('discussion');
+                   return if !$discus;
+
+                   my $user = $c->stash('user');
+                   my $discussions = $c->model('discussions');
+                   my $comment_allowed = $discussions->is_comment_allowed(discussion => $discus,
+                                                                          uid => $user->{uid});
+                   $c->stash(comment_allowed => $comment_allowed);
+
+               });
+}
+
+
+
+1;
index d598b90..7a6eff0 100644 (file)
@@ -137,6 +137,9 @@ sub startup {
     # set canocal (for test.srad.jp)
     $app->plugin('Newslash::Plugin::Canonical');
 
+    # DiscussionHelper
+    $app->plugin('Newslash::Plugin::DiscussionHelper');
+
     # use HSTS
     $app->plugin('Newslash::Plugin::Hsts');
 
index 77a9462..fc4b086 100644 (file)
@@ -28,7 +28,6 @@ sub single {
     }
 
     my $parent_item;
-    my $comment_allowed;
     if ($discuss) {
         my $d_id = $discuss->{discussion_id};
         if ($discuss->{kind} eq "story"
@@ -44,9 +43,6 @@ sub single {
         elsif ($discuss->{kind} eq "submission") {
             $parent_item = $c->model('submissions')->select(discussion_id => $d_id);
         }
-
-        $comment_allowed = $discussions->is_comment_allowed(discussion => $discuss,
-                                                            uid => $user->{uid});
     }
 
     my $page = { content_type => "comment",
@@ -55,7 +51,6 @@ sub single {
     $c->render(item => $comment,
                parent => $parent,
                discussion => $discuss,
-               comment_allowed => $comment_allowed,
                parent_item => $parent_item,
                page => $page,
               );
index e3c28e0..de73062 100644 (file)
@@ -18,15 +18,11 @@ sub single {
 
     my $comments = [];
     my $discuss;
-    my $comment_allowed = 0;
 
     if ($d_id) {
         my $discussions = $c->model('discussions');
         $discuss = $discussions->select(id => $d_id);
         $comments = $c->model('comments')->select(discussion_id => $d_id);
-        $comment_allowed = $discussions->is_comment_allowed(discussion => $discuss,
-                                                            uid => $user->{uid});
-
     }
 
     my $page = { content_type => "journal",
@@ -38,7 +34,6 @@ sub single {
                the_user => $the_user,
                page => $page,
                use_captcha => 1,
-               comment_allowed => $comment_allowed,
               );
 }
 
index 547a2ad..746025d 100644 (file)
@@ -38,13 +38,10 @@ sub single {
     my $discussions = $c->model('discussions');
     my $discussion_id = $poll->{discussion_id};
     my $discuss = $discussions->select(discussion_id => $discussion_id);
-    my $comment_allowed = 0;
     my $comments = [];
 
     if ($discussion_id) {
         $comments = $c->model('comments')->select(discussion_id => $discussion_id);
-        $comment_allowed = $discussions->is_comment_allowed(discussion => $discuss,
-                                                            uid => $user->{uid});
 
     }
 
@@ -59,7 +56,6 @@ sub single {
                page => $page,
                comments => $comments,
                use_captcha => 1,
-               comment_allowed => $comment_allowed,
                discussion => $discuss,
                related => $related_polls,
               );
index 463910f..e336619 100644 (file)
@@ -26,12 +26,9 @@ sub single {
     my $discuss = $discussions->select(sid => $sid);
     my $d_id = $discuss->{id};
     my $comments = [];
-    my $comment_allowed = 0;
 
     if ($d_id) {
         $comments = $c->model('comments')->select(discussion_id => $d_id);
-        $comment_allowed = $discussions->is_comment_allowed(discussion => $discuss,
-                                                            uid => $user->{uid});
     }
 
     my $related = $stories->get_related_items(stoid => $story->{stoid});
@@ -62,7 +59,6 @@ sub single {
                authors => $authors,
                use_captcha => 1,
                page => $page,
-               comment_allowed => $comment_allowed,
               );
 }
 
index b6e6444..e4eb24c 100644 (file)
@@ -14,14 +14,11 @@ sub single {
     my $d_id = $submission->{discussion_id};
     my $comments = [];
     my $discuss = {};
-    my $comment_allowed => 0;
 
     if ($d_id) {
         my $discussions = $c->model('discussions');
         $discuss = $discussions->select(id => $d_id);
         $comments = $c->model('comments')->select(discussion_id => $d_id);
-        $comment_allowed = $discussions->is_comment_allowed(discussion => $discuss,
-                                                            uid => $user->{uid});
     }
 
     my $page = { content_type => "submission",
@@ -32,7 +29,6 @@ sub single {
                comments => $comments,
                page => $page,
                use_captcha => 1,
-               comment_allowed => $comment_allowed,
               );
 }