Relevanssi – A Better Search - Version 3.1.9

Version Description

  • Fix to make Relevanssi compatible with WordPress 3.7.
  • Fixed a mistyped database table name.
  • Relevanssi disables responsive-flipbook shortcode in indexing; it was causing problems.
  • Fixed a problem with an author dropdown with no author selected.
Download this release

Release Info

Developer msaari
Plugin Icon 128x128 Relevanssi – A Better Search
Version 3.1.9
Comparing to
See all releases

Code changes from version 3.0.5 to 3.1.9

lib/common.php CHANGED
@@ -16,6 +16,13 @@ function relevanssi_wpml_filter($data) {
16
  if ($hit->ID == icl_object_id($hit->ID, $hit->post_type,false,ICL_LANGUAGE_CODE))
17
  $filtered_hits[] = $hit;
18
  }
 
 
 
 
 
 
 
19
  // if there is no WPML but the target blog has identical language with current blog,
20
  // we use the hits. Note en-US is not identical to en-GB!
21
  elseif (get_bloginfo('language') == $lang) {
@@ -34,12 +41,23 @@ function relevanssi_wpml_filter($data) {
34
  * Function by Matthew Hood http://my.php.net/manual/en/function.sort.php#75036
35
  */
36
  function relevanssi_object_sort(&$data, $key, $dir = 'desc') {
 
 
 
37
  $dir = strtolower($dir);
38
  for ($i = count($data) - 1; $i >= 0; $i--) {
39
  $swapped = false;
40
  for ($j = 0; $j < $i; $j++) {
 
 
 
 
 
 
 
 
41
  if ('asc' == $dir) {
42
- if ($data[$j]->$key > $data[$j + 1]->$key) {
43
  $tmp = $data[$j];
44
  $data[$j] = $data[$j + 1];
45
  $data[$j + 1] = $tmp;
@@ -47,7 +65,7 @@ function relevanssi_object_sort(&$data, $key, $dir = 'desc') {
47
  }
48
  }
49
  else {
50
- if ($data[$j]->$key < $data[$j + 1]->$key) {
51
  $tmp = $data[$j];
52
  $data[$j] = $data[$j + 1];
53
  $data[$j + 1] = $tmp;
@@ -95,8 +113,23 @@ function relevanssi_update_log($query, $hits) {
95
  if (in_array($user->ID, $omit)) return;
96
  if (in_array($user->user_login, $omit)) return;
97
  }
98
-
99
- $q = $wpdb->prepare("INSERT INTO " . $relevanssi_variables['log_table'] . " (query, hits, user_id, ip) VALUES (%s, %d, %d, %s)", $query, intval($hits), $user->ID, $_SERVER['REMOTE_ADDR']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  $wpdb->query($q);
101
  }
102
 
@@ -182,6 +215,8 @@ function relevanssi_s2member_level($doc) {
182
 
183
  function relevanssi_populate_array($matches) {
184
  global $relevanssi_post_array, $relevanssi_post_types, $wpdb;
 
 
185
 
186
  $ids = array();
187
  foreach ($matches as $match) {
@@ -248,8 +283,8 @@ function relevanssi_recognize_phrases($q) {
248
  if (count($phrases) > 0) {
249
  $phrase_matches = array();
250
  foreach ($phrases as $phrase) {
251
- $phrase = $wpdb->escape($phrase);
252
- $query = "SELECT ID,post_content,post_title FROM $wpdb->posts
253
  WHERE (post_content LIKE '%$phrase%' OR post_title LIKE '%$phrase%')
254
  AND post_status IN ('publish', 'draft', 'private', 'pending', 'future', 'inherit')";
255
 
@@ -388,6 +423,8 @@ function relevanssi_remove_punct($a) {
388
  $a = str_replace("€", '', $a);
389
  $a = str_replace("&shy;", '', $a);
390
 
 
 
391
  $a = str_replace('&#8217;', ' ', $a);
392
  $a = str_replace("'", ' ', $a);
393
  $a = str_replace("’", ' ', $a);
@@ -422,9 +459,15 @@ function relevanssi_prevent_default_request( $request, $query ) {
422
  return $request;
423
  }
424
  }
 
 
 
 
 
 
425
  if (!is_admin())
426
- $request = "SELECT * FROM $wpdb->posts WHERE 1=2";
427
- else if ('on' == get_option('relevanssi_admin_search'))
428
  $request = "SELECT * FROM $wpdb->posts WHERE 1=2";
429
  }
430
  return $request;
@@ -456,9 +499,10 @@ function relevanssi_tokenize($str, $remove_stops = true, $min_word_length = -1)
456
  $str = mb_strtolower($str);
457
  else
458
  $str = strtolower($str);
459
-
460
  $t = strtok($str, "\n\t ");
461
  while ($t !== false) {
 
462
  $accept = true;
463
  if (strlen($t) < $min_word_length) {
464
  $t = strtok("\n\t ");
@@ -481,6 +525,7 @@ function relevanssi_tokenize($str, $remove_stops = true, $min_word_length = -1)
481
 
482
  if ($accept) {
483
  $t = relevanssi_mb_trim($t);
 
484
  if (!isset($tokens[$t])) {
485
  $tokens[$t] = 1;
486
  }
@@ -535,4 +580,26 @@ function relevanssi_get_post_type($id) {
535
  }
536
  }
537
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
538
  ?>
16
  if ($hit->ID == icl_object_id($hit->ID, $hit->post_type,false,ICL_LANGUAGE_CODE))
17
  $filtered_hits[] = $hit;
18
  }
19
+ elseif (function_exists('icl_object_id') && function_exists('pll_is_translated_post_type')) {
20
+ if (pll_is_translated_post_type($hit->post_type)) {
21
+ if ($hit->ID == icl_object_id($hit->ID, $hit->post_type,false,ICL_LANGUAGE_CODE))
22
+ $filtered_hits[] = $hit;
23
+ }
24
+ }
25
+
26
  // if there is no WPML but the target blog has identical language with current blog,
27
  // we use the hits. Note en-US is not identical to en-GB!
28
  elseif (get_bloginfo('language') == $lang) {
41
  * Function by Matthew Hood http://my.php.net/manual/en/function.sort.php#75036
42
  */
43
  function relevanssi_object_sort(&$data, $key, $dir = 'desc') {
44
+ if ('title' == $key) $key = 'post_title';
45
+ if ('date' == $key) $key = 'post_date';
46
+ if (!isset($data[0]->$key)) return; // trying to sort by a non-existent key
47
  $dir = strtolower($dir);
48
  for ($i = count($data) - 1; $i >= 0; $i--) {
49
  $swapped = false;
50
  for ($j = 0; $j < $i; $j++) {
51
+ if (function_exists('mb_strtolower')) {
52
+ $key1 = mb_strtolower($data[$j]->$key);
53
+ $key2 = mb_strtolower($data[$j + 1]->$key);
54
+ }
55
+ else {
56
+ $key1 = strtolower($data[$j]->$key);
57
+ $key2 = strtolower($data[$j + 1]->$key);
58
+ }
59
  if ('asc' == $dir) {
60
+ if ($key1 > $key2) {
61
  $tmp = $data[$j];
62
  $data[$j] = $data[$j + 1];
63
  $data[$j + 1] = $tmp;
65
  }
66
  }
67
  else {
68
+ if ($key1 < $key2) {
69
  $tmp = $data[$j];
70
  $data[$j] = $data[$j + 1];
71
  $data[$j + 1] = $tmp;
113
  if (in_array($user->ID, $omit)) return;
114
  if (in_array($user->user_login, $omit)) return;
115
  }
116
+
117
+ // Bot filter, by Justin_K
118
+ // See: http://wordpress.org/support/topic/bot-logging-problem-w-tested-solution
119
+ if (isset($_SERVER['HTTP_USER_AGENT'])) {
120
+ $user_agent = $_SERVER['HTTP_USER_AGENT'];
121
+ $bots = array('Google'=>'Mediapartners-Google');
122
+ $bots = apply_filters('relevanssi_bots_to_not_log', $bots);
123
+ foreach ($bots as $name => $lookfor) {
124
+ if (stristr($user_agent, $lookfor) !== false) return;
125
+ }
126
+ }
127
+
128
+ if (get_option('relevanssi_log_queries_with_ip') == "on") {
129
+ $q = $wpdb->prepare("INSERT INTO " . $relevanssi_variables['log_table'] . " (query, hits, user_id, ip) VALUES (%s, %d, %d, %s)", $query, intval($hits), $user->ID, $_SERVER['REMOTE_ADDR']);
130
+ } else {
131
+ $q = $wpdb->prepare("INSERT INTO " . $relevanssi_variables['log_table'] . " (query, hits, user_id, ip) VALUES (%s, %d, %d, '')", $query, intval($hits), $user->ID, $_SERVER['REMOTE_ADDR']);
132
+ }
133
  $wpdb->query($q);
134
  }
135
 
215
 
216
  function relevanssi_populate_array($matches) {
217
  global $relevanssi_post_array, $relevanssi_post_types, $wpdb;
218
+ if (function_exists('wp_suspend_cache_addition'))
219
+ wp_suspend_cache_addition(true);
220
 
221
  $ids = array();
222
  foreach ($matches as $match) {
283
  if (count($phrases) > 0) {
284
  $phrase_matches = array();
285
  foreach ($phrases as $phrase) {
286
+ $phrase = esc_sql($phrase);
287
+ $query = "SELECT ID FROM $wpdb->posts
288
  WHERE (post_content LIKE '%$phrase%' OR post_title LIKE '%$phrase%')
289
  AND post_status IN ('publish', 'draft', 'private', 'pending', 'future', 'inherit')";
290
 
423
  $a = str_replace("€", '', $a);
424
  $a = str_replace("&shy;", '', $a);
425
 
426
+ $a = str_replace(chr(194) . chr(160), ' ', $a);
427
+ $a = str_replace("&nbsp;", ' ', $a);
428
  $a = str_replace('&#8217;', ' ', $a);
429
  $a = str_replace("'", ' ', $a);
430
  $a = str_replace("’", ' ', $a);
459
  return $request;
460
  }
461
  }
462
+ if (is_array($query->query_vars['post_type']) && in_array('forum', $query->query_vars['post_type'])) {
463
+ // this is a BBPress search; do not meddle
464
+ return $request;
465
+ }
466
+ $admin_search_ok = true;
467
+ $admin_search_ok = apply_filters('relevanssi_admin_search_ok', $admin_search_ok, $query );
468
  if (!is_admin())
469
+ $request = "SELECT * FROM $wpdb->posts WHERE 1=2";
470
+ else if ('on' == get_option('relevanssi_admin_search') && $admin_search_ok )
471
  $request = "SELECT * FROM $wpdb->posts WHERE 1=2";
472
  }
473
  return $request;
499
  $str = mb_strtolower($str);
500
  else
501
  $str = strtolower($str);
502
+
503
  $t = strtok($str, "\n\t ");
504
  while ($t !== false) {
505
+ $t = strval($t);
506
  $accept = true;
507
  if (strlen($t) < $min_word_length) {
508
  $t = strtok("\n\t ");
525
 
526
  if ($accept) {
527
  $t = relevanssi_mb_trim($t);
528
+ if (is_numeric($t)) $t = " $t"; // $t ends up as an array index, and numbers just don't work there
529
  if (!isset($tokens[$t])) {
530
  $tokens[$t] = 1;
531
  }
580
  }
581
  }
582
 
583
+ function relevanssi_the_tags($sep = ', ', $echo = true) {
584
+ $tags = relevanssi_highlight_terms(get_the_tag_list('', $sep), get_search_query());
585
+ if ($echo) {
586
+ echo $tags;
587
+ }
588
+ else {
589
+ return $tags;
590
+ }
591
+ }
592
+
593
+ function relevanssi_get_the_tags($sep = ', ') {
594
+ return relevanssi_the_tags($sep, false);
595
+ }
596
+
597
+ function relevanssi_get_term_tax_id($field, $id, $taxonomy) {
598
+ global $wpdb;
599
+ return $wpdb->get_var(
600
+ "SELECT term_taxonomy_id
601
+ FROM $wpdb->term_taxonomy
602
+ WHERE term_id = $id AND taxonomy = '$taxonomy'");
603
+ }
604
+
605
  ?>
lib/excerpts-highlights.php CHANGED
@@ -17,25 +17,29 @@ function relevanssi_do_excerpt($t_post, $query) {
17
  $old_global_post = NULL;
18
  if ($post != NULL) $old_global_post = $post;
19
  $post = $t_post;
20
-
21
  $remove_stopwords = false;
22
- $terms = relevanssi_tokenize($query, $remove_stopwords);
 
 
 
23
 
24
  $content = apply_filters('relevanssi_pre_excerpt_content', $post->post_content, $post, $query);
25
- $content = apply_filters('the_content', $post->post_content);
26
  $content = apply_filters('relevanssi_excerpt_content', $content, $post, $query);
27
 
28
  $content = relevanssi_strip_invisibles($content); // removes <script>, <embed> &c with content
 
29
  $content = strip_tags($content, get_option('relevanssi_excerpt_allowable_tags', '')); // this removes the tags, but leaves the content
30
 
31
  $content = preg_replace("/\n\r|\r\n|\n|\r/", " ", $content);
32
- $content = trim(preg_replace("/\s\s+/", " ", $content));
33
-
34
- $excerpt_data = relevanssi_create_excerpt($content, $terms);
35
 
 
 
36
  if (get_option("relevanssi_index_comments") != 'none') {
37
  $comment_content = relevanssi_get_comments($post->ID);
38
- $comment_excerpts = relevanssi_create_excerpt($comment_content, $terms);
39
  if ($comment_excerpts[1] > $excerpt_data[1]) {
40
  $excerpt_data = $comment_excerpts;
41
  }
@@ -43,7 +47,7 @@ function relevanssi_do_excerpt($t_post, $query) {
43
 
44
  if (get_option("relevanssi_index_excerpt") != 'none') {
45
  $excerpt_content = $post->post_excerpt;
46
- $excerpt_excerpts = relevanssi_create_excerpt($excerpt_content, $terms);
47
  if ($excerpt_excerpts[1] > $excerpt_data[1]) {
48
  $excerpt_data = $excerpt_excerpts;
49
  }
@@ -52,8 +56,8 @@ function relevanssi_do_excerpt($t_post, $query) {
52
  $start = $excerpt_data[2];
53
 
54
  $excerpt = $excerpt_data[0];
55
- $excerpt = apply_filters('get_the_excerpt', $excerpt);
56
  $excerpt = trim($excerpt);
 
57
 
58
  $ellipsis = apply_filters('relevanssi_ellipsis', '...');
59
 
@@ -63,12 +67,12 @@ function relevanssi_do_excerpt($t_post, $query) {
63
  $excerpt = relevanssi_highlight_terms($excerpt, $query);
64
  }
65
  }
66
-
67
  if (!$start) {
68
  $excerpt = $ellipsis . $excerpt;
69
  // do not add three dots to the beginning of the post
70
  }
71
-
72
  $excerpt = $excerpt . $ellipsis;
73
 
74
  if (relevanssi_s2member_level($post->ID) == 1) $excerpt = $post->post_excerpt;
@@ -84,7 +88,7 @@ function relevanssi_do_excerpt($t_post, $query) {
84
  * @return array - element 0 is the excerpt, element 1 the number of term hits, element 2 is
85
  * true, if the excerpt is from the start of the content.
86
  */
87
- function relevanssi_create_excerpt($content, $terms) {
88
  // If you need to modify these on the go, use 'pre_option_relevanssi_excerpt_length' filter.
89
  $excerpt_length = get_option("relevanssi_excerpt_length");
90
  $type = get_option("relevanssi_excerpt_type");
@@ -92,7 +96,34 @@ function relevanssi_create_excerpt($content, $terms) {
92
  $best_excerpt_term_hits = -1;
93
  $excerpt = "";
94
 
95
- $content = " $content";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  $start = false;
97
  if ("chars" == $type) {
98
  $term_hits = 0;
@@ -101,7 +132,7 @@ function relevanssi_create_excerpt($content, $terms) {
101
  if (function_exists('mb_stripos')) {
102
  $pos = ("" == $content) ? false : mb_stripos($content, $term);
103
  }
104
- else if (function_exists('mb_strpos')) {
105
  $pos = mb_strpos($content, $term);
106
  if (false === $pos) {
107
  $titlecased = mb_strtoupper(mb_substr($term, 0, 1)) . mb_substr($term, 1);
@@ -176,10 +207,19 @@ function relevanssi_create_excerpt($content, $terms) {
176
  else if (function_exists('mb_strpos')) {
177
  $pos = mb_strpos($excerpt_slice, $term);
178
  if (false === $pos) {
179
- $titlecased = mb_strtoupper(mb_substr($term, 0, 1)) . mb_substr($term, 1);
180
- $pos = mb_strpos($excerpt_slice, $titlecased);
181
- if (false === $pos) {
182
- $pos = mb_strpos($excerpt_slice, mb_strtoupper($term));
 
 
 
 
 
 
 
 
 
183
  }
184
  }
185
  }
@@ -221,20 +261,25 @@ function relevanssi_create_excerpt($content, $terms) {
221
  /** HIGHLIGHTING **/
222
 
223
  function relevanssi_highlight_in_docs($content) {
224
- if (is_singular()) {
225
- $referrer = preg_replace('@(http|https)://@', '', stripslashes(urldecode($_SERVER['HTTP_REFERER'])));
226
- $args = explode('?', $referrer);
227
- $query = array();
 
 
228
 
229
- if ( count( $args ) > 1 )
230
- parse_str( $args[1], $query );
231
 
232
- if (substr($referrer, 0, strlen($_SERVER['SERVER_NAME'])) == $_SERVER['SERVER_NAME'] && (isset($query['s']) || strpos($referrer, '/search/') !== false)) {
233
- // Local search
234
- $content = relevanssi_highlight_terms($content, $query['s']);
235
- }
236
- if (function_exists('relevanssi_nonlocal_highlighting')) {
237
- $content = relevanssi_nonlocal_highlighting($referrer, $content, $query['q']);
 
 
 
238
  }
239
  }
240
 
@@ -288,19 +333,20 @@ function relevanssi_highlight_terms($excerpt, $query) {
288
  return $excerpt;
289
  }
290
 
291
- $start_emp_token = "*[/";
292
- $end_emp_token = "\]*";
293
 
294
  if ( function_exists('mb_internal_encoding') )
295
  mb_internal_encoding("UTF-8");
296
 
297
- $terms = array_keys(relevanssi_tokenize($query, $remove_stopwords = true));
298
-
299
- $phrases = relevanssi_extract_phrases(stripslashes($query));
300
 
 
 
 
301
  $non_phrase_terms = array();
302
  foreach ($phrases as $phrase) {
303
- $phrase_terms = array_keys(relevanssi_tokenize($phrase, false));
304
  foreach ($terms as $term) {
305
  if (!in_array($term, $phrase_terms)) {
306
  $non_phrase_terms[] = $term;
@@ -310,22 +356,48 @@ function relevanssi_highlight_terms($excerpt, $query) {
310
  $terms[] = $phrase;
311
  }
312
 
313
- usort($terms, 'relevanssi_strlen_sort');
314
 
315
  get_option('relevanssi_word_boundaries', 'on') == 'on' ? $word_boundaries = true : $word_boundaries = false;
316
  foreach ($terms as $term) {
317
- $pr_term = preg_quote($term, '/');
 
318
  if ($word_boundaries) {
319
- $excerpt = preg_replace("/(\b$pr_term|$pr_term\b)(?!([^<]+)?>)/iu", $start_emp_token . '\\1' . $end_emp_token, $excerpt);
320
  }
321
  else {
322
- $excerpt = preg_replace("/($pr_term)(?!([^<]+)?>)/iu", $start_emp_token . '\\1' . $end_emp_token, $excerpt);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
323
  }
324
- // thanks to http://pureform.wordpress.com/2008/01/04/matching-a-word-characters-outside-of-html-tags/
325
  }
326
 
327
  $excerpt = relevanssi_remove_nested_highlights($excerpt, $start_emp_token, $end_emp_token);
328
-
 
 
 
 
 
329
  $excerpt = str_replace($start_emp_token, $start_emp, $excerpt);
330
  $excerpt = str_replace($end_emp_token, $end_emp, $excerpt);
331
  $excerpt = str_replace($end_emp . $start_emp, "", $excerpt);
@@ -337,6 +409,11 @@ function relevanssi_highlight_terms($excerpt, $query) {
337
  return $excerpt;
338
  }
339
 
 
 
 
 
 
340
  function relevanssi_remove_nested_highlights($s, $a, $b) {
341
  $offset = 0;
342
  $string = "";
17
  $old_global_post = NULL;
18
  if ($post != NULL) $old_global_post = $post;
19
  $post = $t_post;
20
+
21
  $remove_stopwords = false;
22
+ $terms = relevanssi_tokenize($query, $remove_stopwords, -1, false);
23
+
24
+ // These shortcodes cause problems with Relevanssi excerpts
25
+ remove_shortcode('layerslider');
26
 
27
  $content = apply_filters('relevanssi_pre_excerpt_content', $post->post_content, $post, $query);
28
+ $content = apply_filters('the_content', $content);
29
  $content = apply_filters('relevanssi_excerpt_content', $content, $post, $query);
30
 
31
  $content = relevanssi_strip_invisibles($content); // removes <script>, <embed> &c with content
32
+ $content = preg_replace('/(<\/[^>]+?>)(<[^>\/][^>]*?>)/', '$1 $2', $content); // add spaces between tags to avoid getting words stuck together
33
  $content = strip_tags($content, get_option('relevanssi_excerpt_allowable_tags', '')); // this removes the tags, but leaves the content
34
 
35
  $content = preg_replace("/\n\r|\r\n|\n|\r/", " ", $content);
36
+ // $content = trim(preg_replace("/\s\s+/", " ", $content));
 
 
37
 
38
+ $excerpt_data = relevanssi_create_excerpt($content, $terms, $query);
39
+
40
  if (get_option("relevanssi_index_comments") != 'none') {
41
  $comment_content = relevanssi_get_comments($post->ID);
42
+ $comment_excerpts = relevanssi_create_excerpt($comment_content, $terms, $query);
43
  if ($comment_excerpts[1] > $excerpt_data[1]) {
44
  $excerpt_data = $comment_excerpts;
45
  }
47
 
48
  if (get_option("relevanssi_index_excerpt") != 'none') {
49
  $excerpt_content = $post->post_excerpt;
50
+ $excerpt_excerpts = relevanssi_create_excerpt($excerpt_content, $terms, $query);
51
  if ($excerpt_excerpts[1] > $excerpt_data[1]) {
52
  $excerpt_data = $excerpt_excerpts;
53
  }
56
  $start = $excerpt_data[2];
57
 
58
  $excerpt = $excerpt_data[0];
 
59
  $excerpt = trim($excerpt);
60
+ $excerpt = apply_filters('relevanssi_excerpt', $excerpt);
61
 
62
  $ellipsis = apply_filters('relevanssi_ellipsis', '...');
63
 
67
  $excerpt = relevanssi_highlight_terms($excerpt, $query);
68
  }
69
  }
70
+
71
  if (!$start) {
72
  $excerpt = $ellipsis . $excerpt;
73
  // do not add three dots to the beginning of the post
74
  }
75
+
76
  $excerpt = $excerpt . $ellipsis;
77
 
78
  if (relevanssi_s2member_level($post->ID) == 1) $excerpt = $post->post_excerpt;
88
  * @return array - element 0 is the excerpt, element 1 the number of term hits, element 2 is
89
  * true, if the excerpt is from the start of the content.
90
  */
91
+ function relevanssi_create_excerpt($content, $terms, $query) {
92
  // If you need to modify these on the go, use 'pre_option_relevanssi_excerpt_length' filter.
93
  $excerpt_length = get_option("relevanssi_excerpt_length");
94
  $type = get_option("relevanssi_excerpt_type");
96
  $best_excerpt_term_hits = -1;
97
  $excerpt = "";
98
 
99
+ $content = " $content";
100
+
101
+ $phrases = relevanssi_extract_phrases(stripslashes($query));
102
+
103
+ $non_phrase_terms = array();
104
+ foreach ($phrases as $phrase) {
105
+ $phrase_terms = array_keys(relevanssi_tokenize($phrase, $remove_stopwords = false));
106
+ foreach ($terms as $term) {
107
+ if (!in_array($term, $phrase_terms)) {
108
+ $non_phrase_terms[] = $term;
109
+ }
110
+ }
111
+ $terms = $non_phrase_terms;
112
+ $terms[] = $phrase;
113
+ }
114
+
115
+ uksort($terms, 'relevanssi_strlen_sort');
116
+
117
+ /*
118
+ $highlight = get_option('relevanssi_highlight');
119
+ if ("none" != $highlight) {
120
+ if (!is_admin()) {
121
+ $content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
122
+ // html_entity_decode to avoid highlighting from breaking HTML entities
123
+ }
124
+ }
125
+ */
126
+
127
  $start = false;
128
  if ("chars" == $type) {
129
  $term_hits = 0;
132
  if (function_exists('mb_stripos')) {
133
  $pos = ("" == $content) ? false : mb_stripos($content, $term);
134
  }
135
+ else if (function_exists('mb_strpos') && function_exists('mb_strtoupper') && function_exists('mb_substr')) {
136
  $pos = mb_strpos($content, $term);
137
  if (false === $pos) {
138
  $titlecased = mb_strtoupper(mb_substr($term, 0, 1)) . mb_substr($term, 1);
207
  else if (function_exists('mb_strpos')) {
208
  $pos = mb_strpos($excerpt_slice, $term);
209
  if (false === $pos) {
210
+ if (function_exists('mb_strtoupper') && function_exists('mb_strpos') && function_exists('mb_substr')) {
211
+ $titlecased = mb_strtoupper(mb_substr($term, 0, 1)) . mb_substr($term, 1);
212
+ $pos = mb_strpos($excerpt_slice, $titlecased);
213
+ if (false === $pos) {
214
+ $pos = mb_strpos($excerpt_slice, mb_strtoupper($term));
215
+ }
216
+ }
217
+ else {
218
+ $titlecased = strtoupper(substr($term, 0, 1)) . substr($term, 1);
219
+ $pos = strpos($excerpt_slice, $titlecased);
220
+ if (false === $pos) {
221
+ $pos = strpos($excerpt_slice, strtoupper($term));
222
+ }
223
  }
224
  }
225
  }
261
  /** HIGHLIGHTING **/
262
 
263
  function relevanssi_highlight_in_docs($content) {
264
+ global $wp_query;
265
+ if (is_singular() && in_the_loop()) {
266
+ if (isset($_SERVER['HTTP_REFERER'])) {
267
+ $referrer = preg_replace('@(http|https)://@', '', stripslashes(urldecode($_SERVER['HTTP_REFERER'])));
268
+ $args = explode('?', $referrer);
269
+ $query = array();
270
 
271
+ if ( count( $args ) > 1 )
272
+ parse_str( $args[1], $query );
273
 
274
+ if (substr($referrer, 0, strlen($_SERVER['SERVER_NAME'])) == $_SERVER['SERVER_NAME']) {
275
+ // Local search
276
+ if (isset($query['s'])) {
277
+ $content = relevanssi_highlight_terms($content, $query['s']);
278
+ }
279
+ }
280
+ if (function_exists('relevanssi_nonlocal_highlighting')) {
281
+ $content = relevanssi_nonlocal_highlighting($referrer, $content, $query);
282
+ }
283
  }
284
  }
285
 
333
  return $excerpt;
334
  }
335
 
336
+ $start_emp_token = "**[";
337
+ $end_emp_token = "]**";
338
 
339
  if ( function_exists('mb_internal_encoding') )
340
  mb_internal_encoding("UTF-8");
341
 
342
+ $terms = array_keys(relevanssi_tokenize($query, $remove_stopwords = true, $min_word_length = -1));
 
 
343
 
344
+ if (is_array($query)) $query = implode(' ', $query); // just in case
345
+ $phrases = relevanssi_extract_phrases(stripslashes($query));
346
+
347
  $non_phrase_terms = array();
348
  foreach ($phrases as $phrase) {
349
+ $phrase_terms = array_keys(relevanssi_tokenize($phrase, $remove_stopwords = false));
350
  foreach ($terms as $term) {
351
  if (!in_array($term, $phrase_terms)) {
352
  $non_phrase_terms[] = $term;
356
  $terms[] = $phrase;
357
  }
358
 
359
+ uksort($terms, 'relevanssi_strlen_sort');
360
 
361
  get_option('relevanssi_word_boundaries', 'on') == 'on' ? $word_boundaries = true : $word_boundaries = false;
362
  foreach ($terms as $term) {
363
+ $pr_term = relevanssi_replace_punctuation(preg_quote($term, '/'));
364
+
365
  if ($word_boundaries) {
366
+ $excerpt = preg_replace("/(\b$pr_term|$pr_term\b)(?!(^&+)?(;))/iu", $start_emp_token . '\\1' . $end_emp_token, $excerpt);
367
  }
368
  else {
369
+ $excerpt = preg_replace("/($pr_term)(?!(^&+)?(;))/iu", $start_emp_token . '\\1' . $end_emp_token, $excerpt);
370
+ }
371
+
372
+ $preg_start = preg_quote($start_emp_token);
373
+ $preg_end = preg_quote($end_emp_token);
374
+
375
+ if (preg_match_all('/<.*>/U', $excerpt, $matches) > 0) {
376
+ // Remove highlights from inside HTML tags
377
+ foreach ($matches as $match) {
378
+ $new_match = str_replace($start_emp_token, '', $match);
379
+ $new_match = str_replace($end_emp_token, '', $new_match);
380
+ $excerpt = str_replace($match, $new_match, $excerpt);
381
+ }
382
+ }
383
+
384
+ if (preg_match_all('/<(style|script|object|embed)>.*<\/(style|script|object|embed)>/U', $excerpt, $matches) > 0) {
385
+ // Remove highlights in style, object, embed and script tags
386
+ foreach ($matches as $match) {
387
+ $new_match = str_replace($start_emp_token, '', $match);
388
+ $new_match = str_replace($end_emp_token, '', $new_match);
389
+ $excerpt = str_replace($match, $new_match, $excerpt);
390
+ }
391
  }
 
392
  }
393
 
394
  $excerpt = relevanssi_remove_nested_highlights($excerpt, $start_emp_token, $end_emp_token);
395
+
396
+ /*
397
+ $excerpt = htmlentities($excerpt, ENT_QUOTES, 'UTF-8');
398
+ // return the HTML entities that were stripped before
399
+ */
400
+
401
  $excerpt = str_replace($start_emp_token, $start_emp, $excerpt);
402
  $excerpt = str_replace($end_emp_token, $end_emp, $excerpt);
403
  $excerpt = str_replace($end_emp . $start_emp, "", $excerpt);
409
  return $excerpt;
410
  }
411
 
412
+ function relevanssi_replace_punctuation($a) {
413
+ $a = preg_replace('/[[:punct:]]+/u', '.+?', $a);
414
+ return $a;
415
+ }
416
+
417
  function relevanssi_remove_nested_highlights($s, $a, $b) {
418
  $offset = 0;
419
  $string = "";
lib/indexing.php CHANGED
@@ -1,6 +1,9 @@
1
  <?php
2
 
3
  function relevanssi_build_index($extend = false) {
 
 
 
4
  global $wpdb, $relevanssi_variables;
5
  $relevanssi_table = $relevanssi_variables['relevanssi_table'];
6
 
@@ -20,6 +23,19 @@ function relevanssi_build_index($extend = false) {
20
  $restriction = "";
21
  }
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  $n = 0;
24
  $size = 0;
25
 
@@ -38,15 +54,18 @@ function relevanssi_build_index($extend = false) {
38
  relevanssi_index_users();
39
  }
40
  }
41
-
42
- $q = "SELECT post.ID
43
  FROM $wpdb->posts parent, $wpdb->posts post WHERE
44
- (parent.post_status IN ('publish', 'draft', 'private', 'pending', 'future'))
45
  AND (
46
  (post.post_status='inherit'
47
  AND post.post_parent=parent.ID)
48
  OR
49
  (parent.ID=post.ID)
 
 
 
50
  )
51
  $restriction";
52
  update_option('relevanssi_index', '');
@@ -58,20 +77,24 @@ function relevanssi_build_index($extend = false) {
58
  $size = $limit;
59
  $limit = " LIMIT $limit";
60
  }
61
- $q = "SELECT post.ID
62
  FROM $wpdb->posts parent, $wpdb->posts post WHERE
63
- (parent.post_status IN ('publish', 'draft', 'private', 'pending', 'future'))
64
  AND (
65
  (post.post_status='inherit'
66
  AND post.post_parent=parent.ID)
67
  OR
68
  (parent.ID=post.ID)
 
 
 
69
  )
70
  AND post.ID NOT IN (SELECT DISTINCT(doc) FROM $relevanssi_table) $restriction $limit";
71
  }
72
 
73
  $custom_fields = relevanssi_get_custom_fields();
74
 
 
75
  $content = $wpdb->get_results($q);
76
 
77
  foreach ($content as $post) {
@@ -79,6 +102,9 @@ function relevanssi_build_index($extend = false) {
79
  // n calculates the number of insert queries
80
  }
81
 
 
 
 
82
  echo '<div id="message" class="updated fade"><p>'
83
  . __((($size == 0) || (count($content) < $size)) ? "Indexing complete!" : "More to index...", "relevanssi")
84
  . '</p></div>';
@@ -123,7 +149,7 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
123
  $post = get_post($post['ID']);
124
  }
125
 
126
- if (!isset($post)) {
127
  // No $post set, so we need to use $indexpost, if it's a post object
128
  $post_was_null = true;
129
  if (is_object($indexpost)) {
@@ -209,30 +235,12 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
209
  $n++;
210
  $insert_data[$pcom]['comment'] = $count;
211
  }
212
- }
213
  }
214
  } //Added by OdditY END <-
215
 
216
 
217
- $taxonomies = array();
218
- //Added by OdditY - INDEX TAGs of the POST ->
219
- if ("on" == get_option("relevanssi_include_tags")) {
220
- array_push($taxonomies, "post_tag");
221
- } // Added by OdditY END <-
222
-
223
- $custom_taxos = get_option("relevanssi_custom_taxonomies");
224
- if ("" != $custom_taxos) {
225
- $cts = explode(",", $custom_taxos);
226
- foreach ($cts as $taxon) {
227
- $taxon = trim($taxon);
228
- array_push($taxonomies, $taxon);
229
- }
230
- }
231
-
232
- // index categories
233
- if ("on" == get_option("relevanssi_include_cats")) {
234
- array_push($taxonomies, 'category');
235
- }
236
 
237
  // Then process all taxonomies, if any.
238
  foreach ($taxonomies as $taxonomy) {
@@ -257,18 +265,21 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
257
  $custom_fields = get_post_custom_keys($post->ID);
258
  $remove_underscore_fields = true;
259
  }
260
- foreach ($custom_fields as $field) {
261
- if ($remove_underscore_fields) {
262
- if (substr($field, 0, 1) == '_') continue;
263
- }
264
- $values = get_post_meta($post->ID, $field, false);
265
- if ("" == $values) continue;
266
- foreach ($values as $value) {
267
- $value_tokens = relevanssi_tokenize($value, true, $min_word_length);
268
- foreach ($value_tokens as $token => $count) {
269
- isset($insert_data[$token]['customfield']) ? $insert_data[$token]['customfield'] += $count : $insert_data[$token]['customfield'] = $count;
270
- if (function_exists('relevanssi_customfield_detail')) {
271
- $insert_data = relevanssi_customfield_detail($insert_data, $token, $count, $field);
 
 
 
272
  }
273
  }
274
  }
@@ -292,7 +303,6 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
292
 
293
  if (count($titles) > 0) {
294
  foreach ($titles as $title => $count) {
295
- if (strlen($title) < 2) continue;
296
  $n++;
297
  isset($insert_data[$title]['title']) ? $insert_data[$title]['title'] += $count : $insert_data[$title]['title'] = $count;
298
  }
@@ -314,8 +324,34 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
314
 
315
  if ('on' == get_option('relevanssi_expand_shortcodes')) {
316
  if (function_exists("do_shortcode")) {
317
- remove_shortcode('contact-form'); // Jetpack Contact Form causes an error message
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
  $contents = do_shortcode($contents);
 
 
 
 
 
319
  }
320
  }
321
  else {
@@ -366,15 +402,17 @@ function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields
366
  $mysqlcolumn = 0;
367
  extract($data);
368
 
369
- $value = $wpdb->prepare("(%d, %s, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %s, %s, %s, %d)",
370
- $post->ID, $term, $content, $title, $comment, $tag, $link, $author, $category, $excerpt, $taxonomy, $customfield, $type, $taxonomy_detail, $customfield_detail, $mysqlcolumn);
 
 
371
 
372
  array_push($values, $value);
373
  }
374
 
375
  if (!empty($values)) {
376
  $values = implode(', ', $values);
377
- $query = "INSERT IGNORE INTO $relevanssi_table (doc, term, content, title, comment, tag, link, author, category, excerpt, taxonomy, customfield, type, taxonomy_detail, customfield_detail, mysqlcolumn)
378
  VALUES $values";
379
  $wpdb->query($query);
380
  }
@@ -457,7 +495,7 @@ function relevanssi_update_child_posts($new_status, $old_status, $post) {
457
  // and calls appropriate indexing function on child posts/attachments
458
  global $wpdb;
459
 
460
- $index_statuses = array('publish', 'private', 'draft', 'pending', 'future');
461
  if (($new_status == $old_status)
462
  || (in_array($new_status, $index_statuses) && in_array($old_status, $index_statuses))
463
  || (in_array($post->post_type, array('attachment', 'revision')))) {
@@ -494,7 +532,7 @@ function relevanssi_edit($post) {
494
  }
495
  // END added by renaissancehack
496
 
497
- $index_statuses = array('publish', 'private', 'draft', 'pending', 'future');
498
  if (!in_array($post_status, $index_statuses)) {
499
  // The post isn't supposed to be indexed anymore, remove it from index
500
  relevanssi_remove_doc($post);
@@ -533,7 +571,7 @@ function relevanssi_insert_edit($post_id) {
533
  $post_status = $wpdb->get_var( "SELECT p.post_status FROM $wpdb->posts p, $wpdb->posts c WHERE c.ID=$post_id AND c.post_parent=p.ID" );
534
  }
535
 
536
- $index_statuses = array('publish', 'private', 'draft', 'future', 'pending');
537
  if ( !in_array( $post_status, $index_statuses ) ) {
538
  // The post isn't supposed to be indexed anymore, remove it from index
539
  relevanssi_remove_doc( $post_id );
@@ -593,6 +631,9 @@ function relevanssi_comment_index($comID,$action="add") {
593
  function relevanssi_get_comments($postID) {
594
  global $wpdb;
595
 
 
 
 
596
  $comtype = get_option("relevanssi_index_comments");
597
  $restriction = "";
598
  $comment_string = "";
@@ -613,7 +654,7 @@ function relevanssi_get_comments($postID) {
613
  $from = 0;
614
 
615
  while ( true ) {
616
- $sql = "SELECT comment_content, comment_author
617
  FROM $wpdb->comments
618
  WHERE comment_post_ID = '$postID'
619
  AND comment_approved = '1'
@@ -622,7 +663,7 @@ function relevanssi_get_comments($postID) {
622
  $comments = $wpdb->get_results($sql);
623
  if (sizeof($comments) == 0) break;
624
  foreach($comments as $comment) {
625
- $comment_string .= $comment->comment_author . ' ' . $comment->comment_content . ' ';
626
  }
627
  $from += $to;
628
  }
1
  <?php
2
 
3
  function relevanssi_build_index($extend = false) {
4
+ if (function_exists('wp_suspend_cache_addition'))
5
+ wp_suspend_cache_addition(true); // Thanks to Julien Mession
6
+
7
  global $wpdb, $relevanssi_variables;
8
  $relevanssi_table = $relevanssi_variables['relevanssi_table'];
9
 
23
  $restriction = "";
24
  }
25
 
26
+ $valid_status_array = apply_filters('relevanssi_valid_status', array('publish', 'draft', 'private', 'pending', 'future'));
27
+ if (is_array($valid_status_array) && count($valid_status_array) > 0) {
28
+ $valid_status = array();
29
+ foreach ($valid_status_array as $status) {
30
+ $valid_status[] = "'$status'";
31
+ }
32
+ $valid_status = implode(',', $valid_status);
33
+ }
34
+ else {
35
+ // this really should never happen
36
+ $valid_status = "'publish', 'draft', 'private', 'pending', 'future'";
37
+ }
38
+
39
  $n = 0;
40
  $size = 0;
41
 
54
  relevanssi_index_users();
55
  }
56
  }
57
+
58
+ $q = "SELECT DISTINCT(post.ID)
59
  FROM $wpdb->posts parent, $wpdb->posts post WHERE
60
+ (parent.post_status IN ($valid_status))
61
  AND (
62
  (post.post_status='inherit'
63
  AND post.post_parent=parent.ID)
64
  OR
65
  (parent.ID=post.ID)
66
+ OR
67
+ (post.post_status='inherit'
68
+ AND post.post_parent=0)
69
  )
70
  $restriction";
71
  update_option('relevanssi_index', '');
77
  $size = $limit;
78
  $limit = " LIMIT $limit";
79
  }
80
+ $q = "SELECT DISTINCT(post.ID)
81
  FROM $wpdb->posts parent, $wpdb->posts post WHERE
82
+ (parent.post_status IN ($valid_status))
83
  AND (
84
  (post.post_status='inherit'
85
  AND post.post_parent=parent.ID)
86
  OR
87
  (parent.ID=post.ID)
88
+ OR
89
+ (post.post_status='inherit'
90
+ AND post.post_parent=0)
91
  )
92
  AND post.ID NOT IN (SELECT DISTINCT(doc) FROM $relevanssi_table) $restriction $limit";
93
  }
94
 
95
  $custom_fields = relevanssi_get_custom_fields();
96
 
97
+ do_action('relevanssi_pre_indexing_query');
98
  $content = $wpdb->get_results($q);
99
 
100
  foreach ($content as $post) {
102
  // n calculates the number of insert queries
103
  }
104
 
105
+ $wpdb->query("ANALYZE TABLE $relevanssi_table");
106
+ // To prevent empty indices
107
+
108
  echo '<div id="message" class="updated fade"><p>'
109
  . __((($size == 0) || (count($content) < $size)) ? "Indexing complete!" : "More to index...", "relevanssi")
110
  . '</p></div>';
149
  $post = get_post($post['ID']);
150
  }
151
 
152
+ if (empty($post)) {
153
  // No $post set, so we need to use $indexpost, if it's a post object
154
  $post_was_null = true;
155
  if (is_object($indexpost)) {
235
  $n++;
236
  $insert_data[$pcom]['comment'] = $count;
237
  }
238
+ }
239
  }
240
  } //Added by OdditY END <-
241
 
242
 
243
+ $taxonomies = get_option("relevanssi_index_taxonomies_list");
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
 
245
  // Then process all taxonomies, if any.
246
  foreach ($taxonomies as $taxonomy) {
265
  $custom_fields = get_post_custom_keys($post->ID);
266
  $remove_underscore_fields = true;
267
  }
268
+ $custom_fields = apply_filters('relevanssi_index_custom_fields', $custom_fields);
269
+ if (is_array($custom_fields)) {
270
+ foreach ($custom_fields as $field) {
271
+ if ($remove_underscore_fields) {
272
+ if (substr($field, 0, 1) == '_') continue;
273
+ }
274
+ $values = get_post_meta($post->ID, $field, false);
275
+ if ("" == $values) continue;
276
+ foreach ($values as $value) {
277
+ $value_tokens = relevanssi_tokenize($value, true, $min_word_length);
278
+ foreach ($value_tokens as $token => $count) {
279
+ isset($insert_data[$token]['customfield']) ? $insert_data[$token]['customfield'] += $count : $insert_data[$token]['customfield'] = $count;
280
+ if (function_exists('relevanssi_customfield_detail')) {
281
+ $insert_data = relevanssi_customfield_detail($insert_data, $token, $count, $field);
282
+ }
283
  }
284
  }
285
  }
303
 
304
  if (count($titles) > 0) {
305
  foreach ($titles as $title => $count) {
 
306
  $n++;
307
  isset($insert_data[$title]['title']) ? $insert_data[$title]['title'] += $count : $insert_data[$title]['title'] = $count;
308
  }
324
 
325
  if ('on' == get_option('relevanssi_expand_shortcodes')) {
326
  if (function_exists("do_shortcode")) {
327
+ // WP Table Reloaded support
328
+ if (defined('WP_TABLE_RELOADED_ABSPATH')) {
329
+ include_once(WP_TABLE_RELOADED_ABSPATH . 'controllers/controller-frontend.php');
330
+ $My_WP_Table_Reloaded = new WP_Table_Reloaded_Controller_Frontend();
331
+ }
332
+ // TablePress support
333
+ if (defined('TABLEPRESS_ABSPATH')) {
334
+ include_once(TABLEPRESS_ABSPATH . 'controllers/controller-frontend.php');
335
+ $My_WP_Table_Reloaded = new TablePress_Frontend_Controller();
336
+ $My_WP_Table_Reloaded->init_shortcodes();
337
+ }
338
+
339
+ $disable_shortcodes = get_option('relevanssi_disable_shortcodes');
340
+ $shortcodes = explode(',', $disable_shortcodes);
341
+ foreach ($shortcodes as $shortcode) {
342
+ remove_shortcode(trim($shortcode));
343
+ }
344
+ remove_shortcode('contact-form'); // Jetpack Contact Form causes an error message
345
+ remove_shortcode('starrater'); // GD Star Rating rater shortcode causes problems
346
+ remove_shortcode('responsive-flipbook'); // Responsive Flipbook causes problems
347
+
348
+ $post_before_shortcode = $post;
349
  $contents = do_shortcode($contents);
350
+ $post = $post_before_shortcode;
351
+
352
+ if (defined('TABLEPRESS_ABSPATH') || defined('WP_TABLE_RELOADED_ABSPATH')) {
353
+ unset($My_WP_Table_Reloaded);
354
+ }
355
  }
356
  }
357
  else {
402
  $mysqlcolumn = 0;
403
  extract($data);
404
 
405
+ $term = trim($term);
406
+
407
+ $value = $wpdb->prepare("(%d, %s, REVERSE(%s), %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %s, %s, %s, %d)",
408
+ $post->ID, $term, $term, $content, $title, $comment, $tag, $link, $author, $category, $excerpt, $taxonomy, $customfield, $type, $taxonomy_detail, $customfield_detail, $mysqlcolumn);
409
 
410
  array_push($values, $value);
411
  }
412
 
413
  if (!empty($values)) {
414
  $values = implode(', ', $values);
415
+ $query = "INSERT IGNORE INTO $relevanssi_table (doc, term, term_reverse, content, title, comment, tag, link, author, category, excerpt, taxonomy, customfield, type, taxonomy_detail, customfield_detail, mysqlcolumn)
416
  VALUES $values";
417
  $wpdb->query($query);
418
  }
495
  // and calls appropriate indexing function on child posts/attachments
496
  global $wpdb;
497
 
498
+ $index_statuses = apply_filters('relevanssi_valid_status', array('publish', 'private', 'draft', 'pending', 'future'));
499
  if (($new_status == $old_status)
500
  || (in_array($new_status, $index_statuses) && in_array($old_status, $index_statuses))
501
  || (in_array($post->post_type, array('attachment', 'revision')))) {
532
  }
533
  // END added by renaissancehack
534
 
535
+ $index_statuses = apply_filters('relevanssi_valid_status', array('publish', 'private', 'draft', 'pending', 'future'));
536
  if (!in_array($post_status, $index_statuses)) {
537
  // The post isn't supposed to be indexed anymore, remove it from index
538
  relevanssi_remove_doc($post);
571
  $post_status = $wpdb->get_var( "SELECT p.post_status FROM $wpdb->posts p, $wpdb->posts c WHERE c.ID=$post_id AND c.post_parent=p.ID" );
572
  }
573
 
574
+ $index_statuses = apply_filters('relevanssi_valid_status', array('publish', 'private', 'draft', 'future', 'pending'));
575
  if ( !in_array( $post_status, $index_statuses ) ) {
576
  // The post isn't supposed to be indexed anymore, remove it from index
577
  relevanssi_remove_doc( $post_id );
631
  function relevanssi_get_comments($postID) {
632
  global $wpdb;
633
 
634
+ if (apply_filters('relevanssi_index_comments_exclude', false, $postID))
635
+ return "";
636
+
637
  $comtype = get_option("relevanssi_index_comments");
638
  $restriction = "";
639
  $comment_string = "";
654
  $from = 0;
655
 
656
  while ( true ) {
657
+ $sql = "SELECT comment_ID, comment_content, comment_author
658
  FROM $wpdb->comments
659
  WHERE comment_post_ID = '$postID'
660
  AND comment_approved = '1'
663
  $comments = $wpdb->get_results($sql);
664
  if (sizeof($comments) == 0) break;
665
  foreach($comments as $comment) {
666
+ $comment_string .= apply_filters('relevanssi_comment_content_to_index', $comment->comment_author . ' ' . $comment->comment_content . ' ', $comment_ID);
667
  }
668
  $from += $to;
669
  }
lib/init.php CHANGED
@@ -2,7 +2,6 @@
2
 
3
  add_action('admin_menu', 'relevanssi_menu');
4
  add_filter('the_posts', 'relevanssi_query');
5
- add_action('save_post', 'relevanssi_edit', 99, 1); // thanks to Brian D Gajus
6
  add_action('delete_post', 'relevanssi_delete');
7
  add_action('comment_post', 'relevanssi_comment_index'); //added by OdditY
8
  add_action('edit_comment', 'relevanssi_comment_edit'); //added by OdditY
@@ -19,19 +18,19 @@ add_action('transition_post_status', 'relevanssi_update_child_posts',99,3);
19
  add_action('init', 'relevanssi_init');
20
  add_action('init', 'relevanssi_check_old_data', 99);
21
  add_filter('relevanssi_hits_filter', 'relevanssi_wpml_filter');
22
- add_filter('posts_request', 'relevanssi_prevent_default_request', 9, 2 );
23
  add_filter('relevanssi_remove_punctuation', 'relevanssi_remove_punct');
24
- add_filter('relevanssi_post_ok', 'relevanssi_default_post_ok', 10, 2);
25
  add_filter('relevanssi_query_filter', 'relevanssi_limit_filter');
26
  add_filter('query_vars', 'relevanssi_query_vars');
27
 
28
  global $relevanssi_variables;
29
  register_activation_hook($relevanssi_variables['file'], 'relevanssi_install');
30
- $plugin_dir = dirname(plugin_basename($relevanssi_variables['file']));
31
- load_plugin_textdomain('relevanssi', false, $plugin_dir);
32
 
33
  function relevanssi_init() {
34
  global $pagenow, $relevanssi_variables;
 
 
35
 
36
  isset($_POST['index']) ? $index = true : $index = false;
37
  if (!get_option('relevanssi_indexed') && !$index) {
@@ -77,7 +76,7 @@ function relevanssi_menu() {
77
  add_options_page(
78
  $name,
79
  $name,
80
- 'manage_options',
81
  $relevanssi_variables['file'],
82
  'relevanssi_options'
83
  );
@@ -137,6 +136,7 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
137
 
138
  $sql = "CREATE TABLE " . $relevanssi_table . " (doc bigint(20) NOT NULL DEFAULT '0',
139
  term varchar(50) NOT NULL DEFAULT '0',
 
140
  content mediumint(9) NOT NULL DEFAULT '0',
141
  title mediumint(9) NOT NULL DEFAULT '0',
142
  comment mediumint(9) NOT NULL DEFAULT '0',
@@ -157,11 +157,39 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
157
 
158
  dbDelta($sql);
159
 
160
- $sql = "CREATE INDEX terms ON $relevanssi_table (term(20))";
161
- $wpdb->query($sql);
162
 
163
- $sql = "CREATE INDEX docs ON $relevanssi_table (doc)";
164
- $wpdb->query($sql);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
  $sql = "CREATE TABLE " . $relevanssi_stopword_table . " (stopword varchar(50) $charset_collate_bin_column NOT NULL,
167
  UNIQUE KEY stopword (stopword)) $charset_collate;";
@@ -221,6 +249,15 @@ function relevanssi_create_database_tables($relevanssi_db_version) {
221
  $wpdb->query($sql);
222
  }
223
 
 
 
 
 
 
 
 
 
 
224
  update_option('relevanssi_db_version', $relevanssi_db_version);
225
  }
226
 
2
 
3
  add_action('admin_menu', 'relevanssi_menu');
4
  add_filter('the_posts', 'relevanssi_query');
 
5
  add_action('delete_post', 'relevanssi_delete');
6
  add_action('comment_post', 'relevanssi_comment_index'); //added by OdditY
7
  add_action('edit_comment', 'relevanssi_comment_edit'); //added by OdditY
18
  add_action('init', 'relevanssi_init');
19
  add_action('init', 'relevanssi_check_old_data', 99);
20
  add_filter('relevanssi_hits_filter', 'relevanssi_wpml_filter');
21
+ add_filter('posts_request', 'relevanssi_prevent_default_request', 10, 2 );
22
  add_filter('relevanssi_remove_punctuation', 'relevanssi_remove_punct');
23
+ add_filter('relevanssi_post_ok', 'relevanssi_default_post_ok', 9, 2);
24
  add_filter('relevanssi_query_filter', 'relevanssi_limit_filter');
25
  add_filter('query_vars', 'relevanssi_query_vars');
26
 
27
  global $relevanssi_variables;
28
  register_activation_hook($relevanssi_variables['file'], 'relevanssi_install');
 
 
29
 
30
  function relevanssi_init() {
31
  global $pagenow, $relevanssi_variables;
32
+ $plugin_dir = dirname(plugin_basename($relevanssi_variables['file']));
33
+ load_plugin_textdomain('relevanssi', false, $plugin_dir);
34
 
35
  isset($_POST['index']) ? $index = true : $index = false;
36
  if (!get_option('relevanssi_indexed') && !$index) {
76
  add_options_page(
77
  $name,
78
  $name,
79
+ apply_filters('relevanssi_options_capability', 'manage_options'),
80
  $relevanssi_variables['file'],
81
  'relevanssi_options'
82
  );
136
 
137
  $sql = "CREATE TABLE " . $relevanssi_table . " (doc bigint(20) NOT NULL DEFAULT '0',
138
  term varchar(50) NOT NULL DEFAULT '0',
139
+ term_reverse varchar(50) NOT NULL DEFAULT '0',
140
  content mediumint(9) NOT NULL DEFAULT '0',
141
  title mediumint(9) NOT NULL DEFAULT '0',
142
  comment mediumint(9) NOT NULL DEFAULT '0',
157
 
158
  dbDelta($sql);
159
 
160
+ $sql = "SHOW INDEX FROM $relevanssi_table";
161
+ $indices = $wpdb->get_results($sql);
162
 
163
+ $terms_exists = false;
164
+ $relevanssi_term_reverse_idx_exists = false;
165
+ $docs_exists = false;
166
+ $typeitem_exists = false;
167
+ foreach ($indices as $index) {
168
+ if ($index->Key_name == 'terms') $terms_exists = true;
169
+ if ($index->Key_name == 'relevanssi_term_reverse_idx') $relevanssi_term_reverse_idx_exists = true;
170
+ if ($index->Key_name == 'docs') $docs_exists = true;
171
+ if ($index->Key_name == 'typeitem') $typeitem_exists = true;
172
+ }
173
+
174
+ if (!$terms_exists) {
175
+ $sql = "CREATE INDEX terms ON $relevanssi_table (term(20))";
176
+ $wpdb->query($sql);
177
+ }
178
+
179
+ if (!$relevanssi_term_reverse_idx_exists) {
180
+ $sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10))";
181
+ $wpdb->query($sql);
182
+ }
183
+
184
+ if (!$docs_exists) {
185
+ $sql = "CREATE INDEX docs ON $relevanssi_table (doc)";
186
+ $wpdb->query($sql);
187
+ }
188
+
189
+ if (!$typeitem_exists) {
190
+ $sql = "CREATE INDEX typeitem ON $relevanssi_table (type, item)";
191
+ $wpdb->query($sql);
192
+ }
193
 
194
  $sql = "CREATE TABLE " . $relevanssi_stopword_table . " (stopword varchar(50) $charset_collate_bin_column NOT NULL,
195
  UNIQUE KEY stopword (stopword)) $charset_collate;";
249
  $wpdb->query($sql);
250
  }
251
 
252
+ if (get_option('relevanssi_db_version') < 16) {
253
+ $sql = "ALTER TABLE $relevanssi_table ADD COLUMN term_reverse VARCHAR(50);";
254
+ $wpdb->query($sql);
255
+ $sql = "UPDATE $relevanssi_table SET term_reverse = REVERSE(term);";
256
+ $wpdb->query($sql);
257
+ $sql = "CREATE INDEX relevanssi_term_reverse_idx ON $relevanssi_table (term_reverse(10));";
258
+ $wpdb->query($sql);
259
+ }
260
+
261
  update_option('relevanssi_db_version', $relevanssi_db_version);
262
  }
263
 
lib/interface.php CHANGED
@@ -166,14 +166,6 @@ function update_relevanssi_options() {
166
  $_REQUEST['relevanssi_show_matches'] = "off";
167
  }
168
 
169
- if (!isset($_REQUEST['relevanssi_inccats'])) {
170
- $_REQUEST['relevanssi_inccats'] = "off";
171
- }
172
-
173
- if (!isset($_REQUEST['relevanssi_inctags'])) {
174
- $_REQUEST['relevanssi_inctags'] = "off";
175
- }
176
-
177
  if (!isset($_REQUEST['relevanssi_throttle'])) {
178
  $_REQUEST['relevanssi_throttle'] = "off";
179
  }
@@ -190,6 +182,10 @@ function update_relevanssi_options() {
190
  $_REQUEST['relevanssi_log_queries'] = "off";
191
  }
192
 
 
 
 
 
193
  if (!isset($_REQUEST['relevanssi_disable_or_fallback'])) {
194
  $_REQUEST['relevanssi_disable_or_fallback'] = "off";
195
  }
@@ -249,6 +245,8 @@ function update_relevanssi_options() {
249
 
250
  $post_type_weights = array();
251
  $index_post_types = array();
 
 
252
  foreach ($_REQUEST as $key => $value) {
253
  if (substr($key, 0, strlen('relevanssi_weight_')) == 'relevanssi_weight_') {
254
  $type = substr($key, strlen('relevanssi_weight_'));
@@ -258,6 +256,14 @@ function update_relevanssi_options() {
258
  $type = substr($key, strlen('relevanssi_index_type_'));
259
  if ('on' == $value) $index_post_types[$type] = true;
260
  }
 
 
 
 
 
 
 
 
261
  }
262
 
263
  if (count($post_type_weights) > 0) {
@@ -268,11 +274,15 @@ function update_relevanssi_options() {
268
  update_option('relevanssi_index_post_types', array_keys($index_post_types));
269
  }
270
 
 
 
 
271
  if (isset($_REQUEST['relevanssi_admin_search'])) update_option('relevanssi_admin_search', $_REQUEST['relevanssi_admin_search']);
272
  if (isset($_REQUEST['relevanssi_excerpts'])) update_option('relevanssi_excerpts', $_REQUEST['relevanssi_excerpts']);
273
  if (isset($_REQUEST['relevanssi_excerpt_type'])) update_option('relevanssi_excerpt_type', $_REQUEST['relevanssi_excerpt_type']);
274
  if (isset($_REQUEST['relevanssi_excerpt_allowable_tags'])) update_option('relevanssi_excerpt_allowable_tags', $_REQUEST['relevanssi_excerpt_allowable_tags']);
275
  if (isset($_REQUEST['relevanssi_log_queries'])) update_option('relevanssi_log_queries', $_REQUEST['relevanssi_log_queries']);
 
276
  if (isset($_REQUEST['relevanssi_highlight'])) update_option('relevanssi_highlight', $_REQUEST['relevanssi_highlight']);
277
  if (isset($_REQUEST['relevanssi_highlight_docs'])) update_option('relevanssi_highlight_docs', $_REQUEST['relevanssi_highlight_docs']);
278
  if (isset($_REQUEST['relevanssi_highlight_comments'])) update_option('relevanssi_highlight_comments', $_REQUEST['relevanssi_highlight_comments']);
@@ -282,13 +292,10 @@ function update_relevanssi_options() {
282
  if (isset($_REQUEST['relevanssi_class'])) update_option('relevanssi_class', $_REQUEST['relevanssi_class']);
283
  if (isset($_REQUEST['relevanssi_cat'])) update_option('relevanssi_cat', $_REQUEST['relevanssi_cat']);
284
  if (isset($_REQUEST['relevanssi_excat'])) update_option('relevanssi_excat', $_REQUEST['relevanssi_excat']);
285
- if (isset($_REQUEST['relevanssi_custom_taxonomies'])) update_option('relevanssi_custom_taxonomies', $_REQUEST['relevanssi_custom_taxonomies']);
286
  if (isset($_REQUEST['relevanssi_index_fields'])) update_option('relevanssi_index_fields', $_REQUEST['relevanssi_index_fields']);
287
  if (isset($_REQUEST['relevanssi_expst'])) update_option('relevanssi_exclude_posts', $_REQUEST['relevanssi_expst']); //added by OdditY
288
- if (isset($_REQUEST['relevanssi_inctags'])) update_option('relevanssi_include_tags', $_REQUEST['relevanssi_inctags']); //added by OdditY
289
  if (isset($_REQUEST['relevanssi_hilite_title'])) update_option('relevanssi_hilite_title', $_REQUEST['relevanssi_hilite_title']); //added by OdditY
290
  if (isset($_REQUEST['relevanssi_index_comments'])) update_option('relevanssi_index_comments', $_REQUEST['relevanssi_index_comments']); //added by OdditY
291
- if (isset($_REQUEST['relevanssi_inccats'])) update_option('relevanssi_include_cats', $_REQUEST['relevanssi_inccats']);
292
  if (isset($_REQUEST['relevanssi_index_author'])) update_option('relevanssi_index_author', $_REQUEST['relevanssi_index_author']);
293
  if (isset($_REQUEST['relevanssi_index_excerpt'])) update_option('relevanssi_index_excerpt', $_REQUEST['relevanssi_index_excerpt']);
294
  if (isset($_REQUEST['relevanssi_fuzzy'])) update_option('relevanssi_fuzzy', $_REQUEST['relevanssi_fuzzy']);
@@ -370,7 +377,7 @@ function relevanssi_remove_all_stopwords() {
370
  function relevanssi_remove_stopword($term) {
371
  global $wpdb, $relevanssi_variables;
372
 
373
- $q = $wpdb->prepare("DELETE FROM " . $relevanssi_variables['stopword_table'] . " WHERE stopword = '$term'");
374
  $success = $wpdb->query($q);
375
 
376
  if ($success) {
@@ -474,15 +481,11 @@ function relevanssi_query_log() {
474
 
475
  echo '<div style="clear: both"></div>';
476
  $nonce = wp_nonce_field('relevanssi_reset_logs', '_relresnonce', true, false);
477
- echo <<<EOR
478
- <h3>Reset Logs</h3>
479
-
480
- <form method="post">
481
- $nonce
482
- <p>To reset the logs, type 'reset' into the box here <input type="text" name="relevanssi_reset_code" />
483
- and click <input type="submit" name="relevanssi_reset" value="Reset" class="button" /></p>
484
- </form>
485
- EOR;
486
 
487
  }
488
 
@@ -495,13 +498,13 @@ function relevanssi_total_queries( $title ) {
495
 
496
  $count = array();
497
 
498
- $count['Today and yesterday'] = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 1;" ) );
499
- $count['Last 7 days'] = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 7;" ) );
500
- $count['Last 30 days'] = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 30;" ) );
501
- $count['Forever'] = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM $log_table;" ) );
502
 
503
- echo "<table class='widefat'><thead><tr><th colspan='2'>$title</th></tr></thead><tbody><tr><th>When</th><th>Searches</th></tr>";
504
- foreach ( $count as $when => $searches ) {
505
  echo "<tr><td style='padding: 3px 5px'>$when</td><td style='padding: 3px 5px;'>$searches</td></tr>";
506
  }
507
  echo "</tbody></table>";
@@ -526,11 +529,11 @@ function relevanssi_date_queries($d, $title, $version = 'good') {
526
  WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= $d
527
  AND hits = 0
528
  GROUP BY query
529
- ORDER BY time DESC
530
  LIMIT 20");
531
 
532
  if (count($queries) > 0) {
533
- echo "<table class='widefat'><thead><tr><th colspan='3'>$title</th></tr></thead><tbody><tr><th>Query</th><th>#</th><th>Hits</th></tr>";
534
  foreach ($queries as $query) {
535
  $url = get_bloginfo('url');
536
  $u_q = urlencode($query->query);
@@ -606,6 +609,15 @@ function relevanssi_options_form() {
606
  $log_queries = '';
607
  }
608
 
 
 
 
 
 
 
 
 
 
609
  $hide_branding = get_option('relevanssi_hide_branding');
610
  $serialize_options['relevanssi_hide_branding'] = $hide_branding;
611
  if ('on' == $hide_branding) {
@@ -652,8 +664,6 @@ function relevanssi_options_form() {
652
  break;
653
  }
654
 
655
- $custom_taxonomies = get_option('relevanssi_custom_taxonomies');
656
- $serialize_options['relevanssi_custom_taxonomies'] = $custom_taxonomies;
657
  $index_fields = get_option('relevanssi_index_fields');
658
  $serialize_options['relevanssi_index_fields'] = $index_fields;
659
 
@@ -703,9 +713,7 @@ function relevanssi_options_form() {
703
  //Added by OdditY ->
704
  $expst = get_option('relevanssi_exclude_posts');
705
  $serialize_options['relevanssi_exclude_posts'] = $expst;
706
- $inctags = ('on' == get_option('relevanssi_include_tags') ? 'checked="checked"' : '');
707
  $hititle = ('on' == get_option('relevanssi_hilite_title') ? 'checked="checked"' : '');
708
- $serialize_options['relevanssi_include_tags'] = get_option('relevanssi_include_tags');
709
  $serialize_options['relevanssi_hilite_title'] = get_option('relevanssi_hilite_title');
710
  $incom_type = get_option('relevanssi_index_comments');
711
  $serialize_options['relevanssi_index_comments'] = $incom_type;
@@ -740,8 +748,6 @@ function relevanssi_options_form() {
740
  $min_word_length = get_option('relevanssi_min_word_length');
741
  $serialize_options['relevanssi_min_word_length'] = $min_word_length;
742
 
743
- $inccats = ('on' == get_option('relevanssi_include_cats') ? 'checked="checked"' : '');
744
- $serialize_options['relevanssi_include_cats'] = get_option('relevanssi_include_cats');
745
  $index_author = ('on' == get_option('relevanssi_index_author') ? 'checked="checked"' : '');
746
  $serialize_options['relevanssi_index_author'] = get_option('relevanssi_index_author');
747
  $index_excerpt = ('on' == get_option('relevanssi_index_excerpt') ? 'checked="checked"' : '');
@@ -765,6 +771,10 @@ function relevanssi_options_form() {
765
  if (empty($index_post_types)) $index_post_types = array();
766
  $serialize_options['relevanssi_index_post_types'] = $index_post_types;
767
 
 
 
 
 
768
  $orderby = get_option('relevanssi_default_orderby');
769
  $serialize_options['relevanssi_default_orderby'] = $orderby;
770
  $orderby_relevance = ('relevance' == $orderby ? 'selected="selected"' : '');
@@ -788,6 +798,9 @@ function relevanssi_options_form() {
788
 
789
  $thousand_separator = get_option('relevanssi_thousand_separator');
790
  $serialize_options['relevanssi_thousand_separator'] = $thousand_separator;
 
 
 
791
 
792
  $index_users = ('on' == get_option('relevanssi_index_users') ? 'checked="checked"' : '');
793
  $serialize_options['relevanssi_index_users'] = get_option('relevanssi_index_users');
@@ -800,9 +813,10 @@ function relevanssi_options_form() {
800
 
801
  $index_taxonomies = ('on' == get_option('relevanssi_index_taxonomies') ? 'checked="checked"' : '');
802
  $serialize_options['relevanssi_index_taxonomies'] = get_option('relevanssi_index_taxonomies');
803
-
804
- $taxonomies_to_index = get_option('relevanssi_taxonomies_to_index');
805
- $serialize_options['relevanssi_taxonomies_to_index'] = $taxonomies_to_index;
 
806
 
807
  $hide_post_controls = ('on' == get_option('relevanssi_hide_post_controls') ? 'checked="checked"' : '');
808
  $serialize_options['relevanssi_hide_post_controls'] = get_option('relevanssi_hide_post_controls');
@@ -881,13 +895,13 @@ function relevanssi_options_form() {
881
  ?>
882
 
883
  <label for='relevanssi_admin_search'><?php _e('Use search for admin:', 'relevanssi'); ?>
884
- <input type='checkbox' name='relevanssi_admin_search' <?php echo $admin_search ?> /></label>
885
  <small><?php _e('If checked, Relevanssi will be used for searches in the admin interface', 'relevanssi'); ?></small>
886
 
887
  <br /><br />
888
 
889
  <label for='relevanssi_implicit_operator'><?php _e("Default operator for the search?", "relevanssi"); ?>
890
- <select name='relevanssi_implicit_operator'>
891
  <option value='AND' <?php echo $implicit_and ?>><?php _e("AND - require all terms", "relevanssi"); ?></option>
892
  <option value='OR' <?php echo $implicit_or ?>><?php _e("OR - any term present is enough", "relevanssi"); ?></option>
893
  </select></label><br />
@@ -896,13 +910,13 @@ function relevanssi_options_form() {
896
  <br /><br />
897
 
898
  <label for='relevanssi_disable_or_fallback'><?php _e("Disable OR fallback:", "relevanssi"); ?>
899
- <input type='checkbox' name='relevanssi_disable_or_fallback' <?php echo $disablefallback ?> /></label><br />
900
  <small><?php _e("If you don't want Relevanssi to fall back to OR search when AND search gets no hits, check this option. For most cases, leave this one unchecked.", 'relevanssi'); ?></small>
901
 
902
  <br /><br />
903
 
904
  <label for='relevanssi_default_orderby'><?php _e('Default order for results:', 'relevanssi'); ?>
905
- <select name='relevanssi_default_orderby'>
906
  <option value='relevance' <?php echo $orderby_relevance ?>><?php _e("Relevance (highly recommended)", "relevanssi"); ?></option>
907
  <option value='post_date' <?php echo $orderby_date ?>><?php _e("Post date", "relevanssi"); ?></option>
908
  </select></label><br />
@@ -911,7 +925,7 @@ function relevanssi_options_form() {
911
  <br /><br />
912
 
913
  <label for='relevanssi_fuzzy'><?php _e('When to use fuzzy matching?', 'relevanssi'); ?>
914
- <select name='relevanssi_fuzzy'>
915
  <option value='sometimes' <?php echo $fuzzy_sometimes ?>><?php _e("When straight search gets no hits", "relevanssi"); ?></option>
916
  <option value='always' <?php echo $fuzzy_always ?>><?php _e("Always", "relevanssi"); ?></option>
917
  <option value='never' <?php echo $fuzzy_never ?>><?php _e("Don't use fuzzy search", "relevanssi"); ?></option>
@@ -925,13 +939,13 @@ function relevanssi_options_form() {
925
  ?>
926
 
927
  <label for='relevanssi_throttle'><?php _e("Limit searches:", "relevanssi"); ?>
928
- <input type='checkbox' name='relevanssi_throttle' <?php echo $throttle ?> /></label><br />
929
  <small><?php _e("If this option is checked, Relevanssi will limit search results to at most 500 results per term. This will improve performance, but may cause some relevant documents to go unfound. However, Relevanssi tries to prioritize the most relevant documents. <strong>This does not work well when sorting results by date.</strong> The throttle can end up cutting off recent posts to favour more relevant posts.", 'relevanssi'); ?></small>
930
 
931
  <br /><br />
932
 
933
  <label for='relevanssi_throttle_limit'><?php _e("Limit:", "relevanssi"); ?>
934
- <input type='text' size='4' name='relevanssi_throttle_limit' value='<?php echo $throttle_limit ?>' /></label><br />
935
  <small><?php _e("For better performance, adjust the limit to a smaller number. Adjusting the limit to 100 - or even lower - should be safe for good results, and might bring a boost in search speed.", 'relevanssi'); ?></small>
936
 
937
  <br /><br />
@@ -957,7 +971,7 @@ function relevanssi_options_form() {
957
  <?php _e('Post titles', 'relevanssi'); ?>
958
  </td>
959
  <td>
960
- <input type='text' name='relevanssi_title_boost' size='4' value='<?php echo $title_boost ?>' />
961
  </td>
962
  <td>
963
  <?php echo $relevanssi_variables['title_boost_default']; ?>
@@ -969,7 +983,7 @@ function relevanssi_options_form() {
969
  <?php _e('Comment text', 'relevanssi'); ?>
970
  </td>
971
  <td>
972
- <input type='text' name='relevanssi_comment_boost' size='4' value='<?php echo $comment_boost ?>' />
973
  </td>
974
  <td>
975
  <?php echo $relevanssi_variables['comment_boost_default']; ?>
@@ -987,10 +1001,10 @@ function relevanssi_options_form() {
987
  <?php if (function_exists('relevanssi_form_recency')) relevanssi_form_recency($recency_bonus, $recency_bonus_days); ?>
988
 
989
  <?php if (function_exists('icl_object_id')) : ?>
990
- <h3 id="wpml"><?php _e('WPML compatibility', 'relevanssi'); ?></h3>
991
 
992
  <label for='relevanssi_wpml_only_current'><?php _e("Limit results to current language:", "relevanssi"); ?>
993
- <input type='checkbox' name='relevanssi_wpml_only_current' <?php echo $wpml_only_current ?> /></label>
994
  <small><?php _e("If this option is checked, Relevanssi will only return results in the current active language. Otherwise results will include posts in every language.", "relevanssi");?></small>
995
 
996
  <?php endif; ?>
@@ -998,13 +1012,19 @@ function relevanssi_options_form() {
998
  <h3 id="logs"><?php _e('Logs', 'relevanssi'); ?></h3>
999
 
1000
  <label for='relevanssi_log_queries'><?php _e("Keep a log of user queries:", "relevanssi"); ?>
1001
- <input type='checkbox' name='relevanssi_log_queries' <?php echo $log_queries ?> /></label>
1002
  <small><?php _e("If checked, Relevanssi will log user queries. The log appears in 'User searches' on the Dashboard admin menu.", 'relevanssi'); ?></small>
1003
 
1004
  <br /><br />
1005
 
 
 
 
 
 
 
1006
  <label for='relevanssi_omit_from_logs'><?php _e("Don't log queries from these users:", "relevanssi"); ?>
1007
- <input type='text' name='relevanssi_omit_from_logs' size='20' value='<?php echo $omit_from_logs ?>' /></label>
1008
  <small><?php _e("Comma-separated list of numeric user IDs or user login names that will not be logged.", "relevanssi"); ?></small>
1009
 
1010
  <?php
@@ -1021,19 +1041,19 @@ function relevanssi_options_form() {
1021
  <h3 id="exclusions"><?php _e("Exclusions and restrictions", "relevanssi"); ?></h3>
1022
 
1023
  <label for='relevanssi_cat'><?php _e('Restrict search to these categories and tags:', 'relevanssi'); ?>
1024
- <input type='text' name='relevanssi_cat' size='20' value='<?php echo $cat ?>' /></label><br />
1025
  <small><?php _e("Enter a comma-separated list of category and tag IDs to restrict search to those categories or tags. You can also use <code>&lt;input type='hidden' name='cats' value='list of cats and tags' /&gt;</code> in your search form. The input field will overrun this setting.", 'relevanssi'); ?></small>
1026
 
1027
  <br /><br />
1028
 
1029
  <label for='relevanssi_excat'><?php _e('Exclude these categories and tags from search:', 'relevanssi'); ?>
1030
- <input type='text' name='relevanssi_excat' size='20' value='<?php echo $excat ?>' /></label><br />
1031
  <small><?php _e("Enter a comma-separated list of category and tag IDs that are excluded from search results. You can exclude categories with the 'cat' input field by using negative values.", 'relevanssi'); ?></small>
1032
 
1033
  <br /><br />
1034
 
1035
- <label for='relevanssi_excat'><?php _e('Exclude these posts/pages from search:', 'relevanssi'); ?>
1036
- <input type='text' name='relevanssi_expst' size='20' value='<?php echo $expst ?>' /></label><br />
1037
  <?php
1038
  if (RELEVANSSI_PREMIUM) {
1039
  echo "<small>" . __("Enter a comma-separated list of post/page IDs that are excluded from search results. This only works here, you can't use the input field option (WordPress doesn't pass custom parameters there). You can also use a checkbox on post/page edit pages to remove posts from index.", 'relevanssi') . "</small>";
@@ -1046,20 +1066,20 @@ function relevanssi_options_form() {
1046
  <br /><br />
1047
 
1048
  <label for='relevanssi_respect_exclude'><?php _e('Respect exclude_from_search for custom post types:', 'relevanssi'); ?>
1049
- <input type='checkbox' name='relevanssi_respect_exclude' <?php echo $respect_exclude ?> /></label><br />
1050
  <small><?php _e("If checked, Relevanssi won't display posts of custom post types that have 'exclude_from_search' set to true. If not checked, Relevanssi will display anything that is indexed.", 'relevanssi'); ?></small>
1051
 
1052
  <h3 id="excerpts"><?php _e("Custom excerpts/snippets", "relevanssi"); ?></h3>
1053
 
1054
  <label for='relevanssi_excerpts'><?php _e("Create custom search result snippets:", "relevanssi"); ?>
1055
- <input type='checkbox' name='relevanssi_excerpts' <?php echo $excerpts ?> /></label><br />
1056
  <small><?php _e("If checked, Relevanssi will create excerpts that contain the search term hits. To make them work, make sure your search result template uses the_excerpt() to display post excerpts.", 'relevanssi'); ?></small>
1057
 
1058
- <br /><br />
1059
 
1060
  <label for='relevanssi_excerpt_length'><?php _e("Length of the snippet:", "relevanssi"); ?>
1061
- <input type='text' name='relevanssi_excerpt_length' size='4' value='<?php echo $excerpt_length ?>' /></label>
1062
- <select name='relevanssi_excerpt_type'>
1063
  <option value='chars' <?php echo $excerpt_chars ?>><?php _e("characters", "relevanssi"); ?></option>
1064
  <option value='words' <?php echo $excerpt_words ?>><?php _e("words", "relevanssi"); ?></option>
1065
  </select><br />
@@ -1068,20 +1088,20 @@ function relevanssi_options_form() {
1068
  <br /><br />
1069
 
1070
  <label for='relevanssi_excerpt_allowable_tags'><?php _e("Allowable tags in excerpts:", "relevanssi"); ?>
1071
- <input type='text' name='relevanssi_excerpt_allowable_tags' size='20' value='<?php echo $excerpt_allowable_tags ?>' /></label>
1072
  <br />
1073
  <small><?php _e("List all tags you want to allow in excerpts, without any whitespace. For example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'.", "relevanssi"); ?></small>
1074
 
1075
  <br /><br />
1076
 
1077
  <label for='relevanssi_show_matches'><?php _e("Show breakdown of search hits in excerpts:", "relevanssi"); ?>
1078
- <input type='checkbox' name='relevanssi_show_matches' <?php echo $show_matches ?> /></label>
1079
  <small><?php _e("Check this to show more information on where the search hits were made. Requires custom snippets to work.", "relevanssi"); ?></small>
1080
 
1081
  <br /><br />
1082
 
1083
  <label for='relevanssi_show_matches_text'><?php _e("The breakdown format:", "relevanssi"); ?>
1084
- <input type='text' name='relevanssi_show_matches_text' value="<?php echo $show_matches_text ?>" size='20' /></label>
1085
  <small><?php _e("Use %body%, %title%, %tags% and %comments% to display the number of hits (in different parts of the post), %total% for total hits, %score% to display the document weight and %terms% to show how many hits each search term got. No double quotes (\") allowed!", "relevanssi"); ?></small>
1086
 
1087
  <h3 id="highlighting"><?php _e("Search hit highlighting", "relevanssi"); ?></h3>
@@ -1090,7 +1110,7 @@ function relevanssi_options_form() {
1090
 
1091
  <div style='margin-left: 2em'>
1092
  <label for='relevanssi_highlight'><?php _e("Highlight query terms in search results:", 'relevanssi'); ?>
1093
- <select name='relevanssi_highlight'>
1094
  <option value='no' <?php echo $highlight_none ?>><?php _e('No highlighting', 'relevanssi'); ?></option>
1095
  <option value='mark' <?php echo $highlight_mark ?>>&lt;mark&gt;</option>
1096
  <option value='em' <?php echo $highlight_em ?>>&lt;em&gt;</option>
@@ -1105,13 +1125,13 @@ function relevanssi_options_form() {
1105
  <br />
1106
 
1107
  <label for='relevanssi_hilite_title'><?php _e("Highlight query terms in result titles too:", 'relevanssi'); ?>
1108
- <input type='checkbox' name='relevanssi_hilite_title' <?php echo $hititle ?> /></label>
1109
  <small><?php _e("", 'relevanssi'); ?></small>
1110
 
1111
  <br />
1112
 
1113
  <label for='relevanssi_highlight_docs'><?php _e("Highlight query terms in documents from local searches:", 'relevanssi'); ?>
1114
- <input type='checkbox' name='relevanssi_highlight_docs' <?php echo $highlight_docs ?> /></label>
1115
  <small><?php _e("Highlights hits when user opens the post from search results. This is based on HTTP referrer, so if that's blocked, there'll be no highlights.", "relevanssi"); ?></small>
1116
 
1117
  <br />
@@ -1119,13 +1139,13 @@ function relevanssi_options_form() {
1119
  <?php if (function_exists('relevanssi_form_highlight_external')) relevanssi_form_highlight_external($highlight_docs_ext); ?>
1120
 
1121
  <label for='relevanssi_highlight_comments'><?php _e("Highlight query terms in comments:", 'relevanssi'); ?>
1122
- <input type='checkbox' name='relevanssi_highlight_comments' <?php echo $highlight_coms ?> /></label>
1123
  <small><?php _e("Highlights hits in comments when user opens the post from search results.", "relevanssi"); ?></small>
1124
 
1125
  <br />
1126
 
1127
  <label for='relevanssi_word_boundaries'><?php _e("Uncheck this if you use non-ASCII characters:", 'relevanssi'); ?>
1128
- <input type='checkbox' name='relevanssi_word_boundaries' <?php echo $word_boundaries ?> /></label>
1129
  <small><?php _e("If you use non-ASCII characters (like Cyrillic alphabet) and the highlights don't work, uncheck this option to make highlights work.", "relevanssi"); ?></small>
1130
 
1131
  <br /><br />
@@ -1136,25 +1156,25 @@ function relevanssi_options_form() {
1136
  <div style='margin-left: 2em'>
1137
 
1138
  <label for='relevanssi_txt_col'><?php _e("Text color for highlights:", "relevanssi"); ?>
1139
- <input type='text' name='relevanssi_txt_col' size='7' value='<?php echo $txt_col ?>' /></label>
1140
  <small><?php _e("Use HTML color codes (#rgb or #rrggbb)", "relevanssi"); ?></small>
1141
 
1142
  <br />
1143
 
1144
  <label for='relevanssi_bg_col'><?php _e("Background color for highlights:", "relevanssi"); ?>
1145
- <input type='text' name='relevanssi_bg_col' size='7' value='<?php echo $bg_col ?>' /></label>
1146
  <small><?php _e("Use HTML color codes (#rgb or #rrggbb)", "relevanssi"); ?></small>
1147
 
1148
  <br />
1149
 
1150
  <label for='relevanssi_css'><?php _e("CSS style for highlights:", "relevanssi"); ?>
1151
- <input type='text' name='relevanssi_css' size='30' value='<?php echo $css ?>' /></label>
1152
  <small><?php _e("You can use any CSS styling here, style will be inserted with a &lt;span&gt;", "relevanssi"); ?></small>
1153
 
1154
  <br />
1155
 
1156
- <label for='relevanssi_css'><?php _e("CSS class for highlights:", "relevanssi"); ?>
1157
- <input type='text' name='relevanssi_class' size='10' value='<?php echo $class ?>' /></label>
1158
  <small><?php _e("Name a class here, search results will be wrapped in a &lt;span&gt; with the class", "relevanssi"); ?></small>
1159
 
1160
  </div>
@@ -1199,7 +1219,7 @@ function relevanssi_options_form() {
1199
  $label
1200
  </td>
1201
  <td>
1202
- <input type='checkbox' name='relevanssi_index_type_$type' $checked />
1203
  </td>
1204
  <td>
1205
  $public
@@ -1211,9 +1231,55 @@ EOH;
1211
  </table>
1212
 
1213
  <br /><br />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1214
 
 
 
1215
  <label for='relevanssi_min_word_length'><?php _e("Minimum word length to index", "relevanssi"); ?>:
1216
- <input type='text' name='relevanssi_min_word_length' size='30' value='<?php echo $min_word_length ?>' /></label><br />
1217
  <small><?php _e("Words shorter than this number will not be indexed.", "relevanssi"); ?></small>
1218
 
1219
  <br /><br />
@@ -1221,37 +1287,27 @@ EOH;
1221
  <?php if (function_exists('relevanssi_form_thousep')) relevanssi_form_thousep($thousand_separator); ?>
1222
 
1223
  <label for='relevanssi_expand_shortcodes'><?php _e("Expand shortcodes in post content:", "relevanssi"); ?>
1224
- <input type='checkbox' name='relevanssi_expand_shortcodes' <?php echo $expand_shortcodes ?> /></label><br />
1225
  <small><?php _e("If checked, Relevanssi will expand shortcodes in post content before indexing. Otherwise shortcodes will be stripped. If you use shortcodes to include dynamic content, Relevanssi will not keep the index updated, the index will reflect the status of the shortcode content at the moment of indexing.", "relevanssi"); ?></small>
1226
 
1227
  <br /><br />
1228
 
1229
- <label for='relevanssi_inctags'><?php _e('Index and search your posts\' tags:', 'relevanssi'); ?>
1230
- <input type='checkbox' name='relevanssi_inctags' <?php echo $inctags ?> /></label><br />
1231
- <small><?php _e("If checked, Relevanssi will also index and search the tags of your posts. Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1232
-
1233
- <br /><br />
1234
-
1235
- <label for='relevanssi_inccats'><?php _e('Index and search your posts\' categories:', 'relevanssi'); ?>
1236
- <input type='checkbox' name='relevanssi_inccats' <?php echo $inccats ?> /></label><br />
1237
- <small><?php _e("If checked, Relevanssi will also index and search the categories of your posts. Category titles will pass through 'single_cat_title' filter. Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1238
-
1239
- <br /><br />
1240
 
1241
  <label for='relevanssi_index_author'><?php _e('Index and search your posts\' authors:', 'relevanssi'); ?>
1242
- <input type='checkbox' name='relevanssi_index_author' <?php echo $index_author ?> /></label><br />
1243
  <small><?php _e("If checked, Relevanssi will also index and search the authors of your posts. Author display name will be indexed. Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1244
 
1245
  <br /><br />
1246
 
1247
  <label for='relevanssi_index_excerpt'><?php _e('Index and search post excerpts:', 'relevanssi'); ?>
1248
- <input type='checkbox' name='relevanssi_index_excerpt' <?php echo $index_excerpt ?> /></label><br />
1249
  <small><?php _e("If checked, Relevanssi will also index and search the excerpts of your posts.Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1250
 
1251
  <br /><br />
1252
 
1253
  <label for='relevanssi_index_comments'><?php _e("Index and search these comments:", "relevanssi"); ?>
1254
- <select name='relevanssi_index_comments'>
1255
  <option value='none' <?php echo $incom_type_none ?>><?php _e("none", "relevanssi"); ?></option>
1256
  <option value='normal' <?php echo $incom_type_normal ?>><?php _e("normal", "relevanssi"); ?></option>
1257
  <option value='all' <?php echo $incom_type_all ?>><?php _e("all", "relevanssi"); ?></option>
@@ -1261,22 +1317,16 @@ EOH;
1261
  <br /><br />
1262
 
1263
  <label for='relevanssi_index_fields'><?php _e("Custom fields to index:", "relevanssi"); ?>
1264
- <input type='text' name='relevanssi_index_fields' size='30' value='<?php echo $index_fields ?>' /></label><br />
1265
  <small><?php _e("A comma-separated list of custom fields to include in the index. Set to 'visible' to index all visible custom fields and to 'all' to index all custom fields, also those starting with a '_' character.", "relevanssi"); ?></small>
1266
 
1267
  <br /><br />
1268
 
1269
- <label for='relevanssi_custom_taxonomies'><?php _e("Custom taxonomies to index:", "relevanssi"); ?>
1270
- <input type='text' name='relevanssi_custom_taxonomies' size='30' value='<?php echo $custom_taxonomies ?>' /></label><br />
1271
- <small><?php _e("A comma-separated list of custom taxonomy names to include in the index.", "relevanssi"); ?></small>
1272
-
1273
- <br /><br />
1274
-
1275
  <?php if (function_exists('relevanssi_form_mysql_columns')) relevanssi_form_mysql_columns($mysql_columns); ?>
1276
 
1277
  <?php if (function_exists('relevanssi_form_index_users')) relevanssi_form_index_users($index_users, $index_subscribers, $index_user_fields); ?>
1278
 
1279
- <?php if (function_exists('relevanssi_form_index_taxonomies')) relevanssi_form_index_taxonomies($index_taxonomies, $taxonomies_to_index); ?>
1280
 
1281
  <input type='submit' name='index' value='<?php _e("Save indexing options and build the index", 'relevanssi'); ?>' class='button button-primary' />
1282
 
@@ -1288,13 +1338,13 @@ EOH;
1288
  activate cache unless you have a good reason to do so.", 'relevanssi'); ?></p>
1289
 
1290
  <label for='relevanssi_enable_cache'><?php _e('Enable result and excerpt caching:', 'relevanssi'); ?>
1291
- <input type='checkbox' name='relevanssi_enable_cache' <?php echo $enable_cache ?> /></label><br />
1292
  <small><?php _e("If checked, Relevanssi will cache search results and post excerpts.", 'relevanssi'); ?></small>
1293
 
1294
  <br /><br />
1295
 
1296
  <label for='relevanssi_cache_seconds'><?php _e("Cache expire (in seconds):", "relevanssi"); ?>
1297
- <input type='text' name='relevanssi_cache_seconds' size='30' value='<?php echo $cache_seconds ?>' /></label><br />
1298
  <small><?php _e("86400 = day", "relevanssi"); ?></small>
1299
 
1300
  <br /><br />
@@ -1303,11 +1353,11 @@ EOH;
1303
 
1304
  <br /><br />
1305
 
1306
- <input type='submit' name='truncate' value='<?php _e('Clear all caches', 'relevanssi'); ?>' class='button' />
1307
 
1308
  <h3 id="synonyms"><?php _e("Synonyms", "relevanssi"); ?></h3>
1309
 
1310
- <p><textarea name='relevanssi_synonyms' rows='9' cols='60'><?php echo $synonyms ?></textarea></p>
1311
 
1312
  <p><small><?php _e("Add synonyms here in 'key = value' format. When searching with the OR operator, any search of 'key' will be expanded to include 'value' as well. Using phrases is possible. The key-value pairs work in one direction only, but you can of course repeat the same pair reversed.", "relevanssi"); ?></small></p>
1313
 
@@ -1334,7 +1384,7 @@ function relevanssi_show_stopwords() {
1334
 
1335
  _e("<p>Enter a word here to add it to the list of stopwords. The word will automatically be removed from the index, so re-indexing is not necessary. You can enter many words at the same time, separate words with commas.</p>", 'relevanssi');
1336
 
1337
- ?><label for="addstopword"><p><?php _e("Stopword(s) to add: ", 'relevanssi'); ?><textarea name="addstopword" rows="2" cols="40"></textarea>
1338
  <input type="submit" value="<?php _e("Add", 'relevanssi'); ?>" class='button' /></p></label>
1339
  <?php
1340
 
@@ -1372,7 +1422,7 @@ function relevanssi_show_stopwords() {
1372
  ?>
1373
  <p><?php _e("Here's a list of stopwords you can use to export the stopwords to another blog.", "relevanssi"); ?></p>
1374
 
1375
- <textarea name="stopwords" rows="2" cols="40"><?php echo $exportlist; ?></textarea>
1376
  <?php
1377
 
1378
  }
166
  $_REQUEST['relevanssi_show_matches'] = "off";
167
  }
168
 
 
 
 
 
 
 
 
 
169
  if (!isset($_REQUEST['relevanssi_throttle'])) {
170
  $_REQUEST['relevanssi_throttle'] = "off";
171
  }
182
  $_REQUEST['relevanssi_log_queries'] = "off";
183
  }
184
 
185
+ if (!isset($_REQUEST['relevanssi_log_queries_with_ip'])) {
186
+ $_REQUEST['relevanssi_log_queries_with_ip'] = "off";
187
+ }
188
+
189
  if (!isset($_REQUEST['relevanssi_disable_or_fallback'])) {
190
  $_REQUEST['relevanssi_disable_or_fallback'] = "off";
191
  }
245
 
246
  $post_type_weights = array();
247
  $index_post_types = array();
248
+ $index_taxonomies_list = array();
249
+ $index_terms_list = array();
250
  foreach ($_REQUEST as $key => $value) {
251
  if (substr($key, 0, strlen('relevanssi_weight_')) == 'relevanssi_weight_') {
252
  $type = substr($key, strlen('relevanssi_weight_'));
256
  $type = substr($key, strlen('relevanssi_index_type_'));
257
  if ('on' == $value) $index_post_types[$type] = true;
258
  }
259
+ if (substr($key, 0, strlen('relevanssi_index_taxonomy_')) == 'relevanssi_index_taxonomy_') {
260
+ $type = substr($key, strlen('relevanssi_index_taxonomy_'));
261
+ if ('on' == $value) $index_taxonomies_list[$type] = true;
262
+ }
263
+ if (substr($key, 0, strlen('relevanssi_index_terms_')) == 'relevanssi_index_terms_') {
264
+ $type = substr($key, strlen('relevanssi_index_terms_'));
265
+ if ('on' == $value) $index_terms_list[$type] = true;
266
+ }
267
  }
268
 
269
  if (count($post_type_weights) > 0) {
274
  update_option('relevanssi_index_post_types', array_keys($index_post_types));
275
  }
276
 
277
+ update_option('relevanssi_index_taxonomies_list', array_keys($index_taxonomies_list));
278
+ if (RELEVANSSI_PREMIUM) update_option('relevanssi_index_terms', array_keys($index_terms_list));
279
+
280
  if (isset($_REQUEST['relevanssi_admin_search'])) update_option('relevanssi_admin_search', $_REQUEST['relevanssi_admin_search']);
281
  if (isset($_REQUEST['relevanssi_excerpts'])) update_option('relevanssi_excerpts', $_REQUEST['relevanssi_excerpts']);
282
  if (isset($_REQUEST['relevanssi_excerpt_type'])) update_option('relevanssi_excerpt_type', $_REQUEST['relevanssi_excerpt_type']);
283
  if (isset($_REQUEST['relevanssi_excerpt_allowable_tags'])) update_option('relevanssi_excerpt_allowable_tags', $_REQUEST['relevanssi_excerpt_allowable_tags']);
284
  if (isset($_REQUEST['relevanssi_log_queries'])) update_option('relevanssi_log_queries', $_REQUEST['relevanssi_log_queries']);
285
+ if (isset($_REQUEST['relevanssi_log_queries_with_ip'])) update_option('relevanssi_log_queries_with_ip', $_REQUEST['relevanssi_log_queries_with_ip']);
286
  if (isset($_REQUEST['relevanssi_highlight'])) update_option('relevanssi_highlight', $_REQUEST['relevanssi_highlight']);
287
  if (isset($_REQUEST['relevanssi_highlight_docs'])) update_option('relevanssi_highlight_docs', $_REQUEST['relevanssi_highlight_docs']);
288
  if (isset($_REQUEST['relevanssi_highlight_comments'])) update_option('relevanssi_highlight_comments', $_REQUEST['relevanssi_highlight_comments']);
292
  if (isset($_REQUEST['relevanssi_class'])) update_option('relevanssi_class', $_REQUEST['relevanssi_class']);
293
  if (isset($_REQUEST['relevanssi_cat'])) update_option('relevanssi_cat', $_REQUEST['relevanssi_cat']);
294
  if (isset($_REQUEST['relevanssi_excat'])) update_option('relevanssi_excat', $_REQUEST['relevanssi_excat']);
 
295
  if (isset($_REQUEST['relevanssi_index_fields'])) update_option('relevanssi_index_fields', $_REQUEST['relevanssi_index_fields']);
296
  if (isset($_REQUEST['relevanssi_expst'])) update_option('relevanssi_exclude_posts', $_REQUEST['relevanssi_expst']); //added by OdditY
 
297
  if (isset($_REQUEST['relevanssi_hilite_title'])) update_option('relevanssi_hilite_title', $_REQUEST['relevanssi_hilite_title']); //added by OdditY
298
  if (isset($_REQUEST['relevanssi_index_comments'])) update_option('relevanssi_index_comments', $_REQUEST['relevanssi_index_comments']); //added by OdditY
 
299
  if (isset($_REQUEST['relevanssi_index_author'])) update_option('relevanssi_index_author', $_REQUEST['relevanssi_index_author']);
300
  if (isset($_REQUEST['relevanssi_index_excerpt'])) update_option('relevanssi_index_excerpt', $_REQUEST['relevanssi_index_excerpt']);
301
  if (isset($_REQUEST['relevanssi_fuzzy'])) update_option('relevanssi_fuzzy', $_REQUEST['relevanssi_fuzzy']);
377
  function relevanssi_remove_stopword($term) {
378
  global $wpdb, $relevanssi_variables;
379
 
380
+ $q = $wpdb->prepare("DELETE FROM " . $relevanssi_variables['stopword_table'] . " WHERE stopword=%s", $term);
381
  $success = $wpdb->query($q);
382
 
383
  if ($success) {
481
 
482
  echo '<div style="clear: both"></div>';
483
  $nonce = wp_nonce_field('relevanssi_reset_logs', '_relresnonce', true, false);
484
+ echo '<h3>' . __('Reset Logs', 'relevanssi') . "</h3>\n";
485
+ echo "<form method='post'>\n$nonce";
486
+ echo "<p>";
487
+ printf(__('To reset the logs, type "reset" into the box here %s and click %s', 'relevanssi'), ' <input type="text" name="relevanssi_reset_code" />', 'and click <input type="submit" name="relevanssi_reset" value="Reset" class="button" />');
488
+ echo "</p></form>";
 
 
 
 
489
 
490
  }
491
 
498
 
499
  $count = array();
500
 
501
+ $count[__('Today and yesterday', 'relevanssi')] = $wpdb->get_var("SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 1;");
502
+ $count[__('Last 7 days', 'relevanssi')] = $wpdb->get_var("SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 7;");
503
+ $count[__('Last 30 days', 'relevanssi')] = $wpdb->get_var("SELECT COUNT(id) FROM $log_table WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 30;");
504
+ $count[__('Forever', 'relevanssi')] = $wpdb->get_var("SELECT COUNT(id) FROM $log_table;");
505
 
506
+ echo "<table class='widefat'><thead><tr><th colspan='2'>$title</th></tr></thead><tbody><tr><th>" . __('When', 'relevanssi') . "</th><th>" . __('Searches', 'relevanssi') . "</th></tr>";
507
+ foreach ($count as $when => $searches) {
508
  echo "<tr><td style='padding: 3px 5px'>$when</td><td style='padding: 3px 5px;'>$searches</td></tr>";
509
  }
510
  echo "</tbody></table>";
529
  WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= $d
530
  AND hits = 0
531
  GROUP BY query
532
+ ORDER BY cnt DESC
533
  LIMIT 20");
534
 
535
  if (count($queries) > 0) {
536
+ echo "<table class='widefat'><thead><tr><th colspan='3'>$title</th></tr></thead><tbody><tr><th>" . __('Query', 'relevanssi') . "</th><th>#</th><th>" . __('Hits', 'relevanssi') . "</th></tr>";
537
  foreach ($queries as $query) {
538
  $url = get_bloginfo('url');
539
  $u_q = urlencode($query->query);
609
  $log_queries = '';
610
  }
611
 
612
+ $log_queries_with_ip = get_option('relevanssi_log_queries_with_ip');
613
+ $serialize_options['relevanssi_log_queries_with_ip'] = $log_queries_with_ip;
614
+ if ('on' == $log_queries_with_ip) {
615
+ $log_queries_with_ip = 'checked="checked"';
616
+ }
617
+ else {
618
+ $log_queries_with_ip = '';
619
+ }
620
+
621
  $hide_branding = get_option('relevanssi_hide_branding');
622
  $serialize_options['relevanssi_hide_branding'] = $hide_branding;
623
  if ('on' == $hide_branding) {
664
  break;
665
  }
666
 
 
 
667
  $index_fields = get_option('relevanssi_index_fields');
668
  $serialize_options['relevanssi_index_fields'] = $index_fields;
669
 
713
  //Added by OdditY ->
714
  $expst = get_option('relevanssi_exclude_posts');
715
  $serialize_options['relevanssi_exclude_posts'] = $expst;
 
716
  $hititle = ('on' == get_option('relevanssi_hilite_title') ? 'checked="checked"' : '');
 
717
  $serialize_options['relevanssi_hilite_title'] = get_option('relevanssi_hilite_title');
718
  $incom_type = get_option('relevanssi_index_comments');
719
  $serialize_options['relevanssi_index_comments'] = $incom_type;
748
  $min_word_length = get_option('relevanssi_min_word_length');
749
  $serialize_options['relevanssi_min_word_length'] = $min_word_length;
750
 
 
 
751
  $index_author = ('on' == get_option('relevanssi_index_author') ? 'checked="checked"' : '');
752
  $serialize_options['relevanssi_index_author'] = get_option('relevanssi_index_author');
753
  $index_excerpt = ('on' == get_option('relevanssi_index_excerpt') ? 'checked="checked"' : '');
771
  if (empty($index_post_types)) $index_post_types = array();
772
  $serialize_options['relevanssi_index_post_types'] = $index_post_types;
773
 
774
+ $index_taxonomies_list = get_option('relevanssi_index_taxonomies_list');
775
+ if (empty($index_taxonomies_list)) $index_taxonomies_list = array();
776
+ $serialize_options['relevanssi_index_taxonomies_list'] = $index_taxonomies_list;
777
+
778
  $orderby = get_option('relevanssi_default_orderby');
779
  $serialize_options['relevanssi_default_orderby'] = $orderby;
780
  $orderby_relevance = ('relevance' == $orderby ? 'selected="selected"' : '');
798
 
799
  $thousand_separator = get_option('relevanssi_thousand_separator');
800
  $serialize_options['relevanssi_thousand_separator'] = $thousand_separator;
801
+
802
+ $disable_shortcodes = get_option('relevanssi_disable_shortcodes');
803
+ $serialize_options['relevanssi_disable_shortcodes'] = $disable_shortcodes;
804
 
805
  $index_users = ('on' == get_option('relevanssi_index_users') ? 'checked="checked"' : '');
806
  $serialize_options['relevanssi_index_users'] = get_option('relevanssi_index_users');
813
 
814
  $index_taxonomies = ('on' == get_option('relevanssi_index_taxonomies') ? 'checked="checked"' : '');
815
  $serialize_options['relevanssi_index_taxonomies'] = get_option('relevanssi_index_taxonomies');
816
+
817
+ $index_terms = get_option('relevanssi_index_terms');
818
+ if (empty($index_terms)) $index_terms = array();
819
+ $serialize_options['relevanssi_index_terms'] = $index_terms;
820
 
821
  $hide_post_controls = ('on' == get_option('relevanssi_hide_post_controls') ? 'checked="checked"' : '');
822
  $serialize_options['relevanssi_hide_post_controls'] = get_option('relevanssi_hide_post_controls');
895
  ?>
896
 
897
  <label for='relevanssi_admin_search'><?php _e('Use search for admin:', 'relevanssi'); ?>
898
+ <input type='checkbox' name='relevanssi_admin_search' id='relevanssi_admin_search' <?php echo $admin_search ?> /></label>
899
  <small><?php _e('If checked, Relevanssi will be used for searches in the admin interface', 'relevanssi'); ?></small>
900
 
901
  <br /><br />
902
 
903
  <label for='relevanssi_implicit_operator'><?php _e("Default operator for the search?", "relevanssi"); ?>
904
+ <select name='relevanssi_implicit_operator' id='relevanssi_implicit_operator'>
905
  <option value='AND' <?php echo $implicit_and ?>><?php _e("AND - require all terms", "relevanssi"); ?></option>
906
  <option value='OR' <?php echo $implicit_or ?>><?php _e("OR - any term present is enough", "relevanssi"); ?></option>
907
  </select></label><br />
910
  <br /><br />
911
 
912
  <label for='relevanssi_disable_or_fallback'><?php _e("Disable OR fallback:", "relevanssi"); ?>
913
+ <input type='checkbox' name='relevanssi_disable_or_fallback' id='relevanssi_disable_or_fallback' <?php echo $disablefallback ?> /></label><br />
914
  <small><?php _e("If you don't want Relevanssi to fall back to OR search when AND search gets no hits, check this option. For most cases, leave this one unchecked.", 'relevanssi'); ?></small>
915
 
916
  <br /><br />
917
 
918
  <label for='relevanssi_default_orderby'><?php _e('Default order for results:', 'relevanssi'); ?>
919
+ <select name='relevanssi_default_orderby' id='relevanssi_default_orderby'>
920
  <option value='relevance' <?php echo $orderby_relevance ?>><?php _e("Relevance (highly recommended)", "relevanssi"); ?></option>
921
  <option value='post_date' <?php echo $orderby_date ?>><?php _e("Post date", "relevanssi"); ?></option>
922
  </select></label><br />
925
  <br /><br />
926
 
927
  <label for='relevanssi_fuzzy'><?php _e('When to use fuzzy matching?', 'relevanssi'); ?>
928
+ <select name='relevanssi_fuzzy' id='relevanssi_fuzzy'>
929
  <option value='sometimes' <?php echo $fuzzy_sometimes ?>><?php _e("When straight search gets no hits", "relevanssi"); ?></option>
930
  <option value='always' <?php echo $fuzzy_always ?>><?php _e("Always", "relevanssi"); ?></option>
931
  <option value='never' <?php echo $fuzzy_never ?>><?php _e("Don't use fuzzy search", "relevanssi"); ?></option>
939
  ?>
940
 
941
  <label for='relevanssi_throttle'><?php _e("Limit searches:", "relevanssi"); ?>
942
+ <input type='checkbox' name='relevanssi_throttle' id='relevanssi_throttle' <?php echo $throttle ?> /></label><br />
943
  <small><?php _e("If this option is checked, Relevanssi will limit search results to at most 500 results per term. This will improve performance, but may cause some relevant documents to go unfound. However, Relevanssi tries to prioritize the most relevant documents. <strong>This does not work well when sorting results by date.</strong> The throttle can end up cutting off recent posts to favour more relevant posts.", 'relevanssi'); ?></small>
944
 
945
  <br /><br />
946
 
947
  <label for='relevanssi_throttle_limit'><?php _e("Limit:", "relevanssi"); ?>
948
+ <input type='text' size='4' name='relevanssi_throttle_limit' id='relevanssi_throttle_limit' value='<?php echo $throttle_limit ?>' /></label><br />
949
  <small><?php _e("For better performance, adjust the limit to a smaller number. Adjusting the limit to 100 - or even lower - should be safe for good results, and might bring a boost in search speed.", 'relevanssi'); ?></small>
950
 
951
  <br /><br />
971
  <?php _e('Post titles', 'relevanssi'); ?>
972
  </td>
973
  <td>
974
+ <input type='text' name='relevanssi_title_boost' id='relevanssi_title_boost' size='4' value='<?php echo $title_boost ?>' />
975
  </td>
976
  <td>
977
  <?php echo $relevanssi_variables['title_boost_default']; ?>
983
  <?php _e('Comment text', 'relevanssi'); ?>
984
  </td>
985
  <td>
986
+ <input type='text' name='relevanssi_comment_boost' id='relevanssi_comment_boost' size='4' value='<?php echo $comment_boost ?>' />
987
  </td>
988
  <td>
989
  <?php echo $relevanssi_variables['comment_boost_default']; ?>
1001
  <?php if (function_exists('relevanssi_form_recency')) relevanssi_form_recency($recency_bonus, $recency_bonus_days); ?>
1002
 
1003
  <?php if (function_exists('icl_object_id')) : ?>
1004
+ <h3 id="wpml"><?php _e('WPML/Polylang compatibility', 'relevanssi'); ?></h3>
1005
 
1006
  <label for='relevanssi_wpml_only_current'><?php _e("Limit results to current language:", "relevanssi"); ?>
1007
+ <input type='checkbox' name='relevanssi_wpml_only_current' id='relevanssi_wpml_only_current' <?php echo $wpml_only_current ?> /></label>
1008
  <small><?php _e("If this option is checked, Relevanssi will only return results in the current active language. Otherwise results will include posts in every language.", "relevanssi");?></small>
1009
 
1010
  <?php endif; ?>
1012
  <h3 id="logs"><?php _e('Logs', 'relevanssi'); ?></h3>
1013
 
1014
  <label for='relevanssi_log_queries'><?php _e("Keep a log of user queries:", "relevanssi"); ?>
1015
+ <input type='checkbox' name='relevanssi_log_queries' id='relevanssi_log_queries' <?php echo $log_queries ?> /></label>
1016
  <small><?php _e("If checked, Relevanssi will log user queries. The log appears in 'User searches' on the Dashboard admin menu.", 'relevanssi'); ?></small>
1017
 
1018
  <br /><br />
1019
 
1020
+ <label for='relevanssi_log_queries_with_ip'><?php _e("Log the user's IP with the queries:", "relevanssi"); ?>
1021
+ <input type='checkbox' name='relevanssi_log_queries_with_ip' id='relevanssi_log_queries_with_ip' <?php echo $log_queries_with_ip ?> /></label>
1022
+ <small><?php _e("If checked, Relevanssi will log user's IP-Adress with the queries.", 'relevanssi'); ?></small>
1023
+
1024
+ <br /><br />
1025
+
1026
  <label for='relevanssi_omit_from_logs'><?php _e("Don't log queries from these users:", "relevanssi"); ?>
1027
+ <input type='text' name='relevanssi_omit_from_logs' id='relevanssi_omit_from_logs' size='20' value='<?php echo $omit_from_logs ?>' /></label>
1028
  <small><?php _e("Comma-separated list of numeric user IDs or user login names that will not be logged.", "relevanssi"); ?></small>
1029
 
1030
  <?php
1041
  <h3 id="exclusions"><?php _e("Exclusions and restrictions", "relevanssi"); ?></h3>
1042
 
1043
  <label for='relevanssi_cat'><?php _e('Restrict search to these categories and tags:', 'relevanssi'); ?>
1044
+ <input type='text' name='relevanssi_cat' id='relevanssi_cat' size='20' value='<?php echo $cat ?>' /></label><br />
1045
  <small><?php _e("Enter a comma-separated list of category and tag IDs to restrict search to those categories or tags. You can also use <code>&lt;input type='hidden' name='cats' value='list of cats and tags' /&gt;</code> in your search form. The input field will overrun this setting.", 'relevanssi'); ?></small>
1046
 
1047
  <br /><br />
1048
 
1049
  <label for='relevanssi_excat'><?php _e('Exclude these categories and tags from search:', 'relevanssi'); ?>
1050
+ <input type='text' name='relevanssi_excat' id='relevanssi_excat' size='20' value='<?php echo $excat ?>' /></label><br />
1051
  <small><?php _e("Enter a comma-separated list of category and tag IDs that are excluded from search results. You can exclude categories with the 'cat' input field by using negative values.", 'relevanssi'); ?></small>
1052
 
1053
  <br /><br />
1054
 
1055
+ <label for='relevanssi_expst'><?php _e('Exclude these posts/pages from search:', 'relevanssi'); ?>
1056
+ <input type='text' name='relevanssi_expst' id='relevanssi_expst' size='20' value='<?php echo $expst ?>' /></label><br />
1057
  <?php
1058
  if (RELEVANSSI_PREMIUM) {
1059
  echo "<small>" . __("Enter a comma-separated list of post/page IDs that are excluded from search results. This only works here, you can't use the input field option (WordPress doesn't pass custom parameters there). You can also use a checkbox on post/page edit pages to remove posts from index.", 'relevanssi') . "</small>";
1066
  <br /><br />
1067
 
1068
  <label for='relevanssi_respect_exclude'><?php _e('Respect exclude_from_search for custom post types:', 'relevanssi'); ?>
1069
+ <input type='checkbox' name='relevanssi_respect_exclude' id='relevanssi_respect_exclude' <?php echo $respect_exclude ?> /></label><br />
1070
  <small><?php _e("If checked, Relevanssi won't display posts of custom post types that have 'exclude_from_search' set to true. If not checked, Relevanssi will display anything that is indexed.", 'relevanssi'); ?></small>
1071
 
1072
  <h3 id="excerpts"><?php _e("Custom excerpts/snippets", "relevanssi"); ?></h3>
1073
 
1074
  <label for='relevanssi_excerpts'><?php _e("Create custom search result snippets:", "relevanssi"); ?>
1075
+ <input type='checkbox' name='relevanssi_excerpts' id='relevanssi_excerpts' <?php echo $excerpts ?> /></label><br />
1076
  <small><?php _e("If checked, Relevanssi will create excerpts that contain the search term hits. To make them work, make sure your search result template uses the_excerpt() to display post excerpts.", 'relevanssi'); ?></small>
1077
 
1078
+ <p><?php _e('Note: Building custom excerpts can be slow. If you are not actually using the excerpts, make sure you disable the option.', 'relevanssi'); ?></p>
1079
 
1080
  <label for='relevanssi_excerpt_length'><?php _e("Length of the snippet:", "relevanssi"); ?>
1081
+ <input type='text' name='relevanssi_excerpt_length' id='relevanssi_excerpt_length' size='4' value='<?php echo $excerpt_length ?>' /></label>
1082
+ <select name='relevanssi_excerpt_type' id='relevanssi_excerpt_type'>
1083
  <option value='chars' <?php echo $excerpt_chars ?>><?php _e("characters", "relevanssi"); ?></option>
1084
  <option value='words' <?php echo $excerpt_words ?>><?php _e("words", "relevanssi"); ?></option>
1085
  </select><br />
1088
  <br /><br />
1089
 
1090
  <label for='relevanssi_excerpt_allowable_tags'><?php _e("Allowable tags in excerpts:", "relevanssi"); ?>
1091
+ <input type='text' name='relevanssi_excerpt_allowable_tags' id='relevanssi_excerpt_allowable_tags' size='20' value='<?php echo $excerpt_allowable_tags ?>' /></label>
1092
  <br />
1093
  <small><?php _e("List all tags you want to allow in excerpts, without any whitespace. For example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'.", "relevanssi"); ?></small>
1094
 
1095
  <br /><br />
1096
 
1097
  <label for='relevanssi_show_matches'><?php _e("Show breakdown of search hits in excerpts:", "relevanssi"); ?>
1098
+ <input type='checkbox' name='relevanssi_show_matches' id='relevanssi_show_matches' <?php echo $show_matches ?> /></label>
1099
  <small><?php _e("Check this to show more information on where the search hits were made. Requires custom snippets to work.", "relevanssi"); ?></small>
1100
 
1101
  <br /><br />
1102
 
1103
  <label for='relevanssi_show_matches_text'><?php _e("The breakdown format:", "relevanssi"); ?>
1104
+ <input type='text' name='relevanssi_show_matches_text' id='relevanssi_show_matches_text' value="<?php echo $show_matches_text ?>" size='20' /></label>
1105
  <small><?php _e("Use %body%, %title%, %tags% and %comments% to display the number of hits (in different parts of the post), %total% for total hits, %score% to display the document weight and %terms% to show how many hits each search term got. No double quotes (\") allowed!", "relevanssi"); ?></small>
1106
 
1107
  <h3 id="highlighting"><?php _e("Search hit highlighting", "relevanssi"); ?></h3>
1110
 
1111
  <div style='margin-left: 2em'>
1112
  <label for='relevanssi_highlight'><?php _e("Highlight query terms in search results:", 'relevanssi'); ?>
1113
+ <select name='relevanssi_highlight' id='relevanssi_highlight'>
1114
  <option value='no' <?php echo $highlight_none ?>><?php _e('No highlighting', 'relevanssi'); ?></option>
1115
  <option value='mark' <?php echo $highlight_mark ?>>&lt;mark&gt;</option>
1116
  <option value='em' <?php echo $highlight_em ?>>&lt;em&gt;</option>
1125
  <br />
1126
 
1127
  <label for='relevanssi_hilite_title'><?php _e("Highlight query terms in result titles too:", 'relevanssi'); ?>
1128
+ <input type='checkbox' name='relevanssi_hilite_title' id='relevanssi_hilite_title' <?php echo $hititle ?> /></label>
1129
  <small><?php _e("", 'relevanssi'); ?></small>
1130
 
1131
  <br />
1132
 
1133
  <label for='relevanssi_highlight_docs'><?php _e("Highlight query terms in documents from local searches:", 'relevanssi'); ?>
1134
+ <input type='checkbox' name='relevanssi_highlight_docs' id='relevanssi_highlight_docs' <?php echo $highlight_docs ?> /></label>
1135
  <small><?php _e("Highlights hits when user opens the post from search results. This is based on HTTP referrer, so if that's blocked, there'll be no highlights.", "relevanssi"); ?></small>
1136
 
1137
  <br />
1139
  <?php if (function_exists('relevanssi_form_highlight_external')) relevanssi_form_highlight_external($highlight_docs_ext); ?>
1140
 
1141
  <label for='relevanssi_highlight_comments'><?php _e("Highlight query terms in comments:", 'relevanssi'); ?>
1142
+ <input type='checkbox' name='relevanssi_highlight_comments' id='relevanssi_highlight_comments' <?php echo $highlight_coms ?> /></label>
1143
  <small><?php _e("Highlights hits in comments when user opens the post from search results.", "relevanssi"); ?></small>
1144
 
1145
  <br />
1146
 
1147
  <label for='relevanssi_word_boundaries'><?php _e("Uncheck this if you use non-ASCII characters:", 'relevanssi'); ?>
1148
+ <input type='checkbox' name='relevanssi_word_boundaries' id='relevanssi_word_boundaries' <?php echo $word_boundaries ?> /></label>
1149
  <small><?php _e("If you use non-ASCII characters (like Cyrillic alphabet) and the highlights don't work, uncheck this option to make highlights work.", "relevanssi"); ?></small>
1150
 
1151
  <br /><br />
1156
  <div style='margin-left: 2em'>
1157
 
1158
  <label for='relevanssi_txt_col'><?php _e("Text color for highlights:", "relevanssi"); ?>
1159
+ <input type='text' name='relevanssi_txt_col' id='relevanssi_txt_col' size='7' value='<?php echo $txt_col ?>' /></label>
1160
  <small><?php _e("Use HTML color codes (#rgb or #rrggbb)", "relevanssi"); ?></small>
1161
 
1162
  <br />
1163
 
1164
  <label for='relevanssi_bg_col'><?php _e("Background color for highlights:", "relevanssi"); ?>
1165
+ <input type='text' name='relevanssi_bg_col' id='relevanssi_bg_col' size='7' value='<?php echo $bg_col ?>' /></label>
1166
  <small><?php _e("Use HTML color codes (#rgb or #rrggbb)", "relevanssi"); ?></small>
1167
 
1168
  <br />
1169
 
1170
  <label for='relevanssi_css'><?php _e("CSS style for highlights:", "relevanssi"); ?>
1171
+ <input type='text' name='relevanssi_css' id='relevanssi_css' size='30' value='<?php echo $css ?>' /></label>
1172
  <small><?php _e("You can use any CSS styling here, style will be inserted with a &lt;span&gt;", "relevanssi"); ?></small>
1173
 
1174
  <br />
1175
 
1176
+ <label for='relevanssi_class'><?php _e("CSS class for highlights:", "relevanssi"); ?>
1177
+ <input type='text' name='relevanssi_class' id='relevanssi_class' size='10' value='<?php echo $class ?>' /></label>
1178
  <small><?php _e("Name a class here, search results will be wrapped in a &lt;span&gt; with the class", "relevanssi"); ?></small>
1179
 
1180
  </div>
1219
  $label
1220
  </td>
1221
  <td>
1222
+ <input type='checkbox' name='relevanssi_index_type_$type' id='relevanssi_index_type_$type' $checked />
1223
  </td>
1224
  <td>
1225
  $public
1231
  </table>
1232
 
1233
  <br /><br />
1234
+
1235
+ <p><?php _e('Choose taxonomies to index:', 'relevanssi'); ?></p>
1236
+
1237
+ <table class="widefat" id="custom_taxonomies_table">
1238
+ <thead>
1239
+ <tr>
1240
+ <th><?php _e('Taxonomy', 'relevanssi'); ?></th>
1241
+ <th><?php _e('Index', 'relevanssi'); ?></th>
1242
+ <th><?php _e('Public?', 'relevanssi'); ?></th>
1243
+ </tr>
1244
+ </thead>
1245
+ <?php
1246
+ $taxos = get_taxonomies('', 'objects');
1247
+ foreach ($taxos as $taxonomy) {
1248
+ if ($taxonomy->name == 'nav_menu') continue;
1249
+ if ($taxonomy->name == 'link_category') continue;
1250
+ if (in_array($taxonomy->name, $index_taxonomies_list)) {
1251
+ $checked = 'checked="checked"';
1252
+ }
1253
+ else {
1254
+ $checked = '';
1255
+ }
1256
+ $label = sprintf(__("%s", 'relevanssi'), $taxonomy->name);
1257
+ $taxonomy->public ? $public = __('yes', 'relevanssi') : $public = __('no', 'relevanssi');
1258
+ $type = $taxonomy->name;
1259
+
1260
+ echo <<<EOH
1261
+ <tr>
1262
+ <td>
1263
+ $label
1264
+ </td>
1265
+ <td>
1266
+ <input type='checkbox' name='relevanssi_index_taxonomy_$type' id='relevanssi_index_taxonomy_$type' $checked />
1267
+ </td>
1268
+ <td>
1269
+ $public
1270
+ </td>
1271
+ </tr>
1272
+ EOH;
1273
+ }
1274
+ ?>
1275
+ </table>
1276
+
1277
+ <p><?php _e('If you check a taxonomy here, the terms for that taxonomy are indexed with the posts. If you for example choose "post_tag", searching for tags will find all posts that have the tag.', 'relevanssi'); ?>
1278
 
1279
+ <br /><br />
1280
+
1281
  <label for='relevanssi_min_word_length'><?php _e("Minimum word length to index", "relevanssi"); ?>:
1282
+ <input type='text' name='relevanssi_min_word_length' id='relevanssi_min_word_length' size='30' value='<?php echo $min_word_length ?>' /></label><br />
1283
  <small><?php _e("Words shorter than this number will not be indexed.", "relevanssi"); ?></small>
1284
 
1285
  <br /><br />
1287
  <?php if (function_exists('relevanssi_form_thousep')) relevanssi_form_thousep($thousand_separator); ?>
1288
 
1289
  <label for='relevanssi_expand_shortcodes'><?php _e("Expand shortcodes in post content:", "relevanssi"); ?>
1290
+ <input type='checkbox' name='relevanssi_expand_shortcodes' id='relevanssi_expand_shortcodes' <?php echo $expand_shortcodes ?> /></label><br />
1291
  <small><?php _e("If checked, Relevanssi will expand shortcodes in post content before indexing. Otherwise shortcodes will be stripped. If you use shortcodes to include dynamic content, Relevanssi will not keep the index updated, the index will reflect the status of the shortcode content at the moment of indexing.", "relevanssi"); ?></small>
1292
 
1293
  <br /><br />
1294
 
1295
+ <?php if (function_exists('relevanssi_form_disable_shortcodes')) relevanssi_form_disable_shortcodes($disable_shortcodes); ?>
 
 
 
 
 
 
 
 
 
 
1296
 
1297
  <label for='relevanssi_index_author'><?php _e('Index and search your posts\' authors:', 'relevanssi'); ?>
1298
+ <input type='checkbox' name='relevanssi_index_author' id='relevanssi_index_author' <?php echo $index_author ?> /></label><br />
1299
  <small><?php _e("If checked, Relevanssi will also index and search the authors of your posts. Author display name will be indexed. Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1300
 
1301
  <br /><br />
1302
 
1303
  <label for='relevanssi_index_excerpt'><?php _e('Index and search post excerpts:', 'relevanssi'); ?>
1304
+ <input type='checkbox' name='relevanssi_index_excerpt' id='relevanssi_index_excerpt' <?php echo $index_excerpt ?> /></label><br />
1305
  <small><?php _e("If checked, Relevanssi will also index and search the excerpts of your posts.Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
1306
 
1307
  <br /><br />
1308
 
1309
  <label for='relevanssi_index_comments'><?php _e("Index and search these comments:", "relevanssi"); ?>
1310
+ <select name='relevanssi_index_comments' id='relevanssi_index_comments'>
1311
  <option value='none' <?php echo $incom_type_none ?>><?php _e("none", "relevanssi"); ?></option>
1312
  <option value='normal' <?php echo $incom_type_normal ?>><?php _e("normal", "relevanssi"); ?></option>
1313
  <option value='all' <?php echo $incom_type_all ?>><?php _e("all", "relevanssi"); ?></option>
1317
  <br /><br />
1318
 
1319
  <label for='relevanssi_index_fields'><?php _e("Custom fields to index:", "relevanssi"); ?>
1320
+ <input type='text' name='relevanssi_index_fields' id='relevanssi_index_fields' size='30' value='<?php echo $index_fields ?>' /></label><br />
1321
  <small><?php _e("A comma-separated list of custom fields to include in the index. Set to 'visible' to index all visible custom fields and to 'all' to index all custom fields, also those starting with a '_' character.", "relevanssi"); ?></small>
1322
 
1323
  <br /><br />
1324
 
 
 
 
 
 
 
1325
  <?php if (function_exists('relevanssi_form_mysql_columns')) relevanssi_form_mysql_columns($mysql_columns); ?>
1326
 
1327
  <?php if (function_exists('relevanssi_form_index_users')) relevanssi_form_index_users($index_users, $index_subscribers, $index_user_fields); ?>
1328
 
1329
+ <?php if (function_exists('relevanssi_form_index_taxonomies')) relevanssi_form_index_taxonomies($index_taxonomies, $index_terms); ?>
1330
 
1331
  <input type='submit' name='index' value='<?php _e("Save indexing options and build the index", 'relevanssi'); ?>' class='button button-primary' />
1332
 
1338
  activate cache unless you have a good reason to do so.", 'relevanssi'); ?></p>
1339
 
1340
  <label for='relevanssi_enable_cache'><?php _e('Enable result and excerpt caching:', 'relevanssi'); ?>
1341
+ <input type='checkbox' name='relevanssi_enable_cache' id='relevanssi_enable_cache' <?php echo $enable_cache ?> /></label><br />
1342
  <small><?php _e("If checked, Relevanssi will cache search results and post excerpts.", 'relevanssi'); ?></small>
1343
 
1344
  <br /><br />
1345
 
1346
  <label for='relevanssi_cache_seconds'><?php _e("Cache expire (in seconds):", "relevanssi"); ?>
1347
+ <input type='text' name='relevanssi_cache_seconds' id='relevanssi_cache_seconds' size='30' value='<?php echo $cache_seconds ?>' /></label><br />
1348
  <small><?php _e("86400 = day", "relevanssi"); ?></small>
1349
 
1350
  <br /><br />
1353
 
1354
  <br /><br />
1355
 
1356
+ <input type='submit' name='truncate' id='truncate' value='<?php _e('Clear all caches', 'relevanssi'); ?>' class='button' />
1357
 
1358
  <h3 id="synonyms"><?php _e("Synonyms", "relevanssi"); ?></h3>
1359
 
1360
+ <p><textarea name='relevanssi_synonyms' id='relevanssi_synonyms' rows='9' cols='60'><?php echo $synonyms ?></textarea></p>
1361
 
1362
  <p><small><?php _e("Add synonyms here in 'key = value' format. When searching with the OR operator, any search of 'key' will be expanded to include 'value' as well. Using phrases is possible. The key-value pairs work in one direction only, but you can of course repeat the same pair reversed.", "relevanssi"); ?></small></p>
1363
 
1384
 
1385
  _e("<p>Enter a word here to add it to the list of stopwords. The word will automatically be removed from the index, so re-indexing is not necessary. You can enter many words at the same time, separate words with commas.</p>", 'relevanssi');
1386
 
1387
+ ?><label for="addstopword"><p><?php _e("Stopword(s) to add: ", 'relevanssi'); ?><textarea name="addstopword" id="addstopword" rows="2" cols="40"></textarea>
1388
  <input type="submit" value="<?php _e("Add", 'relevanssi'); ?>" class='button' /></p></label>
1389
  <?php
1390
 
1422
  ?>
1423
  <p><?php _e("Here's a list of stopwords you can use to export the stopwords to another blog.", "relevanssi"); ?></p>
1424
 
1425
+ <textarea name="stopwords" id="stopwords" rows="2" cols="40"><?php echo $exportlist; ?></textarea>
1426
  <?php
1427
 
1428
  }
lib/search.php CHANGED
@@ -11,7 +11,7 @@ function relevanssi_query($posts, $query = false) {
11
  if (!is_search()) {
12
  $search_ok = false; // no, we can't
13
  }
14
-
15
  // Uses $wp_query->is_admin instead of is_admin() to help with Ajax queries that
16
  // use 'admin_ajax' hook (which sets is_admin() to true whether it's an admin search
17
  // or not.
@@ -20,6 +20,10 @@ function relevanssi_query($posts, $query = false) {
20
  if ($admin_search) $search_ok = true; // yes, we can search!
21
  }
22
 
 
 
 
 
23
  // Disable search in media library search
24
  if ($search_ok) {
25
  if ($wp_query->query_vars['post_type'] == 'attachment' && $wp_query->query_vars['post_status'] == 'inherit,private') {
@@ -37,150 +41,245 @@ function relevanssi_query($posts, $query = false) {
37
  $wp_query = apply_filters('relevanssi_modify_wp_query', $wp_query);
38
  $posts = relevanssi_do_query($wp_query);
39
  }
40
-
41
  return $posts;
42
  }
43
 
44
  // This is my own magic working.
45
- function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost = NULL, $post_type = NULL, $taxonomy = NULL, $taxonomy_term = NULL, $operator = "AND", $search_blogs = NULL, $customfield_key = NULL, $customfield_value = NULL, $author = NULL) {
46
  global $wpdb, $relevanssi_variables;
47
  $relevanssi_table = $relevanssi_variables['relevanssi_table'];
48
 
49
  $values_to_filter = array(
50
  'q' => $q,
51
- 'cat' => $cat,
52
- 'excat' => $excat,
53
- 'tag' => $tag,
 
54
  'expost' => $expost,
55
  'post_type' => $post_type,
56
- 'taxonomy' => $taxonomy,
57
- 'taxonomy_term' => $taxonomy_term,
58
  'operator' => $operator,
59
  'search_blogs' => $search_blogs,
60
- 'customfield_key' => $customfield_key,
61
- 'customfield_value' => $customfield_value,
62
  'author' => $author,
 
 
63
  );
64
  $filtered_values = apply_filters( 'relevanssi_search_filters', $values_to_filter );
65
  $q = $filtered_values['q'];
66
- $cat = $filtered_values['cat'];
67
- $tag = $filtered_values['tag'];
68
- $excat = $filtered_values['excat'];
 
69
  $expost = $filtered_values['expost'];
70
  $post_type = $filtered_values['post_type'];
71
- $taxonomy = $filtered_values['taxonomy'];
72
- $taxonomy_term = $filtered_values['taxonomy_term'];
73
  $operator = $filtered_values['operator'];
74
  $search_blogs = $filtered_values['search_blogs'];
75
- $customfield_key = $filtered_values['customfield_key'];
76
- $customfield_value = $filtered_values['customfield_value'];
77
  $author = $filtered_values['author'];
 
 
78
 
79
  $hits = array();
80
 
81
- $o_cat = $cat;
82
- $o_excat = $excat;
83
- $o_tag = $tag;
 
84
  $o_expost = $expost;
85
  $o_post_type = $post_type;
86
- $o_taxonomy = $taxonomy;
87
- $o_taxonomy_term = $taxonomy_term;
88
- $o_customfield_key = $customfield_key;
89
- $o_customfield_value = $customfield_value;
90
  $o_author = $author;
 
 
 
 
91
 
92
- if (function_exists('relevanssi_process_customfield')) {
93
- $customfield = relevanssi_process_customfield($customfield_key, $customfield_value);
94
- }
95
- else {
96
- $customfield = false;
97
- }
98
-
99
- if ($cat) {
100
- $cats = explode(",", $cat);
101
- $inc_term_tax_ids = array();
102
- $ex_term_tax_ids = array();
103
- foreach ($cats as $t_cat) {
104
- $exclude = false;
105
- if ($t_cat < 0) {
106
- // Negative category, ie. exclusion
107
- $exclude = true;
108
- $t_cat = substr($t_cat, 1); // strip the - sign.
109
- }
110
- $t_cat = $wpdb->escape($t_cat);
111
- $term_tax_id = $wpdb->get_var("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy
112
- WHERE term_id=$t_cat");
113
- if ($term_tax_id) {
114
- $exclude ? $ex_term_tax_ids[] = $term_tax_id : $inc_term_tax_ids[] = $term_tax_id;
115
- $children = get_term_children($term_tax_id, 'category');
116
- if (is_array($children)) {
117
- foreach ($children as $child) {
118
- $exclude ? $ex_term_tax_ids[] = $child : $inc_term_tax_ids[] = $child;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
120
  }
121
  }
122
- }
123
-
124
- $cat = implode(",", $inc_term_tax_ids);
125
- $excat_temp = implode(",", $ex_term_tax_ids);
126
- }
127
 
128
- if ($excat) {
129
- $excats = explode(",", $excat);
130
- $term_tax_ids = array();
131
- foreach ($excats as $t_cat) {
132
- $t_cat = $wpdb->escape(trim($t_cat, ' -'));
133
- $term_tax_id = $wpdb->get_var("SELECT term_taxonomy_id FROM $wpdb->term_taxonomy
134
- WHERE term_id=$t_cat");
135
- if ($term_tax_id) {
136
- $term_tax_ids[] = $term_tax_id;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
137
  }
138
  }
139
-
140
- $excat = implode(",", $term_tax_ids);
141
- }
142
-
143
- if (isset($excat_temp)) {
144
- $excat .= $excat_temp;
145
- }
146
-
147
- if ($tag) {
148
- $tags = explode(",", $tag);
149
- $inc_term_tax_ids = array();
150
- $ex_term_tax_ids = array();
151
- foreach ($tags as $t_tag) {
152
- $t_tag = $wpdb->escape($t_tag);
153
- $term_tax_id = $wpdb->get_var("
154
- SELECT term_taxonomy_id
155
- FROM $wpdb->term_taxonomy as a, $wpdb->terms as b
156
- WHERE a.term_id = b.term_id AND
157
- (a.term_id='$t_tag' OR b.name LIKE '$t_tag')");
158
-
159
- if ($term_tax_id) {
160
- $inc_term_tax_ids[] = $term_tax_id;
 
161
  }
162
  }
163
-
164
- $tag = implode(",", $inc_term_tax_ids);
165
  }
166
 
167
- if ($author) {
168
- $author = esc_sql($author);
 
 
 
 
 
 
 
169
  }
170
 
171
- if (!empty($taxonomy)) {
172
- if (function_exists('relevanssi_process_taxonomies')) {
173
- $taxonomy = relevanssi_process_taxonomies($taxonomy, $taxonomy_term);
174
- }
175
- else {
176
- $term_tax_id = null;
177
- $term_tax_id = $wpdb->get_var($wpdb->prepare("SELECT term_taxonomy_id FROM $wpdb->terms
178
- JOIN $wpdb->term_taxonomy USING(`term_id`)
179
- WHERE `slug` LIKE %s AND `taxonomy` LIKE %s", "%$taxonomy_term%", $taxonomy));
180
- if ($term_tax_id) {
181
- $taxonomy = $term_tax_id;
182
- } else {
183
- $taxonomy = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
185
  }
186
  }
@@ -194,6 +293,7 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
194
  }
195
 
196
  if ($post_type) {
 
197
  if (!is_array($post_type)) {
198
  $post_types = explode(',', $post_type);
199
  }
@@ -215,14 +315,14 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
215
  if ($expost != "") {
216
  $aexpids = explode(",",$expost);
217
  foreach ($aexpids as $exid){
218
- $exid = $wpdb->escape(trim($exid, ' -'));
219
  $postex .= " AND doc !='$exid'";
220
  }
221
  }
222
  }
223
  // <- OdditY End
224
 
225
- $remove_stopwords = false;
226
  $phrases = relevanssi_recognize_phrases($q);
227
 
228
  if (function_exists('relevanssi_recognize_negatives')) {
@@ -240,6 +340,7 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
240
  }
241
 
242
  $terms = relevanssi_tokenize($q, $remove_stopwords);
 
243
  if (count($terms) < 1) {
244
  // Tokenizer killed all the search terms.
245
  return $hits;
@@ -267,7 +368,6 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
267
 
268
  $fuzzy = get_option('relevanssi_fuzzy');
269
 
270
- $query_restrictions = "";
271
  if ($expost) { //added by OdditY
272
  $query_restrictions .= $postex;
273
  }
@@ -275,41 +375,39 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
275
  if (function_exists('relevanssi_negatives_positives')) {
276
  $query_restrictions .= relevanssi_negatives_positives($negative_terms, $positive_terms, $relevanssi_table);
277
  }
278
-
279
- if ($cat) {
280
- $query_restrictions .= " AND doc IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
281
- WHERE term_taxonomy_id IN ($cat))";
282
- }
283
- if ($excat) {
284
- $query_restrictions .= " AND doc NOT IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
285
- WHERE term_taxonomy_id IN ($excat))";
286
- }
287
- if ($tag) {
288
- $query_restrictions .= " AND doc IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
289
- WHERE term_taxonomy_id IN ($tag))";
290
- }
291
- if ($author) {
292
- $query_restrictions .= " AND doc IN (SELECT DISTINCT(ID) FROM $wpdb->posts
293
- WHERE post_author IN ($author))";
 
 
 
 
 
 
294
  }
 
295
  if ($post_type) {
296
  // the -1 is there to get user profiles and category pages
297
  $query_restrictions .= " AND ((doc IN (SELECT DISTINCT(ID) FROM $wpdb->posts
298
  WHERE post_type IN ($post_type))) OR (doc = -1))";
299
  }
 
300
  if ($phrases) {
301
  $query_restrictions .= " AND doc IN ($phrases)";
302
  }
303
- if ($customfield) {
304
- $query_restrictions .= " AND doc IN ($customfield)";
305
- }
306
- if (is_array($taxonomy)) {
307
- foreach ($taxonomy as $tax) {
308
- $taxonomy_in = implode(',',$tax);
309
- $query_restrictions .= " AND doc IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
310
- WHERE term_taxonomy_id IN ($taxonomy_in))";
311
- }
312
- }
313
 
314
  if (isset($_REQUEST['by_date'])) {
315
  $n = $_REQUEST['by_date'];
@@ -347,7 +445,7 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
347
 
348
  $no_matches = true;
349
  if ("always" == $fuzzy) {
350
- $o_term_cond = apply_filters('relevanssi_fuzzy_query', "(term LIKE '%#term#' OR term LIKE '#term#%') ");
351
  }
352
  else {
353
  $o_term_cond = " term = '#term#' ";
@@ -362,24 +460,42 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
362
  $recency_cutoff_date = false;
363
  }
364
  $min_length = get_option('relevanssi_min_word_length');
365
-
366
  $search_again = false;
 
 
 
 
 
 
 
367
  do {
368
  foreach ($terms as $term) {
 
369
  if (strlen($term) < $min_length) continue;
370
- $term = $wpdb->escape(like_escape($term));
371
  $term_cond = str_replace('#term#', $term, $o_term_cond);
372
 
373
- $query = "SELECT *, title + content + comment + tag + link + author + category + excerpt + taxonomy + customfield + mysqlcolumn AS tf
 
 
 
374
  FROM $relevanssi_table WHERE $term_cond $query_restrictions";
375
  $query = apply_filters('relevanssi_query_filter', $query);
376
 
377
  $matches = $wpdb->get_results($query);
 
378
  if (count($matches) < 1) {
379
  continue;
380
  }
381
  else {
382
  $no_matches = false;
 
 
 
 
 
 
 
383
  }
384
 
385
  relevanssi_populate_array($matches);
@@ -394,16 +510,12 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
394
 
395
  if ($df < 1 && "sometimes" == $fuzzy) {
396
  $query = "SELECT COUNT(DISTINCT(doc)) FROM $relevanssi_table
397
- WHERE (term LIKE '%$term' OR term LIKE '$term%') $query_restrictions";
398
  $query = apply_filters('relevanssi_df_query_filter', $query);
399
  $df = $wpdb->get_var($query);
400
  }
401
 
402
- $title_boost = floatval(get_option('relevanssi_title_boost'));
403
- $link_boost = floatval(get_option('relevanssi_link_boost'));
404
- $comment_boost = floatval(get_option('relevanssi_comment_boost'));
405
-
406
- $idf = log($D / (1 + $df));
407
  $idf = $idf * $idf;
408
  foreach ($matches as $match) {
409
  if ('user' == $match->type) {
@@ -419,7 +531,10 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
419
  $match->taxonomy_detail = unserialize($match->taxonomy_detail);
420
  if (is_array($match->taxonomy_detail)) {
421
  foreach ($match->taxonomy_detail as $tax => $count) {
422
- if (!isset($post_type_weights[$tax])) {
 
 
 
423
  $match->taxonomy_score += $count * 1;
424
  }
425
  else {
@@ -463,11 +578,12 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
463
 
464
  $body_matches[$match->doc] = $match->content;
465
  $title_matches[$match->doc] = $match->title;
 
466
  $tag_matches[$match->doc] = $match->tag;
467
  $comment_matches[$match->doc] = $match->comment;
468
 
469
- $type = $relevanssi_post_types[$match->doc];
470
- if (isset($post_type_weights[$type])) {
471
  $match->weight = $match->weight * $post_type_weights[$type];
472
  }
473
 
@@ -477,11 +593,15 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
477
 
478
  $post_ok = true;
479
  $post_ok = apply_filters('relevanssi_post_ok', $post_ok, $match->doc);
480
-
481
  if ($post_ok) {
482
  $doc_terms[$match->doc][$term] = true; // count how many terms are matched to a doc
483
  isset($doc_weight[$match->doc]) ? $doc_weight[$match->doc] += $match->weight : $doc_weight[$match->doc] = $match->weight;
484
  isset($scores[$match->doc]) ? $scores[$match->doc] += $match->weight : $scores[$match->doc] = $match->weight;
 
 
 
 
485
  }
486
  }
487
  }
@@ -527,27 +647,38 @@ function relevanssi_search($q, $cat = NULL, $excat = NULL, $tag = NULL, $expost
527
  continue;
528
  }
529
 
530
- $hits[intval($i++)] = relevanssi_get_post($doc);
 
 
531
  }
532
  }
533
 
534
  if (count($hits) < 1) {
535
  if ($operator == "AND" AND get_option('relevanssi_disable_or_fallback') != 'on') {
536
- $return = relevanssi_search($q, $o_cat, $o_excat, $o_tag, $o_expost, $o_post_type, $o_taxonomy, $o_taxonomy_term, "OR", $search_blogs, $o_customfield_key, $o_customfield_value);
 
 
 
537
  extract($return);
538
  }
539
  }
540
 
541
  global $wp;
542
  $default_order = get_option('relevanssi_default_orderby', 'relevance');
543
- isset($wp->query_vars["orderby"]) ? $orderby = $wp->query_vars["orderby"] : $orderby = $default_order;
544
- isset($wp->query_vars["order"]) ? $order = $wp->query_vars["order"] : $order = 'desc';
 
 
 
 
 
 
545
  if ($orderby != 'relevance')
546
  relevanssi_object_sort($hits, $orderby, $order);
547
 
548
  $return = array('hits' => $hits, 'body_matches' => $body_matches, 'title_matches' => $title_matches,
549
  'tag_matches' => $tag_matches, 'comment_matches' => $comment_matches, 'scores' => $scores,
550
- 'term_hits' => $term_hits, 'query' => $q);
551
 
552
  return $return;
553
  }
@@ -584,55 +715,159 @@ function relevanssi_do_query(&$query) {
584
  }
585
  }
586
  else {
587
- $cat = false;
588
- if (isset($query->query_vars["cat"])) {
589
- $cat = $query->query_vars["cat"];
 
 
590
  }
591
- if (isset($query->query_vars["cats"])) {
592
- $cat = $query->query_vars["cats"];
 
 
 
 
 
 
 
 
593
  }
594
- if (!$cat) {
595
- $cat = get_option('relevanssi_cat');
596
- if (0 == $cat) {
597
- $cat = false;
 
 
 
 
 
 
 
598
  }
599
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
600
 
601
- $tag = false;
602
- if (isset($query->query_vars["tag"])) {
603
- $tag = $query->query_vars["tag"];
604
- }
605
- if (isset($query->query_vars["tags"])) {
606
- $tag = $query->query_vars["tags"];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
607
  }
608
 
609
  $author = false;
610
- if (isset($query->query_vars["author"])) {
611
- $author = $query->query_vars["author"];
612
  }
613
-
614
- $customfield_key = false;
615
- if (isset($query->query_vars["customfield_key"])) {
616
- $customfield_key = $query->query_vars["customfield_key"];
617
  }
618
- $customfield_value = false;
619
- if (isset($query->query_vars["customfield_value"])) {
620
- $customfield_value = $query->query_vars["customfield_value"];
 
621
  }
622
-
623
- $tax = false;
624
- $tax_term = false;
625
- if (isset($query->query_vars["taxonomy"])) {
626
- $tax = $query->query_vars["taxonomy"];
627
- $tax_term = $query->query_vars["term"];
628
  }
629
-
630
- if (!isset($excat)) {
631
- $excat = get_option('relevanssi_excat');
632
- if (0 == $excat) {
633
- $excat = false;
634
- }
635
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
636
 
637
  $search_blogs = false;
638
  if (isset($query->query_vars["search_blogs"])) {
@@ -647,6 +882,8 @@ function relevanssi_do_query(&$query) {
647
  $post_type = $query->query_vars["post_types"];
648
  }
649
 
 
 
650
  $expids = get_option("relevanssi_exclude_posts");
651
 
652
  if (is_admin()) {
@@ -662,6 +899,9 @@ function relevanssi_do_query(&$query) {
662
  }
663
  if ($operator != "OR" && $operator != "AND") $operator = get_option("relevanssi_implicit_operator");
664
 
 
 
 
665
  // Add synonyms
666
  // This is done here so the new terms will get highlighting
667
  if ("OR" == $operator) {
@@ -669,19 +909,28 @@ function relevanssi_do_query(&$query) {
669
  $synonym_data = get_option('relevanssi_synonyms');
670
  if ($synonym_data) {
671
  $synonyms = array();
 
 
 
 
 
 
672
  $pairs = explode(";", $synonym_data);
673
  foreach ($pairs as $pair) {
674
  $parts = explode("=", $pair);
675
- $key = trim($parts[0]);
676
  $value = trim($parts[1]);
677
  $synonyms[$key][$value] = true;
678
  }
679
  if (count($synonyms) > 0) {
680
  $new_terms = array();
681
  $terms = array_keys(relevanssi_tokenize($q, false)); // remove stopwords is false here
 
682
  foreach ($terms as $term) {
683
  if (in_array(strval($term), array_keys($synonyms))) { // strval, otherwise numbers cause problems
684
- $new_terms = array_merge($new_terms, array_keys($synonyms[$term]));
 
 
685
  }
686
  }
687
  if (count($new_terms) > 0) {
@@ -694,38 +943,48 @@ function relevanssi_do_query(&$query) {
694
  }
695
 
696
  if ($cache) {
697
- $params = md5(serialize(array($q, $cat, $excat, $tag, $expids, $post_type, $tax, $tax_term, $operator, $search_blogs, $customfield_key, $customfield_value, $author)));
698
  $return = relevanssi_fetch_hits($params);
699
  if (!$return) {
700
- $return = relevanssi_search($q, $cat, $excat, $tag, $expids, $post_type, $tax, $tax_term, $operator, $search_blogs, $customfield_key, $customfield_value, $author);
701
  $return_ser = serialize($return);
702
  relevanssi_store_hits($params, $return_ser);
703
  }
704
  }
705
  else {
706
  $return = relevanssi_search($q,
707
- $cat, $excat,
708
- $tag,
 
 
709
  $expids,
710
  $post_type,
711
- $tax, $tax_term,
712
  $operator,
713
  $search_blogs,
714
- $customfield_key,
715
- $customfield_value,
716
- $author);
717
  }
718
  }
719
-
720
- $hits = $return['hits'];
721
- $q = $return['query'];
722
 
723
  $filter_data = array($hits, $q);
724
  $hits_filters_applied = apply_filters('relevanssi_hits_filter', $filter_data);
725
  $hits = $hits_filters_applied[0];
726
 
727
  $query->found_posts = sizeof($hits);
728
- $query->max_num_pages = ceil(sizeof($hits) / $query->query_vars["posts_per_page"]);
 
 
 
 
 
 
 
 
 
729
 
730
  $update_log = get_option('relevanssi_log_queries');
731
  if ('on' == $update_log) {
@@ -734,7 +993,7 @@ function relevanssi_do_query(&$query) {
734
 
735
  $make_excerpts = get_option('relevanssi_excerpts');
736
 
737
- if (is_paged()) {
738
  $wpSearch_low = ($query->query_vars['paged'] - 1) * $query->query_vars["posts_per_page"];
739
  }
740
  else {
@@ -747,6 +1006,12 @@ function relevanssi_do_query(&$query) {
747
  else {
748
  $wpSearch_high = $wpSearch_low + $query->query_vars["posts_per_page"] - 1;
749
  }
 
 
 
 
 
 
750
  if ($wpSearch_high > sizeof($hits)) $wpSearch_high = sizeof($hits);
751
 
752
  for ($i = $wpSearch_low; $i <= $wpSearch_high; $i++) {
@@ -796,7 +1061,7 @@ function relevanssi_do_query(&$query) {
796
  }
797
  }
798
 
799
- $post->relevance_score = round($return['scores'][$post->ID], 2);
800
 
801
  $posts[] = $post;
802
  }
11
  if (!is_search()) {
12
  $search_ok = false; // no, we can't
13
  }
14
+
15
  // Uses $wp_query->is_admin instead of is_admin() to help with Ajax queries that
16
  // use 'admin_ajax' hook (which sets is_admin() to true whether it's an admin search
17
  // or not.
20
  if ($admin_search) $search_ok = true; // yes, we can search!
21
  }
22
 
23
+ if ($wp_query->is_admin && empty($wp_query->query_vars['s'])) {
24
+ $search_ok = false;
25
+ }
26
+
27
  // Disable search in media library search
28
  if ($search_ok) {
29
  if ($wp_query->query_vars['post_type'] == 'attachment' && $wp_query->query_vars['post_status'] == 'inherit,private') {
41
  $wp_query = apply_filters('relevanssi_modify_wp_query', $wp_query);
42
  $posts = relevanssi_do_query($wp_query);
43
  }
44
+
45
  return $posts;
46
  }
47
 
48
  // This is my own magic working.
49
+ function relevanssi_search($q, $tax_query = NULL, $relation = NULL, $post_query = array(), $meta_query = array(), $expost = NULL, $post_type = NULL, $operator = "AND", $search_blogs = NULL, $author = NULL, $orderby = NULL, $order = NULL) {
50
  global $wpdb, $relevanssi_variables;
51
  $relevanssi_table = $relevanssi_variables['relevanssi_table'];
52
 
53
  $values_to_filter = array(
54
  'q' => $q,
55
+ 'tax_query' => $tax_query,
56
+ 'relation' => $relation,
57
+ 'post_query' => $post_query,
58
+ 'meta_query' => $meta_query,
59
  'expost' => $expost,
60
  'post_type' => $post_type,
 
 
61
  'operator' => $operator,
62
  'search_blogs' => $search_blogs,
 
 
63
  'author' => $author,
64
+ 'orderby' => $orderby,
65
+ 'order' => $order,
66
  );
67
  $filtered_values = apply_filters( 'relevanssi_search_filters', $values_to_filter );
68
  $q = $filtered_values['q'];
69
+ $tax_query = $filtered_values['tax_query'];
70
+ $post_query = $filtered_values['post_query'];
71
+ $meta_query = $filtered_values['meta_query'];
72
+ $relation = $filtered_values['relation'];
73
  $expost = $filtered_values['expost'];
74
  $post_type = $filtered_values['post_type'];
 
 
75
  $operator = $filtered_values['operator'];
76
  $search_blogs = $filtered_values['search_blogs'];
 
 
77
  $author = $filtered_values['author'];
78
+ $orderby = $filtered_values['orderby'];
79
+ $order = $filtered_values['order'];
80
 
81
  $hits = array();
82
 
83
+ $o_tax_query = $tax_query;
84
+ $o_relation = $relation;
85
+ $o_post_query = $post_query;
86
+ $o_meta_query = $meta_query;
87
  $o_expost = $expost;
88
  $o_post_type = $post_type;
 
 
 
 
89
  $o_author = $author;
90
+ $o_operator = $operator;
91
+ $o_search_blogs = $search_blogs;
92
+ $o_orderby = $orderby;
93
+ $o_order = $order;
94
 
95
+ $query_restrictions = "";
96
+ if (!isset($relation)) $relation = "or";
97
+ $relation = strtolower($relation);
98
+ $term_tax_id = array();
99
+ $term_tax_ids = array();
100
+ $not_term_tax_ids = array();
101
+ $and_term_tax_ids = array();
102
+ if (is_array($tax_query)) {
103
+ foreach ($tax_query as $row) {
104
+ if ($row['field'] == 'id' || $row['field'] == 'term_id') {
105
+ $id = $row['terms'];
106
+ $term_id = $id;
107
+ if (is_array($id)) {
108
+ $id = implode(',', $id);
109
+ }
110
+ $term_tax_id = $wpdb->get_col(
111
+ "SELECT tt.term_taxonomy_id
112
+ FROM $wpdb->terms AS t, $wpdb->term_taxonomy AS tt
113
+ WHERE tt.term_id = t.term_id AND tt.taxonomy = '" . $row['taxonomy'] . "' AND t.term_id IN ($id)");
114
+ }
115
+ if ($row['field'] == 'slug') {
116
+ $slug = $row['terms'];
117
+ if (is_array($slug)) {
118
+ $slugs = array();
119
+ $term_id = array();
120
+ foreach ($slug as $t_slug) {
121
+ $term = get_term_by('slug', $t_slug, $row['taxonomy']);
122
+ $term_id[] = $term->term_id;
123
+ $slugs[] = "'$t_slug'";
124
+ }
125
+ $slug = implode(',', $slugs);
126
+ }
127
+ else {
128
+ $term = get_term_by('slug', $slug, $row['taxonomy']);
129
+ $term_id = $term->term_id;
130
+ $slug = "'$slug'";
131
+ }
132
+ $term_tax_id = $wpdb->get_col(
133
+ "SELECT tt.term_taxonomy_id
134
+ FROM $wpdb->terms AS t, $wpdb->term_taxonomy AS tt
135
+ WHERE tt.term_id = t.term_id AND tt.taxonomy = '" . $row['taxonomy'] . "' AND t.slug IN ($slug)");
136
+ }
137
+
138
+ if (!isset($row['include_children']) || $row['include_children'] == true) {
139
+ if (!is_array($term_id)) {
140
+ $term_id = array($term_id);
141
+ }
142
+ foreach ($term_id as $t_id) {
143
+ $kids = get_term_children($t_id, $row['taxonomy']);
144
+ foreach ($kids as $kid) {
145
+ $term = get_term_by('id', $kid, $row['taxonomy']);
146
+ $term_tax_id[] = relevanssi_get_term_tax_id('id', $kid, $row['taxonomy']);
147
  }
148
  }
149
  }
 
 
 
 
 
150
 
151
+ $term_tax_id = array_unique($term_tax_id);
152
+ if (!empty($term_tax_id)) {
153
+ $n = count($term_tax_id);
154
+ $term_tax_id = implode(',', $term_tax_id);
155
+
156
+ $tq_operator = 'IN';
157
+ if (isset($row['operator'])) $tq_operator = strtoupper($row['operator']);
158
+ if ($tq_operator != 'IN' && $tq_operator != 'NOT IN' && $tq_operator != 'AND') $tq_operator = 'IN';
159
+ if ($relation == 'and') {
160
+ if ($tq_operator == 'AND') {
161
+ $query_restrictions .= " AND doc IN (
162
+ SELECT ID FROM $wpdb->posts WHERE 1=1
163
+ AND (
164
+ SELECT COUNT(1)
165
+ FROM $wpdb->term_relationships
166
+ WHERE term_taxonomy_id IN ($term_tax_id)
167
+ AND object_id = $wpdb->posts.ID ) = $n
168
+ )";
169
+ }
170
+ else {
171
+ $query_restrictions .= " AND doc $tq_operator (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
172
+ WHERE term_taxonomy_id IN ($term_tax_id))";
173
+ }
174
+ }
175
+ else {
176
+ if ($tq_operator == 'IN') $term_tax_ids[] = $term_tax_id;
177
+ if ($tq_operator == 'NOT IN') $not_term_tax_ids[] = $term_tax_id;
178
+ if ($tq_operator == 'AND') $and_term_tax_ids[] = $term_tax_id;
179
+ }
180
+ }
181
+ else {
182
+ global $wp_query;
183
+ $wp_query->is_category = false;
184
  }
185
  }
186
+ if ($relation == 'or') {
187
+ $term_tax_ids = array_unique($term_tax_ids);
188
+ if (count($term_tax_ids) > 0) {
189
+ $term_tax_ids = implode(',', $term_tax_ids);
190
+ $query_restrictions .= " AND doc IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
191
+ WHERE term_taxonomy_id IN ($term_tax_ids))";
192
+ }
193
+ if (count($not_term_tax_ids) > 0) {
194
+ $not_term_tax_ids = implode(',', $not_term_tax_ids);
195
+ $query_restrictions .= " AND doc NOT IN (SELECT DISTINCT(object_id) FROM $wpdb->term_relationships
196
+ WHERE term_taxonomy_id IN ($not_term_tax_ids))";
197
+ }
198
+ if (count($and_term_tax_ids) > 0) {
199
+ $and_term_tax_ids = implode(',', $and_term_tax_ids);
200
+ $n = count(explode(',', $and_term_tax_ids));
201
+ $query_restrictions .= " AND doc IN (
202
+ SELECT ID FROM $wpdb->posts WHERE 1=1
203
+ AND (
204
+ SELECT COUNT(1)
205
+ FROM $wpdb->term_relationships
206
+ WHERE term_taxonomy_id IN ($and_term_tax_ids)
207
+ AND object_id = $wpdb->posts.ID ) = $n
208
+ )";
209
  }
210
  }
 
 
211
  }
212
 
213
+ if (is_array($post_query)) {
214
+ if (!empty($post_query['in'])) {
215
+ $posts = implode(',', $post_query['in']);
216
+ $query_restrictions .= " AND doc IN ($posts)";
217
+ }
218
+ if (!empty($post_query['not in'])) {
219
+ $posts = implode(',', $post_query['not in']);
220
+ $query_restrictions .= " AND doc NOT IN ($posts)";
221
+ }
222
  }
223
 
224
+ if (is_array($meta_query)) {
225
+ foreach ($meta_query as $meta) {
226
+ if (!empty($meta['key'])) {
227
+ $key = "meta_key = '" . $meta['key'] . "'";
228
+ }
229
+ else {
230
+ $key = '';
231
+ }
232
+
233
+ isset($meta['compare']) ? $compare = strtoupper($meta['compare']) : $compare = '=';
234
+
235
+ if (isset($meta['type'])) {
236
+ if (strtoupper($meta['type']) == 'NUMERIC') $meta['type'] = "SIGNED";
237
+ $meta_value = "CAST(meta_value AS " . $meta['type'] . ")";
238
+ }
239
+ else {
240
+ $meta_value = 'meta_value';
241
+ }
242
+
243
+ if ($compare == 'BETWEEN' || $compare == 'NOT BETWEEN') {
244
+ if (!is_array($meta['value'])) continue;
245
+ if (count($meta['value']) < 2) continue;
246
+ $compare == 'BETWEEN' ? $compare = "IN" : $compare = "NOT IN";
247
+ $low_value = $meta['value'][0];
248
+ $high_value = $meta['value'][1];
249
+ !empty($key) ? $and = " AND " : $and = "";
250
+ $query_restrictions .= " AND doc $compare (
251
+ SELECT DISTINCT(post_id) FROM $wpdb->postmeta
252
+ WHERE $key $and $meta_value BETWEEN $low_value AND $high_value)";
253
+ }
254
+ else if ($compare == 'EXISTS' || $compare == 'NOT EXISTS') {
255
+ $compare == 'EXISTS' ? $compare = "IN" : $compare = "NOT IN";
256
+ $query_restrictions .= " AND doc $compare (
257
+ SELECT DISTINCT(post_id) FROM $wpdb->postmeta
258
+ WHERE $key)";
259
+ }
260
+ else if ($compare == 'IN' || $compare == 'NOT IN') {
261
+ if (!is_array($meta['value'])) continue;
262
+ $values = array();
263
+ foreach ($meta['value'] as $value) {
264
+ $values[] = "'$value'";
265
+ }
266
+ $values = implode(',', $values);
267
+ !empty($key) ? $and = " AND " : $and = "";
268
+ $query_restrictions .= " AND doc IN (
269
+ SELECT DISTINCT(post_id) FROM $wpdb->postmeta
270
+ WHERE $key $and $meta_value $compare ($values))";
271
+ }
272
+ else {
273
+ isset($meta['value']) ? $value = " $meta_value " . $meta['compare'] . " '" . $meta['value'] . "' " : $value = '';
274
+ (!empty($key) && !empty($value)) ? $and = " AND " : $and = "";
275
+ if (empty($key) && empty($and) && empty($value)) {
276
+ // do nothing
277
+ }
278
+ else {
279
+ $query_restrictions .= " AND doc IN (
280
+ SELECT DISTINCT(post_id) FROM $wpdb->postmeta
281
+ WHERE $key $and $value)";
282
+ }
283
  }
284
  }
285
  }
293
  }
294
 
295
  if ($post_type) {
296
+ if ($post_type == -1) $post_type = null; // Facetious sets post_type to -1 if not selected
297
  if (!is_array($post_type)) {
298
  $post_types = explode(',', $post_type);
299
  }
315
  if ($expost != "") {
316
  $aexpids = explode(",",$expost);
317
  foreach ($aexpids as $exid){
318
+ $exid = esc_sql(trim($exid, ' -'));
319
  $postex .= " AND doc !='$exid'";
320
  }
321
  }
322
  }
323
  // <- OdditY End
324
 
325
+ $remove_stopwords = true;
326
  $phrases = relevanssi_recognize_phrases($q);
327
 
328
  if (function_exists('relevanssi_recognize_negatives')) {
340
  }
341
 
342
  $terms = relevanssi_tokenize($q, $remove_stopwords);
343
+
344
  if (count($terms) < 1) {
345
  // Tokenizer killed all the search terms.
346
  return $hits;
368
 
369
  $fuzzy = get_option('relevanssi_fuzzy');
370
 
 
371
  if ($expost) { //added by OdditY
372
  $query_restrictions .= $postex;
373
  }
375
  if (function_exists('relevanssi_negatives_positives')) {
376
  $query_restrictions .= relevanssi_negatives_positives($negative_terms, $positive_terms, $relevanssi_table);
377
  }
378
+
379
+ if (!empty($author)) {
380
+ $author_in = array();
381
+ $author_not_in = array();
382
+ foreach ($author as $id) {
383
+ if ($id > 0) {
384
+ $author_in[] = $id;
385
+ }
386
+ else {
387
+ $author_not_in[] = abs($id);
388
+ }
389
+ }
390
+ if (count($author_in) > 0) {
391
+ $authors = implode(',', $author_in);
392
+ $query_restrictions .= " AND doc IN (SELECT DISTINCT(ID) FROM $wpdb->posts
393
+ WHERE post_author IN ($authors))";
394
+ }
395
+ if (count($author_not_in) > 0) {
396
+ $authors = implode(',', $author_not_in);
397
+ $query_restrictions .= " AND doc NOT IN (SELECT DISTINCT(ID) FROM $wpdb->posts
398
+ WHERE post_author IN ($authors))";
399
+ }
400
  }
401
+
402
  if ($post_type) {
403
  // the -1 is there to get user profiles and category pages
404
  $query_restrictions .= " AND ((doc IN (SELECT DISTINCT(ID) FROM $wpdb->posts
405
  WHERE post_type IN ($post_type))) OR (doc = -1))";
406
  }
407
+
408
  if ($phrases) {
409
  $query_restrictions .= " AND doc IN ($phrases)";
410
  }
 
 
 
 
 
 
 
 
 
 
411
 
412
  if (isset($_REQUEST['by_date'])) {
413
  $n = $_REQUEST['by_date'];
445
 
446
  $no_matches = true;
447
  if ("always" == $fuzzy) {
448
+ $o_term_cond = apply_filters('relevanssi_fuzzy_query', "(term LIKE '#term#%' OR term_reverse LIKE CONCAT(REVERSE('#term#'), '%')) ");
449
  }
450
  else {
451
  $o_term_cond = " term = '#term#' ";
460
  $recency_cutoff_date = false;
461
  }
462
  $min_length = get_option('relevanssi_min_word_length');
 
463
  $search_again = false;
464
+
465
+ $title_boost = floatval(get_option('relevanssi_title_boost'));
466
+ $link_boost = floatval(get_option('relevanssi_link_boost'));
467
+ $comment_boost = floatval(get_option('relevanssi_comment_boost'));
468
+
469
+ $include_these_posts = array();
470
+
471
  do {
472
  foreach ($terms as $term) {
473
+ $term = trim($term); // numeric search terms will start with a space
474
  if (strlen($term) < $min_length) continue;
475
+ $term = esc_sql(like_escape($term));
476
  $term_cond = str_replace('#term#', $term, $o_term_cond);
477
 
478
+ !empty($post_type_weights['post_tag']) ? $tag = $post_type_weights['post_tag'] : $tag = $relevanssi_variables['post_type_weight_defaults']['post_tag'];
479
+ !empty($post_type_weights['category']) ? $cat = $post_type_weights['category'] : $cat = $relevanssi_variables['post_type_weight_defaults']['category'];
480
+
481
+ $query = "SELECT *, title * $title_boost + content + comment * $comment_boost + tag * $tag + link * $link_boost + author + category * $cat + excerpt + taxonomy + customfield + mysqlcolumn AS tf
482
  FROM $relevanssi_table WHERE $term_cond $query_restrictions";
483
  $query = apply_filters('relevanssi_query_filter', $query);
484
 
485
  $matches = $wpdb->get_results($query);
486
+
487
  if (count($matches) < 1) {
488
  continue;
489
  }
490
  else {
491
  $no_matches = false;
492
+ if (count($include_these_posts) > 0) {
493
+ $post_ids_to_add = implode(',', array_keys($include_these_posts));
494
+ $query = "SELECT *, title * $title_boost + content + comment * $comment_boost + tag * $tag + link * $link_boost + author + category * $cat + excerpt + taxonomy + customfield + mysqlcolumn AS tf
495
+ FROM $relevanssi_table WHERE doc IN ($post_ids_to_add) AND $term_cond";
496
+ $matches_to_add = $wpdb->get_results($query);
497
+ $matches = array_merge($matches, $matches_to_add);
498
+ }
499
  }
500
 
501
  relevanssi_populate_array($matches);
510
 
511
  if ($df < 1 && "sometimes" == $fuzzy) {
512
  $query = "SELECT COUNT(DISTINCT(doc)) FROM $relevanssi_table
513
+ WHERE (term LIKE '$term%' OR term_reverse LIKE CONCAT(REVERSE('$term), %')) $query_restrictions";
514
  $query = apply_filters('relevanssi_df_query_filter', $query);
515
  $df = $wpdb->get_var($query);
516
  }
517
 
518
+ $idf = log($D + 1 / (1 + $df));
 
 
 
 
519
  $idf = $idf * $idf;
520
  foreach ($matches as $match) {
521
  if ('user' == $match->type) {
531
  $match->taxonomy_detail = unserialize($match->taxonomy_detail);
532
  if (is_array($match->taxonomy_detail)) {
533
  foreach ($match->taxonomy_detail as $tax => $count) {
534
+ if ($tax == 'post_tag') {
535
+ $match->tag = $count;
536
+ }
537
+ if (empty($post_type_weights[$tax])) {
538
  $match->taxonomy_score += $count * 1;
539
  }
540
  else {
578
 
579
  $body_matches[$match->doc] = $match->content;
580
  $title_matches[$match->doc] = $match->title;
581
+ $link_matches[$match->doc] = $match->link;
582
  $tag_matches[$match->doc] = $match->tag;
583
  $comment_matches[$match->doc] = $match->comment;
584
 
585
+ isset($relevanssi_post_types[$match->doc]) ? $type = $relevanssi_post_types[$match->doc] : $type = null;
586
+ if (!empty($post_type_weights[$type])) {
587
  $match->weight = $match->weight * $post_type_weights[$type];
588
  }
589
 
593
 
594
  $post_ok = true;
595
  $post_ok = apply_filters('relevanssi_post_ok', $post_ok, $match->doc);
596
+
597
  if ($post_ok) {
598
  $doc_terms[$match->doc][$term] = true; // count how many terms are matched to a doc
599
  isset($doc_weight[$match->doc]) ? $doc_weight[$match->doc] += $match->weight : $doc_weight[$match->doc] = $match->weight;
600
  isset($scores[$match->doc]) ? $scores[$match->doc] += $match->weight : $scores[$match->doc] = $match->weight;
601
+ if (is_numeric($match->doc)) {
602
+ // this is to weed out taxonomies and users (t_XXX, u_XXX)
603
+ $include_these_posts[$match->doc] = true;
604
+ }
605
  }
606
  }
607
  }
647
  continue;
648
  }
649
 
650
+ $hits[intval($i)] = relevanssi_get_post($doc);
651
+ $hits[intval($i)]->relevance_score = round($weight, 2);
652
+ $i++;
653
  }
654
  }
655
 
656
  if (count($hits) < 1) {
657
  if ($operator == "AND" AND get_option('relevanssi_disable_or_fallback') != 'on') {
658
+ $return = relevanssi_search($q, $o_tax_query, $o_relation,
659
+ $o_post_query, $o_meta_query,
660
+ $o_expost, $o_post_type,
661
+ "OR", $o_search_blogs, $o_author);
662
  extract($return);
663
  }
664
  }
665
 
666
  global $wp;
667
  $default_order = get_option('relevanssi_default_orderby', 'relevance');
668
+ if (empty($orderby)) $orderby = $default_order;
669
+ // the sorting function checks for non-existing keys, cannot whitelist here
670
+
671
+ if (empty($order)) $order = 'desc';
672
+ $order = strtolower($order);
673
+ $order_accepted_values = array('asc', 'desc');
674
+ if (!in_array($order, $order_accepted_values)) $order = 'desc';
675
+
676
  if ($orderby != 'relevance')
677
  relevanssi_object_sort($hits, $orderby, $order);
678
 
679
  $return = array('hits' => $hits, 'body_matches' => $body_matches, 'title_matches' => $title_matches,
680
  'tag_matches' => $tag_matches, 'comment_matches' => $comment_matches, 'scores' => $scores,
681
+ 'term_hits' => $term_hits, 'query' => $q, 'link_matches' => $link_matches);
682
 
683
  return $return;
684
  }
715
  }
716
  }
717
  else {
718
+ $tax_query = array();
719
+ $tax_query_relation = apply_filters('relevanssi_default_tax_query_relation', 'OR');
720
+ if (isset($query->tax_query) && empty($query->tax_query->queries)) {
721
+ // Tax query is empty, let's get rid of it.
722
+ $query->tax_query = null;
723
  }
724
+ if (isset($query->query_vars['tax_query'])) {
725
+ // This is user-created tax_query array as described in WP Codex
726
+ foreach ($query->query_vars['tax_query'] as $type => $item) {
727
+ if (is_string($type) && $type == 'relation') {
728
+ $tax_query_relation = $item;
729
+ }
730
+ else {
731
+ $tax_query[] = $item;
732
+ }
733
+ }
734
  }
735
+ else if (isset($query->tax_query)) {
736
+ // This is the WP-created Tax_Query object, which is different from above
737
+ foreach ($query->tax_query as $type => $item) {
738
+ if (is_string($type) && $type == 'relation') {
739
+ $tax_query_relation = $item;
740
+ }
741
+ if (is_string($type) && $type == 'queries') {
742
+ foreach ($item as $tax_query_row) {
743
+ $tax_query[] = $tax_query_row;
744
+ }
745
+ }
746
  }
747
  }
748
+ else {
749
+ $cat = false;
750
+ if (isset($query->query_vars["cats"])) {
751
+ $cat = $query->query_vars["cats"];
752
+ }
753
+ if (empty($cat)) {
754
+ $cat = get_option('relevanssi_cat');
755
+ if (0 == $cat) {
756
+ $cat = false;
757
+ }
758
+ }
759
+ if ($cat) {
760
+ $cat = explode(',', $cat);
761
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'id', 'terms' => $cat);
762
+ }
763
+ if (!empty($query->query_vars['category_name']) && empty($query->query_vars['category__in'])) {
764
+ $cat = explode(',', $query->query_vars['category_name']);
765
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'slug', 'terms' => $cat);
766
+ }
767
+ if (!empty($query->query_vars['category__in'])) {
768
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'id', 'terms' => $query->query_vars['category__in']);
769
+ }
770
+ if (!empty($query->query_vars['category__not_in'])) {
771
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'id', 'terms' => $query->query_vars['category__not_in'], 'operator' => 'NOT IN');
772
+ }
773
+ if (!empty($query->query_vars['category__and'])) {
774
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'id', 'terms' => $query->query_vars['category__and'], 'operator' => 'AND', 'include_children' => false);
775
+ }
776
+ $excat = get_option('relevanssi_excat');
777
+ if (isset($excat) && $excat != 0) {
778
+ $tax_query[] = array('taxonomy' => 'category', 'field' => 'id', 'terms' => $excat, 'operator' => 'NOT IN');
779
+ }
780
 
781
+ $tag = false;
782
+ if (isset($query->query_vars["tags"])) {
783
+ $tag = $query->query_vars["tags"];
784
+ }
785
+ if ($tag) {
786
+ if (strpos($tag, '+') !== false) {
787
+ $tag = explode('+', $tag);
788
+ $operator = 'and';
789
+ }
790
+ else {
791
+ $tag = explode(',', $tag);
792
+ $operator = 'or';
793
+ }
794
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $tag, 'operator' => $operator);
795
+ }
796
+ if (!empty($query->query_vars['tag_id'])) {
797
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag_id']);
798
+ }
799
+ if (!empty($query->query_vars['tag_id'])) {
800
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag_id']);
801
+ }
802
+ if (!empty($query->query_vars['tag__in'])) {
803
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag__in']);
804
+ }
805
+ if (!empty($query->query_vars['tag__not_in'])) {
806
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag__not_in'], 'operator' => 'NOT IN');
807
+ }
808
+ if (!empty($query->query_vars['tag__and'])) {
809
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag__and'], 'operator' => 'AND');
810
+ }
811
+ if (!empty($query->query_vars['tag__not_in'])) {
812
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'id', 'terms' => $query->query_vars['tag__not_in'], 'operator' => 'NOT IN');
813
+ }
814
+ if (!empty($query->query_vars['tag_slug__in'])) {
815
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => $query->query_vars['tag_slug__in']);
816
+ }
817
+ if (!empty($query->query_vars['tag_slug__not_in'])) {
818
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => $query->query_vars['tag_slug__not_in'], 'operator' => 'NOT IN');
819
+ }
820
+ if (!empty($query->query_vars['tag_slug__and'])) {
821
+ $tax_query[] = array('taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => $query->query_vars['tag_slug__and'], 'operator' => 'AND');
822
+ }
823
+
824
+ if (isset($query->query_vars["taxonomy"])) {
825
+ if (function_exists('relevanssi_process_taxonomies')) {
826
+ $tax_query = relevanssi_process_taxonomies($query->query_vars["taxonomy"], $query->query_vars["term"], $tax_query);
827
+ }
828
+ else {
829
+ if (!empty($query->query_vars["term"])) $term = $query->query_vars["term"];
830
+
831
+ $tax_query[] = array('taxonomy' => $query->query_vars["taxonomy"], 'field' => 'slug', 'terms' => $term);
832
+ }
833
+ }
834
  }
835
 
836
  $author = false;
837
+ if (!empty($query->query_vars["author"])) {
838
+ $author = explode(',', $query->query_vars["author"]);
839
  }
840
+ if (!empty($query->query_vars["author_name"])) {
841
+ $author_object = get_user_by('slug', $query->query_vars["author_name"]);
842
+ $author[] = $author_object->ID;
 
843
  }
844
+
845
+ $post_query = array();
846
+ if (!empty($query->query_vars['post__in'])) {
847
+ $post_query = array('in' => $query->query_vars['post__in']);
848
  }
849
+ if (!empty($query->query_vars['post__not_in'])) {
850
+ $post_query = array('not in' => $query->query_vars['post__not_in']);
 
 
 
 
851
  }
852
+
853
+ $meta_query = array();
854
+ if (!empty($query->query_vars["meta_query"])) {
855
+ $meta_query = $query->query_vars["meta_query"];
 
 
856
  }
857
+ if (isset($query->query_vars["customfield_key"])) {
858
+ isset($query->query_vars["customfield_value"]) ? $value = $query->query_vars["customfield_value"] : $value = null;
859
+ $meta_query[] = array('key' => $query->query_vars["customfield_key"], 'value' => $value, 'compare' => '=');
860
+ }
861
+ if (!empty($query->query_vars["meta_key"]) ||
862
+ !empty($query->query_vars["meta_value"]) ||
863
+ !empty($query->query_vars["meta_value_num"])) {
864
+ $value = null;
865
+ if (!empty($query->query_vars["meta_value"])) $value = $query->query_vars["meta_value"];
866
+ if (!empty($query->query_vars["meta_value_num"])) $value = $query->query_vars["meta_value_num"];
867
+ !empty($query->query_vars["meta_compare"]) ? $compare = $query->query_vars["meta_compare"] : $compare = '=';
868
+ $meta_query[] = array('key' => $query->query_vars["meta_key"], 'value' => $value, 'compare' => $compare);
869
+ }
870
+
871
 
872
  $search_blogs = false;
873
  if (isset($query->query_vars["search_blogs"])) {
882
  $post_type = $query->query_vars["post_types"];
883
  }
884
 
885
+ if ($post_type == -1) $post_type = false;
886
+
887
  $expids = get_option("relevanssi_exclude_posts");
888
 
889
  if (is_admin()) {
899
  }
900
  if ($operator != "OR" && $operator != "AND") $operator = get_option("relevanssi_implicit_operator");
901
 
902
+ isset($query->query_vars['orderby']) ? $orderby = $query->query_vars['orderby'] : $orderby = null;
903
+ isset($query->query_vars['order']) ? $order = $query->query_vars['order'] : $order = null;
904
+
905
  // Add synonyms
906
  // This is done here so the new terms will get highlighting
907
  if ("OR" == $operator) {
909
  $synonym_data = get_option('relevanssi_synonyms');
910
  if ($synonym_data) {
911
  $synonyms = array();
912
+ if (function_exists('mb_strtolower')) {
913
+ $synonym_data = mb_strtolower($synonym_data);
914
+ }
915
+ else {
916
+ $synonym_data = strtolower($synonym_data);
917
+ }
918
  $pairs = explode(";", $synonym_data);
919
  foreach ($pairs as $pair) {
920
  $parts = explode("=", $pair);
921
+ $key = strval(trim($parts[0]));
922
  $value = trim($parts[1]);
923
  $synonyms[$key][$value] = true;
924
  }
925
  if (count($synonyms) > 0) {
926
  $new_terms = array();
927
  $terms = array_keys(relevanssi_tokenize($q, false)); // remove stopwords is false here
928
+ $terms[] = $q;
929
  foreach ($terms as $term) {
930
  if (in_array(strval($term), array_keys($synonyms))) { // strval, otherwise numbers cause problems
931
+ if (isset($synonyms[strval($term)])) { // necessary, otherwise terms like "02" can cause problems
932
+ $new_terms = array_merge($new_terms, array_keys($synonyms[strval($term)]));
933
+ }
934
  }
935
  }
936
  if (count($new_terms) > 0) {
943
  }
944
 
945
  if ($cache) {
946
+ $params = md5(serialize(array($q, $tax_query, $tax_query_relation, $post_query, $meta_query, $expids, $post_type, $operator, $search_blogs, $author, $orderby, $order)));
947
  $return = relevanssi_fetch_hits($params);
948
  if (!$return) {
949
+ $return = relevanssi_search($q, $tax_query, $tax_query_relation, $post_query, $meta_query, $expids, $post_type, $operator, $search_blogs, $author, $orderby, $order);
950
  $return_ser = serialize($return);
951
  relevanssi_store_hits($params, $return_ser);
952
  }
953
  }
954
  else {
955
  $return = relevanssi_search($q,
956
+ $tax_query,
957
+ $tax_query_relation,
958
+ $post_query,
959
+ $meta_query,
960
  $expids,
961
  $post_type,
 
962
  $operator,
963
  $search_blogs,
964
+ $author,
965
+ $orderby,
966
+ $order);
967
  }
968
  }
969
+
970
+ isset($return['hits']) ? $hits = $return['hits'] : $hits = array();
971
+ isset($return['query']) ? $q = $return['query'] : $q = "";
972
 
973
  $filter_data = array($hits, $q);
974
  $hits_filters_applied = apply_filters('relevanssi_hits_filter', $filter_data);
975
  $hits = $hits_filters_applied[0];
976
 
977
  $query->found_posts = sizeof($hits);
978
+ if ($query->query_vars["posts_per_page"] == 0) {
979
+ // assume something sensible to prevent "division by zero error";
980
+ $query->query_vars["posts_per_page"] = -1;
981
+ }
982
+ if ($query->query_vars["posts_per_page"] == -1) {
983
+ $query->max_num_pages = sizeof($hits);
984
+ }
985
+ else {
986
+ $query->max_num_pages = ceil(sizeof($hits) / $query->query_vars["posts_per_page"]);
987
+ }
988
 
989
  $update_log = get_option('relevanssi_log_queries');
990
  if ('on' == $update_log) {
993
 
994
  $make_excerpts = get_option('relevanssi_excerpts');
995
 
996
+ if ($query->query_vars['paged'] > 0) {
997
  $wpSearch_low = ($query->query_vars['paged'] - 1) * $query->query_vars["posts_per_page"];
998
  }
999
  else {
1006
  else {
1007
  $wpSearch_high = $wpSearch_low + $query->query_vars["posts_per_page"] - 1;
1008
  }
1009
+
1010
+ if (isset($query->query_vars['offset']) && $query->query_vars['offset'] > 0) {
1011
+ $wpSearch_high += $query->query_vars['offset'];
1012
+ $wpSearch_low += $query->query_vars['offset'];
1013
+ }
1014
+
1015
  if ($wpSearch_high > sizeof($hits)) $wpSearch_high = sizeof($hits);
1016
 
1017
  for ($i = $wpSearch_low; $i <= $wpSearch_high; $i++) {
1061
  }
1062
  }
1063
 
1064
+ if (isset($return['scores'][$post->ID])) $post->relevance_score = round($return['scores'][$post->ID], 2);
1065
 
1066
  $posts[] = $post;
1067
  }
lib/stopwords.php CHANGED
@@ -11,12 +11,14 @@ function relevanssi_populate_stopwords() {
11
  $lang = WPLANG;
12
  }
13
 
14
- include($relevanssi_variables['plugin_dir'] . 'stopwords/stopwords.' . $lang);
 
15
 
16
- if (is_array($stopwords) && count($stopwords) > 0) {
17
- foreach ($stopwords as $word) {
18
- $q = $wpdb->prepare("INSERT IGNORE INTO " . $relevanssi_variables['stopword_table'] . " (stopword) VALUES (%s)", trim($word));
19
- $wpdb->query($q);
 
20
  }
21
  }
22
  }
11
  $lang = WPLANG;
12
  }
13
 
14
+ if (file_exists($relevanssi_variables['plugin_dir'] . 'stopwords/stopwords.' . $lang)) {
15
+ include($relevanssi_variables['plugin_dir'] . 'stopwords/stopwords.' . $lang);
16
 
17
+ if (is_array($stopwords) && count($stopwords) > 0) {
18
+ foreach ($stopwords as $word) {
19
+ $q = $wpdb->prepare("INSERT IGNORE INTO " . $relevanssi_variables['stopword_table'] . " (stopword) VALUES (%s)", trim($word));
20
+ $wpdb->query($q);
21
+ }
22
  }
23
  }
24
  }
lib/uninstall.php CHANGED
@@ -3,6 +3,8 @@
3
  function relevanssi_clear_database_tables() {
4
  global $wpdb;
5
 
 
 
6
  wp_clear_scheduled_hook('relevanssi_truncate_cache');
7
 
8
  $relevanssi_table = $wpdb->prefix . "relevanssi";
3
  function relevanssi_clear_database_tables() {
4
  global $wpdb;
5
 
6
+ if (defined('RELEVANSSI_PREMIUM')) return; // Relevanssi Premium exists, do not delete the tables
7
+
8
  wp_clear_scheduled_hook('relevanssi_truncate_cache');
9
 
10
  $relevanssi_table = $wpdb->prefix . "relevanssi";
readme.txt CHANGED
@@ -2,9 +2,11 @@
2
  Contributors: msaari
3
  Donate link: http://www.relevanssi.com/buy-premium/
4
  Tags: search, relevance, better search
5
- Requires at least: 2.7
6
- Tested up to: 3.4.2
7
- Stable tag: 3.0.5
 
 
8
 
9
  Relevanssi replaces the default search with a partial-match search that sorts results by relevance. It also indexes comments and shortcode content.
10
 
@@ -129,9 +131,9 @@ If you're doing something unusual with your search and Relevanssi doesn't work,
129
  using `relevanssi_do_query()`. See [Knowledge Base](http://www.relevanssi.com/knowledge-base/relevanssi_do_query/).
130
 
131
  = Uninstalling =
132
- To uninstall the plugin, first click the "Remove plugin data" button on the plugin settins page
133
- to remove options and database tables, then remove the plugin using the normal WordPress
134
- plugin management tools.
135
 
136
  = Combining with other plugins =
137
  Relevanssi doesn't work with plugins that rely on standard WP search. Those plugins want to
@@ -388,6 +390,125 @@ removing those words helps to make the index smaller and searching faster.
388
 
389
  == Changelog ==
390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
391
  = 3.0.5 =
392
  * AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
393
  * Fixed a major bug that caused the searches to fail when "Limit searches" was enabled, but "Limit" was not defined.
@@ -823,7 +944,7 @@ removing those words helps to make the index smaller and searching faster.
823
 
824
  = 1.3.2 =
825
  * Quicktags are now stripped from custom-created excerpts.
826
- * Added a function `relevanssi_the_excerpt()', which prints out the excerpt without triggering `wp_trim_excerpt()` filters.
827
 
828
  = 1.3.1 =
829
  * Another bug fix release.
@@ -849,4 +970,12 @@ removing those words helps to make the index smaller and searching faster.
849
  * Fixes the problem with pages in search results.
850
 
851
  = 1.0 =
852
- * First published version.
 
 
 
 
 
 
 
 
2
  Contributors: msaari
3
  Donate link: http://www.relevanssi.com/buy-premium/
4
  Tags: search, relevance, better search
5
+ Requires at least: 3.3
6
+ Tested up to: 3.7
7
+ Stable tag: 3.1.9
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  Relevanssi replaces the default search with a partial-match search that sorts results by relevance. It also indexes comments and shortcode content.
12
 
131
  using `relevanssi_do_query()`. See [Knowledge Base](http://www.relevanssi.com/knowledge-base/relevanssi_do_query/).
132
 
133
  = Uninstalling =
134
+ To uninstall the plugin remove the plugin using the normal WordPress plugin management tools
135
+ (from the Plugins page, first Deactivate, then Delete). If you remove the plugin files manually,
136
+ the database tables and options will remain.
137
 
138
  = Combining with other plugins =
139
  Relevanssi doesn't work with plugins that rely on standard WP search. Those plugins want to
390
 
391
  == Changelog ==
392
 
393
+ = 3.1.9 =
394
+ * Fix to make Relevanssi compatible with WordPress 3.7.
395
+ * Fixed a mistyped database table name.
396
+ * Relevanssi disables responsive-flipbook shortcode in indexing; it was causing problems.
397
+ * Fixed a problem with an author dropdown with no author selected.
398
+
399
+ = 3.1.8 =
400
+ * Category restriction and exclusion and couple of other category-related settings didn't work properly.
401
+ * Support for Polylang broke the support for WPML. That is now fixed.
402
+ * One deprecated `$wpdb->escape()` was still left; it's gone now.
403
+ * Shortcode `layerslider` was causing problems with Relevanssi; Relevanssi now disables it before building excerpts.
404
+ * Relevanssi won't break BBPress search anymore.
405
+ * If Relevanssi Premium is installed, deleting Relevanssi will not remove the databases and the options.
406
+
407
+ = 3.1.7 =
408
+ * New filter: `relevanssi_comment_content_to_index` lets you modify comment content before it's indexed by Relevanssi (to index comment meta, for example).
409
+ * Facetious support: if post_type is set to -1, Relevanssi will not hang up on it.
410
+ * Numerical search terms work better now.
411
+ * Excerpt-building had issues, which are now fixed.
412
+ * Punctuation removal now replaces &nbsp; with a space.
413
+ * "starrater" short code from GD Star Rating is now disabled in indexing.
414
+ * Punctuation removal now replaces invisible spaces with a normal space.
415
+ * Division by zero error caused by 0 in posts_per_page is now prevented, and -1 value for posts_per_page handled better.
416
+ * Relevanssi doesn't apply `get_the_excerpt` filters to excerpts it builds any more.
417
+ * New filter: `relevanssi_excerpt` lets you modify the excerpts Relevanssi creates.
418
+ * Relevanssi now suspends WP post cache while indexing, making indexing a lot more efficient. Thanks to Julien Mession for this one.
419
+ * Deprecated function errors in 3.6 removed.
420
+ * When search included user profiles or taxonomy terms, Relevanssi would generate lots of MySQL errors. Not anymore.
421
+ * New filter: `relevanssi_valid_status` lets you modify the post statuses Relevanssi indexes.
422
+ * New filter: `relevanssi_index_taxonomies_args` lets you modify the arguments passed to get_terms() when indexing taxonomies (for example to set 'hide_empty' to false).
423
+ * Searching by taxonomy ID could confuse two taxonomies with the same term_id. The search is now checking the taxonomy as well to see it's correct.
424
+ * Basic support for Polylang plugin.
425
+ * Russian and Italian stopwords are now included, thanks to Flector and Valerio Vendrame.
426
+ * Small fix in the way user meta fields are handled.
427
+
428
+ = 3.1.6 =
429
+ * DEACTIVATE AND ACTIVATE THE PLUGIN AFTER YOU UPDATE.
430
+ * Fuzzy searches are now a lot more efficient; they were a huge resource hog before.
431
+ * Fixed a possible MySQL injection attack.
432
+ * Fixed MySQL errors from empty meta queries.
433
+ * Sort order (orderby and order variables) are now read from query variables instead of global variables.
434
+ * Relevanssi will not choke on bad values of orderby anymore.
435
+ * Limit searches is improved: when using AND search it is less likely to miss results.
436
+ * Phrase recognition read the whole post content (which it didn't need) from database, causing memory issues in some cases. Fixed that.
437
+ * Highlighting was broken, and should work much better now.
438
+
439
+ = 3.1.5 =
440
+ * OR fallback didn't actually fall back to OR, but instead got stuck in an endless loop of AND searches.
441
+ * Meta queries didn't work without a key; now they work with just meta_value or meta_value_num.
442
+ * Meta queries had problems with meta_value being set to null.
443
+ * Relevanssi now supports category__and. By default this sets include_children to false.
444
+ * When querying by slug, the term taxonomy is also taken into consideration, fixing problems when same slug appears in different taxonomies.
445
+ * Author search didn't work.
446
+ * Fixed an error message caused by all-number synonyms starting with zero, like 02.
447
+ * Synonyms are now case-insensitive.
448
+ * New filter: `relevanssi_default_tax_query_relation` can be used to change the default tax query relation from OR to AND.
449
+ * Fixed undefined variable errors when doing an OR fallback.
450
+ * New filter: `relevanssi_bots_to_not_log` makes it possible to block bots from logs. The format matches what other plugins, ie. WP-Useronline, use for bot blocking, so you can share block lists.
451
+ * New filter: `relevanssi_admin_search_ok` gives you more control when Relevanssi overrides the default WP search in admin, useful for fixing P2P_Box AJAX search.
452
+ * Ordering search results by title or date in admin search works now.
453
+ * Modified the way the highlights work; now highlighting words with apostrophes should produce more meaningful results.
454
+ * Highlighting should not highlight anything between & and ; or in <style> or <script> tags, thus solving some of the problems related to highlights. Reports of how well this works are welcome.
455
+ * On-post highlighting now only highlights content in the loop, so menu texts and other off-the-loop stuff should not get highlights anymore.
456
+ * New action hook: `relevanssi_pre_indexing_query` can be used to "SET OPTION SQL_BIG_SELECTS=1" if needed.
457
+ * Major indexing problems caused by shortcodes changing the post ID during the indexing of posts are now fixed.
458
+ * Relevanssi was being called twice when a post was saved, on `save_post` and `wp_insert_post`. I removed the hook on `save_post`.
459
+ * Unsuccessful searches are now ordered by count, like the successful queries are.
460
+
461
+ = 3.1.4 =
462
+ * Choosing which taxonomies to index is now done with an easy-to-use checkbox list.
463
+ * Support for WP Table Reloaded and TablePress. Tables created with these plugins will now be expanded and the content indexed by Relevanssi.
464
+ * New filter: `relevanssi_index_comments_exclude` can be used to exclude comments from indexing. The filter gets the post ID as a parameter, so you can prevent comments of particular posts being indexed, yet index those posts.
465
+ * Relevanssi now adds spaces between tags when creating excerpts to make neater excerpts from tables and other similar situations.
466
+ * Relevanssi now indexes unattached attachments, if you choose to index attachments.
467
+ * Fixed the problems with Twenty Ten and Twenty Eleven themes better.
468
+ * $match->tag now contains the number of tag hits.
469
+ * Relevanssi now adds relevance score to posts before passing them to relevanssi_hits_filter. You can find it in $post->relevance_score.
470
+ * Tags in breakdowns always showed 0, even though tags were indexed and searched correctly. That's now fixed.
471
+
472
+ = 3.1.3 =
473
+ * AND search did not work in all cases.
474
+ * Posts couldn't be found by category name. Fixed that.
475
+
476
+ = 3.1.2 =
477
+ * Exclude category option was broken. Fixed that.
478
+ * Searching for a non-existing category ID caused an error. Fixed that.
479
+ * Occasional blank screens of death occurred when multibyte string operations weren't installed. That should not happen anymore.
480
+ * Fallback to OR search was a bit broken.
481
+
482
+ = 3.1.1 =
483
+ * Small fix to prevent database errors.
484
+ * Small fix to prevent disappearing excerpts.
485
+
486
+ = 3.1 =
487
+ * Fixed the uninstalling instructions.
488
+ * Fixes a problem with Twenty Ten and Twenty Eleven themes that caused doubled "Continue Reading" links.
489
+ * Fixed a notice about undefined variable on plugin update pages.
490
+ * Small bug fixes on search to remove warning notices.
491
+ * New filter: `relevanssi_index_custom_fields` can be used to modify the list of custom fields to index.
492
+ * Deleting menus caused a warning. That is now fixed.
493
+ * Relevanssi has an option to disable IP logging (which is actually illegal in some countries). Thanks to Stefan Eufinger.
494
+ * Searching in subcategories worked sometimes, but not always. Thanks to Faebu.
495
+ * The "Limit searches" option didn't work too well in the case of strong weightings, as it didn't take note of any weights. Now it works better.
496
+ * Added a note about disabling custom excerpts when they are not needed - they can slow down the search quite a bit.
497
+ * New filter: `relevanssi_options_capability` can be used to modify the capability required to see the options page (default is `manage_options`).
498
+ * Fixed the way IDF is calculated to account some extreme cases with small databases.
499
+ * New filter: `relevanssi_index_custom_fields` gives added control over which custom fields are indexed.
500
+ * Fixed filter: `relevanssi_pre_excerpt_content` wasn't working properly.
501
+ * Relevanssi now supports tax_query, for most part. You can query multiple taxonomies, use relation AND and OR, use operators AND, IN and NOT IN and choose include_children (which defaults to true). Old `taxonomy` and `term` still work, but I recommend using tax_query for the level of control it offers.
502
+ * Relevanssi now works better with category restrictions. The extra `cats` query variable is no longer necessary, Relevanssi can now read multiple categories from `cat`. You can also use `category__and`, `category__in` and `category__not_in`.
503
+ * Same goes with tags: `tags` is now longer necessary. Relevanssi has full support for `tag`, `tag_id`, `tag__and`, `tag__in`, `tag__not_in`, `tag_slug__and`, `tag_slug__in` and `tag_slug__not_in`. For `tag`, both `term1+term2` and `term1,term2` is supported.
504
+ * Relevanssi now supports `author_name` and negative values for `author`.
505
+ * Relevanssi now supports `offset` query variable.
506
+ * Relevanssi now supports meta_query. You can use all comparisons (also EXISTS and NOT EXISTS, even if you don't have WP 3.5). You can also use the older `meta_key` and `meta_value` query variables, including all the comparisons. I have not tested all possible meta_query constructions, so bug reports of things that don't work as expected are welcome.
507
+ * New index on the database makes some database operations faster.
508
+ * Removed a bug that prevents one-character words from being indexed in titles, despite the minimum word length setting.
509
+ * Removed a warning when searching for nothing.
510
+ * Fixes a warning about $wpdb->prepare() caused by a change in WordPress 3.5.
511
+
512
  = 3.0.5 =
513
  * AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
514
  * Fixed a major bug that caused the searches to fail when "Limit searches" was enabled, but "Limit" was not defined.
944
 
945
  = 1.3.2 =
946
  * Quicktags are now stripped from custom-created excerpts.
947
+ * Added a function `relevanssi_the_excerpt()`, which prints out the excerpt without triggering `wp_trim_excerpt()` filters.
948
 
949
  = 1.3.1 =
950
  * Another bug fix release.
970
  * Fixes the problem with pages in search results.
971
 
972
  = 1.0 =
973
+ * First published version.
974
+
975
+ == Upgrade notice ==
976
+
977
+ = 3.1.9 =
978
+ * WordPress 3.7 compatibility, couple of minor bug fixes.
979
+
980
+ = 3.1.8 =
981
+ Recommended for users of WPML and BBpress. Category exclusions and restrictions are also fixed.
relevanssi-fr_FR.mo CHANGED
Binary file
relevanssi-fr_FR.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Relevanssi v1.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2012-09-29 11:31+0100\n"
6
- "PO-Revision-Date: 2012-09-29 11:34+0100\n"
7
  "Last-Translator: Li-An <lian00@gmail.com>\n"
8
  "Language-Team: \n"
9
  "Language: fr_FR\n"
@@ -15,16 +15,16 @@ msgstr ""
15
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
  "X-Textdomain-Support: yes\n"
18
- "X-Generator: Poedit 1.5.3\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  # @ relevanssi
22
- #: relevanssi.php:262
23
  msgid "Tag weight:"
24
  msgstr "Poids des mots-clef:"
25
 
26
  # @ relevanssi
27
- #: relevanssi.php:277
28
  msgid "Category weight:"
29
  msgstr "Poids des catégories:"
30
 
@@ -76,7 +76,7 @@ msgid "Relevanssi User Searches"
76
  msgstr "Recherches Relevanssi par les utilisateurs"
77
 
78
  # @ relevanssi
79
- #: lib/interface.php:328
80
  #, php-format
81
  msgid ""
82
  "<div id='message' class='updated fade'><p>Successfully added %d/%d terms to "
@@ -86,7 +86,7 @@ msgstr ""
86
  "stopwords!</p></div>"
87
 
88
  # @ relevanssi
89
- #: lib/interface.php:335
90
  #, php-format
91
  msgid ""
92
  "<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></"
@@ -96,7 +96,7 @@ msgstr ""
96
  "p></div>"
97
 
98
  # @ relevanssi
99
- #: lib/interface.php:338
100
  #, php-format
101
  msgid ""
102
  "<div id='message' class='updated fade'><p>Couldn't add term '%s' to "
@@ -106,7 +106,7 @@ msgstr ""
106
  "stopwords!</p></div>"
107
 
108
  # @ relevanssi
109
- #: lib/interface.php:367
110
  msgid ""
111
  "<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-"
112
  "index.</p></div>"
@@ -115,7 +115,7 @@ msgstr ""
115
  "de réindexer.</p></div>"
116
 
117
  # @ relevanssi
118
- #: lib/interface.php:377
119
  #, php-format
120
  msgid ""
121
  "<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! "
@@ -125,7 +125,7 @@ msgstr ""
125
  "Réindexer pour le récupérer dans l'index.</p></div>"
126
 
127
  # @ relevanssi
128
- #: lib/interface.php:380
129
  #, php-format
130
  msgid ""
131
  "<div id='message' class='updated fade'><p>Couldn't remove term '%s' from "
@@ -135,12 +135,12 @@ msgstr ""
135
  "stopwords !</p></div>"
136
 
137
  # @ relevanssi
138
- #: lib/interface.php:391
139
  msgid "25 most common words in the index"
140
  msgstr "Les 25 mots des plus fréquents de l'index"
141
 
142
  # @ relevanssi
143
- #: lib/interface.php:393
144
  msgid ""
145
  "These words are excellent stopword material. A word that appears in most of "
146
  "the posts in the database is quite pointless when searching. This is also an "
@@ -157,24 +157,24 @@ msgstr ""
157
  "retiré de l'index aussi est-il inutile de reconstruire l'index."
158
 
159
  # @ relevanssi
160
- #: lib/interface.php:419
161
  msgid "Add to stopwords"
162
  msgstr "Ajouter aux stopwords."
163
 
164
- #: lib/interface.php:430
165
  msgid "Total Searches"
166
  msgstr "Nombre de recherches total"
167
 
168
- #: lib/interface.php:433
169
  msgid "Totals"
170
  msgstr "Totaux"
171
 
172
- #: lib/interface.php:438
173
  msgid "Common Queries"
174
  msgstr "Requêtes en commun"
175
 
176
  # @ relevanssi
177
- #: lib/interface.php:440
178
  msgid ""
179
  "Here you can see the 20 most common user search queries, how many times "
180
  "those \n"
@@ -186,113 +186,145 @@ msgstr ""
186
  "pour ces requêtes."
187
 
188
  # @ relevanssi
189
- #: lib/interface.php:446 lib/interface.php:462
190
  msgid "Today and yesterday"
191
  msgstr "Aujourd'hui et hier"
192
 
193
  # @ relevanssi
194
- #: lib/interface.php:450 lib/interface.php:466
195
  msgid "Last 7 days"
196
  msgstr "Sept derniers jours"
197
 
198
  # @ relevanssi
199
- #: lib/interface.php:454 lib/interface.php:470
200
  msgid "Last 30 days"
201
  msgstr "Trente derniers jours"
202
 
203
  # @ relevanssi
204
- #: lib/interface.php:459
205
  msgid "Unsuccessful Queries"
206
  msgstr "Requêtes sans résultat"
207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  # @ relevanssi
209
- #: lib/interface.php:832 lib/interface.php:877
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  msgid "Basic options"
211
  msgstr "Options basiques"
212
 
213
- #: lib/interface.php:833 lib/interface.php:943
214
  msgid "Weights"
215
  msgstr "Poids"
216
 
217
  # @ relevanssi
218
- #: lib/interface.php:834 lib/interface.php:998
219
  msgid "Logs"
220
  msgstr "Logs"
221
 
222
  # @ relevanssi
223
- #: lib/interface.php:835 lib/interface.php:1021
224
  msgid "Exclusions and restrictions"
225
  msgstr "Exclusions et restrictions"
226
 
227
  # @ relevanssi
228
- #: lib/interface.php:836
229
  msgid "Custom excerpts"
230
  msgstr "Extraits personnalisés"
231
 
232
  # @ relevanssi
233
- #: lib/interface.php:837
234
  msgid "Highlighting search results"
235
  msgstr "Mise en évidence des résultats de recherche"
236
 
237
  # @ relevanssi
238
- #: lib/interface.php:838 lib/interface.php:1167
239
  msgid "Indexing options"
240
  msgstr "Options d'indexation"
241
 
242
  # @ relevanssi
243
- #: lib/interface.php:839 lib/interface.php:1285
244
  msgid "Caching"
245
  msgstr "Mise en cache"
246
 
247
  # @ relevanssi
248
- #: lib/interface.php:840 lib/interface.php:1308
249
  msgid "Synonyms"
250
  msgstr "Synonymes"
251
 
252
  # @ relevanssi
253
- #: lib/interface.php:841 lib/interface.php:1316
254
  msgid "Stopwords"
255
  msgstr "Stopwords"
256
 
257
- #: lib/interface.php:844
258
  msgid "Import/export options"
259
  msgstr "Import/export des options"
260
 
261
- #: lib/interface.php:847
262
  msgid "Buy Relevanssi Premium"
263
  msgstr "Achetez Relevanssi Premium"
264
 
265
  # @ relevanssi
266
- #: lib/interface.php:852
267
  msgid "Quick tools"
268
  msgstr "Outils rapides"
269
 
270
  # @ relevanssi
271
- #: lib/interface.php:854
272
  msgid "Save options"
273
  msgstr "Sauvegarder les options"
274
 
275
  # @ relevanssi
276
- #: lib/interface.php:855
277
  msgid "Build the index"
278
  msgstr "Construire l'index"
279
 
280
  # @ relevanssi
281
- #: lib/interface.php:856 lib/interface.php:1283
282
  msgid "Continue indexing"
283
  msgstr "Continuer l'indexation"
284
 
285
  # @ relevanssi
286
- #: lib/interface.php:856
287
  msgid "add"
288
  msgstr "ajouter"
289
 
290
  # @ relevanssi
291
- #: lib/interface.php:856
292
  msgid "documents."
293
  msgstr "documents."
294
 
295
- #: lib/interface.php:860
296
  msgid ""
297
  "WARNING: You've chosen no post types to index. Nothing will be indexed. <a "
298
  "href='#indexing'>Choose some post types to index</a>."
@@ -301,7 +333,7 @@ msgstr ""
301
  "indexé.<a href='#indexing'>Choisissez les types de billet à indexer</a>."
302
 
303
  # @ relevanssi
304
- #: lib/interface.php:864
305
  msgid ""
306
  "Use 'Build the index' to build the index with current <a "
307
  "href='#indexing'>indexing options</a>. If you can't finish indexing with one "
@@ -318,7 +350,7 @@ msgstr ""
318
  "passe. Regardez 'État de l'indexation' ci-dessous pour déterminer le nombre "
319
  "de documents actuellement pris en compte dans l'indexation."
320
 
321
- #: lib/interface.php:866
322
  msgid ""
323
  "If Relevanssi doesn't index anything and you have upgraded from a 2.x "
324
  "version, it's likely the changes in\n"
@@ -333,54 +365,54 @@ msgstr ""
333
  "\tplugin et le réactiver ensuite."
334
 
335
  # @ relevanssi
336
- #: lib/interface.php:870
337
  msgid "State of the Index"
338
  msgstr "État de l'index"
339
 
340
  # @ relevanssi
341
- #: lib/interface.php:872
342
  msgid "Documents in the index"
343
  msgstr "Documents dans l'index"
344
 
345
  # @ relevanssi
346
- #: lib/interface.php:873
347
  msgid "Terms in the index"
348
  msgstr "Termes dans l'index"
349
 
350
  # @ relevanssi
351
- #: lib/interface.php:874
352
  msgid "Highest post ID indexed"
353
  msgstr "ID de billet le plus élevé indexé"
354
 
355
  # @ relevanssi
356
- #: lib/interface.php:883
357
  msgid "Use search for admin:"
358
  msgstr "Utiliser la recherche pour l'administration:"
359
 
360
  # @ relevanssi
361
- #: lib/interface.php:885
362
  msgid "If checked, Relevanssi will be used for searches in the admin interface"
363
  msgstr ""
364
  "Si coché, Relevanssi sera utilisé pour les recherches dans l'interface "
365
  "d'administration"
366
 
367
  # @ relevanssi
368
- #: lib/interface.php:889
369
  msgid "Default operator for the search?"
370
  msgstr "Opérateur logique par défaut pour la recherche ?"
371
 
372
  # @ relevanssi
373
- #: lib/interface.php:891
374
  msgid "AND - require all terms"
375
  msgstr "ET - nécessite tous les termes"
376
 
377
  # @ relevanssi
378
- #: lib/interface.php:892
379
  msgid "OR - any term present is enough"
380
  msgstr "OU - n'importe lequel des termes présents est suffisant"
381
 
382
  # @ relevanssi
383
- #: lib/interface.php:894
384
  msgid ""
385
  "If you choose AND and the search finds no matches, it will automatically do "
386
  "an OR search."
@@ -389,12 +421,12 @@ msgstr ""
389
  "lancée automatiquement."
390
 
391
  # @ relevanssi
392
- #: lib/interface.php:898
393
  msgid "Disable OR fallback:"
394
  msgstr "Désactiver le passage à OU:"
395
 
396
  # @ relevanssi
397
- #: lib/interface.php:900
398
  msgid ""
399
  "If you don't want Relevanssi to fall back to OR search when AND search gets "
400
  "no hits, check this option. For most cases, leave this one unchecked."
@@ -404,21 +436,21 @@ msgstr ""
404
  "plupart des cas, laissez la décochée."
405
 
406
  # @ relevanssi
407
- #: lib/interface.php:904
408
  msgid "Default order for results:"
409
  msgstr "Ordre par défaut pour les résultats:"
410
 
411
  # @ relevanssi
412
- #: lib/interface.php:906
413
  msgid "Relevance (highly recommended)"
414
  msgstr "Pertinence (hautement recommandé)"
415
 
416
  # @ relevanssi
417
- #: lib/interface.php:907
418
  msgid "Post date"
419
  msgstr "Date de billet"
420
 
421
- #: lib/interface.php:909
422
  msgid ""
423
  "If you want date-based results, see the recent post bonus in the Weights "
424
  "section."
@@ -427,27 +459,27 @@ msgstr ""
427
  "bonus pour billet dans la section Poids."
428
 
429
  # @ relevanssi
430
- #: lib/interface.php:913
431
  msgid "When to use fuzzy matching?"
432
  msgstr "Quand utiliser la correspondance approximative ?"
433
 
434
  # @ relevanssi
435
- #: lib/interface.php:915
436
  msgid "When straight search gets no hits"
437
  msgstr "Quand la recherche directe ne donne pas de résultat"
438
 
439
  # @ relevanssi
440
- #: lib/interface.php:916
441
  msgid "Always"
442
  msgstr "Toujours"
443
 
444
  # @ relevanssi
445
- #: lib/interface.php:917
446
  msgid "Don't use fuzzy search"
447
  msgstr "Ne pas utiliser l'approximation"
448
 
449
  # @ relevanssi
450
- #: lib/interface.php:919
451
  msgid ""
452
  "Straight search matches just the term. Fuzzy search matches everything that "
453
  "begins or ends with the search term."
@@ -456,11 +488,11 @@ msgstr ""
456
  "prend en compte tout ce qui commence ou finit par le terme recherché."
457
 
458
  # @ relevanssi
459
- #: lib/interface.php:927
460
  msgid "Limit searches:"
461
  msgstr "Limiter les recherches:"
462
 
463
- #: lib/interface.php:929
464
  msgid ""
465
  "If this option is checked, Relevanssi will limit search results to at most "
466
  "500 results per term. This will improve performance, but may cause some "
@@ -477,11 +509,11 @@ msgstr ""
477
  "par date.</strong> Le tri peut être amené à mettre de côté des billets "
478
  "récents pour favoriser des billets plus pertinents."
479
 
480
- #: lib/interface.php:933
481
  msgid "Limit:"
482
  msgstr "Limite:"
483
 
484
- #: lib/interface.php:935
485
  msgid ""
486
  "For better performance, adjust the limit to a smaller number. Adjusting the "
487
  "limit to 100 - or even lower - should be safe for good results, and might "
@@ -492,7 +524,7 @@ msgstr ""
492
  "de bons résultats et est susceptible de booster la vitesse de recherche."
493
 
494
  # @ relevanssi
495
- #: lib/interface.php:945
496
  msgid ""
497
  "These values affect the weights of the documents. These are all multipliers, "
498
  "so 1 means no change in weight, less than 1 means less weight, and more than "
@@ -509,41 +541,41 @@ msgstr ""
509
  "les mêmes mots partout ailleurs. Si le poids du titre vaut 0, les mots dans "
510
  "le titre n'affecteront pas les résultats de recherche."
511
 
512
- #: lib/interface.php:950
513
  msgid "Element"
514
  msgstr "Élément"
515
 
516
- #: lib/interface.php:951
517
  msgid "Weight"
518
  msgstr "Poids"
519
 
520
  # @ relevanssi
521
- #: lib/interface.php:952
522
  msgid "Default weight"
523
  msgstr "Poids par défaut"
524
 
525
  # @ relevanssi
526
- #: lib/interface.php:957
527
  msgid "Post titles"
528
  msgstr "Titres de billet"
529
 
530
  # @ relevanssi
531
- #: lib/interface.php:969
532
  msgid "Comment text"
533
  msgstr "Text de commentaire"
534
 
535
  # @ relevanssi
536
- #: lib/interface.php:990
537
  msgid "WPML compatibility"
538
  msgstr "Compatibilité WPML"
539
 
540
  # @ relevanssi
541
- #: lib/interface.php:992
542
  msgid "Limit results to current language:"
543
  msgstr "Limiter les résultats au langage suivant:"
544
 
545
  # @ relevanssi
546
- #: lib/interface.php:994
547
  msgid ""
548
  "If this option is checked, Relevanssi will only return results in the "
549
  "current active language. Otherwise results will include posts in every "
@@ -554,12 +586,12 @@ msgstr ""
554
  "billets dans tous les langages."
555
 
556
  # @ relevanssi
557
- #: lib/interface.php:1000
558
  msgid "Keep a log of user queries:"
559
  msgstr "Conserver une liste des recherches des visiteurs:"
560
 
561
  # @ relevanssi
562
- #: lib/interface.php:1002
563
  msgid ""
564
  "If checked, Relevanssi will log user queries. The log appears in 'User "
565
  "searches' on the Dashboard admin menu."
@@ -568,13 +600,24 @@ msgstr ""
568
  "Les stats apparaissent dans 'Recherches d'utilisateur' dans le menu du "
569
  "tableau de bord de l'administration."
570
 
 
 
 
 
 
 
 
 
 
 
 
571
  # @ relevanssi
572
- #: lib/interface.php:1006
573
  msgid "Don't log queries from these users:"
574
  msgstr "Ne conservez pas les statistiques de recherche de ces utilisateurs:"
575
 
576
  # @ relevanssi
577
- #: lib/interface.php:1008
578
  msgid ""
579
  "Comma-separated list of numeric user IDs or user login names that will not "
580
  "be logged."
@@ -583,7 +626,7 @@ msgstr ""
583
  "seront pas pris en compte."
584
 
585
  # @ relevanssi
586
- #: lib/interface.php:1012
587
  msgid ""
588
  "If you enable logs, you can see what your users are searching for. You can "
589
  "prevent your own searches from getting in the logs with the omit feature."
@@ -593,7 +636,7 @@ msgstr ""
593
  "réglage d'exemption."
594
 
595
  # @ relevanssi
596
- #: lib/interface.php:1015
597
  msgid ""
598
  "If you enable logs, you can see what your users are searching for. Logs are "
599
  "also needed to use the 'Did you mean?' feature. You can prevent your own "
@@ -605,12 +648,12 @@ msgstr ""
605
  "avec la fonction d'exception."
606
 
607
  # @ relevanssi
608
- #: lib/interface.php:1023
609
  msgid "Restrict search to these categories and tags:"
610
  msgstr "Restreindre la recherche à ces catégories et tags:"
611
 
612
  # @ relevanssi
613
- #: lib/interface.php:1025
614
  msgid ""
615
  "Enter a comma-separated list of category and tag IDs to restrict search to "
616
  "those categories or tags. You can also use <code>&lt;input type='hidden' "
@@ -624,12 +667,12 @@ msgstr ""
624
  "sur ce réglage."
625
 
626
  # @ relevanssi
627
- #: lib/interface.php:1029
628
  msgid "Exclude these categories and tags from search:"
629
  msgstr "Exclure ces catégories et tags de la recherche:"
630
 
631
  # @ relevanssi
632
- #: lib/interface.php:1031
633
  msgid ""
634
  "Enter a comma-separated list of category and tag IDs that are excluded from "
635
  "search results. You can exclude categories with the 'cat' input field by "
@@ -640,12 +683,12 @@ msgstr ""
640
  "'cat' en usant de valeurs négatives."
641
 
642
  # @ relevanssi
643
- #: lib/interface.php:1035
644
  msgid "Exclude these posts/pages from search:"
645
  msgstr "Exclure ces billets/pages de la recherche:"
646
 
647
  # @ relevanssi
648
- #: lib/interface.php:1039
649
  msgid ""
650
  "Enter a comma-separated list of post/page IDs that are excluded from search "
651
  "results. This only works here, you can't use the input field option "
@@ -659,7 +702,7 @@ msgstr ""
659
  "d'éditions des billets/pages pour retirer des billetx de l'index."
660
 
661
  # @ relevanssi
662
- #: lib/interface.php:1042
663
  msgid ""
664
  "Enter a comma-separated list of post/page IDs that are excluded from search "
665
  "results. This only works here, you can't use the input field option "
@@ -671,12 +714,12 @@ msgstr ""
671
  "dans ce cas). "
672
 
673
  # @ relevanssi
674
- #: lib/interface.php:1048
675
  msgid "Respect exclude_from_search for custom post types:"
676
  msgstr "Respecter exclude_from_search pour les types de billets personnalisés:"
677
 
678
  # @ relevanssi
679
- #: lib/interface.php:1050
680
  msgid ""
681
  "If checked, Relevanssi won't display posts of custom post types that have "
682
  "'exclude_from_search' set to true. If not checked, Relevanssi will display "
@@ -687,17 +730,17 @@ msgstr ""
687
  "coché, Relevanssi affichera tout ce qui est indexé."
688
 
689
  # @ relevanssi
690
- #: lib/interface.php:1052
691
  msgid "Custom excerpts/snippets"
692
  msgstr "Personnaliser extraits/snippets"
693
 
694
  # @ relevanssi
695
- #: lib/interface.php:1054
696
  msgid "Create custom search result snippets:"
697
  msgstr "Créer des snippets personalisés de résultats de recherche:"
698
 
699
  # @ relevanssi
700
- #: lib/interface.php:1056
701
  msgid ""
702
  "If checked, Relevanssi will create excerpts that contain the search term "
703
  "hits. To make them work, make sure your search result template uses "
@@ -708,31 +751,39 @@ msgstr ""
708
  "de thème de résultat de recherche utilise the_excerpt() pour afficher les "
709
  "extraits de billet."
710
 
 
 
 
 
 
 
 
 
711
  # @ relevanssi
712
- #: lib/interface.php:1060
713
  msgid "Length of the snippet:"
714
  msgstr "Longueur du snippet:"
715
 
716
  # @ relevanssi
717
- #: lib/interface.php:1063
718
  msgid "characters"
719
  msgstr "lettres"
720
 
721
  # @ relevanssi
722
- #: lib/interface.php:1064
723
  msgid "words"
724
  msgstr "mots"
725
 
726
  # @ relevanssi
727
- #: lib/interface.php:1066
728
  msgid "This must be an integer."
729
  msgstr "Ceci doit être un nombre entier."
730
 
731
- #: lib/interface.php:1070
732
  msgid "Allowable tags in excerpts:"
733
  msgstr "Mots-clefs autorisés dans les extraits:"
734
 
735
- #: lib/interface.php:1073
736
  msgid ""
737
  "List all tags you want to allow in excerpts, without any whitespace. For "
738
  "example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
@@ -741,12 +792,12 @@ msgstr ""
741
  "aucun espace. Par exemple: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
742
 
743
  # @ relevanssi
744
- #: lib/interface.php:1077
745
  msgid "Show breakdown of search hits in excerpts:"
746
  msgstr "Montrer la répartition des résultats de recherche dans les extraits:"
747
 
748
  # @ relevanssi
749
- #: lib/interface.php:1079
750
  msgid ""
751
  "Check this to show more information on where the search hits were made. "
752
  "Requires custom snippets to work."
@@ -756,12 +807,12 @@ msgstr ""
756
  "pour fonctionner."
757
 
758
  # @ relevanssi
759
- #: lib/interface.php:1083
760
  msgid "The breakdown format:"
761
  msgstr "Mise en forme des répartitions:"
762
 
763
  # @ relevanssi
764
- #: lib/interface.php:1085
765
  msgid ""
766
  "Use %body%, %title%, %tags% and %comments% to display the number of hits (in "
767
  "different parts of the post), %total% for total hits, %score% to display the "
@@ -775,68 +826,68 @@ msgstr ""
775
  "chacun des termes recherché. Interdit d'utiliser des guillemets (\")!"
776
 
777
  # @ relevanssi
778
- #: lib/interface.php:1087
779
  msgid "Search hit highlighting"
780
  msgstr "Surbrillance des résultats de recherche"
781
 
782
  # @ relevanssi
783
- #: lib/interface.php:1089
784
  msgid "First, choose the type of highlighting used:"
785
  msgstr "En premier, veuillez choisir le type de surbrillance utilisée:"
786
 
787
  # @ relevanssi
788
- #: lib/interface.php:1092
789
  msgid "Highlight query terms in search results:"
790
  msgstr ""
791
  "Mettre en surbrillance les termes de recherche dans les résultats de "
792
  "recherche:"
793
 
794
  # @ relevanssi
795
- #: lib/interface.php:1094
796
  msgid "No highlighting"
797
  msgstr "Pas de mise en surbrillance"
798
 
799
  # @ relevanssi
800
- #: lib/interface.php:1098
801
  msgid "Text color"
802
  msgstr "Couleur du texte"
803
 
804
  # @ relevanssi
805
- #: lib/interface.php:1099
806
  msgid "Background color"
807
  msgstr "Couleur du fond"
808
 
809
  # @ relevanssi
810
- #: lib/interface.php:1100
811
  msgid "CSS Style"
812
  msgstr "Style CSS"
813
 
814
  # @ relevanssi
815
- #: lib/interface.php:1101
816
  msgid "CSS Class"
817
  msgstr "Classe CSS"
818
 
819
  # @ relevanssi
820
- #: lib/interface.php:1103
821
  msgid "Highlighting isn't available unless you use custom snippets"
822
  msgstr ""
823
  "La mise en surbrillance n'est pas disponible tant que vous n'avez pas activé "
824
  "l'utilisation de snippets personnalisés."
825
 
826
  # @ relevanssi
827
- #: lib/interface.php:1107
828
  msgid "Highlight query terms in result titles too:"
829
  msgstr "Mettre en surbrillance les mots recherchés dans le titre également:"
830
 
831
  # @ relevanssi
832
- #: lib/interface.php:1113
833
  msgid "Highlight query terms in documents from local searches:"
834
  msgstr ""
835
  "Mettre en évidence les termes de la requête dans les documents pour les "
836
  "recherches locales:"
837
 
838
  # @ relevanssi
839
- #: lib/interface.php:1115
840
  msgid ""
841
  "Highlights hits when user opens the post from search results. This is based "
842
  "on HTTP referrer, so if that's blocked, there'll be no highlights."
@@ -846,12 +897,12 @@ msgstr ""
846
  "cas de blocage, il y aura pas de surlignage."
847
 
848
  # @ relevanssi
849
- #: lib/interface.php:1121
850
  msgid "Highlight query terms in comments:"
851
  msgstr "Surligner les termes recherchés dans les commentaires:"
852
 
853
  # @ relevanssi
854
- #: lib/interface.php:1123
855
  msgid ""
856
  "Highlights hits in comments when user opens the post from search results."
857
  msgstr ""
@@ -859,12 +910,12 @@ msgstr ""
859
  "ouvre le billet à partir des résultats de recherche."
860
 
861
  # @ relevanssi
862
- #: lib/interface.php:1127
863
  msgid "Uncheck this if you use non-ASCII characters:"
864
  msgstr "Décochez ceci si vous utilisez des caractères non-ASCII:"
865
 
866
  # @ relevanssi
867
- #: lib/interface.php:1129
868
  msgid ""
869
  "If you use non-ASCII characters (like Cyrillic alphabet) and the highlights "
870
  "don't work, uncheck this option to make highlights work."
@@ -874,32 +925,32 @@ msgstr ""
874
  "fonctionner le surlignage."
875
 
876
  # @ relevanssi
877
- #: lib/interface.php:1134
878
  msgid "Then adjust the settings for your chosen type:"
879
  msgstr "Ensuite ajustez les réglages du type choisi:"
880
 
881
  # @ relevanssi
882
- #: lib/interface.php:1138
883
  msgid "Text color for highlights:"
884
  msgstr "Couleur du texte pour la surbrillance:"
885
 
886
  # @ relevanssi
887
- #: lib/interface.php:1140 lib/interface.php:1146
888
  msgid "Use HTML color codes (#rgb or #rrggbb)"
889
  msgstr "Utiliser les codes de couleurs HTML (#rgb ou #rrggbb)"
890
 
891
  # @ relevanssi
892
- #: lib/interface.php:1144
893
  msgid "Background color for highlights:"
894
  msgstr "Couleur du fond pour la surbrillance:"
895
 
896
  # @ relevanssi
897
- #: lib/interface.php:1150
898
  msgid "CSS style for highlights:"
899
  msgstr "Style CSS pour la surbrillance:"
900
 
901
  # @ relevanssi
902
- #: lib/interface.php:1152
903
  msgid ""
904
  "You can use any CSS styling here, style will be inserted with a &lt;span&gt;"
905
  msgstr ""
@@ -907,12 +958,12 @@ msgstr ""
907
  "&lt;span&gt;"
908
 
909
  # @ relevanssi
910
- #: lib/interface.php:1156
911
  msgid "CSS class for highlights:"
912
  msgstr "Classe CSS pour la surbrillance:"
913
 
914
  # @ relevanssi
915
- #: lib/interface.php:1158
916
  msgid ""
917
  "Name a class here, search results will be wrapped in a &lt;span&gt; with the "
918
  "class"
@@ -921,58 +972,58 @@ msgstr ""
921
  "avec cette classe"
922
 
923
  # @ relevanssi
924
- #: lib/interface.php:1165 lib/interface.php:1314
925
  msgid "Save the options"
926
  msgstr "Sauvegarder les options"
927
 
928
  # @ relevanssi
929
- #: lib/interface.php:1169
930
  msgid "Choose post types to index:"
931
  msgstr "Veuillez choisir les types de billets personnalisés à indexer:"
932
 
933
- #: lib/interface.php:1174
934
  msgid "Type"
935
  msgstr "Type"
936
 
937
- #: lib/interface.php:1175
938
  msgid "Index"
939
  msgstr "Index"
940
 
941
- #: lib/interface.php:1176
942
  msgid "Public?"
943
  msgstr "Publique ?"
944
 
945
- #: lib/interface.php:1193
946
  #, php-format
947
  msgid "%s"
948
  msgstr "%s"
949
 
950
- #: lib/interface.php:1194
951
  msgid "yes"
952
  msgstr "oui"
953
 
954
  # @ relevanssi
955
- #: lib/interface.php:1194
956
  msgid "no"
957
  msgstr "non"
958
 
959
  # @ relevanssi
960
- #: lib/interface.php:1215
961
  msgid "Minimum word length to index"
962
  msgstr "Longueur minimum des mots à indexer"
963
 
964
  # @ relevanssi
965
- #: lib/interface.php:1217
966
  msgid "Words shorter than this number will not be indexed."
967
  msgstr "Les mots plus courts que ce nombre ne seront pas indexés."
968
 
969
  # @ relevanssi
970
- #: lib/interface.php:1223
971
  msgid "Expand shortcodes in post content:"
972
  msgstr "Traduire les shortcodes dans le contenu des billets:"
973
 
974
  # @ relevanssi
975
- #: lib/interface.php:1225
976
  msgid ""
977
  "If checked, Relevanssi will expand shortcodes in post content before "
978
  "indexing. Otherwise shortcodes will be stripped. If you use shortcodes to "
@@ -987,12 +1038,12 @@ msgstr ""
987
  "shortcode au moment de l'indexation."
988
 
989
  # @ relevanssi
990
- #: lib/interface.php:1229
991
  msgid "Index and search your posts' tags:"
992
  msgstr "Indexer et rechercher les tags de vos billets:"
993
 
994
  # @ relevanssi
995
- #: lib/interface.php:1231
996
  msgid ""
997
  "If checked, Relevanssi will also index and search the tags of your posts. "
998
  "Remember to rebuild the index if you change this option!"
@@ -1002,12 +1053,12 @@ msgstr ""
1002
  "option !"
1003
 
1004
  # @ relevanssi
1005
- #: lib/interface.php:1235
1006
  msgid "Index and search your posts' categories:"
1007
  msgstr "Indexer et rechercher vos catégories de billets:"
1008
 
1009
  # @ relevanssi
1010
- #: lib/interface.php:1237
1011
  msgid ""
1012
  "If checked, Relevanssi will also index and search the categories of your "
1013
  "posts. Category titles will pass through 'single_cat_title' filter. Remember "
@@ -1018,12 +1069,12 @@ msgstr ""
1018
  "N'oubliez pas de reconstruire l'index si vous changez cette option !"
1019
 
1020
  # @ relevanssi
1021
- #: lib/interface.php:1241
1022
  msgid "Index and search your posts' authors:"
1023
  msgstr "Indexer et rechercher les auteurs des billets:"
1024
 
1025
  # @ relevanssi
1026
- #: lib/interface.php:1243
1027
  msgid ""
1028
  "If checked, Relevanssi will also index and search the authors of your posts. "
1029
  "Author display name will be indexed. Remember to rebuild the index if you "
@@ -1034,12 +1085,12 @@ msgstr ""
1034
  "reconstruire l'index si vous modifiez cette option !"
1035
 
1036
  # @ relevanssi
1037
- #: lib/interface.php:1247
1038
  msgid "Index and search post excerpts:"
1039
  msgstr "Indexer et rechercher dans les extraits de billets:"
1040
 
1041
  # @ relevanssi
1042
- #: lib/interface.php:1249
1043
  msgid ""
1044
  "If checked, Relevanssi will also index and search the excerpts of your posts."
1045
  "Remember to rebuild the index if you change this option!"
@@ -1048,27 +1099,27 @@ msgstr ""
1048
  "N'oubliez pas de reconstruire l'index si vous modifiez cette option !"
1049
 
1050
  # @ relevanssi
1051
- #: lib/interface.php:1253
1052
  msgid "Index and search these comments:"
1053
  msgstr "Indexer et rechercher ces commentaires:"
1054
 
1055
  # @ relevanssi
1056
- #: lib/interface.php:1255
1057
  msgid "none"
1058
  msgstr "aucun"
1059
 
1060
  # @ relevanssi
1061
- #: lib/interface.php:1256
1062
  msgid "normal"
1063
  msgstr "normal"
1064
 
1065
  # @ relevanssi
1066
- #: lib/interface.php:1257
1067
  msgid "all"
1068
  msgstr "tout"
1069
 
1070
  # @ relevanssi
1071
- #: lib/interface.php:1259
1072
  msgid ""
1073
  "Relevanssi will index and search ALL (all comments including track- &amp; "
1074
  "pingbacks and custom comment types), NONE (no comments) or NORMAL (manually "
@@ -1081,11 +1132,11 @@ msgstr ""
1081
  "<br />N'oubliez pas de reconstruire l'index si vous modifiez cette option !"
1082
 
1083
  # @ relevanssi
1084
- #: lib/interface.php:1263
1085
  msgid "Custom fields to index:"
1086
  msgstr "Champs personnalisés à indexer:"
1087
 
1088
- #: lib/interface.php:1265
1089
  msgid ""
1090
  "A comma-separated list of custom fields to include in the index. Set to "
1091
  "'visible' to index all visible custom fields and to 'all' to index all "
@@ -1097,12 +1148,12 @@ msgstr ""
1097
  "commençant par le caractère '_' ."
1098
 
1099
  # @ relevanssi
1100
- #: lib/interface.php:1269
1101
  msgid "Custom taxonomies to index:"
1102
  msgstr "Taxonomie personnalisée à indexer:"
1103
 
1104
  # @ relevanssi
1105
- #: lib/interface.php:1271
1106
  msgid ""
1107
  "A comma-separated list of custom taxonomy names to include in the index."
1108
  msgstr ""
@@ -1110,12 +1161,12 @@ msgstr ""
1110
  "séparés par une virgule."
1111
 
1112
  # @ relevanssi
1113
- #: lib/interface.php:1281
1114
  msgid "Save indexing options and build the index"
1115
  msgstr "Sauvegarder les options d'indexation et construire l'index"
1116
 
1117
  # @ relevanssi
1118
- #: lib/interface.php:1287
1119
  msgid ""
1120
  "Warning: In many cases caching is not useful, and in some cases can be even "
1121
  "harmful. Do not\n"
@@ -1127,38 +1178,38 @@ msgstr ""
1127
  "\\\tactiver le cache à moins que vous n'ayez une bonne raison."
1128
 
1129
  # @ relevanssi
1130
- #: lib/interface.php:1290
1131
  msgid "Enable result and excerpt caching:"
1132
  msgstr "Autoriser la mise en cache des résultats et d'extraits:"
1133
 
1134
  # @ relevanssi
1135
- #: lib/interface.php:1292
1136
  msgid "If checked, Relevanssi will cache search results and post excerpts."
1137
  msgstr ""
1138
  "Si coché, Relevanssi mettra en cache les résultats et extraits de billets."
1139
 
1140
  # @ relevanssi
1141
- #: lib/interface.php:1296
1142
  msgid "Cache expire (in seconds):"
1143
  msgstr "Expiration du coche (en secondes):"
1144
 
1145
  # @ relevanssi
1146
- #: lib/interface.php:1298
1147
  msgid "86400 = day"
1148
  msgstr "86400 = jour"
1149
 
1150
  # @ relevanssi
1151
- #: lib/interface.php:1302
1152
  msgid "Entries in the cache"
1153
  msgstr "Entrées dans le cache"
1154
 
1155
  # @ relevanssi
1156
- #: lib/interface.php:1306
1157
  msgid "Clear all caches"
1158
  msgstr "Nettoyer tous les caches"
1159
 
1160
  # @ relevanssi
1161
- #: lib/interface.php:1312
1162
  msgid ""
1163
  "Add synonyms here in 'key = value' format. When searching with the OR "
1164
  "operator, any search of 'key' will be expanded to include 'value' as well. "
@@ -1172,7 +1223,7 @@ msgstr ""
1172
  "répéter la même clef à l'envers."
1173
 
1174
  # @ relevanssi
1175
- #: lib/interface.php:1335
1176
  msgid ""
1177
  "<p>Enter a word here to add it to the list of stopwords. The word will "
1178
  "automatically be removed from the index, so re-indexing is not necessary. "
@@ -1184,17 +1235,17 @@ msgstr ""
1184
  "une virgule.</p>"
1185
 
1186
  # @ relevanssi
1187
- #: lib/interface.php:1337
1188
  msgid "Stopword(s) to add: "
1189
  msgstr "Stopword(s) à ajouter: "
1190
 
1191
  # @ relevanssi
1192
- #: lib/interface.php:1338
1193
  msgid "Add"
1194
  msgstr "Ajouter"
1195
 
1196
  # @ relevanssi
1197
- #: lib/interface.php:1341
1198
  msgid ""
1199
  "<p>Here's a list of stopwords in the database. Click a word to remove it "
1200
  "from stopwords. Removing stopwords won't automatically return them to index, "
@@ -1207,12 +1258,12 @@ msgstr ""
1207
  "les billet après retrait de stopwords pour les réinjecter dans l'index."
1208
 
1209
  # @ relevanssi
1210
- #: lib/interface.php:1367
1211
  msgid "Remove all stopwords"
1212
  msgstr "Retirer tous les stopwords"
1213
 
1214
  # @ relevanssi
1215
- #: lib/interface.php:1373
1216
  msgid ""
1217
  "Here's a list of stopwords you can use to export the stopwords to another "
1218
  "blog."
2
  msgstr ""
3
  "Project-Id-Version: Relevanssi v1.4\n"
4
  "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-12-18 10:05+0100\n"
6
+ "PO-Revision-Date: 2012-12-18 10:07+0100\n"
7
  "Last-Translator: Li-An <lian00@gmail.com>\n"
8
  "Language-Team: \n"
9
  "Language: fr_FR\n"
15
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
16
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
17
  "X-Textdomain-Support: yes\n"
18
+ "X-Generator: Poedit 1.5.4\n"
19
  "X-Poedit-SearchPath-0: .\n"
20
 
21
  # @ relevanssi
22
+ #: relevanssi.php:267
23
  msgid "Tag weight:"
24
  msgstr "Poids des mots-clef:"
25
 
26
  # @ relevanssi
27
+ #: relevanssi.php:282
28
  msgid "Category weight:"
29
  msgstr "Poids des catégories:"
30
 
76
  msgstr "Recherches Relevanssi par les utilisateurs"
77
 
78
  # @ relevanssi
79
+ #: lib/interface.php:333
80
  #, php-format
81
  msgid ""
82
  "<div id='message' class='updated fade'><p>Successfully added %d/%d terms to "
86
  "stopwords!</p></div>"
87
 
88
  # @ relevanssi
89
+ #: lib/interface.php:340
90
  #, php-format
91
  msgid ""
92
  "<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></"
96
  "p></div>"
97
 
98
  # @ relevanssi
99
+ #: lib/interface.php:343
100
  #, php-format
101
  msgid ""
102
  "<div id='message' class='updated fade'><p>Couldn't add term '%s' to "
106
  "stopwords!</p></div>"
107
 
108
  # @ relevanssi
109
+ #: lib/interface.php:372
110
  msgid ""
111
  "<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-"
112
  "index.</p></div>"
115
  "de réindexer.</p></div>"
116
 
117
  # @ relevanssi
118
+ #: lib/interface.php:382
119
  #, php-format
120
  msgid ""
121
  "<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! "
125
  "Réindexer pour le récupérer dans l'index.</p></div>"
126
 
127
  # @ relevanssi
128
+ #: lib/interface.php:385
129
  #, php-format
130
  msgid ""
131
  "<div id='message' class='updated fade'><p>Couldn't remove term '%s' from "
135
  "stopwords !</p></div>"
136
 
137
  # @ relevanssi
138
+ #: lib/interface.php:396
139
  msgid "25 most common words in the index"
140
  msgstr "Les 25 mots des plus fréquents de l'index"
141
 
142
  # @ relevanssi
143
+ #: lib/interface.php:398
144
  msgid ""
145
  "These words are excellent stopword material. A word that appears in most of "
146
  "the posts in the database is quite pointless when searching. This is also an "
157
  "retiré de l'index aussi est-il inutile de reconstruire l'index."
158
 
159
  # @ relevanssi
160
+ #: lib/interface.php:424
161
  msgid "Add to stopwords"
162
  msgstr "Ajouter aux stopwords."
163
 
164
+ #: lib/interface.php:435
165
  msgid "Total Searches"
166
  msgstr "Nombre de recherches total"
167
 
168
+ #: lib/interface.php:438
169
  msgid "Totals"
170
  msgstr "Totaux"
171
 
172
+ #: lib/interface.php:443
173
  msgid "Common Queries"
174
  msgstr "Requêtes en commun"
175
 
176
  # @ relevanssi
177
+ #: lib/interface.php:445
178
  msgid ""
179
  "Here you can see the 20 most common user search queries, how many times "
180
  "those \n"
186
  "pour ces requêtes."
187
 
188
  # @ relevanssi
189
+ #: lib/interface.php:451 lib/interface.php:467 lib/interface.php:499
190
  msgid "Today and yesterday"
191
  msgstr "Aujourd'hui et hier"
192
 
193
  # @ relevanssi
194
+ #: lib/interface.php:455 lib/interface.php:471 lib/interface.php:500
195
  msgid "Last 7 days"
196
  msgstr "Sept derniers jours"
197
 
198
  # @ relevanssi
199
+ #: lib/interface.php:459 lib/interface.php:475 lib/interface.php:501
200
  msgid "Last 30 days"
201
  msgstr "Trente derniers jours"
202
 
203
  # @ relevanssi
204
+ #: lib/interface.php:464
205
  msgid "Unsuccessful Queries"
206
  msgstr "Requêtes sans résultat"
207
 
208
+ #: lib/interface.php:482
209
+ msgid "Reset Logs"
210
+ msgstr "Remettre à zéro les logs"
211
+
212
+ #: lib/interface.php:485
213
+ #, php-format
214
+ msgid "To reset the logs, type \"reset\" into the box here %s and click %s"
215
+ msgstr ""
216
+ "Pour remettre à zéro les logs, tapez \"reset\" dans le champ ici %s et "
217
+ "cliquez %s"
218
+
219
+ #: lib/interface.php:502
220
+ msgid "Forever"
221
+ msgstr "Pour toujours"
222
+
223
+ #: lib/interface.php:504
224
+ msgid "When"
225
+ msgstr "Quand"
226
+
227
  # @ relevanssi
228
+ #: lib/interface.php:504
229
+ msgid "Searches"
230
+ msgstr "Recherches"
231
+
232
+ #: lib/interface.php:534
233
+ msgid "Query"
234
+ msgstr "Requête"
235
+
236
+ #: lib/interface.php:534
237
+ msgid "Hits"
238
+ msgstr "Hits"
239
+
240
+ # @ relevanssi
241
+ #: lib/interface.php:842 lib/interface.php:887
242
  msgid "Basic options"
243
  msgstr "Options basiques"
244
 
245
+ #: lib/interface.php:843 lib/interface.php:953
246
  msgid "Weights"
247
  msgstr "Poids"
248
 
249
  # @ relevanssi
250
+ #: lib/interface.php:844 lib/interface.php:1008
251
  msgid "Logs"
252
  msgstr "Logs"
253
 
254
  # @ relevanssi
255
+ #: lib/interface.php:845 lib/interface.php:1037
256
  msgid "Exclusions and restrictions"
257
  msgstr "Exclusions et restrictions"
258
 
259
  # @ relevanssi
260
+ #: lib/interface.php:846
261
  msgid "Custom excerpts"
262
  msgstr "Extraits personnalisés"
263
 
264
  # @ relevanssi
265
+ #: lib/interface.php:847
266
  msgid "Highlighting search results"
267
  msgstr "Mise en évidence des résultats de recherche"
268
 
269
  # @ relevanssi
270
+ #: lib/interface.php:848 lib/interface.php:1183
271
  msgid "Indexing options"
272
  msgstr "Options d'indexation"
273
 
274
  # @ relevanssi
275
+ #: lib/interface.php:849 lib/interface.php:1301
276
  msgid "Caching"
277
  msgstr "Mise en cache"
278
 
279
  # @ relevanssi
280
+ #: lib/interface.php:850 lib/interface.php:1324
281
  msgid "Synonyms"
282
  msgstr "Synonymes"
283
 
284
  # @ relevanssi
285
+ #: lib/interface.php:851 lib/interface.php:1332
286
  msgid "Stopwords"
287
  msgstr "Stopwords"
288
 
289
+ #: lib/interface.php:854
290
  msgid "Import/export options"
291
  msgstr "Import/export des options"
292
 
293
+ #: lib/interface.php:857
294
  msgid "Buy Relevanssi Premium"
295
  msgstr "Achetez Relevanssi Premium"
296
 
297
  # @ relevanssi
298
+ #: lib/interface.php:862
299
  msgid "Quick tools"
300
  msgstr "Outils rapides"
301
 
302
  # @ relevanssi
303
+ #: lib/interface.php:864
304
  msgid "Save options"
305
  msgstr "Sauvegarder les options"
306
 
307
  # @ relevanssi
308
+ #: lib/interface.php:865
309
  msgid "Build the index"
310
  msgstr "Construire l'index"
311
 
312
  # @ relevanssi
313
+ #: lib/interface.php:866 lib/interface.php:1299
314
  msgid "Continue indexing"
315
  msgstr "Continuer l'indexation"
316
 
317
  # @ relevanssi
318
+ #: lib/interface.php:866
319
  msgid "add"
320
  msgstr "ajouter"
321
 
322
  # @ relevanssi
323
+ #: lib/interface.php:866
324
  msgid "documents."
325
  msgstr "documents."
326
 
327
+ #: lib/interface.php:870
328
  msgid ""
329
  "WARNING: You've chosen no post types to index. Nothing will be indexed. <a "
330
  "href='#indexing'>Choose some post types to index</a>."
333
  "indexé.<a href='#indexing'>Choisissez les types de billet à indexer</a>."
334
 
335
  # @ relevanssi
336
+ #: lib/interface.php:874
337
  msgid ""
338
  "Use 'Build the index' to build the index with current <a "
339
  "href='#indexing'>indexing options</a>. If you can't finish indexing with one "
350
  "passe. Regardez 'État de l'indexation' ci-dessous pour déterminer le nombre "
351
  "de documents actuellement pris en compte dans l'indexation."
352
 
353
+ #: lib/interface.php:876
354
  msgid ""
355
  "If Relevanssi doesn't index anything and you have upgraded from a 2.x "
356
  "version, it's likely the changes in\n"
365
  "\tplugin et le réactiver ensuite."
366
 
367
  # @ relevanssi
368
+ #: lib/interface.php:880
369
  msgid "State of the Index"
370
  msgstr "État de l'index"
371
 
372
  # @ relevanssi
373
+ #: lib/interface.php:882
374
  msgid "Documents in the index"
375
  msgstr "Documents dans l'index"
376
 
377
  # @ relevanssi
378
+ #: lib/interface.php:883
379
  msgid "Terms in the index"
380
  msgstr "Termes dans l'index"
381
 
382
  # @ relevanssi
383
+ #: lib/interface.php:884
384
  msgid "Highest post ID indexed"
385
  msgstr "ID de billet le plus élevé indexé"
386
 
387
  # @ relevanssi
388
+ #: lib/interface.php:893
389
  msgid "Use search for admin:"
390
  msgstr "Utiliser la recherche pour l'administration:"
391
 
392
  # @ relevanssi
393
+ #: lib/interface.php:895
394
  msgid "If checked, Relevanssi will be used for searches in the admin interface"
395
  msgstr ""
396
  "Si coché, Relevanssi sera utilisé pour les recherches dans l'interface "
397
  "d'administration"
398
 
399
  # @ relevanssi
400
+ #: lib/interface.php:899
401
  msgid "Default operator for the search?"
402
  msgstr "Opérateur logique par défaut pour la recherche ?"
403
 
404
  # @ relevanssi
405
+ #: lib/interface.php:901
406
  msgid "AND - require all terms"
407
  msgstr "ET - nécessite tous les termes"
408
 
409
  # @ relevanssi
410
+ #: lib/interface.php:902
411
  msgid "OR - any term present is enough"
412
  msgstr "OU - n'importe lequel des termes présents est suffisant"
413
 
414
  # @ relevanssi
415
+ #: lib/interface.php:904
416
  msgid ""
417
  "If you choose AND and the search finds no matches, it will automatically do "
418
  "an OR search."
421
  "lancée automatiquement."
422
 
423
  # @ relevanssi
424
+ #: lib/interface.php:908
425
  msgid "Disable OR fallback:"
426
  msgstr "Désactiver le passage à OU:"
427
 
428
  # @ relevanssi
429
+ #: lib/interface.php:910
430
  msgid ""
431
  "If you don't want Relevanssi to fall back to OR search when AND search gets "
432
  "no hits, check this option. For most cases, leave this one unchecked."
436
  "plupart des cas, laissez la décochée."
437
 
438
  # @ relevanssi
439
+ #: lib/interface.php:914
440
  msgid "Default order for results:"
441
  msgstr "Ordre par défaut pour les résultats:"
442
 
443
  # @ relevanssi
444
+ #: lib/interface.php:916
445
  msgid "Relevance (highly recommended)"
446
  msgstr "Pertinence (hautement recommandé)"
447
 
448
  # @ relevanssi
449
+ #: lib/interface.php:917
450
  msgid "Post date"
451
  msgstr "Date de billet"
452
 
453
+ #: lib/interface.php:919
454
  msgid ""
455
  "If you want date-based results, see the recent post bonus in the Weights "
456
  "section."
459
  "bonus pour billet dans la section Poids."
460
 
461
  # @ relevanssi
462
+ #: lib/interface.php:923
463
  msgid "When to use fuzzy matching?"
464
  msgstr "Quand utiliser la correspondance approximative ?"
465
 
466
  # @ relevanssi
467
+ #: lib/interface.php:925
468
  msgid "When straight search gets no hits"
469
  msgstr "Quand la recherche directe ne donne pas de résultat"
470
 
471
  # @ relevanssi
472
+ #: lib/interface.php:926
473
  msgid "Always"
474
  msgstr "Toujours"
475
 
476
  # @ relevanssi
477
+ #: lib/interface.php:927
478
  msgid "Don't use fuzzy search"
479
  msgstr "Ne pas utiliser l'approximation"
480
 
481
  # @ relevanssi
482
+ #: lib/interface.php:929
483
  msgid ""
484
  "Straight search matches just the term. Fuzzy search matches everything that "
485
  "begins or ends with the search term."
488
  "prend en compte tout ce qui commence ou finit par le terme recherché."
489
 
490
  # @ relevanssi
491
+ #: lib/interface.php:937
492
  msgid "Limit searches:"
493
  msgstr "Limiter les recherches:"
494
 
495
+ #: lib/interface.php:939
496
  msgid ""
497
  "If this option is checked, Relevanssi will limit search results to at most "
498
  "500 results per term. This will improve performance, but may cause some "
509
  "par date.</strong> Le tri peut être amené à mettre de côté des billets "
510
  "récents pour favoriser des billets plus pertinents."
511
 
512
+ #: lib/interface.php:943
513
  msgid "Limit:"
514
  msgstr "Limite:"
515
 
516
+ #: lib/interface.php:945
517
  msgid ""
518
  "For better performance, adjust the limit to a smaller number. Adjusting the "
519
  "limit to 100 - or even lower - should be safe for good results, and might "
524
  "de bons résultats et est susceptible de booster la vitesse de recherche."
525
 
526
  # @ relevanssi
527
+ #: lib/interface.php:955
528
  msgid ""
529
  "These values affect the weights of the documents. These are all multipliers, "
530
  "so 1 means no change in weight, less than 1 means less weight, and more than "
541
  "les mêmes mots partout ailleurs. Si le poids du titre vaut 0, les mots dans "
542
  "le titre n'affecteront pas les résultats de recherche."
543
 
544
+ #: lib/interface.php:960
545
  msgid "Element"
546
  msgstr "Élément"
547
 
548
+ #: lib/interface.php:961
549
  msgid "Weight"
550
  msgstr "Poids"
551
 
552
  # @ relevanssi
553
+ #: lib/interface.php:962
554
  msgid "Default weight"
555
  msgstr "Poids par défaut"
556
 
557
  # @ relevanssi
558
+ #: lib/interface.php:967
559
  msgid "Post titles"
560
  msgstr "Titres de billet"
561
 
562
  # @ relevanssi
563
+ #: lib/interface.php:979
564
  msgid "Comment text"
565
  msgstr "Text de commentaire"
566
 
567
  # @ relevanssi
568
+ #: lib/interface.php:1000
569
  msgid "WPML compatibility"
570
  msgstr "Compatibilité WPML"
571
 
572
  # @ relevanssi
573
+ #: lib/interface.php:1002
574
  msgid "Limit results to current language:"
575
  msgstr "Limiter les résultats au langage suivant:"
576
 
577
  # @ relevanssi
578
+ #: lib/interface.php:1004
579
  msgid ""
580
  "If this option is checked, Relevanssi will only return results in the "
581
  "current active language. Otherwise results will include posts in every "
586
  "billets dans tous les langages."
587
 
588
  # @ relevanssi
589
+ #: lib/interface.php:1010
590
  msgid "Keep a log of user queries:"
591
  msgstr "Conserver une liste des recherches des visiteurs:"
592
 
593
  # @ relevanssi
594
+ #: lib/interface.php:1012
595
  msgid ""
596
  "If checked, Relevanssi will log user queries. The log appears in 'User "
597
  "searches' on the Dashboard admin menu."
600
  "Les stats apparaissent dans 'Recherches d'utilisateur' dans le menu du "
601
  "tableau de bord de l'administration."
602
 
603
+ #: lib/interface.php:1016
604
+ msgid "Log the user's IP with the queries:"
605
+ msgstr "Enregistrer l'adresse IP de l'utilisateur avec ses requêtes:"
606
+
607
+ # @ relevanssi
608
+ #: lib/interface.php:1018
609
+ msgid "If checked, Relevanssi will log user's IP-Adress with the queries."
610
+ msgstr ""
611
+ "Si coché, Relevanssi enregistrera les adresses IP des utilisateurs avec "
612
+ "leurs requêtes."
613
+
614
  # @ relevanssi
615
+ #: lib/interface.php:1022
616
  msgid "Don't log queries from these users:"
617
  msgstr "Ne conservez pas les statistiques de recherche de ces utilisateurs:"
618
 
619
  # @ relevanssi
620
+ #: lib/interface.php:1024
621
  msgid ""
622
  "Comma-separated list of numeric user IDs or user login names that will not "
623
  "be logged."
626
  "seront pas pris en compte."
627
 
628
  # @ relevanssi
629
+ #: lib/interface.php:1028
630
  msgid ""
631
  "If you enable logs, you can see what your users are searching for. You can "
632
  "prevent your own searches from getting in the logs with the omit feature."
636
  "réglage d'exemption."
637
 
638
  # @ relevanssi
639
+ #: lib/interface.php:1031
640
  msgid ""
641
  "If you enable logs, you can see what your users are searching for. Logs are "
642
  "also needed to use the 'Did you mean?' feature. You can prevent your own "
648
  "avec la fonction d'exception."
649
 
650
  # @ relevanssi
651
+ #: lib/interface.php:1039
652
  msgid "Restrict search to these categories and tags:"
653
  msgstr "Restreindre la recherche à ces catégories et tags:"
654
 
655
  # @ relevanssi
656
+ #: lib/interface.php:1041
657
  msgid ""
658
  "Enter a comma-separated list of category and tag IDs to restrict search to "
659
  "those categories or tags. You can also use <code>&lt;input type='hidden' "
667
  "sur ce réglage."
668
 
669
  # @ relevanssi
670
+ #: lib/interface.php:1045
671
  msgid "Exclude these categories and tags from search:"
672
  msgstr "Exclure ces catégories et tags de la recherche:"
673
 
674
  # @ relevanssi
675
+ #: lib/interface.php:1047
676
  msgid ""
677
  "Enter a comma-separated list of category and tag IDs that are excluded from "
678
  "search results. You can exclude categories with the 'cat' input field by "
683
  "'cat' en usant de valeurs négatives."
684
 
685
  # @ relevanssi
686
+ #: lib/interface.php:1051
687
  msgid "Exclude these posts/pages from search:"
688
  msgstr "Exclure ces billets/pages de la recherche:"
689
 
690
  # @ relevanssi
691
+ #: lib/interface.php:1055
692
  msgid ""
693
  "Enter a comma-separated list of post/page IDs that are excluded from search "
694
  "results. This only works here, you can't use the input field option "
702
  "d'éditions des billets/pages pour retirer des billetx de l'index."
703
 
704
  # @ relevanssi
705
+ #: lib/interface.php:1058
706
  msgid ""
707
  "Enter a comma-separated list of post/page IDs that are excluded from search "
708
  "results. This only works here, you can't use the input field option "
714
  "dans ce cas). "
715
 
716
  # @ relevanssi
717
+ #: lib/interface.php:1064
718
  msgid "Respect exclude_from_search for custom post types:"
719
  msgstr "Respecter exclude_from_search pour les types de billets personnalisés:"
720
 
721
  # @ relevanssi
722
+ #: lib/interface.php:1066
723
  msgid ""
724
  "If checked, Relevanssi won't display posts of custom post types that have "
725
  "'exclude_from_search' set to true. If not checked, Relevanssi will display "
730
  "coché, Relevanssi affichera tout ce qui est indexé."
731
 
732
  # @ relevanssi
733
+ #: lib/interface.php:1068
734
  msgid "Custom excerpts/snippets"
735
  msgstr "Personnaliser extraits/snippets"
736
 
737
  # @ relevanssi
738
+ #: lib/interface.php:1070
739
  msgid "Create custom search result snippets:"
740
  msgstr "Créer des snippets personalisés de résultats de recherche:"
741
 
742
  # @ relevanssi
743
+ #: lib/interface.php:1072
744
  msgid ""
745
  "If checked, Relevanssi will create excerpts that contain the search term "
746
  "hits. To make them work, make sure your search result template uses "
751
  "de thème de résultat de recherche utilise the_excerpt() pour afficher les "
752
  "extraits de billet."
753
 
754
+ #: lib/interface.php:1074
755
+ msgid ""
756
+ "Note: Building custom excerpts can be slow. If you are not actually using "
757
+ "the excerpts, make sure you disable the option."
758
+ msgstr ""
759
+ "Remarque: construire les extraits personnalisés peut être lent. Si vous "
760
+ "n'utilisez pas les extraits, soyez certain de désactiver cette option."
761
+
762
  # @ relevanssi
763
+ #: lib/interface.php:1076
764
  msgid "Length of the snippet:"
765
  msgstr "Longueur du snippet:"
766
 
767
  # @ relevanssi
768
+ #: lib/interface.php:1079
769
  msgid "characters"
770
  msgstr "lettres"
771
 
772
  # @ relevanssi
773
+ #: lib/interface.php:1080
774
  msgid "words"
775
  msgstr "mots"
776
 
777
  # @ relevanssi
778
+ #: lib/interface.php:1082
779
  msgid "This must be an integer."
780
  msgstr "Ceci doit être un nombre entier."
781
 
782
+ #: lib/interface.php:1086
783
  msgid "Allowable tags in excerpts:"
784
  msgstr "Mots-clefs autorisés dans les extraits:"
785
 
786
+ #: lib/interface.php:1089
787
  msgid ""
788
  "List all tags you want to allow in excerpts, without any whitespace. For "
789
  "example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
792
  "aucun espace. Par exemple: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
793
 
794
  # @ relevanssi
795
+ #: lib/interface.php:1093
796
  msgid "Show breakdown of search hits in excerpts:"
797
  msgstr "Montrer la répartition des résultats de recherche dans les extraits:"
798
 
799
  # @ relevanssi
800
+ #: lib/interface.php:1095
801
  msgid ""
802
  "Check this to show more information on where the search hits were made. "
803
  "Requires custom snippets to work."
807
  "pour fonctionner."
808
 
809
  # @ relevanssi
810
+ #: lib/interface.php:1099
811
  msgid "The breakdown format:"
812
  msgstr "Mise en forme des répartitions:"
813
 
814
  # @ relevanssi
815
+ #: lib/interface.php:1101
816
  msgid ""
817
  "Use %body%, %title%, %tags% and %comments% to display the number of hits (in "
818
  "different parts of the post), %total% for total hits, %score% to display the "
826
  "chacun des termes recherché. Interdit d'utiliser des guillemets (\")!"
827
 
828
  # @ relevanssi
829
+ #: lib/interface.php:1103
830
  msgid "Search hit highlighting"
831
  msgstr "Surbrillance des résultats de recherche"
832
 
833
  # @ relevanssi
834
+ #: lib/interface.php:1105
835
  msgid "First, choose the type of highlighting used:"
836
  msgstr "En premier, veuillez choisir le type de surbrillance utilisée:"
837
 
838
  # @ relevanssi
839
+ #: lib/interface.php:1108
840
  msgid "Highlight query terms in search results:"
841
  msgstr ""
842
  "Mettre en surbrillance les termes de recherche dans les résultats de "
843
  "recherche:"
844
 
845
  # @ relevanssi
846
+ #: lib/interface.php:1110
847
  msgid "No highlighting"
848
  msgstr "Pas de mise en surbrillance"
849
 
850
  # @ relevanssi
851
+ #: lib/interface.php:1114
852
  msgid "Text color"
853
  msgstr "Couleur du texte"
854
 
855
  # @ relevanssi
856
+ #: lib/interface.php:1115
857
  msgid "Background color"
858
  msgstr "Couleur du fond"
859
 
860
  # @ relevanssi
861
+ #: lib/interface.php:1116
862
  msgid "CSS Style"
863
  msgstr "Style CSS"
864
 
865
  # @ relevanssi
866
+ #: lib/interface.php:1117
867
  msgid "CSS Class"
868
  msgstr "Classe CSS"
869
 
870
  # @ relevanssi
871
+ #: lib/interface.php:1119
872
  msgid "Highlighting isn't available unless you use custom snippets"
873
  msgstr ""
874
  "La mise en surbrillance n'est pas disponible tant que vous n'avez pas activé "
875
  "l'utilisation de snippets personnalisés."
876
 
877
  # @ relevanssi
878
+ #: lib/interface.php:1123
879
  msgid "Highlight query terms in result titles too:"
880
  msgstr "Mettre en surbrillance les mots recherchés dans le titre également:"
881
 
882
  # @ relevanssi
883
+ #: lib/interface.php:1129
884
  msgid "Highlight query terms in documents from local searches:"
885
  msgstr ""
886
  "Mettre en évidence les termes de la requête dans les documents pour les "
887
  "recherches locales:"
888
 
889
  # @ relevanssi
890
+ #: lib/interface.php:1131
891
  msgid ""
892
  "Highlights hits when user opens the post from search results. This is based "
893
  "on HTTP referrer, so if that's blocked, there'll be no highlights."
897
  "cas de blocage, il y aura pas de surlignage."
898
 
899
  # @ relevanssi
900
+ #: lib/interface.php:1137
901
  msgid "Highlight query terms in comments:"
902
  msgstr "Surligner les termes recherchés dans les commentaires:"
903
 
904
  # @ relevanssi
905
+ #: lib/interface.php:1139
906
  msgid ""
907
  "Highlights hits in comments when user opens the post from search results."
908
  msgstr ""
910
  "ouvre le billet à partir des résultats de recherche."
911
 
912
  # @ relevanssi
913
+ #: lib/interface.php:1143
914
  msgid "Uncheck this if you use non-ASCII characters:"
915
  msgstr "Décochez ceci si vous utilisez des caractères non-ASCII:"
916
 
917
  # @ relevanssi
918
+ #: lib/interface.php:1145
919
  msgid ""
920
  "If you use non-ASCII characters (like Cyrillic alphabet) and the highlights "
921
  "don't work, uncheck this option to make highlights work."
925
  "fonctionner le surlignage."
926
 
927
  # @ relevanssi
928
+ #: lib/interface.php:1150
929
  msgid "Then adjust the settings for your chosen type:"
930
  msgstr "Ensuite ajustez les réglages du type choisi:"
931
 
932
  # @ relevanssi
933
+ #: lib/interface.php:1154
934
  msgid "Text color for highlights:"
935
  msgstr "Couleur du texte pour la surbrillance:"
936
 
937
  # @ relevanssi
938
+ #: lib/interface.php:1156 lib/interface.php:1162
939
  msgid "Use HTML color codes (#rgb or #rrggbb)"
940
  msgstr "Utiliser les codes de couleurs HTML (#rgb ou #rrggbb)"
941
 
942
  # @ relevanssi
943
+ #: lib/interface.php:1160
944
  msgid "Background color for highlights:"
945
  msgstr "Couleur du fond pour la surbrillance:"
946
 
947
  # @ relevanssi
948
+ #: lib/interface.php:1166
949
  msgid "CSS style for highlights:"
950
  msgstr "Style CSS pour la surbrillance:"
951
 
952
  # @ relevanssi
953
+ #: lib/interface.php:1168
954
  msgid ""
955
  "You can use any CSS styling here, style will be inserted with a &lt;span&gt;"
956
  msgstr ""
958
  "&lt;span&gt;"
959
 
960
  # @ relevanssi
961
+ #: lib/interface.php:1172
962
  msgid "CSS class for highlights:"
963
  msgstr "Classe CSS pour la surbrillance:"
964
 
965
  # @ relevanssi
966
+ #: lib/interface.php:1174
967
  msgid ""
968
  "Name a class here, search results will be wrapped in a &lt;span&gt; with the "
969
  "class"
972
  "avec cette classe"
973
 
974
  # @ relevanssi
975
+ #: lib/interface.php:1181 lib/interface.php:1330
976
  msgid "Save the options"
977
  msgstr "Sauvegarder les options"
978
 
979
  # @ relevanssi
980
+ #: lib/interface.php:1185
981
  msgid "Choose post types to index:"
982
  msgstr "Veuillez choisir les types de billets personnalisés à indexer:"
983
 
984
+ #: lib/interface.php:1190
985
  msgid "Type"
986
  msgstr "Type"
987
 
988
+ #: lib/interface.php:1191
989
  msgid "Index"
990
  msgstr "Index"
991
 
992
+ #: lib/interface.php:1192
993
  msgid "Public?"
994
  msgstr "Publique ?"
995
 
996
+ #: lib/interface.php:1209
997
  #, php-format
998
  msgid "%s"
999
  msgstr "%s"
1000
 
1001
+ #: lib/interface.php:1210
1002
  msgid "yes"
1003
  msgstr "oui"
1004
 
1005
  # @ relevanssi
1006
+ #: lib/interface.php:1210
1007
  msgid "no"
1008
  msgstr "non"
1009
 
1010
  # @ relevanssi
1011
+ #: lib/interface.php:1231
1012
  msgid "Minimum word length to index"
1013
  msgstr "Longueur minimum des mots à indexer"
1014
 
1015
  # @ relevanssi
1016
+ #: lib/interface.php:1233
1017
  msgid "Words shorter than this number will not be indexed."
1018
  msgstr "Les mots plus courts que ce nombre ne seront pas indexés."
1019
 
1020
  # @ relevanssi
1021
+ #: lib/interface.php:1239
1022
  msgid "Expand shortcodes in post content:"
1023
  msgstr "Traduire les shortcodes dans le contenu des billets:"
1024
 
1025
  # @ relevanssi
1026
+ #: lib/interface.php:1241
1027
  msgid ""
1028
  "If checked, Relevanssi will expand shortcodes in post content before "
1029
  "indexing. Otherwise shortcodes will be stripped. If you use shortcodes to "
1038
  "shortcode au moment de l'indexation."
1039
 
1040
  # @ relevanssi
1041
+ #: lib/interface.php:1245
1042
  msgid "Index and search your posts' tags:"
1043
  msgstr "Indexer et rechercher les tags de vos billets:"
1044
 
1045
  # @ relevanssi
1046
+ #: lib/interface.php:1247
1047
  msgid ""
1048
  "If checked, Relevanssi will also index and search the tags of your posts. "
1049
  "Remember to rebuild the index if you change this option!"
1053
  "option !"
1054
 
1055
  # @ relevanssi
1056
+ #: lib/interface.php:1251
1057
  msgid "Index and search your posts' categories:"
1058
  msgstr "Indexer et rechercher vos catégories de billets:"
1059
 
1060
  # @ relevanssi
1061
+ #: lib/interface.php:1253
1062
  msgid ""
1063
  "If checked, Relevanssi will also index and search the categories of your "
1064
  "posts. Category titles will pass through 'single_cat_title' filter. Remember "
1069
  "N'oubliez pas de reconstruire l'index si vous changez cette option !"
1070
 
1071
  # @ relevanssi
1072
+ #: lib/interface.php:1257
1073
  msgid "Index and search your posts' authors:"
1074
  msgstr "Indexer et rechercher les auteurs des billets:"
1075
 
1076
  # @ relevanssi
1077
+ #: lib/interface.php:1259
1078
  msgid ""
1079
  "If checked, Relevanssi will also index and search the authors of your posts. "
1080
  "Author display name will be indexed. Remember to rebuild the index if you "
1085
  "reconstruire l'index si vous modifiez cette option !"
1086
 
1087
  # @ relevanssi
1088
+ #: lib/interface.php:1263
1089
  msgid "Index and search post excerpts:"
1090
  msgstr "Indexer et rechercher dans les extraits de billets:"
1091
 
1092
  # @ relevanssi
1093
+ #: lib/interface.php:1265
1094
  msgid ""
1095
  "If checked, Relevanssi will also index and search the excerpts of your posts."
1096
  "Remember to rebuild the index if you change this option!"
1099
  "N'oubliez pas de reconstruire l'index si vous modifiez cette option !"
1100
 
1101
  # @ relevanssi
1102
+ #: lib/interface.php:1269
1103
  msgid "Index and search these comments:"
1104
  msgstr "Indexer et rechercher ces commentaires:"
1105
 
1106
  # @ relevanssi
1107
+ #: lib/interface.php:1271
1108
  msgid "none"
1109
  msgstr "aucun"
1110
 
1111
  # @ relevanssi
1112
+ #: lib/interface.php:1272
1113
  msgid "normal"
1114
  msgstr "normal"
1115
 
1116
  # @ relevanssi
1117
+ #: lib/interface.php:1273
1118
  msgid "all"
1119
  msgstr "tout"
1120
 
1121
  # @ relevanssi
1122
+ #: lib/interface.php:1275
1123
  msgid ""
1124
  "Relevanssi will index and search ALL (all comments including track- &amp; "
1125
  "pingbacks and custom comment types), NONE (no comments) or NORMAL (manually "
1132
  "<br />N'oubliez pas de reconstruire l'index si vous modifiez cette option !"
1133
 
1134
  # @ relevanssi
1135
+ #: lib/interface.php:1279
1136
  msgid "Custom fields to index:"
1137
  msgstr "Champs personnalisés à indexer:"
1138
 
1139
+ #: lib/interface.php:1281
1140
  msgid ""
1141
  "A comma-separated list of custom fields to include in the index. Set to "
1142
  "'visible' to index all visible custom fields and to 'all' to index all "
1148
  "commençant par le caractère '_' ."
1149
 
1150
  # @ relevanssi
1151
+ #: lib/interface.php:1285
1152
  msgid "Custom taxonomies to index:"
1153
  msgstr "Taxonomie personnalisée à indexer:"
1154
 
1155
  # @ relevanssi
1156
+ #: lib/interface.php:1287
1157
  msgid ""
1158
  "A comma-separated list of custom taxonomy names to include in the index."
1159
  msgstr ""
1161
  "séparés par une virgule."
1162
 
1163
  # @ relevanssi
1164
+ #: lib/interface.php:1297
1165
  msgid "Save indexing options and build the index"
1166
  msgstr "Sauvegarder les options d'indexation et construire l'index"
1167
 
1168
  # @ relevanssi
1169
+ #: lib/interface.php:1303
1170
  msgid ""
1171
  "Warning: In many cases caching is not useful, and in some cases can be even "
1172
  "harmful. Do not\n"
1178
  "\\\tactiver le cache à moins que vous n'ayez une bonne raison."
1179
 
1180
  # @ relevanssi
1181
+ #: lib/interface.php:1306
1182
  msgid "Enable result and excerpt caching:"
1183
  msgstr "Autoriser la mise en cache des résultats et d'extraits:"
1184
 
1185
  # @ relevanssi
1186
+ #: lib/interface.php:1308
1187
  msgid "If checked, Relevanssi will cache search results and post excerpts."
1188
  msgstr ""
1189
  "Si coché, Relevanssi mettra en cache les résultats et extraits de billets."
1190
 
1191
  # @ relevanssi
1192
+ #: lib/interface.php:1312
1193
  msgid "Cache expire (in seconds):"
1194
  msgstr "Expiration du coche (en secondes):"
1195
 
1196
  # @ relevanssi
1197
+ #: lib/interface.php:1314
1198
  msgid "86400 = day"
1199
  msgstr "86400 = jour"
1200
 
1201
  # @ relevanssi
1202
+ #: lib/interface.php:1318
1203
  msgid "Entries in the cache"
1204
  msgstr "Entrées dans le cache"
1205
 
1206
  # @ relevanssi
1207
+ #: lib/interface.php:1322
1208
  msgid "Clear all caches"
1209
  msgstr "Nettoyer tous les caches"
1210
 
1211
  # @ relevanssi
1212
+ #: lib/interface.php:1328
1213
  msgid ""
1214
  "Add synonyms here in 'key = value' format. When searching with the OR "
1215
  "operator, any search of 'key' will be expanded to include 'value' as well. "
1223
  "répéter la même clef à l'envers."
1224
 
1225
  # @ relevanssi
1226
+ #: lib/interface.php:1351
1227
  msgid ""
1228
  "<p>Enter a word here to add it to the list of stopwords. The word will "
1229
  "automatically be removed from the index, so re-indexing is not necessary. "
1235
  "une virgule.</p>"
1236
 
1237
  # @ relevanssi
1238
+ #: lib/interface.php:1353
1239
  msgid "Stopword(s) to add: "
1240
  msgstr "Stopword(s) à ajouter: "
1241
 
1242
  # @ relevanssi
1243
+ #: lib/interface.php:1354
1244
  msgid "Add"
1245
  msgstr "Ajouter"
1246
 
1247
  # @ relevanssi
1248
+ #: lib/interface.php:1357
1249
  msgid ""
1250
  "<p>Here's a list of stopwords in the database. Click a word to remove it "
1251
  "from stopwords. Removing stopwords won't automatically return them to index, "
1258
  "les billet après retrait de stopwords pour les réinjecter dans l'index."
1259
 
1260
  # @ relevanssi
1261
+ #: lib/interface.php:1383
1262
  msgid "Remove all stopwords"
1263
  msgstr "Retirer tous les stopwords"
1264
 
1265
  # @ relevanssi
1266
+ #: lib/interface.php:1389
1267
  msgid ""
1268
  "Here's a list of stopwords you can use to export the stopwords to another "
1269
  "blog."
relevanssi-pl_PL.mo ADDED
Binary file
relevanssi-pl_PL.po ADDED
@@ -0,0 +1,1452 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Relevanssi\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2012-12-12 12:11+0100\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Bartosz Arendt <info@digitalfactory.pl>\n"
8
+ "Language-Team: Digital Factory <info@digitalfactory.pl>\n"
9
+ "Language: pl_PL\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: .\n"
15
+ "X-Generator: Poedit 1.5.4\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: relevanssi.php:1233
20
+ msgid "Options updated!"
21
+ msgstr "Ustawienia zostały zaktualizowane!"
22
+
23
+ #: relevanssi.php:1289
24
+ msgid "API key:"
25
+ msgstr "Klucz API:"
26
+
27
+ #: relevanssi.php:1291
28
+ msgid ""
29
+ "API key is required to use the automatic update feature. Get yours from "
30
+ "Relevanssi.com."
31
+ msgstr ""
32
+ "Klucz API jest wymagany aby umożliwić automatyczne aktualizacje. Zdobądź go "
33
+ "na stronie Relevanssi.com."
34
+
35
+ #: relevanssi.php:1299
36
+ msgid "How to index internal links:"
37
+ msgstr "Sposób indeksowania linków wewnętrznych:"
38
+
39
+ #: relevanssi.php:1301
40
+ msgid "No special processing for internal links"
41
+ msgstr "Bez specjalnego indeksowania linków wewnętrznych"
42
+
43
+ #: relevanssi.php:1302
44
+ msgid "Index internal links for target documents only"
45
+ msgstr "Indeksowanie linków wewnętrznych tylko dla dokumentów docelowych"
46
+
47
+ #: relevanssi.php:1303
48
+ msgid "Index internal links for both target and source"
49
+ msgstr ""
50
+ "Indeksowanie linków wewnętrznych zarówno dla źródeł jak i dokumentów "
51
+ "docelowych"
52
+
53
+ #: relevanssi.php:1305
54
+ msgid ""
55
+ "Internal link anchor tags can be indexed for target document (so the text "
56
+ "will match the document the link points to), both target and source or "
57
+ "source only (with no extra significance for the links). See Relevanssi "
58
+ "Knowledge Base for more details. Changing this option requires reindexing."
59
+ msgstr ""
60
+ "Linki wewnętrzne mogą być indeksowane dla dokumentów docelowych (tak aby "
61
+ "tekst pasował do dokumentu na który wskazuje), zarówno dla docelowyc jak i "
62
+ "źródeł lub tylko dla źródeł (bez dodatkowego wpływu na linki). Zobacz bazę "
63
+ "wiedzy Relevanssi aby dowiedzieć się więcej. Zmiana tego ustawienia wymaga "
64
+ "ponownego indeksowania."
65
+
66
+ #: relevanssi.php:1313
67
+ msgid "Hide Relevanssi on edit pages:"
68
+ msgstr "Ukryj Relevanssi na stronach edycji:"
69
+
70
+ #: relevanssi.php:1315
71
+ msgid ""
72
+ "If you check this option, all Relevanssi features are removed from edit "
73
+ "pages."
74
+ msgstr ""
75
+ "Jeśli zaznaczysz tę opcję, wszystkie funkcje Relevanssi zostaną usunięte z "
76
+ "ekranów edycji."
77
+
78
+ #: relevanssi.php:1324
79
+ msgid "Internal links"
80
+ msgstr "Linki wewnętrzne"
81
+
82
+ #: relevanssi.php:1347
83
+ #, php-format
84
+ msgid "Post type '%s':"
85
+ msgstr "Typ wpisu '%s':"
86
+
87
+ #: relevanssi.php:1375
88
+ #, php-format
89
+ msgid "Taxonomy '%s':"
90
+ msgstr "Taksonomia '%s':"
91
+
92
+ #: relevanssi.php:1393
93
+ msgid "Weight multiplier for new posts:"
94
+ msgstr "Mnożnik wagi dla nowych wpisów:"
95
+
96
+ #: relevanssi.php:1395
97
+ msgid "Assign bonus for posts newer than:"
98
+ msgstr "Przyznaj bonus dla wpisów nowszych niż:"
99
+
100
+ #: relevanssi.php:1396
101
+ msgid "days"
102
+ msgstr "dni"
103
+
104
+ #: relevanssi.php:1397
105
+ msgid ""
106
+ "Posts newer than the day cutoff specified here will have their weight "
107
+ "multiplied with the bonus above."
108
+ msgstr ""
109
+ "Wpisy nowsze niż określona tutaj liczba dni będą miały wagę pomnożoną przez "
110
+ "podaną liczbę."
111
+
112
+ #: relevanssi.php:1403
113
+ msgid "Don't show Relevanssi branding on the 'User Searches' screen:"
114
+ msgstr ""
115
+ "Nie wyświetlaj informacji o Relevanssi na ekranie 'Statystyk wyszukiwania':"
116
+
117
+ #: relevanssi.php:1410
118
+ msgid "Highlight query terms in documents from external searches:"
119
+ msgstr "Podświetl wyszukiwane frazy w dokumentach z zewnętrznych wyszukiwarek:"
120
+
121
+ #: relevanssi.php:1412
122
+ msgid ""
123
+ "Highlights hits when user arrives from external search. Currently supports "
124
+ "Google, Bing, Ask, Yahoo and AOL Search."
125
+ msgstr ""
126
+ "Podświetl trafienia jeśli użytkownik pochodzi z zewnętrznych wyszukiwarek. "
127
+ "Aktualnie wspierane są Google, Bing, Ask, Yahoo i AOL Search."
128
+
129
+ #: relevanssi.php:1420
130
+ msgid "Thousands separator"
131
+ msgstr "Separator liczb (tysięcy)"
132
+
133
+ #: relevanssi.php:1422
134
+ msgid ""
135
+ "If Relevanssi sees this character between numbers, it'll stick the numbers "
136
+ "together no matter how the character would otherwise be handled. Especially "
137
+ "useful if a space is used as a thousands separator."
138
+ msgstr ""
139
+ "Jeśli Relevanssi znajdzie ten znak między cyframi, zignoruje go i rozpozna "
140
+ "całą liczbę. Jest to szczególnie przydatne gdy jako separator stosowana jest "
141
+ "spacja."
142
+
143
+ #: relevanssi.php:1438
144
+ msgid "Custom MySQL columns to index:"
145
+ msgstr "Własne kolumny MySQL do zaindeksowania:"
146
+
147
+ #: relevanssi.php:1440
148
+ msgid ""
149
+ "A comma-separated list of wp_posts MySQL table columns to include in the "
150
+ "index. Following columns are available: "
151
+ msgstr ""
152
+ "Oddzielona przecinkami lista kolumn MySQL z tabeli wp_posts, które mają być "
153
+ "zaindeksowane. Dostępne są następujące kolumny:"
154
+
155
+ #: relevanssi.php:1448
156
+ msgid "Index and search user profiles:"
157
+ msgstr "Indeksowanie i przeszukiwanie profili użytkowników:"
158
+
159
+ #: relevanssi.php:1450
160
+ msgid ""
161
+ "If checked, Relevanssi will also index and search user profiles (first name, "
162
+ "last name, display name and user description). Requires changes to search "
163
+ "results template, see Relevanssi Knowledge Base."
164
+ msgstr ""
165
+ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować i przeszukiwać "
166
+ "profile użytkowników (imię, nazwisko, wyświetlana nazwa i opis użytkownika). "
167
+ "Wymaga to zmian w szablonie wyszukiwania (zobacz w bazie wiedzy Relevansii)."
168
+
169
+ #: relevanssi.php:1454
170
+ msgid "Index subscriber profiles:"
171
+ msgstr "Indeksowanie profili subskrybentów:"
172
+
173
+ #: relevanssi.php:1456
174
+ msgid ""
175
+ "If checked, Relevanssi will index subscriber profiles as well, otherwise "
176
+ "only authors, editors, contributors and admins are indexed."
177
+ msgstr ""
178
+ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować także profile "
179
+ "subskrybentów. W przeciwnym wypadku indeksowane będą tylko profile autorów, "
180
+ "redaktorów, współpracowników i administratorów."
181
+
182
+ #: relevanssi.php:1460
183
+ msgid "Extra user fields to index:"
184
+ msgstr "Dodatkowe pola użytkowników do zaindeksowania:"
185
+
186
+ #: relevanssi.php:1462
187
+ msgid ""
188
+ "A comma-separated list of user profile field names (names of the database "
189
+ "columns) to include in the index."
190
+ msgstr ""
191
+ "Oddzielona przecinkami lista nazw pól w profilach użytkownika (nazw kolumn w "
192
+ "bazie danych), które mają być zaindeksowane."
193
+
194
+ #: relevanssi.php:1470
195
+ msgid "Index and search taxonomy pages:"
196
+ msgstr "Indeksowanie i przeszukiwanie stron taksonomii:"
197
+
198
+ #: relevanssi.php:1472
199
+ msgid ""
200
+ "If checked, Relevanssi will also index and search taxonomy pages "
201
+ "(categories, tags, custom taxonomies)."
202
+ msgstr ""
203
+ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować i przeszukiwać także "
204
+ "strony taksonomii (kategorii, tagów, własnych taksonomii)."
205
+
206
+ #: relevanssi.php:1476
207
+ msgid "Taxonomy pages to index:"
208
+ msgstr "Strony taksonomi do zaindeksowania:"
209
+
210
+ #: relevanssi.php:1478
211
+ msgid ""
212
+ "A comma-separated list of taxonomies to include in the taxonomy page index "
213
+ "('all' indexes all custom taxonomies. If you don't use 'all', remember to "
214
+ "list 'category' and 'post_tag')."
215
+ msgstr ""
216
+ "Oddzielona przecinkami lista taksonomii, które mają być ujęte w indeksie "
217
+ "stron taksonomii (wpisanie 'all' spowoduje zaindeksowanie wszystkich "
218
+ "taksonomii. Jeśli nie użyjesz 'all' dodaj przynajmniej 'category' i "
219
+ "'post_tag')."
220
+
221
+ #: relevanssi.php:1486
222
+ msgid "Import or export options"
223
+ msgstr "Importowanie i eksportowanie ustawień"
224
+
225
+ #: relevanssi.php:1488
226
+ msgid ""
227
+ "Here you find the current Relevanssi Premium options in a text format. Copy "
228
+ "the contents of the text field to make a backup of your settings. You can "
229
+ "also paste new settings here to change all settings at the same time. This "
230
+ "is useful if you have default settings you want to use on every system."
231
+ msgstr ""
232
+ "Możesz tu znaleźć ustawienia Relevanssi Premium w formie tekstowej. Skopiuj "
233
+ "zawartość tego pola aby utworzyć kopię zapasową ustawień. Możesz także "
234
+ "wkleić tutaj nowe ustawienia aby je w prosty sposób zmienić. Jest to "
235
+ "przydatne jeśli masz domyślne ustawienia, któe stosujesz na wielu stronach."
236
+
237
+ #: relevanssi.php:1492
238
+ msgid "Import settings"
239
+ msgstr "Importuj ustawienia"
240
+
241
+ #: relevanssi.php:1494
242
+ msgid ""
243
+ "Note! Make sure you've got correct settings from a right version of "
244
+ "Relevanssi. Settings from a different version of Relevanssi may or may not "
245
+ "work and may or may not mess your settings."
246
+ msgstr ""
247
+ "Uwaga! Upewnij się że używasz ustawień odpowiednich dla konkretnej wersji "
248
+ "Relevansii. Ustawienia z wersji innej niż stosowana mogą nie działać i "
249
+ "powodować problemy."
250
+
251
+ #: relevanssi.php:1513
252
+ msgid "Thank you!"
253
+ msgstr "Dziękujemy!"
254
+
255
+ #: relevanssi.php:1514
256
+ msgid ""
257
+ "Thank you for buying Relevanssi Premium! Your support makes it possible for "
258
+ "me to keep working on this plugin."
259
+ msgstr ""
260
+ "Dziękujemy za wybranie Relevanssi Premium. Twoje wsparcie umożliwia dalsze "
261
+ "prace nad tą wtyczką."
262
+
263
+ #: relevanssi.php:1515
264
+ msgid ""
265
+ "I can do custom hacks based on Relevanssi and other WordPress development. "
266
+ "If you need someone to fix your WordPress, just ask me for a quote."
267
+ msgstr ""
268
+ "Mogę przygotować dowolną modyfikację opartą o Relevanssi i WordPress. Jeśli "
269
+ "szukasz kogoś, kto popracowałby nad Twoją stroną, wyślij zapytanie."
270
+
271
+ #: relevanssi.php:1517
272
+ msgid "Relevanssi on Facebook"
273
+ msgstr "Relevanssi na Facebooku"
274
+
275
+ #: relevanssi.php:1518
276
+ msgid "Check out the Relevanssi page on Facebook"
277
+ msgstr "Sprawdź stronę Relevanssi na Facebooku"
278
+
279
+ #: relevanssi.php:1519
280
+ msgid "for news and updates about your favourite plugin."
281
+ msgstr ""
282
+ "aby być na bierząco informowanym o aktualnościach i innych wydarzeniach "
283
+ "związanych z Twoją ulubioną wtyczką."
284
+
285
+ #: relevanssi.php:1521
286
+ msgid "Help and support"
287
+ msgstr "Pomoc"
288
+
289
+ #: relevanssi.php:1522
290
+ msgid "For Relevanssi support, see:"
291
+ msgstr "Aby uzyskać pomoc, zobacz:"
292
+
293
+ #: relevanssi.php:1523
294
+ msgid "Plugin support page"
295
+ msgstr "Strona pomocy"
296
+
297
+ #: relevanssi.php:1524
298
+ msgid "WordPress.org forum"
299
+ msgstr "Forum na Wordpress.com"
300
+
301
+ #: relevanssi.php:1526
302
+ msgid "Did you know this feature?"
303
+ msgstr "Czy znałeś tę funkcję?"
304
+
305
+ #: relevanssi.php:1527
306
+ msgid ""
307
+ "Wrap the parts of the posts you don't want to include in the index in "
308
+ "[noindex] shortcode."
309
+ msgstr ""
310
+ "Zaznacz fragmenty treści, których nie chcesz zaindeksować w skrót [noindex]."
311
+
312
+ #: relevanssi.php:1528
313
+ msgid "Use the [search] shortcode to build easy links to search results."
314
+ msgstr ""
315
+ "Użyj skrótu [search] aby w prosty sposób utworzyć linki do wyników "
316
+ "wyszukiwania."
317
+
318
+ #: relevanssi.php:1529
319
+ msgid ""
320
+ "Enable the English-language stemmer by adding this line in your functions."
321
+ "php:"
322
+ msgstr ""
323
+ "Włącz odmiany zwrotów w języku angielskim dodają tę linię kodu do pliku "
324
+ "functions.php:"
325
+
326
+ #: relevanssi.php:1530
327
+ msgid "Boolean NOT"
328
+ msgstr "Warunek boolean NOT"
329
+
330
+ #: relevanssi.php:1531
331
+ msgid "To get results without particular word, use the minus operator"
332
+ msgstr "Aby uzyskać wyniki bez określnoego zwrotu użyj operatora minus (-)"
333
+
334
+ #: relevanssi.php:1532
335
+ msgid "cats -dogs"
336
+ msgstr "koty-psy"
337
+
338
+ #: relevanssi.php:1533
339
+ msgid "Boolean AND"
340
+ msgstr "Warunek boolean AND"
341
+
342
+ #: relevanssi.php:1534
343
+ msgid "To force a particular term in an OR search, use the plus operator"
344
+ msgstr ""
345
+ "Aby wymusić określony termin w wyszukiwaniu w trybie OR, użyj operatora plus "
346
+ "(+)"
347
+
348
+ #: relevanssi.php:1535
349
+ msgid "+cats dogs mice"
350
+ msgstr "+koty psy myszy"
351
+
352
+ #: relevanssi.php:1536
353
+ msgid ""
354
+ "would require that all results include the term 'cats', and results "
355
+ "including all three terms will be favoured. The plus operator has no effect "
356
+ "in an AND search, where all terms have an implicit + before them."
357
+ msgstr ""
358
+ "będzie wymagać aby wszystkie wyniki zawierały zwrot 'cats' a wyniki "
359
+ "zawierające każdy z tych trzech zwrotów będą faworyzowane. Operator plus nie "
360
+ "ma żadnego działania w wyszukiwaniu w trybie OR, ponieważ wówczas wszystkie "
361
+ "zwroty mają taki operator."
362
+
363
+ #: relevanssi.php:1620
364
+ msgid "Relevanssi post controls"
365
+ msgstr "Ustawienia wyszukiwania"
366
+
367
+ #: relevanssi.php:1639
368
+ msgid "Exclude this post or page from the index."
369
+ msgstr "Wyklucz ten wpis lub stronę z indeksowania i wyszukiwania"
370
+
371
+ #: lib/excerpts-highlights.php:11
372
+ msgid "There is no excerpt because this is a protected post."
373
+ msgstr "Wypis nie istnieje, ponieważ ten wpis jest strzeżony hasłem."
374
+
375
+ #: lib/indexing.php:83
376
+ msgid "Indexing complete!"
377
+ msgstr "Indeksowanie zostało zakończone!"
378
+
379
+ #: lib/init.php:41
380
+ #, php-format
381
+ msgid ""
382
+ "Relevanssi needs attention: Remember to build the index (you can do it at <a "
383
+ "href=\"%1$s\">the\n"
384
+ "\t\t\t settings page</a>), otherwise searching won't work."
385
+ msgstr ""
386
+ "Relevanssi wymaga Twojej uwagi: Pamiętaj o przebudowaniu indeksu (możesz "
387
+ "zrobić to na <a href=\"%1$s\">stronie\n"
388
+ "\t\t\t ustawień</a>), ponieważ w przeciwnym wypadku wyszukiwanie nie "
389
+ "będzie działać."
390
+
391
+ #: lib/init.php:85 lib/init.php:86
392
+ msgid "User searches"
393
+ msgstr "Wyszukiwania"
394
+
395
+ #: lib/interface.php:6
396
+ msgid "Relevanssi Premium Search Options"
397
+ msgstr "Ustawienia wyszukiwania"
398
+
399
+ #: lib/interface.php:9
400
+ msgid "Relevanssi Search Options"
401
+ msgstr "Ustawienia wyszukiwania"
402
+
403
+ #: lib/interface.php:86
404
+ msgid "User Searches"
405
+ msgstr "Statystyki wyszukiwania"
406
+
407
+ #: lib/interface.php:88
408
+ msgid "Relevanssi User Searches"
409
+ msgstr "Statystyki wyszukiwania"
410
+
411
+ #: lib/interface.php:333
412
+ #, php-format
413
+ msgid ""
414
+ "<div id='message' class='updated fade'><p>Successfully added %d/%d terms to "
415
+ "stopwords!</p></div>"
416
+ msgstr ""
417
+ "<div id='message' class='updated fade'><p>Zwroty %d/%d zostały dodane do "
418
+ "liczby słów pomijanych!</p></div>"
419
+
420
+ #: lib/interface.php:340
421
+ #, php-format
422
+ msgid ""
423
+ "<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></"
424
+ "div>"
425
+ msgstr ""
426
+ "<div id='message' class='updated fade'><p>Zwrot '%s' został dodany do liczby "
427
+ "słów pomijanych!</p></div>"
428
+
429
+ #: lib/interface.php:343
430
+ #, php-format
431
+ msgid ""
432
+ "<div id='message' class='updated fade'><p>Couldn't add term '%s' to "
433
+ "stopwords!</p></div>"
434
+ msgstr ""
435
+ "<div id='message' class='updated fade'><p>Nie udało się dodać zwrotu '%s' do "
436
+ "listy słów pomijanych!</p></div>"
437
+
438
+ #: lib/interface.php:372
439
+ msgid ""
440
+ "<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-"
441
+ "index.</p></div>"
442
+ msgstr ""
443
+ "<div id='message' class='updated fade'><p>Słowa pomijane zostały usunięte! "
444
+ "Pamiętaj o przebudowaniu indeku.</p></div>"
445
+
446
+ #: lib/interface.php:382
447
+ #, php-format
448
+ msgid ""
449
+ "<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! "
450
+ "Re-index to get it back to index.</p></div>"
451
+ msgstr ""
452
+ "<div id='message' class='updated fade'><p>Zwrot '%s' został usunięty z listy "
453
+ "słów pomijanych! Przebuduj indeks aby dodać je do indeksu.</p></div>"
454
+
455
+ #: lib/interface.php:385
456
+ #, php-format
457
+ msgid ""
458
+ "<div id='message' class='updated fade'><p>Couldn't remove term '%s' from "
459
+ "stopwords!</p></div>"
460
+ msgstr ""
461
+ "<div id='message' class='updated fade'><p>Nie udało się usunąć zwrotu '%s' z "
462
+ "listy słów pomijanych!</p></div>"
463
+
464
+ #: lib/interface.php:396
465
+ msgid "25 most common words in the index"
466
+ msgstr "25 najczęściej występujących słów w indeksie"
467
+
468
+ #: lib/interface.php:398
469
+ msgid ""
470
+ "These words are excellent stopword material. A word that appears in most of "
471
+ "the posts in the database is quite pointless when searching. This is also an "
472
+ "easy way to create a completely new stopword list, if one isn't available in "
473
+ "your language. Click the icon after the word to add the word to the stopword "
474
+ "list. The word will also be removed from the index, so rebuilding the index "
475
+ "is not necessary."
476
+ msgstr ""
477
+ "Te zwroty są doskonałym materiałem na słowa do pominięcia. Słowa, które w "
478
+ "bazie danych występują najczęściej są mało przydatne w wyszukiwaniu. Możesz "
479
+ "więc potraktować tę listę jako propozycję nowej listy słów do pominięcia w "
480
+ "Twoim języku. Kliknij ikonę znajdującą się za danym słowem aby dodać dany "
481
+ "zwrot do listy słów pominięcia. Taki zwrot zostanie usunięty z indeksu, więc "
482
+ "musisz go przebudować."
483
+
484
+ #: lib/interface.php:424
485
+ msgid "Add to stopwords"
486
+ msgstr "Dodaj do słów do pominięcia"
487
+
488
+ #: lib/interface.php:435
489
+ msgid "Total Searches"
490
+ msgstr "Podsumowanie wyszukiwania"
491
+
492
+ #: lib/interface.php:438
493
+ msgid "Totals"
494
+ msgstr "Ogółem"
495
+
496
+ #: lib/interface.php:443
497
+ msgid "Common Queries"
498
+ msgstr "Najczęściej wyszukiwane frazy"
499
+
500
+ #: lib/interface.php:445
501
+ msgid ""
502
+ "Here you can see the 20 most common user search queries, how many times "
503
+ "those \n"
504
+ "\t\tqueries were made and how many results were found for those queries."
505
+ msgstr ""
506
+ "Możesz tutaj sprawdzić listę 20 najczęściej wyszukiwanych fraz, jak wiele "
507
+ "razy \n"
508
+ "\t\tdana fraza była wyszukiwana oraz ile wyników dla danej frazy znaleziono ."
509
+
510
+ #: lib/interface.php:451 lib/interface.php:467 lib/interface.php:499
511
+ msgid "Today and yesterday"
512
+ msgstr "Dziś i wczoraj"
513
+
514
+ #: lib/interface.php:455 lib/interface.php:471 lib/interface.php:500
515
+ msgid "Last 7 days"
516
+ msgstr "W ciągu ostatnich 7 dni"
517
+
518
+ #: lib/interface.php:459 lib/interface.php:475 lib/interface.php:501
519
+ msgid "Last 30 days"
520
+ msgstr "W ciągu ostatnich 30 dni"
521
+
522
+ #: lib/interface.php:464
523
+ msgid "Unsuccessful Queries"
524
+ msgstr "Zapytania bez wyników"
525
+
526
+ #: lib/interface.php:482
527
+ msgid "Reset Logs"
528
+ msgstr "Resetuj dziennik"
529
+
530
+ #: lib/interface.php:485
531
+ #, php-format
532
+ msgid "To reset the logs, type \"reset\" into the box here %s and click %s"
533
+ msgstr ""
534
+ "Aby zresetować dziennik wpisz słowo \"reset\" w to pole %s i kliknij %s"
535
+
536
+ #: lib/interface.php:502
537
+ msgid "Forever"
538
+ msgstr "Zawsze"
539
+
540
+ #: lib/interface.php:504
541
+ msgid "When"
542
+ msgstr "Okres"
543
+
544
+ #: lib/interface.php:504
545
+ msgid "Searches"
546
+ msgstr "Wyszukiwania"
547
+
548
+ #: lib/interface.php:534
549
+ msgid "Query"
550
+ msgstr "Fraza"
551
+
552
+ #: lib/interface.php:534
553
+ msgid "Hits"
554
+ msgstr "Trafienia"
555
+
556
+ #: lib/interface.php:842 lib/interface.php:887
557
+ msgid "Basic options"
558
+ msgstr "Ustawienia podstawowe"
559
+
560
+ #: lib/interface.php:843 lib/interface.php:953
561
+ msgid "Weights"
562
+ msgstr "Ważenie"
563
+
564
+ #: lib/interface.php:844 lib/interface.php:1008
565
+ msgid "Logs"
566
+ msgstr "Dziennik"
567
+
568
+ #: lib/interface.php:845 lib/interface.php:1037
569
+ msgid "Exclusions and restrictions"
570
+ msgstr "Wykluczanie i ograniczenia"
571
+
572
+ #: lib/interface.php:846
573
+ msgid "Custom excerpts"
574
+ msgstr "Własne wypisy"
575
+
576
+ #: lib/interface.php:847
577
+ msgid "Highlighting search results"
578
+ msgstr "Podświetlanie wyników wyszukiwania"
579
+
580
+ #: lib/interface.php:848 lib/interface.php:1183
581
+ msgid "Indexing options"
582
+ msgstr "Ustawienia indeksowania"
583
+
584
+ #: lib/interface.php:849 lib/interface.php:1301
585
+ msgid "Caching"
586
+ msgstr "Cachowanie"
587
+
588
+ #: lib/interface.php:850 lib/interface.php:1324
589
+ msgid "Synonyms"
590
+ msgstr "Synonimy"
591
+
592
+ #: lib/interface.php:851 lib/interface.php:1332
593
+ msgid "Stopwords"
594
+ msgstr "Słowa pomijane"
595
+
596
+ #: lib/interface.php:854
597
+ msgid "Import/export options"
598
+ msgstr "Importowanie i eksportowanie ustawień"
599
+
600
+ #: lib/interface.php:857
601
+ msgid "Buy Relevanssi Premium"
602
+ msgstr "Kup Relevanssi Premium"
603
+
604
+ #: lib/interface.php:862
605
+ msgid "Quick tools"
606
+ msgstr "Szybkie narzędzia"
607
+
608
+ #: lib/interface.php:864
609
+ msgid "Save options"
610
+ msgstr "Zapisz ustawienia"
611
+
612
+ #: lib/interface.php:865
613
+ msgid "Build the index"
614
+ msgstr "Zbuduj indeks"
615
+
616
+ #: lib/interface.php:866 lib/interface.php:1299
617
+ msgid "Continue indexing"
618
+ msgstr "Kontynuuj indeksowanie"
619
+
620
+ #: lib/interface.php:866
621
+ msgid "add"
622
+ msgstr "dodaj"
623
+
624
+ #: lib/interface.php:866
625
+ msgid "documents."
626
+ msgstr "dokumentów."
627
+
628
+ #: lib/interface.php:870
629
+ msgid ""
630
+ "WARNING: You've chosen no post types to index. Nothing will be indexed. <a "
631
+ "href='#indexing'>Choose some post types to index</a>."
632
+ msgstr ""
633
+ "UWAGA: Jeśli nie wybrałeś do zaindeksowania żadnych typów wpisów, nic nie "
634
+ "zostanie zaindeksowane. <a href='#indexing'>Wybierz typy wpisów</a>."
635
+
636
+ #: lib/interface.php:874
637
+ msgid ""
638
+ "Use 'Build the index' to build the index with current <a "
639
+ "href='#indexing'>indexing options</a>. If you can't finish indexing with one "
640
+ "go, use 'Continue indexing' to finish the job. You can change the number of "
641
+ "documents to add until you find the largest amount you can add with one go. "
642
+ "See 'State of the Index' below to find out how many documents actually go "
643
+ "into the index."
644
+ msgstr ""
645
+ "Użyj 'Buduj indeks' aby zbudować indeks z wykorzystaniem aktualnych <a "
646
+ "href='#indexing'>ustawień indeksowania</a>."
647
+
648
+ #: lib/interface.php:876
649
+ msgid ""
650
+ "If Relevanssi doesn't index anything and you have upgraded from a 2.x "
651
+ "version, it's likely the changes in\n"
652
+ "\tthe database structure haven't gone through in the upgrade. In that case "
653
+ "all you need to do is to deactivate the\n"
654
+ "\tplugin and then activate it again."
655
+ msgstr ""
656
+ "Jeśli Relevanssi niczego nie zaindeksuje a robiłeś aktualizację z wersji 2."
657
+ "x, prawdopodobnie zmiany\n"
658
+ "\tstruktury bazy danych nie zostały wykonane. W takim wypadku należy "
659
+ "deaktywować\n"
660
+ "\twtyczkę i aktywować ją ponownie."
661
+
662
+ #: lib/interface.php:880
663
+ msgid "State of the Index"
664
+ msgstr "Stan indeksu"
665
+
666
+ #: lib/interface.php:882
667
+ msgid "Documents in the index"
668
+ msgstr "Dokumenty w indeksie"
669
+
670
+ #: lib/interface.php:883
671
+ msgid "Terms in the index"
672
+ msgstr "Zwroty w indeksie"
673
+
674
+ #: lib/interface.php:884
675
+ msgid "Highest post ID indexed"
676
+ msgstr "Zaindeksowany wpis o najwyższym ID"
677
+
678
+ #: lib/interface.php:893
679
+ msgid "Use search for admin:"
680
+ msgstr "Wyszukiwanie w panelu administracyjnym:"
681
+
682
+ #: lib/interface.php:895
683
+ msgid "If checked, Relevanssi will be used for searches in the admin interface"
684
+ msgstr ""
685
+ "Jeśli zaznaczysz tę opcję, Relevanssi zostanie zastosowane do wyszukiwania w "
686
+ "panelu administracyjnym"
687
+
688
+ #: lib/interface.php:899
689
+ msgid "Default operator for the search?"
690
+ msgstr "Domyślny operator wyszukiwania?"
691
+
692
+ #: lib/interface.php:901
693
+ msgid "AND - require all terms"
694
+ msgstr "AND - szukaj wszystkich fraz"
695
+
696
+ #: lib/interface.php:902
697
+ msgid "OR - any term present is enough"
698
+ msgstr "OR - szukaj którejkolwiek z fraz"
699
+
700
+ #: lib/interface.php:904
701
+ msgid ""
702
+ "If you choose AND and the search finds no matches, it will automatically do "
703
+ "an OR search."
704
+ msgstr ""
705
+ "Jeśli wybierzez AND a wyszukiwanie nie przyniesie rezultatu, automatycznie "
706
+ "przejdzie w tryb wyszukiwania OR."
707
+
708
+ #: lib/interface.php:908
709
+ msgid "Disable OR fallback:"
710
+ msgstr "Przejście w tryb OR:"
711
+
712
+ #: lib/interface.php:910
713
+ msgid ""
714
+ "If you don't want Relevanssi to fall back to OR search when AND search gets "
715
+ "no hits, check this option. For most cases, leave this one unchecked."
716
+ msgstr ""
717
+ "Jeśli nie chcesz aby Relevanssi przechodziło w tryb OR w sytuacji gdy "
718
+ "wyszukiwanuie w trybie AND nie przyniesie rezultatu, zaznacz tę opcję. W "
719
+ "większości wypadków zaznaczanie tej opcji nie jest rekomendowane."
720
+
721
+ #: lib/interface.php:914
722
+ msgid "Default order for results:"
723
+ msgstr "Domyślne sortowanie wyników:"
724
+
725
+ #: lib/interface.php:916
726
+ msgid "Relevance (highly recommended)"
727
+ msgstr "Wg trafności (mocno rekomendowane)"
728
+
729
+ #: lib/interface.php:917
730
+ msgid "Post date"
731
+ msgstr "Wg daty wpisu"
732
+
733
+ #: lib/interface.php:919
734
+ msgid ""
735
+ "If you want date-based results, see the recent post bonus in the Weights "
736
+ "section."
737
+ msgstr ""
738
+ "Jeśli chcesz aby wyniki wyszukiwania opierały się na dacie dodania wpisu, "
739
+ "sprawdź mnożnik wagi dla nowych wpisów."
740
+
741
+ #: lib/interface.php:923
742
+ msgid "When to use fuzzy matching?"
743
+ msgstr "Kiedy stosować przybliżone porównywanie fraz?"
744
+
745
+ #: lib/interface.php:925
746
+ msgid "When straight search gets no hits"
747
+ msgstr "Kiedy brak wyników wyszukiwania"
748
+
749
+ #: lib/interface.php:926
750
+ msgid "Always"
751
+ msgstr "Zawsze"
752
+
753
+ #: lib/interface.php:927
754
+ msgid "Don't use fuzzy search"
755
+ msgstr "Nie używaj przybliżonego porównywania"
756
+
757
+ #: lib/interface.php:929
758
+ msgid ""
759
+ "Straight search matches just the term. Fuzzy search matches everything that "
760
+ "begins or ends with the search term."
761
+ msgstr ""
762
+ "Normalne wyszukiwanie po prostu porównuje zwroty. Porównywanie przybliżone "
763
+ "sprawdza wszystkie zwroty, które zaczynają się lub kończą wyszukiwaną frazą."
764
+
765
+ #: lib/interface.php:937
766
+ msgid "Limit searches:"
767
+ msgstr "Limit wyników wyszukiwania:"
768
+
769
+ #: lib/interface.php:939
770
+ msgid ""
771
+ "If this option is checked, Relevanssi will limit search results to at most "
772
+ "500 results per term. This will improve performance, but may cause some "
773
+ "relevant documents to go unfound. However, Relevanssi tries to prioritize "
774
+ "the most relevant documents. <strong>This does not work well when sorting "
775
+ "results by date.</strong> The throttle can end up cutting off recent posts "
776
+ "to favour more relevant posts."
777
+ msgstr ""
778
+ "Jeśli zostanie zaznaczone, Relevanssi ograniczy listę wyników wyszukiwania "
779
+ "do maksymalnie 500. Pozwala to na poprawienie wydajności wyszukiwania, "
780
+ "natomiast może spowodować, że niektóre trafienia nie zostaną wyświetlone. Z "
781
+ "drugiej strony Relevanssi udostępnia narzędzia do określania priorytetów "
782
+ "wyszukiwania, dzięki którym najbardziej trafne wyniki zostaną wyświetlone w "
783
+ "pierwszej kolejności. <strong>Niestety, nie działa to dobrze, jeżeli "
784
+ "wybierzesz sortowanie wg daty wpisu.</strong> Wówczas najnowsze wpisy mogą "
785
+ "zostać pominięte w wynikach wyszukiwania na rzecz tych, najbardziej trafnych."
786
+
787
+ #: lib/interface.php:943
788
+ msgid "Limit:"
789
+ msgstr "Limit:"
790
+
791
+ #: lib/interface.php:945
792
+ msgid ""
793
+ "For better performance, adjust the limit to a smaller number. Adjusting the "
794
+ "limit to 100 - or even lower - should be safe for good results, and might "
795
+ "bring a boost in search speed."
796
+ msgstr ""
797
+ "Aby uzyskać lepszą wydajność wyszukiwania zmień limit na mniejszy. "
798
+ "Ustawienie na 100 - lub nawet mniej - powinno być bezpieczne w kontekście "
799
+ "uzyskiwanych wyników a przyniesie znaczną poprawę szybkości wyszukiwania."
800
+
801
+ #: lib/interface.php:955
802
+ msgid ""
803
+ "These values affect the weights of the documents. These are all multipliers, "
804
+ "so 1 means no change in weight, less than 1 means less weight, and more than "
805
+ "1 means more weight. Setting something to zero makes that worthless. For "
806
+ "example, if title weight is more than 1, words in titles are more "
807
+ "significant than words elsewhere. If title weight is 0, words in titles "
808
+ "won't make any difference to the search results."
809
+ msgstr ""
810
+ "Poniższe wartości mają wpływ na sposób ważenia dokumentów. Te liczby "
811
+ "oznaczają wielokrotność, a więc 1 oznacza brak zmiany w wadze, mniej niż 1 "
812
+ "oznacza zmniejszenie wagi a więcej niż 1 jej zwiększenie. Ustawienie "
813
+ "wartości zbliżonej do zera powoduje że dane kryterium praktycznie przestaje "
814
+ "być brane pod uwagę. Na przykład, jeśli waga tytułu jest większa niż 1 "
815
+ "słowa zawarte w tytułach mają większe znaczenie niż te same słowa znajdujące "
816
+ "się w innych miejscach. Jeśli waga tytułu byłaby ustawiona na 0, słowa "
817
+ "zawarte w tytułach nie miałyby żadnego wpływu na wyniki wyszukiwania."
818
+
819
+ #: lib/interface.php:960
820
+ msgid "Element"
821
+ msgstr "Element"
822
+
823
+ #: lib/interface.php:961
824
+ msgid "Weight"
825
+ msgstr "Waga"
826
+
827
+ #: lib/interface.php:962
828
+ msgid "Default weight"
829
+ msgstr "Waga domyślna"
830
+
831
+ #: lib/interface.php:967
832
+ msgid "Post titles"
833
+ msgstr "Tutuły wpisów"
834
+
835
+ #: lib/interface.php:979
836
+ msgid "Comment text"
837
+ msgstr "Treść komentarza"
838
+
839
+ #: lib/interface.php:1000
840
+ msgid "WPML compatibility"
841
+ msgstr "Kompatybilność z WPML"
842
+
843
+ #: lib/interface.php:1002
844
+ msgid "Limit results to current language:"
845
+ msgstr "Ogranicz wyniki wyszukiwania do aktualnego języka:"
846
+
847
+ #: lib/interface.php:1004
848
+ msgid ""
849
+ "If this option is checked, Relevanssi will only return results in the "
850
+ "current active language. Otherwise results will include posts in every "
851
+ "language."
852
+ msgstr ""
853
+ "Jeśli ta opcja zostanie zaznaczona, Relevanssi zwróci tylko wyniki dla "
854
+ "aktualnego jezyka. W przeciwnym wypadku wyniki wyszukiwania będą zawierać w "
855
+ "wpisy w każdym języku."
856
+
857
+ #: lib/interface.php:1010
858
+ msgid "Keep a log of user queries:"
859
+ msgstr "Zapisywanie wyszukiwanych fraz:"
860
+
861
+ #: lib/interface.php:1012
862
+ msgid ""
863
+ "If checked, Relevanssi will log user queries. The log appears in 'User "
864
+ "searches' on the Dashboard admin menu."
865
+ msgstr ""
866
+ "Jeśli zostanie zaznaczone, Relevanssi będzie zapisywać frazy wyszukiwane "
867
+ "przez użytkowników. Dziennik wyszukiwanych będzie dostępny w zakładce "
868
+ "'Wyszukiwania' w Kokpicie panelu administracyjnego."
869
+
870
+ #: lib/interface.php:1016
871
+ msgid "Log the user's IP with the queries:"
872
+ msgstr "Zapisuj IP użytkowników"
873
+
874
+ #: lib/interface.php:1018
875
+ msgid "If checked, Relevanssi will log user's IP-Adress with the queries."
876
+ msgstr ""
877
+ "Jeśli zaznaczysz tę opcję, Relevanssi będzie zapisywać adresy IP "
878
+ "użytkowników wraz z zapytaniami."
879
+
880
+ #: lib/interface.php:1022
881
+ msgid "Don't log queries from these users:"
882
+ msgstr "Nie zapisuj fraz wyszukiwanych przez:"
883
+
884
+ #: lib/interface.php:1024
885
+ msgid ""
886
+ "Comma-separated list of numeric user IDs or user login names that will not "
887
+ "be logged."
888
+ msgstr ""
889
+ "Oddzielona przecinkami lista ID użytkowników lub nazw użytkowników, których "
890
+ "wyszukiwania nie będą zapisywane."
891
+
892
+ #: lib/interface.php:1028
893
+ msgid ""
894
+ "If you enable logs, you can see what your users are searching for. You can "
895
+ "prevent your own searches from getting in the logs with the omit feature."
896
+ msgstr ""
897
+ "Jeśli włączysz zapisywanie, możesz sprawdzić czego szukają Twoi użytkownicy. "
898
+ "Możesz także wykluczyć wyszukiwania, których sam dokonujesz na stronie."
899
+
900
+ #: lib/interface.php:1031
901
+ msgid ""
902
+ "If you enable logs, you can see what your users are searching for. Logs are "
903
+ "also needed to use the 'Did you mean?' feature. You can prevent your own "
904
+ "searches from getting in the logs with the omit feature."
905
+ msgstr ""
906
+ "Jeśli włączysz zapisywanie, możesz sprawdzić czego szukają Twoi użytkownicy. "
907
+ "Zapisywanie wyszukiwanych fraz jest także niezbędne, aby móc skorzystać z "
908
+ "funkcji 'Czy miałeś na myśli?'. Możesz także wykluczyć wyszukiwania, których "
909
+ "sam dokonujesz na stronie."
910
+
911
+ #: lib/interface.php:1039
912
+ msgid "Restrict search to these categories and tags:"
913
+ msgstr "Ogranicz wyszukiwanie do następujących kategorii i tagów:"
914
+
915
+ #: lib/interface.php:1041
916
+ msgid ""
917
+ "Enter a comma-separated list of category and tag IDs to restrict search to "
918
+ "those categories or tags. You can also use <code>&lt;input type='hidden' "
919
+ "name='cats' value='list of cats and tags' /&gt;</code> in your search form. "
920
+ "The input field will \toverrun this setting."
921
+ msgstr ""
922
+ "Wpisz oddzieloną przecinkami listę ID kategorii i tagów do których chcesz "
923
+ "ograniczyć wyszukiwanie. Możesz także użyć kodu <code>&lt;input "
924
+ "type='hidden' name='cats' value='list of cats and tags' /&gt;</code> w "
925
+ "formularzu wyszukiwania. Pole wyszukiwarki nadpisze te przykładowe "
926
+ "ustawienia."
927
+
928
+ #: lib/interface.php:1045
929
+ msgid "Exclude these categories and tags from search:"
930
+ msgstr "Wyklucz następujące kategorie i tagi z wyszukiwania:"
931
+
932
+ #: lib/interface.php:1047
933
+ msgid ""
934
+ "Enter a comma-separated list of category and tag IDs that are excluded from "
935
+ "search results. You can exclude categories with the 'cat' input field by "
936
+ "using negative values."
937
+ msgstr ""
938
+ "Wpisz oddzieloną przecinkami listę ID kategorii i tagów, które chcesz "
939
+ "wykluczyć z wyników wyszukiwania. Możesz także wykluczyć kategorie dodając w "
940
+ "formularzy wyszukiwania pole 'cat' i ujemne wartości ID."
941
+
942
+ #: lib/interface.php:1051
943
+ msgid "Exclude these posts/pages from search:"
944
+ msgstr "Wyklucz następujące wpisy/strony z wyszukiwania:"
945
+
946
+ #: lib/interface.php:1055
947
+ msgid ""
948
+ "Enter a comma-separated list of post/page IDs that are excluded from search "
949
+ "results. This only works here, you can't use the input field option "
950
+ "(WordPress doesn't pass custom parameters there). You can also use a "
951
+ "checkbox on post/page edit pages to remove posts from index."
952
+ msgstr ""
953
+ "Wpisz oddzieloną przecinkami listę ID wpisów/stron, któe chcesz wykluczyć z "
954
+ "wyników wyszukiwania. Działa to wyłącznie w tym miejscu, nie dodając "
955
+ "dodatkowego pola do formularza wyszukiwania (WordPress nie umożliwia "
956
+ "przesyłania w nim własnych parametrów). Aby wykluczyć poszczególne wpisy z "
957
+ "indeksowania możesz także użyć zaznaczania poszczególnych wpisów/stron w "
958
+ "bloku Ustawienia wyszukiwania dodanego przez Relevanssi do stron edycji."
959
+
960
+ #: lib/interface.php:1058
961
+ msgid ""
962
+ "Enter a comma-separated list of post/page IDs that are excluded from search "
963
+ "results. This only works here, you can't use the input field option "
964
+ "(WordPress doesn't pass custom parameters there)."
965
+ msgstr ""
966
+ "Wpisz oddzieloną przecinkami listę ID wpisów/stron, któe chcesz wykluczyć z "
967
+ "wyników wyszukiwania. Działa to wyłącznie w tym miejscu, nie dodając "
968
+ "dodatkowego pola do formularza wyszukiwania (WordPress nie umożliwia "
969
+ "przesyłania w nim własnych parametrów)."
970
+
971
+ #: lib/interface.php:1064
972
+ msgid "Respect exclude_from_search for custom post types:"
973
+ msgstr "Uwzględniaj ustawienia exclude_from_search dla własnych typów wpisów:"
974
+
975
+ #: lib/interface.php:1066
976
+ msgid ""
977
+ "If checked, Relevanssi won't display posts of custom post types that have "
978
+ "'exclude_from_search' set to true. If not checked, Relevanssi will display "
979
+ "anything that is indexed."
980
+ msgstr ""
981
+ "Jeśli zostanie zaznaczone, Relevanssi nie będzie wyświetlać własnych typów "
982
+ "wpisów dla których określono parametr 'exclude_from_search'. Jeśli nie "
983
+ "będzie zaznaczone, Relevanssi będzie wyświetlać wszystko co zostało "
984
+ "zaindeksowane."
985
+
986
+ #: lib/interface.php:1068
987
+ msgid "Custom excerpts/snippets"
988
+ msgstr "Własne wypisy"
989
+
990
+ #: lib/interface.php:1070
991
+ msgid "Create custom search result snippets:"
992
+ msgstr "Utwórz własne wypisy w kodzie wyników wyszukiwania:"
993
+
994
+ #: lib/interface.php:1072
995
+ msgid ""
996
+ "If checked, Relevanssi will create excerpts that contain the search term "
997
+ "hits. To make them work, make sure your search result template uses "
998
+ "the_excerpt() to display post excerpts."
999
+ msgstr ""
1000
+ "Jeśli zostanie zaznaczone, Relevanssi utworzy własne wypisy, zawierające "
1001
+ "znalezione frazy. Aby ta funkcja działała prawidłowo upewnij się, że Twój "
1002
+ "szablon wyników wyszukiwania do wyświetlania wypisów używa funkcji "
1003
+ "the_excerpt()."
1004
+
1005
+ #: lib/interface.php:1074
1006
+ msgid ""
1007
+ "Note: Building custom excerpts can be slow. If you are not actually using "
1008
+ "the excerpts, make sure you disable the option."
1009
+ msgstr ""
1010
+ "Uwaga: Tworzenie własnych wypisów może być spowolnić stronę. Jeśli nie "
1011
+ "używasz wypisów, upewnij się że wyłączyłeś tę opcję."
1012
+
1013
+ #: lib/interface.php:1076
1014
+ msgid "Length of the snippet:"
1015
+ msgstr "Długość wypisu:"
1016
+
1017
+ #: lib/interface.php:1079
1018
+ msgid "characters"
1019
+ msgstr "liter"
1020
+
1021
+ #: lib/interface.php:1080
1022
+ msgid "words"
1023
+ msgstr "słów"
1024
+
1025
+ #: lib/interface.php:1082
1026
+ msgid "This must be an integer."
1027
+ msgstr "Musi to być liczba dodatnia."
1028
+
1029
+ #: lib/interface.php:1086
1030
+ msgid "Allowable tags in excerpts:"
1031
+ msgstr "Znaczniki dostępne w wypisach:"
1032
+
1033
+ #: lib/interface.php:1089
1034
+ msgid ""
1035
+ "List all tags you want to allow in excerpts, without any whitespace. For "
1036
+ "example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
1037
+ msgstr ""
1038
+ "Wpisz listę znaczników, na które chcesz pozwolić w wypisach. Nie używaj "
1039
+ "spacji, np. '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
1040
+
1041
+ #: lib/interface.php:1093
1042
+ msgid "Show breakdown of search hits in excerpts:"
1043
+ msgstr "Wyświetl dodatkowe informacje w wypisie:"
1044
+
1045
+ #: lib/interface.php:1095
1046
+ msgid ""
1047
+ "Check this to show more information on where the search hits were made. "
1048
+ "Requires custom snippets to work."
1049
+ msgstr ""
1050
+ "Zaznacz tę funkcję, jeśli chcesz pokazać więcej informacji na temat tego, w "
1051
+ "którym miejscu znajdowała się wyszukiwana fraza. Wymaga włączenia własnych "
1052
+ "wypisów."
1053
+
1054
+ #: lib/interface.php:1099
1055
+ msgid "The breakdown format:"
1056
+ msgstr "Format dodatkowych informacji:"
1057
+
1058
+ #: lib/interface.php:1101
1059
+ msgid ""
1060
+ "Use %body%, %title%, %tags% and %comments% to display the number of hits (in "
1061
+ "different parts of the post), %total% for total hits, %score% to display the "
1062
+ "document weight and %terms% to show how many hits each search term got. No "
1063
+ "double quotes (\") allowed!"
1064
+ msgstr ""
1065
+ "Możesz użyć znaczników %body%, %title%, %tags% i %comments% aby wyświetlić "
1066
+ "liczbę trafień (w określonych częściach wpisu), %total% dla ogólnej liczby "
1067
+ "trafień, %score% aby wyświetlić wagę danego dokumentu lub %terms% aby "
1068
+ "pokazać ilość trafień dla danej frazy. Podwójne myślniki (\") są zabronione!"
1069
+
1070
+ #: lib/interface.php:1103
1071
+ msgid "Search hit highlighting"
1072
+ msgstr "Podświetlanie trafień"
1073
+
1074
+ #: lib/interface.php:1105
1075
+ msgid "First, choose the type of highlighting used:"
1076
+ msgstr "Najpierw wybierz rodzaj stosowanego podświetlenia:"
1077
+
1078
+ #: lib/interface.php:1108
1079
+ msgid "Highlight query terms in search results:"
1080
+ msgstr "Podświetl każdą frazę w wynikach wyszukiwania:"
1081
+
1082
+ #: lib/interface.php:1110
1083
+ msgid "No highlighting"
1084
+ msgstr "Bez podświetlania"
1085
+
1086
+ #: lib/interface.php:1114
1087
+ msgid "Text color"
1088
+ msgstr "Kolor tekstu"
1089
+
1090
+ #: lib/interface.php:1115
1091
+ msgid "Background color"
1092
+ msgstr "Kolor tła"
1093
+
1094
+ #: lib/interface.php:1116
1095
+ msgid "CSS Style"
1096
+ msgstr "Styl CSS"
1097
+
1098
+ #: lib/interface.php:1117
1099
+ msgid "CSS Class"
1100
+ msgstr "Klasa CSS"
1101
+
1102
+ #: lib/interface.php:1119
1103
+ msgid "Highlighting isn't available unless you use custom snippets"
1104
+ msgstr ""
1105
+ "Podświetlanie nie zawsze jest dostępne, jeśli nie używasz własnych wypisów"
1106
+
1107
+ #: lib/interface.php:1123
1108
+ msgid "Highlight query terms in result titles too:"
1109
+ msgstr "Podświetl wyszukiwane frazy także w tytułach:"
1110
+
1111
+ #: lib/interface.php:1129
1112
+ msgid "Highlight query terms in documents from local searches:"
1113
+ msgstr "Podświetl wyszukiwane frazy w dokumentach z lokalnych wyszukiwań:"
1114
+
1115
+ #: lib/interface.php:1131
1116
+ msgid ""
1117
+ "Highlights hits when user opens the post from search results. This is based "
1118
+ "on HTTP referrer, so if that's blocked, there'll be no highlights."
1119
+ msgstr ""
1120
+ "Podświetla trafienia jeśli użytkownik otworzył dany wpis na stronie wyników "
1121
+ "wyszukiwania. Funkcja ta bazuje na odnośnikach HTTP, więc jeśli są one "
1122
+ "zablokowane, podświetlenie nie będzie działać."
1123
+
1124
+ #: lib/interface.php:1137
1125
+ msgid "Highlight query terms in comments:"
1126
+ msgstr "Podświetl wyszukiwane frazy w komentarzach:"
1127
+
1128
+ #: lib/interface.php:1139
1129
+ msgid ""
1130
+ "Highlights hits in comments when user opens the post from search results."
1131
+ msgstr ""
1132
+ "Podświetla trafienia w komentarzach jeśli użytkownik otworzył dany wpis ze "
1133
+ "strony wyników wyszukiwania."
1134
+
1135
+ #: lib/interface.php:1143
1136
+ msgid "Uncheck this if you use non-ASCII characters:"
1137
+ msgstr "Odznacz tę opcję, jeśli używasz znaków spoza ASCII:"
1138
+
1139
+ #: lib/interface.php:1145
1140
+ msgid ""
1141
+ "If you use non-ASCII characters (like Cyrillic alphabet) and the highlights "
1142
+ "don't work, uncheck this option to make highlights work."
1143
+ msgstr ""
1144
+ "Jeśli używasz znaków spoza ASCII (np. cyrylicy) a podświetlanie nie działa "
1145
+ "poprawnie, odznacz tę opcję i wszystko powinno działać."
1146
+
1147
+ #: lib/interface.php:1150
1148
+ msgid "Then adjust the settings for your chosen type:"
1149
+ msgstr "Następnie dopasuj ustawienia w zależności od wybranego typu:"
1150
+
1151
+ #: lib/interface.php:1154
1152
+ msgid "Text color for highlights:"
1153
+ msgstr "Kolor tekstu w podświetleniu:"
1154
+
1155
+ #: lib/interface.php:1156 lib/interface.php:1162
1156
+ msgid "Use HTML color codes (#rgb or #rrggbb)"
1157
+ msgstr "Użyj kodów koloru jak w HTML (#rgb lub #rrggbb)"
1158
+
1159
+ #: lib/interface.php:1160
1160
+ msgid "Background color for highlights:"
1161
+ msgstr "Kolor tła w podświetleniu:"
1162
+
1163
+ #: lib/interface.php:1166
1164
+ msgid "CSS style for highlights:"
1165
+ msgstr "Styl CSS w podświetleniu:"
1166
+
1167
+ #: lib/interface.php:1168
1168
+ msgid ""
1169
+ "You can use any CSS styling here, style will be inserted with a &lt;span&gt;"
1170
+ msgstr ""
1171
+ "Możesz użyć dowolnego ostylowania CSS (będzie dodane wraz z &lt;span&gt;)"
1172
+
1173
+ #: lib/interface.php:1172
1174
+ msgid "CSS class for highlights:"
1175
+ msgstr "Klasa CSS w podświetleniu:"
1176
+
1177
+ #: lib/interface.php:1174
1178
+ msgid ""
1179
+ "Name a class here, search results will be wrapped in a &lt;span&gt; with the "
1180
+ "class"
1181
+ msgstr ""
1182
+ "Jeśli podasz nazwę klasy, zostanie dodana do wyników wyszukiwania wraz z &lt;"
1183
+ "span&gt;"
1184
+
1185
+ #: lib/interface.php:1181 lib/interface.php:1330
1186
+ msgid "Save the options"
1187
+ msgstr "Zapisz ustawienia"
1188
+
1189
+ #: lib/interface.php:1185
1190
+ msgid "Choose post types to index:"
1191
+ msgstr "Wybierz typy wpisów do zaindeksowania:"
1192
+
1193
+ #: lib/interface.php:1190
1194
+ msgid "Type"
1195
+ msgstr "Typ wpisu"
1196
+
1197
+ #: lib/interface.php:1191
1198
+ msgid "Index"
1199
+ msgstr "Indeksowany"
1200
+
1201
+ #: lib/interface.php:1192
1202
+ msgid "Public?"
1203
+ msgstr "Dostępny publicznie?"
1204
+
1205
+ #: lib/interface.php:1209
1206
+ #, php-format
1207
+ msgid "%s"
1208
+ msgstr "%s"
1209
+
1210
+ #: lib/interface.php:1210
1211
+ msgid "yes"
1212
+ msgstr "tak"
1213
+
1214
+ #: lib/interface.php:1210
1215
+ msgid "no"
1216
+ msgstr "nie"
1217
+
1218
+ #: lib/interface.php:1231
1219
+ msgid "Minimum word length to index"
1220
+ msgstr "Minimalna długość indeksowanych słów"
1221
+
1222
+ #: lib/interface.php:1233
1223
+ msgid "Words shorter than this number will not be indexed."
1224
+ msgstr "Słowa o długości krótszej niż określona powyżej nie będą indeksowane."
1225
+
1226
+ #: lib/interface.php:1239
1227
+ msgid "Expand shortcodes in post content:"
1228
+ msgstr "Wykonywanie skrótów w treści wpisów:"
1229
+
1230
+ #: lib/interface.php:1241
1231
+ msgid ""
1232
+ "If checked, Relevanssi will expand shortcodes in post content before "
1233
+ "indexing. Otherwise shortcodes will be stripped. If you use shortcodes to "
1234
+ "include dynamic content, Relevanssi will not keep the index updated, the "
1235
+ "index will reflect the status of the shortcode content at the moment of "
1236
+ "indexing."
1237
+ msgstr ""
1238
+ "Jeśli zostanie zaznaczone, Relevanssi w trakcie indeksowania będzie "
1239
+ "wykonywać skróty zawarte w treści wpisów. W przeciwnym wypadku skróty "
1240
+ "zostaną pominięte. Jeśli używasz skrótów do wstawiania dynamicznie "
1241
+ "generowanej treści, Relevanssi nie będzie w stanie automatycznie "
1242
+ "aktualizować indeksu o tę treść a zawartość indeksu będzie zawierać treść "
1243
+ "wygenerowaną przez dany skrót w momencie indeksowania."
1244
+
1245
+ #: lib/interface.php:1245
1246
+ msgid "Index and search your posts' tags:"
1247
+ msgstr "Indeksowanie i wyszukiwanie tagów:"
1248
+
1249
+ #: lib/interface.php:1247
1250
+ msgid ""
1251
+ "If checked, Relevanssi will also index and search the tags of your posts. "
1252
+ "Remember to rebuild the index if you change this option!"
1253
+ msgstr ""
1254
+ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i wyszukiwać "
1255
+ "tagów znajdujących się we wpisach. Pamiętaj o przebudowaniu indeksu, jeśli "
1256
+ "zmienisz te ustawienia."
1257
+
1258
+ #: lib/interface.php:1251
1259
+ msgid "Index and search your posts' categories:"
1260
+ msgstr "Indeksowanie i wyszukiwanie kategorii:"
1261
+
1262
+ #: lib/interface.php:1253
1263
+ msgid ""
1264
+ "If checked, Relevanssi will also index and search the categories of your "
1265
+ "posts. Category titles will pass through 'single_cat_title' filter. Remember "
1266
+ "to rebuild the index if you change this option!"
1267
+ msgstr ""
1268
+ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i wyszukiwać "
1269
+ "kategorie znajdujące się we wpisach. Tytuły kategorii będą przetwarzane z "
1270
+ "wykorzystaniem filtru single_cat_title'. Pamiętaj o przebudowaniu indeksu, "
1271
+ "jeśli zmienisz te ustawienia."
1272
+
1273
+ #: lib/interface.php:1257
1274
+ msgid "Index and search your posts' authors:"
1275
+ msgstr "Indeksowanie i wyszukiwanie autorów:"
1276
+
1277
+ #: lib/interface.php:1259
1278
+ msgid ""
1279
+ "If checked, Relevanssi will also index and search the authors of your posts. "
1280
+ "Author display name will be indexed. Remember to rebuild the index if you "
1281
+ "change this option!"
1282
+ msgstr ""
1283
+ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i wyszukiwać "
1284
+ "autorów wpisów. Indeksowana będzie wyświetlana nazwa autora. Pamiętaj o "
1285
+ "przebudowaniu indeksu, jeśli zmienisz te ustawienia."
1286
+
1287
+ #: lib/interface.php:1263
1288
+ msgid "Index and search post excerpts:"
1289
+ msgstr "Indeksowanie i wyszukiwanie wypisów:"
1290
+
1291
+ #: lib/interface.php:1265
1292
+ msgid ""
1293
+ "If checked, Relevanssi will also index and search the excerpts of your posts."
1294
+ "Remember to rebuild the index if you change this option!"
1295
+ msgstr ""
1296
+ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i wyszukiwać "
1297
+ "wypisy znajdujące się we wpisach. Pamiętaj o przebudowaniu indeksu, jeśli "
1298
+ "zmienisz te ustawienia."
1299
+
1300
+ #: lib/interface.php:1269
1301
+ msgid "Index and search these comments:"
1302
+ msgstr "Indeksowanie i wyszukiwanie komentarzy:"
1303
+
1304
+ #: lib/interface.php:1271
1305
+ msgid "none"
1306
+ msgstr "brak"
1307
+
1308
+ #: lib/interface.php:1272
1309
+ msgid "normal"
1310
+ msgstr "normalne"
1311
+
1312
+ #: lib/interface.php:1273
1313
+ msgid "all"
1314
+ msgstr "wszystko"
1315
+
1316
+ #: lib/interface.php:1275
1317
+ msgid ""
1318
+ "Relevanssi will index and search ALL (all comments including track- &amp; "
1319
+ "pingbacks and custom comment types), NONE (no comments) or NORMAL (manually "
1320
+ "posted comments on your blog).<br />Remember to rebuild the index if you "
1321
+ "change this option!"
1322
+ msgstr ""
1323
+ "Relevanssi będzie indeksować i wyszukiwać WSZYSTKO (wszystkie komentarze, "
1324
+ "trackbacki, pingbacki oraz własne typy komentarzy), BRAK (żadnych "
1325
+ "komentarzy) lub NORMALNE (ręcznie dodane komentarze).<br />Pamiętaj o "
1326
+ "przebudowaniu indeksu, jeśli zmienisz te ustawienia."
1327
+
1328
+ #: lib/interface.php:1279
1329
+ msgid "Custom fields to index:"
1330
+ msgstr "Indeksowanie własnych pól:"
1331
+
1332
+ #: lib/interface.php:1281
1333
+ msgid ""
1334
+ "A comma-separated list of custom fields to include in the index. Set to "
1335
+ "'visible' to index all visible custom fields and to 'all' to index all "
1336
+ "custom fields, also those starting with a '_' character."
1337
+ msgstr ""
1338
+ "Oddzielona przecinkami lista własnych pól, które mają być uwzględnione w "
1339
+ "indeksie. Ustaw na 'visible', aby indeksować wszystkie widoczne własne pola, "
1340
+ "'all' aby indeksować wszystkie własne pola, także te niewidoczne, "
1341
+ "zaczynające się od znaku '_'."
1342
+
1343
+ #: lib/interface.php:1285
1344
+ msgid "Custom taxonomies to index:"
1345
+ msgstr "Indeksowanie własnych taksonomii:"
1346
+
1347
+ #: lib/interface.php:1287
1348
+ msgid ""
1349
+ "A comma-separated list of custom taxonomy names to include in the index."
1350
+ msgstr ""
1351
+ "Oddzielona przecinkami lista własnych taksonomii, które mają być "
1352
+ "uwzględnione w indeksie."
1353
+
1354
+ #: lib/interface.php:1297
1355
+ msgid "Save indexing options and build the index"
1356
+ msgstr "Zapisz ustawienia indeksowania i przebuduj indeks"
1357
+
1358
+ #: lib/interface.php:1303
1359
+ msgid ""
1360
+ "Warning: In many cases caching is not useful, and in some cases can be even "
1361
+ "harmful. Do not\n"
1362
+ "\tactivate cache unless you have a good reason to do so."
1363
+ msgstr ""
1364
+ "Ostrzeżenie: W wielu wypadkach cachowanie nie jest przydatne, a w niektórych "
1365
+ "przypadkach może być nawet szkodliwe. Nie uaktywniaj cachowania o ile nie "
1366
+ "masz dobrego powodu aby to zrobić."
1367
+
1368
+ #: lib/interface.php:1306
1369
+ msgid "Enable result and excerpt caching:"
1370
+ msgstr "Cachowanie wyników wyszukiwania i wypisów:"
1371
+
1372
+ #: lib/interface.php:1308
1373
+ msgid "If checked, Relevanssi will cache search results and post excerpts."
1374
+ msgstr ""
1375
+ "Jeśli zostanie zaznaczone, Relevanssi będzie cachować wyniki wyszukiwania i "
1376
+ "wypisy."
1377
+
1378
+ #: lib/interface.php:1312
1379
+ msgid "Cache expire (in seconds):"
1380
+ msgstr "Czas trwania cache (w sekundach):"
1381
+
1382
+ #: lib/interface.php:1314
1383
+ msgid "86400 = day"
1384
+ msgstr "86400 = 1 dzień"
1385
+
1386
+ #: lib/interface.php:1318
1387
+ msgid "Entries in the cache"
1388
+ msgstr "Liczba dokumentów w cache:"
1389
+
1390
+ #: lib/interface.php:1322
1391
+ msgid "Clear all caches"
1392
+ msgstr "Wyczyść cache"
1393
+
1394
+ #: lib/interface.php:1328
1395
+ msgid ""
1396
+ "Add synonyms here in 'key = value' format. When searching with the OR "
1397
+ "operator, any search of 'key' will be expanded to include 'value' as well. "
1398
+ "Using phrases is possible. The key-value pairs work in one direction only, "
1399
+ "but you can of course repeat the same pair reversed."
1400
+ msgstr ""
1401
+ "Możesz tu dodać synonimy słów używając formatu 'klucz = wartość'. Jeśli "
1402
+ "stosujesz wyszukiwanie z wykorzystaniem operatora OR, każdy znaleziony "
1403
+ "'klucz' spowoduje równoczesne ujęcie w wynikach każdej z odpowiadających mu "
1404
+ "'wartości'. Dozwolone jest stosowanie zarówno słów jak i całych zdań. Pary "
1405
+ "klucz-wartość działają tylko w jednym kierunku, ale oczywiście możesz "
1406
+ "powtórzyć daną parę zamieniając klucze z wartościami."
1407
+
1408
+ #: lib/interface.php:1351
1409
+ msgid ""
1410
+ "<p>Enter a word here to add it to the list of stopwords. The word will "
1411
+ "automatically be removed from the index, so re-indexing is not necessary. "
1412
+ "You can enter many words at the same time, separate words with commas.</p>"
1413
+ msgstr ""
1414
+ "<p>Wpisz zwrot, który chcesz dodać do listy słów pomijanych. Taki zwrot "
1415
+ "zostanie automatycznie usunięty z indeksu, więc konieczne będzie jego "
1416
+ "przebudowanie. Możesz dodać dowolną liczbę słów, oddzielając je przecinkami."
1417
+ "</p>"
1418
+
1419
+ #: lib/interface.php:1353
1420
+ msgid "Stopword(s) to add: "
1421
+ msgstr "Słowa do dodania:"
1422
+
1423
+ #: lib/interface.php:1354
1424
+ msgid "Add"
1425
+ msgstr "Dodaj "
1426
+
1427
+ #: lib/interface.php:1357
1428
+ msgid ""
1429
+ "<p>Here's a list of stopwords in the database. Click a word to remove it "
1430
+ "from stopwords. Removing stopwords won't automatically return them to index, "
1431
+ "so you need to re-index all posts after removing stopwords to get those "
1432
+ "words back to index."
1433
+ msgstr ""
1434
+ "<p>Jest to lista wszystkich pomijanych słów w bazie danych. Kliknij dane "
1435
+ "słowo aby je usunąć. Usuwanie słów nie powoduje automatycznego przywrócenia "
1436
+ "ich do indeksu, więc konieczne jest jego przebudowanie."
1437
+
1438
+ #: lib/interface.php:1383
1439
+ msgid "Remove all stopwords"
1440
+ msgstr "Usuń wszystkie pomijane słowa"
1441
+
1442
+ #: lib/interface.php:1389
1443
+ msgid ""
1444
+ "Here's a list of stopwords you can use to export the stopwords to another "
1445
+ "blog."
1446
+ msgstr ""
1447
+ "Jest to lista wszystkich pomijanych słów, które można wyeksportować i użyć "
1448
+ "na innej stronie."
1449
+
1450
+ #: lib/uninstall.php:39
1451
+ msgid "Data wiped clean, you can now delete the plugin."
1452
+ msgstr "Wszystkie dane zostały usunięte, możesz teraz usunąć wtycznkę."
relevanssi-ru_RU.mo ADDED
Binary file
relevanssi-ru_RU.po ADDED
@@ -0,0 +1,1392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Relevanssi-ru_RU\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2013-07-24 16:58+0400\n"
6
+ "PO-Revision-Date: \n"
7
+ "Last-Translator: Flector <rlector@gmail.com>\n"
8
+ "Language-Team: Flector <rlector@gmail.com>\n"
9
+ "Language: ru_RU\n"
10
+ "MIME-Version: 1.0\n"
11
+ "Content-Type: text/plain; charset=UTF-8\n"
12
+ "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: .\n"
15
+ "X-Generator: Poedit 1.5.7\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-SearchPath-0: .\n"
18
+
19
+ #: relevanssi.php:296
20
+ msgid "Tag weight:"
21
+ msgstr "Вес меток:"
22
+
23
+ #: relevanssi.php:311
24
+ msgid "Category weight:"
25
+ msgstr "Вес рубрик:"
26
+
27
+ #: lib/excerpts-highlights.php:11
28
+ msgid "There is no excerpt because this is a protected post."
29
+ msgstr "Отсутствует цитата, так как это защищенная запись."
30
+
31
+ #: lib/indexing.php:93
32
+ msgid "Indexing complete!"
33
+ msgstr "Индексирование завершено!"
34
+
35
+ #: lib/init.php:40
36
+ #, php-format
37
+ msgid ""
38
+ "Relevanssi needs attention: Remember to build the index (you can do it at <a "
39
+ "href=\"%1$s\">the\n"
40
+ "\t\t\t settings page</a>), otherwise searching won't work."
41
+ msgstr ""
42
+ "Relevanssi сообщает: Помните, что без построения индекса (для его создания "
43
+ "<a href=\"%1$s\">перейдите\n"
44
+ "\t\t\t на страницу настроек</a>) поиск работать не будет."
45
+
46
+ #: lib/init.php:84 lib/init.php:85
47
+ msgid "User searches"
48
+ msgstr "История поиска"
49
+
50
+ #: lib/interface.php:6
51
+ msgid "Relevanssi Premium Search Options"
52
+ msgstr "Настройки плагина Relevanssi Premium"
53
+
54
+ #: lib/interface.php:9
55
+ msgid "Relevanssi Search Options"
56
+ msgstr "Настройки плагина Relevanssi"
57
+
58
+ #: lib/interface.php:86
59
+ msgid "User Searches"
60
+ msgstr "История поиска"
61
+
62
+ #: lib/interface.php:88
63
+ msgid "Relevanssi User Searches"
64
+ msgstr "Поисковые запросы"
65
+
66
+ #: lib/interface.php:335
67
+ #, php-format
68
+ msgid ""
69
+ "<div id='message' class='updated fade'><p>Successfully added %d/%d terms to "
70
+ "stopwords!</p></div>"
71
+ msgstr ""
72
+ "<div id='message' class='updated fade'><p>Слова %d из %d добавлены в черный "
73
+ "список!</p></div>"
74
+
75
+ #: lib/interface.php:342
76
+ #, php-format
77
+ msgid ""
78
+ "<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></"
79
+ "div>"
80
+ msgstr ""
81
+ "<div id='message' class='updated fade'><p>Слово '%s' добавлено в чёрный "
82
+ "список!</p></div>"
83
+
84
+ #: lib/interface.php:345
85
+ #, php-format
86
+ msgid ""
87
+ "<div id='message' class='updated fade'><p>Couldn't add term '%s' to "
88
+ "stopwords!</p></div>"
89
+ msgstr ""
90
+ "<div id='message' class='updated fade'><p>Не удалось добавить слово '%s' в "
91
+ "черный список!</p></div>"
92
+
93
+ #: lib/interface.php:374
94
+ msgid ""
95
+ "<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-"
96
+ "index.</p></div>"
97
+ msgstr ""
98
+ "<div id='message' class='updated fade'><p>Черный список очищен. Не забудьте "
99
+ "выполнить переиндексацию!</p></div>"
100
+
101
+ #: lib/interface.php:384
102
+ #, php-format
103
+ msgid ""
104
+ "<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! "
105
+ "Re-index to get it back to index.</p></div>"
106
+ msgstr ""
107
+ "<div id='message' class='updated fade'><p>Слово '%s' удалено из черного "
108
+ "списка! Выполните переиндексацию, чтобы включить его обратно в поиск.</p></"
109
+ "div>"
110
+
111
+ #: lib/interface.php:387
112
+ #, php-format
113
+ msgid ""
114
+ "<div id='message' class='updated fade'><p>Couldn't remove term '%s' from "
115
+ "stopwords!</p></div>"
116
+ msgstr ""
117
+ "<div id='message' class='updated fade'><p>Не удалось удалить слово '%s' из "
118
+ "черного списка!</p></div>"
119
+
120
+ #: lib/interface.php:398
121
+ msgid "25 most common words in the index"
122
+ msgstr "25 самых частых слов в индексе"
123
+
124
+ #: lib/interface.php:400
125
+ msgid ""
126
+ "These words are excellent stopword material. A word that appears in most of "
127
+ "the posts in the database is quite pointless when searching. This is also an "
128
+ "easy way to create a completely new stopword list, if one isn't available in "
129
+ "your language. Click the icon after the word to add the word to the stopword "
130
+ "list. The word will also be removed from the index, so rebuilding the index "
131
+ "is not necessary."
132
+ msgstr ""
133
+ "Эти слова необходимо поместить в черный список, так как они не несут "
134
+ "смысловой нагрузки при поиске (частицы, союзы, предлоги и тому подобное). "
135
+ "Кликните на иконку рядом с выбранным словом, чтобы добавить его в черный "
136
+ "список. Переиндексацию при этом делать нет необходимости."
137
+
138
+ #: lib/interface.php:426
139
+ msgid "Add to stopwords"
140
+ msgstr "Добавить в черный список"
141
+
142
+ #: lib/interface.php:437
143
+ msgid "Total Searches"
144
+ msgstr "Общая статистика"
145
+
146
+ #: lib/interface.php:440
147
+ msgid "Totals"
148
+ msgstr "Всего"
149
+
150
+ #: lib/interface.php:445
151
+ msgid "Common Queries"
152
+ msgstr "Частые запросы"
153
+
154
+ #: lib/interface.php:447
155
+ msgid ""
156
+ "Here you can see the 20 most common user search queries, how many times "
157
+ "those \n"
158
+ "\t\tqueries were made and how many results were found for those queries."
159
+ msgstr ""
160
+ "Здесь выведен список из 20 наиболее частых запросов пользователей. Первая "
161
+ "колонка: поисковый запрос. Вторая колонка: сколько раз использовали данный "
162
+ "поисковый запрос. Третья колонка: количество результатов поиска по этому "
163
+ "поисковому запросу."
164
+
165
+ #: lib/interface.php:453 lib/interface.php:469 lib/interface.php:501
166
+ msgid "Today and yesterday"
167
+ msgstr "Сегодня и вчера"
168
+
169
+ #: lib/interface.php:457 lib/interface.php:473 lib/interface.php:502
170
+ msgid "Last 7 days"
171
+ msgstr "За последние 7 дней"
172
+
173
+ #: lib/interface.php:461 lib/interface.php:477 lib/interface.php:503
174
+ msgid "Last 30 days"
175
+ msgstr "За последние 30 дней"
176
+
177
+ #: lib/interface.php:466
178
+ msgid "Unsuccessful Queries"
179
+ msgstr "Неудачные запросы"
180
+
181
+ #: lib/interface.php:484
182
+ msgid "Reset Logs"
183
+ msgstr "Обнуление логов"
184
+
185
+ #: lib/interface.php:487
186
+ #, php-format
187
+ msgid "To reset the logs, type \"reset\" into the box here %s and click %s"
188
+ msgstr "Чтобы обнулить логи наберите слово \"reset\" в этом поле: %s %s"
189
+
190
+ #: lib/interface.php:504
191
+ msgid "Forever"
192
+ msgstr "За все время"
193
+
194
+ #: lib/interface.php:506
195
+ msgid "When"
196
+ msgstr "Когда"
197
+
198
+ #: lib/interface.php:506
199
+ msgid "Searches"
200
+ msgstr "Поиски"
201
+
202
+ #: lib/interface.php:536
203
+ msgid "Query"
204
+ msgstr "Запрос"
205
+
206
+ #: lib/interface.php:536
207
+ msgid "Hits"
208
+ msgstr "Найдено"
209
+
210
+ #: lib/interface.php:846 lib/interface.php:891
211
+ msgid "Basic options"
212
+ msgstr "Основные настройки"
213
+
214
+ #: lib/interface.php:847 lib/interface.php:957
215
+ msgid "Weights"
216
+ msgstr "Важность"
217
+
218
+ #: lib/interface.php:848 lib/interface.php:1012
219
+ msgid "Logs"
220
+ msgstr "Логи"
221
+
222
+ #: lib/interface.php:849 lib/interface.php:1041
223
+ msgid "Exclusions and restrictions"
224
+ msgstr "Исключения и ограничения"
225
+
226
+ #: lib/interface.php:850
227
+ msgid "Custom excerpts"
228
+ msgstr "Свои цитаты"
229
+
230
+ #: lib/interface.php:851
231
+ msgid "Highlighting search results"
232
+ msgstr "Подсветка результатов поиска"
233
+
234
+ #: lib/interface.php:852 lib/interface.php:1187
235
+ msgid "Indexing options"
236
+ msgstr "Настройки индексирования"
237
+
238
+ #: lib/interface.php:853 lib/interface.php:1335
239
+ msgid "Caching"
240
+ msgstr "Кэширование"
241
+
242
+ #: lib/interface.php:854 lib/interface.php:1358
243
+ msgid "Synonyms"
244
+ msgstr "Синонимы"
245
+
246
+ #: lib/interface.php:855 lib/interface.php:1366
247
+ msgid "Stopwords"
248
+ msgstr "Черный список"
249
+
250
+ #: lib/interface.php:858
251
+ msgid "Import/export options"
252
+ msgstr "Импорт/Экспорт настроек"
253
+
254
+ #: lib/interface.php:861
255
+ msgid "Buy Relevanssi Premium"
256
+ msgstr "Купить Relevanssi Premium"
257
+
258
+ #: lib/interface.php:866
259
+ msgid "Quick tools"
260
+ msgstr "Быстрый старт"
261
+
262
+ #: lib/interface.php:868
263
+ msgid "Save options"
264
+ msgstr "Сохранить настройки"
265
+
266
+ #: lib/interface.php:869
267
+ msgid "Build the index"
268
+ msgstr "Создать индекс"
269
+
270
+ #: lib/interface.php:870 lib/interface.php:1333
271
+ msgid "Continue indexing"
272
+ msgstr "Продолжить индексирование"
273
+
274
+ #: lib/interface.php:870
275
+ msgid "add"
276
+ msgstr "добавить"
277
+
278
+ #: lib/interface.php:870
279
+ msgid "documents."
280
+ msgstr "документ(ов)."
281
+
282
+ #: lib/interface.php:874
283
+ msgid ""
284
+ "WARNING: You've chosen no post types to index. Nothing will be indexed. <a "
285
+ "href='#indexing'>Choose some post types to index</a>."
286
+ msgstr ""
287
+ "ВНИМАНИЕ: Вы не выбрали ни один тип записей для включения в поисковый "
288
+ "индекс, поэтому нечего индексировать. <a href='#indexing'>Выбрать типы "
289
+ "записей для включения в индекс</a>."
290
+
291
+ #: lib/interface.php:878
292
+ msgid ""
293
+ "Use 'Build the index' to build the index with current <a "
294
+ "href='#indexing'>indexing options</a>. If you can't finish indexing with one "
295
+ "go, use 'Continue indexing' to finish the job. You can change the number of "
296
+ "documents to add until you find the largest amount you can add with one go. "
297
+ "See 'State of the Index' below to find out how many documents actually go "
298
+ "into the index."
299
+ msgstr ""
300
+ "Используйте кнопку <strong>Создать индекс</strong> для построения поискового "
301
+ "индекса на основе выбранных <a href='#indexing'>настроек индексирования</a>. "
302
+ "Если индексирование не будет завершено за один проход, то нажмите кнопку "
303
+ "<strong>Продолжить индексирование</strong> для завершения процесса. Вы "
304
+ "можете самостоятельно контролировать число документов, обрабатываемых за "
305
+ "один раз, указав нужное значение в текстовом поле. <strong>Состояние "
306
+ "индекса</strong> показывает, сколько документов уже проиндексировано."
307
+
308
+ #: lib/interface.php:880
309
+ msgid ""
310
+ "If Relevanssi doesn't index anything and you have upgraded from a 2.x "
311
+ "version, it's likely the changes in\n"
312
+ "\tthe database structure haven't gone through in the upgrade. In that case "
313
+ "all you need to do is to deactivate the\n"
314
+ "\tplugin and then activate it again."
315
+ msgstr ""
316
+ "При апгрейде с версий 2.x плагина вам необходимо деактивировать и заново "
317
+ "активировать плагин. В противном случае, плагин не сможет построить "
318
+ "поисковый индекс."
319
+
320
+ #: lib/interface.php:884
321
+ msgid "State of the Index"
322
+ msgstr "Состояние индекса"
323
+
324
+ #: lib/interface.php:886
325
+ msgid "Documents in the index"
326
+ msgstr "Документов в индексе"
327
+
328
+ #: lib/interface.php:887
329
+ msgid "Terms in the index"
330
+ msgstr "Слов в индексе"
331
+
332
+ #: lib/interface.php:888
333
+ msgid "Highest post ID indexed"
334
+ msgstr "ID последней проиндексированной записи"
335
+
336
+ #: lib/interface.php:897
337
+ msgid "Use search for admin:"
338
+ msgstr "Админ. панель"
339
+
340
+ #: lib/interface.php:899
341
+ msgid "If checked, Relevanssi will be used for searches in the admin interface"
342
+ msgstr ""
343
+ "Если выбрано, то Relevanssi заменит собой стандартный поиск в админ. панели."
344
+
345
+ #: lib/interface.php:903
346
+ msgid "Default operator for the search?"
347
+ msgstr "Как обрабатывать поисковый запрос?"
348
+
349
+ #: lib/interface.php:905
350
+ msgid "AND - require all terms"
351
+ msgstr "И - искать все слова"
352
+
353
+ #: lib/interface.php:906
354
+ msgid "OR - any term present is enough"
355
+ msgstr "ИЛИ - достаточно присутствия любого слова"
356
+
357
+ #: lib/interface.php:908
358
+ msgid ""
359
+ "If you choose AND and the search finds no matches, it will automatically do "
360
+ "an OR search."
361
+ msgstr ""
362
+ "Если поиск с условием \"И\" не даст результата, то автоматически будет "
363
+ "произведен поиск с условием \"ИЛИ\"."
364
+
365
+ #: lib/interface.php:912
366
+ msgid "Disable OR fallback:"
367
+ msgstr "Отключить замену на ИЛИ:"
368
+
369
+ #: lib/interface.php:914
370
+ msgid ""
371
+ "If you don't want Relevanssi to fall back to OR search when AND search gets "
372
+ "no hits, check this option. For most cases, leave this one unchecked."
373
+ msgstr ""
374
+ "Если поиск с оператором \"И\" не даст результатов, то плагин не будет "
375
+ "производить поиск с оператором \"ИЛИ\"."
376
+
377
+ #: lib/interface.php:918
378
+ msgid "Default order for results:"
379
+ msgstr "Сортировка результатов:"
380
+
381
+ #: lib/interface.php:920
382
+ msgid "Relevance (highly recommended)"
383
+ msgstr "По релевантности (рекомендуется)"
384
+
385
+ #: lib/interface.php:921
386
+ msgid "Post date"
387
+ msgstr "По дате публикации"
388
+
389
+ #: lib/interface.php:923
390
+ msgid ""
391
+ "If you want date-based results, see the recent post bonus in the Weights "
392
+ "section."
393
+ msgstr ""
394
+ "Если вы хотите, чтобы в результатах поиска приоритет отдавался новым "
395
+ "статьям, то задайте им нужный вес в секции <a href='#weights'>Важность</a> "
396
+ "(только в Premium версии плагина)."
397
+
398
+ #: lib/interface.php:927
399
+ msgid "When to use fuzzy matching?"
400
+ msgstr "Когда использовать нечеткое соответствие?"
401
+
402
+ #: lib/interface.php:929
403
+ msgid "When straight search gets no hits"
404
+ msgstr "Когда точные совпадения не найдены"
405
+
406
+ #: lib/interface.php:930
407
+ msgid "Always"
408
+ msgstr "Всегда"
409
+
410
+ #: lib/interface.php:931
411
+ msgid "Don't use fuzzy search"
412
+ msgstr "Не использовать"
413
+
414
+ #: lib/interface.php:933
415
+ msgid ""
416
+ "Straight search matches just the term. Fuzzy search matches everything that "
417
+ "begins or ends with the search term."
418
+ msgstr ""
419
+ "Точное соответствие проверяет слово целиком, а нечеткое соответствие ищет "
420
+ "совпадения в начале и конце слов."
421
+
422
+ #: lib/interface.php:941
423
+ msgid "Limit searches:"
424
+ msgstr "Ограничение результатов:"
425
+
426
+ #: lib/interface.php:943
427
+ msgid ""
428
+ "If this option is checked, Relevanssi will limit search results to at most "
429
+ "500 results per term. This will improve performance, but may cause some "
430
+ "relevant documents to go unfound. However, Relevanssi tries to prioritize "
431
+ "the most relevant documents. <strong>This does not work well when sorting "
432
+ "results by date.</strong> The throttle can end up cutting off recent posts "
433
+ "to favour more relevant posts."
434
+ msgstr ""
435
+ "При включении данной опции плагин не будет искать более 500 результатов на "
436
+ "один поисковый запрос. Включение данной опции улучшает производительность, "
437
+ "но часть релевантных документов может быть упущена."
438
+
439
+ #: lib/interface.php:947
440
+ msgid "Limit:"
441
+ msgstr "Лимит:"
442
+
443
+ #: lib/interface.php:949
444
+ msgid ""
445
+ "For better performance, adjust the limit to a smaller number. Adjusting the "
446
+ "limit to 100 - or even lower - should be safe for good results, and might "
447
+ "bring a boost in search speed."
448
+ msgstr ""
449
+ "Чем меньше число, тем выше производительность поиска. При лимите в 100 (или "
450
+ "даже меньше) результатов поиска можно сохранить приемлимые результаты выдачи "
451
+ "при хорошей скорости поиска."
452
+
453
+ #: lib/interface.php:959
454
+ msgid ""
455
+ "These values affect the weights of the documents. These are all multipliers, "
456
+ "so 1 means no change in weight, less than 1 means less weight, and more than "
457
+ "1 means more weight. Setting something to zero makes that worthless. For "
458
+ "example, if title weight is more than 1, words in titles are more "
459
+ "significant than words elsewhere. If title weight is 0, words in titles "
460
+ "won't make any difference to the search results."
461
+ msgstr ""
462
+ "В этом разделе вы можете указать вес (приоритет, важность) различным "
463
+ "элементам сайта. Чем выше вес - тем значимей данный элемент и тем больше "
464
+ "шансов у страницы с этим элементом оказаться среди первых результатов "
465
+ "поиска. На практике это значит, что если в заголовке записи есть искомое "
466
+ "слово, а у заголовка установлен вес в 5 единиц, то практически наверняка эта "
467
+ "запись будет первой среди других результатов поиска (если, конечно, другие "
468
+ "записи тоже не содержат в заголовке искомое слово)."
469
+
470
+ #: lib/interface.php:964
471
+ msgid "Element"
472
+ msgstr "Элемент"
473
+
474
+ #: lib/interface.php:965
475
+ msgid "Weight"
476
+ msgstr "Вес"
477
+
478
+ #: lib/interface.php:966
479
+ msgid "Default weight"
480
+ msgstr "Вес по умолчанию"
481
+
482
+ #: lib/interface.php:971
483
+ msgid "Post titles"
484
+ msgstr "Вес заголовков"
485
+
486
+ #: lib/interface.php:983
487
+ msgid "Comment text"
488
+ msgstr "Вес комментариев"
489
+
490
+ #: lib/interface.php:1004
491
+ msgid "WPML compatibility"
492
+ msgstr "WPML совместимость"
493
+
494
+ #: lib/interface.php:1006
495
+ msgid "Limit results to current language:"
496
+ msgstr "Ограничить результаты для текущего языка:"
497
+
498
+ #: lib/interface.php:1008
499
+ msgid ""
500
+ "If this option is checked, Relevanssi will only return results in the "
501
+ "current active language. Otherwise results will include posts in every "
502
+ "language."
503
+ msgstr ""
504
+ "Если опция включена, то Relevanssi будет возвращать результаты только для "
505
+ "текущего языка блога."
506
+
507
+ #: lib/interface.php:1014
508
+ msgid "Keep a log of user queries:"
509
+ msgstr "Записывать поисковые запросы пользователей:"
510
+
511
+ #: lib/interface.php:1016
512
+ msgid ""
513
+ "If checked, Relevanssi will log user queries. The log appears in 'User "
514
+ "searches' on the Dashboard admin menu."
515
+ msgstr ""
516
+ "Если опция включена, то Relevanssi будет записывать все поисковые запросы "
517
+ "пользователей. Найти их можно будет по ссылке \"История поиска\" в разделе "
518
+ "\"Консоль\" ."
519
+
520
+ #: lib/interface.php:1020
521
+ msgid "Log the user's IP with the queries:"
522
+ msgstr "Записывать IP пользователей"
523
+
524
+ #: lib/interface.php:1022
525
+ msgid "If checked, Relevanssi will log user's IP-Adress with the queries."
526
+ msgstr ""
527
+ "Если опция включена, то Relevanssi будет записывать IP пользователей вместе "
528
+ "с их поисковыми запросами."
529
+
530
+ #: lib/interface.php:1026
531
+ msgid "Don't log queries from these users:"
532
+ msgstr "Не записывать поисковые запросы этих пользователей:"
533
+
534
+ #: lib/interface.php:1028
535
+ msgid ""
536
+ "Comma-separated list of numeric user IDs or user login names that will not "
537
+ "be logged."
538
+ msgstr ""
539
+ "Введите через запятую ID или логины пользователей, чьи запросы не надо "
540
+ "записывать в журнал."
541
+
542
+ #: lib/interface.php:1032
543
+ msgid ""
544
+ "If you enable logs, you can see what your users are searching for. You can "
545
+ "prevent your own searches from getting in the logs with the omit feature."
546
+ msgstr ""
547
+ "Если вы включите запись поисковых запросов пользователей, то сможете "
548
+ "увидеть, что они ищут на вашем сайте. Вы можете исключить из логов свои "
549
+ "собственные поисковые запросы."
550
+
551
+ #: lib/interface.php:1035
552
+ msgid ""
553
+ "If you enable logs, you can see what your users are searching for. Logs are "
554
+ "also needed to use the 'Did you mean?' feature. You can prevent your own "
555
+ "searches from getting in the logs with the omit feature."
556
+ msgstr ""
557
+ "Если вы включите запись поисковых запросов пользователей, то сможете "
558
+ "увидеть, что они ищут на вашем сайте. Запись поисковых запросов также "
559
+ "необходима для использования функции \"Возможно, вы имели в виду:\". Вы "
560
+ "можете исключить из логов свои собственные поисковые запросы."
561
+
562
+ #: lib/interface.php:1043
563
+ msgid "Restrict search to these categories and tags:"
564
+ msgstr "Искать только среди этих рубрик и меток:"
565
+
566
+ #: lib/interface.php:1045
567
+ msgid ""
568
+ "Enter a comma-separated list of category and tag IDs to restrict search to "
569
+ "those categories or tags. You can also use <code>&lt;input type='hidden' "
570
+ "name='cats' value='list of cats and tags' /&gt;</code> in your search form. "
571
+ "The input field will \toverrun this setting."
572
+ msgstr ""
573
+ "Введите через запятую ID рубрик и меток, чтобы поиск велся только по ним. "
574
+
575
+ #: lib/interface.php:1049
576
+ msgid "Exclude these categories and tags from search:"
577
+ msgstr "Исключить из поиска эти рубрики и метки:"
578
+
579
+ #: lib/interface.php:1051
580
+ msgid ""
581
+ "Enter a comma-separated list of category and tag IDs that are excluded from "
582
+ "search results. You can exclude categories with the 'cat' input field by "
583
+ "using negative values."
584
+ msgstr ""
585
+ "Введите через запятую ID рубрик и меток, которые необходимо исключить из "
586
+ "результатов поиска. "
587
+
588
+ #: lib/interface.php:1055
589
+ msgid "Exclude these posts/pages from search:"
590
+ msgstr "Исключить эти записи/страницы из поиска:"
591
+
592
+ #: lib/interface.php:1059
593
+ msgid ""
594
+ "Enter a comma-separated list of post/page IDs that are excluded from search "
595
+ "results. This only works here, you can't use the input field option "
596
+ "(WordPress doesn't pass custom parameters there). You can also use a "
597
+ "checkbox on post/page edit pages to remove posts from index."
598
+ msgstr ""
599
+ "Введите через запятую ID записей/страниц, которые необходимо исключить из "
600
+ "результатов поиска. Также вы можете использовать для этого чекбокс на "
601
+ "странице редактирования записи/страницы."
602
+
603
+ #: lib/interface.php:1062
604
+ msgid ""
605
+ "Enter a comma-separated list of post/page IDs that are excluded from search "
606
+ "results. This only works here, you can't use the input field option "
607
+ "(WordPress doesn't pass custom parameters there)."
608
+ msgstr ""
609
+ "Введите через запятую ID записей/страниц, которые необходимо исключить из "
610
+ "результатов поиска."
611
+
612
+ #: lib/interface.php:1068
613
+ msgid "Respect exclude_from_search for custom post types:"
614
+ msgstr "Учитывать <i>exclude_from_search</i> в произвольных типах записей:"
615
+
616
+ #: lib/interface.php:1070
617
+ msgid ""
618
+ "If checked, Relevanssi won't display posts of custom post types that have "
619
+ "'exclude_from_search' set to true. If not checked, Relevanssi will display "
620
+ "anything that is indexed."
621
+ msgstr ""
622
+ "Если опция включена, то Relevanssi не будет показывать записи произвольных "
623
+ "типов, в которых значение 'exclude_from_search' равно true. Если опция "
624
+ "отключена, то Relevanssi будет показывать все проиндексированные записи."
625
+
626
+ #: lib/interface.php:1072
627
+ msgid "Custom excerpts/snippets"
628
+ msgstr "Свои цитаты/сниппеты "
629
+
630
+ #: lib/interface.php:1074
631
+ msgid "Create custom search result snippets:"
632
+ msgstr "Создавать свои цитаты для результатов поиска:"
633
+
634
+ #: lib/interface.php:1076
635
+ msgid ""
636
+ "If checked, Relevanssi will create excerpts that contain the search term "
637
+ "hits. To make them work, make sure your search result template uses "
638
+ "the_excerpt() to display post excerpts."
639
+ msgstr ""
640
+ "Если опция включена, то Relevanssi будет создавать свои цитаты, содержащие "
641
+ "искомый запрос. Данная опция будет работать только, если в теме блога в "
642
+ "файле search.php используется функция the_excerpt для вывода цитат записей."
643
+
644
+ #: lib/interface.php:1078
645
+ msgid ""
646
+ "Note: Building custom excerpts can be slow. If you are not actually using "
647
+ "the excerpts, make sure you disable the option."
648
+ msgstr ""
649
+ "Примечание: создание своих цитат может быть очень медленным. Если вы в своей "
650
+ "теме блога не используете вывод цитат, то вам лучше отключить данную опцию."
651
+
652
+ #: lib/interface.php:1080
653
+ msgid "Length of the snippet:"
654
+ msgstr "Длина цитаты:"
655
+
656
+ #: lib/interface.php:1083
657
+ msgid "characters"
658
+ msgstr "символов"
659
+
660
+ #: lib/interface.php:1084
661
+ msgid "words"
662
+ msgstr "слов"
663
+
664
+ #: lib/interface.php:1086
665
+ msgid "This must be an integer."
666
+ msgstr "Значение должно быть целым числом."
667
+
668
+ #: lib/interface.php:1090
669
+ msgid "Allowable tags in excerpts:"
670
+ msgstr "Разрешенные теги:"
671
+
672
+ #: lib/interface.php:1093
673
+ msgid ""
674
+ "List all tags you want to allow in excerpts, without any whitespace. For "
675
+ "example: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
676
+ msgstr ""
677
+ "Список тегов, которые не будут вырезаться парсером из цитат. Указывать без "
678
+ "пробелов и запятых, например: '&lt;p&gt;&lt;a&gt;&lt;strong&gt;'."
679
+
680
+ #: lib/interface.php:1097
681
+ msgid "Show breakdown of search hits in excerpts:"
682
+ msgstr "Показывать выдержку с числом совпадений: "
683
+
684
+ #: lib/interface.php:1099
685
+ msgid ""
686
+ "Check this to show more information on where the search hits were made. "
687
+ "Requires custom snippets to work."
688
+ msgstr ""
689
+ "Включите эту опцию, чтобы вывести в своей цитате выдержку с числом поисковых "
690
+ "совпадений."
691
+
692
+ #: lib/interface.php:1103
693
+ msgid "The breakdown format:"
694
+ msgstr "Шаблон выдержки:"
695
+
696
+ #: lib/interface.php:1105
697
+ msgid ""
698
+ "Use %body%, %title%, %tags% and %comments% to display the number of hits (in "
699
+ "different parts of the post), %total% for total hits, %score% to display the "
700
+ "document weight and %terms% to show how many hits each search term got. No "
701
+ "double quotes (\") allowed!"
702
+ msgstr ""
703
+ "Используйте %body%, %title%, %tags% и %comments% для вывода числа поисковых "
704
+ "совпадений (в различных частях записи), %total% для общего числа поисковых "
705
+ "совпадений, %score% для отображения веса элемента и %terms% для вывода числа "
706
+ "переходов на каждое поисковое слово. Нельзя использовать кавычки вида "
707
+ "\" (знаки дюйма)!"
708
+
709
+ #: lib/interface.php:1107
710
+ msgid "Search hit highlighting"
711
+ msgstr "Подсветка совпадений в результатах поиска"
712
+
713
+ #: lib/interface.php:1109
714
+ msgid "First, choose the type of highlighting used:"
715
+ msgstr "Сначала выберите используемый тип подсветки:"
716
+
717
+ #: lib/interface.php:1112
718
+ msgid "Highlight query terms in search results:"
719
+ msgstr "Тип подсветки:"
720
+
721
+ #: lib/interface.php:1114
722
+ msgid "No highlighting"
723
+ msgstr "Без подсветки"
724
+
725
+ #: lib/interface.php:1118
726
+ msgid "Text color"
727
+ msgstr "Цвет текста"
728
+
729
+ #: lib/interface.php:1119
730
+ msgid "Background color"
731
+ msgstr "Цвет фона"
732
+
733
+ #: lib/interface.php:1120
734
+ msgid "CSS Style"
735
+ msgstr "Стиль CSS"
736
+
737
+ #: lib/interface.php:1121
738
+ msgid "CSS Class"
739
+ msgstr "Класс CSS"
740
+
741
+ #: lib/interface.php:1123
742
+ msgid "Highlighting isn't available unless you use custom snippets"
743
+ msgstr ""
744
+ "Подсветка в тексте цитат будет работать только при использовании своих цитат."
745
+
746
+ #: lib/interface.php:1127
747
+ msgid "Highlight query terms in result titles too:"
748
+ msgstr "Подсвечивать совпадения в заголовках записей:"
749
+
750
+ #: lib/interface.php:1133
751
+ msgid "Highlight query terms in documents from local searches:"
752
+ msgstr "Подсвечивать совпадения в записях:"
753
+
754
+ #: lib/interface.php:1135
755
+ msgid ""
756
+ "Highlights hits when user opens the post from search results. This is based "
757
+ "on HTTP referrer, so if that's blocked, there'll be no highlights."
758
+ msgstr ""
759
+ "Подсвечивать совпадения, если пользователь открывает запись со страницы с "
760
+ "результатами поиска. Не будет работать, если передача HTTP referrer у "
761
+ "пользователя запрещена."
762
+
763
+ #: lib/interface.php:1141
764
+ msgid "Highlight query terms in comments:"
765
+ msgstr "Подсвечивать совпадения в комментариях:"
766
+
767
+ #: lib/interface.php:1143
768
+ msgid ""
769
+ "Highlights hits in comments when user opens the post from search results."
770
+ msgstr ""
771
+ "Подсвечивать совпадения в комментариях, если пользователь открывает запись "
772
+ "со страницы с результатами поиска. Не будет работать, если передача HTTP "
773
+ "referrer у пользователя запрещена."
774
+
775
+ #: lib/interface.php:1147
776
+ msgid "Uncheck this if you use non-ASCII characters:"
777
+ msgstr "Снимите галку, если вы используете не ASCII символы."
778
+
779
+ #: lib/interface.php:1149
780
+ msgid ""
781
+ "If you use non-ASCII characters (like Cyrillic alphabet) and the highlights "
782
+ "don't work, uncheck this option to make highlights work."
783
+ msgstr "Для русского языка отключение данной опции обязательно!"
784
+
785
+ #: lib/interface.php:1154
786
+ msgid "Then adjust the settings for your chosen type:"
787
+ msgstr "Теперь укажите параметры выбранного типа подсветки:"
788
+
789
+ #: lib/interface.php:1158
790
+ msgid "Text color for highlights:"
791
+ msgstr "Цвет текста для подсветки:"
792
+
793
+ #: lib/interface.php:1160 lib/interface.php:1166
794
+ msgid "Use HTML color codes (#rgb or #rrggbb)"
795
+ msgstr "Используйте цвета в кодах HTML (#rgb или #rrggbb)"
796
+
797
+ #: lib/interface.php:1164
798
+ msgid "Background color for highlights:"
799
+ msgstr "Цвет фона подсветки:"
800
+
801
+ #: lib/interface.php:1170
802
+ msgid "CSS style for highlights:"
803
+ msgstr "Стиль CSS для подсветки:"
804
+
805
+ #: lib/interface.php:1172
806
+ msgid ""
807
+ "You can use any CSS styling here, style will be inserted with a &lt;span&gt;"
808
+ msgstr ""
809
+ "Вы можете использовать любую CSS-стилизацию. Стиль будет обернут с помощью "
810
+ "тегов &lt;span&gt;."
811
+
812
+ #: lib/interface.php:1176
813
+ msgid "CSS class for highlights:"
814
+ msgstr "Класс CSS для подсветки:"
815
+
816
+ #: lib/interface.php:1178
817
+ msgid ""
818
+ "Name a class here, search results will be wrapped in a &lt;span&gt; with the "
819
+ "class"
820
+ msgstr ""
821
+ "Укажите имя класса CSS для элемента &lt;span&gt;, который будет "
822
+ "использоваться для подсветки результата поиска."
823
+
824
+ #: lib/interface.php:1185 lib/interface.php:1364
825
+ msgid "Save the options"
826
+ msgstr "Сохранить настройки"
827
+
828
+ #: lib/interface.php:1189
829
+ msgid "Choose post types to index:"
830
+ msgstr "Выберите типы записей для индексирования:"
831
+
832
+ #: lib/interface.php:1194
833
+ msgid "Type"
834
+ msgstr "Тип"
835
+
836
+ #: lib/interface.php:1195 lib/interface.php:1241
837
+ msgid "Index"
838
+ msgstr "Индекс"
839
+
840
+ #: lib/interface.php:1196 lib/interface.php:1242
841
+ msgid "Public?"
842
+ msgstr "Открыт?"
843
+
844
+ #: lib/interface.php:1213 lib/interface.php:1256
845
+ #, php-format
846
+ msgid "%s"
847
+ msgstr "%s"
848
+
849
+ #: lib/interface.php:1214 lib/interface.php:1257
850
+ msgid "yes"
851
+ msgstr "да"
852
+
853
+ #: lib/interface.php:1214 lib/interface.php:1257
854
+ msgid "no"
855
+ msgstr "нет"
856
+
857
+ #: lib/interface.php:1235
858
+ msgid "Choose taxonomies to index:"
859
+ msgstr "Выберите таксономии для индексирования:"
860
+
861
+ #: lib/interface.php:1240
862
+ msgid "Taxonomy"
863
+ msgstr "Таксономия"
864
+
865
+ #: lib/interface.php:1277
866
+ msgid ""
867
+ "If you check a taxonomy here, the terms for that taxonomy are indexed with "
868
+ "the posts. If you for example choose \"post_tag\", searching for tags will "
869
+ "find all posts that have the tag."
870
+ msgstr ""
871
+ "Если вы выбрали таксономии, то термины этих таксономий будут "
872
+ "проиндексированы вместе с записями. Например, при поиске \"метка_записи\" "
873
+ "будут найдены все записи с данной меткой."
874
+
875
+ #: lib/interface.php:1281
876
+ msgid "Minimum word length to index"
877
+ msgstr "Минимальная длина слов для включения в индекс"
878
+
879
+ #: lib/interface.php:1283
880
+ msgid "Words shorter than this number will not be indexed."
881
+ msgstr ""
882
+ "Слова, которые короче указанного значения будут проигнорированы при "
883
+ "построении индекса. Для русского языка (UTF-8) необходимо увеличить данное "
884
+ "число в 2 раза (из-за особенностей кодировки)."
885
+
886
+ #: lib/interface.php:1289
887
+ msgid "Expand shortcodes in post content:"
888
+ msgstr "Выполнять шорткоды в тексте записей:"
889
+
890
+ #: lib/interface.php:1291
891
+ msgid ""
892
+ "If checked, Relevanssi will expand shortcodes in post content before "
893
+ "indexing. Otherwise shortcodes will be stripped. If you use shortcodes to "
894
+ "include dynamic content, Relevanssi will not keep the index updated, the "
895
+ "index will reflect the status of the shortcode content at the moment of "
896
+ "indexing."
897
+ msgstr ""
898
+ "Если опция включена, то Relevanssi будет выполнять выполнять шорткоды в "
899
+ "тексте записей перед тем, как провести индексирование. В противном случае "
900
+ "содержимое шорткодов будет исключено из поискового индекса. Если вы "
901
+ "используете шорткоды с динамическим контентом, то Relevanssi сохранит в "
902
+ "индексе только ту информацию, которая была там в момент индексирования."
903
+
904
+ #: lib/interface.php:1297
905
+ msgid "Index and search your posts' authors:"
906
+ msgstr "Индексировать и искать авторов:"
907
+
908
+ #: lib/interface.php:1299
909
+ msgid ""
910
+ "If checked, Relevanssi will also index and search the authors of your posts. "
911
+ "Author display name will be indexed. Remember to rebuild the index if you "
912
+ "change this option!"
913
+ msgstr ""
914
+ "Если опция включена, то Relevanssi будет индексировать и искать авторов "
915
+ "записей (будут проиндексированы отображаемые имена авторов). Не забудьте "
916
+ "произвести переиндексацию при изменении данной опции!"
917
+
918
+ #: lib/interface.php:1303
919
+ msgid "Index and search post excerpts:"
920
+ msgstr "Индексировать и искать в цитатах:"
921
+
922
+ #: lib/interface.php:1305
923
+ msgid ""
924
+ "If checked, Relevanssi will also index and search the excerpts of your posts."
925
+ "Remember to rebuild the index if you change this option!"
926
+ msgstr ""
927
+ "Если опция включена, то Relevanssi будет индексировать и искать в цитатах "
928
+ "записей. Не забудьте произвести переиндексацию при изменении данной опции!"
929
+
930
+ #: lib/interface.php:1309
931
+ msgid "Index and search these comments:"
932
+ msgstr "Индексировать и искать в комментариях:"
933
+
934
+ #: lib/interface.php:1311
935
+ msgid "none"
936
+ msgstr "нет"
937
+
938
+ #: lib/interface.php:1312
939
+ msgid "normal"
940
+ msgstr "обычно"
941
+
942
+ #: lib/interface.php:1313
943
+ msgid "all"
944
+ msgstr "все"
945
+
946
+ #: lib/interface.php:1315
947
+ msgid ""
948
+ "Relevanssi will index and search ALL (all comments including track- &amp; "
949
+ "pingbacks and custom comment types), NONE (no comments) or NORMAL (manually "
950
+ "posted comments on your blog).<br />Remember to rebuild the index if you "
951
+ "change this option!"
952
+ msgstr ""
953
+ "Relevanssi будет индексировать и искать по комментариям в зависимости от "
954
+ "выбранной опции: НЕТ (не искать), ОБЫЧНО (учитываются только комментарии от "
955
+ "пользователей), ВСЕ (учитываются все комментарии, включая обратные ссылки и "
956
+ "уведомления). Не забудьте произвести переиндексацию при изменении данной "
957
+ "опции!"
958
+
959
+ #: lib/interface.php:1319
960
+ msgid "Custom fields to index:"
961
+ msgstr "Произвольные поля для индексирования:"
962
+
963
+ #: lib/interface.php:1321
964
+ msgid ""
965
+ "A comma-separated list of custom fields to include in the index. Set to "
966
+ "'visible' to index all visible custom fields and to 'all' to index all "
967
+ "custom fields, also those starting with a '_' character."
968
+ msgstr ""
969
+ "Перечислите через запятую произвольные поля, которые необходимо "
970
+ "проиндексировать. Введите 'visible' для индексирования всех видимых "
971
+ "произвольных полей или 'all' - для индексирования всех полей, включая "
972
+ "невидимые (начинающиеся с символа '_')."
973
+
974
+ #: lib/interface.php:1331
975
+ msgid "Save indexing options and build the index"
976
+ msgstr "Сохранить настройки и создать индекс"
977
+
978
+ #: lib/interface.php:1337
979
+ msgid ""
980
+ "Warning: In many cases caching is not useful, and in some cases can be even "
981
+ "harmful. Do not\n"
982
+ "\tactivate cache unless you have a good reason to do so."
983
+ msgstr ""
984
+ "Внимание: в большинстве случаев кэширование может работать некорректно. Не "
985
+ "используйте его без серьезных на то причин."
986
+
987
+ #: lib/interface.php:1340
988
+ msgid "Enable result and excerpt caching:"
989
+ msgstr "Включить кэширование:"
990
+
991
+ #: lib/interface.php:1342
992
+ msgid "If checked, Relevanssi will cache search results and post excerpts."
993
+ msgstr ""
994
+ "Если опция включена, то Relevanssi будет будет кэшировать результаты "
995
+ "поисковых запросов."
996
+
997
+ #: lib/interface.php:1346
998
+ msgid "Cache expire (in seconds):"
999
+ msgstr "Время жизни кэша (в секундах):"
1000
+
1001
+ #: lib/interface.php:1348
1002
+ msgid "86400 = day"
1003
+ msgstr "86400 = день"
1004
+
1005
+ #: lib/interface.php:1352
1006
+ msgid "Entries in the cache"
1007
+ msgstr "Записей в кэше"
1008
+
1009
+ #: lib/interface.php:1356
1010
+ msgid "Clear all caches"
1011
+ msgstr "Очистить кэш"
1012
+
1013
+ #: lib/interface.php:1362
1014
+ msgid ""
1015
+ "Add synonyms here in 'key = value' format. When searching with the OR "
1016
+ "operator, any search of 'key' will be expanded to include 'value' as well. "
1017
+ "Using phrases is possible. The key-value pairs work in one direction only, "
1018
+ "but you can of course repeat the same pair reversed."
1019
+ msgstr ""
1020
+ "Добавьте синонимы в формате 'ключ = значение' (один на строку). При поиске с "
1021
+ "условием 'ИЛИ' результаты поиска будут учитывать значение ключа. Можно "
1022
+ "использовать фразы. Пары \"ключ-значение\" работают только в одну сторону, "
1023
+ "поэтому не забывайте (при необходимости) добавлять обратные пары ('значение-"
1024
+ "ключ')."
1025
+
1026
+ #: lib/interface.php:1385
1027
+ msgid ""
1028
+ "<p>Enter a word here to add it to the list of stopwords. The word will "
1029
+ "automatically be removed from the index, so re-indexing is not necessary. "
1030
+ "You can enter many words at the same time, separate words with commas.</p>"
1031
+ msgstr ""
1032
+ "<p>Введите слово, чтобы добавить его в черный список. Несколько слов "
1033
+ "необходимо разделить запятыми. Из поискового индекса они будут исключены "
1034
+ "автоматически и проводить переиндексирование нет нужды.</p>"
1035
+
1036
+ #: lib/interface.php:1387
1037
+ msgid "Stopword(s) to add: "
1038
+ msgstr "Добавить в черный список:"
1039
+
1040
+ #: lib/interface.php:1388
1041
+ msgid "Add"
1042
+ msgstr "Добавить"
1043
+
1044
+ #: lib/interface.php:1391
1045
+ msgid ""
1046
+ "<p>Here's a list of stopwords in the database. Click a word to remove it "
1047
+ "from stopwords. Removing stopwords won't automatically return them to index, "
1048
+ "so you need to re-index all posts after removing stopwords to get those "
1049
+ "words back to index."
1050
+ msgstr ""
1051
+ "<p>Здесь указаны все слова, находящиеся в черном списке. Кликните на слово, "
1052
+ "чтобы удалить его из черного списка. Удаление слов из черного списка не "
1053
+ "означает, что оно автоматически вернется в индекс, а поэтому вам необходимо "
1054
+ "будет произвести переиндексацию."
1055
+
1056
+ #: lib/interface.php:1417
1057
+ msgid "Remove all stopwords"
1058
+ msgstr "Очистить черный список"
1059
+
1060
+ #: lib/interface.php:1423
1061
+ msgid ""
1062
+ "Here's a list of stopwords you can use to export the stopwords to another "
1063
+ "blog."
1064
+ msgstr "Данный черный список можно использовать для экспорта в другой блог."
1065
+
1066
+ #: lib/uninstall.php:39
1067
+ msgid "Data wiped clean, you can now delete the plugin."
1068
+ msgstr "Информация плагина была очищена, тперь вы можете удалить плагин."
1069
+
1070
+ #~ msgid "Options updated!"
1071
+ #~ msgstr "Ustawienia zostały zaktualizowane!"
1072
+
1073
+ #~ msgid "API key:"
1074
+ #~ msgstr "Klucz API:"
1075
+
1076
+ #~ msgid ""
1077
+ #~ "API key is required to use the automatic update feature. Get yours from "
1078
+ #~ "Relevanssi.com."
1079
+ #~ msgstr ""
1080
+ #~ "Klucz API jest wymagany aby umożliwić automatyczne aktualizacje. Zdobądź "
1081
+ #~ "go na stronie Relevanssi.com."
1082
+
1083
+ #~ msgid "How to index internal links:"
1084
+ #~ msgstr "Sposób indeksowania linków wewnętrznych:"
1085
+
1086
+ #~ msgid "No special processing for internal links"
1087
+ #~ msgstr "Bez specjalnego indeksowania linków wewnętrznych"
1088
+
1089
+ #~ msgid "Index internal links for target documents only"
1090
+ #~ msgstr "Indeksowanie linków wewnętrznych tylko dla dokumentów docelowych"
1091
+
1092
+ #~ msgid "Index internal links for both target and source"
1093
+ #~ msgstr ""
1094
+ #~ "Indeksowanie linków wewnętrznych zarówno dla źródeł jak i dokumentów "
1095
+ #~ "docelowych"
1096
+
1097
+ #~ msgid ""
1098
+ #~ "Internal link anchor tags can be indexed for target document (so the text "
1099
+ #~ "will match the document the link points to), both target and source or "
1100
+ #~ "source only (with no extra significance for the links). See Relevanssi "
1101
+ #~ "Knowledge Base for more details. Changing this option requires reindexing."
1102
+ #~ msgstr ""
1103
+ #~ "Linki wewnętrzne mogą być indeksowane dla dokumentów docelowych (tak aby "
1104
+ #~ "tekst pasował do dokumentu na który wskazuje), zarówno dla docelowyc jak "
1105
+ #~ "i źródeł lub tylko dla źródeł (bez dodatkowego wpływu na linki). Zobacz "
1106
+ #~ "bazę wiedzy Relevanssi aby dowiedzieć się więcej. Zmiana tego ustawienia "
1107
+ #~ "wymaga ponownego indeksowania."
1108
+
1109
+ #~ msgid "Hide Relevanssi on edit pages:"
1110
+ #~ msgstr "Ukryj Relevanssi na stronach edycji:"
1111
+
1112
+ #~ msgid ""
1113
+ #~ "If you check this option, all Relevanssi features are removed from edit "
1114
+ #~ "pages."
1115
+ #~ msgstr ""
1116
+ #~ "Jeśli zaznaczysz tę opcję, wszystkie funkcje Relevanssi zostaną usunięte "
1117
+ #~ "z ekranów edycji."
1118
+
1119
+ #~ msgid "Internal links"
1120
+ #~ msgstr "Linki wewnętrzne"
1121
+
1122
+ #~ msgid "Post type '%s':"
1123
+ #~ msgstr "Typ wpisu '%s':"
1124
+
1125
+ #~ msgid "Weight multiplier for new posts:"
1126
+ #~ msgstr "Mnożnik wagi dla nowych wpisów:"
1127
+
1128
+ #~ msgid "Assign bonus for posts newer than:"
1129
+ #~ msgstr "Przyznaj bonus dla wpisów nowszych niż:"
1130
+
1131
+ #~ msgid "days"
1132
+ #~ msgstr "dni"
1133
+
1134
+ #~ msgid ""
1135
+ #~ "Posts newer than the day cutoff specified here will have their weight "
1136
+ #~ "multiplied with the bonus above."
1137
+ #~ msgstr ""
1138
+ #~ "Wpisy nowsze niż określona tutaj liczba dni będą miały wagę pomnożoną "
1139
+ #~ "przez podaną liczbę."
1140
+
1141
+ #~ msgid "Don't show Relevanssi branding on the 'User Searches' screen:"
1142
+ #~ msgstr ""
1143
+ #~ "Nie wyświetlaj informacji o Relevanssi na ekranie 'Statystyk "
1144
+ #~ "wyszukiwania':"
1145
+
1146
+ #~ msgid "Highlight query terms in documents from external searches:"
1147
+ #~ msgstr ""
1148
+ #~ "Podświetl wyszukiwane frazy w dokumentach z zewnętrznych wyszukiwarek:"
1149
+
1150
+ #~ msgid ""
1151
+ #~ "Highlights hits when user arrives from external search. Currently "
1152
+ #~ "supports Google, Bing, Ask, Yahoo and AOL Search."
1153
+ #~ msgstr ""
1154
+ #~ "Podświetl trafienia jeśli użytkownik pochodzi z zewnętrznych "
1155
+ #~ "wyszukiwarek. Aktualnie wspierane są Google, Bing, Ask, Yahoo i AOL "
1156
+ #~ "Search."
1157
+
1158
+ #~ msgid "Thousands separator"
1159
+ #~ msgstr "Separator liczb (tysięcy)"
1160
+
1161
+ #~ msgid ""
1162
+ #~ "If Relevanssi sees this character between numbers, it'll stick the "
1163
+ #~ "numbers together no matter how the character would otherwise be handled. "
1164
+ #~ "Especially useful if a space is used as a thousands separator."
1165
+ #~ msgstr ""
1166
+ #~ "Jeśli Relevanssi znajdzie ten znak między cyframi, zignoruje go i "
1167
+ #~ "rozpozna całą liczbę. Jest to szczególnie przydatne gdy jako separator "
1168
+ #~ "stosowana jest spacja."
1169
+
1170
+ #~ msgid "Custom MySQL columns to index:"
1171
+ #~ msgstr "Własne kolumny MySQL do zaindeksowania:"
1172
+
1173
+ #~ msgid ""
1174
+ #~ "A comma-separated list of wp_posts MySQL table columns to include in the "
1175
+ #~ "index. Following columns are available: "
1176
+ #~ msgstr ""
1177
+ #~ "Oddzielona przecinkami lista kolumn MySQL z tabeli wp_posts, które mają "
1178
+ #~ "być zaindeksowane. Dostępne są następujące kolumny:"
1179
+
1180
+ #~ msgid "Index and search user profiles:"
1181
+ #~ msgstr "Indeksowanie i przeszukiwanie profili użytkowników:"
1182
+
1183
+ #~ msgid ""
1184
+ #~ "If checked, Relevanssi will also index and search user profiles (first "
1185
+ #~ "name, last name, display name and user description). Requires changes to "
1186
+ #~ "search results template, see Relevanssi Knowledge Base."
1187
+ #~ msgstr ""
1188
+ #~ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować i przeszukiwać "
1189
+ #~ "profile użytkowników (imię, nazwisko, wyświetlana nazwa i opis "
1190
+ #~ "użytkownika). Wymaga to zmian w szablonie wyszukiwania (zobacz w bazie "
1191
+ #~ "wiedzy Relevansii)."
1192
+
1193
+ #~ msgid "Index subscriber profiles:"
1194
+ #~ msgstr "Indeksowanie profili subskrybentów:"
1195
+
1196
+ #~ msgid ""
1197
+ #~ "If checked, Relevanssi will index subscriber profiles as well, otherwise "
1198
+ #~ "only authors, editors, contributors and admins are indexed."
1199
+ #~ msgstr ""
1200
+ #~ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować także profile "
1201
+ #~ "subskrybentów. W przeciwnym wypadku indeksowane będą tylko profile "
1202
+ #~ "autorów, redaktorów, współpracowników i administratorów."
1203
+
1204
+ #~ msgid "Extra user fields to index:"
1205
+ #~ msgstr "Dodatkowe pola użytkowników do zaindeksowania:"
1206
+
1207
+ #~ msgid ""
1208
+ #~ "A comma-separated list of user profile field names (names of the database "
1209
+ #~ "columns) to include in the index."
1210
+ #~ msgstr ""
1211
+ #~ "Oddzielona przecinkami lista nazw pól w profilach użytkownika (nazw "
1212
+ #~ "kolumn w bazie danych), które mają być zaindeksowane."
1213
+
1214
+ #~ msgid "Index and search taxonomy pages:"
1215
+ #~ msgstr "Indeksowanie i przeszukiwanie stron taksonomii:"
1216
+
1217
+ #~ msgid ""
1218
+ #~ "If checked, Relevanssi will also index and search taxonomy pages "
1219
+ #~ "(categories, tags, custom taxonomies)."
1220
+ #~ msgstr ""
1221
+ #~ "Jeśli zostanie zaznaczone, Relevanssi będzie indeksować i przeszukiwać "
1222
+ #~ "także strony taksonomii (kategorii, tagów, własnych taksonomii)."
1223
+
1224
+ #~ msgid "Taxonomy pages to index:"
1225
+ #~ msgstr "Strony taksonomi do zaindeksowania:"
1226
+
1227
+ #~ msgid ""
1228
+ #~ "A comma-separated list of taxonomies to include in the taxonomy page "
1229
+ #~ "index ('all' indexes all custom taxonomies. If you don't use 'all', "
1230
+ #~ "remember to list 'category' and 'post_tag')."
1231
+ #~ msgstr ""
1232
+ #~ "Oddzielona przecinkami lista taksonomii, które mają być ujęte w indeksie "
1233
+ #~ "stron taksonomii (wpisanie 'all' spowoduje zaindeksowanie wszystkich "
1234
+ #~ "taksonomii. Jeśli nie użyjesz 'all' dodaj przynajmniej 'category' i "
1235
+ #~ "'post_tag')."
1236
+
1237
+ #~ msgid "Import or export options"
1238
+ #~ msgstr "Importowanie i eksportowanie ustawień"
1239
+
1240
+ #~ msgid ""
1241
+ #~ "Here you find the current Relevanssi Premium options in a text format. "
1242
+ #~ "Copy the contents of the text field to make a backup of your settings. "
1243
+ #~ "You can also paste new settings here to change all settings at the same "
1244
+ #~ "time. This is useful if you have default settings you want to use on "
1245
+ #~ "every system."
1246
+ #~ msgstr ""
1247
+ #~ "Możesz tu znaleźć ustawienia Relevanssi Premium w formie tekstowej. "
1248
+ #~ "Skopiuj zawartość tego pola aby utworzyć kopię zapasową ustawień. Możesz "
1249
+ #~ "także wkleić tutaj nowe ustawienia aby je w prosty sposób zmienić. Jest "
1250
+ #~ "to przydatne jeśli masz domyślne ustawienia, któe stosujesz na wielu "
1251
+ #~ "stronach."
1252
+
1253
+ #~ msgid "Import settings"
1254
+ #~ msgstr "Importuj ustawienia"
1255
+
1256
+ #~ msgid ""
1257
+ #~ "Note! Make sure you've got correct settings from a right version of "
1258
+ #~ "Relevanssi. Settings from a different version of Relevanssi may or may "
1259
+ #~ "not work and may or may not mess your settings."
1260
+ #~ msgstr ""
1261
+ #~ "Uwaga! Upewnij się że używasz ustawień odpowiednich dla konkretnej wersji "
1262
+ #~ "Relevansii. Ustawienia z wersji innej niż stosowana mogą nie działać i "
1263
+ #~ "powodować problemy."
1264
+
1265
+ #~ msgid "Thank you!"
1266
+ #~ msgstr "Dziękujemy!"
1267
+
1268
+ #~ msgid ""
1269
+ #~ "Thank you for buying Relevanssi Premium! Your support makes it possible "
1270
+ #~ "for me to keep working on this plugin."
1271
+ #~ msgstr ""
1272
+ #~ "Dziękujemy za wybranie Relevanssi Premium. Twoje wsparcie umożliwia "
1273
+ #~ "dalsze prace nad tą wtyczką."
1274
+
1275
+ #~ msgid ""
1276
+ #~ "I can do custom hacks based on Relevanssi and other WordPress "
1277
+ #~ "development. If you need someone to fix your WordPress, just ask me for a "
1278
+ #~ "quote."
1279
+ #~ msgstr ""
1280
+ #~ "Mogę przygotować dowolną modyfikację opartą o Relevanssi i WordPress. "
1281
+ #~ "Jeśli szukasz kogoś, kto popracowałby nad Twoją stroną, wyślij zapytanie."
1282
+
1283
+ #~ msgid "Relevanssi on Facebook"
1284
+ #~ msgstr "Relevanssi na Facebooku"
1285
+
1286
+ #~ msgid "Check out the Relevanssi page on Facebook"
1287
+ #~ msgstr "Sprawdź stronę Relevanssi na Facebooku"
1288
+
1289
+ #~ msgid "for news and updates about your favourite plugin."
1290
+ #~ msgstr ""
1291
+ #~ "aby być na bierząco informowanym o aktualnościach i innych wydarzeniach "
1292
+ #~ "związanych z Twoją ulubioną wtyczką."
1293
+
1294
+ #~ msgid "Help and support"
1295
+ #~ msgstr "Pomoc"
1296
+
1297
+ #~ msgid "For Relevanssi support, see:"
1298
+ #~ msgstr "Aby uzyskać pomoc, zobacz:"
1299
+
1300
+ #~ msgid "Plugin support page"
1301
+ #~ msgstr "Strona pomocy"
1302
+
1303
+ #~ msgid "WordPress.org forum"
1304
+ #~ msgstr "Forum na Wordpress.com"
1305
+
1306
+ #~ msgid "Did you know this feature?"
1307
+ #~ msgstr "Czy znałeś tę funkcję?"
1308
+
1309
+ #~ msgid ""
1310
+ #~ "Wrap the parts of the posts you don't want to include in the index in "
1311
+ #~ "[noindex] shortcode."
1312
+ #~ msgstr ""
1313
+ #~ "Zaznacz fragmenty treści, których nie chcesz zaindeksować w skrót "
1314
+ #~ "[noindex]."
1315
+
1316
+ #~ msgid "Use the [search] shortcode to build easy links to search results."
1317
+ #~ msgstr ""
1318
+ #~ "Użyj skrótu [search] aby w prosty sposób utworzyć linki do wyników "
1319
+ #~ "wyszukiwania."
1320
+
1321
+ #~ msgid ""
1322
+ #~ "Enable the English-language stemmer by adding this line in your functions."
1323
+ #~ "php:"
1324
+ #~ msgstr ""
1325
+ #~ "Włącz odmiany zwrotów w języku angielskim dodają tę linię kodu do pliku "
1326
+ #~ "functions.php:"
1327
+
1328
+ #~ msgid "Boolean NOT"
1329
+ #~ msgstr "Warunek boolean NOT"
1330
+
1331
+ #~ msgid "To get results without particular word, use the minus operator"
1332
+ #~ msgstr "Aby uzyskać wyniki bez określnoego zwrotu użyj operatora minus (-)"
1333
+
1334
+ #~ msgid "cats -dogs"
1335
+ #~ msgstr "koty-psy"
1336
+
1337
+ #~ msgid "Boolean AND"
1338
+ #~ msgstr "Warunek boolean AND"
1339
+
1340
+ #~ msgid "To force a particular term in an OR search, use the plus operator"
1341
+ #~ msgstr ""
1342
+ #~ "Aby wymusić określony termin w wyszukiwaniu w trybie OR, użyj operatora "
1343
+ #~ "plus (+)"
1344
+
1345
+ #~ msgid "+cats dogs mice"
1346
+ #~ msgstr "+koty psy myszy"
1347
+
1348
+ #~ msgid ""
1349
+ #~ "would require that all results include the term 'cats', and results "
1350
+ #~ "including all three terms will be favoured. The plus operator has no "
1351
+ #~ "effect in an AND search, where all terms have an implicit + before them."
1352
+ #~ msgstr ""
1353
+ #~ "będzie wymagać aby wszystkie wyniki zawierały zwrot 'cats' a wyniki "
1354
+ #~ "zawierające każdy z tych trzech zwrotów będą faworyzowane. Operator plus "
1355
+ #~ "nie ma żadnego działania w wyszukiwaniu w trybie OR, ponieważ wówczas "
1356
+ #~ "wszystkie zwroty mają taki operator."
1357
+
1358
+ #~ msgid "Relevanssi post controls"
1359
+ #~ msgstr "Ustawienia wyszukiwania"
1360
+
1361
+ #~ msgid "Exclude this post or page from the index."
1362
+ #~ msgstr "Wyklucz ten wpis lub stronę z indeksowania i wyszukiwania"
1363
+
1364
+ #~ msgid "Index and search your posts' tags:"
1365
+ #~ msgstr "Indeksowanie i wyszukiwanie tagów:"
1366
+
1367
+ #~ msgid ""
1368
+ #~ "If checked, Relevanssi will also index and search the tags of your posts. "
1369
+ #~ "Remember to rebuild the index if you change this option!"
1370
+ #~ msgstr ""
1371
+ #~ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i "
1372
+ #~ "wyszukiwać tagów znajdujących się we wpisach. Pamiętaj o przebudowaniu "
1373
+ #~ "indeksu, jeśli zmienisz te ustawienia."
1374
+
1375
+ #~ msgid "Index and search your posts' categories:"
1376
+ #~ msgstr "Indeksowanie i wyszukiwanie kategorii:"
1377
+
1378
+ #~ msgid ""
1379
+ #~ "If checked, Relevanssi will also index and search the categories of your "
1380
+ #~ "posts. Category titles will pass through 'single_cat_title' filter. "
1381
+ #~ "Remember to rebuild the index if you change this option!"
1382
+ #~ msgstr ""
1383
+ #~ "Jeśli zostanie zaznaczone, Relevanssi będzie także indeksować i "
1384
+ #~ "wyszukiwać kategorie znajdujące się we wpisach. Tytuły kategorii będą "
1385
+ #~ "przetwarzane z wykorzystaniem filtru single_cat_title'. Pamiętaj o "
1386
+ #~ "przebudowaniu indeksu, jeśli zmienisz te ustawienia."
1387
+
1388
+ #~ msgid ""
1389
+ #~ "A comma-separated list of custom taxonomy names to include in the index."
1390
+ #~ msgstr ""
1391
+ #~ "Oddzielona przecinkami lista własnych taksonomii, które mają być "
1392
+ #~ "uwzględnione w indeksie."
relevanssi.php CHANGED
@@ -3,12 +3,12 @@
3
  Plugin Name: Relevanssi
4
  Plugin URI: http://www.relevanssi.com/
5
  Description: This plugin replaces WordPress search with a relevance-sorting search.
6
- Version: 3.0.5
7
  Author: Mikko Saari
8
  Author URI: http://www.mikkosaari.fi/
9
  */
10
 
11
- /* Copyright 2012 Mikko Saari (email: mikko@mikkosaari.fi)
12
 
13
  This file is part of Relevanssi, a search plugin for WordPress.
14
 
@@ -47,7 +47,7 @@ $relevanssi_variables['comment_boost_default'] = 0.75;
47
  $relevanssi_variables['post_type_weight_defaults']['post_tag'] = 0.75;
48
  $relevanssi_variables['post_type_weight_defaults']['category'] = 0.75;
49
  $relevanssi_variables['post_type_index_defaults'] = array('post', 'page');
50
- $relevanssi_variables['database_version'] = 1;
51
  $relevanssi_variables['file'] = __FILE__;
52
  $relevanssi_variables['plugin_dir'] = plugin_dir_path(__FILE__);
53
 
@@ -104,10 +104,45 @@ function relevanssi_didyoumean($query, $pre, $post, $n = 5) {
104
 
105
  function relevanssi_check_old_data() {
106
  if (is_admin()) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  $limit = get_option('relevanssi_throttle_limit');
108
  if (empty($limit)) update_option('relevanssi_throttle_limit', 500);
109
 
110
- global $wpdb;
 
 
 
 
 
111
 
112
  // Version 3.0 removed relevanssi_tag_boost
113
  $tag_boost = get_option('relevanssi_tag_boost', 'nothing');
@@ -195,12 +230,10 @@ function _relevanssi_install() {
195
  add_option('relevanssi_excat', '0');
196
  add_option('relevanssi_index_fields', '');
197
  add_option('relevanssi_exclude_posts', ''); //added by OdditY
198
- add_option('relevanssi_include_tags', 'on'); //added by OdditY
199
  add_option('relevanssi_hilite_title', ''); //added by OdditY
200
  add_option('relevanssi_highlight_docs', 'off');
201
  add_option('relevanssi_highlight_comments', 'off');
202
  add_option('relevanssi_index_comments', 'none'); //added by OdditY
203
- add_option('relevanssi_include_cats', '');
204
  add_option('relevanssi_show_matches', '');
205
  add_option('relevanssi_show_matches_txt', '(Search hits: %body% in body, %title% in title, %tags% in tags, %comments% in comments. Score: %score%)');
206
  add_option('relevanssi_fuzzy', 'sometimes');
@@ -226,6 +259,7 @@ function _relevanssi_install() {
226
  add_option('relevanssi_throttle', 'on');
227
  add_option('relevanssi_throttle_limit', '500');
228
  add_option('relevanssi_index_post_types', $relevanssi_variables['post_type_index_defaults']);
 
229
 
230
  relevanssi_create_database_tables($relevanssi_variables['database_version']);
231
  }
@@ -268,7 +302,7 @@ function relevanssi_form_tag_weight($post_type_weights) {
268
  $label
269
  </td>
270
  <td>
271
- <input type='text' name='relevanssi_weight_post_tag' size='4' value='$value' />
272
  </td>
273
  <td>&nbsp;</td>
274
  </tr>
@@ -283,7 +317,7 @@ EOH;
283
  $label
284
  </td>
285
  <td>
286
- <input type='text' name='relevanssi_weight_category' size='4' value='$value' />
287
  </td>
288
  <td>&nbsp;</td>
289
  </tr>
3
  Plugin Name: Relevanssi
4
  Plugin URI: http://www.relevanssi.com/
5
  Description: This plugin replaces WordPress search with a relevance-sorting search.
6
+ Version: 3.1.9
7
  Author: Mikko Saari
8
  Author URI: http://www.mikkosaari.fi/
9
  */
10
 
11
+ /* Copyright 2013 Mikko Saari (email: mikko@mikkosaari.fi)
12
 
13
  This file is part of Relevanssi, a search plugin for WordPress.
14
 
47
  $relevanssi_variables['post_type_weight_defaults']['post_tag'] = 0.75;
48
  $relevanssi_variables['post_type_weight_defaults']['category'] = 0.75;
49
  $relevanssi_variables['post_type_index_defaults'] = array('post', 'page');
50
+ $relevanssi_variables['database_version'] = 4;
51
  $relevanssi_variables['file'] = __FILE__;
52
  $relevanssi_variables['plugin_dir'] = plugin_dir_path(__FILE__);
53
 
104
 
105
  function relevanssi_check_old_data() {
106
  if (is_admin()) {
107
+ // Version 3.1.4 combined taxonomy indexing options
108
+ $inctags = get_option('relevanssi_include_tags', 'nothing');
109
+ if ($inctags == 'on') {
110
+ $taxonomies = get_option('relevanssi_index_taxonomies_list');
111
+ if (!is_array($taxonomies)) $taxonomies = array();
112
+ $taxonomies[] = 'post_tag';
113
+ update_option('relevanssi_index_taxonomies_list', $taxonomies);
114
+ delete_option('relevanssi_include_tags');
115
+ }
116
+ $inccats = get_option('relevanssi_include_cats', 'nothing');
117
+ if ($inccats == 'on') {
118
+ $taxonomies = get_option('relevanssi_index_taxonomies_list');
119
+ if (!is_array($taxonomies)) $taxonomies = array();
120
+ $taxonomies[] = 'category';
121
+ update_option('relevanssi_index_taxonomies_list', $taxonomies);
122
+ delete_option('relevanssi_include_cats');
123
+ }
124
+ $custom = get_option('relevanssi_custom_taxonomies', 'nothing');
125
+ if ($custom != 'nothing') {
126
+ $cts = explode(",", $custom);
127
+ $taxonomies = get_option('relevanssi_index_taxonomies_list');
128
+ if (!is_array($taxonomies)) $taxonomies = array();
129
+ foreach ($cts as $taxonomy) {
130
+ $taxonomy = trim($taxonomy);
131
+ $taxonomies[] = $taxonomy;
132
+ }
133
+ update_option('relevanssi_index_taxonomies_list', $taxonomies);
134
+ delete_option('relevanssi_custom_taxonomies');
135
+ }
136
+
137
  $limit = get_option('relevanssi_throttle_limit');
138
  if (empty($limit)) update_option('relevanssi_throttle_limit', 500);
139
 
140
+ global $wpdb, $relevanssi_variables;
141
+
142
+ if ($relevanssi_variables['database_version'] == 3) {
143
+ $res = $wpdb->query("SHOW INDEX FROM " . $relevanssi_variables['relevanssi_table'] . " WHERE Key_name = 'typeitem'");
144
+ if ($res == 0) $wpdb->query("ALTER TABLE " . $relevanssi_variables['relevanssi_table'] . " ADD INDEX `typeitem` (`type`, `item`)");
145
+ }
146
 
147
  // Version 3.0 removed relevanssi_tag_boost
148
  $tag_boost = get_option('relevanssi_tag_boost', 'nothing');
230
  add_option('relevanssi_excat', '0');
231
  add_option('relevanssi_index_fields', '');
232
  add_option('relevanssi_exclude_posts', ''); //added by OdditY
 
233
  add_option('relevanssi_hilite_title', ''); //added by OdditY
234
  add_option('relevanssi_highlight_docs', 'off');
235
  add_option('relevanssi_highlight_comments', 'off');
236
  add_option('relevanssi_index_comments', 'none'); //added by OdditY
 
237
  add_option('relevanssi_show_matches', '');
238
  add_option('relevanssi_show_matches_txt', '(Search hits: %body% in body, %title% in title, %tags% in tags, %comments% in comments. Score: %score%)');
239
  add_option('relevanssi_fuzzy', 'sometimes');
259
  add_option('relevanssi_throttle', 'on');
260
  add_option('relevanssi_throttle_limit', '500');
261
  add_option('relevanssi_index_post_types', $relevanssi_variables['post_type_index_defaults']);
262
+ add_option('relevanssi_index_taxonomies_list', array());
263
 
264
  relevanssi_create_database_tables($relevanssi_variables['database_version']);
265
  }
302
  $label
303
  </td>
304
  <td>
305
+ <input type='text' name='relevanssi_weight_post_tag' id='relevanssi_weight_post_tag' size='4' value='$value' />
306
  </td>
307
  <td>&nbsp;</td>
308
  </tr>
317
  $label
318
  </td>
319
  <td>
320
+ <input type='text' id='relevanssi_weight_category' name='relevanssi_weight_category' size='4' value='$value' />
321
  </td>
322
  <td>&nbsp;</td>
323
  </tr>
stopwords/stopwords.ru_RU ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $stopwords = array(
3
+ "а","б","в","г","д","е","ё","ж","з","и","й","к","л","м",
4
+ "н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ",
5
+ "ы","ь","э","ю","я",
6
+ "по","на","для","не","как","только","если","или","то","от",
7
+ "будет","этот","есть","при","это","только","если","или","то","от",
8
+ "по","на","для","не","как","нет","он","из","так","всё","все",
9
+ "же","может","его","можно","вы","мы","она","спасибо","за","этого","меня",
10
+ "вот","надо","чтобы","просто","вам","мне","уже","что","но","очень","вас",
11
+ "еще","после","где","бы","там","быть","данный","через","именно","например","их",
12
+ "без","чем","до","ли","ссылки","тут","да","раз","нужно","этом","выше",
13
+ "который","которая","такой","сайт","тоже","теперь","вообще","её","ее","будут","должен",
14
+ "было","когда","ну","они","можете","хотя","могу","какой","даже","этой","один",
15
+ "ссылка","ничего","пожалуйста","больше","со","проблема","сам","эту","почему","сразу","вашего",
16
+ "свой","вроде","стоит","более","которые","том","поэтому","под","знаю","того","вопрос",
17
+ "много","эти","кто","сейчас","ни","типа","равно","ваш","буду","конечно","делать",
18
+ "нибудь","них","всех","является","лучше","также","тем","себя","нашел","несколько","найти",
19
+ "пока","был","достаточно","вручную","этим","никак","куда","лишь","понял","либо","дело",
20
+ "всегда","всего","большое","время","него","совсем","во","здесь","давно","такое","вашем",
21
+ "эта","была","тогда","правильно","думаю","вместо","потому","кстати","уж","потом","другой",
22
+ "мой","хочу","такая","про","причем","любой"
23
+ );
24
+ ?>
uninstall.php CHANGED
@@ -6,7 +6,8 @@ if (!defined('WP_UNINSTALL_PLUGIN'))
6
  global $wpdb;
7
  require_once('lib/uninstall.php');
8
 
9
- relevanssi_uninstall();
 
10
 
11
  function relevanssi_uninstall() {
12
  delete_option('relevanssi_title_boost');
@@ -27,17 +28,14 @@ function relevanssi_uninstall() {
27
  delete_option('relevanssi_cat');
28
  delete_option('relevanssi_index_fields');
29
  delete_option('relevanssi_exclude_posts'); //added by OdditY
30
- delete_option('relevanssi_include_tags'); //added by OdditY
31
  delete_option('relevanssi_hilite_title'); //added by OdditY
32
  delete_option('relevanssi_index_comments'); //added by OdditY
33
- delete_option('relevanssi_include_cats');
34
  delete_option('relevanssi_show_matches');
35
  delete_option('relevanssi_show_matches_text');
36
  delete_option('relevanssi_fuzzy');
37
  delete_option('relevanssi_index');
38
  delete_option('relevanssi_indexed');
39
  delete_option('relevanssi_expand_shortcodes');
40
- delete_option('relevanssi_custom_taxonomies');
41
  delete_option('relevanssi_index_author');
42
  delete_option('relevanssi_implicit_operator');
43
  delete_option('relevanssi_omit_from_logs');
@@ -60,6 +58,7 @@ function relevanssi_uninstall() {
60
  delete_option('relevanssi_throttle_limit');
61
  delete_option('relevanssi_index_post_types');
62
  delete_option('relevanssi_post_type_weights');
 
63
 
64
  // Unused options, removed in case they are still left
65
  delete_option('relevanssi_custom_types');
@@ -68,6 +67,9 @@ function relevanssi_uninstall() {
68
  delete_option('relevanssi_index_type');
69
  delete_option('relevanssi_show_matches_txt');
70
  delete_option('relevanssi_tag_boost');
 
 
 
71
 
72
  relevanssi_clear_database_tables();
73
  }
6
  global $wpdb;
7
  require_once('lib/uninstall.php');
8
 
9
+ if (!defined('RELEVANSSI_PREMIUM')) relevanssi_uninstall();
10
+ // if Relevanssi Premium is installed, options will not be deleted
11
 
12
  function relevanssi_uninstall() {
13
  delete_option('relevanssi_title_boost');
28
  delete_option('relevanssi_cat');
29
  delete_option('relevanssi_index_fields');
30
  delete_option('relevanssi_exclude_posts'); //added by OdditY
 
31
  delete_option('relevanssi_hilite_title'); //added by OdditY
32
  delete_option('relevanssi_index_comments'); //added by OdditY
 
33
  delete_option('relevanssi_show_matches');
34
  delete_option('relevanssi_show_matches_text');
35
  delete_option('relevanssi_fuzzy');
36
  delete_option('relevanssi_index');
37
  delete_option('relevanssi_indexed');
38
  delete_option('relevanssi_expand_shortcodes');
 
39
  delete_option('relevanssi_index_author');
40
  delete_option('relevanssi_implicit_operator');
41
  delete_option('relevanssi_omit_from_logs');
58
  delete_option('relevanssi_throttle_limit');
59
  delete_option('relevanssi_index_post_types');
60
  delete_option('relevanssi_post_type_weights');
61
+ delete_option('relevanssi_index_taxonomies_list');
62
 
63
  // Unused options, removed in case they are still left
64
  delete_option('relevanssi_custom_types');
67
  delete_option('relevanssi_index_type');
68
  delete_option('relevanssi_show_matches_txt');
69
  delete_option('relevanssi_tag_boost');
70
+ delete_option('relevanssi_include_tags'); //added by OdditY
71
+ delete_option('relevanssi_custom_taxonomies');
72
+ delete_option('relevanssi_include_cats');
73
 
74
  relevanssi_clear_database_tables();
75
  }