Showing 2 changed files with 92 additions and 11 deletions
+57 -11
templates/index.html.ep
... ...
@@ -3,6 +3,35 @@
3 3
   my $op = param('op') // '';
4 4
   my $book_id = param('book-id');
5 5
   
6
+  my $show_word_count;
7
+  my $word_count_h = {};
8
+  my $word = param('word');
9
+  my $word_length = length $word;
10
+  if ($word_length) {
11
+    $show_word_count = 1;
12
+    for (my $i = 0; $i < 66; $i++) {
13
+      my $num = sprintf "%02d", $i + 1;
14
+      
15
+      my $content = $dbi->select(
16
+        'content_no_tag',
17
+        table => 'book',
18
+        where => {id => $num}
19
+      )->value;
20
+
21
+      my $content_length = length $content;
22
+
23
+      $content =~ s/$word//g;
24
+
25
+      my $content_length_no_word = length $content;
26
+
27
+      my $word_count = ($content_length - $content_length_no_word) / $word_length;
28
+
29
+      $word_count_h->{$num} = $word_count;
30
+    }
31
+  }
32
+  
33
+  warn dumper $word_count_h;
34
+  
6 35
   my $books = $dbi->model('book')->select(['id', 'short_name'])->all;
7 36
   
8 37
   my $content;
... ...
@@ -24,28 +53,45 @@
24 53
   </div>
25 54
 
26 55
   <div id="boxB">
27
-      <div style="margin-bottom:5px">
56
+      <form style="margin-bottom:5px" action="<%= url_for('current') %>" method="get">
28 57
         <%= text_field 'word' , style => "width:160px"%>
29
-        <button style="width:50px;padding:2px;">検索</button>
30
-      </div>
58
+        <input type="submit" value="検索" style="width:50px;padding:2px;">
59
+      </form>
31 60
       <div style="margin-bottom:10px;">
32 61
         <a href="<%= url_for('/') %>" style="color:blue">聖書</a>
33 62
       </div>
34 63
       <div style="border:1px solid gray;width:218px;height:400px;overflow:auto;padding:5px">
35
-        <ul style="list-style-type:none">
64
+        <table style="border-collapse: collapse;width:100%;color:#333333">
65
+            <tr style="border-bottom:1px solid #EEEEEE">
66
+              <td>
67
+                書
68
+              </td>
69
+              <td style="text-align:right">
70
+                % if ($word_length) {
71
+                  回数
72
+                % }
73
+              </td>
74
+            </tr>
36 75
           % for my $book (@$books) {
37
-            <li><a class="book" id="<%= "book-$book->{id}" %>" href="<%= url_for->query('book-id' => $book->{id}) %>"><%= $book->{short_name} %></a></li>
76
+            <tr>
77
+              <td>
78
+                <a class="book" id="<%= "book-$book->{id}" %>" href="<%= url_for->query('book-id' => $book->{id}) %>"><%= $book->{short_name} %></a>
79
+              </td>
80
+              <td style="text-align:right">
81
+                <%= $word_count_h->{$book->{id}} %>
82
+              </td>
83
+            </tr>
38 84
           % }
39
-        </ul>
85
+        </table>
40 86
       </div>
41 87
   </div>
42 88
 
43 89
   <div id="boxC">
44
-  <p>
45
-        % if ($book_id) {
46
-          %== $content
47
-        % }
48
-  </p>
90
+    <div style="height:500px;overflow:auto">
91
+      % if ($book_id) {
92
+        %== $content
93
+      % }
94
+    </div>
49 95
   </div>
50 96
 
51 97
 
+35
tmp/count_word.pl
... ...
@@ -0,0 +1,35 @@
1
+use strict;
2
+use warnings;
3
+use utf8;
4
+use DBIx::Custom;
5
+
6
+my $word ='主';
7
+my $word_length = length $word;
8
+my $word_q = quotemeta($word);
9
+
10
+my $dbi = DBIx::Custom->connect(
11
+  dsn => "dbi:SQLite:dbname=../db/bible.db",
12
+  option => {sqlite_unicode => 1}
13
+);
14
+
15
+for (my $i = 0; $i < 66; $i++) {
16
+  my $num = sprintf "%02d", $i + 1;
17
+  
18
+  my $content = $dbi->select(
19
+    'content_no_tag',
20
+    table => 'book',
21
+    where => {id => $num}
22
+  )->value;
23
+
24
+  my $content_length = length $content;
25
+
26
+  $content =~ s/$word//g;
27
+
28
+  my $content_length_no_word = length $content;
29
+
30
+  my $word_count = ($content_length - $content_length_no_word) / $word_length;
31
+
32
+  print "$num:$word_count\n";
33
+}
34
+
35
+1;