my $query = $c->param('q');
my $start = $c->param('start') || 0;
+ my $target = $c->param('target') || "story";
my $item_per_page = 10;
my $req= { query => $query,
limit => $item_per_page,
offset => $start,
+ target => $target,
};
$ua->post($url => {Accept => 'application/json'} => json => $req => sub {
my ($ua_, $tx) = @_;
}
$c->render(query_words => $query,
+ target => $target,
message => $message,
error => 1,
status => $code,
$c->app->log->error("searchd Error: receive invalid message");
$message = "searchd_error";
$c->render(query_words => $query,
+ target => $target,
message => $message,
error => 1,
status => 500,
);
$c->rendered(500);
return;
- }
+ }
+
+ # convert data
+ my $users = $c->model('users');
+ for my $item (@{$result->{hits}}) {
+ if ($item->{author}) {
+ if ($item->{author} == 1) {
+ $item->{author} = $users->anonymous_user;
+ } else {
+ $item->{author} = $users->select(uid => $item->{author});
+ }
+ }
+ }
$c->render(query_words => $query,
+ target => $target,
results => $result,
message => "",
error => 0,
[% WRAPPER common/layout enable_sidebar=1 %]
-
+[% USE date %]
<div class="main-column">
<div class="main-contents">
<div class="search-form">
<form method="get" action="/search">
- <div class="form-group col-sm-10">
- <label class="sr-only" for="query">検索キーワード</label>
- <input type="text" class="form-control" id="query" name="q" placeholder="検索キーワードを入力..." value="[% query_words FILTER html %]">
+
+ <div class="form-group">
+ <div class="col-sm-10">
+ <label class="sr-only" for="query">検索キーワード</label>
+ <input type="text" class="form-control" id="query" name="q" placeholder="検索キーワードを入力..." value="[% query_words FILTER html %]">
+ </div>
+ <div class="col-sm-2">
+ <button type="submit" class="btn btn-default">検索</button>
+ </div>
</div>
- <div class="form-group col-sm-2">
- <button type="submit" class="btn btn-default">検索</button>
+
+ <div class="form-inline col-sm-12">
+ <label class="control-label" for="target">検索対象:</label>
+ <select class="form-control" id="target" name="target">
+ <option value="story" [% IF target == "story" %]selected="1"[% END %]>ストーリー</option>
+ <option value="comment" [% IF target == "comment" %]selected="1"[% END %]>コメント</option>
+ <option value="journal" [% IF target == "journal" %]selected="1"[% END %]>日記</option>
+ <option value="submission" [% IF target == "submission" %]selected="1"[% END %]>タレコミ</option>
+ <option value="poll" [% IF target == "poll" %]selected="1"[% END %]>投票</option>
+ <option value="user" [% IF target == "user" %]selected="1"[% END %]>ユーザー</option>
+ <option value="all" [% IF target == "all" %]selected="1"[% END %]>すべて</option>
+ </select>
</div>
</form>
</div>
<div class="title">
<a href="/[% result.type %]/[% result.id %]">[% result.title %]</a>
</div>
+ <div class="header">
+ <span class="type">[% result.type %]</span>
+ [% IF result.author %]<span class="author">by [% result.author.nickname %]</span>[% END %]
+ <span class="timestamp">([% date.format(result.create_time, '%Y-%m-%d %H:%M', 'ja_JP') %])</span>
+ </div>
<div class="contents-text">
[% result.content_text FILTER html %]
</div>
[%- IF results.total_hits > (start + item_per_page); next_page = 1; ELSE; next_page = 0; END%]
[%- IF start > 0; prev_page = 1; ELSE; prev_page = 0; END %]
[%- IF next_page || prev_page %]
+ [% IF target; target_token = "&target=" _ target; ELSE; target_token = ""; END %]
<div class="pager">
[%- IF prev_page -%]
<span class="prev">
[%- IF start == item_per_page %]
- <a href="/search?q=[% query_words %]">≪前</a>
+ <a href="/search?q=[% query_words %][% target_token %]">≪前</a>
[%- ELSE %]
- <a href="/search?q=[% query_words %]">≪最初</a>
- <a href="/search?q=[% query_words %]&start=[% start - item_per_page %]">≪前</a>
+ <a href="/search?q=[% query_words %][% target_token %]">≪最初</a>
+ <a href="/search?q=[% query_words %][% target_token %]&start=[% start - item_per_page %]">≪前</a>
[%- END %]
</span>
[%- END -%]
[%- IF next_page -%]
<span class="next">
- <a href="/search?q=[% query_words %]&start=[% start + item_per_page %]">次≫</a>
+ <a href="/search?q=[% query_words %][% target_token %]&start=[% start + item_per_page %]">次≫</a>
</span>
[%- END -%]
</div>