35 |
} |
} |
36 |
|
|
37 |
sub get_results { |
sub get_results { |
38 |
my ($search, $page) = @_; |
my $p = {@_}; |
39 |
|
|
40 |
|
my ($search,$page) = ( $p->{search} || '', $p->{page} || 0); |
41 |
|
|
42 |
warn "get_results( $search , $page )\n"; |
warn "get_results( $search , $page )\n"; |
43 |
|
|
44 |
|
sub next_page { |
45 |
|
return '<div id="next_page">' . |
46 |
|
join("\n", @_) . json() . '</div>'; |
47 |
|
} |
48 |
|
|
49 |
if (! $search || $search =~ m/^\s*$/) { |
if (! $search || $search =~ m/^\s*$/) { |
50 |
$v->{status} = 'Enter search query'; |
$v->{status} = 'Enter search query'; |
51 |
return('', json); |
return next_page(); |
52 |
} |
} |
53 |
|
|
54 |
if (! $page) { |
if (! $page) { |
55 |
$v->{status} = 'Error: no page number?'; |
$v->{status} = 'Error: no page number?'; |
56 |
return('', json); |
return next_page(); |
57 |
} |
} |
58 |
|
|
59 |
$search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/); |
$search = join(" AND ", split(/\s+/, $search)) unless ($search =~ m/(?:AND|OR|\[|\])/); |
60 |
$v->{search} = $search || ''; |
$v->{search} = $search; |
61 |
|
|
62 |
$v->{page} = $page; |
$v->{page} = $page; |
63 |
|
|
135 |
$out .= 'error: ' . $node->status; |
$out .= 'error: ' . $node->status; |
136 |
} |
} |
137 |
|
|
138 |
return ($out,json); |
if ($v->{page} == $v->{max_page}) { |
139 |
|
$out .= next_page('<strong>All results shown</strong>'); |
140 |
|
} else { |
141 |
|
$out .= next_page( |
142 |
|
'<strong>Loading results...</strong><br/>', |
143 |
|
'If you are using the scroll bar, release the mouse to see more results.' |
144 |
|
); |
145 |
|
} |
146 |
|
|
147 |
|
return $out; |
148 |
|
|
149 |
} |
} |
150 |
|
|
151 |
if ($q->path_info() eq '/snippet') { |
if ($q->path_info() eq '/snippet') { |
152 |
|
|
153 |
print join("\n<!-- json data -->", |
print get_results( |
154 |
get_results( |
search => $q->param('search') || '', |
155 |
$q->param('search'), |
page => $q->param('page') || 0, |
|
$q->param('page'), |
|
|
) |
|
156 |
); |
); |
157 |
|
|
158 |
|
|
159 |
} else { |
} else { |
160 |
|
|
161 |
my ($get_results,$json); |
my $get_results = get_results( |
162 |
|
search => $q->param('search') || '', |
163 |
if ($q->param('search')) { |
page => 1, |
164 |
($get_results, $json) = get_results( $q->param('search'), 1 ); |
); |
|
} else { |
|
|
$v->{status} = 'Enter search query'; |
|
|
($get_results, $json) = ('', json); |
|
|
} |
|
165 |
|
|
166 |
my $f = $q->path_info; |
my $f = $q->path_info; |
167 |
$f =~ s/\W+//g; |
$f =~ s/\W+//g; |