summaryrefslogtreecommitdiff
path: root/search.php
diff options
context:
space:
mode:
authorczaks <marcin@6irc.net>2013-07-20 20:01:22 -0400
committerczaks <marcin@6irc.net>2013-07-20 20:01:22 -0400
commit629d616de5275164349608827ad83e8013b4b7ed (patch)
tree523c52bdacf35c5a859533829cb85f7851a4b90d /search.php
parent472b5181652e5012588d3eafce740cde487788cf (diff)
post search: internationalize and use config values
Diffstat (limited to 'search.php')
-rw-r--r--search.php31
1 files changed, 21 insertions, 10 deletions
diff --git a/search.php b/search.php
index d2dbdf24..30c05df1 100644
--- a/search.php
+++ b/search.php
@@ -1,11 +1,15 @@
<?php
require 'inc/functions.php';
- $queries_per_minutes = Array(15, 2);
- $queries_per_minutes_all = Array(50, 2);
- $search_limit = 100;
+ if (!$config['search']['enable']) {
+ die(_("Post search is disabled"));
+ }
+
+ $queries_per_minutes = $config['search']['queries_per_minutes'];
+ $queries_per_minutes_all = $config['search']['queries_per_minutes_all'];
+ $search_limit = $config['search']['search_limit'];
- $boards = Array('new', 'r9k', 'v', 'edu', 'azn', 'h', 'meta');
+ $boards = $config['search']['boards'];
$body = Element('search_form.html', Array('boards' => $boards, 'board' => isset($_POST['board']) ? $_POST['board'] : false, 'search' => isset($_POST['search']) ? str_replace('"', '&quot;', utf8tohtml($_POST['search'])) : false));
@@ -18,13 +22,13 @@
$query->bindValue(':time', time() - ($queries_per_minutes[1] * 60));
$query->execute() or error(db_error($query));
if($query->fetchColumn() > $queries_per_minutes[0])
- error('Wait a while before searching again, please.');
+ error(_('Wait a while before searching again, please.'));
$query = prepare("SELECT COUNT(*) FROM `search_queries` WHERE `time` > :time");
$query->bindValue(':time', time() - ($queries_per_minutes_all[1] * 60));
$query->execute() or error(db_error($query));
if($query->fetchColumn() > $queries_per_minutes_all[0])
- error('Wait a while before searching again, please.');
+ error(_('Wait a while before searching again, please.'));
$query = prepare("INSERT INTO `search_queries` VALUES (:ip, :time, :query)");
@@ -34,6 +38,11 @@
$query->execute() or error(db_error($query));
_syslog(LOG_NOTICE, 'Searched /' . $_POST['board'] . '/ for "' . $phrase . '"');
+
+ // Cleanup search queries table
+ $query = prepare("DELETE FROM `search_queries` WHERE `time` <= :time");
+ $query->bindValue(':time', time() - ($queries_per_minutes_all[1] * 60));
+ $query->execute() or error(db_error($query));
openBoard($_POST['board']);
@@ -44,7 +53,7 @@
$name = $m[2];
$value = isset($m[4]) ? $m[4] : $m[3];
- if(!in_array($name, Array('id', 'thread', 'subject', 'name'))) {
+ if(!in_array($name, array('id', 'thread', 'subject', 'name'))) {
// unknown filter
return $m[0];
}
@@ -116,7 +125,7 @@
if($query->rowCount() == $search_limit) {
_syslog(LOG_WARNING, 'Query too broad.');
- $body .= '<p class="unimportant" style="text-align:center">(Query too broad.)</p>';
+ $body .= '<p class="unimportant" style="text-align:center">('._('Query too broad.').')</p>';
echo Element('page.html', Array(
'config'=>$config,
'title'=>'Search',
@@ -136,7 +145,9 @@
}
if(!empty($temp))
- $_body .= '<fieldset><legend>' . $query->rowCount() . ' result' . ($query->rowCount() != 1 ? 's' : '') . ' in <a href="/' .
+ $_body .= '<fieldset><legend>' . $query->rowCount() .
+ sprintf(ngettext('%d result in', '%d results in', $query->rowCount()),
+ $query->rowCount) . ' <a href="/' .
sprintf($config['board_path'], $board['uri']) . $config['file_index'] .
'">' .
sprintf($config['board_abbreviation'], $board['uri']) . ' - ' . $board['title'] .
@@ -146,7 +157,7 @@
if(!empty($_body))
$body .= $_body;
else
- $body .= '<p style="text-align:center" class="unimportant">(No results.)</p>';
+ $body .= '<p style="text-align:center" class="unimportant">('._('No results.').')</p>';
}
echo Element('page.html', Array(