Version Description
- AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
- Fixed a major bug that caused the searches to fail when "Limit searches" was enabled, but "Limit" was not defined.
- Modified
relevanssi_remove_punct()to replace curly apostrophes and quotes with spaces instead of removing them, to make the index more consistent (regular apostrophes were replaced with spaces). Reindexing the database is a good idea. - Fixed some misleading text on the options page.
Download this release
Release Info
| Developer | msaari |
| Plugin | |
| Version | 3.0.5 |
| Comparing to | |
| See all releases | |
Version 3.0.5
- delete.png +0 -0
- facebooklogo.jpg +0 -0
- lib/cache.php +77 -0
- lib/common.php +538 -0
- lib/excerpts-highlights.php +375 -0
- lib/indexing.php +632 -0
- lib/init.php +231 -0
- lib/interface.php +1379 -0
- lib/search.php +822 -0
- lib/shortcodes.php +40 -0
- lib/stopwords.php +39 -0
- lib/uninstall.php +42 -0
- readme.txt +852 -0
- relevanssi-fr_FR.mo +0 -0
- relevanssi-fr_FR.po +1234 -0
- relevanssi-it_IT.mo +0 -0
- relevanssi-it_IT.po +321 -0
- relevanssi-pt_BR.mo +0 -0
- relevanssi-pt_BR.po +578 -0
- relevanssi-ro_RO.mo +0 -0
- relevanssi-ro_RO.po +1123 -0
- relevanssi.php +382 -0
- relevanssi.po +321 -0
- stopwords/stopwords.de_DE +1037 -0
- stopwords/stopwords.en_GB +323 -0
- stopwords/stopwords.en_US +323 -0
- stopwords/stopwords.es_ES +386 -0
- stopwords/stopwords.fi +365 -0
- stopwords/stopwords.fr_FR +72 -0
- stopwords/stopwords.pl_PL +210 -0
- stopwords/stopwords.pt_BR +173 -0
- stopwords/stopwords.pt_PT +173 -0
- uninstall.php +75 -0
delete.png
ADDED
|
Binary file
|
facebooklogo.jpg
ADDED
|
Binary file
|
lib/cache.php
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
function relevanssi_purge_excerpt_cache($post) {
|
| 4 |
+
global $wpdb, $relevanssi_variables;
|
| 5 |
+
|
| 6 |
+
$wpdb->query("DELETE FROM " . $relevanssi_variables['relevanssi_excerpt_cache'] . " WHERE post = $post");
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
function relevanssi_fetch_excerpt($post, $query) {
|
| 10 |
+
global $wpdb, $relevanssi_variables;
|
| 11 |
+
|
| 12 |
+
$query = mysql_real_escape_string($query);
|
| 13 |
+
$excerpt = $wpdb->get_var("SELECT excerpt FROM " . $relevanssi_variables['relevanssi_excerpt_cache'] . " WHERE post = $post AND query = '$query'");
|
| 14 |
+
|
| 15 |
+
if (!$excerpt) return null;
|
| 16 |
+
|
| 17 |
+
return $excerpt;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
function relevanssi_store_excerpt($post, $query, $excerpt) {
|
| 21 |
+
global $wpdb, $relevanssi_variables;
|
| 22 |
+
|
| 23 |
+
$query = mysql_real_escape_string($query);
|
| 24 |
+
$excerpt = mysql_real_escape_string($excerpt);
|
| 25 |
+
|
| 26 |
+
$wpdb->query("INSERT INTO " . $relevanssi_variables['relevanssi_excerpt_cache'] . " (post, query, excerpt)
|
| 27 |
+
VALUES ($post, '$query', '$excerpt')
|
| 28 |
+
ON DUPLICATE KEY UPDATE excerpt = '$excerpt'");
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
function relevanssi_fetch_hits($param) {
|
| 32 |
+
global $wpdb, $relevanssi_variables;
|
| 33 |
+
|
| 34 |
+
$time = get_option('relevanssi_cache_seconds', 172800);
|
| 35 |
+
|
| 36 |
+
$hits = $wpdb->get_var("SELECT hits FROM " . $relevanssi_variables['relevanssi_cache'] . " WHERE param = '$param' AND UNIX_TIMESTAMP() - UNIX_TIMESTAMP(tstamp) < $time");
|
| 37 |
+
|
| 38 |
+
if ($hits) {
|
| 39 |
+
return unserialize($hits);
|
| 40 |
+
}
|
| 41 |
+
else {
|
| 42 |
+
return null;
|
| 43 |
+
}
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
function relevanssi_store_hits($param, $data) {
|
| 47 |
+
global $wpdb, $relevanssi_variables;
|
| 48 |
+
|
| 49 |
+
$param = mysql_real_escape_string($param);
|
| 50 |
+
$data = mysql_real_escape_string($data);
|
| 51 |
+
$wpdb->query("INSERT INTO " . $relevanssi_variables['relevanssi_cache'] . " (param, hits)
|
| 52 |
+
VALUES ('$param', '$data')
|
| 53 |
+
ON DUPLICATE KEY UPDATE hits = '$data'");
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
function relevanssi_truncate_cache($all = false) {
|
| 57 |
+
global $wpdb, $relevanssi_variables;
|
| 58 |
+
$relevanssi_excerpt_cache = $relevanssi_variables['relevanssi_excerpt_cache'];
|
| 59 |
+
$relevanssi_cache = $relevanssi_variables['relevanssi_cache'];
|
| 60 |
+
|
| 61 |
+
if ($all) {
|
| 62 |
+
$query = "TRUNCATE TABLE $relevanssi_excerpt_cache";
|
| 63 |
+
$wpdb->query($query);
|
| 64 |
+
|
| 65 |
+
$query = "TRUNCATE TABLE $relevanssi_cache";
|
| 66 |
+
}
|
| 67 |
+
else {
|
| 68 |
+
$time = get_option('relevanssi_cache_seconds', 172800);
|
| 69 |
+
$query = "DELETE FROM $relevanssi_cache
|
| 70 |
+
WHERE UNIX_TIMESTAMP() - UNIX_TIMESTAMP(tstamp) > $time";
|
| 71 |
+
// purge all expired cache data
|
| 72 |
+
}
|
| 73 |
+
$wpdb->query($query);
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
?>
|
lib/common.php
ADDED
|
@@ -0,0 +1,538 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// thanks to rvencu
|
| 4 |
+
function relevanssi_wpml_filter($data) {
|
| 5 |
+
$use_filter = get_option('relevanssi_wpml_only_current');
|
| 6 |
+
if ('on' == $use_filter) {
|
| 7 |
+
//save current blog language
|
| 8 |
+
$lang = get_bloginfo('language');
|
| 9 |
+
$filtered_hits = array();
|
| 10 |
+
foreach ($data[0] as $hit) {
|
| 11 |
+
if (isset($hit->blog_id)) {
|
| 12 |
+
switch_to_blog($hit->blog_id);
|
| 13 |
+
}
|
| 14 |
+
global $sitepress;
|
| 15 |
+
if (function_exists('icl_object_id') && $sitepress->is_translated_post_type($hit->post_type)) {
|
| 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) {
|
| 22 |
+
$filtered_hits[] = $hit;
|
| 23 |
+
}
|
| 24 |
+
if (isset($hit->blog_id)) {
|
| 25 |
+
restore_current_blog();
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
return array($filtered_hits, $data[1]);
|
| 29 |
+
}
|
| 30 |
+
return $data;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/**
|
| 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;
|
| 46 |
+
$swapped = true;
|
| 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;
|
| 54 |
+
$swapped = true;
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
}
|
| 58 |
+
if (!$swapped) return;
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
function relevanssi_show_matches($data, $hit) {
|
| 63 |
+
isset($data['body_matches'][$hit]) ? $body = $data['body_matches'][$hit] : $body = "";
|
| 64 |
+
isset($data['title_matches'][$hit]) ? $title = $data['title_matches'][$hit] : $title = "";
|
| 65 |
+
isset($data['tag_matches'][$hit]) ? $tag = $data['tag_matches'][$hit] : $tag = "";
|
| 66 |
+
isset($data['comment_matches'][$hit]) ? $comment = $data['comment_matches'][$hit] : $comment = "";
|
| 67 |
+
isset($data['scores'][$hit]) ? $score = round($data['scores'][$hit], 2) : $score = 0;
|
| 68 |
+
isset($data['term_hits'][$hit]) ? $term_hits_a = $data['term_hits'][$hit] : $term_hits_a = array();
|
| 69 |
+
arsort($term_hits_a);
|
| 70 |
+
$term_hits = "";
|
| 71 |
+
$total_hits = 0;
|
| 72 |
+
foreach ($term_hits_a as $term => $hits) {
|
| 73 |
+
$term_hits .= " $term: $hits";
|
| 74 |
+
$total_hits += $hits;
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
$text = get_option('relevanssi_show_matches_text');
|
| 78 |
+
$replace_these = array("%body%", "%title%", "%tags%", "%comments%", "%score%", "%terms%", "%total%");
|
| 79 |
+
$replacements = array($body, $title, $tag, $comment, $score, $term_hits, $total_hits);
|
| 80 |
+
|
| 81 |
+
$result = " " . str_replace($replace_these, $replacements, $text);
|
| 82 |
+
|
| 83 |
+
return apply_filters('relevanssi_show_matches', $result);
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
function relevanssi_update_log($query, $hits) {
|
| 87 |
+
if(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT'] == "Mediapartners-Google")
|
| 88 |
+
return;
|
| 89 |
+
|
| 90 |
+
global $wpdb, $relevanssi_variables;
|
| 91 |
+
|
| 92 |
+
$user = wp_get_current_user();
|
| 93 |
+
if ($user->ID != 0 && get_option('relevanssi_omit_from_logs')) {
|
| 94 |
+
$omit = explode(",", get_option('relevanssi_omit_from_logs'));
|
| 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 |
+
|
| 103 |
+
/**
|
| 104 |
+
* Do note that while this function takes $post_ok as a parameter, it actually doesn't care much
|
| 105 |
+
* about the previous value, and will instead overwrite it. If you want to make sure your value
|
| 106 |
+
* is preserved, either disable this default function, or run your function on a later priority
|
| 107 |
+
* (this defaults to 10).
|
| 108 |
+
*/
|
| 109 |
+
function relevanssi_default_post_ok($post_ok, $doc) {
|
| 110 |
+
$status = relevanssi_get_post_status($doc);
|
| 111 |
+
|
| 112 |
+
// if it's not public, don't show
|
| 113 |
+
if ('publish' != $status) {
|
| 114 |
+
$post_ok = false;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
// ...unless
|
| 118 |
+
|
| 119 |
+
if ('private' == $status) {
|
| 120 |
+
$post_ok = false;
|
| 121 |
+
|
| 122 |
+
if (function_exists('awp_user_can')) {
|
| 123 |
+
// Role-Scoper, though Role-Scoper actually uses a different function to do this
|
| 124 |
+
// So whatever is in here doesn't actually run.
|
| 125 |
+
$current_user = wp_get_current_user();
|
| 126 |
+
$post_ok = awp_user_can('read_post', $doc, $current_user->ID);
|
| 127 |
+
}
|
| 128 |
+
else {
|
| 129 |
+
// Basic WordPress version
|
| 130 |
+
$type = relevanssi_get_post_type($doc);
|
| 131 |
+
$cap = 'read_private_' . $type . 's';
|
| 132 |
+
if (current_user_can($cap)) {
|
| 133 |
+
$post_ok = true;
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
+
}
|
| 137 |
+
|
| 138 |
+
// only show drafts, pending and future posts in admin search
|
| 139 |
+
if (in_array($status, array('draft', 'pending', 'future')) && is_admin()) {
|
| 140 |
+
$post_ok = true;
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
if (relevanssi_s2member_level($doc) == 0) $post_ok = false; // not ok with s2member
|
| 144 |
+
|
| 145 |
+
return $post_ok;
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
/**
|
| 149 |
+
* Return values:
|
| 150 |
+
* 2: full access to post
|
| 151 |
+
* 1: show title only
|
| 152 |
+
* 0: no access to post
|
| 153 |
+
* -1: s2member not active
|
| 154 |
+
*/
|
| 155 |
+
function relevanssi_s2member_level($doc) {
|
| 156 |
+
$return = -1;
|
| 157 |
+
if (function_exists('is_permitted_by_s2member')) {
|
| 158 |
+
// s2member
|
| 159 |
+
$alt_view_protect = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["filter_wp_query"];
|
| 160 |
+
|
| 161 |
+
if (version_compare (WS_PLUGIN__S2MEMBER_VERSION, "110912", ">="))
|
| 162 |
+
$completely_hide_protected_search_results = (in_array ("all", $alt_view_protect) || in_array ("searches", $alt_view_protect)) ? true : false;
|
| 163 |
+
else /* Backward compatibility with versions of s2Member, prior to v110912. */
|
| 164 |
+
$completely_hide_protected_search_results = (strpos ($alt_view_protect, "all") !== false || strpos ($alt_view_protect, "searches") !== false) ? true : false;
|
| 165 |
+
|
| 166 |
+
if (is_permitted_by_s2member($doc)) {
|
| 167 |
+
// Show title and excerpt, even full content if you like.
|
| 168 |
+
$return = 2;
|
| 169 |
+
}
|
| 170 |
+
else if (!is_permitted_by_s2member($doc) && $completely_hide_protected_search_results === false) {
|
| 171 |
+
// Show title and excerpt. Alt View Protection is NOT enabled for search results. However, do NOT show full content body.
|
| 172 |
+
$return = 1;
|
| 173 |
+
}
|
| 174 |
+
else {
|
| 175 |
+
// Hide this search result completely.
|
| 176 |
+
$return = 0;
|
| 177 |
+
}
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
return $return;
|
| 181 |
+
}
|
| 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) {
|
| 188 |
+
array_push($ids, $match->doc);
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
$ids = implode(',', $ids);
|
| 192 |
+
$posts = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE id IN ($ids)");
|
| 193 |
+
foreach ($posts as $post) {
|
| 194 |
+
$relevanssi_post_array[$post->ID] = $post;
|
| 195 |
+
$relevanssi_post_types[$post->ID] = $post->post_type;
|
| 196 |
+
}
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
function relevanssi_get_term_taxonomy($id) {
|
| 200 |
+
global $wpdb;
|
| 201 |
+
$taxonomy = $wpdb->get_var("SELECT taxonomy FROM $wpdb->term_taxonomy WHERE term_id = $id");
|
| 202 |
+
return $taxonomy;
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
/**
|
| 206 |
+
* Extracts phrases from search query
|
| 207 |
+
* Returns an array of phrases
|
| 208 |
+
*/
|
| 209 |
+
function relevanssi_extract_phrases($q) {
|
| 210 |
+
if ( function_exists( 'mb_strpos' ) )
|
| 211 |
+
$pos = mb_strpos($q, '"');
|
| 212 |
+
else
|
| 213 |
+
$pos = strpos($q, '"');
|
| 214 |
+
|
| 215 |
+
$phrases = array();
|
| 216 |
+
while ($pos !== false) {
|
| 217 |
+
$start = $pos;
|
| 218 |
+
if ( function_exists( 'mb_strpos' ) )
|
| 219 |
+
$end = mb_strpos($q, '"', $start + 1);
|
| 220 |
+
else
|
| 221 |
+
$end = strpos($q, '"', $start + 1);
|
| 222 |
+
|
| 223 |
+
if ($end === false) {
|
| 224 |
+
// just one " in the query
|
| 225 |
+
$pos = $end;
|
| 226 |
+
continue;
|
| 227 |
+
}
|
| 228 |
+
if ( function_exists( 'mb_substr' ) )
|
| 229 |
+
$phrase = mb_substr($q, $start + 1, $end - $start - 1);
|
| 230 |
+
else
|
| 231 |
+
$phrase = substr($q, $start + 1, $end - $start - 1);
|
| 232 |
+
|
| 233 |
+
$phrases[] = $phrase;
|
| 234 |
+
$pos = $end;
|
| 235 |
+
}
|
| 236 |
+
return $phrases;
|
| 237 |
+
}
|
| 238 |
+
|
| 239 |
+
/* If no phrase hits are made, this function returns false
|
| 240 |
+
* If phrase matches are found, the function presents a comma-separated list of doc id's.
|
| 241 |
+
* If phrase matches are found, but no matching documents, function returns -1.
|
| 242 |
+
*/
|
| 243 |
+
function relevanssi_recognize_phrases($q) {
|
| 244 |
+
global $wpdb;
|
| 245 |
+
|
| 246 |
+
$phrases = relevanssi_extract_phrases($q);
|
| 247 |
+
|
| 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 |
+
|
| 256 |
+
$docs = $wpdb->get_results($query);
|
| 257 |
+
|
| 258 |
+
if (is_array($docs)) {
|
| 259 |
+
foreach ($docs as $doc) {
|
| 260 |
+
if (!isset($phrase_matches[$phrase])) {
|
| 261 |
+
$phrase_matches[$phrase] = array();
|
| 262 |
+
}
|
| 263 |
+
$phrase_matches[$phrase][] = $doc->ID;
|
| 264 |
+
}
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
$query = "SELECT ID FROM $wpdb->posts as p, $wpdb->term_relationships as r, $wpdb->term_taxonomy as s, $wpdb->terms as t
|
| 268 |
+
WHERE r.term_taxonomy_id = s.term_taxonomy_id AND s.term_id = t.term_id AND p.ID = r.object_id
|
| 269 |
+
AND t.name LIKE '%$phrase%' AND p.post_status IN ('publish', 'draft', 'private', 'pending', 'future', 'inherit')";
|
| 270 |
+
|
| 271 |
+
$docs = $wpdb->get_results($query);
|
| 272 |
+
if (is_array($docs)) {
|
| 273 |
+
foreach ($docs as $doc) {
|
| 274 |
+
if (!isset($phrase_matches[$phrase])) {
|
| 275 |
+
$phrase_matches[$phrase] = array();
|
| 276 |
+
}
|
| 277 |
+
$phrase_matches[$phrase][] = $doc->ID;
|
| 278 |
+
}
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
$query = "SELECT ID
|
| 282 |
+
FROM $wpdb->posts AS p, $wpdb->postmeta AS m
|
| 283 |
+
WHERE p.ID = m.post_id
|
| 284 |
+
AND m.meta_value LIKE '%$phrase%'
|
| 285 |
+
AND p.post_status IN ('publish', 'draft', 'private', 'pending', 'future', 'inherit')";
|
| 286 |
+
|
| 287 |
+
$docs = $wpdb->get_results($query);
|
| 288 |
+
if (is_array($docs)) {
|
| 289 |
+
foreach ($docs as $doc) {
|
| 290 |
+
if (!isset($phrase_matches[$phrase])) {
|
| 291 |
+
$phrase_matches[$phrase] = array();
|
| 292 |
+
}
|
| 293 |
+
$phrase_matches[$phrase][] = $doc->ID;
|
| 294 |
+
}
|
| 295 |
+
}
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
if (count($phrase_matches) < 1) {
|
| 299 |
+
$phrases = "-1";
|
| 300 |
+
}
|
| 301 |
+
else {
|
| 302 |
+
// Complicated mess, but necessary...
|
| 303 |
+
$i = 0;
|
| 304 |
+
$phms = array();
|
| 305 |
+
foreach ($phrase_matches as $phm) {
|
| 306 |
+
$phms[$i++] = $phm;
|
| 307 |
+
}
|
| 308 |
+
|
| 309 |
+
$phrases = $phms[0];
|
| 310 |
+
if ($i > 1) {
|
| 311 |
+
for ($i = 1; $i < count($phms); $i++) {
|
| 312 |
+
$phrases = array_intersect($phrases, $phms[$i]);
|
| 313 |
+
}
|
| 314 |
+
}
|
| 315 |
+
|
| 316 |
+
if (count($phrases) < 1) {
|
| 317 |
+
$phrases = "-1";
|
| 318 |
+
}
|
| 319 |
+
else {
|
| 320 |
+
$phrases = implode(",", $phrases);
|
| 321 |
+
}
|
| 322 |
+
}
|
| 323 |
+
}
|
| 324 |
+
else {
|
| 325 |
+
$phrases = false;
|
| 326 |
+
}
|
| 327 |
+
|
| 328 |
+
return $phrases;
|
| 329 |
+
}
|
| 330 |
+
|
| 331 |
+
// found here: http://forums.digitalpoint.com/showthread.php?t=1106745
|
| 332 |
+
function relevanssi_strip_invisibles($text) {
|
| 333 |
+
$text = preg_replace(
|
| 334 |
+
array(
|
| 335 |
+
'@<style[^>]*?>.*?</style>@siu',
|
| 336 |
+
'@<script[^>]*?.*?</script>@siu',
|
| 337 |
+
'@<object[^>]*?.*?</object>@siu',
|
| 338 |
+
'@<embed[^>]*?.*?</embed>@siu',
|
| 339 |
+
'@<applet[^>]*?.*?</applet>@siu',
|
| 340 |
+
'@<noscript[^>]*?.*?</noscript>@siu',
|
| 341 |
+
'@<noembed[^>]*?.*?</noembed>@siu',
|
| 342 |
+
'@<iframe[^>]*?.*?</iframe>@siu',
|
| 343 |
+
'@<del[^>]*?.*?</del>@siu',
|
| 344 |
+
),
|
| 345 |
+
' ',
|
| 346 |
+
$text );
|
| 347 |
+
return $text;
|
| 348 |
+
}
|
| 349 |
+
|
| 350 |
+
function relevanssi_strlen_sort($a, $b) {
|
| 351 |
+
return strlen($b) - strlen($a);
|
| 352 |
+
}
|
| 353 |
+
|
| 354 |
+
function relevanssi_get_custom_fields() {
|
| 355 |
+
$custom_fields = get_option("relevanssi_index_fields");
|
| 356 |
+
if ($custom_fields) {
|
| 357 |
+
if ($custom_fields == 'all') {
|
| 358 |
+
return $custom_fields;
|
| 359 |
+
}
|
| 360 |
+
else if ($custom_fields == 'visible') {
|
| 361 |
+
return $custom_fields;
|
| 362 |
+
}
|
| 363 |
+
else {
|
| 364 |
+
$custom_fields = explode(",", $custom_fields);
|
| 365 |
+
for ($i = 0; $i < count($custom_fields); $i++) {
|
| 366 |
+
$custom_fields[$i] = trim($custom_fields[$i]);
|
| 367 |
+
}
|
| 368 |
+
}
|
| 369 |
+
}
|
| 370 |
+
else {
|
| 371 |
+
$custom_fields = false;
|
| 372 |
+
}
|
| 373 |
+
return $custom_fields;
|
| 374 |
+
}
|
| 375 |
+
|
| 376 |
+
function relevanssi_mb_trim($string) {
|
| 377 |
+
$string = str_replace(chr(194) . chr(160), '', $string);
|
| 378 |
+
$string = preg_replace( "/(^\s+)|(\s+$)/us", "", $string );
|
| 379 |
+
return $string;
|
| 380 |
+
}
|
| 381 |
+
|
| 382 |
+
function relevanssi_remove_punct($a) {
|
| 383 |
+
$a = strip_tags($a);
|
| 384 |
+
$a = stripslashes($a);
|
| 385 |
+
|
| 386 |
+
$a = str_replace("·", '', $a);
|
| 387 |
+
$a = str_replace("…", '', $a);
|
| 388 |
+
$a = str_replace("€", '', $a);
|
| 389 |
+
$a = str_replace("­", '', $a);
|
| 390 |
+
|
| 391 |
+
$a = str_replace('’', ' ', $a);
|
| 392 |
+
$a = str_replace("'", ' ', $a);
|
| 393 |
+
$a = str_replace("’", ' ', $a);
|
| 394 |
+
$a = str_replace("‘", ' ', $a);
|
| 395 |
+
$a = str_replace("”", ' ', $a);
|
| 396 |
+
$a = str_replace("“", ' ', $a);
|
| 397 |
+
$a = str_replace("„", ' ', $a);
|
| 398 |
+
$a = str_replace("´", ' ', $a);
|
| 399 |
+
$a = str_replace("—", ' ', $a);
|
| 400 |
+
$a = str_replace("–", ' ', $a);
|
| 401 |
+
$a = str_replace("×", ' ', $a);
|
| 402 |
+
$a = preg_replace('/[[:punct:]]+/u', ' ', $a);
|
| 403 |
+
|
| 404 |
+
$a = preg_replace('/[[:space:]]+/', ' ', $a);
|
| 405 |
+
$a = trim($a);
|
| 406 |
+
|
| 407 |
+
return $a;
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
|
| 411 |
+
/**
|
| 412 |
+
* This function will prevent the default search from running, when Relevanssi is
|
| 413 |
+
* active.
|
| 414 |
+
* Thanks to John Blackbourne.
|
| 415 |
+
*/
|
| 416 |
+
function relevanssi_prevent_default_request( $request, $query ) {
|
| 417 |
+
if ($query->is_search) {
|
| 418 |
+
global $wpdb;
|
| 419 |
+
if (isset($query->query_vars['post_type']) && isset($query->query_vars['post_status'])) {
|
| 420 |
+
if ($query->query_vars['post_type'] == 'attachment' && $query->query_vars['post_status'] == 'inherit,private') {
|
| 421 |
+
// this is a media library search; do not meddle
|
| 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;
|
| 431 |
+
}
|
| 432 |
+
|
| 433 |
+
function relevanssi_tokenize($str, $remove_stops = true, $min_word_length = -1) {
|
| 434 |
+
$tokens = array();
|
| 435 |
+
if (is_array($str)) {
|
| 436 |
+
foreach ($str as $part) {
|
| 437 |
+
$tokens = array_merge($tokens, relevanssi_tokenize($part, $remove_stops, $min_word_length));
|
| 438 |
+
}
|
| 439 |
+
}
|
| 440 |
+
if (is_array($str)) return $tokens;
|
| 441 |
+
|
| 442 |
+
if ( function_exists('mb_internal_encoding') )
|
| 443 |
+
mb_internal_encoding("UTF-8");
|
| 444 |
+
|
| 445 |
+
if ($remove_stops) {
|
| 446 |
+
$stopword_list = relevanssi_fetch_stopwords();
|
| 447 |
+
}
|
| 448 |
+
|
| 449 |
+
if (function_exists('relevanssi_thousandsep')) {
|
| 450 |
+
$str = relevanssi_thousandsep($str);
|
| 451 |
+
}
|
| 452 |
+
|
| 453 |
+
$str = apply_filters('relevanssi_remove_punctuation', $str);
|
| 454 |
+
|
| 455 |
+
if ( function_exists('mb_strtolower') )
|
| 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 ");
|
| 465 |
+
continue;
|
| 466 |
+
}
|
| 467 |
+
if ($remove_stops == false) {
|
| 468 |
+
$accept = true;
|
| 469 |
+
}
|
| 470 |
+
else {
|
| 471 |
+
if (count($stopword_list) > 0) { //added by OdditY -> got warning when stopwords table was empty
|
| 472 |
+
if (in_array($t, $stopword_list)) {
|
| 473 |
+
$accept = false;
|
| 474 |
+
}
|
| 475 |
+
}
|
| 476 |
+
}
|
| 477 |
+
|
| 478 |
+
if (RELEVANSSI_PREMIUM) {
|
| 479 |
+
$t = apply_filters('relevanssi_premium_tokenizer', $t);
|
| 480 |
+
}
|
| 481 |
+
|
| 482 |
+
if ($accept) {
|
| 483 |
+
$t = relevanssi_mb_trim($t);
|
| 484 |
+
if (!isset($tokens[$t])) {
|
| 485 |
+
$tokens[$t] = 1;
|
| 486 |
+
}
|
| 487 |
+
else {
|
| 488 |
+
$tokens[$t]++;
|
| 489 |
+
}
|
| 490 |
+
}
|
| 491 |
+
|
| 492 |
+
$t = strtok("\n\t ");
|
| 493 |
+
}
|
| 494 |
+
|
| 495 |
+
return $tokens;
|
| 496 |
+
}
|
| 497 |
+
|
| 498 |
+
function relevanssi_get_post_status($id) {
|
| 499 |
+
global $relevanssi_post_array;
|
| 500 |
+
|
| 501 |
+
$type = substr($id, 0, 2);
|
| 502 |
+
if ($type == 't_') {
|
| 503 |
+
return 'publish';
|
| 504 |
+
}
|
| 505 |
+
if ($type == 'u_') {
|
| 506 |
+
return 'publish';
|
| 507 |
+
}
|
| 508 |
+
|
| 509 |
+
if (isset($relevanssi_post_array[$id])) {
|
| 510 |
+
$status = $relevanssi_post_array[$id]->post_status;
|
| 511 |
+
if ('inherit' == $status) {
|
| 512 |
+
$parent = $relevanssi_post_array[$id]->post_parent;
|
| 513 |
+
$status = relevanssi_get_post_status($parent);
|
| 514 |
+
if ($status == false) {
|
| 515 |
+
// attachment without a parent
|
| 516 |
+
// let's assume it's public
|
| 517 |
+
$status = 'publish';
|
| 518 |
+
}
|
| 519 |
+
}
|
| 520 |
+
return $status;
|
| 521 |
+
}
|
| 522 |
+
else {
|
| 523 |
+
return get_post_status($id);
|
| 524 |
+
}
|
| 525 |
+
}
|
| 526 |
+
|
| 527 |
+
function relevanssi_get_post_type($id) {
|
| 528 |
+
global $relevanssi_post_array;
|
| 529 |
+
|
| 530 |
+
if (isset($relevanssi_post_array[$id])) {
|
| 531 |
+
return $relevanssi_post_array[$id]->post_type;
|
| 532 |
+
}
|
| 533 |
+
else {
|
| 534 |
+
return get_post_type($id);
|
| 535 |
+
}
|
| 536 |
+
}
|
| 537 |
+
|
| 538 |
+
?>
|
lib/excerpts-highlights.php
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/** EXCERPTS **/
|
| 4 |
+
|
| 5 |
+
function relevanssi_the_excerpt() {
|
| 6 |
+
global $post;
|
| 7 |
+
if (!post_password_required($post)) {
|
| 8 |
+
echo "<p>" . $post->post_excerpt . "</p>";
|
| 9 |
+
}
|
| 10 |
+
else {
|
| 11 |
+
echo __('There is no excerpt because this is a protected post.');
|
| 12 |
+
}
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
function relevanssi_do_excerpt($t_post, $query) {
|
| 16 |
+
global $post;
|
| 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 |
+
}
|
| 42 |
+
}
|
| 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 |
+
}
|
| 50 |
+
}
|
| 51 |
+
|
| 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 |
+
|
| 60 |
+
$highlight = get_option('relevanssi_highlight');
|
| 61 |
+
if ("none" != $highlight) {
|
| 62 |
+
if (!is_admin()) {
|
| 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;
|
| 75 |
+
|
| 76 |
+
if ($old_global_post != NULL) $post = $old_global_post;
|
| 77 |
+
|
| 78 |
+
return $excerpt;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
/**
|
| 82 |
+
* Creates an excerpt from content.
|
| 83 |
+
*
|
| 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");
|
| 91 |
+
|
| 92 |
+
$best_excerpt_term_hits = -1;
|
| 93 |
+
$excerpt = "";
|
| 94 |
+
|
| 95 |
+
$content = " $content";
|
| 96 |
+
$start = false;
|
| 97 |
+
if ("chars" == $type) {
|
| 98 |
+
$term_hits = 0;
|
| 99 |
+
foreach (array_keys($terms) as $term) {
|
| 100 |
+
$term = " $term";
|
| 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);
|
| 108 |
+
$pos = mb_strpos($content, $titlecased);
|
| 109 |
+
if (false === $pos) {
|
| 110 |
+
$pos = mb_strpos($content, mb_strtoupper($term));
|
| 111 |
+
}
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
else {
|
| 115 |
+
$pos = strpos($content, $term);
|
| 116 |
+
if (false === $pos) {
|
| 117 |
+
$titlecased = strtoupper(substr($term, 0, 1)) . substr($term, 1);
|
| 118 |
+
$pos = strpos($content, $titlecased);
|
| 119 |
+
if (false === $pos) {
|
| 120 |
+
$pos = strpos($content, strtoupper($term));
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
if (false !== $pos) {
|
| 126 |
+
$term_hits++;
|
| 127 |
+
if ($term_hits > $best_excerpt_term_hits) {
|
| 128 |
+
$best_excerpt_term_hits = $term_hits;
|
| 129 |
+
if ($pos + strlen($term) < $excerpt_length) {
|
| 130 |
+
if (function_exists('mb_substr'))
|
| 131 |
+
$excerpt = mb_substr($content, 0, $excerpt_length);
|
| 132 |
+
else
|
| 133 |
+
$excerpt = substr($content, 0, $excerpt_length);
|
| 134 |
+
$start = true;
|
| 135 |
+
}
|
| 136 |
+
else {
|
| 137 |
+
$half = floor($excerpt_length/2);
|
| 138 |
+
$pos = $pos - $half;
|
| 139 |
+
if (function_exists('mb_substr'))
|
| 140 |
+
$excerpt = mb_substr($content, $pos, $excerpt_length);
|
| 141 |
+
else
|
| 142 |
+
$excerpt = substr($content, $pos, $excerpt_length);
|
| 143 |
+
}
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
if ("" == $excerpt) {
|
| 149 |
+
if (function_exists('mb_substr'))
|
| 150 |
+
$excerpt = mb_substr($content, 0, $excerpt_length);
|
| 151 |
+
else
|
| 152 |
+
$excerpt = substr($content, 0, $excerpt_length);
|
| 153 |
+
$start = true;
|
| 154 |
+
}
|
| 155 |
+
}
|
| 156 |
+
else {
|
| 157 |
+
$words = explode(' ', $content);
|
| 158 |
+
|
| 159 |
+
$i = 0;
|
| 160 |
+
|
| 161 |
+
while ($i < count($words)) {
|
| 162 |
+
if ($i + $excerpt_length > count($words)) {
|
| 163 |
+
$i = count($words) - $excerpt_length;
|
| 164 |
+
}
|
| 165 |
+
$excerpt_slice = array_slice($words, $i, $excerpt_length);
|
| 166 |
+
$excerpt_slice = implode(' ', $excerpt_slice);
|
| 167 |
+
|
| 168 |
+
$excerpt_slice = " $excerpt_slice";
|
| 169 |
+
$term_hits = 0;
|
| 170 |
+
foreach (array_keys($terms) as $term) {
|
| 171 |
+
$term = " $term";
|
| 172 |
+
if (function_exists('mb_stripos')) {
|
| 173 |
+
$pos = ("" == $excerpt_slice) ? false : mb_stripos($excerpt_slice, $term);
|
| 174 |
+
// To avoid "empty haystack" warnings
|
| 175 |
+
}
|
| 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 |
+
}
|
| 186 |
+
else {
|
| 187 |
+
$pos = strpos($excerpt_slice, $term);
|
| 188 |
+
if (false === $pos) {
|
| 189 |
+
$titlecased = strtoupper(substr($term, 0, 1)) . substr($term, 1);
|
| 190 |
+
$pos = strpos($excerpt_slice, $titlecased);
|
| 191 |
+
if (false === $pos) {
|
| 192 |
+
$pos = strpos($excerpt_slice, strtoupper($term));
|
| 193 |
+
}
|
| 194 |
+
}
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
+
if (false !== $pos) {
|
| 198 |
+
$term_hits++;
|
| 199 |
+
if (0 == $i) $start = true;
|
| 200 |
+
if ($term_hits > $best_excerpt_term_hits) {
|
| 201 |
+
$best_excerpt_term_hits = $term_hits;
|
| 202 |
+
$excerpt = $excerpt_slice;
|
| 203 |
+
}
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
$i += $excerpt_length;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
if ("" == $excerpt) {
|
| 211 |
+
$excerpt = explode(' ', $content, $excerpt_length);
|
| 212 |
+
array_pop($excerpt);
|
| 213 |
+
$excerpt = implode(' ', $excerpt);
|
| 214 |
+
$start = true;
|
| 215 |
+
}
|
| 216 |
+
}
|
| 217 |
+
|
| 218 |
+
return array($excerpt, $best_excerpt_term_hits, $start);
|
| 219 |
+
}
|
| 220 |
+
|
| 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 |
+
|
| 241 |
+
return $content;
|
| 242 |
+
}
|
| 243 |
+
|
| 244 |
+
function relevanssi_highlight_terms($excerpt, $query) {
|
| 245 |
+
$type = get_option("relevanssi_highlight");
|
| 246 |
+
if ("none" == $type) {
|
| 247 |
+
return $excerpt;
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
switch ($type) {
|
| 251 |
+
case "mark": // thanks to Jeff Byrnes
|
| 252 |
+
$start_emp = "<mark>";
|
| 253 |
+
$end_emp = "</mark>";
|
| 254 |
+
break;
|
| 255 |
+
case "strong":
|
| 256 |
+
$start_emp = "<strong>";
|
| 257 |
+
$end_emp = "</strong>";
|
| 258 |
+
break;
|
| 259 |
+
case "em":
|
| 260 |
+
$start_emp = "<em>";
|
| 261 |
+
$end_emp = "</em>";
|
| 262 |
+
break;
|
| 263 |
+
case "col":
|
| 264 |
+
$col = get_option("relevanssi_txt_col");
|
| 265 |
+
if (!$col) $col = "#ff0000";
|
| 266 |
+
$start_emp = "<span style='color: $col'>";
|
| 267 |
+
$end_emp = "</span>";
|
| 268 |
+
break;
|
| 269 |
+
case "bgcol":
|
| 270 |
+
$col = get_option("relevanssi_bg_col");
|
| 271 |
+
if (!$col) $col = "#ff0000";
|
| 272 |
+
$start_emp = "<span style='background-color: $col'>";
|
| 273 |
+
$end_emp = "</span>";
|
| 274 |
+
break;
|
| 275 |
+
case "css":
|
| 276 |
+
$css = get_option("relevanssi_css");
|
| 277 |
+
if (!$css) $css = "color: #ff0000";
|
| 278 |
+
$start_emp = "<span style='$css'>";
|
| 279 |
+
$end_emp = "</span>";
|
| 280 |
+
break;
|
| 281 |
+
case "class":
|
| 282 |
+
$css = get_option("relevanssi_class");
|
| 283 |
+
if (!$css) $css = "relevanssi-query-term";
|
| 284 |
+
$start_emp = "<span class='$css'>";
|
| 285 |
+
$end_emp = "</span>";
|
| 286 |
+
break;
|
| 287 |
+
default:
|
| 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;
|
| 307 |
+
}
|
| 308 |
+
}
|
| 309 |
+
$terms = $non_phrase_terms;
|
| 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);
|
| 332 |
+
if (function_exists('mb_ereg_replace')) {
|
| 333 |
+
$pattern = $end_emp . '\s*' . $start_emp;
|
| 334 |
+
$excerpt = mb_ereg_replace($pattern, " ", $excerpt);
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
return $excerpt;
|
| 338 |
+
}
|
| 339 |
+
|
| 340 |
+
function relevanssi_remove_nested_highlights($s, $a, $b) {
|
| 341 |
+
$offset = 0;
|
| 342 |
+
$string = "";
|
| 343 |
+
$bits = explode($a, $s);
|
| 344 |
+
$new_bits = array($bits[0]);
|
| 345 |
+
$in = false;
|
| 346 |
+
for ($i = 1; $i < count($bits); $i++) {
|
| 347 |
+
if ($bits[$i] == '') continue;
|
| 348 |
+
|
| 349 |
+
if (!$in) {
|
| 350 |
+
array_push($new_bits, $a);
|
| 351 |
+
$in = true;
|
| 352 |
+
}
|
| 353 |
+
if (substr_count($bits[$i], $b) > 0) {
|
| 354 |
+
$in = false;
|
| 355 |
+
}
|
| 356 |
+
if (substr_count($bits[$i], $b) > 1) {
|
| 357 |
+
$more_bits = explode($b, $bits[$i]);
|
| 358 |
+
$j = 0;
|
| 359 |
+
$k = count($more_bits) - 2;
|
| 360 |
+
$whole_bit = "";
|
| 361 |
+
foreach ($more_bits as $bit) {
|
| 362 |
+
$whole_bit .= $bit;
|
| 363 |
+
if ($j == $k) $whole_bit .= $b;
|
| 364 |
+
$j++;
|
| 365 |
+
}
|
| 366 |
+
$bits[$i] = $whole_bit;
|
| 367 |
+
}
|
| 368 |
+
array_push($new_bits, $bits[$i]);
|
| 369 |
+
}
|
| 370 |
+
$whole = implode('', $new_bits);
|
| 371 |
+
|
| 372 |
+
return $whole;
|
| 373 |
+
}
|
| 374 |
+
|
| 375 |
+
?>
|
lib/indexing.php
ADDED
|
@@ -0,0 +1,632 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
function relevanssi_build_index($extend = false) {
|
| 4 |
+
global $wpdb, $relevanssi_variables;
|
| 5 |
+
$relevanssi_table = $relevanssi_variables['relevanssi_table'];
|
| 6 |
+
|
| 7 |
+
if (!ini_get('safe_mode')) set_time_limit(0);
|
| 8 |
+
|
| 9 |
+
$post_types = array();
|
| 10 |
+
$types = get_option("relevanssi_index_post_types");
|
| 11 |
+
if (!is_array($types)) $types = array();
|
| 12 |
+
foreach ($types as $type) {
|
| 13 |
+
array_push($post_types, "'$type'");
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
if (count($post_types) > 0) {
|
| 17 |
+
$restriction = " AND post.post_type IN (" . implode(', ', $post_types) . ') ';
|
| 18 |
+
}
|
| 19 |
+
else {
|
| 20 |
+
$restriction = "";
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
$n = 0;
|
| 24 |
+
$size = 0;
|
| 25 |
+
|
| 26 |
+
if (!$extend) {
|
| 27 |
+
// truncate table first
|
| 28 |
+
$wpdb->query("TRUNCATE TABLE $relevanssi_table");
|
| 29 |
+
|
| 30 |
+
if (function_exists('relevanssi_index_taxonomies')) {
|
| 31 |
+
if (get_option('relevanssi_index_taxonomies') == 'on') {
|
| 32 |
+
relevanssi_index_taxonomies();
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
if (function_exists('relevanssi_index_users')) {
|
| 37 |
+
if (get_option('relevanssi_index_users') == 'on') {
|
| 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', '');
|
| 53 |
+
}
|
| 54 |
+
else {
|
| 55 |
+
// extending, so no truncate and skip the posts already in the index
|
| 56 |
+
$limit = get_option('relevanssi_index_limit', 200);
|
| 57 |
+
if ($limit > 0) {
|
| 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) {
|
| 78 |
+
$n += relevanssi_index_doc($post->ID, false, $custom_fields);
|
| 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>';
|
| 85 |
+
update_option('relevanssi_indexed', 'done');
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
// BEGIN modified by renaissancehack
|
| 89 |
+
// recieve $post argument as $indexpost, so we can make it the $post global. This will allow shortcodes
|
| 90 |
+
// that need to know what post is calling them to access $post->ID
|
| 91 |
+
/*
|
| 92 |
+
Different cases:
|
| 93 |
+
|
| 94 |
+
- Build index:
|
| 95 |
+
global $post is NULL, $indexpost is a post object.
|
| 96 |
+
|
| 97 |
+
- Update post:
|
| 98 |
+
global $post has the original $post, $indexpost is the ID of revision.
|
| 99 |
+
|
| 100 |
+
- Quick edit:
|
| 101 |
+
global $post is an array, $indexpost is the ID of current revision.
|
| 102 |
+
*/
|
| 103 |
+
function relevanssi_index_doc($indexpost, $remove_first = false, $custom_fields = false, $bypassglobalpost = false) {
|
| 104 |
+
global $wpdb, $post, $relevanssi_variables;
|
| 105 |
+
$relevanssi_table = $relevanssi_variables['relevanssi_table'];
|
| 106 |
+
$post_was_null = false;
|
| 107 |
+
$previous_post = NULL;
|
| 108 |
+
|
| 109 |
+
// Check if this is a Jetpack Contact Form entry
|
| 110 |
+
if (isset($_REQUEST['contact-form-id'])) return;
|
| 111 |
+
|
| 112 |
+
if ($bypassglobalpost) {
|
| 113 |
+
// if $bypassglobalpost is set, relevanssi_index_doc() will index the post object or post
|
| 114 |
+
// ID as specified in $indexpost
|
| 115 |
+
isset($post) ?
|
| 116 |
+
$previous_post = $post : $post_was_null = true;
|
| 117 |
+
is_object($indexpost) ?
|
| 118 |
+
$post = $indexpost : $post = get_post($indexpost);
|
| 119 |
+
}
|
| 120 |
+
else {
|
| 121 |
+
// Quick edit has an array in the global $post, so fetch the post ID for the post to edit.
|
| 122 |
+
if (is_array($post)) {
|
| 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)) {
|
| 130 |
+
$post = $indexpost;
|
| 131 |
+
}
|
| 132 |
+
else {
|
| 133 |
+
$post = get_post($indexpost);
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
+
else {
|
| 137 |
+
// $post was set, let's grab the previous value in case we need it
|
| 138 |
+
$previous_post = $post;
|
| 139 |
+
}
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
if ($post == NULL) {
|
| 143 |
+
// At this point we should have something in $post; if not, quit.
|
| 144 |
+
if ($post_was_null) $post = null;
|
| 145 |
+
if ($previous_post) $post = $previous_post;
|
| 146 |
+
return;
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
// Finally fetch the post again by ID. Complicated, yes, but unless we do this, we might end
|
| 150 |
+
// up indexing the post before the updates come in.
|
| 151 |
+
$post = get_post($post->ID);
|
| 152 |
+
|
| 153 |
+
if (function_exists('relevanssi_hide_post')) {
|
| 154 |
+
if (relevanssi_hide_post($post->ID)) {
|
| 155 |
+
if ($post_was_null) $post = null;
|
| 156 |
+
if ($previous_post) $post = $previous_post;
|
| 157 |
+
return;
|
| 158 |
+
}
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
if (true == apply_filters('relevanssi_do_not_index', false, $post->ID)) {
|
| 162 |
+
// filter says no
|
| 163 |
+
if ($post_was_null) $post = null;
|
| 164 |
+
if ($previous_post) $post = $previous_post;
|
| 165 |
+
return;
|
| 166 |
+
}
|
| 167 |
+
|
| 168 |
+
$index_this_post = false;
|
| 169 |
+
|
| 170 |
+
$post->indexing_content = true;
|
| 171 |
+
$index_types = get_option('relevanssi_index_post_types');
|
| 172 |
+
if (!is_array($index_types)) $index_types = array();
|
| 173 |
+
if (in_array($post->post_type, $index_types)) $index_this_post = true;
|
| 174 |
+
|
| 175 |
+
if ($remove_first) {
|
| 176 |
+
// we are updating a post, so remove the old stuff first
|
| 177 |
+
relevanssi_remove_doc($post->ID, true);
|
| 178 |
+
if (function_exists('relevanssi_remove_item')) {
|
| 179 |
+
relevanssi_remove_item($post->ID, 'post');
|
| 180 |
+
}
|
| 181 |
+
relevanssi_purge_excerpt_cache($post->ID);
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
// This needs to be here, after the call to relevanssi_remove_doc(), because otherwise
|
| 185 |
+
// a post that's in the index but shouldn't be there won't get removed. A remote chance,
|
| 186 |
+
// I mean who ever flips exclude_from_search between true and false once it's set, but
|
| 187 |
+
// I'd like to cover all bases.
|
| 188 |
+
if (!$index_this_post) {
|
| 189 |
+
if ($post_was_null) $post = null;
|
| 190 |
+
if ($previous_post) $post = $previous_post;
|
| 191 |
+
return;
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
$n = 0;
|
| 195 |
+
|
| 196 |
+
$min_word_length = get_option('relevanssi_min_word_length', 3);
|
| 197 |
+
$insert_data = array();
|
| 198 |
+
|
| 199 |
+
//Added by OdditY - INDEX COMMENTS of the POST ->
|
| 200 |
+
if ("none" != get_option("relevanssi_index_comments")) {
|
| 201 |
+
$pcoms = relevanssi_get_comments($post->ID);
|
| 202 |
+
if ($pcoms != "") {
|
| 203 |
+
$pcoms = relevanssi_strip_invisibles($pcoms);
|
| 204 |
+
$pcoms = preg_replace('/<[a-zA-Z\/][^>]*>/', ' ', $pcoms);
|
| 205 |
+
$pcoms = strip_tags($pcoms);
|
| 206 |
+
$pcoms = relevanssi_tokenize($pcoms, true, $min_word_length);
|
| 207 |
+
if (count($pcoms) > 0) {
|
| 208 |
+
foreach ($pcoms as $pcom => $count) {
|
| 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) {
|
| 239 |
+
$insert_data = relevanssi_index_taxonomy_terms($post, $taxonomy, $insert_data);
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
// index author
|
| 243 |
+
if ("on" == get_option("relevanssi_index_author")) {
|
| 244 |
+
$auth = $post->post_author;
|
| 245 |
+
$display_name = $wpdb->get_var("SELECT display_name FROM $wpdb->users WHERE ID=$auth");
|
| 246 |
+
$names = relevanssi_tokenize($display_name, false, $min_word_length);
|
| 247 |
+
foreach($names as $name => $count) {
|
| 248 |
+
isset($insert_data[$name]['author']) ? $insert_data[$name]['author'] += $count : $insert_data[$name]['author'] = $count;
|
| 249 |
+
}
|
| 250 |
+
}
|
| 251 |
+
|
| 252 |
+
if ($custom_fields) {
|
| 253 |
+
$remove_underscore_fields = false;
|
| 254 |
+
if ($custom_fields == 'all')
|
| 255 |
+
$custom_fields = get_post_custom_keys($post->ID);
|
| 256 |
+
if ($custom_fields == 'visible') {
|
| 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 |
+
}
|
| 275 |
+
}
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
if (isset($post->post_excerpt) && ("on" == get_option("relevanssi_index_excerpt") || "attachment" == $post->post_type)) { // include excerpt for attachments which use post_excerpt for captions - modified by renaissancehack
|
| 279 |
+
$excerpt_tokens = relevanssi_tokenize($post->post_excerpt, true, $min_word_length);
|
| 280 |
+
foreach ($excerpt_tokens as $token => $count) {
|
| 281 |
+
isset($insert_data[$token]['excerpt']) ? $insert_data[$token]['excerpt'] += $count : $insert_data[$token]['excerpt'] = $count;
|
| 282 |
+
}
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
if (function_exists('relevanssi_index_mysql_columns')) {
|
| 286 |
+
$insert_data = relevanssi_index_mysql_columns($insert_data, $post->ID);
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
$index_titles = true;
|
| 290 |
+
if (apply_filters('relevanssi_index_titles', $index_titles)) {
|
| 291 |
+
$titles = relevanssi_tokenize($post->post_title);
|
| 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 |
+
}
|
| 299 |
+
}
|
| 300 |
+
}
|
| 301 |
+
|
| 302 |
+
$index_content = true;
|
| 303 |
+
if (apply_filters('relevanssi_index_content', $index_content)) {
|
| 304 |
+
remove_shortcode('noindex');
|
| 305 |
+
add_shortcode('noindex', 'relevanssi_noindex_shortcode_indexing');
|
| 306 |
+
|
| 307 |
+
$contents = $post->post_content;
|
| 308 |
+
|
| 309 |
+
// Allow user to add extra content for Relevanssi to index
|
| 310 |
+
// Thanks to Alexander Gieg
|
| 311 |
+
$additional_content = trim(apply_filters('relevanssi_content_to_index', '', $post));
|
| 312 |
+
if ('' != $additional_content)
|
| 313 |
+
$contents .= ' '.$additional_content;
|
| 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 {
|
| 322 |
+
if (function_exists("strip_shortcodes")) {
|
| 323 |
+
// WP 2.5 doesn't have the function
|
| 324 |
+
$contents = strip_shortcodes($contents);
|
| 325 |
+
}
|
| 326 |
+
}
|
| 327 |
+
|
| 328 |
+
remove_shortcode('noindex');
|
| 329 |
+
add_shortcode('noindex', 'relevanssi_noindex_shortcode');
|
| 330 |
+
|
| 331 |
+
$contents = relevanssi_strip_invisibles($contents);
|
| 332 |
+
|
| 333 |
+
if (function_exists('relevanssi_process_internal_links')) {
|
| 334 |
+
$contents = relevanssi_process_internal_links($contents, $post->ID);
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
$contents = preg_replace('/<[a-zA-Z\/][^>]*>/', ' ', $contents);
|
| 338 |
+
$contents = strip_tags($contents);
|
| 339 |
+
$contents = relevanssi_tokenize($contents, true, $min_word_length);
|
| 340 |
+
|
| 341 |
+
if (count($contents) > 0) {
|
| 342 |
+
foreach ($contents as $content => $count) {
|
| 343 |
+
$n++;
|
| 344 |
+
isset($insert_data[$content]['content']) ? $insert_data[$content]['content'] += $count : $insert_data[$content]['content'] = $count;
|
| 345 |
+
}
|
| 346 |
+
}
|
| 347 |
+
}
|
| 348 |
+
|
| 349 |
+
$type = 'post';
|
| 350 |
+
if ($post->post_type == 'attachment') $type = 'attachment';
|
| 351 |
+
|
| 352 |
+
$values = array();
|
| 353 |
+
foreach ($insert_data as $term => $data) {
|
| 354 |
+
$content = 0;
|
| 355 |
+
$title = 0;
|
| 356 |
+
$comment = 0;
|
| 357 |
+
$tag = 0;
|
| 358 |
+
$link = 0;
|
| 359 |
+
$author = 0;
|
| 360 |
+
$category = 0;
|
| 361 |
+
$excerpt = 0;
|
| 362 |
+
$taxonomy = 0;
|
| 363 |
+
$customfield = 0;
|
| 364 |
+
$taxonomy_detail = '';
|
| 365 |
+
$customfield_detail = '';
|
| 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 |
+
}
|
| 381 |
+
|
| 382 |
+
if ($post_was_null) $post = null;
|
| 383 |
+
if ($previous_post) $post = $previous_post;
|
| 384 |
+
|
| 385 |
+
return $n;
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
/**
|
| 389 |
+
* Index taxonomy terms for given post and given taxonomy.
|
| 390 |
+
*
|
| 391 |
+
* @since 1.8
|
| 392 |
+
* @param object $post Post object.
|
| 393 |
+
* @param string $taxonomy Taxonomy name.
|
| 394 |
+
* @param array $insert_data Insert query data array.
|
| 395 |
+
* @return array Updated insert query data array.
|
| 396 |
+
*/
|
| 397 |
+
function relevanssi_index_taxonomy_terms($post = null, $taxonomy = "", $insert_data) {
|
| 398 |
+
global $wpdb, $relevanssi_variables;
|
| 399 |
+
$relevanssi_table = $relevanssi_variables['relevanssi_table'];
|
| 400 |
+
|
| 401 |
+
$n = 0;
|
| 402 |
+
|
| 403 |
+
if (null == $post) return $insert_data;
|
| 404 |
+
if ("" == $taxonomy) return $insert_data;
|
| 405 |
+
|
| 406 |
+
$min_word_length = get_option('relevanssi_min_word_length', 3);
|
| 407 |
+
$ptagobj = get_the_terms($post->ID, $taxonomy);
|
| 408 |
+
if ($ptagobj !== FALSE) {
|
| 409 |
+
$tagstr = "";
|
| 410 |
+
foreach ($ptagobj as $ptag) {
|
| 411 |
+
if (is_object($ptag)) {
|
| 412 |
+
$tagstr .= $ptag->name . ' ';
|
| 413 |
+
}
|
| 414 |
+
}
|
| 415 |
+
$tagstr = trim($tagstr);
|
| 416 |
+
$ptags = relevanssi_tokenize($tagstr, true, $min_word_length);
|
| 417 |
+
if (count($ptags) > 0) {
|
| 418 |
+
foreach ($ptags as $ptag => $count) {
|
| 419 |
+
$n++;
|
| 420 |
+
|
| 421 |
+
if ('post_tags' == $taxonomy) {
|
| 422 |
+
$insert_data[$ptag]['tag'] = $count;
|
| 423 |
+
}
|
| 424 |
+
else if ('category' == $taxonomy) {
|
| 425 |
+
$insert_data[$ptag]['category'] = $count;
|
| 426 |
+
}
|
| 427 |
+
else {
|
| 428 |
+
if (isset($insert_data[$ptag]['taxonomy'])) {
|
| 429 |
+
$insert_data[$ptag]['taxonomy'] += $count;
|
| 430 |
+
}
|
| 431 |
+
else {
|
| 432 |
+
$insert_data[$ptag]['taxonomy'] = $count;
|
| 433 |
+
}
|
| 434 |
+
}
|
| 435 |
+
if (isset($insert_data[$ptag]['taxonomy_detail'])) {
|
| 436 |
+
$tax_detail = unserialize($insert_data[$ptag]['taxonomy_detail']);
|
| 437 |
+
}
|
| 438 |
+
else {
|
| 439 |
+
$tax_detail = array();
|
| 440 |
+
}
|
| 441 |
+
if (isset($tax_detail[$taxonomy])) {
|
| 442 |
+
$tax_detail[$taxonomy] += $count;
|
| 443 |
+
}
|
| 444 |
+
else {
|
| 445 |
+
$tax_detail[$taxonomy] = $count;
|
| 446 |
+
}
|
| 447 |
+
$insert_data[$ptag]['taxonomy_detail'] = serialize($tax_detail);
|
| 448 |
+
}
|
| 449 |
+
}
|
| 450 |
+
}
|
| 451 |
+
return $insert_data;
|
| 452 |
+
}
|
| 453 |
+
|
| 454 |
+
// BEGIN added by renaissancehack
|
| 455 |
+
function relevanssi_update_child_posts($new_status, $old_status, $post) {
|
| 456 |
+
// called by 'transition_post_status' action hook when a post is edited/published/deleted
|
| 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')))) {
|
| 464 |
+
return;
|
| 465 |
+
}
|
| 466 |
+
$q = "SELECT * FROM $wpdb->posts WHERE post_parent=$post->ID AND post_type!='revision'";
|
| 467 |
+
$child_posts = $wpdb->get_results($q);
|
| 468 |
+
if ($child_posts) {
|
| 469 |
+
if (!in_array($new_status, $index_statuses)) {
|
| 470 |
+
foreach ($child_posts as $post) {
|
| 471 |
+
relevanssi_delete($post->ID);
|
| 472 |
+
}
|
| 473 |
+
} else {
|
| 474 |
+
foreach ($child_posts as $post) {
|
| 475 |
+
relevanssi_publish($post->ID);
|
| 476 |
+
}
|
| 477 |
+
}
|
| 478 |
+
}
|
| 479 |
+
}
|
| 480 |
+
// END added by renaissancehack
|
| 481 |
+
|
| 482 |
+
function relevanssi_edit($post) {
|
| 483 |
+
// Check if the post is public
|
| 484 |
+
global $wpdb;
|
| 485 |
+
|
| 486 |
+
$post_status = get_post_status($post);
|
| 487 |
+
if ('auto-draft' == $post_status) return;
|
| 488 |
+
|
| 489 |
+
// BEGIN added by renaissancehack
|
| 490 |
+
// if post_status is "inherit", get post_status from parent
|
| 491 |
+
if ($post_status == 'inherit') {
|
| 492 |
+
$post_type = $wpdb->get_var("SELECT post_type FROM $wpdb->posts WHERE ID=$post");
|
| 493 |
+
$post_status = $wpdb->get_var("SELECT p.post_status FROM $wpdb->posts p, $wpdb->posts c WHERE c.ID=$post AND c.post_parent=p.ID");
|
| 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);
|
| 501 |
+
}
|
| 502 |
+
else {
|
| 503 |
+
relevanssi_publish($post);
|
| 504 |
+
}
|
| 505 |
+
}
|
| 506 |
+
|
| 507 |
+
function relevanssi_delete($post) {
|
| 508 |
+
relevanssi_remove_doc($post);
|
| 509 |
+
relevanssi_purge_excerpt_cache($post);
|
| 510 |
+
}
|
| 511 |
+
|
| 512 |
+
function relevanssi_publish($post, $bypassglobalpost = false) {
|
| 513 |
+
global $relevanssi_publish_doc;
|
| 514 |
+
|
| 515 |
+
$post_status = get_post_status($post);
|
| 516 |
+
if ('auto-draft' == $post_status) return;
|
| 517 |
+
|
| 518 |
+
$custom_fields = relevanssi_get_custom_fields();
|
| 519 |
+
relevanssi_index_doc($post, true, $custom_fields, $bypassglobalpost);
|
| 520 |
+
}
|
| 521 |
+
|
| 522 |
+
// added by lumpysimon
|
| 523 |
+
// when we're using wp_insert_post to update a post,
|
| 524 |
+
// we don't want to use the global $post object
|
| 525 |
+
function relevanssi_insert_edit($post_id) {
|
| 526 |
+
global $wpdb;
|
| 527 |
+
|
| 528 |
+
$post_status = get_post_status( $post_id );
|
| 529 |
+
if ( 'auto-draft' == $post_status ) return;
|
| 530 |
+
|
| 531 |
+
if ( $post_status == 'inherit' ) {
|
| 532 |
+
$post_type = $wpdb->get_var( "SELECT post_type FROM $wpdb->posts WHERE ID=$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 );
|
| 540 |
+
}
|
| 541 |
+
else {
|
| 542 |
+
$bypassglobalpost = true;
|
| 543 |
+
relevanssi_publish($post_id, $bypassglobalpost);
|
| 544 |
+
}
|
| 545 |
+
}
|
| 546 |
+
|
| 547 |
+
//Added by OdditY ->
|
| 548 |
+
function relevanssi_comment_edit($comID) {
|
| 549 |
+
relevanssi_comment_index($comID,$action="update");
|
| 550 |
+
}
|
| 551 |
+
|
| 552 |
+
function relevanssi_comment_remove($comID) {
|
| 553 |
+
relevanssi_comment_index($comID,$action="remove");
|
| 554 |
+
}
|
| 555 |
+
|
| 556 |
+
function relevanssi_comment_index($comID,$action="add") {
|
| 557 |
+
global $wpdb;
|
| 558 |
+
$comtype = get_option("relevanssi_index_comments");
|
| 559 |
+
switch ($comtype) {
|
| 560 |
+
case "all":
|
| 561 |
+
// all (incl. customs, track-&pingbacks)
|
| 562 |
+
break;
|
| 563 |
+
case "normal":
|
| 564 |
+
// normal (excl. customs, track-&pingbacks)
|
| 565 |
+
$restriction=" AND comment_type='' ";
|
| 566 |
+
break;
|
| 567 |
+
default:
|
| 568 |
+
// none (don't index)
|
| 569 |
+
return ;
|
| 570 |
+
}
|
| 571 |
+
switch ($action) {
|
| 572 |
+
case "update":
|
| 573 |
+
//(update) comment status changed:
|
| 574 |
+
$cpostID = $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID='$comID'".$restriction);
|
| 575 |
+
break;
|
| 576 |
+
case "remove":
|
| 577 |
+
//(remove) approved comment will be deleted (if not approved, its not in index):
|
| 578 |
+
$cpostID = $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID='$comID' AND comment_approved='1'".$restriction);
|
| 579 |
+
if($cpostID!=NULL) {
|
| 580 |
+
//empty comment_content & reindex, then let WP delete the empty comment
|
| 581 |
+
$wpdb->query("UPDATE $wpdb->comments SET comment_content='' WHERE comment_ID='$comID'");
|
| 582 |
+
}
|
| 583 |
+
break;
|
| 584 |
+
default:
|
| 585 |
+
// (add) new comment:
|
| 586 |
+
$cpostID = $wpdb->get_var("SELECT comment_post_ID FROM $wpdb->comments WHERE comment_ID='$comID' AND comment_approved='1'".$restriction);
|
| 587 |
+
break;
|
| 588 |
+
}
|
| 589 |
+
if($cpostID!=NULL) relevanssi_publish($cpostID);
|
| 590 |
+
}
|
| 591 |
+
//Added by OdditY END <-
|
| 592 |
+
|
| 593 |
+
function relevanssi_get_comments($postID) {
|
| 594 |
+
global $wpdb;
|
| 595 |
+
|
| 596 |
+
$comtype = get_option("relevanssi_index_comments");
|
| 597 |
+
$restriction = "";
|
| 598 |
+
$comment_string = "";
|
| 599 |
+
switch ($comtype) {
|
| 600 |
+
case "all":
|
| 601 |
+
// all (incl. customs, track- & pingbacks)
|
| 602 |
+
break;
|
| 603 |
+
case "normal":
|
| 604 |
+
// normal (excl. customs, track- & pingbacks)
|
| 605 |
+
$restriction=" AND comment_type='' ";
|
| 606 |
+
break;
|
| 607 |
+
default:
|
| 608 |
+
// none (don't index)
|
| 609 |
+
return "";
|
| 610 |
+
}
|
| 611 |
+
|
| 612 |
+
$to = 20;
|
| 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'
|
| 620 |
+
".$restriction."
|
| 621 |
+
LIMIT $from, $to";
|
| 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 |
+
}
|
| 629 |
+
return $comment_string;
|
| 630 |
+
}
|
| 631 |
+
|
| 632 |
+
?>
|
lib/init.php
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 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
|
| 9 |
+
add_action('delete_comment', 'relevanssi_comment_remove'); //added by OdditY
|
| 10 |
+
add_action('wp_insert_post', 'relevanssi_insert_edit', 99, 1 ); // added by lumpysimon
|
| 11 |
+
// BEGIN added by renaissancehack
|
| 12 |
+
// *_page and *_post hooks do not trigger on attachments
|
| 13 |
+
add_action('delete_attachment', 'relevanssi_delete');
|
| 14 |
+
add_action('add_attachment', 'relevanssi_publish');
|
| 15 |
+
add_action('edit_attachment', 'relevanssi_edit');
|
| 16 |
+
// When a post status changes, check child posts that inherit their status from parent
|
| 17 |
+
add_action('transition_post_status', 'relevanssi_update_child_posts',99,3);
|
| 18 |
+
// END added by renaissancehack
|
| 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) {
|
| 38 |
+
function relevanssi_warning() {
|
| 39 |
+
RELEVANSSI_PREMIUM ? $plugin = 'relevanssi-premium' : $plugin = 'relevanssi';
|
| 40 |
+
echo "<div id='relevanssi-warning' class='updated fade'><p><strong>"
|
| 41 |
+
. sprintf(__('Relevanssi needs attention: Remember to build the index (you can do it at <a href="%1$s">the
|
| 42 |
+
settings page</a>), otherwise searching won\'t work.'), "options-general.php?page=" . $plugin . "/relevanssi.php")
|
| 43 |
+
. "</strong></p></div>";
|
| 44 |
+
}
|
| 45 |
+
add_action('admin_notices', 'relevanssi_warning');
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
if (!function_exists('mb_internal_encoding')) {
|
| 49 |
+
function relevanssi_mb_warning() {
|
| 50 |
+
echo "<div id='relevanssi-warning' class='updated fade'><p><strong>"
|
| 51 |
+
. "Multibyte string functions are not available. Relevanssi may not work well without them. "
|
| 52 |
+
. "Please install (or ask your host to install) the mbstring extension."
|
| 53 |
+
. "</strong></p></div>";
|
| 54 |
+
}
|
| 55 |
+
if ( 'options-general.php' == $pagenow and isset( $_GET['page'] ) and plugin_basename($relevanssi_variables['file']) == $_GET['page'] )
|
| 56 |
+
add_action('admin_notices', 'relevanssi_mb_warning');
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
if (!wp_next_scheduled('relevanssi_truncate_cache')) {
|
| 60 |
+
wp_schedule_event(time(), 'daily', 'relevanssi_truncate_cache');
|
| 61 |
+
add_action('relevanssi_truncate_cache', 'relevanssi_truncate_cache');
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
if (get_option('relevanssi_highlight_docs', 'off') != 'off') {
|
| 65 |
+
add_filter('the_content', 'relevanssi_highlight_in_docs', 11);
|
| 66 |
+
}
|
| 67 |
+
if (get_option('relevanssi_highlight_comments', 'off') != 'off') {
|
| 68 |
+
add_filter('comment_text', 'relevanssi_highlight_in_docs', 11);
|
| 69 |
+
}
|
| 70 |
+
|
| 71 |
+
return;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
function relevanssi_menu() {
|
| 75 |
+
global $relevanssi_variables;
|
| 76 |
+
RELEVANSSI_PREMIUM ? $name = "Relevanssi Premium" : $name = "Relevanssi";
|
| 77 |
+
add_options_page(
|
| 78 |
+
$name,
|
| 79 |
+
$name,
|
| 80 |
+
'manage_options',
|
| 81 |
+
$relevanssi_variables['file'],
|
| 82 |
+
'relevanssi_options'
|
| 83 |
+
);
|
| 84 |
+
add_dashboard_page(
|
| 85 |
+
__('User searches', 'relevanssi'),
|
| 86 |
+
__('User searches', 'relevanssi'),
|
| 87 |
+
apply_filters('relevanssi_user_searches_capability', 'edit_pages'),
|
| 88 |
+
$relevanssi_variables['file'],
|
| 89 |
+
'relevanssi_search_stats'
|
| 90 |
+
);
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
function relevanssi_query_vars($qv) {
|
| 94 |
+
$qv[] = 'cats';
|
| 95 |
+
$qv[] = 'tags';
|
| 96 |
+
$qv[] = 'post_types';
|
| 97 |
+
$qv[] = 'by_date';
|
| 98 |
+
|
| 99 |
+
return $qv;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
function relevanssi_create_database_tables($relevanssi_db_version) {
|
| 103 |
+
global $wpdb;
|
| 104 |
+
|
| 105 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
| 106 |
+
|
| 107 |
+
$charset_collate_bin_column = '';
|
| 108 |
+
$charset_collate = '';
|
| 109 |
+
|
| 110 |
+
if (!empty($wpdb->charset)) {
|
| 111 |
+
$charset_collate_bin_column = "CHARACTER SET $wpdb->charset";
|
| 112 |
+
$charset_collate = "DEFAULT $charset_collate_bin_column";
|
| 113 |
+
}
|
| 114 |
+
if (strpos($wpdb->collate, "_") > 0) {
|
| 115 |
+
$charset_collate_bin_column .= " COLLATE " . substr($wpdb->collate, 0, strpos($wpdb->collate, '_')) . "_bin";
|
| 116 |
+
$charset_collate .= " COLLATE $wpdb->collate";
|
| 117 |
+
} else {
|
| 118 |
+
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
| 119 |
+
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
| 120 |
+
}
|
| 121 |
+
}
|
| 122 |
+
|
| 123 |
+
$relevanssi_table = $wpdb->prefix . "relevanssi";
|
| 124 |
+
$relevanssi_stopword_table = $wpdb->prefix . "relevanssi_stopwords";
|
| 125 |
+
$relevanssi_log_table = $wpdb->prefix . "relevanssi_log";
|
| 126 |
+
$relevanssi_cache = $wpdb->prefix . 'relevanssi_cache';
|
| 127 |
+
$relevanssi_excerpt_cache = $wpdb->prefix . 'relevanssi_excerpt_cache';
|
| 128 |
+
|
| 129 |
+
if(get_option('relevanssi_db_version') != $relevanssi_db_version) {
|
| 130 |
+
if ($relevanssi_db_version == 1) {
|
| 131 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$relevanssi_table'") == $relevanssi_table) {
|
| 132 |
+
$sql = "DROP TABLE $relevanssi_table";
|
| 133 |
+
$wpdb->query($sql);
|
| 134 |
+
}
|
| 135 |
+
delete_option('relevanssi_indexed');
|
| 136 |
+
}
|
| 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',
|
| 143 |
+
tag mediumint(9) NOT NULL DEFAULT '0',
|
| 144 |
+
link mediumint(9) NOT NULL DEFAULT '0',
|
| 145 |
+
author mediumint(9) NOT NULL DEFAULT '0',
|
| 146 |
+
category mediumint(9) NOT NULL DEFAULT '0',
|
| 147 |
+
excerpt mediumint(9) NOT NULL DEFAULT '0',
|
| 148 |
+
taxonomy mediumint(9) NOT NULL DEFAULT '0',
|
| 149 |
+
customfield mediumint(9) NOT NULL DEFAULT '0',
|
| 150 |
+
mysqlcolumn mediumint(9) NOT NULL DEFAULT '0',
|
| 151 |
+
taxonomy_detail longtext NOT NULL,
|
| 152 |
+
customfield_detail longtext NOT NULL,
|
| 153 |
+
mysqlcolumn_detail longtext NOT NULL,
|
| 154 |
+
type varchar(210) NOT NULL DEFAULT 'post',
|
| 155 |
+
item bigint(20) NOT NULL DEFAULT '0',
|
| 156 |
+
UNIQUE KEY doctermitem (doc, term, item)) $charset_collate";
|
| 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;";
|
| 168 |
+
|
| 169 |
+
dbDelta($sql);
|
| 170 |
+
|
| 171 |
+
$sql = "CREATE TABLE " . $relevanssi_log_table . " (id bigint(9) NOT NULL AUTO_INCREMENT,
|
| 172 |
+
query varchar(200) NOT NULL,
|
| 173 |
+
hits mediumint(9) NOT NULL DEFAULT '0',
|
| 174 |
+
time timestamp NOT NULL,
|
| 175 |
+
user_id bigint(20) NOT NULL DEFAULT '0',
|
| 176 |
+
ip varchar(40) NOT NULL DEFAULT '',
|
| 177 |
+
UNIQUE KEY id (id)) $charset_collate;";
|
| 178 |
+
|
| 179 |
+
dbDelta($sql);
|
| 180 |
+
|
| 181 |
+
$sql = "CREATE TABLE " . $relevanssi_cache . " (param varchar(32) $charset_collate_bin_column NOT NULL,
|
| 182 |
+
hits text NOT NULL,
|
| 183 |
+
tstamp timestamp NOT NULL,
|
| 184 |
+
UNIQUE KEY param (param)) $charset_collate;";
|
| 185 |
+
|
| 186 |
+
dbDelta($sql);
|
| 187 |
+
|
| 188 |
+
$sql = "CREATE TABLE " . $relevanssi_excerpt_cache . " (query varchar(100) $charset_collate_bin_column NOT NULL,
|
| 189 |
+
post mediumint(9) NOT NULL,
|
| 190 |
+
excerpt text NOT NULL,
|
| 191 |
+
UNIQUE (query, post)) $charset_collate;";
|
| 192 |
+
|
| 193 |
+
dbDelta($sql);
|
| 194 |
+
|
| 195 |
+
if (RELEVANSSI_PREMIUM && get_option('relevanssi_db_version') < 12) {
|
| 196 |
+
$charset_collate_bin_column = '';
|
| 197 |
+
$charset_collate = '';
|
| 198 |
+
|
| 199 |
+
if (!empty($wpdb->charset)) {
|
| 200 |
+
$charset_collate_bin_column = "CHARACTER SET $wpdb->charset";
|
| 201 |
+
$charset_collate = "DEFAULT $charset_collate_bin_column";
|
| 202 |
+
}
|
| 203 |
+
if (strpos($wpdb->collate, "_") > 0) {
|
| 204 |
+
$charset_collate_bin_column .= " COLLATE " . substr($wpdb->collate, 0, strpos($wpdb->collate, '_')) . "_bin";
|
| 205 |
+
$charset_collate .= " COLLATE $wpdb->collate";
|
| 206 |
+
} else {
|
| 207 |
+
if ($wpdb->collate == '' && $wpdb->charset == "utf8") {
|
| 208 |
+
$charset_collate_bin_column .= " COLLATE utf8_bin";
|
| 209 |
+
}
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
$sql = "ALTER TABLE $relevanssi_stopword_table MODIFY COLUMN stopword varchar(50) $charset_collate_bin_column NOT NULL";
|
| 213 |
+
$wpdb->query($sql);
|
| 214 |
+
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN user_id bigint(20) NOT NULL DEFAULT '0'";
|
| 215 |
+
$wpdb->query($sql);
|
| 216 |
+
$sql = "ALTER TABLE $relevanssi_log_table ADD COLUMN ip varchar(40) NOT NULL DEFAULT ''";
|
| 217 |
+
$wpdb->query($sql);
|
| 218 |
+
$sql = "ALTER TABLE $relevanssi_cache MODIFY COLUMN param varchar(32) $charset_collate_bin_column NOT NULL";
|
| 219 |
+
$wpdb->query($sql);
|
| 220 |
+
$sql = "ALTER TABLE $relevanssi_excerpt_cache MODIFY COLUMN query(100) $charset_collate_bin_column NOT NULL";
|
| 221 |
+
$wpdb->query($sql);
|
| 222 |
+
}
|
| 223 |
+
|
| 224 |
+
update_option('relevanssi_db_version', $relevanssi_db_version);
|
| 225 |
+
}
|
| 226 |
+
|
| 227 |
+
if ($wpdb->get_var("SELECT COUNT(*) FROM $relevanssi_stopword_table WHERE 1") < 1) {
|
| 228 |
+
relevanssi_populate_stopwords();
|
| 229 |
+
}
|
| 230 |
+
}
|
| 231 |
+
?>
|
lib/interface.php
ADDED
|
@@ -0,0 +1,1379 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
function relevanssi_options() {
|
| 4 |
+
global $relevanssi_variables;
|
| 5 |
+
if (RELEVANSSI_PREMIUM) {
|
| 6 |
+
$options_txt = __('Relevanssi Premium Search Options', 'relevanssi');
|
| 7 |
+
}
|
| 8 |
+
else {
|
| 9 |
+
$options_txt = __('Relevanssi Search Options', 'relevanssi');
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
printf("<div class='wrap'><h2>%s</h2>", $options_txt);
|
| 13 |
+
if (!empty($_POST)) {
|
| 14 |
+
if (isset($_REQUEST['submit'])) {
|
| 15 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 16 |
+
update_relevanssi_options();
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
if (isset($_REQUEST['index'])) {
|
| 20 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 21 |
+
update_relevanssi_options();
|
| 22 |
+
relevanssi_build_index();
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
if (isset($_REQUEST['index_extend'])) {
|
| 26 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 27 |
+
update_relevanssi_options();
|
| 28 |
+
relevanssi_build_index(true);
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
if (isset($_REQUEST['import_options'])) {
|
| 32 |
+
if (function_exists('relevanssi_import_options')) {
|
| 33 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 34 |
+
$options = $_REQUEST['relevanssi_settings'];
|
| 35 |
+
relevanssi_import_options($options);
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
if (isset($_REQUEST['search'])) {
|
| 40 |
+
relevanssi_search($_REQUEST['q']);
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
if (isset($_REQUEST['dowhat'])) {
|
| 44 |
+
if ("add_stopword" == $_REQUEST['dowhat']) {
|
| 45 |
+
if (isset($_REQUEST['term'])) {
|
| 46 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 47 |
+
relevanssi_add_stopword($_REQUEST['term']);
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
if (isset($_REQUEST['addstopword'])) {
|
| 53 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 54 |
+
relevanssi_add_stopword($_REQUEST['addstopword']);
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
if (isset($_REQUEST['removestopword'])) {
|
| 58 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 59 |
+
relevanssi_remove_stopword($_REQUEST['removestopword']);
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
if (isset($_REQUEST['removeallstopwords'])) {
|
| 63 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 64 |
+
relevanssi_remove_all_stopwords();
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
if (isset($_REQUEST['truncate'])) {
|
| 68 |
+
check_admin_referer(plugin_basename($relevanssi_variables['file']), 'relevanssi_options');
|
| 69 |
+
$clear_all = true;
|
| 70 |
+
relevanssi_truncate_cache($clear_all);
|
| 71 |
+
}
|
| 72 |
+
}
|
| 73 |
+
relevanssi_options_form();
|
| 74 |
+
|
| 75 |
+
relevanssi_common_words();
|
| 76 |
+
|
| 77 |
+
echo "<div style='clear:both'></div>";
|
| 78 |
+
|
| 79 |
+
echo "</div>";
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
function relevanssi_search_stats() {
|
| 83 |
+
$relevanssi_hide_branding = get_option( 'relevanssi_hide_branding' );
|
| 84 |
+
|
| 85 |
+
if ( 'on' == $relevanssi_hide_branding )
|
| 86 |
+
$options_txt = __('User Searches', 'relevanssi');
|
| 87 |
+
else
|
| 88 |
+
$options_txt = __('Relevanssi User Searches', 'relevanssi');
|
| 89 |
+
|
| 90 |
+
if (isset($_REQUEST['relevanssi_reset']) and current_user_can('manage_options')) {
|
| 91 |
+
check_admin_referer('relevanssi_reset_logs', '_relresnonce');
|
| 92 |
+
if (isset($_REQUEST['relevanssi_reset_code'])) {
|
| 93 |
+
if ($_REQUEST['relevanssi_reset_code'] == 'reset') {
|
| 94 |
+
relevanssi_truncate_logs();
|
| 95 |
+
}
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
wp_enqueue_style('dashboard');
|
| 100 |
+
wp_print_styles('dashboard');
|
| 101 |
+
wp_enqueue_script('dashboard');
|
| 102 |
+
wp_print_scripts('dashboard');
|
| 103 |
+
|
| 104 |
+
printf("<div class='wrap'><h2>%s</h2>", $options_txt);
|
| 105 |
+
|
| 106 |
+
if ( 'on' == $relevanssi_hide_branding )
|
| 107 |
+
echo '<div class="postbox-container">';
|
| 108 |
+
else
|
| 109 |
+
echo '<div class="postbox-container" style="width:70%;">';
|
| 110 |
+
|
| 111 |
+
|
| 112 |
+
if ('on' == get_option('relevanssi_log_queries')) {
|
| 113 |
+
relevanssi_query_log();
|
| 114 |
+
}
|
| 115 |
+
else {
|
| 116 |
+
echo "<p>Enable query logging to see stats here.</p>";
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
echo "</div>";
|
| 120 |
+
|
| 121 |
+
if ('on' != $relevanssi_hide_branding )
|
| 122 |
+
relevanssi_sidebar();
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
function relevanssi_truncate_logs() {
|
| 126 |
+
global $wpdb, $relevanssi_variables;
|
| 127 |
+
|
| 128 |
+
$query = "TRUNCATE " . $relevanssi_variables['log_table'];
|
| 129 |
+
$wpdb->query($query);
|
| 130 |
+
|
| 131 |
+
echo "<div id='relevanssi-warning' class='updated fade'>Logs clear!</div>";
|
| 132 |
+
}
|
| 133 |
+
|
| 134 |
+
function update_relevanssi_options() {
|
| 135 |
+
if (isset($_REQUEST['relevanssi_title_boost'])) {
|
| 136 |
+
$boost = floatval($_REQUEST['relevanssi_title_boost']);
|
| 137 |
+
update_option('relevanssi_title_boost', $boost);
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
if (isset($_REQUEST['relevanssi_comment_boost'])) {
|
| 141 |
+
$boost = floatval($_REQUEST['relevanssi_comment_boost']);
|
| 142 |
+
update_option('relevanssi_comment_boost', $boost);
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
if (isset($_REQUEST['relevanssi_min_word_length'])) {
|
| 146 |
+
$value = intval($_REQUEST['relevanssi_min_word_length']);
|
| 147 |
+
if ($value == 0) $value = 3;
|
| 148 |
+
update_option('relevanssi_min_word_length', $value);
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
if (isset($_REQUEST['relevanssi_cache_seconds'])) {
|
| 152 |
+
$value = intval($_REQUEST['relevanssi_cache_seconds']);
|
| 153 |
+
if ($value == 0) $value = 86400;
|
| 154 |
+
update_option('relevanssi_cache_seconds', $value);
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
if (!isset($_REQUEST['relevanssi_admin_search'])) {
|
| 158 |
+
$_REQUEST['relevanssi_admin_search'] = "off";
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
if (!isset($_REQUEST['relevanssi_excerpts'])) {
|
| 162 |
+
$_REQUEST['relevanssi_excerpts'] = "off";
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
if (!isset($_REQUEST['relevanssi_show_matches'])) {
|
| 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 |
+
}
|
| 180 |
+
|
| 181 |
+
if (!isset($_REQUEST['relevanssi_index_author'])) {
|
| 182 |
+
$_REQUEST['relevanssi_index_author'] = "off";
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
if (!isset($_REQUEST['relevanssi_index_excerpt'])) {
|
| 186 |
+
$_REQUEST['relevanssi_index_excerpt'] = "off";
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
if (!isset($_REQUEST['relevanssi_log_queries'])) {
|
| 190 |
+
$_REQUEST['relevanssi_log_queries'] = "off";
|
| 191 |
+
}
|
| 192 |
+
|
| 193 |
+
if (!isset($_REQUEST['relevanssi_disable_or_fallback'])) {
|
| 194 |
+
$_REQUEST['relevanssi_disable_or_fallback'] = "off";
|
| 195 |
+
}
|
| 196 |
+
|
| 197 |
+
if (!isset($_REQUEST['relevanssi_hilite_title'])) {
|
| 198 |
+
$_REQUEST['relevanssi_hilite_title'] = "off";
|
| 199 |
+
}
|
| 200 |
+
|
| 201 |
+
if (!isset($_REQUEST['relevanssi_highlight_docs'])) {
|
| 202 |
+
$_REQUEST['relevanssi_highlight_docs'] = "off";
|
| 203 |
+
}
|
| 204 |
+
|
| 205 |
+
if (!isset($_REQUEST['relevanssi_highlight_comments'])) {
|
| 206 |
+
$_REQUEST['relevanssi_highlight_comments'] = "off";
|
| 207 |
+
}
|
| 208 |
+
|
| 209 |
+
if (!isset($_REQUEST['relevanssi_expand_shortcodes'])) {
|
| 210 |
+
$_REQUEST['relevanssi_expand_shortcodes'] = "off";
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
if (!isset($_REQUEST['relevanssi_enable_cache'])) {
|
| 214 |
+
$_REQUEST['relevanssi_enable_cache'] = "off";
|
| 215 |
+
}
|
| 216 |
+
|
| 217 |
+
if (!isset($_REQUEST['relevanssi_respect_exclude'])) {
|
| 218 |
+
$_REQUEST['relevanssi_respect_exclude'] = "off";
|
| 219 |
+
}
|
| 220 |
+
|
| 221 |
+
if (!isset($_REQUEST['relevanssi_wpml_only_current'])) {
|
| 222 |
+
$_REQUEST['relevanssi_wpml_only_current'] = "off";
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
if (!isset($_REQUEST['relevanssi_word_boundaries'])) {
|
| 226 |
+
$_REQUEST['relevanssi_word_boundaries'] = "off";
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
if (isset($_REQUEST['relevanssi_excerpt_length'])) {
|
| 230 |
+
$value = intval($_REQUEST['relevanssi_excerpt_length']);
|
| 231 |
+
if ($value != 0) {
|
| 232 |
+
update_option('relevanssi_excerpt_length', $value);
|
| 233 |
+
}
|
| 234 |
+
}
|
| 235 |
+
|
| 236 |
+
if (isset($_REQUEST['relevanssi_synonyms'])) {
|
| 237 |
+
$linefeeds = array("\r\n", "\n", "\r");
|
| 238 |
+
$value = str_replace($linefeeds, ";", $_REQUEST['relevanssi_synonyms']);
|
| 239 |
+
$value = stripslashes($value);
|
| 240 |
+
update_option('relevanssi_synonyms', $value);
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
if (isset($_REQUEST['relevanssi_show_matches'])) update_option('relevanssi_show_matches', $_REQUEST['relevanssi_show_matches']);
|
| 244 |
+
if (isset($_REQUEST['relevanssi_show_matches_text'])) {
|
| 245 |
+
$value = $_REQUEST['relevanssi_show_matches_text'];
|
| 246 |
+
$value = str_replace('"', "'", $value);
|
| 247 |
+
update_option('relevanssi_show_matches_text', $value);
|
| 248 |
+
}
|
| 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_'));
|
| 255 |
+
$post_type_weights[$type] = $value;
|
| 256 |
+
}
|
| 257 |
+
if (substr($key, 0, strlen('relevanssi_index_type_')) == 'relevanssi_index_type_') {
|
| 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) {
|
| 264 |
+
update_option('relevanssi_post_type_weights', $post_type_weights);
|
| 265 |
+
}
|
| 266 |
+
|
| 267 |
+
if (count($index_post_types) > 0) {
|
| 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']);
|
| 279 |
+
if (isset($_REQUEST['relevanssi_txt_col'])) update_option('relevanssi_txt_col', $_REQUEST['relevanssi_txt_col']);
|
| 280 |
+
if (isset($_REQUEST['relevanssi_bg_col'])) update_option('relevanssi_bg_col', $_REQUEST['relevanssi_bg_col']);
|
| 281 |
+
if (isset($_REQUEST['relevanssi_css'])) update_option('relevanssi_css', $_REQUEST['relevanssi_css']);
|
| 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']);
|
| 295 |
+
if (isset($_REQUEST['relevanssi_expand_shortcodes'])) update_option('relevanssi_expand_shortcodes', $_REQUEST['relevanssi_expand_shortcodes']);
|
| 296 |
+
if (isset($_REQUEST['relevanssi_implicit_operator'])) update_option('relevanssi_implicit_operator', $_REQUEST['relevanssi_implicit_operator']);
|
| 297 |
+
if (isset($_REQUEST['relevanssi_omit_from_logs'])) update_option('relevanssi_omit_from_logs', $_REQUEST['relevanssi_omit_from_logs']);
|
| 298 |
+
if (isset($_REQUEST['relevanssi_index_limit'])) update_option('relevanssi_index_limit', $_REQUEST['relevanssi_index_limit']);
|
| 299 |
+
if (isset($_REQUEST['relevanssi_disable_or_fallback'])) update_option('relevanssi_disable_or_fallback', $_REQUEST['relevanssi_disable_or_fallback']);
|
| 300 |
+
if (isset($_REQUEST['relevanssi_respect_exclude'])) update_option('relevanssi_respect_exclude', $_REQUEST['relevanssi_respect_exclude']);
|
| 301 |
+
if (isset($_REQUEST['relevanssi_enable_cache'])) update_option('relevanssi_enable_cache', $_REQUEST['relevanssi_enable_cache']);
|
| 302 |
+
if (isset($_REQUEST['relevanssi_throttle'])) update_option('relevanssi_throttle', $_REQUEST['relevanssi_throttle']);
|
| 303 |
+
if (isset($_REQUEST['relevanssi_throttle_limit'])) update_option('relevanssi_throttle_limit', $_REQUEST['relevanssi_throttle_limit']);
|
| 304 |
+
if (isset($_REQUEST['relevanssi_wpml_only_current'])) update_option('relevanssi_wpml_only_current', $_REQUEST['relevanssi_wpml_only_current']);
|
| 305 |
+
if (isset($_REQUEST['relevanssi_word_boundaries'])) update_option('relevanssi_word_boundaries', $_REQUEST['relevanssi_word_boundaries']);
|
| 306 |
+
if (isset($_REQUEST['relevanssi_default_orderby'])) update_option('relevanssi_default_orderby', $_REQUEST['relevanssi_default_orderby']);
|
| 307 |
+
|
| 308 |
+
if (function_exists('relevanssi_update_premium_options')) {
|
| 309 |
+
relevanssi_update_premium_options();
|
| 310 |
+
}
|
| 311 |
+
}
|
| 312 |
+
|
| 313 |
+
function relevanssi_add_stopword($term) {
|
| 314 |
+
global $wpdb;
|
| 315 |
+
if ('' == $term) return; // do not add empty $term to stopwords - added by renaissancehack
|
| 316 |
+
|
| 317 |
+
$n = 0;
|
| 318 |
+
$s = 0;
|
| 319 |
+
|
| 320 |
+
$terms = explode(',', $term);
|
| 321 |
+
if (count($terms) > 1) {
|
| 322 |
+
foreach($terms as $term) {
|
| 323 |
+
$n++;
|
| 324 |
+
$term = trim($term);
|
| 325 |
+
$success = relevanssi_add_single_stopword($term);
|
| 326 |
+
if ($success) $s++;
|
| 327 |
+
}
|
| 328 |
+
printf(__("<div id='message' class='updated fade'><p>Successfully added %d/%d terms to stopwords!</p></div>", "relevanssi"), $s, $n);
|
| 329 |
+
}
|
| 330 |
+
else {
|
| 331 |
+
// add to stopwords
|
| 332 |
+
$success = relevanssi_add_single_stopword($term);
|
| 333 |
+
|
| 334 |
+
if ($success) {
|
| 335 |
+
printf(__("<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></div>", "relevanssi"), $term);
|
| 336 |
+
}
|
| 337 |
+
else {
|
| 338 |
+
printf(__("<div id='message' class='updated fade'><p>Couldn't add term '%s' to stopwords!</p></div>", "relevanssi"), $term);
|
| 339 |
+
}
|
| 340 |
+
}
|
| 341 |
+
}
|
| 342 |
+
|
| 343 |
+
function relevanssi_add_single_stopword($term) {
|
| 344 |
+
global $wpdb, $relevanssi_variables;
|
| 345 |
+
if ('' == $term) return;
|
| 346 |
+
|
| 347 |
+
$q = $wpdb->prepare("INSERT INTO " . $relevanssi_variables['stopword_table'] . " (stopword) VALUES (%s)", $term);
|
| 348 |
+
$success = $wpdb->query($q);
|
| 349 |
+
|
| 350 |
+
if ($success) {
|
| 351 |
+
// remove from index
|
| 352 |
+
$q = $wpdb->prepare("DELETE FROM " . $relevanssi_variables['relevanssi_table'] . " WHERE term=%s", $term);
|
| 353 |
+
$wpdb->query($q);
|
| 354 |
+
return true;
|
| 355 |
+
}
|
| 356 |
+
else {
|
| 357 |
+
return false;
|
| 358 |
+
}
|
| 359 |
+
}
|
| 360 |
+
|
| 361 |
+
function relevanssi_remove_all_stopwords() {
|
| 362 |
+
global $wpdb, $relevanssi_variables;
|
| 363 |
+
|
| 364 |
+
$q = $wpdb->prepare("TRUNCATE " . $relevanssi_variables['stopword_table']);
|
| 365 |
+
$success = $wpdb->query($q);
|
| 366 |
+
|
| 367 |
+
printf(__("<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-index.</p></div>", "relevanssi"), $term);
|
| 368 |
+
}
|
| 369 |
+
|
| 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) {
|
| 377 |
+
printf(__("<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! Re-index to get it back to index.</p></div>", "relevanssi"), $term);
|
| 378 |
+
}
|
| 379 |
+
else {
|
| 380 |
+
printf(__("<div id='message' class='updated fade'><p>Couldn't remove term '%s' from stopwords!</p></div>", "relevanssi"), $term);
|
| 381 |
+
}
|
| 382 |
+
}
|
| 383 |
+
|
| 384 |
+
function relevanssi_common_words() {
|
| 385 |
+
global $wpdb, $relevanssi_variables, $wp_version;
|
| 386 |
+
|
| 387 |
+
RELEVANSSI_PREMIUM ? $plugin = 'relevanssi-premium' : $plugin = 'relevanssi';
|
| 388 |
+
|
| 389 |
+
echo "<div style='float:left; width: 45%'>";
|
| 390 |
+
|
| 391 |
+
echo "<h3>" . __("25 most common words in the index", 'relevanssi') . "</h3>";
|
| 392 |
+
|
| 393 |
+
echo "<p>" . __("These words are excellent stopword material. A word that appears in most of the posts in the database is quite pointless when searching. This is also an easy way to create a completely new stopword list, if one isn't available in your language. Click the icon after the word to add the word to the stopword list. The word will also be removed from the index, so rebuilding the index is not necessary.", 'relevanssi') . "</p>";
|
| 394 |
+
|
| 395 |
+
$words = $wpdb->get_results("SELECT COUNT(DISTINCT(doc)) as cnt, term
|
| 396 |
+
FROM " . $relevanssi_variables['relevanssi_table'] . " GROUP BY term ORDER BY cnt DESC LIMIT 25");
|
| 397 |
+
|
| 398 |
+
?>
|
| 399 |
+
<form method="post">
|
| 400 |
+
<?php wp_nonce_field(plugin_basename($relevanssi_variables['file']), 'relevanssi_options'); ?>
|
| 401 |
+
<input type="hidden" name="dowhat" value="add_stopword" />
|
| 402 |
+
<ul>
|
| 403 |
+
<?php
|
| 404 |
+
|
| 405 |
+
if (function_exists("plugins_url")) {
|
| 406 |
+
if (version_compare($wp_version, '2.8dev', '>' )) {
|
| 407 |
+
$src = plugins_url('delete.png', $relevanssi_variables['file']);
|
| 408 |
+
}
|
| 409 |
+
else {
|
| 410 |
+
$src = plugins_url($plugin . '/delete.png');
|
| 411 |
+
}
|
| 412 |
+
}
|
| 413 |
+
else {
|
| 414 |
+
// We can't check, so let's assume something sensible
|
| 415 |
+
$src = '/wp-content/plugins/' . $plugin . '/delete.png';
|
| 416 |
+
}
|
| 417 |
+
|
| 418 |
+
foreach ($words as $word) {
|
| 419 |
+
$stop = __('Add to stopwords', 'relevanssi');
|
| 420 |
+
printf('<li>%s (%d) <input style="padding: 0; margin: 0" type="image" src="%s" alt="%s" name="term" value="%s"/></li>', $word->term, $word->cnt, $src, $stop, $word->term);
|
| 421 |
+
}
|
| 422 |
+
echo "</ul>\n</form>";
|
| 423 |
+
|
| 424 |
+
echo "</div>";
|
| 425 |
+
}
|
| 426 |
+
|
| 427 |
+
function relevanssi_query_log() {
|
| 428 |
+
global $wpdb;
|
| 429 |
+
|
| 430 |
+
echo '<h3>' . __("Total Searches", 'relevanssi') . '</h3>';
|
| 431 |
+
|
| 432 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 433 |
+
relevanssi_total_queries( __("Totals", 'relevanssi') );
|
| 434 |
+
echo '</div>';
|
| 435 |
+
|
| 436 |
+
echo '<div style="clear: both"></div>';
|
| 437 |
+
|
| 438 |
+
echo '<h3>' . __("Common Queries", 'relevanssi') . '</h3>';
|
| 439 |
+
|
| 440 |
+
$lead = __("Here you can see the 20 most common user search queries, how many times those
|
| 441 |
+
queries were made and how many results were found for those queries.", 'relevanssi');
|
| 442 |
+
|
| 443 |
+
echo "<p>$lead</p>";
|
| 444 |
+
|
| 445 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 446 |
+
relevanssi_date_queries(1, __("Today and yesterday", 'relevanssi'));
|
| 447 |
+
echo '</div>';
|
| 448 |
+
|
| 449 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 450 |
+
relevanssi_date_queries(7, __("Last 7 days", 'relevanssi'));
|
| 451 |
+
echo '</div>';
|
| 452 |
+
|
| 453 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 454 |
+
relevanssi_date_queries(30, __("Last 30 days", 'relevanssi'));
|
| 455 |
+
echo '</div>';
|
| 456 |
+
|
| 457 |
+
echo '<div style="clear: both"></div>';
|
| 458 |
+
|
| 459 |
+
echo '<h3>' . __("Unsuccessful Queries", 'relevanssi') . '</h3>';
|
| 460 |
+
|
| 461 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 462 |
+
relevanssi_date_queries(1, __("Today and yesterday", 'relevanssi'), 'bad');
|
| 463 |
+
echo '</div>';
|
| 464 |
+
|
| 465 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 466 |
+
relevanssi_date_queries(7, __("Last 7 days", 'relevanssi'), 'bad');
|
| 467 |
+
echo '</div>';
|
| 468 |
+
|
| 469 |
+
echo "<div style='width: 30%; float: left; margin-right: 2%'>";
|
| 470 |
+
relevanssi_date_queries(30, __("Last 30 days", 'relevanssi'), 'bad');
|
| 471 |
+
echo '</div>';
|
| 472 |
+
|
| 473 |
+
if ( current_user_can('manage_options') ) {
|
| 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 |
+
|
| 489 |
+
echo "</div>";
|
| 490 |
+
}
|
| 491 |
+
|
| 492 |
+
function relevanssi_total_queries( $title ) {
|
| 493 |
+
global $wpdb, $relevanssi_variables;
|
| 494 |
+
$log_table = $relevanssi_variables['log_table'];
|
| 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>";
|
| 508 |
+
|
| 509 |
+
}
|
| 510 |
+
|
| 511 |
+
function relevanssi_date_queries($d, $title, $version = 'good') {
|
| 512 |
+
global $wpdb, $relevanssi_variables;
|
| 513 |
+
$log_table = $relevanssi_variables['log_table'];
|
| 514 |
+
|
| 515 |
+
if ($version == 'good')
|
| 516 |
+
$queries = $wpdb->get_results("SELECT COUNT(DISTINCT(id)) as cnt, query, hits
|
| 517 |
+
FROM $log_table
|
| 518 |
+
WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= $d
|
| 519 |
+
GROUP BY query
|
| 520 |
+
ORDER BY cnt DESC
|
| 521 |
+
LIMIT 20");
|
| 522 |
+
|
| 523 |
+
if ($version == 'bad')
|
| 524 |
+
$queries = $wpdb->get_results("SELECT COUNT(DISTINCT(id)) as cnt, query, hits
|
| 525 |
+
FROM $log_table
|
| 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);
|
| 537 |
+
echo "<tr><td style='padding: 3px 5px'><a href='$url/?s=$u_q'>" . esc_attr($query->query) . "</a></td><td style='padding: 3px 5px; text-align: center'>" . $query->cnt . "</td><td style='padding: 3px 5px; text-align: center'>" . $query->hits . "</td></tr>";
|
| 538 |
+
}
|
| 539 |
+
echo "</tbody></table>";
|
| 540 |
+
}
|
| 541 |
+
}
|
| 542 |
+
|
| 543 |
+
function relevanssi_options_form() {
|
| 544 |
+
global $relevanssi_variables, $wpdb;
|
| 545 |
+
|
| 546 |
+
wp_enqueue_style('dashboard');
|
| 547 |
+
wp_print_styles('dashboard');
|
| 548 |
+
wp_enqueue_script('dashboard');
|
| 549 |
+
wp_print_scripts('dashboard');
|
| 550 |
+
|
| 551 |
+
$docs_count = $wpdb->get_var("SELECT COUNT(DISTINCT doc) FROM " . $relevanssi_variables['relevanssi_table']);
|
| 552 |
+
$terms_count = $wpdb->get_var("SELECT COUNT(*) FROM " . $relevanssi_variables['relevanssi_table']);
|
| 553 |
+
$biggest_doc = $wpdb->get_var("SELECT doc FROM " . $relevanssi_variables['relevanssi_table'] . " ORDER BY doc DESC LIMIT 1");
|
| 554 |
+
$cache_count = $wpdb->get_var("SELECT COUNT(tstamp) FROM " . $relevanssi_variables['relevanssi_cache']);
|
| 555 |
+
|
| 556 |
+
$serialize_options = array();
|
| 557 |
+
|
| 558 |
+
$title_boost = get_option('relevanssi_title_boost');
|
| 559 |
+
$serialize_options['relevanssi_title_boost'] = $title_boost;
|
| 560 |
+
$comment_boost = get_option('relevanssi_comment_boost');
|
| 561 |
+
$serialize_options['relevanssi_comment_boost'] = $comment_boost;
|
| 562 |
+
$admin_search = get_option('relevanssi_admin_search');
|
| 563 |
+
$serialize_options['relevanssi_admin_search'] = $admin_search;
|
| 564 |
+
if ('on' == $admin_search) {
|
| 565 |
+
$admin_search = 'checked="checked"';
|
| 566 |
+
}
|
| 567 |
+
else {
|
| 568 |
+
$admin_search = '';
|
| 569 |
+
}
|
| 570 |
+
|
| 571 |
+
$index_limit = get_option('relevanssi_index_limit');
|
| 572 |
+
$serialize_options['relevanssi_index_limit'] = $index_limit;
|
| 573 |
+
|
| 574 |
+
$excerpts = get_option('relevanssi_excerpts');
|
| 575 |
+
$serialize_options['relevanssi_excerpts'] = $excerpts;
|
| 576 |
+
if ('on' == $excerpts) {
|
| 577 |
+
$excerpts = 'checked="checked"';
|
| 578 |
+
}
|
| 579 |
+
else {
|
| 580 |
+
$excerpts = '';
|
| 581 |
+
}
|
| 582 |
+
|
| 583 |
+
$excerpt_length = get_option('relevanssi_excerpt_length');
|
| 584 |
+
$serialize_options['relevanssi_excerpt_length'] = $excerpt_length;
|
| 585 |
+
$excerpt_type = get_option('relevanssi_excerpt_type');
|
| 586 |
+
$serialize_options['relevanssi_excerpt_type'] = $excerpt_type;
|
| 587 |
+
$excerpt_chars = "";
|
| 588 |
+
$excerpt_words = "";
|
| 589 |
+
switch ($excerpt_type) {
|
| 590 |
+
case "chars":
|
| 591 |
+
$excerpt_chars = 'selected="selected"';
|
| 592 |
+
break;
|
| 593 |
+
case "words":
|
| 594 |
+
$excerpt_words = 'selected="selected"';
|
| 595 |
+
break;
|
| 596 |
+
}
|
| 597 |
+
$excerpt_allowable_tags = get_option('relevanssi_excerpt_allowable_tags');
|
| 598 |
+
$serialize_options['relevanssi_excerpt_allowable_tags'] = $excerpt_allowable_tags;
|
| 599 |
+
|
| 600 |
+
$log_queries = get_option('relevanssi_log_queries');
|
| 601 |
+
$serialize_options['relevanssi_log_queries'] = $log_queries;
|
| 602 |
+
if ('on' == $log_queries) {
|
| 603 |
+
$log_queries = 'checked="checked"';
|
| 604 |
+
}
|
| 605 |
+
else {
|
| 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) {
|
| 612 |
+
$hide_branding = 'checked="checked"';
|
| 613 |
+
}
|
| 614 |
+
else {
|
| 615 |
+
$hide_branding = '';
|
| 616 |
+
}
|
| 617 |
+
|
| 618 |
+
$highlight = get_option('relevanssi_highlight');
|
| 619 |
+
$serialize_options['relevanssi_highlight'] = $highlight;
|
| 620 |
+
$highlight_none = "";
|
| 621 |
+
$highlight_mark = "";
|
| 622 |
+
$highlight_em = "";
|
| 623 |
+
$highlight_strong = "";
|
| 624 |
+
$highlight_col = "";
|
| 625 |
+
$highlight_bgcol = "";
|
| 626 |
+
$highlight_style = "";
|
| 627 |
+
$highlight_class = "";
|
| 628 |
+
switch ($highlight) {
|
| 629 |
+
case "no":
|
| 630 |
+
$highlight_none = 'selected="selected"';
|
| 631 |
+
break;
|
| 632 |
+
case "mark":
|
| 633 |
+
$highlight_mark = 'selected="selected"';
|
| 634 |
+
break;
|
| 635 |
+
case "em":
|
| 636 |
+
$highlight_em = 'selected="selected"';
|
| 637 |
+
break;
|
| 638 |
+
case "strong":
|
| 639 |
+
$highlight_strong = 'selected="selected"';
|
| 640 |
+
break;
|
| 641 |
+
case "col":
|
| 642 |
+
$highlight_col = 'selected="selected"';
|
| 643 |
+
break;
|
| 644 |
+
case "bgcol":
|
| 645 |
+
$highlight_bgcol = 'selected="selected"';
|
| 646 |
+
break;
|
| 647 |
+
case "css":
|
| 648 |
+
$highlight_style = 'selected="selected"';
|
| 649 |
+
break;
|
| 650 |
+
case "class":
|
| 651 |
+
$highlight_class = 'selected="selected"';
|
| 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 |
+
|
| 660 |
+
$txt_col = get_option('relevanssi_txt_col');
|
| 661 |
+
$serialize_options['relevanssi_txt_col'] = $txt_col;
|
| 662 |
+
$bg_col = get_option('relevanssi_bg_col');
|
| 663 |
+
$serialize_options['relevanssi_bg_col'] = $bg_col;
|
| 664 |
+
$css = get_option('relevanssi_css');
|
| 665 |
+
$serialize_options['relevanssi_css'] = $css;
|
| 666 |
+
$class = get_option('relevanssi_class');
|
| 667 |
+
$serialize_options['relevanssi_class'] = $class;
|
| 668 |
+
|
| 669 |
+
$cat = get_option('relevanssi_cat');
|
| 670 |
+
$serialize_options['relevanssi_cat'] = $cat;
|
| 671 |
+
$excat = get_option('relevanssi_excat');
|
| 672 |
+
$serialize_options['relevanssi_excat'] = $excat;
|
| 673 |
+
|
| 674 |
+
$fuzzy = get_option('relevanssi_fuzzy');
|
| 675 |
+
$serialize_options['relevanssi_fuzzy'] = $fuzzy;
|
| 676 |
+
$fuzzy_sometimes = ('sometimes' == $fuzzy ? 'selected="selected"' : '');
|
| 677 |
+
$fuzzy_always = ('always' == $fuzzy ? 'selected="selected"' : '');
|
| 678 |
+
$fuzzy_never = ('never' == $fuzzy ? 'selected="selected"' : '');
|
| 679 |
+
|
| 680 |
+
$implicit = get_option('relevanssi_implicit_operator');
|
| 681 |
+
$serialize_options['relevanssi_implicit_operator'] = $implicit;
|
| 682 |
+
$implicit_and = ('AND' == $implicit ? 'selected="selected"' : '');
|
| 683 |
+
$implicit_or = ('OR' == $implicit ? 'selected="selected"' : '');
|
| 684 |
+
|
| 685 |
+
$expand_shortcodes = ('on' == get_option('relevanssi_expand_shortcodes') ? 'checked="checked"' : '');
|
| 686 |
+
$serialize_options['relevanssi_expand_shortcodes'] = get_option('relevanssi_expand_shortcodes');
|
| 687 |
+
$disablefallback = ('on' == get_option('relevanssi_disable_or_fallback') ? 'checked="checked"' : '');
|
| 688 |
+
$serialize_options['relevanssi_disable_or_fallback'] = get_option('relevanssi_disable_or_fallback');
|
| 689 |
+
|
| 690 |
+
$throttle = ('on' == get_option('relevanssi_throttle') ? 'checked="checked"' : '');
|
| 691 |
+
$serialize_options['relevanssi_throttle'] = get_option('relevanssi_throttle');
|
| 692 |
+
|
| 693 |
+
$throttle_limit = get_option('relevanssi_throttle_limit');
|
| 694 |
+
$serialize_options['relevanssi_throttle_limit'] = $throttle_limit;
|
| 695 |
+
|
| 696 |
+
$omit_from_logs = get_option('relevanssi_omit_from_logs');
|
| 697 |
+
$serialize_options['relevanssi_omit_from_logs'] = $omit_from_logs;
|
| 698 |
+
|
| 699 |
+
$synonyms = get_option('relevanssi_synonyms');
|
| 700 |
+
$serialize_options['relevanssi_synonyms'] = $synonyms;
|
| 701 |
+
isset($synonyms) ? $synonyms = str_replace(';', "\n", $synonyms) : $synonyms = "";
|
| 702 |
+
|
| 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;
|
| 712 |
+
$incom_type_all = "";
|
| 713 |
+
$incom_type_normal = "";
|
| 714 |
+
$incom_type_none = "";
|
| 715 |
+
switch ($incom_type) {
|
| 716 |
+
case "all":
|
| 717 |
+
$incom_type_all = 'selected="selected"';
|
| 718 |
+
break;
|
| 719 |
+
case "normal":
|
| 720 |
+
$incom_type_normal = 'selected="selected"';
|
| 721 |
+
break;
|
| 722 |
+
case "none":
|
| 723 |
+
$incom_type_none = 'selected="selected"';
|
| 724 |
+
break;
|
| 725 |
+
}//added by OdditY END <-
|
| 726 |
+
|
| 727 |
+
$highlight_docs = ('on' == get_option('relevanssi_highlight_docs') ? 'checked="checked"' : '');
|
| 728 |
+
$highlight_coms = ('on' == get_option('relevanssi_highlight_comments') ? 'checked="checked"' : '');
|
| 729 |
+
$serialize_options['relevanssi_highlight_docs'] = get_option('relevanssi_highlight_docs');
|
| 730 |
+
$serialize_options['relevanssi_highlight_comments'] = get_option('relevanssi_highlight_comments');
|
| 731 |
+
|
| 732 |
+
$respect_exclude = ('on' == get_option('relevanssi_respect_exclude') ? 'checked="checked"' : '');
|
| 733 |
+
$serialize_options['relevanssi_respect_exclude'] = get_option('relevanssi_respect_exclude');
|
| 734 |
+
|
| 735 |
+
$enable_cache = ('on' == get_option('relevanssi_enable_cache') ? 'checked="checked"' : '');
|
| 736 |
+
$serialize_options['relevanssi_enable_cache'] = get_option('relevanssi_enable_cache');
|
| 737 |
+
$cache_seconds = get_option('relevanssi_cache_seconds');
|
| 738 |
+
$serialize_options['relevanssi_cache_seconds'] = $cache_seconds;
|
| 739 |
+
|
| 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"' : '');
|
| 748 |
+
$serialize_options['relevanssi_index_excerpt'] = get_option('relevanssi_index_excerpt');
|
| 749 |
+
|
| 750 |
+
$show_matches = ('on' == get_option('relevanssi_show_matches') ? 'checked="checked"' : '');
|
| 751 |
+
$serialize_options['relevanssi_show_matches'] = get_option('relevanssi_show_matches');
|
| 752 |
+
$show_matches_text = stripslashes(get_option('relevanssi_show_matches_text'));
|
| 753 |
+
$serialize_options['relevanssi_show_matches_text'] = get_option('relevanssi_show_matches_text');
|
| 754 |
+
|
| 755 |
+
$wpml_only_current = ('on' == get_option('relevanssi_wpml_only_current') ? 'checked="checked"' : '');
|
| 756 |
+
$serialize_options['relevanssi_wpml_only_current'] = get_option('relevanssi_wpml_only_current');
|
| 757 |
+
|
| 758 |
+
$word_boundaries = ('on' == get_option('relevanssi_word_boundaries') ? 'checked="checked"' : '');
|
| 759 |
+
$serialize_options['relevanssi_word_boundaries'] = get_option('relevanssi_word_boundaries');
|
| 760 |
+
|
| 761 |
+
$post_type_weights = get_option('relevanssi_post_type_weights');
|
| 762 |
+
$serialize_options['relevanssi_post_type_weights'] = $post_type_weights;
|
| 763 |
+
|
| 764 |
+
$index_post_types = get_option('relevanssi_index_post_types');
|
| 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"' : '');
|
| 771 |
+
$orderby_date = ('post_date' == $orderby ? 'selected="selected"' : '');
|
| 772 |
+
|
| 773 |
+
if (RELEVANSSI_PREMIUM) {
|
| 774 |
+
$api_key = get_option('relevanssi_api_key');
|
| 775 |
+
$serialize_options['relevanssi_api_key'] = $api_key;
|
| 776 |
+
|
| 777 |
+
$link_boost = get_option('relevanssi_link_boost');
|
| 778 |
+
$serialize_options['relevanssi_link_boost'] = $link_boost;
|
| 779 |
+
|
| 780 |
+
$intlinks = get_option('relevanssi_internal_links');
|
| 781 |
+
$serialize_options['relevanssi_internal_links'] = $intlinks;
|
| 782 |
+
$intlinks_strip = ('strip' == $intlinks ? 'selected="selected"' : '');
|
| 783 |
+
$intlinks_nostrip = ('nostrip' == $intlinks ? 'selected="selected"' : '');
|
| 784 |
+
$intlinks_noindex = ('noindex' == $intlinks ? 'selected="selected"' : '');
|
| 785 |
+
|
| 786 |
+
$highlight_docs_ext = ('on' == get_option('relevanssi_highlight_docs_external') ? 'checked="checked"' : '');
|
| 787 |
+
$serialize_options['relevanssi_highlight_docs_external'] = get_option('relevanssi_highlight_docs_external');
|
| 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');
|
| 794 |
+
|
| 795 |
+
$index_user_fields = get_option('relevanssi_index_user_fields');
|
| 796 |
+
$serialize_options['relevanssi_index_user_fields'] = $index_user_fields;
|
| 797 |
+
|
| 798 |
+
$index_subscribers = ('on' == get_option('relevanssi_index_subscribers') ? 'checked="checked"' : '');
|
| 799 |
+
$serialize_options['relevanssi_index_subscribers'] = get_option('relevanssi_index_subscribers');
|
| 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');
|
| 809 |
+
|
| 810 |
+
$recency_bonus_array = get_option('relevanssi_recency_bonus');
|
| 811 |
+
$serialize_options['recency_bonus'] = $recency_bonus_array;
|
| 812 |
+
$recency_bonus = $recency_bonus_array['bonus'];
|
| 813 |
+
$recency_bonus_days = $recency_bonus_array['days'];
|
| 814 |
+
|
| 815 |
+
$mysql_columns = get_option('relevanssi_mysql_columns');
|
| 816 |
+
$serialize_options['relevanssi_mysql_columns'] = $mysql_columns;
|
| 817 |
+
|
| 818 |
+
$serialized_options = serialize($serialize_options);
|
| 819 |
+
}
|
| 820 |
+
|
| 821 |
+
echo "<div class='postbox-container' style='width:70%;'>";
|
| 822 |
+
|
| 823 |
+
if (RELEVANSSI_PREMIUM) {
|
| 824 |
+
echo "<form method='post' action='options-general.php?page=relevanssi-premium/relevanssi.php'>";
|
| 825 |
+
}
|
| 826 |
+
else {
|
| 827 |
+
echo "<form method='post'>";
|
| 828 |
+
}
|
| 829 |
+
|
| 830 |
+
wp_nonce_field(plugin_basename($relevanssi_variables['file']), 'relevanssi_options'); ?>
|
| 831 |
+
|
| 832 |
+
<p><a href="#basic"><?php _e("Basic options", "relevanssi"); ?></a> |
|
| 833 |
+
<a href="#weights"><?php _e("Weights", "relevanssi"); ?></a> |
|
| 834 |
+
<a href="#logs"><?php _e("Logs", "relevanssi"); ?></a> |
|
| 835 |
+
<a href="#exclusions"><?php _e("Exclusions and restrictions", "relevanssi"); ?></a> |
|
| 836 |
+
<a href="#excerpts"><?php _e("Custom excerpts", "relevanssi"); ?></a> |
|
| 837 |
+
<a href="#highlighting"><?php _e("Highlighting search results", "relevanssi"); ?></a> |
|
| 838 |
+
<a href="#indexing"><?php _e("Indexing options", "relevanssi"); ?></a> |
|
| 839 |
+
<a href="#caching"><?php _e("Caching", "relevanssi"); ?></a> |
|
| 840 |
+
<a href="#synonyms"><?php _e("Synonyms", "relevanssi"); ?></a> |
|
| 841 |
+
<a href="#stopwords"><?php _e("Stopwords", "relevanssi"); ?></a> |
|
| 842 |
+
<?php
|
| 843 |
+
if (RELEVANSSI_PREMIUM) {
|
| 844 |
+
echo '<a href="#options">' . __("Import/export options", "relevanssi") . '</a>';
|
| 845 |
+
}
|
| 846 |
+
else {
|
| 847 |
+
echo '<strong><a href="http://www.relevanssi.com/buy-premium/?utm_source=plugin&utm_medium=link&utm_campaign=buy">' . __('Buy Relevanssi Premium', 'relevanssi') . '</a></strong>';
|
| 848 |
+
}
|
| 849 |
+
?>
|
| 850 |
+
</p>
|
| 851 |
+
|
| 852 |
+
<h3><?php _e('Quick tools', 'relevanssi') ?></h3>
|
| 853 |
+
<p>
|
| 854 |
+
<input type='submit' name='submit' value='<?php _e('Save options', 'relevanssi'); ?>' style="background-color:#007f00; border-color:#5fbf00; border-style:solid; border-width:thick; padding: 5px; color: #fff;" />
|
| 855 |
+
<input type="submit" name="index" value="<?php _e('Build the index', 'relevanssi') ?>" style="background-color:#007f00; border-color:#5fbf00; border-style:solid; border-width:thick; padding: 5px; color: #fff;" />
|
| 856 |
+
<input type="submit" name="index_extend" value="<?php _e('Continue indexing', 'relevanssi') ?>" style="background-color:#e87000; border-color:#ffbb00; border-style:solid; border-width:thick; padding: 5px; color: #fff;" />, <?php _e('add', 'relevanssi'); ?> <input type="text" size="4" name="relevanssi_index_limit" value="<?php echo $index_limit ?>" /> <?php _e('documents.', 'relevanssi'); ?></p>
|
| 857 |
+
|
| 858 |
+
<?php
|
| 859 |
+
if (empty($index_post_types)) {
|
| 860 |
+
echo "<p><strong>" . __("WARNING: You've chosen no post types to index. Nothing will be indexed. <a href='#indexing'>Choose some post types to index</a>.", 'relevanssi') . "</strong></p>";
|
| 861 |
+
}
|
| 862 |
+
?>
|
| 863 |
+
|
| 864 |
+
<p><?php _e("Use 'Build the index' to build the index with current <a href='#indexing'>indexing options</a>. If you can't finish indexing with one go, use 'Continue indexing' to finish the job. You can change the number of documents to add until you find the largest amount you can add with one go. See 'State of the Index' below to find out how many documents actually go into the index.", 'relevanssi') ?></p>
|
| 865 |
+
|
| 866 |
+
<p><?php _e("If Relevanssi doesn't index anything and you have upgraded from a 2.x version, it's likely the changes in
|
| 867 |
+
the database structure haven't gone through in the upgrade. In that case all you need to do is to deactivate the
|
| 868 |
+
plugin and then activate it again.", 'relevanssi') ?></p>
|
| 869 |
+
|
| 870 |
+
<h3><?php _e("State of the Index", "relevanssi"); ?></h3>
|
| 871 |
+
<p>
|
| 872 |
+
<?php _e("Documents in the index", "relevanssi"); ?>: <strong><?php echo $docs_count ?></strong><br />
|
| 873 |
+
<?php _e("Terms in the index", "relevanssi"); ?>: <strong><?php echo $terms_count ?></strong><br />
|
| 874 |
+
<?php _e("Highest post ID indexed", "relevanssi"); ?>: <strong><?php echo $biggest_doc ?></strong>
|
| 875 |
+
</p>
|
| 876 |
+
|
| 877 |
+
<h3 id="basic"><?php _e("Basic options", "relevanssi"); ?></h3>
|
| 878 |
+
|
| 879 |
+
<?php
|
| 880 |
+
if (function_exists('relevanssi_form_api_key')) relevanssi_form_api_key($api_key);
|
| 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 />
|
| 894 |
+
<small><?php _e("If you choose AND and the search finds no matches, it will automatically do an OR search.", "relevanssi"); ?></small>
|
| 895 |
+
|
| 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 />
|
| 909 |
+
<small><?php _e("If you want date-based results, see the recent post bonus in the Weights section.", "relevanssi"); ?></small>
|
| 910 |
+
|
| 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>
|
| 918 |
+
</select></label><br />
|
| 919 |
+
<small><?php _e("Straight search matches just the term. Fuzzy search matches everything that begins or ends with the search term.", "relevanssi"); ?></small>
|
| 920 |
+
|
| 921 |
+
<br /><br />
|
| 922 |
+
|
| 923 |
+
<?php
|
| 924 |
+
if (function_exists('relevanssi_form_internal_links')) relevanssi_form_internal_links($intlinks_noindex, $intlinks_strip, $intlinks_nostrip);
|
| 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 />
|
| 938 |
+
|
| 939 |
+
<?php
|
| 940 |
+
if (function_exists('relevanssi_form_hide_post_controls')) relevanssi_form_hide_post_controls($hide_post_controls);
|
| 941 |
+
?>
|
| 942 |
+
|
| 943 |
+
<h3 id="weights"><?php _e('Weights', 'relevanssi'); ?></h3>
|
| 944 |
+
|
| 945 |
+
<p><?php _e('These values affect the weights of the documents. These are all multipliers, so 1 means no change in weight, less than 1 means less weight, and more than 1 means more weight. Setting something to zero makes that worthless. For example, if title weight is more than 1, words in titles are more significant than words elsewhere. If title weight is 0, words in titles won\'t make any difference to the search results.', 'relevanssi'); ?></p>
|
| 946 |
+
|
| 947 |
+
<table class="widefat">
|
| 948 |
+
<thead>
|
| 949 |
+
<tr>
|
| 950 |
+
<th><?php _e('Element', 'relevanssi'); ?></th>
|
| 951 |
+
<th><?php _e('Weight', 'relevanssi'); ?></th>
|
| 952 |
+
<th><?php _e('Default weight', 'relevanssi'); ?></th>
|
| 953 |
+
</tr>
|
| 954 |
+
</thead>
|
| 955 |
+
<tr>
|
| 956 |
+
<td>
|
| 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']; ?>
|
| 964 |
+
</td>
|
| 965 |
+
</tr>
|
| 966 |
+
<?php if (function_exists('relevanssi_form_link_weight')) relevanssi_form_link_weight($link_boost); ?>
|
| 967 |
+
<tr>
|
| 968 |
+
<td>
|
| 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']; ?>
|
| 976 |
+
</td>
|
| 977 |
+
</tr>
|
| 978 |
+
<?php
|
| 979 |
+
if (function_exists('relevanssi_form_post_type_weights')) relevanssi_form_post_type_weights($post_type_weights);
|
| 980 |
+
if (function_exists('relevanssi_form_taxonomy_weights')) relevanssi_form_taxonomy_weights($post_type_weights);
|
| 981 |
+
if (function_exists('relevanssi_form_tag_weight')) relevanssi_form_tag_weight($post_type_weights);
|
| 982 |
+
?>
|
| 983 |
+
</table>
|
| 984 |
+
|
| 985 |
+
<br /><br />
|
| 986 |
+
|
| 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; ?>
|
| 997 |
+
|
| 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
|
| 1011 |
+
if (RELEVANSSI_PREMIUM) {
|
| 1012 |
+
echo "<p>" . __("If you enable logs, you can see what your users are searching for. You can prevent your own searches from getting in the logs with the omit feature.", "relevanssi") . "</p>";
|
| 1013 |
+
}
|
| 1014 |
+
else {
|
| 1015 |
+
echo "<p>" . __("If you enable logs, you can see what your users are searching for. Logs are also needed to use the 'Did you mean?' feature. You can prevent your own searches from getting in the logs with the omit feature.", "relevanssi") . "</p>";
|
| 1016 |
+
}
|
| 1017 |
+
?>
|
| 1018 |
+
|
| 1019 |
+
<?php if (function_exists('relevanssi_form_hide_branding')) relevanssi_form_hide_branding($hide_branding); ?>
|
| 1020 |
+
|
| 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><input type='hidden' name='cats' value='list of cats and tags' /></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>";
|
| 1040 |
+
}
|
| 1041 |
+
else {
|
| 1042 |
+
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).", 'relevanssi') . "</small>";
|
| 1043 |
+
}
|
| 1044 |
+
?>
|
| 1045 |
+
|
| 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 />
|
| 1066 |
+
<small><?php _e("This must be an integer.", "relevanssi"); ?></small>
|
| 1067 |
+
|
| 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: '<p><a><strong>'.", "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>
|
| 1088 |
+
|
| 1089 |
+
<?php _e("First, choose the type of highlighting used:", "relevanssi"); ?><br />
|
| 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 ?>><mark></option>
|
| 1096 |
+
<option value='em' <?php echo $highlight_em ?>><em></option>
|
| 1097 |
+
<option value='strong' <?php echo $highlight_strong ?>><strong></option>
|
| 1098 |
+
<option value='col' <?php echo $highlight_col ?>><?php _e('Text color', 'relevanssi'); ?></option>
|
| 1099 |
+
<option value='bgcol' <?php echo $highlight_bgcol ?>><?php _e('Background color', 'relevanssi'); ?></option>
|
| 1100 |
+
<option value='css' <?php echo $highlight_style ?>><?php _e("CSS Style", 'relevanssi'); ?></option>
|
| 1101 |
+
<option value='class' <?php echo $highlight_class ?>><?php _e("CSS Class", 'relevanssi'); ?></option>
|
| 1102 |
+
</select></label>
|
| 1103 |
+
<small><?php _e("Highlighting isn't available unless you use custom snippets", 'relevanssi'); ?></small>
|
| 1104 |
+
|
| 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 />
|
| 1118 |
+
|
| 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 />
|
| 1132 |
+
</div>
|
| 1133 |
+
|
| 1134 |
+
<?php _e("Then adjust the settings for your chosen type:", "relevanssi"); ?><br />
|
| 1135 |
+
|
| 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 <span>", "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 <span> with the class", "relevanssi"); ?></small>
|
| 1159 |
+
|
| 1160 |
+
</div>
|
| 1161 |
+
|
| 1162 |
+
<br />
|
| 1163 |
+
<br />
|
| 1164 |
+
|
| 1165 |
+
<input type='submit' name='submit' value='<?php _e('Save the options', 'relevanssi'); ?>' class='button button-primary' />
|
| 1166 |
+
|
| 1167 |
+
<h3 id="indexing"><?php _e('Indexing options', 'relevanssi'); ?></h3>
|
| 1168 |
+
|
| 1169 |
+
<p><?php _e('Choose post types to index:', 'relevanssi'); ?></p>
|
| 1170 |
+
|
| 1171 |
+
<table class="widefat" id="index_post_types_table">
|
| 1172 |
+
<thead>
|
| 1173 |
+
<tr>
|
| 1174 |
+
<th><?php _e('Type', 'relevanssi'); ?></th>
|
| 1175 |
+
<th><?php _e('Index', 'relevanssi'); ?></th>
|
| 1176 |
+
<th><?php _e('Public?', 'relevanssi'); ?></th>
|
| 1177 |
+
</tr>
|
| 1178 |
+
</thead>
|
| 1179 |
+
<?php
|
| 1180 |
+
$pt_1 = get_post_types(array('exclude_from_search' => '0'));
|
| 1181 |
+
$pt_2 = get_post_types(array('exclude_from_search' => false));
|
| 1182 |
+
$public_types = array_merge($pt_1, $pt_2);
|
| 1183 |
+
$post_types = get_post_types();
|
| 1184 |
+
foreach ($post_types as $type) {
|
| 1185 |
+
if ('nav_menu_item' == $type) continue;
|
| 1186 |
+
if ('revision' == $type) continue;
|
| 1187 |
+
if (in_array($type, $index_post_types)) {
|
| 1188 |
+
$checked = 'checked="checked"';
|
| 1189 |
+
}
|
| 1190 |
+
else {
|
| 1191 |
+
$checked = '';
|
| 1192 |
+
}
|
| 1193 |
+
$label = sprintf(__("%s", 'relevanssi'), $type);
|
| 1194 |
+
in_array($type, $public_types) ? $public = __('yes', 'relevanssi') : $public = __('no', 'relevanssi');
|
| 1195 |
+
|
| 1196 |
+
echo <<<EOH
|
| 1197 |
+
<tr>
|
| 1198 |
+
<td>
|
| 1199 |
+
$label
|
| 1200 |
+
</td>
|
| 1201 |
+
<td>
|
| 1202 |
+
<input type='checkbox' name='relevanssi_index_type_$type' $checked />
|
| 1203 |
+
</td>
|
| 1204 |
+
<td>
|
| 1205 |
+
$public
|
| 1206 |
+
</td>
|
| 1207 |
+
</tr>
|
| 1208 |
+
EOH;
|
| 1209 |
+
}
|
| 1210 |
+
?>
|
| 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 />
|
| 1220 |
+
|
| 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>
|
| 1258 |
+
</select></label><br />
|
| 1259 |
+
<small><?php _e("Relevanssi will index and search ALL (all comments including track- & pingbacks and custom comment types), NONE (no comments) or NORMAL (manually posted comments on your blog).<br />Remember to rebuild the index if you change this option!", 'relevanssi'); ?></small>
|
| 1260 |
+
|
| 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 |
+
|
| 1283 |
+
<input type='submit' name='index_extend' value='<?php _e("Continue indexing", 'relevanssi'); ?>' class='button' />
|
| 1284 |
+
|
| 1285 |
+
<h3 id="caching"><?php _e("Caching", "relevanssi"); ?></h3>
|
| 1286 |
+
|
| 1287 |
+
<p><?php _e("Warning: In many cases caching is not useful, and in some cases can be even harmful. Do not
|
| 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 />
|
| 1301 |
+
|
| 1302 |
+
<?php _e("Entries in the cache", 'relevanssi'); ?>: <?php echo $cache_count; ?>
|
| 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 |
+
|
| 1314 |
+
<input type='submit' name='submit' value='<?php _e('Save the options', 'relevanssi'); ?>' class='button' />
|
| 1315 |
+
|
| 1316 |
+
<h3 id="stopwords"><?php _e("Stopwords", "relevanssi"); ?></h3>
|
| 1317 |
+
|
| 1318 |
+
<?php relevanssi_show_stopwords(); ?>
|
| 1319 |
+
|
| 1320 |
+
<?php if (function_exists('relevanssi_form_importexport')) relevanssi_form_importexport($serialized_options); ?>
|
| 1321 |
+
|
| 1322 |
+
</form>
|
| 1323 |
+
</div>
|
| 1324 |
+
|
| 1325 |
+
<?php
|
| 1326 |
+
|
| 1327 |
+
relevanssi_sidebar();
|
| 1328 |
+
}
|
| 1329 |
+
|
| 1330 |
+
function relevanssi_show_stopwords() {
|
| 1331 |
+
global $wpdb, $relevanssi_variables, $wp_version;
|
| 1332 |
+
|
| 1333 |
+
RELEVANSSI_PREMIUM ? $plugin = 'relevanssi-premium' : $plugin = 'relevanssi';
|
| 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 |
+
|
| 1341 |
+
_e("<p>Here's a list of stopwords in the database. Click a word to remove it from stopwords. Removing stopwords won't automatically return them to index, so you need to re-index all posts after removing stopwords to get those words back to index.", 'relevanssi');
|
| 1342 |
+
|
| 1343 |
+
if (function_exists("plugins_url")) {
|
| 1344 |
+
if (version_compare($wp_version, '2.8dev', '>' )) {
|
| 1345 |
+
$src = plugins_url('delete.png', $relevanssi_variables['file']);
|
| 1346 |
+
}
|
| 1347 |
+
else {
|
| 1348 |
+
$src = plugins_url($plugin . '/delete.png');
|
| 1349 |
+
}
|
| 1350 |
+
}
|
| 1351 |
+
else {
|
| 1352 |
+
// We can't check, so let's assume something sensible
|
| 1353 |
+
$src = '/wp-content/plugins/' . $plugin . '/delete.png';
|
| 1354 |
+
}
|
| 1355 |
+
|
| 1356 |
+
echo "<ul>";
|
| 1357 |
+
$results = $wpdb->get_results("SELECT * FROM " . $relevanssi_variables['stopword_table']);
|
| 1358 |
+
$exportlist = array();
|
| 1359 |
+
foreach ($results as $stopword) {
|
| 1360 |
+
$sw = $stopword->stopword;
|
| 1361 |
+
printf('<li style="display: inline;"><input type="submit" name="removestopword" value="%s"/></li>', $sw, $src, $sw);
|
| 1362 |
+
array_push($exportlist, $sw);
|
| 1363 |
+
}
|
| 1364 |
+
echo "</ul>";
|
| 1365 |
+
|
| 1366 |
+
?>
|
| 1367 |
+
<p><input type="submit" name="removeallstopwords" value="<?php _e('Remove all stopwords', 'relevanssi'); ?>" class='button' /></p>
|
| 1368 |
+
<?php
|
| 1369 |
+
|
| 1370 |
+
$exportlist = implode(", ", $exportlist);
|
| 1371 |
+
|
| 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 |
+
}
|
| 1379 |
+
?>
|
lib/search.php
ADDED
|
@@ -0,0 +1,822 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
function relevanssi_query($posts, $query = false) {
|
| 4 |
+
$admin_search = get_option('relevanssi_admin_search');
|
| 5 |
+
($admin_search == 'on') ? $admin_search = true : $admin_search = false;
|
| 6 |
+
|
| 7 |
+
global $relevanssi_active;
|
| 8 |
+
global $wp_query;
|
| 9 |
+
|
| 10 |
+
$search_ok = true; // we will search!
|
| 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.
|
| 18 |
+
if (is_search() && $wp_query->is_admin) {
|
| 19 |
+
$search_ok = false; // but if this is an admin search, reconsider
|
| 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') {
|
| 26 |
+
$search_ok = false;
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
$search_ok = apply_filters('relevanssi_search_ok', $search_ok);
|
| 31 |
+
|
| 32 |
+
if ($relevanssi_active) {
|
| 33 |
+
$search_ok = false; // Relevanssi is already in action
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
if ($search_ok) {
|
| 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 |
+
}
|
| 187 |
+
|
| 188 |
+
if (!$post_type && get_option('relevanssi_respect_exclude') == 'on') {
|
| 189 |
+
if (function_exists('get_post_types')) {
|
| 190 |
+
$pt_1 = get_post_types(array('exclude_from_search' => '0'));
|
| 191 |
+
$pt_2 = get_post_types(array('exclude_from_search' => false));
|
| 192 |
+
$post_type = implode(',', array_merge($pt_1, $pt_2));
|
| 193 |
+
}
|
| 194 |
+
}
|
| 195 |
+
|
| 196 |
+
if ($post_type) {
|
| 197 |
+
if (!is_array($post_type)) {
|
| 198 |
+
$post_types = explode(',', $post_type);
|
| 199 |
+
}
|
| 200 |
+
else {
|
| 201 |
+
$post_types = $post_type;
|
| 202 |
+
}
|
| 203 |
+
$pt_array = array();
|
| 204 |
+
foreach ($post_types as $pt) {
|
| 205 |
+
$pt = "'" . trim(mysql_real_escape_string($pt)) . "'";
|
| 206 |
+
array_push($pt_array, $pt);
|
| 207 |
+
}
|
| 208 |
+
$post_type = implode(",", $pt_array);
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
//Added by OdditY:
|
| 212 |
+
//Exclude Post_IDs (Pages) for non-admin search ->
|
| 213 |
+
$postex = '';
|
| 214 |
+
if ($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')) {
|
| 229 |
+
$negative_terms = relevanssi_recognize_negatives($q);
|
| 230 |
+
}
|
| 231 |
+
else {
|
| 232 |
+
$negative_terms = false;
|
| 233 |
+
}
|
| 234 |
+
|
| 235 |
+
if (function_exists('relevanssi_recognize_positives')) {
|
| 236 |
+
$positive_terms = relevanssi_recognize_positives($q);
|
| 237 |
+
}
|
| 238 |
+
else {
|
| 239 |
+
$positive_terms = false;
|
| 240 |
+
}
|
| 241 |
+
|
| 242 |
+
$terms = relevanssi_tokenize($q, $remove_stopwords);
|
| 243 |
+
if (count($terms) < 1) {
|
| 244 |
+
// Tokenizer killed all the search terms.
|
| 245 |
+
return $hits;
|
| 246 |
+
}
|
| 247 |
+
$terms = array_keys($terms); // don't care about tf in query
|
| 248 |
+
|
| 249 |
+
if ($negative_terms) {
|
| 250 |
+
$terms = array_diff($terms, $negative_terms);
|
| 251 |
+
if (count($terms) < 1) {
|
| 252 |
+
return $hits;
|
| 253 |
+
}
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
$D = $wpdb->get_var("SELECT COUNT(DISTINCT(doc)) FROM $relevanssi_table");
|
| 257 |
+
|
| 258 |
+
$total_hits = 0;
|
| 259 |
+
|
| 260 |
+
$title_matches = array();
|
| 261 |
+
$tag_matches = array();
|
| 262 |
+
$comment_matches = array();
|
| 263 |
+
$link_matches = array();
|
| 264 |
+
$body_matches = array();
|
| 265 |
+
$scores = array();
|
| 266 |
+
$term_hits = array();
|
| 267 |
+
|
| 268 |
+
$fuzzy = get_option('relevanssi_fuzzy');
|
| 269 |
+
|
| 270 |
+
$query_restrictions = "";
|
| 271 |
+
if ($expost) { //added by OdditY
|
| 272 |
+
$query_restrictions .= $postex;
|
| 273 |
+
}
|
| 274 |
+
|
| 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'];
|
| 316 |
+
|
| 317 |
+
$u = substr($n, -1, 1);
|
| 318 |
+
switch ($u) {
|
| 319 |
+
case 'h':
|
| 320 |
+
$unit = "HOUR";
|
| 321 |
+
break;
|
| 322 |
+
case 'd':
|
| 323 |
+
$unit = "DAY";
|
| 324 |
+
break;
|
| 325 |
+
case 'm':
|
| 326 |
+
$unit = "MONTH";
|
| 327 |
+
break;
|
| 328 |
+
case 'y':
|
| 329 |
+
$unit = "YEAR";
|
| 330 |
+
break;
|
| 331 |
+
case 'w':
|
| 332 |
+
$unit = "WEEK";
|
| 333 |
+
break;
|
| 334 |
+
default:
|
| 335 |
+
$unit = "DAY";
|
| 336 |
+
}
|
| 337 |
+
|
| 338 |
+
$n = preg_replace('/[hdmyw]/', '', $n);
|
| 339 |
+
|
| 340 |
+
if (is_numeric($n)) {
|
| 341 |
+
$query_restrictions .= " AND doc IN (SELECT DISTINCT(ID) FROM $wpdb->posts
|
| 342 |
+
WHERE post_date > DATE_SUB(NOW(), INTERVAL $n $unit))";
|
| 343 |
+
}
|
| 344 |
+
}
|
| 345 |
+
|
| 346 |
+
$query_restrictions = apply_filters('relevanssi_where', $query_restrictions); // Charles St-Pierre
|
| 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#' ";
|
| 354 |
+
}
|
| 355 |
+
|
| 356 |
+
$post_type_weights = get_option('relevanssi_post_type_weights');
|
| 357 |
+
if (function_exists('relevanssi_get_recency_bonus')) {
|
| 358 |
+
list($recency_bonus, $recency_cutoff_date) = relevanssi_get_recency_bonus();
|
| 359 |
+
}
|
| 360 |
+
else {
|
| 361 |
+
$recency_bonus = false;
|
| 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);
|
| 386 |
+
global $relevanssi_post_types;
|
| 387 |
+
|
| 388 |
+
$total_hits += count($matches);
|
| 389 |
+
|
| 390 |
+
$query = "SELECT COUNT(DISTINCT(doc)) FROM $relevanssi_table WHERE $term_cond $query_restrictions";
|
| 391 |
+
$query = apply_filters('relevanssi_df_query_filter', $query);
|
| 392 |
+
|
| 393 |
+
$df = $wpdb->get_var($query);
|
| 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) {
|
| 410 |
+
$match->doc = 'u_' . $match->item;
|
| 411 |
+
}
|
| 412 |
+
|
| 413 |
+
if ('taxonomy' == $match->type) {
|
| 414 |
+
$match->doc = 't_' . $match->item;
|
| 415 |
+
}
|
| 416 |
+
|
| 417 |
+
if (isset($match->taxonomy_detail)) {
|
| 418 |
+
$match->taxonomy_score = 0;
|
| 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 {
|
| 426 |
+
$match->taxonomy_score += $count * $post_type_weights[$tax];
|
| 427 |
+
}
|
| 428 |
+
}
|
| 429 |
+
}
|
| 430 |
+
}
|
| 431 |
+
|
| 432 |
+
$match->tf =
|
| 433 |
+
$match->title * $title_boost +
|
| 434 |
+
$match->content +
|
| 435 |
+
$match->comment * $comment_boost +
|
| 436 |
+
$match->link * $link_boost +
|
| 437 |
+
$match->author +
|
| 438 |
+
$match->excerpt +
|
| 439 |
+
$match->taxonomy_score +
|
| 440 |
+
$match->customfield +
|
| 441 |
+
$match->mysqlcolumn;
|
| 442 |
+
|
| 443 |
+
$term_hits[$match->doc][$term] =
|
| 444 |
+
$match->title +
|
| 445 |
+
$match->content +
|
| 446 |
+
$match->comment +
|
| 447 |
+
$match->tag +
|
| 448 |
+
$match->link +
|
| 449 |
+
$match->author +
|
| 450 |
+
$match->category +
|
| 451 |
+
$match->excerpt +
|
| 452 |
+
$match->taxonomy +
|
| 453 |
+
$match->customfield +
|
| 454 |
+
$match->mysqlcolumn;
|
| 455 |
+
|
| 456 |
+
$match->weight = $match->tf * $idf;
|
| 457 |
+
|
| 458 |
+
if ($recency_bonus) {
|
| 459 |
+
$post = relevanssi_get_post($match->doc);
|
| 460 |
+
if (strtotime($post->post_date) > $recency_cutoff_date)
|
| 461 |
+
$match->weight = $match->weight * $recency_bonus['bonus'];
|
| 462 |
+
}
|
| 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 |
+
|
| 474 |
+
$match = apply_filters('relevanssi_match', $match, $idf);
|
| 475 |
+
|
| 476 |
+
if ($match->weight == 0) continue; // the filters killed the match
|
| 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 |
+
}
|
| 488 |
+
|
| 489 |
+
if (!isset($doc_weight)) $no_matches = true;
|
| 490 |
+
|
| 491 |
+
if ($no_matches) {
|
| 492 |
+
if ($search_again) {
|
| 493 |
+
// no hits even with fuzzy search!
|
| 494 |
+
$search_again = false;
|
| 495 |
+
}
|
| 496 |
+
else {
|
| 497 |
+
if ("sometimes" == $fuzzy) {
|
| 498 |
+
$search_again = true;
|
| 499 |
+
$o_term_cond = "(term LIKE '%#term#' OR term LIKE '#term#%') ";
|
| 500 |
+
}
|
| 501 |
+
}
|
| 502 |
+
}
|
| 503 |
+
else {
|
| 504 |
+
$search_again = false;
|
| 505 |
+
}
|
| 506 |
+
} while ($search_again);
|
| 507 |
+
|
| 508 |
+
$strip_stops = true;
|
| 509 |
+
$temp_terms_without_stops = array_keys(relevanssi_tokenize(implode(' ', $terms), $strip_stops));
|
| 510 |
+
$terms_without_stops = array();
|
| 511 |
+
foreach ($temp_terms_without_stops as $temp_term) {
|
| 512 |
+
if (strlen($temp_term) >= $min_length)
|
| 513 |
+
array_push($terms_without_stops, $temp_term);
|
| 514 |
+
}
|
| 515 |
+
$total_terms = count($terms_without_stops);
|
| 516 |
+
|
| 517 |
+
if (isset($doc_weight))
|
| 518 |
+
$doc_weight = apply_filters('relevanssi_results', $doc_weight);
|
| 519 |
+
|
| 520 |
+
if (isset($doc_weight) && count($doc_weight) > 0) {
|
| 521 |
+
arsort($doc_weight);
|
| 522 |
+
$i = 0;
|
| 523 |
+
foreach ($doc_weight as $doc => $weight) {
|
| 524 |
+
if (count($doc_terms[$doc]) < $total_terms && $operator == "AND") {
|
| 525 |
+
// AND operator in action:
|
| 526 |
+
// doc didn't match all terms, so it's discarded
|
| 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 |
+
}
|
| 554 |
+
|
| 555 |
+
function relevanssi_do_query(&$query) {
|
| 556 |
+
// this all is basically lifted from Kenny Katzgrau's wpSearch
|
| 557 |
+
// thanks, Kenny!
|
| 558 |
+
global $relevanssi_active;
|
| 559 |
+
|
| 560 |
+
$relevanssi_active = true;
|
| 561 |
+
$posts = array();
|
| 562 |
+
|
| 563 |
+
if ( function_exists( 'mb_strtolower' ) )
|
| 564 |
+
$q = trim(stripslashes(mb_strtolower($query->query_vars["s"])));
|
| 565 |
+
else
|
| 566 |
+
$q = trim(stripslashes(strtolower($query->query_vars["s"])));
|
| 567 |
+
|
| 568 |
+
$cache = get_option('relevanssi_enable_cache');
|
| 569 |
+
$cache == 'on' ? $cache = true : $cache = false;
|
| 570 |
+
|
| 571 |
+
if (isset($query->query_vars['searchblogs'])) {
|
| 572 |
+
$search_blogs = $query->query_vars['searchblogs'];
|
| 573 |
+
|
| 574 |
+
$post_type = false;
|
| 575 |
+
if (isset($query->query_vars["post_type"]) && $query->query_vars["post_type"] != 'any') {
|
| 576 |
+
$post_type = $query->query_vars["post_type"];
|
| 577 |
+
}
|
| 578 |
+
if (isset($query->query_vars["post_types"]) && $query->query_vars["post_types"] != 'any') {
|
| 579 |
+
$post_type = $query->query_vars["post_types"];
|
| 580 |
+
}
|
| 581 |
+
|
| 582 |
+
if (function_exists('relevanssi_search_multi')) {
|
| 583 |
+
$return = relevanssi_search_multi($q, $search_blogs, $post_type);
|
| 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"])) {
|
| 639 |
+
$search_blogs = $query->query_vars["search_blogs"];
|
| 640 |
+
}
|
| 641 |
+
|
| 642 |
+
$post_type = false;
|
| 643 |
+
if (isset($query->query_vars["post_type"]) && $query->query_vars["post_type"] != 'any') {
|
| 644 |
+
$post_type = $query->query_vars["post_type"];
|
| 645 |
+
}
|
| 646 |
+
if (isset($query->query_vars["post_types"]) && $query->query_vars["post_types"] != 'any') {
|
| 647 |
+
$post_type = $query->query_vars["post_types"];
|
| 648 |
+
}
|
| 649 |
+
|
| 650 |
+
$expids = get_option("relevanssi_exclude_posts");
|
| 651 |
+
|
| 652 |
+
if (is_admin()) {
|
| 653 |
+
// in admin search, search everything
|
| 654 |
+
$excat = null;
|
| 655 |
+
$expids = null;
|
| 656 |
+
}
|
| 657 |
+
|
| 658 |
+
$operator = "";
|
| 659 |
+
if (function_exists('relevanssi_set_operator')) {
|
| 660 |
+
$operator = relevanssi_set_operator($query);
|
| 661 |
+
$operator = strtoupper($operator); // just in case
|
| 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) {
|
| 668 |
+
// Synonyms are only used in OR queries
|
| 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) {
|
| 688 |
+
foreach ($new_terms as $new_term) {
|
| 689 |
+
$q .= " $new_term";
|
| 690 |
+
}
|
| 691 |
+
}
|
| 692 |
+
}
|
| 693 |
+
}
|
| 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) {
|
| 732 |
+
relevanssi_update_log($q, sizeof($hits));
|
| 733 |
+
}
|
| 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 {
|
| 741 |
+
$wpSearch_low = 0;
|
| 742 |
+
}
|
| 743 |
+
|
| 744 |
+
if ($query->query_vars["posts_per_page"] == -1) {
|
| 745 |
+
$wpSearch_high = sizeof($hits);
|
| 746 |
+
}
|
| 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++) {
|
| 753 |
+
if (isset($hits[intval($i)])) {
|
| 754 |
+
$post = $hits[intval($i)];
|
| 755 |
+
}
|
| 756 |
+
else {
|
| 757 |
+
continue;
|
| 758 |
+
}
|
| 759 |
+
|
| 760 |
+
if ($post == NULL) {
|
| 761 |
+
// apparently sometimes you can get a null object
|
| 762 |
+
continue;
|
| 763 |
+
}
|
| 764 |
+
|
| 765 |
+
//Added by OdditY - Highlight Result Title too ->
|
| 766 |
+
if("on" == get_option('relevanssi_hilite_title')){
|
| 767 |
+
if (function_exists('qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage')) {
|
| 768 |
+
$post->post_title = strip_tags(qtrans_useCurrentLanguageIfNotFoundUseDefaultLanguage($post->post_title));
|
| 769 |
+
}
|
| 770 |
+
else {
|
| 771 |
+
$post->post_title = strip_tags($post->post_title);
|
| 772 |
+
}
|
| 773 |
+
$highlight = get_option('relevanssi_highlight');
|
| 774 |
+
if ("none" != $highlight) {
|
| 775 |
+
if (!is_admin()) {
|
| 776 |
+
$post->post_title = relevanssi_highlight_terms($post->post_title, $q);
|
| 777 |
+
}
|
| 778 |
+
}
|
| 779 |
+
}
|
| 780 |
+
// OdditY end <-
|
| 781 |
+
|
| 782 |
+
if ('on' == $make_excerpts) {
|
| 783 |
+
if ($cache) {
|
| 784 |
+
$post->post_excerpt = relevanssi_fetch_excerpt($post->ID, $q);
|
| 785 |
+
if ($post->post_excerpt == null) {
|
| 786 |
+
$post->post_excerpt = relevanssi_do_excerpt($post, $q);
|
| 787 |
+
relevanssi_store_excerpt($post->ID, $q, $post->post_excerpt);
|
| 788 |
+
}
|
| 789 |
+
}
|
| 790 |
+
else {
|
| 791 |
+
$post->post_excerpt = relevanssi_do_excerpt($post, $q);
|
| 792 |
+
}
|
| 793 |
+
|
| 794 |
+
if ('on' == get_option('relevanssi_show_matches')) {
|
| 795 |
+
$post->post_excerpt .= relevanssi_show_matches($return, $post->ID);
|
| 796 |
+
}
|
| 797 |
+
}
|
| 798 |
+
|
| 799 |
+
$post->relevance_score = round($return['scores'][$post->ID], 2);
|
| 800 |
+
|
| 801 |
+
$posts[] = $post;
|
| 802 |
+
}
|
| 803 |
+
|
| 804 |
+
$query->posts = $posts;
|
| 805 |
+
$query->post_count = count($posts);
|
| 806 |
+
|
| 807 |
+
return $posts;
|
| 808 |
+
}
|
| 809 |
+
|
| 810 |
+
function relevanssi_limit_filter($query) {
|
| 811 |
+
if (get_option('relevanssi_throttle', 'on') == 'on') {
|
| 812 |
+
$limit = get_option('relevanssi_throttle_limit', 500);
|
| 813 |
+
if (!is_numeric($limit)) $limit = 500; // Backup, if the option is set to something useless.
|
| 814 |
+
if ($limit < 0) $limit = 500;
|
| 815 |
+
return $query . " ORDER BY tf DESC LIMIT $limit";
|
| 816 |
+
}
|
| 817 |
+
else {
|
| 818 |
+
return $query;
|
| 819 |
+
}
|
| 820 |
+
}
|
| 821 |
+
|
| 822 |
+
?>
|
lib/shortcodes.php
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
add_shortcode('search', 'relevanssi_shortcode');
|
| 4 |
+
add_shortcode('noindex', 'relevanssi_noindex_shortcode');
|
| 5 |
+
|
| 6 |
+
function relevanssi_shortcode($atts, $content, $name) {
|
| 7 |
+
global $wpdb;
|
| 8 |
+
|
| 9 |
+
extract(shortcode_atts(array('term' => false, 'phrase' => 'not'), $atts));
|
| 10 |
+
|
| 11 |
+
if ($term != false) {
|
| 12 |
+
$term = urlencode(strtolower($term));
|
| 13 |
+
}
|
| 14 |
+
else {
|
| 15 |
+
$term = urlencode(strip_tags(strtolower($content)));
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
if ($phrase != 'not') {
|
| 19 |
+
$term = '%22' . $term . '%22';
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
$link = get_bloginfo('url') . "/?s=$term";
|
| 23 |
+
|
| 24 |
+
$pre = "<a href='$link'>";
|
| 25 |
+
$post = "</a>";
|
| 26 |
+
|
| 27 |
+
return $pre . do_shortcode($content) . $post;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
function relevanssi_noindex_shortcode($atts, $content) {
|
| 31 |
+
// When in general use, make the shortcode disappear.
|
| 32 |
+
return $content;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
function relevanssi_noindex_shortcode_indexing($atts, $content) {
|
| 36 |
+
// When indexing, make the text disappear.
|
| 37 |
+
return '';
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
?>
|
lib/stopwords.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
// Reads automatically the correct stopwords for the current language set in WPLANG.
|
| 4 |
+
function relevanssi_populate_stopwords() {
|
| 5 |
+
global $wpdb, $relevanssi_variables;
|
| 6 |
+
|
| 7 |
+
if (WPLANG == '') {
|
| 8 |
+
$lang = "en_GB";
|
| 9 |
+
}
|
| 10 |
+
else {
|
| 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 |
+
}
|
| 23 |
+
|
| 24 |
+
function relevanssi_fetch_stopwords() {
|
| 25 |
+
global $wpdb, $relevanssi_variables;
|
| 26 |
+
|
| 27 |
+
if (!isset($relevanssi_variables['stopword_list'])) $relevanssi_variables['stopword_list'] = array();
|
| 28 |
+
|
| 29 |
+
if (count($relevanssi_variables['stopword_list']) < 1) {
|
| 30 |
+
$results = $wpdb->get_results("SELECT stopword FROM " . $relevanssi_variables['stopword_table']);
|
| 31 |
+
foreach ($results as $word) {
|
| 32 |
+
$relevanssi_variables['stopword_list'][] = $word->stopword;
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
return $relevanssi_variables['stopword_list'];
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
?>
|
lib/uninstall.php
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 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";
|
| 9 |
+
$stopword_table = $wpdb->prefix . "relevanssi_stopwords";
|
| 10 |
+
$log_table = $wpdb->prefix . "relevanssi_log";
|
| 11 |
+
$relevanssi_cache = $wpdb->prefix . 'relevanssi_cache';
|
| 12 |
+
$relevanssi_excerpt_cache = $wpdb->prefix . 'relevanssi_excerpt_cache';
|
| 13 |
+
|
| 14 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$stopword_table'") == $stopword_table) {
|
| 15 |
+
$sql = "DROP TABLE $stopword_table";
|
| 16 |
+
$wpdb->query($sql);
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$relevanssi_table'") == $relevanssi_table) {
|
| 20 |
+
$sql = "DROP TABLE $relevanssi_table";
|
| 21 |
+
$wpdb->query($sql);
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$log_table'") == $log_table) {
|
| 25 |
+
$sql = "DROP TABLE $log_table";
|
| 26 |
+
$wpdb->query($sql);
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$relevanssi_cache'") == $relevanssi_cache) {
|
| 30 |
+
$sql = "DROP TABLE $relevanssi_cache";
|
| 31 |
+
$wpdb->query($sql);
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
if($wpdb->get_var("SHOW TABLES LIKE '$relevanssi_excerpt_cache'") == $relevanssi_excerpt_cache) {
|
| 35 |
+
$sql = "DROP TABLE $relevanssi_excerpt_cache";
|
| 36 |
+
$wpdb->query($sql);
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
echo '<div id="message" class="updated fade"><p>' . __("Data wiped clean, you can now delete the plugin.", "relevanssi") . '</p></div>';
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
?>
|
readme.txt
ADDED
|
@@ -0,0 +1,852 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
=== Relevanssi - A Better Search ===
|
| 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 |
+
|
| 11 |
+
== Description ==
|
| 12 |
+
|
| 13 |
+
Relevanssi replaces the standard WordPress search with a better search engine, with lots of features
|
| 14 |
+
and configurable options. You'll get better results, better presentation of results - your users
|
| 15 |
+
will thank you.
|
| 16 |
+
|
| 17 |
+
This is the free version of Relevanssi. There's also Relevanssi Premium, which has added features.
|
| 18 |
+
For more information about Premium, see [Relevanssi.com](http://www.relevanssi.com/).
|
| 19 |
+
|
| 20 |
+
= Key features =
|
| 21 |
+
* Search results sorted in the order of relevance, not by date.
|
| 22 |
+
* Fuzzy matching: match partial words, if complete words don't match.
|
| 23 |
+
* Find documents matching either just one search term (OR query) or require all words to appear (AND query).
|
| 24 |
+
* Search for phrases with quotes, for example "search phrase".
|
| 25 |
+
* Create custom excerpts that show where the hit was made, with the search terms highlighted.
|
| 26 |
+
* Highlight search terms in the documents when user clicks through search results.
|
| 27 |
+
* Search comments, tags, categories and custom fields.
|
| 28 |
+
|
| 29 |
+
= Advanced features =
|
| 30 |
+
* Adjust the weighting for titles, tags and comments.
|
| 31 |
+
* Log queries, show most popular queries and recent queries with no hits.
|
| 32 |
+
* Restrict searches to categories and tags using a hidden variable or plugin settings.
|
| 33 |
+
* Index custom post types and custom taxonomies.
|
| 34 |
+
* Index the contents of shortcodes.
|
| 35 |
+
* Google-style "Did you mean?" suggestions based on successful user searches.
|
| 36 |
+
* Automatic support for [WPML multi-language plugin](http://wpml.org/).
|
| 37 |
+
* Automatic support for [s2member membership plugin](http://www.s2member.com/).
|
| 38 |
+
* Advanced filtering to help hacking the search results the way you want.
|
| 39 |
+
* Search result throttling to improve performance on large databases.
|
| 40 |
+
* Disable indexing of post content and post titles with a simple filter hook.
|
| 41 |
+
|
| 42 |
+
Relevanssi is available in two versions, regular and Premium. Regular Relevanssi is and will remain
|
| 43 |
+
free to download and use. Relevanssi Premium comes with a cost, but will get all the new features.
|
| 44 |
+
Standard Relevanssi will be updated to fix bugs, but new features will mostly appear in Premium.
|
| 45 |
+
Also, support for standard Relevanssi depends very much on my mood and available time. Premium
|
| 46 |
+
pricing includes support.
|
| 47 |
+
|
| 48 |
+
= Premium features (only in Relevanssi Premium) =
|
| 49 |
+
* Improved spelling correction in "Did you mean?" suggestions.
|
| 50 |
+
* Multisite support.
|
| 51 |
+
* Search and index user profiles.
|
| 52 |
+
* Search and index taxonomy term pages (categories, tags, custom taxonomies).
|
| 53 |
+
* Search and index arbitrary columns in wp_posts MySQL table.
|
| 54 |
+
* Assign weights to any post types and taxonomies.
|
| 55 |
+
* Assign extra weight to new posts.
|
| 56 |
+
* Let the user choose between AND and OR searches, use + and - operator (AND and NOT).
|
| 57 |
+
* Highlighting search terms for visitors from external search engines.
|
| 58 |
+
* Export and import settings.
|
| 59 |
+
|
| 60 |
+
= Relevanssi in Facebook =
|
| 61 |
+
You can find [Relevanssi in Facebook](http://www.facebook.com/relevanssi).
|
| 62 |
+
Become a fan to follow the development of the plugin, I'll post updates on bugs, new features and
|
| 63 |
+
new versions to the Facebook page.
|
| 64 |
+
|
| 65 |
+
= Other search plugins =
|
| 66 |
+
Relevanssi owes a lot to [wpSearch](http://wordpress.org/extend/plugins/wpsearch/) by Kenny
|
| 67 |
+
Katzgrau. Relevanssi was built to replace wpSearch, when it started to fail.
|
| 68 |
+
|
| 69 |
+
Search Unleashed is a popular search plugin, but it hasn't been updated since 2010. Relevanssi
|
| 70 |
+
is in active development and does what Search Unleashed does.
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
== Installation ==
|
| 75 |
+
|
| 76 |
+
1. Extract all files from the ZIP file, and then upload the plugin's folder to /wp-content/plugins/.
|
| 77 |
+
1. If your blog is in English, skip to the next step. If your blog is in other language, rename the file *stopwords* in the plugin directory as something else or remove it. If there is *stopwords.yourlanguage*, rename it to *stopwords*.
|
| 78 |
+
1. Activate the plugin through the 'Plugins' menu in WordPress.
|
| 79 |
+
1. Go to the plugin settings and build the index following the instructions there.
|
| 80 |
+
|
| 81 |
+
To update your installation, simply overwrite the old files with the new, activate the new
|
| 82 |
+
version and if the new version has changes in the indexing, rebuild the index.
|
| 83 |
+
|
| 84 |
+
= Note on updates =
|
| 85 |
+
If it seems the plugin doesn't work after an update, the first thing to try is deactivating and
|
| 86 |
+
reactivating the plugin. If there are changes in the database structure, those changes do not happen
|
| 87 |
+
without a deactivation, for some reason.
|
| 88 |
+
|
| 89 |
+
= Changes to templates =
|
| 90 |
+
None necessary! Relevanssi uses the standard search form and doesn't usually need any changes in
|
| 91 |
+
the search results template.
|
| 92 |
+
|
| 93 |
+
= How to index =
|
| 94 |
+
Check the options to make sure they're to your liking, then click "Save indexing options and
|
| 95 |
+
build the index". If everything's fine, you'll see the Relevanssi options screen again with a
|
| 96 |
+
message "Indexing successful!"
|
| 97 |
+
|
| 98 |
+
If something fails, usually the result is a blank screen. The most common problem is a timeout:
|
| 99 |
+
server ran out of time while indexing. The solution to that is simple: just return to Relevanssi
|
| 100 |
+
screen (do not just try to reload the blank page) and click "Continue indexing". Indexing will
|
| 101 |
+
continue. Most databases will get indexed in just few clicks of "Continue indexing". You can
|
| 102 |
+
follow the process in the "State of the Index": if the amount of documents is growing, the
|
| 103 |
+
indexing is moving along.
|
| 104 |
+
|
| 105 |
+
If the indexing gets stuck, something's wrong. I've had trouble with some plugins, for example
|
| 106 |
+
Flowplayer video player stopped indexing. I had to disable the plugin, index and then activate
|
| 107 |
+
the plugin again. Try disabling plugins, especially those that use shortcodes, to see if that
|
| 108 |
+
helps. Relevanssi shows the highest post ID in the index - start troubleshooting from the post
|
| 109 |
+
or page with the next highest ID. Server error logs may be useful, too.
|
| 110 |
+
|
| 111 |
+
= Using custom search results =
|
| 112 |
+
If you want to use the custom search results, make sure your search results template uses `the_excerpt()`
|
| 113 |
+
to display the entries, because the plugin creates the custom snippet by replacing the post excerpt.
|
| 114 |
+
|
| 115 |
+
If you're using a plugin that affects excerpts (like Advanced Excerpt), you may run into some
|
| 116 |
+
problems. For those cases, I've included the function `relevanssi_the_excerpt()`, which you can
|
| 117 |
+
use instead of `the_excerpt()`. It prints out the excerpt, but doesn't apply `wp_trim_excerpt()`
|
| 118 |
+
filters (it does apply `the_content()`, `the_excerpt()`, and `get_the_excerpt()` filters).
|
| 119 |
+
|
| 120 |
+
To avoid trouble, use the function like this:
|
| 121 |
+
|
| 122 |
+
`<?php if (function_exists('relevanssi_the_excerpt')) { relevanssi_the_excerpt(); }; ?>`
|
| 123 |
+
|
| 124 |
+
See Frequently Asked Questions for more instructions on what you can do with
|
| 125 |
+
Relevanssi.
|
| 126 |
+
|
| 127 |
+
= The advanced hacker option =
|
| 128 |
+
If you're doing something unusual with your search and Relevanssi doesn't work, try
|
| 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
|
| 138 |
+
access the MySQL queries, for example. That won't do with Relevanssi. [Search Light](http://wordpress.org/extend/plugins/search-light/),
|
| 139 |
+
for example, won't work with Relevanssi.
|
| 140 |
+
|
| 141 |
+
[ThreeWP Ajax Search](http://wordpress.org/extend/plugins/threewp-ajax-search/) is
|
| 142 |
+
an AJAX instant search plugin that works with Relevanssi.
|
| 143 |
+
|
| 144 |
+
Some plugins cause problems when indexing documents. These are generally plugins that use shortcodes
|
| 145 |
+
to do something somewhat complicated. One such plugin is [MapPress Easy Google Maps](http://wordpress.org/extend/plugins/mappress-google-maps-for-wordpress/).
|
| 146 |
+
When indexing, you'll get a white screen. To fix the problem, disable either the offending plugin
|
| 147 |
+
or shortcode expansion in Relevanssi while indexing. After indexing, you can activate the plugin
|
| 148 |
+
again.
|
| 149 |
+
|
| 150 |
+
== Frequently Asked Questions ==
|
| 151 |
+
|
| 152 |
+
= Knowledge Base =
|
| 153 |
+
You can find solutions and answers at the [Relevanssi Knowledge Base](http://www.relevanssi.com/category/knowledge-base/).
|
| 154 |
+
|
| 155 |
+
= Relevanssi doesn't work =
|
| 156 |
+
If you the results don't change after installing and activating Relevanssi, the most likely
|
| 157 |
+
reason is that you have a call to `query_posts()` on your search results template. This confuses
|
| 158 |
+
Relevanssi. Try removing the query_posts call and see what happens.
|
| 159 |
+
|
| 160 |
+
= Where are the user search logs? =
|
| 161 |
+
See the top of the admin menu. There's 'User searches'. There. If the logs are empty, please note
|
| 162 |
+
showing the results needs at least MySQL 5.
|
| 163 |
+
|
| 164 |
+
= Displaying the number of search results found =
|
| 165 |
+
|
| 166 |
+
The typical solution to showing the number of search results found does not work with Relevanssi.
|
| 167 |
+
However, there's a solution that's much easier: the number of search results is stored in a
|
| 168 |
+
variable within $wp_query. Just add the following code to your search results template:
|
| 169 |
+
|
| 170 |
+
`<?php echo 'Relevanssi found ' . $wp_query->found_posts . ' hits'; ?>`
|
| 171 |
+
|
| 172 |
+
= Advanced search result filtering =
|
| 173 |
+
|
| 174 |
+
If you want to add extra filters to the search results, you can add them using a hook.
|
| 175 |
+
Relevanssi searches for results in the _relevanssi table, where terms and post_ids are listed.
|
| 176 |
+
The various filtering methods work by listing either allowed or forbidden post ids in the
|
| 177 |
+
query WHERE clause. Using the `relevanssi_where` hook you can add your own restrictions to
|
| 178 |
+
the WHERE clause.
|
| 179 |
+
|
| 180 |
+
These restrictions must be in the general format of
|
| 181 |
+
` AND doc IN (' . {a list of post ids, which could be a subquery} . ')`
|
| 182 |
+
|
| 183 |
+
For more details, see where the filter is applied in the `relevanssi_search()` function. This
|
| 184 |
+
is stricly an advanced hacker option for those people who're used to using filters and MySQL
|
| 185 |
+
WHERE clauses and it is possible to break the search results completely by doing something wrong
|
| 186 |
+
here.
|
| 187 |
+
|
| 188 |
+
There's another filter hook, `relevanssi_hits_filter`, which lets you modify the hits directly.
|
| 189 |
+
The filter passes an array, where index 0 gives the list of hits in the form of an array of
|
| 190 |
+
post objects and index 1 has the search query as a string. The filter expects you to return an
|
| 191 |
+
array containing the array of post objects in index 0 (`return array($your_processed_hit_array)`).
|
| 192 |
+
|
| 193 |
+
= Direct access to query engine =
|
| 194 |
+
Relevanssi can't be used in any situation, because it checks the presence of search with
|
| 195 |
+
the `is_search()` function. This causes some unfortunate limitations and reduces the general usability
|
| 196 |
+
of the plugin.
|
| 197 |
+
|
| 198 |
+
You can now access the query engine directly. There's a new function `relevanssi_do_query()`,
|
| 199 |
+
which can be used to do search queries just about anywhere. The function takes a WP_Query object
|
| 200 |
+
as a parameter, so you need to store all the search parameters in the object (for example, put the
|
| 201 |
+
search terms in `$your_query_object->query_vars['s']`). Then just pass the WP_Query object to
|
| 202 |
+
Relevanssi with `relevanssi_do_query($your_wp_query_object);`.
|
| 203 |
+
|
| 204 |
+
Relevanssi will process the query and insert the found posts as `$your_query_object->posts`. The
|
| 205 |
+
query object is passed as reference and modified directly, so there's no return value. The posts
|
| 206 |
+
array will contain all results that are found.
|
| 207 |
+
|
| 208 |
+
= Sorting search results =
|
| 209 |
+
If you want something else than relevancy ranking, you can use orderby and order parameters. Orderby
|
| 210 |
+
accepts $post variable attributes and order can be "asc" or "desc". The most relevant attributes
|
| 211 |
+
here are most likely "post_date" and "comment_count".
|
| 212 |
+
|
| 213 |
+
If you want to give your users the ability to sort search results by date, you can just add a link
|
| 214 |
+
to http://www.yourblogdomain.com/?s=search-term&orderby=post_date&order=desc to your search result
|
| 215 |
+
page.
|
| 216 |
+
|
| 217 |
+
Order by relevance is either orderby=relevance or no orderby parameter at all.
|
| 218 |
+
|
| 219 |
+
= Filtering results by date =
|
| 220 |
+
You can specify date limits on searches with `by_date` search parameter. You can use it your
|
| 221 |
+
search result page like this: http://www.yourblogdomain.com/?s=search-term&by_date=1d to offer
|
| 222 |
+
your visitor the ability to restrict their search to certain time limit (see
|
| 223 |
+
[RAPLIQ](http://www.rapliq.org/) for a working example).
|
| 224 |
+
|
| 225 |
+
The date range is always back from the current date and time. Possible units are hour (h), day (d),
|
| 226 |
+
week (w), month (m) and year (y). So, to see only posts from past week, you could use by_date=7d
|
| 227 |
+
or by_date=1w.
|
| 228 |
+
|
| 229 |
+
Using wrong letters for units or impossible date ranges will lead to either defaulting to date
|
| 230 |
+
or no results at all, depending on case.
|
| 231 |
+
|
| 232 |
+
Thanks to Charles St-Pierre for the idea.
|
| 233 |
+
|
| 234 |
+
= Caching =
|
| 235 |
+
Relevanssi has an included cache feature that'll store search results and
|
| 236 |
+
post excerpts in the database for reuse. It's something of an experimental
|
| 237 |
+
feature right now, but should work and if there are lots of repeat queries,
|
| 238 |
+
it'll give some actual boost in performance.
|
| 239 |
+
|
| 240 |
+
= Displaying the relevance score =
|
| 241 |
+
Relevanssi stores the relevance score it uses to sort results in the $post variable. Just add
|
| 242 |
+
something like
|
| 243 |
+
|
| 244 |
+
`echo $post->relevance_score`
|
| 245 |
+
|
| 246 |
+
to your search results template inside a PHP code block to display the relevance score.
|
| 247 |
+
|
| 248 |
+
= Did you mean? suggestions =
|
| 249 |
+
To use Google-style "did you mean?" suggestions, first enable search query logging. The
|
| 250 |
+
suggestions are based on logged queries, so without good base of logged queries, the
|
| 251 |
+
suggestions will be odd and not very useful.
|
| 252 |
+
|
| 253 |
+
To use the suggestions, add the following line to your search result template, preferably
|
| 254 |
+
before the have_posts() check:
|
| 255 |
+
|
| 256 |
+
`<?php if (function_exists('relevanssi_didyoumean')) { relevanssi_didyoumean(get_search_query(), "<p>Did you mean: ", "?</p>", 5); }?>`
|
| 257 |
+
|
| 258 |
+
The first parameter passes the search term, the second is the text before the result,
|
| 259 |
+
the third is the text after the result and the number is the amount of search results
|
| 260 |
+
necessary to not show suggestions. With the default value of 5, suggestions are not
|
| 261 |
+
shown if the search returns more than 5 hits.
|
| 262 |
+
|
| 263 |
+
= Search shortcode =
|
| 264 |
+
Relevanssi also adds a shortcode to help making links to search results. That way users
|
| 265 |
+
can easily find more information about a given subject from your blog. The syntax is
|
| 266 |
+
simple:
|
| 267 |
+
|
| 268 |
+
`[search]John Doe[/search]`
|
| 269 |
+
|
| 270 |
+
This will make the text John Doe a link to search results for John Doe. In case you
|
| 271 |
+
want to link to some other search term than the anchor text (necessary in languages
|
| 272 |
+
like Finnish), you can use:
|
| 273 |
+
|
| 274 |
+
`[search term="John Doe"]Mr. John Doe[/search]`
|
| 275 |
+
|
| 276 |
+
Now the search will be for John Doe, but the anchor says Mr. John Doe.
|
| 277 |
+
|
| 278 |
+
One more parameter: setting `[search phrase="on"]` will wrap the search term in
|
| 279 |
+
quotation marks, making it a phrase. This can be useful in some cases.
|
| 280 |
+
|
| 281 |
+
= Restricting searches to categories and tags =
|
| 282 |
+
Relevanssi supports the hidden input field `cat` to restrict searches to certain categories (or
|
| 283 |
+
tags, since those are pretty much the same). Just add a hidden input field named `cat` in your
|
| 284 |
+
search form and list the desired category or tag IDs in the `value` field - positive numbers
|
| 285 |
+
include those categories and tags, negative numbers exclude them.
|
| 286 |
+
|
| 287 |
+
This input field can only take one category or tag id (a restriction caused by WordPress, not
|
| 288 |
+
Relevanssi). If you need more, use `cats` and use a comma-separated list of category IDs.
|
| 289 |
+
|
| 290 |
+
The same works with post types. The input fields are called `post_type` and `post_types`.
|
| 291 |
+
|
| 292 |
+
You can also set the restriction from general plugin settings (and then override it in individual
|
| 293 |
+
search forms with the special field). This works with custom taxonomies as well, just replace `cat`
|
| 294 |
+
with the name of your taxonomy.
|
| 295 |
+
|
| 296 |
+
If you want to restrict the search to categories using a dropdown box on the search form, use
|
| 297 |
+
a code like this:
|
| 298 |
+
|
| 299 |
+
`<form method="get" action="<?php bloginfo('url'); ?>">
|
| 300 |
+
<div><label class="screen-reader-text" for="s">Search</label>
|
| 301 |
+
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
|
| 302 |
+
<?php
|
| 303 |
+
wp_dropdown_categories(array('show_option_all' => 'All categories'));
|
| 304 |
+
?>
|
| 305 |
+
<input type="submit" id="searchsubmit" value="Search" />
|
| 306 |
+
</div>
|
| 307 |
+
</form>`
|
| 308 |
+
|
| 309 |
+
This produces a search form with a dropdown box for categories. Do note that this code won't work
|
| 310 |
+
when placed in a Text widget: either place it directly in the template or use a PHP widget plugin
|
| 311 |
+
to get a widget that can execute PHP code.
|
| 312 |
+
|
| 313 |
+
= Restricting searches with taxonomies =
|
| 314 |
+
|
| 315 |
+
You can use taxonomies to restrict search results to posts and pages tagged with a certain
|
| 316 |
+
taxonomy term. If you have a custom taxonomy of "People" and want to search entries tagged
|
| 317 |
+
"John" in this taxonomy, just use `?s=keyword&people=John` in the URL. You should be able to use
|
| 318 |
+
an input field in the search form to do this, as well - just name the input field with the name
|
| 319 |
+
of the taxonomy you want to use.
|
| 320 |
+
|
| 321 |
+
It's also possible to do a dropdown for custom taxonomies, using the same function. Just adjust
|
| 322 |
+
the arguments like this:
|
| 323 |
+
|
| 324 |
+
`wp_dropdown_categories(array('show_option_all' => 'All people', 'name' => 'people', 'taxonomy' => 'people'));`
|
| 325 |
+
|
| 326 |
+
This would do a dropdown box for the "People" taxonomy. The 'name' must be the keyword used in
|
| 327 |
+
the URL, while 'taxonomy' has the name of the taxonomy.
|
| 328 |
+
|
| 329 |
+
= Automatic indexing =
|
| 330 |
+
Relevanssi indexes changes in documents as soon as they happen. However, changes in shortcoded
|
| 331 |
+
content won't be registered automatically. If you use lots of shortcodes and dynamic content, you
|
| 332 |
+
may want to add extra indexing. Here's how to do it:
|
| 333 |
+
|
| 334 |
+
`if (!wp_next_scheduled('relevanssi_build_index')) {
|
| 335 |
+
wp_schedule_event( time(), 'daily', 'relevanssi_build_index' );
|
| 336 |
+
}`
|
| 337 |
+
|
| 338 |
+
Add the code above in your theme functions.php file so it gets executed. This will cause
|
| 339 |
+
WordPress to build the index once a day. This is an untested and unsupported feature that may
|
| 340 |
+
cause trouble and corrupt index if your database is large, so use at your own risk. This was
|
| 341 |
+
presented at [forum](http://wordpress.org/support/topic/plugin-relevanssi-a-better-search-relevanssi-chron-indexing?replies=2).
|
| 342 |
+
|
| 343 |
+
= Highlighting terms =
|
| 344 |
+
Relevanssi search term highlighting can be used outside search results. You can access the search
|
| 345 |
+
term highlighting function directly. This can be used for example to highlight search terms in
|
| 346 |
+
structured search result data that comes from custom fields and isn't normally highlighted by
|
| 347 |
+
Relevanssi.
|
| 348 |
+
|
| 349 |
+
Just pass the content you want highlighted through `relevanssi_highlight_terms()` function. The
|
| 350 |
+
content to highlight is the first parameter, the search query the second. The content with
|
| 351 |
+
highlights is then returned by the function. Use it like this:
|
| 352 |
+
|
| 353 |
+
`if (function_exists('relevanssi_highlight_terms')) {
|
| 354 |
+
echo relevanssi_highlight_terms($content, get_search_query());
|
| 355 |
+
}
|
| 356 |
+
else { echo $content; }`
|
| 357 |
+
|
| 358 |
+
= What is tf * idf weighing? =
|
| 359 |
+
|
| 360 |
+
It's the basic weighing scheme used in information retrieval. Tf stands for *term frequency*
|
| 361 |
+
while idf is *inverted document frequency*. Term frequency is simply the number of times the term
|
| 362 |
+
appears in a document, while document frequency is the number of documents in the database where
|
| 363 |
+
the term appears.
|
| 364 |
+
|
| 365 |
+
Thus, the weight of the word for a document increases the more often it appears in the document and
|
| 366 |
+
the less often it appears in other documents.
|
| 367 |
+
|
| 368 |
+
= What are stop words? =
|
| 369 |
+
|
| 370 |
+
Each document database is full of useless words. All the little words that appear in just about
|
| 371 |
+
every document are completely useless for information retrieval purposes. Basically, their
|
| 372 |
+
inverted document frequency is really low, so they never have much power in matching. Also,
|
| 373 |
+
removing those words helps to make the index smaller and searching faster.
|
| 374 |
+
|
| 375 |
+
== Known issues and To-do's ==
|
| 376 |
+
* Known issue: In general, multiple Loops on the search page may cause surprising results. Please make sure the actual search results are the first loop.
|
| 377 |
+
* Known issue: Relevanssi doesn't necessarily play nice with plugins that modify the excerpt. If you're having problems, try using relevanssi_the_excerpt() instead of the_excerpt().
|
| 378 |
+
* Known issue: Custom post types and private posts is problematic - I'm using default 'read_private_*s' capability, which might not always work.
|
| 379 |
+
* Known issue: There are reported problems with custom posts combined with custom taxonomies, the taxonomy restriction doesn't necessarily work.
|
| 380 |
+
* Known issue: Phrase matching is only done to post content; phrases don't match to category titles and other content.
|
| 381 |
+
* Known issue: User searches page requires MySQL 5.
|
| 382 |
+
|
| 383 |
+
== Thanks ==
|
| 384 |
+
* Cristian Damm for tag indexing, comment indexing, post/page exclusion and general helpfulness.
|
| 385 |
+
* Marcus Dalgren for UTF-8 fixing.
|
| 386 |
+
* Warren Tape for 2.5.5 fixes.
|
| 387 |
+
* Mohib Ebrahim for relentless bug hunting.
|
| 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.
|
| 394 |
+
* Modified `relevanssi_remove_punct()` to replace curly apostrophes and quotes with spaces instead of removing them, to make the index more consistent (regular apostrophes were replaced with spaces). Reindexing the database is a good idea.
|
| 395 |
+
* Fixed some misleading text on the options page.
|
| 396 |
+
|
| 397 |
+
= 3.0.4 =
|
| 398 |
+
* AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
|
| 399 |
+
* Fixed another problem with the Jetpack Contact Form.
|
| 400 |
+
* Fixed an error message caused by searching for numbers.
|
| 401 |
+
* Phrases are now also recognized in drafts and attachments.
|
| 402 |
+
* You can now set `post_types` to 'any'.
|
| 403 |
+
|
| 404 |
+
= 3.0.3 =
|
| 405 |
+
* AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
|
| 406 |
+
* Fixed a bug that made custom taxonomy term searches fail.
|
| 407 |
+
* New filter: `relevanssi_user_searches_capability` lets you modify the minimum capability required to see the User searches page.
|
| 408 |
+
|
| 409 |
+
= 3.0.2 =
|
| 410 |
+
* AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
|
| 411 |
+
* Fixed the "Cannot use a scalar value as an array" bug in indexing.
|
| 412 |
+
* Role-Scoper users: in order to make Relevanssi work with Role-Scoper, replace the Relevanssi helper file in Role-Scoper with [this file](http://www.relevanssi.com/relevanssi-helper-front_rs.txt).
|
| 413 |
+
* Removed an error message about set_time_limit() under safe_mode.
|
| 414 |
+
* Jetpack Contact Form shortcode caused problems when indexing. Relevanssi will now simply remove the shortcode before indexing.
|
| 415 |
+
* Fixed errors caused by / characters in highlighting.
|
| 416 |
+
|
| 417 |
+
= 3.0.1 =
|
| 418 |
+
* AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
|
| 419 |
+
* Fixed lots of problems in logging searches.
|
| 420 |
+
* Added an alert when user hasn't selected any post types to index (and default values).
|
| 421 |
+
* Custom field setting 'visible' works now.
|
| 422 |
+
* Searching by category title works now, and you can adjust the category weight in the settings.
|
| 423 |
+
|
| 424 |
+
= 3.0 =
|
| 425 |
+
* AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
|
| 426 |
+
* WORD OF WARNING: This is a major update, with lots of changes as you can see, and since I couldn't find any beta testers to help test it out, consider this a beta release, with bugs probable.
|
| 427 |
+
* The database has been updated to match the more advanced structure in Relevanssi Premium. This requires a re-indexing of the database.
|
| 428 |
+
* The indexing process is more efficient now.
|
| 429 |
+
* Relevanssi now includes a throttle feature, which makes the searches more efficient.
|
| 430 |
+
* Relevanssi now disables the default WP search.
|
| 431 |
+
* The custom field search hack using `cat` set to "custom" doesn't work any more. If you wish to filter by custom field, you need Relevanssi Premium, which does it better anyway.
|
| 432 |
+
* Relevanssi can handle certain whitespace characters better in indexing.
|
| 433 |
+
* Apostrophes are now replaced with whitespace instead of being removed.
|
| 434 |
+
* Relevanssi now shows correct number of results when posts_per_page is set to -1.
|
| 435 |
+
* Fuzzy search didn't always activate when it should, if all found posts are private posts that can't be shown to user.
|
| 436 |
+
* Tab characters in excerpts are handled better now.
|
| 437 |
+
* Relevanssi search logs will now store user ID's and IP addresses for each query.
|
| 438 |
+
* You can now use user logins as well as numeric ID's to stop user from being logged.
|
| 439 |
+
* Attachments are now handled better. I'd still like to hear any complaints about attachments.
|
| 440 |
+
* Relevanssi now updates index for posts added with wp_update_post() function. (Thanks to Simon Blackbourn)
|
| 441 |
+
* Searching for pages in admin didn't work properly. Fixed that.
|
| 442 |
+
* Fixed warnings for undefined variables.
|
| 443 |
+
* Relevanssi won't mess media library searches any more.
|
| 444 |
+
* Search terms are no longer highlighted in titles on post pages. That caused too many problems.
|
| 445 |
+
* New collation rules to MySQL databases will make sure that word pairs like "pode" and "pôde" will not be considered duplicates in the stopword database.
|
| 446 |
+
* You can now set the "Custom fields to index" to "all" to index all custom fields and "visible" to index all visible custom fields (but not the ones with names starting with an underscore).
|
| 447 |
+
* Plugin now works properly without multibyte string functions.
|
| 448 |
+
* You can now choose to allow HTML tags in excerpts.
|
| 449 |
+
* New filter: `relevanssi_modify_wp_query` lets you modify $wp_query before it is passed to Relevanssi.
|
| 450 |
+
* New filter: `relevanssi_search_ok` lets you adjust when search is enabled.
|
| 451 |
+
* New filter: `relevanssi_pre_excerpt_content` lets you adjust post content before excerpt creation.
|
| 452 |
+
* New filter: `relevanssi_excerpt_content` lets you adjust post content before excerpt creation, but after `the_content`.
|
| 453 |
+
* New filter: `relevanssi_ellipsis` lets you change the default '...' in excerpts to something else.
|
| 454 |
+
* New filter: `relevanssi_do_not_index` is given a post ID and expects a boolean in return: should this post be indexed or not?
|
| 455 |
+
* New filter: `relevanssi_match` lets you meddle with the matching engine.
|
| 456 |
+
* New filter: `relevanssi_results` filters the result set from the search.
|
| 457 |
+
* New filter: `relevanssi_content_to_index` let's you add whatever content you wish to posts before they are indexed.
|
| 458 |
+
* New filter: `relevanssi_didyoumean_query` let's you modify the query for Did you mean? queries
|
| 459 |
+
* Changed filter: `relevanssi_post_ok` has different arguments, see source code for details.
|
| 460 |
+
* New shortcode: use shortcode `noindex` to wrap parts of posts you want to keep from the index.
|
| 461 |
+
* And a bunch of other changes.
|
| 462 |
+
|
| 463 |
+
= 2.9.14 =
|
| 464 |
+
* Relevanssi will now index pending and future posts. These posts are only shown in the admin search.
|
| 465 |
+
|
| 466 |
+
= 2.9.13 =
|
| 467 |
+
* Stripping shortcodes from excerpts didn't work properly. Should work now.
|
| 468 |
+
* Fixed a mistake in the FAQ: correct post date parameter is `post_date`, not `date`.
|
| 469 |
+
* New filter `relevanssi_results` added. This filter will process an array with (post->ID => document weight) pairs.
|
| 470 |
+
* Private and draft posts were deleted from the index when they were edited. This bug has been fixed. (Thanks to comprock.)
|
| 471 |
+
* When continuing indexing, Relevanssi now tells if there's more to index. (Thanks to mrose17.)
|
| 472 |
+
* Fixed problems with searching attachments. Indexing attachments still has some problems. When you build the index, attachments are indexed properly.
|
| 473 |
+
* Improved WPML support.
|
| 474 |
+
* The `relevanssi_index_doc()` function has a new parameter that allows you to bypass global $post and force the function to index the document given as a parameter (see 2.9.13 release notes at Relevanssi.com for more details).
|
| 475 |
+
|
| 476 |
+
= 2.9.12 =
|
| 477 |
+
* Scheduled cache truncate wasn't scheduled properly. It is now.
|
| 478 |
+
* Added support for 'author' query variable.
|
| 479 |
+
* Fixed a bug with indexing custom post types.
|
| 480 |
+
|
| 481 |
+
= 2.9.11 =
|
| 482 |
+
* Plugin now works properly without multibyte string functions.
|
| 483 |
+
* Fixed s2member support for s2member versions 110912 and above. (Thanks to Jason Caldwell.)
|
| 484 |
+
* Added support for 'tag' query variable.
|
| 485 |
+
|
| 486 |
+
= 2.9.10 =
|
| 487 |
+
* AND search failed, when search query included terms that are shorter than the minimum word length.
|
| 488 |
+
* Improved s2member support.
|
| 489 |
+
* Fixed errors about deprecated ereg_replace.
|
| 490 |
+
* Small fix to Did you mean suggestions.
|
| 491 |
+
|
| 492 |
+
= 2.9.9 =
|
| 493 |
+
* Removed warnings about undefined functions and missing $wpdb.
|
| 494 |
+
* Fixed a bug that removed 'à' from search terms.
|
| 495 |
+
* Phrases are recognized from custom field searches.
|
| 496 |
+
|
| 497 |
+
= 2.9.8 =
|
| 498 |
+
* Support for s2member membership plugin. Search won't show posts that the current user isn't allowed to see.
|
| 499 |
+
* New filter `relevanssi_post_ok` can be used to add support for other membership plugins.
|
| 500 |
+
* Post meta fields that contain arrays are now indexed properly, expanding all the arrays.
|
| 501 |
+
|
| 502 |
+
= 2.9.7 =
|
| 503 |
+
* Fixed a bug that causes problems when paging search results.
|
| 504 |
+
* Taxonomy term restrictions didn't work most of the time.
|
| 505 |
+
* the_content filters didn't run on excerpts.
|
| 506 |
+
* Style data and other extra elements created by short codes are now stripped.
|
| 507 |
+
|
| 508 |
+
= 2.9.6 =
|
| 509 |
+
* Fixed a problem causing "Attempt to modify property of non-object" errors.
|
| 510 |
+
* Fixed a warning message.
|
| 511 |
+
|
| 512 |
+
= 2.9.5 =
|
| 513 |
+
* Searching for private posts caused an error message.
|
| 514 |
+
|
| 515 |
+
= 2.9.4 =
|
| 516 |
+
* Relevanssi should now be much lighter on server.
|
| 517 |
+
* Post date selection didn't work properly. Fixed that.
|
| 518 |
+
* Stopwords can be exported.
|
| 519 |
+
* Restricting indexing on custom post types works better.
|
| 520 |
+
* Minimum word length is properly enforced in indexing.
|
| 521 |
+
* Punctuation removal is more efficient.
|
| 522 |
+
* Fixed a MySQL error that was triggered by a media upload.
|
| 523 |
+
* Fixed a bug that caused an error when quick editing a post.
|
| 524 |
+
|
| 525 |
+
= 2.9.3 =
|
| 526 |
+
* A call to a non-existing function in 2.9.2 made all sorts of mess. This release fixes all problems with broken loops. I'm sorry about the bug.
|
| 527 |
+
|
| 528 |
+
= 2.9.2 =
|
| 529 |
+
* It's now possible to adjust the number of search results per page. See [Changing posts_per_page](http://www.relevanssi.com/knowledge-base/posts-per-page/) for instructions.
|
| 530 |
+
* Somebody reported revisions appearing in the search results. Added an extra check to prevent that.
|
| 531 |
+
* Improved the indexing procedure to prevent MySQL errors from appearing and to streamline the process.
|
| 532 |
+
* Improved the way custom post types can be handled in indexing.
|
| 533 |
+
* Improved the method of removing nested highlights.
|
| 534 |
+
|
| 535 |
+
= 2.9.1 =
|
| 536 |
+
* It is now possible to change the default result order from relevance to post date.
|
| 537 |
+
* Fixed a bug that caused wrong $post object to be set in indexing.
|
| 538 |
+
* Added a new hook `relevanssi_excerpt_content`; see [Knowledge Base](http://www.relevanssi.com/category/knowledge-base/) for details.
|
| 539 |
+
|
| 540 |
+
= 2.9 =
|
| 541 |
+
* Fixed a bug that caused Cyrillic searches in the log to get corrupted.
|
| 542 |
+
* Punctuation removal function is now triggered with a filter call and can thus be replaced.
|
| 543 |
+
* Google Adsense caused double hits to the user search logs. That's now fixed thanks to Justin Klein.
|
| 544 |
+
* User search log is available to user with `edit_post` capabilities (editor role). Thanks to John Blackbourn.
|
| 545 |
+
* A proper database collation is now set. Thanks to John Blackbourn.
|
| 546 |
+
* UI looks better. Thanks to John Blackbourn.
|
| 547 |
+
* Lots of small fixes here and there.
|
| 548 |
+
|
| 549 |
+
= 2.8.2 =
|
| 550 |
+
* The `order` parameter was case sensitive. It isn't anymore.
|
| 551 |
+
* WordPress didn't support searching for multiple categories with the `cat` query variable. There's now new `cats` which can take multiple categories.
|
| 552 |
+
* Similar to `cats` vs `cat`, you can use `post_types` to restrict the search to multiple post types.
|
| 553 |
+
|
| 554 |
+
= 2.8.1 =
|
| 555 |
+
* Fixed two small mistakes that caused error notices.
|
| 556 |
+
* Custom post types, particularly those created by More Types plugin, were causing problems.
|
| 557 |
+
|
| 558 |
+
= 2.8 =
|
| 559 |
+
* There's now a way to truncate the cache (sorry it took so long). Expired cache data is now automatically removed from the database every day. There's also an option to clear the caches.
|
| 560 |
+
* Highlights didn't work properly with non-ASCII alphabets. Now there's an option to make them work.
|
| 561 |
+
* Title highlight option now affects external search term highlights as well.
|
| 562 |
+
* There were some bugs on the options page.
|
| 563 |
+
|
| 564 |
+
= 2.7.5 =
|
| 565 |
+
* There was a bug that caused shortcodes to fail in 2.7.4. That's fixed now.
|
| 566 |
+
* Category search will now include subcategories as well, both when including and excluding.
|
| 567 |
+
|
| 568 |
+
= 2.7.4 =
|
| 569 |
+
* Improved the fallback to fuzzy search if no hits are found with regular search.
|
| 570 |
+
* AND searches sometimes failed to work properly, causing unnecessary fallback to OR search. Fixed.
|
| 571 |
+
* When using WPML, it's now possible to choose if the searches are limited to current language.
|
| 572 |
+
* Adding stopwords from the list of 25 common words didn't work. It works now.
|
| 573 |
+
* The instructions to add a category dropdown to search form weren't quite correct. They are now.
|
| 574 |
+
* Small fix that makes shortcodes in posts more compatible with Relevanssi.
|
| 575 |
+
|
| 576 |
+
= 2.7.3 =
|
| 577 |
+
* IMPORTANT SECURITY UPDATE: Earlier versions of Relevanssi have a cross-site scripting (XSS) vulnerability. Please install this update as soon as possible.
|
| 578 |
+
* Added instructions of doing a category dropdown in the search form in the FAQ.
|
| 579 |
+
|
| 580 |
+
= 2.7.2 =
|
| 581 |
+
* A silly typo caused the caching not to work. That's fixed now.
|
| 582 |
+
* A new filter: `relevanssi_didyoumean_query` lets you modify the query used for 'Did you mean?' searches.
|
| 583 |
+
|
| 584 |
+
= 2.7.1 =
|
| 585 |
+
* Thanks to a bug in the code, the WPML support didn't work. It's fixed now.
|
| 586 |
+
|
| 587 |
+
= 2.7 =
|
| 588 |
+
* Caching search results is possible. If you have lots of repeated queries, caching will provide extra speed and less wear on server.
|
| 589 |
+
* Multilanguage plugin WPML is now supported. If WPML is active, Relevanssi will automatically restrict search results to current language.
|
| 590 |
+
* New filter: `relevanssi_search_filter` lets you adjust search query variables. See source code for further details. Thanks to Sam Hotchkiss.
|
| 591 |
+
* Got a report of synonyms not working; hopefully fixed it now.
|
| 592 |
+
* It is now possible to set the minimum word length to index. Default is now 3 instead of 2.
|
| 593 |
+
* You can now add several stopwords at one go and remove all stopwords.
|
| 594 |
+
* Author search didn't work properly. It works now.
|
| 595 |
+
* Search result highlighting functions properly now, there might've been some problems with it.
|
| 596 |
+
|
| 597 |
+
= 2.6 =
|
| 598 |
+
* New setting allows user to define how `exclude_from_search` is handled. It's now possible to exclude a custom post type from general searches and search for it specifically by defining post_type.
|
| 599 |
+
* New filter: `relevanssi_hits_filter` lets you process hits found by Relevanssi. See FAQ.
|
| 600 |
+
|
| 601 |
+
= 2.5.6 =
|
| 602 |
+
* Attachments are no longer automatically indexed; there's an option for it now.
|
| 603 |
+
* You can now exclude custom post types from index.
|
| 604 |
+
* When AND search fails, it falls back to OR search. It's now possible to disable this fallback.
|
| 605 |
+
|
| 606 |
+
= 2.5.5 =
|
| 607 |
+
* The stopword management created empty stopwords. It won't anymore.
|
| 608 |
+
* Faulty HTML code in the admin page has been fixed.
|
| 609 |
+
* Indexing shortcodes that need the global $post context is now possible.
|
| 610 |
+
* Relevanssi is now aware of attachments and manages post_status of "inherit".
|
| 611 |
+
* These fixes were provided by Warren Tape, thanks!
|
| 612 |
+
|
| 613 |
+
= 2.5.4 =
|
| 614 |
+
* Small bugfix relating to post types.
|
| 615 |
+
* Added stopword management tools: way to remove and add stopwords.
|
| 616 |
+
* Custom excerpts can now be created from post excerpts as well, if those are indexed.
|
| 617 |
+
* Added answers to some frequently asked questions to the documentation.
|
| 618 |
+
|
| 619 |
+
= 2.5.3 =
|
| 620 |
+
* Very small bugfix fixing the error on line 1192.
|
| 621 |
+
|
| 622 |
+
= 2.5.2 =
|
| 623 |
+
* Fixed a bug about `mysql_real_escape_string()` expecting a string.
|
| 624 |
+
* Added documentation about compatibility issues.
|
| 625 |
+
|
| 626 |
+
= 2.5.1 =
|
| 627 |
+
* Option to highlight search terms in comment text as well.
|
| 628 |
+
* Fixed a small problem in highlighting search terms.
|
| 629 |
+
|
| 630 |
+
= 2.5 =
|
| 631 |
+
* Better support for other search plugins like [Dave's WordPress Live Search](http://wordpress.org/extend/plugins/daves-wordpress-live-search/).
|
| 632 |
+
* New User searches screen that shows more data about user searches.
|
| 633 |
+
* Search logs can now be emptied.
|
| 634 |
+
* Custom fields weren't indexed on updated posts. That is now fixed.
|
| 635 |
+
* Once again improved the highlighting: now the highlighting will look for word boundaries and won't highlight terms inside words.
|
| 636 |
+
* Relevanssi query engine can now be accessed directly, making all sorts of advanced hacking easier. See FAQ.
|
| 637 |
+
|
| 638 |
+
= 2.4.1 =
|
| 639 |
+
* Fixed a problem where search term highlighting was changing terms to lowercase.
|
| 640 |
+
* Fixed a problem with highlighting breaking stuff in shortcodes.
|
| 641 |
+
* Made some changes to the admin interface - there's more to come here, as the admin page is a bit of a mess right now.
|
| 642 |
+
|
| 643 |
+
= 2.4 =
|
| 644 |
+
* Highlighting post content won't highlight inside HTML tags anymore.
|
| 645 |
+
* Soft hyphens inside words are now removed in indexing. They still confuse the highlighting.
|
| 646 |
+
* Matching engine is now able to match category titles that contain apostrophes.
|
| 647 |
+
|
| 648 |
+
= 2.3.3.1 =
|
| 649 |
+
* Suppressed the error messages on the correct mb_strpos() function call. If you still get mb_strpos() errors, update.
|
| 650 |
+
* Added a FAQ note on getting the number of search results found.
|
| 651 |
+
|
| 652 |
+
= 2.3.3 =
|
| 653 |
+
* Suppressed notices on one mb_strpos() call.
|
| 654 |
+
* Added a search variable "by_date" to filter search results, see FAQ for details.
|
| 655 |
+
|
| 656 |
+
= 2.3.2 =
|
| 657 |
+
* Fixed a serious bug related to taxonomy term searches that could cause strange search results. Thanks to Charles St-Pierre for finding and killing the bug.
|
| 658 |
+
* Spanish stopwords are now included (thanks to Miguel Mariano).
|
| 659 |
+
|
| 660 |
+
= 2.3.1 =
|
| 661 |
+
* I fixed the highlighting logic a bit, the highlighting didn't work properly before.
|
| 662 |
+
|
| 663 |
+
= 2.3 =
|
| 664 |
+
* New highlighting option: HTML5 mark tag. Thanks to Jeff Byrnes.
|
| 665 |
+
* Relevanssi can now highlight search term hits in the posts user views from search. Highlighting for search term hits from external searches will be added later.
|
| 666 |
+
* It is now possible to add custom filtering to search results, see FAQ for details. Thanks to Charles St-Pierre.
|
| 667 |
+
* Removed search result highlighting from admin search, where it wasn't very useful.
|
| 668 |
+
|
| 669 |
+
= 2.2 =
|
| 670 |
+
* Relevanssi used to index navigation menu items. It won't, anymore.
|
| 671 |
+
* Translation and stopwords in Brazilian Portuguese added, thanks to Pedro Padron.
|
| 672 |
+
|
| 673 |
+
= 2.1.9 =
|
| 674 |
+
* No changes, I'm just trying to resurrect the broken Relevanssi plugin page.
|
| 675 |
+
|
| 676 |
+
= 2.1.8 =
|
| 677 |
+
* Including the popular microtime_float function caused conflicts with several other plugins (whose authors are just as sloppy as I am!). Fixed that.
|
| 678 |
+
|
| 679 |
+
= 2.1.7 =
|
| 680 |
+
* The index categories option wasn't saved properly. Now it is.
|
| 681 |
+
* Fixed the %terms% breakdown option to show correct counts and added %total% to show total hit count.
|
| 682 |
+
* Phrases are now matched also in post titles and category titles (before they were only matched against post content).
|
| 683 |
+
* Post excerpts can now be indexed and searched. I would appreciate feedback from people who use this feature: do you use the excerpts in search results? If you use custom snippets created by Relevanssi, what you want them to display?
|
| 684 |
+
* Set the constant TIMER to true to enable timing of the search process for debugging reasons.
|
| 685 |
+
|
| 686 |
+
= 2.1.6 =
|
| 687 |
+
* Title highlighting caused an error. That is now fixed. I also streamlined the highlighting code a bit.
|
| 688 |
+
|
| 689 |
+
= 2.1.5 =
|
| 690 |
+
* You can now enter synonyms, expanding queries with synonyms when doing an OR search. This is useful to expand acronyms and abbreviations, for example.
|
| 691 |
+
* When doing a phrase search, highlighting will only highlight phrase hits.
|
| 692 |
+
* New breakdown variable %terms% will list hits by term.
|
| 693 |
+
* Some users reported error messages about unexpected T_OBJECT_OPERATOR. Those shouldn't happen, please let me know if they still do.
|
| 694 |
+
* Highlighting will now highlight only complete words.
|
| 695 |
+
|
| 696 |
+
= 2.1.4 =
|
| 697 |
+
* Fixed a small bug that could cause all queries by anonymous users to go unlogged.
|
| 698 |
+
|
| 699 |
+
= 2.1.3 =
|
| 700 |
+
* OR operator makes a comeback! The default operator is now an option, and if you choose AND and search gets no results, an OR search is also run.
|
| 701 |
+
* You can now give a list of user ids - any searches by those users will not be logged. List your admin user id, so your test searches won't clutter the log.
|
| 702 |
+
|
| 703 |
+
= 2.1.2 =
|
| 704 |
+
* Removing punctuation didn't work properly, making phrase search impossible. I'd thought I'd fix it, but for some reason I made a mistake and the fix didn't appear in the released versions.
|
| 705 |
+
* Search has now an implicit AND operator, which means that every search term must appear in all result documents. Please let me know if you'd prefer an implicit OR operator, like Relevanssi had before.
|
| 706 |
+
* Relevanssi options page now shows the amount of indexed documents, making troubleshooting indexing easier.
|
| 707 |
+
|
| 708 |
+
= 2.1.1 =
|
| 709 |
+
* "Did you mean" suggestions now work in blogs that are not in root directory.
|
| 710 |
+
* Early 2.1 downloads had faulty encodings. Update to make sure you've got a good file.
|
| 711 |
+
|
| 712 |
+
= 2.1 =
|
| 713 |
+
* An experimental "Did you mean" suggestion feature. Feedback is most welcome.
|
| 714 |
+
* Added a short code to facilitate adding links to search results.
|
| 715 |
+
* Fixed a small bug that in some cases caused MySQL errors.
|
| 716 |
+
|
| 717 |
+
= 2.0.3 =
|
| 718 |
+
* Fixed problems relating to the orderby parameter.
|
| 719 |
+
|
| 720 |
+
= 2.0.2 =
|
| 721 |
+
* Small bug fix: with private posts, sometimes correct amount of posts weren't displayed.
|
| 722 |
+
|
| 723 |
+
= 2.0.1 =
|
| 724 |
+
* Exclude posts/pages option wasn't saved on the options page. It works now.
|
| 725 |
+
* 2.0 included an unnecessary function that broke Relevanssi in WP 2.8.5. Fixed that.
|
| 726 |
+
|
| 727 |
+
= 2.0 =
|
| 728 |
+
* Post authors can now be indexed and searched. Author are indexed by their display name.
|
| 729 |
+
* In search results, $post->relevance_score variable will now contain the score of the search result.
|
| 730 |
+
* Comment authors are now included in the index, if comments are indexed.
|
| 731 |
+
* Search results can be sorted by any $post field and in any order, in addition of sorting them by relevancy.
|
| 732 |
+
* Private posts are indexed and displayed to the users capable of seeing them. This uses Role-Scoper plugin, if it's available, otherwise it goes by WordPress capabilities.
|
| 733 |
+
* Searches can be restricted with a taxonomy term (see FAQ for details).
|
| 734 |
+
|
| 735 |
+
= 1.9 =
|
| 736 |
+
* Excerpts are now better and will contain more search terms and not just the first hit.
|
| 737 |
+
* Fixed an error relating to shortcodes in excerpts.
|
| 738 |
+
* If comments are indexed, custom excerpts will show text from comments as well as post content.
|
| 739 |
+
* Custom post type posts are now indexed as they are edited. That didn't work before.
|
| 740 |
+
* Cleaned out more error notices.
|
| 741 |
+
|
| 742 |
+
= 1.8.1 =
|
| 743 |
+
* Sometimes empty ghost entries would appear in search results. No more.
|
| 744 |
+
* Added support for the WordPress' post_type argument to restrict search results to single post type.
|
| 745 |
+
* Relevanssi will now check for the presence of multibyte string functions and warn if they're missing.
|
| 746 |
+
* The category indexing option checkbox didn't work. It's now fixed.
|
| 747 |
+
* Small fix in the way punctuation is removed.
|
| 748 |
+
* Added a new indexing option to index all public post types.
|
| 749 |
+
|
| 750 |
+
= 1.8 =
|
| 751 |
+
* Fixed lots of error notices that popped up when E_NOTICE was on. Sorry about those.
|
| 752 |
+
* Custom post types can now be indexed if wanted. Default behaviour is to index all post types (posts, pages and custom types).
|
| 753 |
+
* Custom taxonomies can also be indexed in addition to standard post tags. Default behaviour is to index nothing. If somebody knows a way to list all custom taxonomies, that information would be appreciated.
|
| 754 |
+
|
| 755 |
+
= 1.7.3 =
|
| 756 |
+
* Small bug fix: code that created database indexes was broken. Say "ALTER TABLE `wp_relevanssi` ADD INDEX (doc)" and "ALTER TABLE `wp_relevanssi` ADD INDEX (term)" to your MySQL db to fix this for an existing installation.
|
| 757 |
+
|
| 758 |
+
= 1.7.2 =
|
| 759 |
+
* Small bug fix: public posts that are changed to private are now removed from index (password protected posts remain in index).
|
| 760 |
+
* An Italian translation is now included (thanks to Alessandro Fiorotto).
|
| 761 |
+
|
| 762 |
+
= 1.7.1 =
|
| 763 |
+
* Small fix: the hidden variable cat now accepts negative category and tag ids. Negative categories and tags are excluded in search. Mixing inclusion and exclusion is possible.
|
| 764 |
+
|
| 765 |
+
= 1.7 =
|
| 766 |
+
* Major bug fix: Relevanssi doesn't kill other post loops on the search result page anymore. Please let me know if Relevanssi feels too slow after the update.
|
| 767 |
+
* Post categories can now be indexed.
|
| 768 |
+
|
| 769 |
+
= 1.6 =
|
| 770 |
+
* Relevanssi is now able to expand shortcodes before indexing to include shortcode content to the index.
|
| 771 |
+
* Fixed a bug related to indexing, where tag stripping didn't work quite as expected.
|
| 772 |
+
|
| 773 |
+
= 1.5.3 =
|
| 774 |
+
* Added a way to uninstall the plugin.
|
| 775 |
+
* A French translation is now included (thanks to Jean-Michel Meyer).
|
| 776 |
+
|
| 777 |
+
= 1.5.2 =
|
| 778 |
+
* Fixed a small typo in the code, tag and comment hit count didn't work in the breakdown. If you don't use the breakdown feature, updating is not necessary.
|
| 779 |
+
|
| 780 |
+
= 1.5.1 =
|
| 781 |
+
* User interface update, small changes to make the plugin easier to use.
|
| 782 |
+
* Fixed a small bug that sometimes causes "Empty haystack" warnings.
|
| 783 |
+
|
| 784 |
+
= 1.5 =
|
| 785 |
+
* Comments can now be indexed and searched (thanks to Cristian Damm).
|
| 786 |
+
* Tags can also be indexed (thanks to Cristian Damm).
|
| 787 |
+
* Search term hits in the titles can be highlighted in search results (thanks to Cristian Damm).
|
| 788 |
+
* When using custom excerpts, it's possible to add extra information on where the hits were made.
|
| 789 |
+
* Fuzzy matching is now user-adjustable.
|
| 790 |
+
* UTF-8 support is now better (thanks to Marcus Dalgren).
|
| 791 |
+
|
| 792 |
+
= 1.4.4 =
|
| 793 |
+
* Added an option to exclude posts or pages from search results. This feature was requested and provided by Cristian Damm.
|
| 794 |
+
|
| 795 |
+
= 1.4.3 =
|
| 796 |
+
* Indexing of custom fields is now possible. Just add a list of custom field names you want to include in the index on the settings page and re-index.
|
| 797 |
+
|
| 798 |
+
= 1.4.2 =
|
| 799 |
+
* Users can search for specific phrases by wrapping the phase with "quotes".
|
| 800 |
+
* Fixed a bug that caused broken HTML in some cases of highlighted search results (search term matches in highlighting HTML tags were being highlighted).
|
| 801 |
+
* Improved punctuation removal. This change requires reindexing the whole database.
|
| 802 |
+
|
| 803 |
+
= 1.4.1 =
|
| 804 |
+
* Fixed a bug that caused empty search snippets when using word-based snippets.
|
| 805 |
+
* Improved support for WP 2.5.
|
| 806 |
+
* Added an option to exclude categories and tags from search results.
|
| 807 |
+
* Added an option to index only posts or pages.
|
| 808 |
+
* Added French stopwords.
|
| 809 |
+
|
| 810 |
+
= 1.4 =
|
| 811 |
+
* Added an option to restrict searches to certain categories or tags, either by plugin option or hidden input field in the search form.
|
| 812 |
+
* The contents of `<script>` and other such tags are now removed from excerpts.
|
| 813 |
+
* When indexing, HTML tags and `[shortcodes]` are removed.
|
| 814 |
+
* Digits are no longer removed from terms. Re-index database to get them indexed.
|
| 815 |
+
* Wrapped the output of `relevanssi_the_excerpt()` in <p> tags.
|
| 816 |
+
* Stopwords are no longer removed from search queries.
|
| 817 |
+
* Search result snippet length can now be determined in characters or whole words.
|
| 818 |
+
|
| 819 |
+
= 1.3.3 =
|
| 820 |
+
* Small bug fixes, removed the error message caused by a query that is all stop words.
|
| 821 |
+
* Content and excerpt filters are now applied to excerpts created by Relevanssi.
|
| 822 |
+
* Default highlight CSS class has a unique name, `search-results` was already used by WordPress.
|
| 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.
|
| 830 |
+
|
| 831 |
+
= 1.3 =
|
| 832 |
+
* New query logging feature. Any feedback on query log display features would be welcome: what information you want to see?
|
| 833 |
+
* Added a CSS class option for search term highlighting.
|
| 834 |
+
* Fixed a bug in the search result excerpt generation code that caused endless loops with certain search terms.
|
| 835 |
+
|
| 836 |
+
= 1.2 =
|
| 837 |
+
* Added new features to display custom search result snippets and highlight the search terms in the results.
|
| 838 |
+
|
| 839 |
+
= 1.1.3 =
|
| 840 |
+
* Fixed a small bug, made internationalization possible (translations are welcome!).
|
| 841 |
+
|
| 842 |
+
= 1.1.2 =
|
| 843 |
+
* English stopword file had a problem, which is now fixed.
|
| 844 |
+
|
| 845 |
+
= 1.1.1 =
|
| 846 |
+
* Fixed a stupid bug introduced in the previous update. Remember always to test your code before sending files to repository!
|
| 847 |
+
|
| 848 |
+
= 1.1 =
|
| 849 |
+
* Fixes the problem with pages in search results.
|
| 850 |
+
|
| 851 |
+
= 1.0 =
|
| 852 |
+
* First published version.
|
relevanssi-fr_FR.mo
ADDED
|
Binary file
|
relevanssi-fr_FR.po
ADDED
|
@@ -0,0 +1,1234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
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"
|
| 10 |
+
"MIME-Version: 1.0\n"
|
| 11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 13 |
+
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
| 14 |
+
"X-Poedit-SourceCharset: utf-8\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.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 |
+
|
| 31 |
+
# @ default
|
| 32 |
+
#: lib/excerpts-highlights.php:11
|
| 33 |
+
msgid "There is no excerpt because this is a protected post."
|
| 34 |
+
msgstr "Il n'y a aucun extrait car ce billet est protégé."
|
| 35 |
+
|
| 36 |
+
# @ relevanssi
|
| 37 |
+
#: lib/indexing.php:83
|
| 38 |
+
msgid "Indexing complete!"
|
| 39 |
+
msgstr "Indexation complète !"
|
| 40 |
+
|
| 41 |
+
# @ default
|
| 42 |
+
#: lib/init.php:41
|
| 43 |
+
#, php-format
|
| 44 |
+
msgid ""
|
| 45 |
+
"Relevanssi needs attention: Remember to build the index (you can do it at <a "
|
| 46 |
+
"href=\"%1$s\">the\n"
|
| 47 |
+
"\t\t\t settings page</a>), otherwise searching won't work."
|
| 48 |
+
msgstr ""
|
| 49 |
+
"Relevassi nécessite de l'attention: n'oubliez pas de construire l'index (you "
|
| 50 |
+
"pouvez le faire sur <a href=\"%1$s\">la\n"
|
| 51 |
+
"\t\t\t page de réglages</a>), sinon la recherche ne fonctionnera pas."
|
| 52 |
+
|
| 53 |
+
# @ relevanssi
|
| 54 |
+
#: lib/init.php:85 lib/init.php:86
|
| 55 |
+
msgid "User searches"
|
| 56 |
+
msgstr "Recherches par les utilisateurs"
|
| 57 |
+
|
| 58 |
+
# @ relevanssi
|
| 59 |
+
#: lib/interface.php:6
|
| 60 |
+
msgid "Relevanssi Premium Search Options"
|
| 61 |
+
msgstr "Options de recherche de Relevanssi Premium"
|
| 62 |
+
|
| 63 |
+
# @ relevanssi
|
| 64 |
+
#: lib/interface.php:9
|
| 65 |
+
msgid "Relevanssi Search Options"
|
| 66 |
+
msgstr "Options de recherche de Relevanssi"
|
| 67 |
+
|
| 68 |
+
# @ relevanssi
|
| 69 |
+
#: lib/interface.php:86
|
| 70 |
+
msgid "User Searches"
|
| 71 |
+
msgstr "Recherches par les utilisateurs"
|
| 72 |
+
|
| 73 |
+
# @ relevanssi
|
| 74 |
+
#: lib/interface.php:88
|
| 75 |
+
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 "
|
| 83 |
+
"stopwords!</p></div>"
|
| 84 |
+
msgstr ""
|
| 85 |
+
"<div id='message' class='updated fade'><p>Ajout réussi de %d/%d termes aux "
|
| 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></"
|
| 93 |
+
"div>"
|
| 94 |
+
msgstr ""
|
| 95 |
+
"<div id='message' class='updated fade'><p>Terme '%s' ajouté aux stopwords!</"
|
| 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 "
|
| 103 |
+
"stopwords!</p></div>"
|
| 104 |
+
msgstr ""
|
| 105 |
+
"<div id='message' class='updated fade'><p>Impossible d'ajouter '%s' aux "
|
| 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>"
|
| 113 |
+
msgstr ""
|
| 114 |
+
"<div id='message' class='updated fade'><p>Stopwords retirés ! N'oubliez pas "
|
| 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! "
|
| 122 |
+
"Re-index to get it back to index.</p></div>"
|
| 123 |
+
msgstr ""
|
| 124 |
+
"<div id='message' class='updated fade'><p>Terme '%s' retiré des stopwords! "
|
| 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 "
|
| 132 |
+
"stopwords!</p></div>"
|
| 133 |
+
msgstr ""
|
| 134 |
+
"<div id='message' class='updated fade'><p>Impossible de retirer '%s' des "
|
| 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 "
|
| 147 |
+
"easy way to create a completely new stopword list, if one isn't available in "
|
| 148 |
+
"your language. Click the icon after the word to add the word to the stopword "
|
| 149 |
+
"list. The word will also be removed from the index, so rebuilding the index "
|
| 150 |
+
"is not necessary."
|
| 151 |
+
msgstr ""
|
| 152 |
+
"Ces mots font d'excellents stopwords. Un mot qui apparait dans la plupart "
|
| 153 |
+
"des billets de la base de donnée ne sert pas à grand chose pour une "
|
| 154 |
+
"recherche. C'est aussi une manière simple de créer une nouvelle liste de "
|
| 155 |
+
"stopwords si celle-ci n'est pas disponible dans votre langue. Cliquez "
|
| 156 |
+
"l'icone après le mot pour l'ajouter dans la liste de stopwords. Le mot sera "
|
| 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"
|
| 181 |
+
"\t\tqueries were made and how many results were found for those queries."
|
| 182 |
+
msgstr ""
|
| 183 |
+
"Vous pouvez voir ici les 20 requêtes les plus courantes, combien de fois "
|
| 184 |
+
"ces \n"
|
| 185 |
+
"\\\\\t\\\\\trequêtes ont été faites et combien de résultats ont été trouvés "
|
| 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>."
|
| 299 |
+
msgstr ""
|
| 300 |
+
"ATTENTION: vous n'avez choisi aucun type de billet à indexer. Rien ne sera "
|
| 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 "
|
| 308 |
+
"go, use 'Continue indexing' to finish the job. You can change the number of "
|
| 309 |
+
"documents to add until you find the largest amount you can add with one go. "
|
| 310 |
+
"See 'State of the Index' below to find out how many documents actually go "
|
| 311 |
+
"into the index."
|
| 312 |
+
msgstr ""
|
| 313 |
+
"Utiliser 'Construire l'index' pour construire l'index avec les <a "
|
| 314 |
+
"href='#indexing'>options actuelles</a> d'indexation. Si vous ne pouvez pas "
|
| 315 |
+
"terminer l'indexation en une passe, utilisez 'Continuer l'indexation' pour "
|
| 316 |
+
"finir le travail. Vous pouvez modifier le nombre de documents à ajouter "
|
| 317 |
+
"jusqu'à ce que vous trouviez le maximum que vous pouvez ajouter en une "
|
| 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"
|
| 325 |
+
"\tthe database structure haven't gone through in the upgrade. In that case "
|
| 326 |
+
"all you need to do is to deactivate the\n"
|
| 327 |
+
"\tplugin and then activate it again."
|
| 328 |
+
msgstr ""
|
| 329 |
+
"Si Relevanssi n'indexe plus rien et que vous avez upgradé à partir d'une "
|
| 330 |
+
"version 2.x, c'est probablement parce que les changements dans \n"
|
| 331 |
+
"\tla structure de table de données n'ont pas été pris en compte lors de la "
|
| 332 |
+
"mise à jour. Dans ce cas là, vous n'avez qu'à désactiver le \n"
|
| 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."
|
| 387 |
+
msgstr ""
|
| 388 |
+
"Si vous choisissez ET et la recherche ne trouve rien, une recherche OU sera "
|
| 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."
|
| 401 |
+
msgstr ""
|
| 402 |
+
"Si vous ne désirez pas que Relevanssi ne se rabatte pas sur une recherche OU "
|
| 403 |
+
"quand la recherche ET ne donne aucun résultat, cochez cette option. Dans la "
|
| 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."
|
| 425 |
+
msgstr ""
|
| 426 |
+
"Si vous désirez des résultats chronologiques, veuillez consulter le nouveau "
|
| 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."
|
| 454 |
+
msgstr ""
|
| 455 |
+
"La recherche pure prend en compte juste le terme. La recherche approximative "
|
| 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 "
|
| 467 |
+
"relevant documents to go unfound. However, Relevanssi tries to prioritize "
|
| 468 |
+
"the most relevant documents. <strong>This does not work well when sorting "
|
| 469 |
+
"results by date.</strong> The throttle can end up cutting off recent posts "
|
| 470 |
+
"to favour more relevant posts."
|
| 471 |
+
msgstr ""
|
| 472 |
+
"Si cette option est cochée, Relevanssi limitera les résultats de recherche à "
|
| 473 |
+
"500 résultats par terme. Ceci améliorera les performances mais peut faire en "
|
| 474 |
+
"forte que certains documents pertinents ne soient pas trouvés. Quoiqu'il en "
|
| 475 |
+
"soit, Relevanssi essaie de classer par priorité les documents les plus "
|
| 476 |
+
"pertinents. <strong>Ceci ne fonctionne pas bien en classant les résultats "
|
| 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 "
|
| 488 |
+
"bring a boost in search speed."
|
| 489 |
+
msgstr ""
|
| 490 |
+
"Pour de meilleures performances, ajustez la limite à un nombre plus petit. "
|
| 491 |
+
"Ajuster la limite à 100 - et même en dessous - ne pose pas de problèmes pour "
|
| 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 "
|
| 499 |
+
"1 means more weight. Setting something to zero makes that worthless. For "
|
| 500 |
+
"example, if title weight is more than 1, words in titles are more "
|
| 501 |
+
"significant than words elsewhere. If title weight is 0, words in titles "
|
| 502 |
+
"won't make any difference to the search results."
|
| 503 |
+
msgstr ""
|
| 504 |
+
"Ces valeurs affectent le poids des documents. Ce sont tous des "
|
| 505 |
+
"multiplicateurs, ainsi 1 signifie aucune modification du poids, moins de 1 "
|
| 506 |
+
"signifie moins de poids et plus de 1 signifie plus de poids. Un réglage "
|
| 507 |
+
"proche de zéro correspond à une partie négligeable. Par exemple, si le poids "
|
| 508 |
+
"du titre vaut plus que 1, les mots dans le titre sont plus significatifs que "
|
| 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 "
|
| 550 |
+
"language."
|
| 551 |
+
msgstr ""
|
| 552 |
+
"Si cette option est cochée, Relevanssi retournera uniquement les résultats "
|
| 553 |
+
"dans le langage actuellement activé. Sinon, les résultats inclueront les "
|
| 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."
|
| 566 |
+
msgstr ""
|
| 567 |
+
"Si coché, Relevanssi conservera dans les stats les requêtes d'utilisateur. "
|
| 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."
|
| 581 |
+
msgstr ""
|
| 582 |
+
"Liste d'ID d'utilisateurs ou de noms de login séparés par une virgule qui ne "
|
| 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."
|
| 590 |
+
msgstr ""
|
| 591 |
+
"Si vous activez les logs, vous pouvez voir ce que les utilisateurs "
|
| 592 |
+
"recherchent. Vous pouvez exclure vos propres recherches des logs avec le "
|
| 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 "
|
| 600 |
+
"searches from getting in the logs with the omit feature."
|
| 601 |
+
msgstr ""
|
| 602 |
+
"Si vous activez les logs, vous pouvez voir ce que les utilisateurs "
|
| 603 |
+
"recherchent. Les logs sont aussi utilisés pour la fonction 'Vous vouliez "
|
| 604 |
+
"dire ?'. Vous pouvez empêcher vos propres recherches d'être enregistrées "
|
| 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><input type='hidden' "
|
| 617 |
+
"name='cats' value='list of cats and tags' /></code> in your search form. "
|
| 618 |
+
"The input field will \toverrun this setting."
|
| 619 |
+
msgstr ""
|
| 620 |
+
"Entrez une liste d'ID de catégories et de mots-clefs pour restreindre la "
|
| 621 |
+
"recherche à ces catégories et mots-clef. Vous pouvez aussi utiliser "
|
| 622 |
+
"<code><input type='hidden' name='cats' value='list of cats and tags' />"
|
| 623 |
+
"</code> dans votre formulaire de recherche. Le champ inséré sera prioritaire "
|
| 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 "
|
| 636 |
+
"using negative values."
|
| 637 |
+
msgstr ""
|
| 638 |
+
"Entrez une liste d'ID de catégories et mots-clef à exclure des résultats de "
|
| 639 |
+
"recherche. Vous pouvez exclure des catégories avec le champ d'insertion "
|
| 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 "
|
| 652 |
+
"(WordPress doesn't pass custom parameters there). You can also use a "
|
| 653 |
+
"checkbox on post/page edit pages to remove posts from index."
|
| 654 |
+
msgstr ""
|
| 655 |
+
"Entrez une liste d'ID de billets et de pages à exclure des résultats de "
|
| 656 |
+
"recherche. Cela ne fonctionne qu'ici, vous ne pouvez pas utiliser l'option "
|
| 657 |
+
"de champ d'insertion (Wordpress ne gèrera pas les paramètres personnalisés "
|
| 658 |
+
"dans ce cas). Vous pouvez aussi utiliser une case à cocher dans les pages "
|
| 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 "
|
| 666 |
+
"(WordPress doesn't pass custom parameters there)."
|
| 667 |
+
msgstr ""
|
| 668 |
+
"Entrez une liste d'ID de billets et de pages à exclure des résultats de "
|
| 669 |
+
"recherche. Cela ne fonctionne qu'ici, vous ne pouvez pas utiliser l'option "
|
| 670 |
+
"de champ d'insertion (Wordpress ne gèrera pas les paramètres personnalisés "
|
| 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 "
|
| 683 |
+
"anything that is indexed."
|
| 684 |
+
msgstr ""
|
| 685 |
+
"Si coché, Relevanssi n'affichera aucun billet de types de billets "
|
| 686 |
+
"personnalisés pour lesquels 'exclude_from_search' a été indiqué. Si non "
|
| 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 "
|
| 704 |
+
"the_excerpt() to display post excerpts."
|
| 705 |
+
msgstr ""
|
| 706 |
+
"Si coché, Relevanssi créera des extraits qui contiennent les résultats de la "
|
| 707 |
+
"recherche de terme. Pour que cela fonctionne, vérifiez bien que le fichier "
|
| 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: '<p><a><strong>'."
|
| 739 |
+
msgstr ""
|
| 740 |
+
"Listez tous les mots-clef que vous voulez autoriser dans les extraits sans "
|
| 741 |
+
"aucun espace. Par exemple: '<p><a><strong>'."
|
| 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."
|
| 753 |
+
msgstr ""
|
| 754 |
+
"Cochez ceci pour afficher plus d'informations sur la répartition des "
|
| 755 |
+
"résultats de recherche. Nécessite l'activation des snippets personnalisés "
|
| 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 "
|
| 768 |
+
"document weight and %terms% to show how many hits each search term got. No "
|
| 769 |
+
"double quotes (\") allowed!"
|
| 770 |
+
msgstr ""
|
| 771 |
+
"Utilisez %body%, %title%, %tags% et %comments% pour afficher le nombre de "
|
| 772 |
+
"résultats trouvés (en différents endroits du billet), %total% pour le nombre "
|
| 773 |
+
"total de résultats affichés, %score% pour afficher le poids d'importance du "
|
| 774 |
+
"document et %terms% pour montrer combien de résultats affichés ont obtenu "
|
| 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."
|
| 843 |
+
msgstr ""
|
| 844 |
+
"Surligne les mots choisis quand l'utilisateur ouvre le billet à partir des "
|
| 845 |
+
"résultats de recherche. La fonction est basée sur HTTP referrer ainsi, en "
|
| 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 ""
|
| 858 |
+
"Surligner les résultats affichés dans les commentaires quand l'utilisateur "
|
| 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."
|
| 871 |
+
msgstr ""
|
| 872 |
+
"Si vous utilisez des caractères non-ASCII (comme l'alphabet Cyrillique) et "
|
| 873 |
+
"que le surlignage ne fonctionne pas, décochez cette option pour faire "
|
| 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 <span>"
|
| 905 |
+
msgstr ""
|
| 906 |
+
"Vous pouvez utiliser tout habillage CSS ici. Le style sera inséré avec un "
|
| 907 |
+
"<span>"
|
| 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 <span> with the "
|
| 918 |
+
"class"
|
| 919 |
+
msgstr ""
|
| 920 |
+
"Nommez une classe ici. Les résultats seront encadrés dans un <span> "
|
| 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 "
|
| 979 |
+
"include dynamic content, Relevanssi will not keep the index updated, the "
|
| 980 |
+
"index will reflect the status of the shortcode content at the moment of "
|
| 981 |
+
"indexing."
|
| 982 |
+
msgstr ""
|
| 983 |
+
"Si coché, Relevanssi traduira tous les shortcodes des contenu de billets "
|
| 984 |
+
"avec l'indexation. Dans le cas contraire, les shortcodes seront ignorés. Si "
|
| 985 |
+
"vous utilisez des shortcodes pour générer du contenu dynamique, Relevanssi "
|
| 986 |
+
"ne mettra pas l'index à jour. Ce dernier présentera le statut du contenu du "
|
| 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!"
|
| 999 |
+
msgstr ""
|
| 1000 |
+
"Si coché, Relevanssi indexera aussi et cherchera dans les mots-clef de vos "
|
| 1001 |
+
"billets. N'oubliez pas de reconstruire l'index si vous modifiez cette "
|
| 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 "
|
| 1014 |
+
"to rebuild the index if you change this option!"
|
| 1015 |
+
msgstr ""
|
| 1016 |
+
"Si coché, Relevanssi indexera aussi les catégories de vos billets. Les "
|
| 1017 |
+
"titres de catégories passeront à travers le filtre 'single_cat_title. "
|
| 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 "
|
| 1030 |
+
"change this option!"
|
| 1031 |
+
msgstr ""
|
| 1032 |
+
"Si coché, Relevanssi indexera et cherchera aussi dans les auteurs de vos "
|
| 1033 |
+
"billets. Le nom affiché des auteurs sera indexé. N'oubliez pas de "
|
| 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!"
|
| 1046 |
+
msgstr ""
|
| 1047 |
+
"Si coché, Relevanssi indexera et cherchera dans les extraits de vos billets. "
|
| 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- & "
|
| 1074 |
+
"pingbacks and custom comment types), NONE (no comments) or NORMAL (manually "
|
| 1075 |
+
"posted comments on your blog).<br />Remember to rebuild the index if you "
|
| 1076 |
+
"change this option!"
|
| 1077 |
+
msgstr ""
|
| 1078 |
+
"Relevanssi indexera et cherchera dans TOUT (tous les commentaires incluant "
|
| 1079 |
+
"track- & pingbacks et types de commentaires personnalisés), AUCUN (aucun "
|
| 1080 |
+
"commentaire) ou NORMAL (commentaires postés manuellement sur votre blog)."
|
| 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 "
|
| 1092 |
+
"custom fields, also those starting with a '_' character."
|
| 1093 |
+
msgstr ""
|
| 1094 |
+
"Une liste séparée par des virgules de champs personnalisés à inclure dans "
|
| 1095 |
+
"l'index. Utilisez 'visible' pour indexer tous les champs personnalisés "
|
| 1096 |
+
"visibles et 'tout' pour indexer tous les champs personnalisés même ceux "
|
| 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 ""
|
| 1109 |
+
"Une liste de noms de taxonomies personnalisées à inclure dans l'index, "
|
| 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"
|
| 1122 |
+
"\tactivate cache unless you have a good reason to do so."
|
| 1123 |
+
msgstr ""
|
| 1124 |
+
"Attention: dans de nombreux cas, le cache n'est pas utile et dans certains "
|
| 1125 |
+
"cas il peut même causer du tort. Ne pas\n"
|
| 1126 |
+
"\n"
|
| 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. "
|
| 1165 |
+
"Using phrases is possible. The key-value pairs work in one direction only, "
|
| 1166 |
+
"but you can of course repeat the same pair reversed."
|
| 1167 |
+
msgstr ""
|
| 1168 |
+
"Ajouter les synonymes ici au format 'clef = valeur'. Lors d'une recherche "
|
| 1169 |
+
"avec l'opérateur logique OU, toute recherche de 'clef' sera étendue pour "
|
| 1170 |
+
"inclure aussi 'valeur'. Il est possible d'utiliser des phrases. Les paires "
|
| 1171 |
+
"clef-valeur ne fonctionnent que dans un sens mais, évidemment, vous pouvez "
|
| 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. "
|
| 1179 |
+
"You can enter many words at the same time, separate words with commas.</p>"
|
| 1180 |
+
msgstr ""
|
| 1181 |
+
"<p>Entrez un mot ici pour l'ajouter dans la liste des stopwords. Le mot sera "
|
| 1182 |
+
"automatiquement retiré de l'index, de cette manière il est inutile de "
|
| 1183 |
+
"réindexer. Si vous entrez plusieurs mots d'un coup, séparez les mots avec "
|
| 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, "
|
| 1201 |
+
"so you need to re-index all posts after removing stopwords to get those "
|
| 1202 |
+
"words back to index."
|
| 1203 |
+
msgstr ""
|
| 1204 |
+
"<p>Voici une liste des stopwords de la base de données. Cliquez sur un mot "
|
| 1205 |
+
"pour le retirer des stopwords. Retirer de la liste des stopwords ne les "
|
| 1206 |
+
"réinjectera pas automatiquement dans l'index aussi vous devez réindexer tous "
|
| 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."
|
| 1219 |
+
msgstr ""
|
| 1220 |
+
"<p>Voici une liste des stopwords de la base de données. Cliquez sur un mot "
|
| 1221 |
+
"pour le retirer des stopwords. Retirer de la liste des stopwords ne les "
|
| 1222 |
+
"réinjectera pas automatiquement dans l'index aussi vous devez réindexer tous "
|
| 1223 |
+
"les billet après retrait de stopwords pour les réinjecter dans l'index."
|
| 1224 |
+
|
| 1225 |
+
# @ relevanssi
|
| 1226 |
+
#: lib/uninstall.php:39
|
| 1227 |
+
msgid "Data wiped clean, you can now delete the plugin."
|
| 1228 |
+
msgstr "Données effacées, vous pouvez maintenant supprimer le plugin."
|
| 1229 |
+
|
| 1230 |
+
#~ msgid "Privacy policy"
|
| 1231 |
+
#~ msgstr "Règles de confidentialité"
|
| 1232 |
+
|
| 1233 |
+
#~ msgid "Hide these messages"
|
| 1234 |
+
#~ msgstr "Cacher ces messages"
|
relevanssi-it_IT.mo
ADDED
|
Binary file
|
relevanssi-it_IT.po
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
msgid ""
|
| 2 |
+
msgstr ""
|
| 3 |
+
"Project-Id-Version: Relevanssi\n"
|
| 4 |
+
"Report-Msgid-Bugs-To: \n"
|
| 5 |
+
"POT-Creation-Date: 2009-08-14 14:06+0200\n"
|
| 6 |
+
"PO-Revision-Date: \n"
|
| 7 |
+
"Last-Translator: Alessandro Fiorotto <alex@fiorotto.com>\n"
|
| 8 |
+
"Language-Team: Fiorotto <alex@fiorotto.com>\n"
|
| 9 |
+
"MIME-Version: 1.0\n"
|
| 10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
+
"X-Poedit-Language: Italian\n"
|
| 13 |
+
"X-Poedit-Country: ITALY\n"
|
| 14 |
+
"X-Poedit-SourceCharset: utf-8\n"
|
| 15 |
+
|
| 16 |
+
#: relevanssi.php:703
|
| 17 |
+
msgid "There is no excerpt because this is a protected post."
|
| 18 |
+
msgstr "Non c'è alcun estratto perché il post è protetto."
|
| 19 |
+
|
| 20 |
+
#: relevanssi.php:994
|
| 21 |
+
msgid "Indexing complete!"
|
| 22 |
+
msgstr "Indicizzazione completata!"
|
| 23 |
+
|
| 24 |
+
#: relevanssi.php:1183
|
| 25 |
+
msgid "Relevanssi Search Options"
|
| 26 |
+
msgstr "Opzioni per Relevanssi Search"
|
| 27 |
+
|
| 28 |
+
#: relevanssi.php:1294
|
| 29 |
+
#, php-format
|
| 30 |
+
msgid "<div id='message' class='update fade'><p>Term '%s' added to stopwords!</p></div>"
|
| 31 |
+
msgstr "<div id='message' class='update fade'><p>Termine '%s' aggiunto alle parole inutili ai fini della ricerca!</p></div>"
|
| 32 |
+
|
| 33 |
+
#: relevanssi.php:1297
|
| 34 |
+
#, php-format
|
| 35 |
+
msgid "<div id='message' class='update fade'><p>Couldn't add term '%s' to stopwords!</p></div>"
|
| 36 |
+
msgstr "<div id='message' class='update fade'><p>Non posso aggiungere il termine '%s' alle parole inutili ai fini della ricerca!</p></div>"
|
| 37 |
+
|
| 38 |
+
#: relevanssi.php:1306
|
| 39 |
+
msgid "25 most common words in the index"
|
| 40 |
+
msgstr "Le 25 parole più comuni nell'indice"
|
| 41 |
+
|
| 42 |
+
#: relevanssi.php:1308
|
| 43 |
+
msgid "These words are excellent stopword material. A word that appears in most of the posts in the database is quite pointless when searching. This is also an easy way to create a completely new stopword list, if one isn't available in your language. Click the icon after the word to add the word to the stopword list. The word will also be removed from the index, so rebuilding the index is not necessary."
|
| 44 |
+
msgstr "Queste parole possono dimostrarsi inutili ai fini della ricerca. Una parola che compare nella maggior parte dei posti nel database è piuttosto inutile ai fini di una buona ricerca. Questo è anche un modo semplice per creare un nuovo elenco di parole non significative, se non è disponibile nella tua lingua. Fare clic sull'icona dopo la parola per aggiungere la parola alla lista delle parole non significative. La parola sarà rimossa dall'indice e non sarà necessario ricostruire l'indice se si effettua una modifica."
|
| 45 |
+
|
| 46 |
+
#: relevanssi.php:1331
|
| 47 |
+
msgid "Add to stopwords"
|
| 48 |
+
msgstr "Aggiungi alle parole inutili ai fini della ricerca"
|
| 49 |
+
|
| 50 |
+
#: relevanssi.php:1344
|
| 51 |
+
msgid "25 most popular queries"
|
| 52 |
+
msgstr "25 ricerche più effettuate"
|
| 53 |
+
|
| 54 |
+
#: relevanssi.php:1356
|
| 55 |
+
msgid "Recent queries that got 0 hits"
|
| 56 |
+
msgstr "Recenti ricerche che non hanno dato risultati"
|
| 57 |
+
|
| 58 |
+
#: relevanssi.php:1491
|
| 59 |
+
msgid "Title boost:"
|
| 60 |
+
msgstr "Potenziamento dal titolo:"
|
| 61 |
+
|
| 62 |
+
#: relevanssi.php:1492
|
| 63 |
+
#, php-format
|
| 64 |
+
msgid "Default: %d. 0 means titles are ignored, 1 means no boost, more than 1 gives extra value."
|
| 65 |
+
msgstr "Predefinito %d. 0 significa che i titoli sono ignorati, 1 significa non aumentare, mentre più di 1 da un valore in più."
|
| 66 |
+
|
| 67 |
+
#: relevanssi.php:1493
|
| 68 |
+
msgid "Tag boost:"
|
| 69 |
+
msgstr "Potenziamento da TAG"
|
| 70 |
+
|
| 71 |
+
#: relevanssi.php:1494
|
| 72 |
+
#, php-format
|
| 73 |
+
msgid "Default: %d. 0 means tags are ignored, 1 means no boost, more than 1 gives extra value."
|
| 74 |
+
msgstr "Predefinito %d. 0 significa che i tag sono ignorati, 1 significa non aumentare, mentre più di 1 da un valore in più."
|
| 75 |
+
|
| 76 |
+
#: relevanssi.php:1495
|
| 77 |
+
msgid "Comment boost:"
|
| 78 |
+
msgstr "Potenziamento dai commenti:"
|
| 79 |
+
|
| 80 |
+
#: relevanssi.php:1496
|
| 81 |
+
#, php-format
|
| 82 |
+
msgid "Default: %d. 0 means comments are ignored, 1 means no boost, more than 1 gives extra value."
|
| 83 |
+
msgstr "Predefinito %d. 0 significa che i commenti sono ignorati, 1 significa non aumentare, mentre più di 1 da un valore in più."
|
| 84 |
+
|
| 85 |
+
#: relevanssi.php:1497
|
| 86 |
+
msgid "Use search for admin:"
|
| 87 |
+
msgstr "Usa ricerca per admin:"
|
| 88 |
+
|
| 89 |
+
#: relevanssi.php:1498
|
| 90 |
+
msgid "If checked, Relevanssi will be used for searches in the admin interface"
|
| 91 |
+
msgstr "Se selezionato, Relevanssi sarà usato anche per le ricerche nell'interfaccia di amministrazione"
|
| 92 |
+
|
| 93 |
+
#: relevanssi.php:1499
|
| 94 |
+
msgid "Restrict search to these categories and tags:"
|
| 95 |
+
msgstr "Circoscrivi la ricerca a queste categorie e tag:"
|
| 96 |
+
|
| 97 |
+
#: relevanssi.php:1500
|
| 98 |
+
msgid "Enter a comma-separated list of category and tag IDs to restrict search to those categories or tags. You can also use <code><input type='hidden' name='cat' value='list of cats and tags' /></code> in your search form. The input field will overrun this setting."
|
| 99 |
+
msgstr "Inserire un elenco separato da virgola, con gli id degli articoli e/o delle pagine a cui sarà circoscritto l'ambito di ricerca. Si può anche usare il codice <code><input type='hidden' name='cat' value='list of cats and tags' /></code> nel modulo di ricerca e quello che si inserirà nel modulo sovrascriverà quanto impostato qui."
|
| 100 |
+
|
| 101 |
+
#: relevanssi.php:1501
|
| 102 |
+
msgid "Exclude these categories and tags from search:"
|
| 103 |
+
msgstr "Escludi queste categorie e tag dalla ricerca:"
|
| 104 |
+
|
| 105 |
+
#: relevanssi.php:1502
|
| 106 |
+
msgid "Enter a comma-separated list of category and tag 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)."
|
| 107 |
+
msgstr "Inserire un elenco separato da virgola, con gli id delle categorie e dei tag esclusi dai risultati della ricerca. Non è possibile sovrascrivere o cambiare questa impostazione inserendo dell'apposito codice nel modulo di ricerca."
|
| 108 |
+
|
| 109 |
+
#: relevanssi.php:1505
|
| 110 |
+
msgid "Exclude these posts/pages from search:"
|
| 111 |
+
msgstr "Escludi questi articoli/pagine dalla ricerca:"
|
| 112 |
+
|
| 113 |
+
#: relevanssi.php:1506
|
| 114 |
+
msgid "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)."
|
| 115 |
+
msgstr "Inserire un elenco separato da virgola, con gli id degli articoli e/o delle pagine esclusi dai risultati della ricerca. Non è possibile sovrascrivere o cambiare questa impostazione inserendo dell'apposito codice nel modulo di ricerca."
|
| 116 |
+
|
| 117 |
+
#: relevanssi.php:1507
|
| 118 |
+
msgid "Index and search your posts' tags:"
|
| 119 |
+
msgstr "Indicizza e cerca i tag degli articoli:"
|
| 120 |
+
|
| 121 |
+
#: relevanssi.php:1508
|
| 122 |
+
msgid "If checked, Relevanssi will also index and search the tags of your posts. Remember to rebuild the index if you change this option!"
|
| 123 |
+
msgstr "Se selezionato, Relevanssi indicizzerà anche i tag degli articoli. Ricordati di ricostruire l'indice se cambi questa opzione!"
|
| 124 |
+
|
| 125 |
+
#: relevanssi.php:1509
|
| 126 |
+
msgid "Index and search these comments:"
|
| 127 |
+
msgstr "Indicizza e ricerca questi commenti:"
|
| 128 |
+
|
| 129 |
+
#: relevanssi.php:1510
|
| 130 |
+
msgid "Relevanssi will index and search ALL (all comments including track- & pingbacks and custom comment types), NONE (no comments) or NORMAL (manually posted comments on your blog).<br />Remember to rebuild the index if you change this option!"
|
| 131 |
+
msgstr "Relevanssi consente di indicizzare e di effettuare le ricerche su TUTTO (compresi tutti i commenti, track & pingbacks e i commenti personalizzati), NESSUNO (commenti esclusi) o NORMALE (solo i commenti inseriti manualmente nel tuo blog). <br /> Ricordati di ricostruire l'indice, se modifichi questa opzione!"
|
| 132 |
+
|
| 133 |
+
#: relevanssi.php:1511
|
| 134 |
+
msgid "all"
|
| 135 |
+
msgstr "tutto"
|
| 136 |
+
|
| 137 |
+
#: relevanssi.php:1512
|
| 138 |
+
msgid "normal"
|
| 139 |
+
msgstr "normale"
|
| 140 |
+
|
| 141 |
+
#: relevanssi.php:1513
|
| 142 |
+
msgid "none"
|
| 143 |
+
msgstr "nessuno"
|
| 144 |
+
|
| 145 |
+
#: relevanssi.php:1516
|
| 146 |
+
msgid "Create custom search result snippets:"
|
| 147 |
+
msgstr "Crea un frammento di ricerca personalizzato:"
|
| 148 |
+
|
| 149 |
+
#: relevanssi.php:1517
|
| 150 |
+
msgid "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."
|
| 151 |
+
msgstr "Se selezionato, Relevanssi creerà un estratto che conterrà la parola cercata. Affinché funzioni, assicurarsi che il template utilizzi la funzione the_excerpt() per visualizzare il risultato della ricerca."
|
| 152 |
+
|
| 153 |
+
#: relevanssi.php:1518
|
| 154 |
+
msgid "Length of the snippet:"
|
| 155 |
+
msgstr "Lunghezza del frammento:"
|
| 156 |
+
|
| 157 |
+
#: relevanssi.php:1519
|
| 158 |
+
msgid "This must be an integer."
|
| 159 |
+
msgstr "Deve essere un numero intero."
|
| 160 |
+
|
| 161 |
+
#: relevanssi.php:1520
|
| 162 |
+
msgid "words"
|
| 163 |
+
msgstr "parole"
|
| 164 |
+
|
| 165 |
+
#: relevanssi.php:1521
|
| 166 |
+
msgid "characters"
|
| 167 |
+
msgstr "caratteri"
|
| 168 |
+
|
| 169 |
+
#: relevanssi.php:1522
|
| 170 |
+
msgid "Keep a log of user queries:"
|
| 171 |
+
msgstr "Conserva un log delle ricerche:"
|
| 172 |
+
|
| 173 |
+
#: relevanssi.php:1523
|
| 174 |
+
msgid "If checked, Relevanssi will log user queries."
|
| 175 |
+
msgstr "Se selezionato, Relevanssi terrà traccia delle ricerche effettuate."
|
| 176 |
+
|
| 177 |
+
#: relevanssi.php:1524
|
| 178 |
+
msgid "Highlight query terms in search results:"
|
| 179 |
+
msgstr "Evidenzia i termini di ricerca nei risultati:"
|
| 180 |
+
|
| 181 |
+
#: relevanssi.php:1525
|
| 182 |
+
msgid "Highlighting isn't available unless you use custom snippets"
|
| 183 |
+
msgstr "L'evidenziazione non è disponibile se non si utilizzano degli snippet personalizzati"
|
| 184 |
+
|
| 185 |
+
#: relevanssi.php:1526
|
| 186 |
+
msgid "Highlight query terms in result titles too:"
|
| 187 |
+
msgstr "Evidenzia i termini di ricerca anche nei titoli dei risultati:"
|
| 188 |
+
|
| 189 |
+
#: relevanssi.php:1529
|
| 190 |
+
msgid "Save"
|
| 191 |
+
msgstr "Salva"
|
| 192 |
+
|
| 193 |
+
#: relevanssi.php:1530
|
| 194 |
+
msgid "Building the index and indexing options"
|
| 195 |
+
msgstr "Costruisci l'indice e salva le opzioni di indicizzazione"
|
| 196 |
+
|
| 197 |
+
#: relevanssi.php:1531
|
| 198 |
+
msgid "After installing the plugin, you need to build the index. This generally needs to be done once, you don't have to re-index unless something goes wrong. Indexing is a heavy task and might take more time than your servers allow. If the indexing cannot be finished - for example you get a blank screen or something like that after indexing - you can continue indexing from where you left by clicking 'Continue indexing'. Clicking 'Build the index' will delete the old index, so you can't use that."
|
| 199 |
+
msgstr "Dopo aver installato il plugin, è necessario costruire l'indice. Questo genere deve essere fatto una volta solo e non si deve reindicizzare fino a che qualcosa non funziona bene. L'indicizzazione è un compito pesante e potrebbe richiedere più tempo di quanto i server consentono. Se l'indicizzazione non viene completata e si ottine ad esempio una pagina bianca o qualcosa del genere, è possibile continuare l'indicizzazione dal punto in cui è stata interrotta semplicemente premendo il tasto 'Continua indicizzazione'. Cliccando invece su 'costruisci l'indice' si reinizierà da zero la creazione dell'indicie."
|
| 200 |
+
|
| 201 |
+
#: relevanssi.php:1532
|
| 202 |
+
msgid "So, if you build the index and don't get the 'Indexing complete' in the end, keep on clicking the 'Continue indexing' button until you do. On my blogs, I was able to index ~400 pages on one go, but had to continue indexing twice to index ~950 pages."
|
| 203 |
+
msgstr "Se si crea l'indice e alla fine non si ottiene il risultato di 'indicizzazione completa', cliccare nuovamente sul pulsante 'Continua indicizzazione' fino a quando non si otterrà tale risultato. Il mo blog ad esempio è stato in grado di indicizzare circa 400 pagine in una volta sola, ma ha dovuto continuare l'indicizzazione due volte per completare l'indice di circa 950 pagine."
|
| 204 |
+
|
| 205 |
+
#: relevanssi.php:1533
|
| 206 |
+
msgid "Save indexing options and build the index"
|
| 207 |
+
msgstr "Salva le opzioni di indicizzazione e costruisci l'indice"
|
| 208 |
+
|
| 209 |
+
#: relevanssi.php:1534
|
| 210 |
+
msgid "Continue indexing"
|
| 211 |
+
msgstr "Continua indicizzazione"
|
| 212 |
+
|
| 213 |
+
#: relevanssi.php:1535
|
| 214 |
+
msgid "No highlighting"
|
| 215 |
+
msgstr "No evidenziazione"
|
| 216 |
+
|
| 217 |
+
#: relevanssi.php:1536
|
| 218 |
+
msgid "Text color"
|
| 219 |
+
msgstr "Colore del testo"
|
| 220 |
+
|
| 221 |
+
#: relevanssi.php:1537
|
| 222 |
+
msgid "Background color"
|
| 223 |
+
msgstr "Colore di sfondo"
|
| 224 |
+
|
| 225 |
+
#: relevanssi.php:1538
|
| 226 |
+
msgid "CSS Style"
|
| 227 |
+
msgstr "Stile CSS"
|
| 228 |
+
|
| 229 |
+
#: relevanssi.php:1539
|
| 230 |
+
msgid "CSS Class"
|
| 231 |
+
msgstr "Classe CSS"
|
| 232 |
+
|
| 233 |
+
#: relevanssi.php:1541
|
| 234 |
+
msgid "Text color for highlights:"
|
| 235 |
+
msgstr "Colore del testo delle evidenziazioni:"
|
| 236 |
+
|
| 237 |
+
#: relevanssi.php:1542
|
| 238 |
+
msgid "Background color for highlights:"
|
| 239 |
+
msgstr "Colore di sfondo delle evidenziazioni:"
|
| 240 |
+
|
| 241 |
+
#: relevanssi.php:1543
|
| 242 |
+
msgid "CSS style for highlights:"
|
| 243 |
+
msgstr "Stile CSS per le evidenziazioni:"
|
| 244 |
+
|
| 245 |
+
#: relevanssi.php:1544
|
| 246 |
+
msgid "CSS class for highlights:"
|
| 247 |
+
msgstr "Classe CSS per le evidenziazioni:"
|
| 248 |
+
|
| 249 |
+
#: relevanssi.php:1546
|
| 250 |
+
#: relevanssi.php:1547
|
| 251 |
+
msgid "Use HTML color codes (#rgb or #rrggbb)"
|
| 252 |
+
msgstr "Usare il codice colore HTML (#rgb o #rrggbb)"
|
| 253 |
+
|
| 254 |
+
#: relevanssi.php:1548
|
| 255 |
+
msgid "You can use any CSS styling here, style will be inserted with a <span>"
|
| 256 |
+
msgstr "È possibile usare qualsiasi stile CSS, lo stile sarà inserito con <span>"
|
| 257 |
+
|
| 258 |
+
#: relevanssi.php:1549
|
| 259 |
+
msgid "Name a class here, search results will be wrapped in a <span> with the class"
|
| 260 |
+
msgstr "Nome della classe qui. I risultati di ricerca saranno compresi in <span> con la classe"
|
| 261 |
+
|
| 262 |
+
#: relevanssi.php:1551
|
| 263 |
+
msgid "What to include in the index"
|
| 264 |
+
msgstr "Cosa includere nell'indice"
|
| 265 |
+
|
| 266 |
+
#: relevanssi.php:1552
|
| 267 |
+
msgid "Everything"
|
| 268 |
+
msgstr "Ogni cosa"
|
| 269 |
+
|
| 270 |
+
#: relevanssi.php:1553
|
| 271 |
+
msgid "Just posts"
|
| 272 |
+
msgstr "Solo articoli"
|
| 273 |
+
|
| 274 |
+
#: relevanssi.php:1554
|
| 275 |
+
msgid "Just pages"
|
| 276 |
+
msgstr "Solo pagine"
|
| 277 |
+
|
| 278 |
+
#: relevanssi.php:1556
|
| 279 |
+
msgid "Custom fields to index:"
|
| 280 |
+
msgstr "Campi personalizzati da indicizzare:"
|
| 281 |
+
|
| 282 |
+
#: relevanssi.php:1557
|
| 283 |
+
msgid "A comma-separated list of custom field names to include in the index."
|
| 284 |
+
msgstr "Una lista separata da virgola dei nomi personalizzati da includere nell'indice."
|
| 285 |
+
|
| 286 |
+
#: relevanssi.php:1559
|
| 287 |
+
msgid "Show breakdown of search hits in excerpts:"
|
| 288 |
+
msgstr "Viusalizza un separatore nei risultati di ricerca:"
|
| 289 |
+
|
| 290 |
+
#: relevanssi.php:1560
|
| 291 |
+
msgid "Check this to show more information on where the search hits were made. Requires custom snippets to work."
|
| 292 |
+
msgstr "Seleziona qui per mostrare più informazioni o per definire dove sarà effettuata la ricerca. Per attivarlo richiede uno snippet personalizzato."
|
| 293 |
+
|
| 294 |
+
#: relevanssi.php:1561
|
| 295 |
+
msgid "The breakdown format:"
|
| 296 |
+
msgstr "Formato dell'interruzione:"
|
| 297 |
+
|
| 298 |
+
#: relevanssi.php:1562
|
| 299 |
+
msgid "Use %body%, %title%, %tags%, %comments% and %score% to display the number of hits and the document weight."
|
| 300 |
+
msgstr "Usa %body%, %title%, %tags%, %comments% e %score% per visualizzare il numero di ricorrenze e il peso del documento."
|
| 301 |
+
|
| 302 |
+
#: relevanssi.php:1564
|
| 303 |
+
msgid "When to use fuzzy matching?"
|
| 304 |
+
msgstr "Quando usare la ricerca per parola simile?"
|
| 305 |
+
|
| 306 |
+
#: relevanssi.php:1565
|
| 307 |
+
msgid "When straight search gets no hits"
|
| 308 |
+
msgstr "Quando la ricerca regolare non produce risultati"
|
| 309 |
+
|
| 310 |
+
#: relevanssi.php:1566
|
| 311 |
+
msgid "Always"
|
| 312 |
+
msgstr "Sempre"
|
| 313 |
+
|
| 314 |
+
#: relevanssi.php:1567
|
| 315 |
+
msgid "Don't use fuzzy search"
|
| 316 |
+
msgstr "Non usare la ricerca per similitudini"
|
| 317 |
+
|
| 318 |
+
#: relevanssi.php:1568
|
| 319 |
+
msgid "Straight search matches just the term. Fuzzy search matches everything that begins or ends with the search term."
|
| 320 |
+
msgstr "La ricerca regolare cerca semplicemente un termine. La ricerca per similitudine trova anche tutti i termini che iniziano o finiscono come il termine di ricerca."
|
| 321 |
+
|
relevanssi-pt_BR.mo
ADDED
|
Binary file
|
relevanssi-pt_BR.po
ADDED
|
@@ -0,0 +1,578 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
msgid ""
|
| 2 |
+
msgstr ""
|
| 3 |
+
"Project-Id-Version: Relevanssi\n"
|
| 4 |
+
"Report-Msgid-Bugs-To: \n"
|
| 5 |
+
"POT-Creation-Date: \n"
|
| 6 |
+
"PO-Revision-Date: \n"
|
| 7 |
+
"Last-Translator: Pedro Padron <ppadron@w3p.com.br>\n"
|
| 8 |
+
"Language-Team: W3P Projetos Web <contato@w3p.com.br>\n"
|
| 9 |
+
"MIME-Version: 1.0\n"
|
| 10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
+
"X-Poedit-Language: Portuguese\n"
|
| 13 |
+
"X-Poedit-Country: BRAZIL\n"
|
| 14 |
+
"X-Poedit-Basepath: /\n"
|
| 15 |
+
"X-Poedit-SearchPath-0: /home/ppadron/Projects/wordpress-vanilla/wp-content/plugins/relevanssi\n"
|
| 16 |
+
|
| 17 |
+
#: relevanssi.php:1032
|
| 18 |
+
msgid "There is no excerpt because this is a protected post."
|
| 19 |
+
msgstr "Não há resumo porque esse é um post protegido."
|
| 20 |
+
|
| 21 |
+
#: relevanssi.php:1746
|
| 22 |
+
msgid "Relevanssi Search Options"
|
| 23 |
+
msgstr "Opções de Busca do Relevanssi"
|
| 24 |
+
|
| 25 |
+
#: relevanssi.php:1915
|
| 26 |
+
msgid "25 most common words in the index"
|
| 27 |
+
msgstr "25 palavras mais comuns no índice"
|
| 28 |
+
|
| 29 |
+
#: relevanssi.php:1917
|
| 30 |
+
msgid "These words are excellent stopword material. A word that appears in most of the posts in the database is quite pointless when searching. This is also an easy way to create a completely new stopword list, if one isn't available in your language. Click the icon after the word to add the word to the stopword list. The word will also be removed from the index, so rebuilding the index is not necessary."
|
| 31 |
+
msgstr "Estas palavras são excelentes para formar uma lista de stopwords. Uma palavra que aparece na maioria dos posts é um tanto quanto inútil em uma busca. Esta também é uma maneira fácil de criar uma nova lista de stopwords, caso uma não esteja disponível em seu idioma. Clique no ícone após a palavra para adicioná-la à lista de stopwords. A palavra também será removida do índice, então não é necessário reconstruí-lo."
|
| 32 |
+
|
| 33 |
+
#: relevanssi.php:1940
|
| 34 |
+
msgid "Add to stopwords"
|
| 35 |
+
msgstr "Adicionar à lista de stopwords"
|
| 36 |
+
|
| 37 |
+
#: relevanssi.php:1953
|
| 38 |
+
msgid "25 most popular queries"
|
| 39 |
+
msgstr "25 buscas mais populares"
|
| 40 |
+
|
| 41 |
+
#: relevanssi.php:1965
|
| 42 |
+
msgid "Recent queries that got 0 hits"
|
| 43 |
+
msgstr "Buscas recentes que não retornaram resultados"
|
| 44 |
+
|
| 45 |
+
#: relevanssi.php:2126
|
| 46 |
+
msgid "Title boost:"
|
| 47 |
+
msgstr "Prioridade do Título:"
|
| 48 |
+
|
| 49 |
+
#: relevanssi.php:2135
|
| 50 |
+
msgid "Use search for admin:"
|
| 51 |
+
msgstr "Usar a busca para o admin:"
|
| 52 |
+
|
| 53 |
+
#: relevanssi.php:2138
|
| 54 |
+
msgid "Restrict search to these categories and tags:"
|
| 55 |
+
msgstr "Restringir a busca para essas categorias e tags:"
|
| 56 |
+
|
| 57 |
+
#: relevanssi.php:2182
|
| 58 |
+
msgid "Create custom search result snippets:"
|
| 59 |
+
msgstr "Criar resumos de resultado de busca personalizados:"
|
| 60 |
+
|
| 61 |
+
#: relevanssi.php:2186
|
| 62 |
+
msgid "Length of the snippet:"
|
| 63 |
+
msgstr "Tamanho do resumo:"
|
| 64 |
+
|
| 65 |
+
#: relevanssi.php:2190
|
| 66 |
+
msgid "Keep a log of user queries:"
|
| 67 |
+
msgstr "Manter um histórico de buscas dos usuários:"
|
| 68 |
+
|
| 69 |
+
#: relevanssi.php:2191
|
| 70 |
+
msgid "If checked, Relevanssi will log user queries."
|
| 71 |
+
msgstr "Se ativada, Relevanssi irá armazenar as buscas feitas pelos usuários."
|
| 72 |
+
|
| 73 |
+
#: relevanssi.php:2195
|
| 74 |
+
msgid "Highlight query terms in search results:"
|
| 75 |
+
msgstr "Usar efeito marca-texto nos termos da busca nos resultados:"
|
| 76 |
+
|
| 77 |
+
#: relevanssi.php:2196
|
| 78 |
+
msgid "Highlighting isn't available unless you use custom snippets"
|
| 79 |
+
msgstr "Esta opção só está disponível se você utilizar resumos de resultados de busca personalizados"
|
| 80 |
+
|
| 81 |
+
#: relevanssi.php:2214
|
| 82 |
+
msgid "Continue indexing"
|
| 83 |
+
msgstr "Continuar Indexação"
|
| 84 |
+
|
| 85 |
+
#: relevanssi.php:2215
|
| 86 |
+
msgid "No highlighting"
|
| 87 |
+
msgstr "Sem efeito marca-texto"
|
| 88 |
+
|
| 89 |
+
#: relevanssi.php:2216
|
| 90 |
+
msgid "Text color"
|
| 91 |
+
msgstr "Cor do texto"
|
| 92 |
+
|
| 93 |
+
#: relevanssi.php:2217
|
| 94 |
+
msgid "Background color"
|
| 95 |
+
msgstr "Cor de fundo"
|
| 96 |
+
|
| 97 |
+
#: relevanssi.php:2218
|
| 98 |
+
msgid "CSS Style"
|
| 99 |
+
msgstr "CSS Style"
|
| 100 |
+
|
| 101 |
+
#: relevanssi.php:2219
|
| 102 |
+
msgid "CSS Class"
|
| 103 |
+
msgstr "Classe CSS"
|
| 104 |
+
|
| 105 |
+
#: relevanssi.php:2221
|
| 106 |
+
msgid "Text color for highlights:"
|
| 107 |
+
msgstr "Cor de texto para efeito marca-texto:"
|
| 108 |
+
|
| 109 |
+
#: relevanssi.php:2222
|
| 110 |
+
msgid "Background color for highlights:"
|
| 111 |
+
msgstr "Cor de fundo para efeito marca-texto:"
|
| 112 |
+
|
| 113 |
+
#: relevanssi.php:2223
|
| 114 |
+
msgid "CSS style for highlights:"
|
| 115 |
+
msgstr "Estilo CSS para efeito marca-texto:"
|
| 116 |
+
|
| 117 |
+
#: relevanssi.php:2224
|
| 118 |
+
msgid "CSS class for highlights:"
|
| 119 |
+
msgstr "Classe CSS para efeito marca-texto:"
|
| 120 |
+
|
| 121 |
+
#: relevanssi.php:2226
|
| 122 |
+
#: relevanssi.php:2227
|
| 123 |
+
msgid "Use HTML color codes (#rgb or #rrggbb)"
|
| 124 |
+
msgstr "Use cores em hexadecimal (#rgb ou #rrggbb)"
|
| 125 |
+
|
| 126 |
+
# @ default
|
| 127 |
+
#: relevanssi.php:94
|
| 128 |
+
#, php-format
|
| 129 |
+
msgid "Relevanssi needs attention: Remember to build the index (you can do it at <a href=\"%1$s\">the settings page</a>), otherwise searching won't work."
|
| 130 |
+
msgstr "Relevanssi precisa de atenção: Lembre-se de construir o índice (você pode fazê-lo na <a href=\"%1$s\">página de opções</a>), caso contrário a busca não irá funcionar."
|
| 131 |
+
|
| 132 |
+
#: relevanssi.php:1430
|
| 133 |
+
msgid "Indexing complete!"
|
| 134 |
+
msgstr "Indexação concluída!"
|
| 135 |
+
|
| 136 |
+
#: relevanssi.php:1903
|
| 137 |
+
#, php-format
|
| 138 |
+
msgid "<div id='message' class='update fade'><p>Term '%s' added to stopwords!</p></div>"
|
| 139 |
+
msgstr "<div id='message' class='update fade'><p>Termo '%s' adicionado à lista de stopwords!</p></div>"
|
| 140 |
+
|
| 141 |
+
#: relevanssi.php:1906
|
| 142 |
+
#, php-format
|
| 143 |
+
msgid "<div id='message' class='update fade'><p>Couldn't add term '%s' to stopwords!</p></div>"
|
| 144 |
+
msgstr "<div id='message' class='update fade'><p>Não foi possível adicionar '%s' à lista de stopwords!</p></div>"
|
| 145 |
+
|
| 146 |
+
#: relevanssi.php:2129
|
| 147 |
+
msgid "Tag boost:"
|
| 148 |
+
msgstr "Prioridade da Tag:"
|
| 149 |
+
|
| 150 |
+
#: relevanssi.php:2132
|
| 151 |
+
msgid "Comment boost:"
|
| 152 |
+
msgstr "Prioridade dos Comentários:"
|
| 153 |
+
|
| 154 |
+
#: relevanssi.php:2143
|
| 155 |
+
msgid "Exclude these categories and tags from search:"
|
| 156 |
+
msgstr "Excluir da busca essas categorias e tags:"
|
| 157 |
+
|
| 158 |
+
# @ relevanssi
|
| 159 |
+
#: relevanssi.php:2147
|
| 160 |
+
msgid "Exclusions and restrictions"
|
| 161 |
+
msgstr "Restrições"
|
| 162 |
+
|
| 163 |
+
#: relevanssi.php:2150
|
| 164 |
+
msgid "Exclude these posts/pages from search:"
|
| 165 |
+
msgstr "Excluir esses posts/páginas da busca:"
|
| 166 |
+
|
| 167 |
+
#: relevanssi.php:2154
|
| 168 |
+
msgid "Index and search your posts' tags:"
|
| 169 |
+
msgstr "Indexar e buscar as tags dos posts:"
|
| 170 |
+
|
| 171 |
+
#: relevanssi.php:2157
|
| 172 |
+
msgid "Index and search these comments:"
|
| 173 |
+
msgstr "Indexar e buscar nestes Comentários:"
|
| 174 |
+
|
| 175 |
+
#: relevanssi.php:2162
|
| 176 |
+
msgid "all"
|
| 177 |
+
msgstr "todos"
|
| 178 |
+
|
| 179 |
+
#: relevanssi.php:2163
|
| 180 |
+
msgid "normal"
|
| 181 |
+
msgstr "normal"
|
| 182 |
+
|
| 183 |
+
#: relevanssi.php:2164
|
| 184 |
+
msgid "none"
|
| 185 |
+
msgstr "nenhum"
|
| 186 |
+
|
| 187 |
+
#: relevanssi.php:2181
|
| 188 |
+
msgid "Custom excerpts/snippets"
|
| 189 |
+
msgstr "Resumos de resultado de busca personalizados"
|
| 190 |
+
|
| 191 |
+
#: relevanssi.php:2187
|
| 192 |
+
msgid "This must be an integer."
|
| 193 |
+
msgstr "O valor deve ser um número inteiro."
|
| 194 |
+
|
| 195 |
+
#: relevanssi.php:2188
|
| 196 |
+
msgid "words"
|
| 197 |
+
msgstr "palavras"
|
| 198 |
+
|
| 199 |
+
#: relevanssi.php:2189
|
| 200 |
+
msgid "characters"
|
| 201 |
+
msgstr "caracteres"
|
| 202 |
+
|
| 203 |
+
#: relevanssi.php:2192
|
| 204 |
+
msgid "Search hit highlighting"
|
| 205 |
+
msgstr "Efeito marca-texto"
|
| 206 |
+
|
| 207 |
+
# @ relevanssi
|
| 208 |
+
#: relevanssi.php:2193
|
| 209 |
+
msgid "First, choose the type of highlighting used:"
|
| 210 |
+
msgstr "Primeiramente, escolha o tipo de efeito marca-texto a ser utilizado:"
|
| 211 |
+
|
| 212 |
+
# @ relevanssi
|
| 213 |
+
#: relevanssi.php:2194
|
| 214 |
+
msgid "Then adjust the settings for your chosen type:"
|
| 215 |
+
msgstr "Ajuste as opções para o tipo escolhido:"
|
| 216 |
+
|
| 217 |
+
#: relevanssi.php:2198
|
| 218 |
+
msgid "Highlight query terms in result titles too:"
|
| 219 |
+
msgstr "Usar efeito marca-texto também nos títulos dos resultados:"
|
| 220 |
+
|
| 221 |
+
# @ relevanssi
|
| 222 |
+
#: relevanssi.php:2201
|
| 223 |
+
msgid "Save the options"
|
| 224 |
+
msgstr "Gravar as opções"
|
| 225 |
+
|
| 226 |
+
#: relevanssi.php:2202
|
| 227 |
+
msgid "Building the index and indexing options"
|
| 228 |
+
msgstr "Construindo o índice e opções de indexação"
|
| 229 |
+
|
| 230 |
+
#: relevanssi.php:2213
|
| 231 |
+
msgid "Save indexing options and build the index"
|
| 232 |
+
msgstr "Gravar opções de indexação e construir o índice"
|
| 233 |
+
|
| 234 |
+
#: relevanssi.php:2233
|
| 235 |
+
msgid "What to include in the index"
|
| 236 |
+
msgstr "O que incluir no índice"
|
| 237 |
+
|
| 238 |
+
#: relevanssi.php:2234
|
| 239 |
+
msgid "Everything"
|
| 240 |
+
msgstr "Tudo"
|
| 241 |
+
|
| 242 |
+
#: relevanssi.php:2235
|
| 243 |
+
msgid "Just posts"
|
| 244 |
+
msgstr "Apenas posts"
|
| 245 |
+
|
| 246 |
+
#: relevanssi.php:2236
|
| 247 |
+
msgid "Just pages"
|
| 248 |
+
msgstr "Apenas páginas"
|
| 249 |
+
|
| 250 |
+
#: relevanssi.php:2251
|
| 251 |
+
msgid "Custom fields to index:"
|
| 252 |
+
msgstr "Campos personalizados a serem indexados:"
|
| 253 |
+
|
| 254 |
+
#: relevanssi.php:2259
|
| 255 |
+
msgid "Show breakdown of search hits in excerpts:"
|
| 256 |
+
msgstr "Exibir mais informações de hits no resumo:"
|
| 257 |
+
|
| 258 |
+
#: relevanssi.php:2262
|
| 259 |
+
msgid "The breakdown format:"
|
| 260 |
+
msgstr "Formato das informações:"
|
| 261 |
+
|
| 262 |
+
#: relevanssi.php:2267
|
| 263 |
+
msgid "When to use fuzzy matching?"
|
| 264 |
+
msgstr "Quando utilizar busca fuzzy"
|
| 265 |
+
|
| 266 |
+
#: relevanssi.php:2268
|
| 267 |
+
msgid "When straight search gets no hits"
|
| 268 |
+
msgstr "Quando a busca direta não encontra resultados"
|
| 269 |
+
|
| 270 |
+
#: relevanssi.php:2269
|
| 271 |
+
msgid "Always"
|
| 272 |
+
msgstr "Sempre"
|
| 273 |
+
|
| 274 |
+
#: relevanssi.php:2270
|
| 275 |
+
msgid "Don't use fuzzy search"
|
| 276 |
+
msgstr "Não utilizar busca fuzzy"
|
| 277 |
+
|
| 278 |
+
# @ relevanssi
|
| 279 |
+
#: relevanssi.php:311
|
| 280 |
+
msgid "Data wiped clean, you can now delete the plugin."
|
| 281 |
+
msgstr "Dados removidos! Você pode remover o plugin agora."
|
| 282 |
+
|
| 283 |
+
# @ relevanssi
|
| 284 |
+
#: relevanssi.php:2280
|
| 285 |
+
msgid "Uninstall"
|
| 286 |
+
msgstr "Desinstalar"
|
| 287 |
+
|
| 288 |
+
# @ relevanssi
|
| 289 |
+
#: relevanssi.php:2284
|
| 290 |
+
msgid "Remove plugin data"
|
| 291 |
+
msgstr "Remover todos os dados do plugin"
|
| 292 |
+
|
| 293 |
+
# @ relevanssi
|
| 294 |
+
#: relevanssi.php:2274
|
| 295 |
+
msgid "Expand shortcodes in post content:"
|
| 296 |
+
msgstr "Converter os shortcodes "
|
| 297 |
+
|
| 298 |
+
#: relevanssi.php:2167
|
| 299 |
+
msgid "Index and search your posts' categories:"
|
| 300 |
+
msgstr "Indexar e buscar as categorias dos posts:"
|
| 301 |
+
|
| 302 |
+
#: relevanssi.php:2243
|
| 303 |
+
msgid "Custom post types to index"
|
| 304 |
+
msgstr "Tipos de Posts (custom post types) a serem indexados"
|
| 305 |
+
|
| 306 |
+
#: relevanssi.php:2255
|
| 307 |
+
msgid "Custom taxonomies to index:"
|
| 308 |
+
msgstr "Taxonomias personalizadas a serem indexadas:"
|
| 309 |
+
|
| 310 |
+
#: relevanssi.php:2127
|
| 311 |
+
#, php-format
|
| 312 |
+
msgid ""
|
| 313 |
+
"Default: %d. 0 means titles are ignored, 1 means no boost, more\n"
|
| 314 |
+
"\t\tthan 1 gives extra value."
|
| 315 |
+
msgstr "Padrão: %d. 0 significa que os títulos são ignorados, 1 significa nenhuma prioridade, mais de 1 aumenta a prioridade."
|
| 316 |
+
|
| 317 |
+
#: relevanssi.php:2130
|
| 318 |
+
#, php-format
|
| 319 |
+
msgid ""
|
| 320 |
+
"Default: %d. 0 means tags are ignored, 1 means no boost, more\n"
|
| 321 |
+
"\t\tthan 1 gives extra value."
|
| 322 |
+
msgstr "Padrão: %d. 0 significa que as tags são ignoradas, 1 significa nenhuma prioridade, mais de 1 aumenta a prioridade."
|
| 323 |
+
|
| 324 |
+
#: relevanssi.php:2133
|
| 325 |
+
#, php-format
|
| 326 |
+
msgid ""
|
| 327 |
+
"Default: %d. 0 means comments are ignored, 1 means no boost,\n"
|
| 328 |
+
"\t\tmore than 1 gives extra value."
|
| 329 |
+
msgstr "Padrão: %d. 0 significa que os comentários são ignorados, 1 significa nenhuma prioridade, mais de 1 aumenta a prioridade."
|
| 330 |
+
|
| 331 |
+
#: relevanssi.php:2136
|
| 332 |
+
msgid ""
|
| 333 |
+
"If checked, Relevanssi will be used for searches in the admin\n"
|
| 334 |
+
"\t\tinterface"
|
| 335 |
+
msgstr "Se a opção estiver marcada, Relevanssi será usado nas buscas no painel do admin"
|
| 336 |
+
|
| 337 |
+
#: relevanssi.php:2139
|
| 338 |
+
msgid ""
|
| 339 |
+
"Enter a comma-separated list of category and tag IDs to restrict search to\n"
|
| 340 |
+
"\t\tthose categories or tags. You can also use <code><input type='hidden' name='cat'\n"
|
| 341 |
+
"\t\tvalue='list of cats and tags' /></code> in your search form. The input field will\n"
|
| 342 |
+
"\t\toverrun this setting."
|
| 343 |
+
msgstr "Insira uma lista separada por vírgulas de categorias e IDs de tags para restringir a busca apenas nelas. Você também pode usar <code><input type='hidden' name='cat' value='lista de categorias e tags' /></code> em seu formulário. O campo no formulário tem prioridade sobre esta opção no painel."
|
| 344 |
+
|
| 345 |
+
#: relevanssi.php:2144
|
| 346 |
+
msgid ""
|
| 347 |
+
"Enter a comma-separated list of category and tag IDs that are excluded from\n"
|
| 348 |
+
"\t\tsearch results. This only works here, you can't use the input field option (WordPress\n"
|
| 349 |
+
"\t\tdoesn't pass custom parameters there)."
|
| 350 |
+
msgstr "Insira uma lista separada por vírgulas de categorias e IDs de tags que serão excluídos dos resultados da busca. Essa opção só pode ser definida aqui, você não pode usar um campo adicional no formulário (WordPress não passa parâmetros personalizados lá)."
|
| 351 |
+
|
| 352 |
+
#: relevanssi.php:2151
|
| 353 |
+
msgid ""
|
| 354 |
+
"Enter a comma-separated list of post/page IDs that are excluded from search\n"
|
| 355 |
+
"\t\tresults. This only works here, you can't use the input field option (WordPress doesn't pass\n"
|
| 356 |
+
"\t\tcustom parameters there)."
|
| 357 |
+
msgstr "Insira uma lista separada por vírgulas de IDs de posts/páginas que serão excluídos dos resultados da busca. Essa opção só pode ser definida aqui, você não pode usar um campo adicional no formulário (WordPress não passa parâmetros personalizados lá)."
|
| 358 |
+
|
| 359 |
+
#: relevanssi.php:2155
|
| 360 |
+
msgid ""
|
| 361 |
+
"If checked, Relevanssi will also index and search the tags of your posts.\n"
|
| 362 |
+
"\t\tRemember to rebuild the index if you change this option!"
|
| 363 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá indexar e realizar buscas nas tags de seus posts. Lembre-se de reconstruir o índice se você mudar esta opção!"
|
| 364 |
+
|
| 365 |
+
#: relevanssi.php:2158
|
| 366 |
+
msgid ""
|
| 367 |
+
"Relevanssi will index and search ALL (all comments including track-\n"
|
| 368 |
+
"\t\t& pingbacks and custom comment types), NONE (no comments) or NORMAL (manually posted\n"
|
| 369 |
+
"\t\tcomments on your blog).<br />Remember to rebuild the index if you change this option!"
|
| 370 |
+
msgstr "Relevanssi irá indexar e buscar em TODOS (comentários, trackbacks, pingbacks e tipos personalizados de comentários), NENHUM (nenhum comentário) ou NORMAL (comentários postados manualmente no blog).<br/> Lembre-se de reconstruir o índice se você mudar esta opção!"
|
| 371 |
+
|
| 372 |
+
#: relevanssi.php:2168
|
| 373 |
+
msgid ""
|
| 374 |
+
"If checked, Relevanssi will also index and search the categories of your\n"
|
| 375 |
+
"\t\tposts. Category titles will pass through 'single_cat_title' filter. Remember to rebuild the\n"
|
| 376 |
+
"\t\tindex if you change this option!"
|
| 377 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá indexar e realizar buscas nas categorias de seus posts. Lembre-se de reconstruir o índice se você mudar esta opção!"
|
| 378 |
+
|
| 379 |
+
#: relevanssi.php:2183
|
| 380 |
+
msgid ""
|
| 381 |
+
"If checked, Relevanssi will create excerpts that contain the search term\n"
|
| 382 |
+
"\t\thits. To make them work, make sure your search result template uses the_excerpt() to\n"
|
| 383 |
+
"\t\tdisplay post excerpts."
|
| 384 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá criar resumos que contém o(s) termo(s) buscado(s). Para que isso funcione, certifique-se de que seu template de resultado de busca utiliza <code>the_excerpt()</code> para exibir resumos de posts."
|
| 385 |
+
|
| 386 |
+
#: relevanssi.php:2203
|
| 387 |
+
msgid ""
|
| 388 |
+
"After installing the plugin, you need to build the index. This generally needs\n"
|
| 389 |
+
"\t\tto be done once, you don't have to re-index unless something goes wrong. Indexing is a heavy\n"
|
| 390 |
+
"\t\ttask and might take more time than your servers allow. If the indexing cannot be finished -\n"
|
| 391 |
+
"\t\tfor example you get a blank screen or something like that after indexing - you can continue\n"
|
| 392 |
+
"\t\tindexing from where you left by clicking 'Continue indexing'. Clicking 'Build the index'\n"
|
| 393 |
+
"\t\twill delete the old index, so you can't use that."
|
| 394 |
+
msgstr "Após a instalação do plugin, é preciso construir o índice. Isso normalmente precisa ser feito apenas uma vez. Não é necessário reconstruir o índice a não ser que algo de errado aconteça. A indexação é uma tarefa pesada e pode levar mais tempo do que seus servidores permitam. Se a indexação não puder ser concluída - por exemplo, você encontrar uma tela branca ou algo parecido após a indexação - você pode continuar o processo a partir de onde parou ao clicar em \"Continuar Indexação\". Ao clicar em \"Construir o Índice\" o índice atual será removido, portanto não clique nele para continuar uma indexação interrompida."
|
| 395 |
+
|
| 396 |
+
#: relevanssi.php:2209
|
| 397 |
+
msgid ""
|
| 398 |
+
"So, if you build the index and don't get the 'Indexing complete' in the end,\n"
|
| 399 |
+
"\t\tkeep on clicking the 'Continue indexing' button until you do. On my blogs, I was able to\n"
|
| 400 |
+
"\t\tindex ~400 pages on one go, but had to continue indexing twice to index ~950 pages."
|
| 401 |
+
msgstr "Portanto, se você construir o índice e não receber a mensagem \"Indexação Concluída\" no final, continue clicando em \"Continuar Indexação\" até que isso aconteça. Em meus blogs consegui indexar cerca de 400 páginas de uma só vez, mas precisei continuar o processo mais duas vezes para chegar a cerca de 950 páginas."
|
| 402 |
+
|
| 403 |
+
#: relevanssi.php:2228
|
| 404 |
+
msgid ""
|
| 405 |
+
"You can use any CSS styling here, style will be inserted with a\n"
|
| 406 |
+
"\t\t<span>"
|
| 407 |
+
msgstr "Você pode usar qualquer estilo CSS aqui, ele será inserido com a tag <code><span></code>"
|
| 408 |
+
|
| 409 |
+
#: relevanssi.php:2230
|
| 410 |
+
msgid ""
|
| 411 |
+
"Name a class here, search results will be wrapped in a <span>\n"
|
| 412 |
+
"\t\twith the class"
|
| 413 |
+
msgstr "Insira aqui o nome da classe e os resultados da busca serão encapsulados por uma tag <code><span></code> com esta classe"
|
| 414 |
+
|
| 415 |
+
# @ relevanssi
|
| 416 |
+
#: relevanssi.php:2237
|
| 417 |
+
msgid "All public post types"
|
| 418 |
+
msgstr "Todos os tipos de post públicos"
|
| 419 |
+
|
| 420 |
+
# @ relevanssi
|
| 421 |
+
#: relevanssi.php:2238
|
| 422 |
+
msgid ""
|
| 423 |
+
"This determines which post types are included in the index. Choosing\n"
|
| 424 |
+
"\t\t'everything' will include posts, pages and all custom post types. 'All public post types'\n"
|
| 425 |
+
"\t\tincludes all registered post types that don't have the 'exclude_from_search' set to true.\n"
|
| 426 |
+
"\t\tThis includes post, page, attachment, and possible custom types. 'All public types'\n"
|
| 427 |
+
"\t\trequires at least WP 2.9, otherwise it's the same as 'everything'."
|
| 428 |
+
msgstr "Isso determina quais tipos de posts serão indexados. Ao escolher \"Tudo\" serão incluídos todos os posts, páginas e posts personalizados. \"Todos os tipos de post públicos\" inclui todos os tipos de posts públicos que não possuam o atributo \"exclude_from_search\" definido como verdadeiro, o que inclui posts, páginas, anexos e possivelmente posts personalizados. A opção \"Todos os tipos de post públicos\" requer Wordpress 2.9 ou superior, caso contrário será o mesmo que \"Tudo\"."
|
| 429 |
+
|
| 430 |
+
# @ relevanssi
|
| 431 |
+
#: relevanssi.php:2244
|
| 432 |
+
msgid ""
|
| 433 |
+
"If you don't want to index all custom post types, list here the custom\n"
|
| 434 |
+
"\t\tpost types you want to see indexed. List comma-separated post type names (as used in the\n"
|
| 435 |
+
"\t\tdatabase). You can also use a hidden field in the search form to restrict the search to a\n"
|
| 436 |
+
"\t\tcertain post type: <code><input type='hidden' name='post_type' value='comma-separated\n"
|
| 437 |
+
"\t\tlist of post types' /></code>. If you choose 'All public post types' or 'Everything'\n"
|
| 438 |
+
"\t\tabove, this option has no effect."
|
| 439 |
+
msgstr "Se você não quiser indexar todos os tipos de post personalizados, liste aqui quais são os tipos que você quer indexar. Insira os nomes dos tipos de posts em uma lista separada por vírgula. Você pode também usar um campo hidden no formário de busca para restringir a busca em um determinado tipo de post: <code><input type='hidden' name='post_type' value='lista de tipos de posts' /></code>. Se na opção anterior você escolheu \"Todos os tipos de posts públicos\" ou \"Tudo\", essa opção não terá efeito."
|
| 440 |
+
|
| 441 |
+
#: relevanssi.php:2252
|
| 442 |
+
msgid ""
|
| 443 |
+
"A comma-separated list of custom field names to include in the\n"
|
| 444 |
+
"\t\tindex."
|
| 445 |
+
msgstr "Uma lista separada por vírgula de nomes de campos personalizados a serem incluídos no índice."
|
| 446 |
+
|
| 447 |
+
#: relevanssi.php:2256
|
| 448 |
+
msgid ""
|
| 449 |
+
"A comma-separated list of custom taxonomies to include in the\n"
|
| 450 |
+
"\t\tindex."
|
| 451 |
+
msgstr "Uma lista separada por vírgula de nomes de taxonomias personalizadas a serem incluídos no índice."
|
| 452 |
+
|
| 453 |
+
#: relevanssi.php:2260
|
| 454 |
+
msgid ""
|
| 455 |
+
"Check this to show more information on where the search hits were\n"
|
| 456 |
+
"\t\tmade. Requires custom snippets to work."
|
| 457 |
+
msgstr "Marque esta opção para exibir mais informações sobre onde os termos buscados foram encontrados. Para essa opção funcionar, é preciso habilitar os resumos personalizados."
|
| 458 |
+
|
| 459 |
+
#: relevanssi.php:2271
|
| 460 |
+
msgid ""
|
| 461 |
+
"Straight search matches just the term. Fuzzy search matches everything\n"
|
| 462 |
+
"\t\tthat begins or ends with the search term."
|
| 463 |
+
msgstr "Busca direta encontra apenas o termo buscado. Busca fuzzy irá encontrar tudo que começa ou termina com o termo buscado."
|
| 464 |
+
|
| 465 |
+
# @ relevanssi
|
| 466 |
+
#: relevanssi.php:2275
|
| 467 |
+
msgid ""
|
| 468 |
+
"If checked, Relevanssi will expand shortcodes in post content\n"
|
| 469 |
+
"\t\tbefore indexing. Otherwise shortcodes will be stripped. If you use shortcodes to\n"
|
| 470 |
+
"\t\tinclude dynamic content, Relevanssi will not keep the index updated, the index will\n"
|
| 471 |
+
"\t\treflect the status of the shortcode content at the moment of indexing."
|
| 472 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá converter os shortcodes no conteúdo do post antes de indexar. Caso contrário, os shortcodes serão removidos. Se você utiliza shortcodes para incluir conteúdo dinâmico, Relevanssi não manterá o índice atualizado. Ou seja, será utilizado o conteúdo gerado pelo shortcode no momento da indexação."
|
| 473 |
+
|
| 474 |
+
# @ relevanssi
|
| 475 |
+
#: relevanssi.php:2281
|
| 476 |
+
msgid ""
|
| 477 |
+
"If you want to uninstall the plugin, start by clicking the button\n"
|
| 478 |
+
"\t\tbelow to wipe clean the options and tables created by the plugin, then remove it from\n"
|
| 479 |
+
"\t\tthe plugins list."
|
| 480 |
+
msgstr "Se quiser desinstalar o plugin, comece clicando no botão abaixo para remover todas as opções e todas as tabelas criadas pelo plugin, e então remova-o da lista de plugins."
|
| 481 |
+
|
| 482 |
+
#: relevanssi.php:2172
|
| 483 |
+
msgid "Index and search your posts' authors:"
|
| 484 |
+
msgstr "Indexar e buscar os autores dos posts:"
|
| 485 |
+
|
| 486 |
+
#: relevanssi.php:2173
|
| 487 |
+
msgid ""
|
| 488 |
+
"If checked, Relevanssi will also index and search the authors of your\n"
|
| 489 |
+
"\t\tposts. Author display name will be indexed. Remember to rebuild the index if you change\n"
|
| 490 |
+
"\t\tthis option!"
|
| 491 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá indexar e realizar buscas nos autores de seus posts. Lembre-se de reconstruir o índice se você mudar esta opção!"
|
| 492 |
+
|
| 493 |
+
# @ relevanssi
|
| 494 |
+
#: relevanssi.php:2286
|
| 495 |
+
msgid "State of the Index"
|
| 496 |
+
msgstr "Estatísticas do Índice"
|
| 497 |
+
|
| 498 |
+
# @ relevanssi
|
| 499 |
+
#: relevanssi.php:2287
|
| 500 |
+
msgid "Highest post ID indexed"
|
| 501 |
+
msgstr "Último ID indexado"
|
| 502 |
+
|
| 503 |
+
#: relevanssi.php:2288
|
| 504 |
+
msgid "Documents in the index"
|
| 505 |
+
msgstr "Registros no índice"
|
| 506 |
+
|
| 507 |
+
# @ relevanssi
|
| 508 |
+
#: relevanssi.php:2289
|
| 509 |
+
msgid "Basic options"
|
| 510 |
+
msgstr "Opções Básicas"
|
| 511 |
+
|
| 512 |
+
# @ relevanssi
|
| 513 |
+
#: relevanssi.php:2291
|
| 514 |
+
msgid "Default operator for the search?"
|
| 515 |
+
msgstr "Operador padrão para a busca?"
|
| 516 |
+
|
| 517 |
+
# @ relevanssi
|
| 518 |
+
#: relevanssi.php:2292
|
| 519 |
+
msgid "AND - require all terms"
|
| 520 |
+
msgstr "E - necessita de todos os termos"
|
| 521 |
+
|
| 522 |
+
# @ relevanssi
|
| 523 |
+
#: relevanssi.php:2293
|
| 524 |
+
msgid "OR - any term present is enough"
|
| 525 |
+
msgstr "OU - qualquer termo presente é o bastante"
|
| 526 |
+
|
| 527 |
+
# @ relevanssi
|
| 528 |
+
#: relevanssi.php:2294
|
| 529 |
+
msgid "If you choose AND and the search finds no matches, it will automatically do an OR search."
|
| 530 |
+
msgstr "Se escolher E e a busca não encontrar resultados, uma nova busca do tipo OU será feita automaticamente."
|
| 531 |
+
|
| 532 |
+
# @ relevanssi
|
| 533 |
+
#: relevanssi.php:2296
|
| 534 |
+
msgid "Don't log queries from these users:"
|
| 535 |
+
msgstr "Não armazenar registros de buscas destes usuários:"
|
| 536 |
+
|
| 537 |
+
#: relevanssi.php:2297
|
| 538 |
+
msgid "Comma-separated list of user ids that will not be logged."
|
| 539 |
+
msgstr "Uma lista separada por vírgula de usuários que não terão suas buscas registradas."
|
| 540 |
+
|
| 541 |
+
# @ relevanssi
|
| 542 |
+
#: relevanssi.php:2299
|
| 543 |
+
msgid "Synonyms"
|
| 544 |
+
msgstr "Sinônimos"
|
| 545 |
+
|
| 546 |
+
# @ relevanssi
|
| 547 |
+
#: relevanssi.php:2300
|
| 548 |
+
msgid "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."
|
| 549 |
+
msgstr "Adicione sinônimos no formato \"chave = valor\". Quando for feita uma busca do tipo OU, qualquer busca por <strong>\"chave\"</strong> será expandida para incluir <strong>\"valor\"</strong> também. É possível utilizar frases. Os pares chave-valor funcionam apenas em uma direção, mas claro que você pode repetir o mesmo par em ordem inversa."
|
| 550 |
+
|
| 551 |
+
#: relevanssi.php:2177
|
| 552 |
+
msgid "Index and search post excerpts:"
|
| 553 |
+
msgstr "Indexar e buscar os resumos dos posts:"
|
| 554 |
+
|
| 555 |
+
#: relevanssi.php:2178
|
| 556 |
+
msgid ""
|
| 557 |
+
"If checked, Relevanssi will also index and search the excerpts of your\n"
|
| 558 |
+
"\t\tposts.Remember to rebuild the index if you change this option!"
|
| 559 |
+
msgstr "Se esta opção estiver marcada, Relevanssi irá indexar e realizar buscas nos resumos de seus posts. Lembre-se de reconstruir o índice se você mudar esta opção!"
|
| 560 |
+
|
| 561 |
+
# @ relevanssi
|
| 562 |
+
#: relevanssi.php:2263
|
| 563 |
+
#, php-format
|
| 564 |
+
msgid ""
|
| 565 |
+
"Use %body%, %title%, %tags% and %comments% to display the number of\n"
|
| 566 |
+
"\t\thits (in different parts of the post), %total% for total hits, %score% to display the document weight and %terms% to\n"
|
| 567 |
+
"\t\tshow how many hits each search term got. No double quotes (\") allowed!"
|
| 568 |
+
msgstr "Utilize %body%, %title%, %tags% e %comments% para exibir o número de hits, %total% para o total de hits, %score% para exibir a relevância e %terms% para exibir quantas vezes cada termo buscado foi encontrado. Aspas duplas (\") não são permitidas aqui!"
|
| 569 |
+
|
| 570 |
+
#~ msgid "Save"
|
| 571 |
+
#~ msgstr "Gravar"
|
| 572 |
+
#~ msgid ""
|
| 573 |
+
#~ "Use %body%, %title%, %tags%, %comments% and %score% to display the number "
|
| 574 |
+
#~ "of hits and the document weight."
|
| 575 |
+
#~ msgstr ""
|
| 576 |
+
#~ "Use %body%, %title%, %tags%, %comments% e %score% para exibir o número de "
|
| 577 |
+
#~ "hits e o peso do resultado."
|
| 578 |
+
|
relevanssi-ro_RO.mo
ADDED
|
Binary file
|
relevanssi-ro_RO.po
ADDED
|
@@ -0,0 +1,1123 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
msgid ""
|
| 2 |
+
msgstr ""
|
| 3 |
+
"Project-Id-Version: Relevanssi Premium\n"
|
| 4 |
+
"Report-Msgid-Bugs-To: \n"
|
| 5 |
+
"POT-Creation-Date: 2011-08-28 16:16+0200\n"
|
| 6 |
+
"PO-Revision-Date: \n"
|
| 7 |
+
"Last-Translator: Richard Vencu <richard.vencu@richardconsulting.ro>\n"
|
| 8 |
+
"Language-Team: \n"
|
| 9 |
+
"MIME-Version: 1.0\n"
|
| 10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
+
"X-Poedit-KeywordsList: _e;__\n"
|
| 13 |
+
"X-Poedit-Basepath: .\n"
|
| 14 |
+
"X-Poedit-Language: English\n"
|
| 15 |
+
"X-Poedit-SearchPath-0: .\n"
|
| 16 |
+
"X-Poedit-SearchPath-1: ../relevanssi\n"
|
| 17 |
+
|
| 18 |
+
#: relevanssi.php:114
|
| 19 |
+
#: relevanssi.php:115
|
| 20 |
+
#: ../relevanssi/relevanssi.php:94
|
| 21 |
+
#: ../relevanssi/relevanssi.php:95
|
| 22 |
+
msgid "User searches"
|
| 23 |
+
msgstr "Căutări utilizatori"
|
| 24 |
+
|
| 25 |
+
#: relevanssi.php:128
|
| 26 |
+
#: ../relevanssi/relevanssi.php:107
|
| 27 |
+
#, php-format
|
| 28 |
+
msgid "Relevanssi needs attention: Remember to build the index (you can do it at <a href=\"%1$s\">the settings page</a>), otherwise searching won't work."
|
| 29 |
+
msgstr "Relevanssi are nevoie de atenție: Amintiți-vă să construiți indexul (aceasta se poate face la <a href=\"%1$s\">pagina de configurație</a>), altfel căutările nu vor funcționa."
|
| 30 |
+
|
| 31 |
+
#: relevanssi.php:2112
|
| 32 |
+
#: ../relevanssi/relevanssi.php:1480
|
| 33 |
+
msgid "There is no excerpt because this is a protected post."
|
| 34 |
+
msgstr "Nu există rezumat pentru că acesta este un articol protejat."
|
| 35 |
+
|
| 36 |
+
#: relevanssi.php:2871
|
| 37 |
+
#: ../relevanssi/relevanssi.php:2000
|
| 38 |
+
msgid "Indexing complete!"
|
| 39 |
+
msgstr "Indexare reușită!"
|
| 40 |
+
|
| 41 |
+
#: relevanssi.php:3323
|
| 42 |
+
msgid "Relevanssi Premium Search Options"
|
| 43 |
+
msgstr "Opțiuni de căutare Relevanssi Premium"
|
| 44 |
+
|
| 45 |
+
#: relevanssi.php:3390
|
| 46 |
+
msgid "Options updated!"
|
| 47 |
+
msgstr "Opțiuni actualizate!"
|
| 48 |
+
|
| 49 |
+
#: relevanssi.php:3398
|
| 50 |
+
msgid "User Searches"
|
| 51 |
+
msgstr "Căutări utilizatori"
|
| 52 |
+
|
| 53 |
+
#: relevanssi.php:3400
|
| 54 |
+
#: ../relevanssi/relevanssi.php:2458
|
| 55 |
+
msgid "Relevanssi User Searches"
|
| 56 |
+
msgstr "Căutări utilizatori Relevanssi"
|
| 57 |
+
|
| 58 |
+
#: relevanssi.php:3673
|
| 59 |
+
#: ../relevanssi/relevanssi.php:2673
|
| 60 |
+
#, php-format
|
| 61 |
+
msgid "<div id='message' class='updated fade'><p>Successfully added %d/%d terms to stopwords!</p></div>"
|
| 62 |
+
msgstr "<div id='message' class='updated fade'><p>Termenii %d/%d au fost adăugați cu succes la lista de cuvinte ignorate!</p></div>"
|
| 63 |
+
|
| 64 |
+
#: relevanssi.php:3680
|
| 65 |
+
#: ../relevanssi/relevanssi.php:2680
|
| 66 |
+
#, php-format
|
| 67 |
+
msgid "<div id='message' class='updated fade'><p>Term '%s' added to stopwords!</p></div>"
|
| 68 |
+
msgstr "<div id='message' class='updated fade'><p>Termenul '%s' a fost adăugat la lista de cuvinte ignorate!</p></div>"
|
| 69 |
+
|
| 70 |
+
#: relevanssi.php:3683
|
| 71 |
+
#: ../relevanssi/relevanssi.php:2683
|
| 72 |
+
#, php-format
|
| 73 |
+
msgid "<div id='message' class='updated fade'><p>Couldn't add term '%s' to stopwords!</p></div>"
|
| 74 |
+
msgstr "<div id='message' class='updated fade'><p>Nu am putut adăuga termenul '%s' la lista de cuvinte ignorate!</p></div>"
|
| 75 |
+
|
| 76 |
+
#: relevanssi.php:3712
|
| 77 |
+
#: ../relevanssi/relevanssi.php:2712
|
| 78 |
+
msgid "<div id='message' class='updated fade'><p>Stopwords removed! Remember to re-index.</p></div>"
|
| 79 |
+
msgstr "<div id='message' class='updated fade'><p>Cuvintele ignorate au fost eliminate din listă! Amintiți-vă că trebuie să reindexați.</p></div>"
|
| 80 |
+
|
| 81 |
+
#: relevanssi.php:3722
|
| 82 |
+
#: ../relevanssi/relevanssi.php:2722
|
| 83 |
+
#, php-format
|
| 84 |
+
msgid "<div id='message' class='updated fade'><p>Term '%s' removed from stopwords! Re-index to get it back to index.</p></div>"
|
| 85 |
+
msgstr "<div id='message' class='updated fade'><p>Termenul '%s' a fost eliminat din lista de cuvinte ignorate! Re-indexați pentru a îl reintroduce în index.</p></div>"
|
| 86 |
+
|
| 87 |
+
#: relevanssi.php:3725
|
| 88 |
+
#: ../relevanssi/relevanssi.php:2725
|
| 89 |
+
#, php-format
|
| 90 |
+
msgid "<div id='message' class='updated fade'><p>Couldn't remove term '%s' from stopwords!</p></div>"
|
| 91 |
+
msgstr "<div id='message' class='updated fade'><p>NU am putut elimina termenul '%s' din lista de cuvinte ignorate!</p></div>"
|
| 92 |
+
|
| 93 |
+
#: relevanssi.php:3734
|
| 94 |
+
#: ../relevanssi/relevanssi.php:2734
|
| 95 |
+
msgid "25 most common words in the index"
|
| 96 |
+
msgstr "Cele mai frecvente 25 de cuvinte din index"
|
| 97 |
+
|
| 98 |
+
#: relevanssi.php:3736
|
| 99 |
+
#: ../relevanssi/relevanssi.php:2736
|
| 100 |
+
msgid "These words are excellent stopword material. A word that appears in most of the posts in the database is quite pointless when searching. This is also an easy way to create a completely new stopword list, if one isn't available in your language. Click the icon after the word to add the word to the stopword list. The word will also be removed from the index, so rebuilding the index is not necessary."
|
| 101 |
+
msgstr "Aceste cuvinte reprezintă candidați ideali pentru lista de cuvinte ignorate. Un cuvânt care apare în majoritatea articolelor din blog nu prea mai are sens să fie folosit ca termen de căutare. În plus aceasta este o modalitate ușoară de a construi o listă nouă de cuvinte ignorate dacă nu există deja una în limba dumneavoastră. Apăsați pe icoana de după cuvânt pentru a adăuga cuvântul la listă. Totodată cuvântul va fi eliminat și din index, așa că reindexarea nu mai este necesară."
|
| 102 |
+
|
| 103 |
+
#: relevanssi.php:3759
|
| 104 |
+
#: ../relevanssi/relevanssi.php:2759
|
| 105 |
+
msgid "Add to stopwords"
|
| 106 |
+
msgstr "Adăugare la lista de cuvinte ignorate"
|
| 107 |
+
|
| 108 |
+
#: relevanssi.php:3770
|
| 109 |
+
msgid "Total Searches"
|
| 110 |
+
msgstr "Total căutări"
|
| 111 |
+
|
| 112 |
+
#: relevanssi.php:3773
|
| 113 |
+
msgid "Totals"
|
| 114 |
+
msgstr "Totaluri"
|
| 115 |
+
|
| 116 |
+
#: relevanssi.php:3778
|
| 117 |
+
msgid "Common Queries"
|
| 118 |
+
msgstr "Căutări frecvente"
|
| 119 |
+
|
| 120 |
+
#: relevanssi.php:3780
|
| 121 |
+
#: ../relevanssi/relevanssi.php:2770
|
| 122 |
+
msgid ""
|
| 123 |
+
"Here you can see the 20 most common user search queries, how many times those \n"
|
| 124 |
+
"\t\tqueries were made and how many results were found for those queries."
|
| 125 |
+
msgstr ""
|
| 126 |
+
"Aici puteți vizualiza cele mai utilizate 20 de căutări ale utilizatorilor, de câte ori aceste \n"
|
| 127 |
+
"\t\tcăutări au fost rulate și câte rezultate au fost descoperite prin rularea lor."
|
| 128 |
+
|
| 129 |
+
#: relevanssi.php:3786
|
| 130 |
+
#: relevanssi.php:3802
|
| 131 |
+
#: ../relevanssi/relevanssi.php:2776
|
| 132 |
+
#: ../relevanssi/relevanssi.php:2792
|
| 133 |
+
msgid "Today and yesterday"
|
| 134 |
+
msgstr "Astăzi și ieri"
|
| 135 |
+
|
| 136 |
+
#: relevanssi.php:3790
|
| 137 |
+
#: relevanssi.php:3806
|
| 138 |
+
#: ../relevanssi/relevanssi.php:2780
|
| 139 |
+
#: ../relevanssi/relevanssi.php:2796
|
| 140 |
+
msgid "Last 7 days"
|
| 141 |
+
msgstr "Ultimele 7 zile"
|
| 142 |
+
|
| 143 |
+
#: relevanssi.php:3794
|
| 144 |
+
#: relevanssi.php:3810
|
| 145 |
+
#: ../relevanssi/relevanssi.php:2784
|
| 146 |
+
#: ../relevanssi/relevanssi.php:2800
|
| 147 |
+
msgid "Last 30 days"
|
| 148 |
+
msgstr "Ultimele 30 de zile"
|
| 149 |
+
|
| 150 |
+
#: relevanssi.php:3799
|
| 151 |
+
#: ../relevanssi/relevanssi.php:2789
|
| 152 |
+
msgid "Unsuccessful Queries"
|
| 153 |
+
msgstr "Căutări eșuate"
|
| 154 |
+
|
| 155 |
+
#: relevanssi.php:4125
|
| 156 |
+
#: relevanssi.php:4152
|
| 157 |
+
#: ../relevanssi/relevanssi.php:3048
|
| 158 |
+
#: ../relevanssi/relevanssi.php:3075
|
| 159 |
+
msgid "Basic options"
|
| 160 |
+
msgstr "Opțiuni de bază"
|
| 161 |
+
|
| 162 |
+
#: relevanssi.php:4126
|
| 163 |
+
#: relevanssi.php:4214
|
| 164 |
+
msgid "Weights"
|
| 165 |
+
msgstr "Greutăți"
|
| 166 |
+
|
| 167 |
+
#: relevanssi.php:4127
|
| 168 |
+
#: relevanssi.php:4307
|
| 169 |
+
#: ../relevanssi/relevanssi.php:3049
|
| 170 |
+
#: ../relevanssi/relevanssi.php:3138
|
| 171 |
+
msgid "Logs"
|
| 172 |
+
msgstr "Jurnale"
|
| 173 |
+
|
| 174 |
+
#: relevanssi.php:4128
|
| 175 |
+
#: relevanssi.php:4324
|
| 176 |
+
#: ../relevanssi/relevanssi.php:3050
|
| 177 |
+
#: ../relevanssi/relevanssi.php:3152
|
| 178 |
+
msgid "Exclusions and restrictions"
|
| 179 |
+
msgstr "Excluderi și restricții"
|
| 180 |
+
|
| 181 |
+
#: relevanssi.php:4129
|
| 182 |
+
#: ../relevanssi/relevanssi.php:3051
|
| 183 |
+
msgid "Custom excerpts"
|
| 184 |
+
msgstr "Rezumate personalizate"
|
| 185 |
+
|
| 186 |
+
#: relevanssi.php:4130
|
| 187 |
+
#: ../relevanssi/relevanssi.php:3052
|
| 188 |
+
msgid "Highlighting search results"
|
| 189 |
+
msgstr "Evidențierea rezultatelor căutării"
|
| 190 |
+
|
| 191 |
+
#: relevanssi.php:4131
|
| 192 |
+
#: relevanssi.php:4460
|
| 193 |
+
#: ../relevanssi/relevanssi.php:3053
|
| 194 |
+
#: ../relevanssi/relevanssi.php:3282
|
| 195 |
+
msgid "Indexing options"
|
| 196 |
+
msgstr "Opțiuni de indexare"
|
| 197 |
+
|
| 198 |
+
#: relevanssi.php:4132
|
| 199 |
+
#: relevanssi.php:4607
|
| 200 |
+
#: ../relevanssi/relevanssi.php:3054
|
| 201 |
+
#: ../relevanssi/relevanssi.php:3381
|
| 202 |
+
msgid "Caching"
|
| 203 |
+
msgstr "Utilizare cache"
|
| 204 |
+
|
| 205 |
+
#: relevanssi.php:4133
|
| 206 |
+
#: relevanssi.php:4630
|
| 207 |
+
#: ../relevanssi/relevanssi.php:3055
|
| 208 |
+
#: ../relevanssi/relevanssi.php:3404
|
| 209 |
+
msgid "Synonyms"
|
| 210 |
+
msgstr "Sinonime"
|
| 211 |
+
|
| 212 |
+
#: relevanssi.php:4134
|
| 213 |
+
#: relevanssi.php:4638
|
| 214 |
+
#: ../relevanssi/relevanssi.php:3056
|
| 215 |
+
#: ../relevanssi/relevanssi.php:3412
|
| 216 |
+
msgid "Stopwords"
|
| 217 |
+
msgstr "Cuvinte ignorate"
|
| 218 |
+
|
| 219 |
+
#: relevanssi.php:4135
|
| 220 |
+
msgid "Import/export options"
|
| 221 |
+
msgstr "Import/export opțiuni"
|
| 222 |
+
|
| 223 |
+
#: relevanssi.php:4138
|
| 224 |
+
#: ../relevanssi/relevanssi.php:3061
|
| 225 |
+
msgid "Quick tools"
|
| 226 |
+
msgstr "Unelte rapide"
|
| 227 |
+
|
| 228 |
+
#: relevanssi.php:4140
|
| 229 |
+
#: ../relevanssi/relevanssi.php:3063
|
| 230 |
+
msgid "Save options"
|
| 231 |
+
msgstr "Salvare opțiuni"
|
| 232 |
+
|
| 233 |
+
#: relevanssi.php:4141
|
| 234 |
+
#: ../relevanssi/relevanssi.php:3064
|
| 235 |
+
msgid "Build the index"
|
| 236 |
+
msgstr "Construire index"
|
| 237 |
+
|
| 238 |
+
#: relevanssi.php:4142
|
| 239 |
+
#: relevanssi.php:4605
|
| 240 |
+
#: ../relevanssi/relevanssi.php:3065
|
| 241 |
+
#: ../relevanssi/relevanssi.php:3379
|
| 242 |
+
msgid "Continue indexing"
|
| 243 |
+
msgstr "Continuare indexare"
|
| 244 |
+
|
| 245 |
+
#: relevanssi.php:4142
|
| 246 |
+
#: ../relevanssi/relevanssi.php:3065
|
| 247 |
+
msgid "add"
|
| 248 |
+
msgstr "adăugare"
|
| 249 |
+
|
| 250 |
+
#: relevanssi.php:4142
|
| 251 |
+
#: ../relevanssi/relevanssi.php:3065
|
| 252 |
+
msgid "documents."
|
| 253 |
+
msgstr "documente."
|
| 254 |
+
|
| 255 |
+
#: relevanssi.php:4144
|
| 256 |
+
#: ../relevanssi/relevanssi.php:3067
|
| 257 |
+
msgid "Use 'Build the index' to build the index with current <a href='#indexing'>indexing options</a>. If you can't finish indexing with one go, use 'Continue indexing' to finish the job. You can change the number of documents to add until you find the largest amount you can add with one go. See 'State of the Index' below to find out how many documents actually go into the index."
|
| 258 |
+
msgstr "Utilizați „Construire index” pentru a construi indexul folosind <a href='#indexing'>opțiunile curente</a>. Dacă nu puteți finaliza indexarea dintr-o singură rulare folosiți „Continuare indexare” pentru a finaliza indexul. Puteți midifica numărul de documente care sunt adăugate până aflați numărul maxim de documente pe care îl puteți indexa la o rulare. Verificați „Starea indexului” pentru a vedea câte documente au intrat în index la orice moment de timp."
|
| 259 |
+
|
| 260 |
+
#: relevanssi.php:4146
|
| 261 |
+
#: ../relevanssi/relevanssi.php:3069
|
| 262 |
+
msgid "State of the Index"
|
| 263 |
+
msgstr "Starea indexului"
|
| 264 |
+
|
| 265 |
+
#: relevanssi.php:4148
|
| 266 |
+
#: ../relevanssi/relevanssi.php:3071
|
| 267 |
+
msgid "Documents in the index"
|
| 268 |
+
msgstr "Documente în index"
|
| 269 |
+
|
| 270 |
+
#: relevanssi.php:4149
|
| 271 |
+
#: ../relevanssi/relevanssi.php:3072
|
| 272 |
+
msgid "Highest post ID indexed"
|
| 273 |
+
msgstr "Cel mai mare ID de document din index"
|
| 274 |
+
|
| 275 |
+
#: relevanssi.php:4154
|
| 276 |
+
msgid "API key:"
|
| 277 |
+
msgstr "Cheie API:"
|
| 278 |
+
|
| 279 |
+
#: relevanssi.php:4156
|
| 280 |
+
msgid "API key is required to use the automatic update feature. Get yours from Relevanssi.com."
|
| 281 |
+
msgstr "Cheia API este necesară atunci când se utilizează facilitatea de upgrade automat. Obțineți una de la Relevanssi.com."
|
| 282 |
+
|
| 283 |
+
#: relevanssi.php:4160
|
| 284 |
+
#: ../relevanssi/relevanssi.php:3092
|
| 285 |
+
msgid "Use search for admin:"
|
| 286 |
+
msgstr "Utilizare căutări în admin:"
|
| 287 |
+
|
| 288 |
+
#: relevanssi.php:4162
|
| 289 |
+
#: ../relevanssi/relevanssi.php:3094
|
| 290 |
+
msgid "If checked, Relevanssi will be used for searches in the admin interface"
|
| 291 |
+
msgstr "Dacă opțiunea este bifată, Relevanssi va fi folosit pentru căutări în interfața de administrare"
|
| 292 |
+
|
| 293 |
+
#: relevanssi.php:4166
|
| 294 |
+
#: ../relevanssi/relevanssi.php:3098
|
| 295 |
+
msgid "Default operator for the search?"
|
| 296 |
+
msgstr "Operatorul implicit pentru căutare?"
|
| 297 |
+
|
| 298 |
+
#: relevanssi.php:4168
|
| 299 |
+
#: ../relevanssi/relevanssi.php:3100
|
| 300 |
+
msgid "AND - require all terms"
|
| 301 |
+
msgstr "ȘI - toți termenii sunt necesari"
|
| 302 |
+
|
| 303 |
+
#: relevanssi.php:4169
|
| 304 |
+
#: ../relevanssi/relevanssi.php:3101
|
| 305 |
+
msgid "OR - any term present is enough"
|
| 306 |
+
msgstr "SAU - un singur termen este suficient"
|
| 307 |
+
|
| 308 |
+
#: relevanssi.php:4171
|
| 309 |
+
#: ../relevanssi/relevanssi.php:3103
|
| 310 |
+
msgid "If you choose AND and the search finds no matches, it will automatically do an OR search."
|
| 311 |
+
msgstr "Dacă selectați operatorul ȘI și căutarea nu produce rezultate, atunci se va efectua în mod automat o altă căutare cu operatorul SAU."
|
| 312 |
+
|
| 313 |
+
#: relevanssi.php:4175
|
| 314 |
+
#: ../relevanssi/relevanssi.php:3107
|
| 315 |
+
msgid "Disable OR fallback:"
|
| 316 |
+
msgstr "Invalidarea folosirii lui SAU ca operator de rezervă:"
|
| 317 |
+
|
| 318 |
+
#: relevanssi.php:4177
|
| 319 |
+
#: ../relevanssi/relevanssi.php:3109
|
| 320 |
+
msgid "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."
|
| 321 |
+
msgstr "Dacă nu doriți ca Relevanssi să efectueze căutarea cu operatorul de rezervă SAU atunci când operatorul ȘI nu produce rezultate, bifați această opțiune. În cele mai multe cazuri această opțiune rămâne nebifată."
|
| 322 |
+
|
| 323 |
+
#: relevanssi.php:4181
|
| 324 |
+
#: ../relevanssi/relevanssi.php:3113
|
| 325 |
+
msgid "Default order for results:"
|
| 326 |
+
msgstr "Odinea implicită pentru rezultate:"
|
| 327 |
+
|
| 328 |
+
#: relevanssi.php:4183
|
| 329 |
+
#: ../relevanssi/relevanssi.php:3115
|
| 330 |
+
msgid "Relevance (highly recommended)"
|
| 331 |
+
msgstr "Relevanță (foarte recomandat)"
|
| 332 |
+
|
| 333 |
+
#: relevanssi.php:4184
|
| 334 |
+
#: ../relevanssi/relevanssi.php:3116
|
| 335 |
+
msgid "Post date"
|
| 336 |
+
msgstr "Dată publicate"
|
| 337 |
+
|
| 338 |
+
#: relevanssi.php:4186
|
| 339 |
+
msgid "If you want date-based results, you really should do what <a href='http://www.relevanssi.com/knowledge-base/relevanssi-match/'>this knowledge base entry</a> says instead of changing this option."
|
| 340 |
+
msgstr "Dacă doriți rezultate ordonate după dată, ar trebui <a href='http://www.relevanssi.com/knowledge-base/relevanssi-match/'>să citiți acest articol (în engleză)</a>"
|
| 341 |
+
|
| 342 |
+
#: relevanssi.php:4190
|
| 343 |
+
#: ../relevanssi/relevanssi.php:3121
|
| 344 |
+
msgid "When to use fuzzy matching?"
|
| 345 |
+
msgstr "Când să se utilizeze căutarea aproximativă?"
|
| 346 |
+
|
| 347 |
+
#: relevanssi.php:4192
|
| 348 |
+
#: ../relevanssi/relevanssi.php:3123
|
| 349 |
+
msgid "When straight search gets no hits"
|
| 350 |
+
msgstr "Atunci când căutarea simplă nu produce nici un rezultat."
|
| 351 |
+
|
| 352 |
+
#: relevanssi.php:4193
|
| 353 |
+
#: ../relevanssi/relevanssi.php:3124
|
| 354 |
+
msgid "Always"
|
| 355 |
+
msgstr "Întotdeauna"
|
| 356 |
+
|
| 357 |
+
#: relevanssi.php:4194
|
| 358 |
+
#: ../relevanssi/relevanssi.php:3125
|
| 359 |
+
msgid "Don't use fuzzy search"
|
| 360 |
+
msgstr "Nu folosi căutări aproximative."
|
| 361 |
+
|
| 362 |
+
#: relevanssi.php:4196
|
| 363 |
+
#: ../relevanssi/relevanssi.php:3127
|
| 364 |
+
msgid "Straight search matches just the term. Fuzzy search matches everything that begins or ends with the search term."
|
| 365 |
+
msgstr "Căutarea simplă identifică numai termenul căutat. Căutarea aproximativă identifică termenul căutat și orice alte cuvinte care încep sau se termină cu termenul căutat."
|
| 366 |
+
|
| 367 |
+
#: relevanssi.php:4200
|
| 368 |
+
msgid "How to index internal links:"
|
| 369 |
+
msgstr "Cum se indexează linkurile interne?"
|
| 370 |
+
|
| 371 |
+
#: relevanssi.php:4202
|
| 372 |
+
msgid "No special processing for internal links"
|
| 373 |
+
msgstr "Nu se procesează în mod special linkurile interne"
|
| 374 |
+
|
| 375 |
+
#: relevanssi.php:4203
|
| 376 |
+
msgid "Index internal links for target documents only"
|
| 377 |
+
msgstr "Indexare linkuri interne numai pentru documentele țintă"
|
| 378 |
+
|
| 379 |
+
#: relevanssi.php:4204
|
| 380 |
+
msgid "Index internal links for both target and source"
|
| 381 |
+
msgstr "Indexare linkuri interne atât pentru sursă cât și pentru țintă"
|
| 382 |
+
|
| 383 |
+
#: relevanssi.php:4206
|
| 384 |
+
msgid "Internal link anchor tags can be indexed for target document (so the text will match the document the link points to), both target and source or source only (with no extra significance for the links). See Relevanssi Knowledge Base for more details. Changing this option requires reindexing."
|
| 385 |
+
msgstr "Etichetele linkurilor interne pot fi folosite la indexarea documentelor țintă (textul va fi luat în considerare pentru documentul țintă), pentru ambele documente sursă și țintă sau numai pentru sursă (moment în care linkul nu mai contează). Vedeți Knowledge Base de la relevanssi.com pentru mai multe detalii. Schimbarea acestei opțiuni are efect numai după reindexare."
|
| 386 |
+
|
| 387 |
+
#: relevanssi.php:4210
|
| 388 |
+
msgid "Limit searches:"
|
| 389 |
+
msgstr "Limitare căutări:"
|
| 390 |
+
|
| 391 |
+
#: relevanssi.php:4212
|
| 392 |
+
msgid "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 priorize the most relevant documents."
|
| 393 |
+
msgstr "Dacă această opțiune este bifată, Relevanssi va limita rezultatele la cel mult 500 pentru fiecare termen de căutare. Aceasta va îmbunătăți performanța, însă multe din documentele relevante nu vor fi găsite. Cu toate acestea Relevanssi urmărește să prioritizeze cele mai relevante documente."
|
| 394 |
+
|
| 395 |
+
#: relevanssi.php:4216
|
| 396 |
+
#: ../relevanssi/relevanssi.php:3077
|
| 397 |
+
msgid "These values affect the weights of the documents. These are all multipliers, so 1 means no change in weight, less than 1 means less weight, and more than 1 means more weight. Setting something to zero makes that worthless. For example, if title weight is more than 1, words in titles are more significant than words elsewhere. If title weight is 0, words in titles won't make any difference to the search results."
|
| 398 |
+
msgstr "Aceste valori afectează greutatea documentelor. Aceste valori sunt toate multiplicatori, prin urmare 1 înseamnă că greutatea rămâne neschimbată, o valoare mai mare decât 1 înseamnă creșterea greutății. Setând o valoare cu zero face acel criteriu nesemnificativ."
|
| 399 |
+
|
| 400 |
+
#: relevanssi.php:4221
|
| 401 |
+
msgid "Element"
|
| 402 |
+
msgstr "Element"
|
| 403 |
+
|
| 404 |
+
#: relevanssi.php:4222
|
| 405 |
+
msgid "Weight"
|
| 406 |
+
msgstr "Greutate"
|
| 407 |
+
|
| 408 |
+
#: relevanssi.php:4223
|
| 409 |
+
msgid "Default weight"
|
| 410 |
+
msgstr "Greutatea implicită"
|
| 411 |
+
|
| 412 |
+
#: relevanssi.php:4228
|
| 413 |
+
msgid "Post titles"
|
| 414 |
+
msgstr "Titlu document"
|
| 415 |
+
|
| 416 |
+
#: relevanssi.php:4239
|
| 417 |
+
msgid "Tags"
|
| 418 |
+
msgstr "Etichete"
|
| 419 |
+
|
| 420 |
+
#: relevanssi.php:4250
|
| 421 |
+
msgid "Internal links"
|
| 422 |
+
msgstr "Linkuri interne"
|
| 423 |
+
|
| 424 |
+
#: relevanssi.php:4261
|
| 425 |
+
msgid "Comment text"
|
| 426 |
+
msgstr "Text comentariu"
|
| 427 |
+
|
| 428 |
+
#: relevanssi.php:4281
|
| 429 |
+
#, php-format
|
| 430 |
+
msgid "Post type '%s':"
|
| 431 |
+
msgstr "Tip document '%s':"
|
| 432 |
+
|
| 433 |
+
#: relevanssi.php:4299
|
| 434 |
+
#: ../relevanssi/relevanssi.php:3130
|
| 435 |
+
msgid "WPML compatibility"
|
| 436 |
+
msgstr "Compatibilitate WPML"
|
| 437 |
+
|
| 438 |
+
#: relevanssi.php:4301
|
| 439 |
+
#: ../relevanssi/relevanssi.php:3132
|
| 440 |
+
msgid "Limit results to current language:"
|
| 441 |
+
msgstr "Limitare rezultate la limba curentă:"
|
| 442 |
+
|
| 443 |
+
#: relevanssi.php:4303
|
| 444 |
+
#: ../relevanssi/relevanssi.php:3134
|
| 445 |
+
msgid "If this option is checked, Relevanssi will only return results in the current active language. Otherwise results will include posts in every language."
|
| 446 |
+
msgstr "Dacă această opțiune este bifată, Relevanssi va returna numai rezultatele în limba curentă. Altfel se vor returna rezultatele din toate limbile instalate."
|
| 447 |
+
|
| 448 |
+
#: relevanssi.php:4309
|
| 449 |
+
#: ../relevanssi/relevanssi.php:3140
|
| 450 |
+
msgid "Keep a log of user queries:"
|
| 451 |
+
msgstr "Păstrează un jurnal cu căutările utilizatorilor:"
|
| 452 |
+
|
| 453 |
+
#: relevanssi.php:4311
|
| 454 |
+
#: ../relevanssi/relevanssi.php:3142
|
| 455 |
+
msgid "If checked, Relevanssi will log user queries. The log appears in 'User searches' on the Dashboard admin menu."
|
| 456 |
+
msgstr "Dacă această opțiune este bifată, atunci Relevanssi va jurnaliza căutările utilizatorilor. Jurnalul va apare în meniul „Căutari utilizatori” din Panoul de control."
|
| 457 |
+
|
| 458 |
+
#: relevanssi.php:4315
|
| 459 |
+
#: ../relevanssi/relevanssi.php:3146
|
| 460 |
+
msgid "Don't log queries from these users:"
|
| 461 |
+
msgstr "Nu jurnaliza căutările următorilor utilizatori:"
|
| 462 |
+
|
| 463 |
+
#: relevanssi.php:4317
|
| 464 |
+
#: ../relevanssi/relevanssi.php:3148
|
| 465 |
+
msgid "Comma-separated list of user ids that will not be logged."
|
| 466 |
+
msgstr "Lisă separată cu virgule a ID-urilor utilizatorilor care nu vor fi jurnalizați."
|
| 467 |
+
|
| 468 |
+
#: relevanssi.php:4319
|
| 469 |
+
#: ../relevanssi/relevanssi.php:3150
|
| 470 |
+
msgid "If you enable logs, you can see what your users are searching for. Logs are also needed to use the 'Did you mean?' feature. You can prevent your own searches from getting in the logs with the omit feature."
|
| 471 |
+
msgstr "Dacă permiteți jurnalizarea puteți afla ce anume caută utilizatorii. Jurnalele sunt de asemenea utilizate în funcția „Ați vrut să căutați...”. Puteți preveni ca propriile dumneavoastră căutări să fie incluse în jurnal prin folosirea funcției de excludere."
|
| 472 |
+
|
| 473 |
+
#: relevanssi.php:4321
|
| 474 |
+
msgid "Don't show Relevanssi branding on the 'User Searches' screen:"
|
| 475 |
+
msgstr "Nu afișa logo Relevanssi în ecranul de „Căuterile utilizatorilor”:"
|
| 476 |
+
|
| 477 |
+
#: relevanssi.php:4326
|
| 478 |
+
#: ../relevanssi/relevanssi.php:3154
|
| 479 |
+
msgid "Restrict search to these categories and tags:"
|
| 480 |
+
msgstr "Restricționare căutări numai la aceste categorii și etichete:"
|
| 481 |
+
|
| 482 |
+
#: relevanssi.php:4328
|
| 483 |
+
#: ../relevanssi/relevanssi.php:3156
|
| 484 |
+
msgid "Enter a comma-separated list of category and tag IDs to restrict search to those categories or tags. You can also use <code><input type='hidden' name='cat' value='list of cats and tags' /></code> in your search form. The input field will \toverrun this setting."
|
| 485 |
+
msgstr "Introduceți o listă separată prin virgule a ID-urilor categoriilor și etichetelor de restricționat la căutare. Puteți folosi și <code><input type='hidden' name='cat' value='listă categorii și etichete' /></code> în formularul de căutare. Valorile introduse aici vor suprascrie valorile din formularul de căutare."
|
| 486 |
+
|
| 487 |
+
#: relevanssi.php:4332
|
| 488 |
+
#: ../relevanssi/relevanssi.php:3160
|
| 489 |
+
msgid "Exclude these categories and tags from search:"
|
| 490 |
+
msgstr "Excludere categorii și etichete din căutări:"
|
| 491 |
+
|
| 492 |
+
#: relevanssi.php:4334
|
| 493 |
+
msgid "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."
|
| 494 |
+
msgstr "Introduceți o listă separată prin virgule cu ID-urile categoriilor și a etichetelor care să fie excluse din rezultatele căutării. Mai puteți exclude categorii prin listarea categoriilor de căutat în câmpul corespunzător, punând semnul minus înainte de ID-ul categoriei."
|
| 495 |
+
|
| 496 |
+
#: relevanssi.php:4338
|
| 497 |
+
#: ../relevanssi/relevanssi.php:3166
|
| 498 |
+
msgid "Exclude these posts/pages from search:"
|
| 499 |
+
msgstr "Excludere pagini/articole din căutări:"
|
| 500 |
+
|
| 501 |
+
#: relevanssi.php:4340
|
| 502 |
+
msgid "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."
|
| 503 |
+
msgstr "Introduceți o listă separată prin virgule a ID-urilor documentelor care doriți să fie excluse din lista de rezultate. Puteți utiliza și opțiunea din ecranul de editare a documentelor pentru a le elimina, în mod individual, din index."
|
| 504 |
+
|
| 505 |
+
#: relevanssi.php:4344
|
| 506 |
+
#: ../relevanssi/relevanssi.php:3172
|
| 507 |
+
msgid "Respect exclude_from_search for custom post types:"
|
| 508 |
+
msgstr "Respectă atributul <i>exclude_from_search</i> așa cum este definit la tipurile personalizate de articole:"
|
| 509 |
+
|
| 510 |
+
#: relevanssi.php:4346
|
| 511 |
+
#: ../relevanssi/relevanssi.php:3174
|
| 512 |
+
msgid "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."
|
| 513 |
+
msgstr "Dacă opțiunea este bifată Relevanssi nu va afișa articolele din tipurile de articole care au atributul <i>exclude_from_search</i> cu valoarea true. Dacă opțiunea nu este bifată, Relevanssi va afișa orice găsește în index."
|
| 514 |
+
|
| 515 |
+
#: relevanssi.php:4348
|
| 516 |
+
#: ../relevanssi/relevanssi.php:3176
|
| 517 |
+
msgid "Custom excerpts/snippets"
|
| 518 |
+
msgstr "Rezumate/fragmente personalizate"
|
| 519 |
+
|
| 520 |
+
#: relevanssi.php:4350
|
| 521 |
+
#: ../relevanssi/relevanssi.php:3178
|
| 522 |
+
msgid "Create custom search result snippets:"
|
| 523 |
+
msgstr "Creare fragmente personalizate pentru rezultatele căutării:"
|
| 524 |
+
|
| 525 |
+
#: relevanssi.php:4352
|
| 526 |
+
#: ../relevanssi/relevanssi.php:3180
|
| 527 |
+
msgid "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."
|
| 528 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va crea rezumate care conțin termenii de căutare găsiți în document. Pentru a funcționa verificați dacă macheta de afișare a rezultatelor căutărilor folosește funcția <code>the_excerpt()</code> pentru afișarea rezumatelor."
|
| 529 |
+
|
| 530 |
+
#: relevanssi.php:4356
|
| 531 |
+
#: ../relevanssi/relevanssi.php:3184
|
| 532 |
+
msgid "Length of the snippet:"
|
| 533 |
+
msgstr "Lungimea fragmentului:"
|
| 534 |
+
|
| 535 |
+
#: relevanssi.php:4359
|
| 536 |
+
#: ../relevanssi/relevanssi.php:3187
|
| 537 |
+
msgid "characters"
|
| 538 |
+
msgstr "caractere"
|
| 539 |
+
|
| 540 |
+
#: relevanssi.php:4360
|
| 541 |
+
#: ../relevanssi/relevanssi.php:3188
|
| 542 |
+
msgid "words"
|
| 543 |
+
msgstr "cuvinte"
|
| 544 |
+
|
| 545 |
+
#: relevanssi.php:4362
|
| 546 |
+
#: ../relevanssi/relevanssi.php:3190
|
| 547 |
+
msgid "This must be an integer."
|
| 548 |
+
msgstr "Această valoare trebuie să fie un număr întreg."
|
| 549 |
+
|
| 550 |
+
#: relevanssi.php:4366
|
| 551 |
+
#: ../relevanssi/relevanssi.php:3194
|
| 552 |
+
msgid "Show breakdown of search hits in excerpts:"
|
| 553 |
+
msgstr "Afișare structură rezultate căutare în rezumate:"
|
| 554 |
+
|
| 555 |
+
#: relevanssi.php:4368
|
| 556 |
+
#: ../relevanssi/relevanssi.php:3196
|
| 557 |
+
msgid "Check this to show more information on where the search hits were made. Requires custom snippets to work."
|
| 558 |
+
msgstr "Bifați această opțiune pentru a afișa mai multe informații în rezultatele căutărilor. Necesită fragmente personalizate pentru a funcționa."
|
| 559 |
+
|
| 560 |
+
#: relevanssi.php:4372
|
| 561 |
+
#: ../relevanssi/relevanssi.php:3200
|
| 562 |
+
msgid "The breakdown format:"
|
| 563 |
+
msgstr "Formatul structurii:"
|
| 564 |
+
|
| 565 |
+
#: relevanssi.php:4374
|
| 566 |
+
#: ../relevanssi/relevanssi.php:3202
|
| 567 |
+
msgid "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!"
|
| 568 |
+
msgstr "Utilizați %body%, %title%, %tags% și %comments% pentru a afișa numărul de rezultate (în diverse locuri ale documentului), %total% pentru numărul total de rezultate, %score% pentru afișarea greutății documentului, %terms% pentru afișarea numărului rezultatelor pentru fiecare termen de căutare. Nu se permit glilimele duble (\")!"
|
| 569 |
+
|
| 570 |
+
#: relevanssi.php:4376
|
| 571 |
+
#: ../relevanssi/relevanssi.php:3204
|
| 572 |
+
msgid "Search hit highlighting"
|
| 573 |
+
msgstr "Evidențiere termeni căutați în rezultate"
|
| 574 |
+
|
| 575 |
+
#: relevanssi.php:4378
|
| 576 |
+
#: ../relevanssi/relevanssi.php:3206
|
| 577 |
+
msgid "First, choose the type of highlighting used:"
|
| 578 |
+
msgstr "La început, alegeți tipul de evidențiere utilizat:"
|
| 579 |
+
|
| 580 |
+
#: relevanssi.php:4381
|
| 581 |
+
#: ../relevanssi/relevanssi.php:3209
|
| 582 |
+
msgid "Highlight query terms in search results:"
|
| 583 |
+
msgstr "Evidențierea termenilor căutați în rezultate:"
|
| 584 |
+
|
| 585 |
+
#: relevanssi.php:4383
|
| 586 |
+
#: ../relevanssi/relevanssi.php:3211
|
| 587 |
+
msgid "No highlighting"
|
| 588 |
+
msgstr "Fără evidențiere"
|
| 589 |
+
|
| 590 |
+
#: relevanssi.php:4387
|
| 591 |
+
#: ../relevanssi/relevanssi.php:3215
|
| 592 |
+
msgid "Text color"
|
| 593 |
+
msgstr "Text colorat"
|
| 594 |
+
|
| 595 |
+
#: relevanssi.php:4388
|
| 596 |
+
#: ../relevanssi/relevanssi.php:3216
|
| 597 |
+
msgid "Background color"
|
| 598 |
+
msgstr "Fundal colorat"
|
| 599 |
+
|
| 600 |
+
#: relevanssi.php:4389
|
| 601 |
+
#: ../relevanssi/relevanssi.php:3217
|
| 602 |
+
msgid "CSS Style"
|
| 603 |
+
msgstr "Stil CSS"
|
| 604 |
+
|
| 605 |
+
#: relevanssi.php:4390
|
| 606 |
+
#: ../relevanssi/relevanssi.php:3218
|
| 607 |
+
msgid "CSS Class"
|
| 608 |
+
msgstr "Clasa CSS"
|
| 609 |
+
|
| 610 |
+
#: relevanssi.php:4392
|
| 611 |
+
#: ../relevanssi/relevanssi.php:3220
|
| 612 |
+
msgid "Highlighting isn't available unless you use custom snippets"
|
| 613 |
+
msgstr "Evidențierea nu este disponibilă decât dacă utilizați fragmente personalizate"
|
| 614 |
+
|
| 615 |
+
#: relevanssi.php:4396
|
| 616 |
+
#: ../relevanssi/relevanssi.php:3224
|
| 617 |
+
msgid "Highlight query terms in result titles too:"
|
| 618 |
+
msgstr "Evidențierea termenilor de căutare și în titluri:"
|
| 619 |
+
|
| 620 |
+
#: relevanssi.php:4402
|
| 621 |
+
msgid "Highlight query terms in documents from local searches:"
|
| 622 |
+
msgstr "Evidențierea termenilor de căutare în documente pentru căutările locale:"
|
| 623 |
+
|
| 624 |
+
#: relevanssi.php:4404
|
| 625 |
+
#: ../relevanssi/relevanssi.php:3232
|
| 626 |
+
msgid "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."
|
| 627 |
+
msgstr "Evidențierea se face atunci când utilizatorul deschide un rezultat din lista de rezultate ale unei căutări. Această funcționalitate se bazează pe HTTP referrer, prin urmare dacă acesta este blocat nu va apare nici o evidențiere."
|
| 628 |
+
|
| 629 |
+
#: relevanssi.php:4408
|
| 630 |
+
msgid "Highlight query terms in documents from external searches:"
|
| 631 |
+
msgstr "Evidențierea termenilor de căutare în documente și pentru căutările externe:"
|
| 632 |
+
|
| 633 |
+
#: relevanssi.php:4410
|
| 634 |
+
msgid "Highlights hits when user arrives from external search. Currently supports Google, Bing, Ask, Yahoo and AOL Search."
|
| 635 |
+
msgstr "Se evidențiază termenii căutați atunci când căutarea este efectuată extern. Sunt suportate Google, Bing, Ask, Yahoo și AOL."
|
| 636 |
+
|
| 637 |
+
#: relevanssi.php:4414
|
| 638 |
+
#: ../relevanssi/relevanssi.php:3236
|
| 639 |
+
msgid "Highlight query terms in comments:"
|
| 640 |
+
msgstr "Evidențierea termenilor de căutare în comentarii:"
|
| 641 |
+
|
| 642 |
+
#: relevanssi.php:4416
|
| 643 |
+
#: ../relevanssi/relevanssi.php:3238
|
| 644 |
+
msgid "Highlights hits in comments when user opens the post from search results."
|
| 645 |
+
msgstr "Evidențierea în comentarii are loc atunci când utilizatorul deschide documentul din lista de rezultate ale căutării."
|
| 646 |
+
|
| 647 |
+
#: relevanssi.php:4420
|
| 648 |
+
#: ../relevanssi/relevanssi.php:3242
|
| 649 |
+
msgid "Uncheck this if you use non-ASCII characters:"
|
| 650 |
+
msgstr "Debifați dacă utilizați caractere non-ASCII:"
|
| 651 |
+
|
| 652 |
+
#: relevanssi.php:4422
|
| 653 |
+
#: ../relevanssi/relevanssi.php:3244
|
| 654 |
+
msgid "If you use non-ASCII characters (like Cyrillic alphabet) and the highlights don't work, uncheck this option to make highlights work."
|
| 655 |
+
msgstr "Dacă utilizați caractere non-ASCII (ex. alfabet chirilic) și doriți ca evidențierea termenilor să funcționeze trebuie să debifați această opțiune."
|
| 656 |
+
|
| 657 |
+
#: relevanssi.php:4427
|
| 658 |
+
#: ../relevanssi/relevanssi.php:3249
|
| 659 |
+
msgid "Then adjust the settings for your chosen type:"
|
| 660 |
+
msgstr "Apoi ajustați setările pentru tipul ales:"
|
| 661 |
+
|
| 662 |
+
#: relevanssi.php:4431
|
| 663 |
+
#: ../relevanssi/relevanssi.php:3253
|
| 664 |
+
msgid "Text color for highlights:"
|
| 665 |
+
msgstr "Culoare text pentru evidențiere:"
|
| 666 |
+
|
| 667 |
+
#: relevanssi.php:4433
|
| 668 |
+
#: relevanssi.php:4439
|
| 669 |
+
#: ../relevanssi/relevanssi.php:3255
|
| 670 |
+
#: ../relevanssi/relevanssi.php:3261
|
| 671 |
+
msgid "Use HTML color codes (#rgb or #rrggbb)"
|
| 672 |
+
msgstr "Utilizare coduri de culori HTML (#rgb sau #rrggbb)"
|
| 673 |
+
|
| 674 |
+
#: relevanssi.php:4437
|
| 675 |
+
#: ../relevanssi/relevanssi.php:3259
|
| 676 |
+
msgid "Background color for highlights:"
|
| 677 |
+
msgstr "Culoare fundal pentru evidențiere:"
|
| 678 |
+
|
| 679 |
+
#: relevanssi.php:4443
|
| 680 |
+
#: ../relevanssi/relevanssi.php:3265
|
| 681 |
+
msgid "CSS style for highlights:"
|
| 682 |
+
msgstr "Stil CSS pentru evidențiere:"
|
| 683 |
+
|
| 684 |
+
#: relevanssi.php:4445
|
| 685 |
+
#: ../relevanssi/relevanssi.php:3267
|
| 686 |
+
msgid "You can use any CSS styling here, style will be inserted with a <span>"
|
| 687 |
+
msgstr "Puteți utiliza orice stil CSS aici, stilurile vor fi inserate cu un <span>"
|
| 688 |
+
|
| 689 |
+
#: relevanssi.php:4449
|
| 690 |
+
#: ../relevanssi/relevanssi.php:3271
|
| 691 |
+
msgid "CSS class for highlights:"
|
| 692 |
+
msgstr "Clasă CSS pentru evidențiere:"
|
| 693 |
+
|
| 694 |
+
#: relevanssi.php:4451
|
| 695 |
+
#: ../relevanssi/relevanssi.php:3273
|
| 696 |
+
msgid "Name a class here, search results will be wrapped in a <span> with the class"
|
| 697 |
+
msgstr "Numiți o clasă CSS aici, rezultatele vor fi învelite într-un <span> cu clasa respectivă"
|
| 698 |
+
|
| 699 |
+
#: relevanssi.php:4458
|
| 700 |
+
#: relevanssi.php:4636
|
| 701 |
+
#: ../relevanssi/relevanssi.php:3280
|
| 702 |
+
#: ../relevanssi/relevanssi.php:3410
|
| 703 |
+
msgid "Save the options"
|
| 704 |
+
msgstr "Salvare opțiuni"
|
| 705 |
+
|
| 706 |
+
#: relevanssi.php:4462
|
| 707 |
+
msgid "Choose post types to index:"
|
| 708 |
+
msgstr "Tipurile de documente de inclus în index:"
|
| 709 |
+
|
| 710 |
+
#: relevanssi.php:4467
|
| 711 |
+
msgid "Type"
|
| 712 |
+
msgstr "Tip"
|
| 713 |
+
|
| 714 |
+
#: relevanssi.php:4468
|
| 715 |
+
msgid "Index"
|
| 716 |
+
msgstr "Index"
|
| 717 |
+
|
| 718 |
+
#: relevanssi.php:4469
|
| 719 |
+
msgid "Public?"
|
| 720 |
+
msgstr "Public?"
|
| 721 |
+
|
| 722 |
+
#: relevanssi.php:4486
|
| 723 |
+
#, php-format
|
| 724 |
+
msgid "%s"
|
| 725 |
+
msgstr "%s"
|
| 726 |
+
|
| 727 |
+
#: relevanssi.php:4487
|
| 728 |
+
msgid "yes"
|
| 729 |
+
msgstr "da"
|
| 730 |
+
|
| 731 |
+
#: relevanssi.php:4487
|
| 732 |
+
msgid "no"
|
| 733 |
+
msgstr "nu"
|
| 734 |
+
|
| 735 |
+
#: relevanssi.php:4508
|
| 736 |
+
#: ../relevanssi/relevanssi.php:3313
|
| 737 |
+
msgid "Minimum word length to index"
|
| 738 |
+
msgstr "Lungimea minimă a cuvintelor de inclus în index"
|
| 739 |
+
|
| 740 |
+
#: relevanssi.php:4510
|
| 741 |
+
#: ../relevanssi/relevanssi.php:3315
|
| 742 |
+
msgid "Words shorter than this number will not be indexed."
|
| 743 |
+
msgstr "Cuvintele cu lungimea mai scurtă decât acest număr nu vor fi indexate."
|
| 744 |
+
|
| 745 |
+
#: relevanssi.php:4514
|
| 746 |
+
msgid "Thousands separator"
|
| 747 |
+
msgstr "Separator mii"
|
| 748 |
+
|
| 749 |
+
#: relevanssi.php:4516
|
| 750 |
+
msgid "If Relevanssi sees this character between numbers, it'll stick the numbers together no matter how the character would otherwise be handled. Especially useful if a space is used as a thousands separator."
|
| 751 |
+
msgstr "Dacă Relevanssi descoperă acest caracter între numere va menține numerele împreună, indiferent de modul în care acest caracter poate fi folosit în alt context. Este util în mod special atunci când se folosește un spațiu liber pe post de separator de mii."
|
| 752 |
+
|
| 753 |
+
#: relevanssi.php:4520
|
| 754 |
+
#: ../relevanssi/relevanssi.php:3325
|
| 755 |
+
msgid "Expand shortcodes in post content:"
|
| 756 |
+
msgstr "Expanadare shortcode-uri în conținut:"
|
| 757 |
+
|
| 758 |
+
#: relevanssi.php:4522
|
| 759 |
+
#: ../relevanssi/relevanssi.php:3327
|
| 760 |
+
msgid "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."
|
| 761 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va expanda shortcode-urile în conținutul documentelor înainte de a le indexa. În caz contrar shortcode-urile vor fi șterse înainte de indexare. Dacă utilizați shortcode-uri pentru a afișa conținut dinamic, Relevanssi nu va menține indexul actualizat în mod automat atunci când respectivul conținut se modifică, ci va reflecta starea găsită la momentul indexării."
|
| 762 |
+
|
| 763 |
+
#: relevanssi.php:4526
|
| 764 |
+
#: ../relevanssi/relevanssi.php:3331
|
| 765 |
+
msgid "Index and search your posts' tags:"
|
| 766 |
+
msgstr "Indexare și căutare după etichete:"
|
| 767 |
+
|
| 768 |
+
#: relevanssi.php:4528
|
| 769 |
+
#: ../relevanssi/relevanssi.php:3333
|
| 770 |
+
msgid "If checked, Relevanssi will also index and search the tags of your posts. Remember to rebuild the index if you change this option!"
|
| 771 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta etichetele documentelor. Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 772 |
+
|
| 773 |
+
#: relevanssi.php:4532
|
| 774 |
+
#: ../relevanssi/relevanssi.php:3337
|
| 775 |
+
msgid "Index and search your posts' categories:"
|
| 776 |
+
msgstr "Indexare și căutare după categorii:"
|
| 777 |
+
|
| 778 |
+
#: relevanssi.php:4534
|
| 779 |
+
#: ../relevanssi/relevanssi.php:3339
|
| 780 |
+
msgid "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!"
|
| 781 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta categoriile documentelor. Titlurile categoriilor vor fi trecute prin filtrul <code>single_cat_title</code>. Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 782 |
+
|
| 783 |
+
#: relevanssi.php:4538
|
| 784 |
+
#: ../relevanssi/relevanssi.php:3343
|
| 785 |
+
msgid "Index and search your posts' authors:"
|
| 786 |
+
msgstr "Indexare și căutare după autor:"
|
| 787 |
+
|
| 788 |
+
#: relevanssi.php:4540
|
| 789 |
+
#: ../relevanssi/relevanssi.php:3345
|
| 790 |
+
msgid "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!"
|
| 791 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și căuta autorii documentelor. Se va indexa numele afișabil al autorului. Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 792 |
+
|
| 793 |
+
#: relevanssi.php:4544
|
| 794 |
+
#: ../relevanssi/relevanssi.php:3349
|
| 795 |
+
msgid "Index and search post excerpts:"
|
| 796 |
+
msgstr "Indexare și căutare după rezumate:"
|
| 797 |
+
|
| 798 |
+
#: relevanssi.php:4546
|
| 799 |
+
#: ../relevanssi/relevanssi.php:3351
|
| 800 |
+
msgid "If checked, Relevanssi will also index and search the excerpts of your posts.Remember to rebuild the index if you change this option!"
|
| 801 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta în rezumatele documentelor. Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 802 |
+
|
| 803 |
+
#: relevanssi.php:4550
|
| 804 |
+
#: ../relevanssi/relevanssi.php:3355
|
| 805 |
+
msgid "Index and search these comments:"
|
| 806 |
+
msgstr "Indexare și căutare în aceste comentarii:"
|
| 807 |
+
|
| 808 |
+
#: relevanssi.php:4552
|
| 809 |
+
#: ../relevanssi/relevanssi.php:3357
|
| 810 |
+
msgid "none"
|
| 811 |
+
msgstr "nici unul"
|
| 812 |
+
|
| 813 |
+
#: relevanssi.php:4553
|
| 814 |
+
#: ../relevanssi/relevanssi.php:3358
|
| 815 |
+
msgid "normal"
|
| 816 |
+
msgstr "normal"
|
| 817 |
+
|
| 818 |
+
#: relevanssi.php:4554
|
| 819 |
+
#: ../relevanssi/relevanssi.php:3359
|
| 820 |
+
msgid "all"
|
| 821 |
+
msgstr "toate"
|
| 822 |
+
|
| 823 |
+
#: relevanssi.php:4556
|
| 824 |
+
#: ../relevanssi/relevanssi.php:3361
|
| 825 |
+
msgid "Relevanssi will index and search ALL (all comments including track- & pingbacks and custom comment types), NONE (no comments) or NORMAL (manually posted comments on your blog).<br />Remember to rebuild the index if you change this option!"
|
| 826 |
+
msgstr "Relevanssi va indexa și va căuta TOTUL (toate comentariile inclusiv trackback-uri, pingback-uri și tipurile personalizate de comentarii), NICI UNUL (nici un comentariu) sau NORMAL (numai comentariile introduse manual în blog).<br />Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 827 |
+
|
| 828 |
+
#: relevanssi.php:4560
|
| 829 |
+
#: ../relevanssi/relevanssi.php:3365
|
| 830 |
+
msgid "Custom fields to index:"
|
| 831 |
+
msgstr "Câmpuri personalizate de indexat:"
|
| 832 |
+
|
| 833 |
+
#: relevanssi.php:4562
|
| 834 |
+
#: ../relevanssi/relevanssi.php:3367
|
| 835 |
+
msgid "A comma-separated list of custom field names to include in the index."
|
| 836 |
+
msgstr "O listă separată prin virgule a numelor câmpurilor personalizate care să fie incluse în index."
|
| 837 |
+
|
| 838 |
+
#: relevanssi.php:4566
|
| 839 |
+
#: ../relevanssi/relevanssi.php:3371
|
| 840 |
+
msgid "Custom taxonomies to index:"
|
| 841 |
+
msgstr "Taxonomii personalizate de indexat:"
|
| 842 |
+
|
| 843 |
+
#: relevanssi.php:4568
|
| 844 |
+
#: ../relevanssi/relevanssi.php:3373
|
| 845 |
+
msgid "A comma-separated list of custom taxonomies to include in the index."
|
| 846 |
+
msgstr "O listă separată prin virgule a taxonomiilor personalizate care să fie incluse în index."
|
| 847 |
+
|
| 848 |
+
#: relevanssi.php:4572
|
| 849 |
+
msgid "Index and search user profiles:"
|
| 850 |
+
msgstr "Indexare și căutare în profilele utilizatorilor:"
|
| 851 |
+
|
| 852 |
+
#: relevanssi.php:4574
|
| 853 |
+
msgid "If checked, Relevanssi will also index and search user profiles (first name, last name, display name and user description). Requires changes to search results template, see Relevanssi Knowledge Base."
|
| 854 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta în profilele utilizatorilor (prenume, nume, nume afișabil, descriere). Afișarea necesită modificări ale machetei de rezultate ale căutării, vedeți Knowledge Base de la relevanssi.com pentru detalii."
|
| 855 |
+
|
| 856 |
+
#: relevanssi.php:4578
|
| 857 |
+
msgid "Index subscriber profiles:"
|
| 858 |
+
msgstr "Indexare și căutare în profilele abonaților:"
|
| 859 |
+
|
| 860 |
+
#: relevanssi.php:4580
|
| 861 |
+
msgid "If checked, Relevanssi will index subscriber profiles as well, otherwise only authors, editors, contributors and admins are indexed."
|
| 862 |
+
msgstr "Dacă opțiunea este bifată Relevansii va indexa și va căuta în profilele abonaților. În caz contrar numai profilele autorilor, contributorilor și a administratorilor sunt indexate."
|
| 863 |
+
|
| 864 |
+
#: relevanssi.php:4584
|
| 865 |
+
msgid "Extra user fields to index:"
|
| 866 |
+
msgstr "Câmpuri profil utilizatori suplimentare de indexat:"
|
| 867 |
+
|
| 868 |
+
#: relevanssi.php:4586
|
| 869 |
+
msgid "A comma-separated list of user profile field names (names of the database columns) to include in the index."
|
| 870 |
+
msgstr "O listă separată prin virgule a numelor câmpurilor din profilul utilizatorilor (nume de coloane din baza de date) care să fie incluse în index."
|
| 871 |
+
|
| 872 |
+
#: relevanssi.php:4590
|
| 873 |
+
msgid "Index and search taxonomy pages:"
|
| 874 |
+
msgstr "Indexare și căutare după paginile taxonomiilor:"
|
| 875 |
+
|
| 876 |
+
#: relevanssi.php:4592
|
| 877 |
+
msgid "If checked, Relevanssi will also index and search taxonomy pages (categories, tags, custom taxonomies)."
|
| 878 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta paginile taxonomiilor (categorii, etichete, taxonomii personalizate). Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 879 |
+
|
| 880 |
+
#: relevanssi.php:4596
|
| 881 |
+
msgid "Taxonomy pages to index:"
|
| 882 |
+
msgstr "Pagini cu taxonomii de indexat:"
|
| 883 |
+
|
| 884 |
+
#: relevanssi.php:4598
|
| 885 |
+
msgid "A comma-separated list of taxonomies to include in the taxonomy page index ('all' indexes all custom taxonomies. If you don't use 'all', remember to list 'category' and 'post_tag')."
|
| 886 |
+
msgstr "O listă separată prin virgule a taxonomiilor care să fie incluse în indexul de pagini de taxonomii ('all' indexează toate taxonomiile. Dacă nu utilizați 'all', nu uitați să adăugați 'category' și 'post_tag' pentru categorii și respectiv etichete)."
|
| 887 |
+
|
| 888 |
+
#: relevanssi.php:4603
|
| 889 |
+
#: ../relevanssi/relevanssi.php:3377
|
| 890 |
+
msgid "Save indexing options and build the index"
|
| 891 |
+
msgstr "Salvare opțiuni și construire index"
|
| 892 |
+
|
| 893 |
+
#: relevanssi.php:4609
|
| 894 |
+
#: ../relevanssi/relevanssi.php:3383
|
| 895 |
+
msgid ""
|
| 896 |
+
"Warning: In many cases caching is not useful, and in some cases can be even harmful. Do not\n"
|
| 897 |
+
"\tactivate cache unless you have a good reason to do so."
|
| 898 |
+
msgstr ""
|
| 899 |
+
"Atenție: în multe cazuri memoria cache nu este utilă, iar uneori poate fi chiar dăunătoare. Nu activați\n"
|
| 900 |
+
"\tmemoria cache decât dacă aveți un motiv clar să o faceți."
|
| 901 |
+
|
| 902 |
+
#: relevanssi.php:4612
|
| 903 |
+
#: ../relevanssi/relevanssi.php:3386
|
| 904 |
+
msgid "Enable result and excerpt caching:"
|
| 905 |
+
msgstr "Permite salvarea în memoria cache a rezultatelor și a rezumatelor:"
|
| 906 |
+
|
| 907 |
+
#: relevanssi.php:4614
|
| 908 |
+
#: ../relevanssi/relevanssi.php:3388
|
| 909 |
+
msgid "If checked, Relevanssi will cache search results and post excerpts."
|
| 910 |
+
msgstr "Dacă opțiunea este bifată, Relevanssi va memora rezultatele și rezumatele în memoria cache."
|
| 911 |
+
|
| 912 |
+
#: relevanssi.php:4618
|
| 913 |
+
#: ../relevanssi/relevanssi.php:3392
|
| 914 |
+
msgid "Cache expire (in seconds):"
|
| 915 |
+
msgstr "Memoria cache expiră în (secunde):"
|
| 916 |
+
|
| 917 |
+
#: relevanssi.php:4620
|
| 918 |
+
#: ../relevanssi/relevanssi.php:3394
|
| 919 |
+
msgid "86400 = day"
|
| 920 |
+
msgstr "86400 = o zi"
|
| 921 |
+
|
| 922 |
+
#: relevanssi.php:4624
|
| 923 |
+
#: ../relevanssi/relevanssi.php:3398
|
| 924 |
+
msgid "Entries in the cache"
|
| 925 |
+
msgstr "Înregistrări în memoria cache"
|
| 926 |
+
|
| 927 |
+
#: relevanssi.php:4628
|
| 928 |
+
#: ../relevanssi/relevanssi.php:3402
|
| 929 |
+
msgid "Clear all caches"
|
| 930 |
+
msgstr "Ștergere completă cache"
|
| 931 |
+
|
| 932 |
+
#: relevanssi.php:4634
|
| 933 |
+
#: ../relevanssi/relevanssi.php:3408
|
| 934 |
+
msgid "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."
|
| 935 |
+
msgstr "Adăugați aici sinonime în formatul „cheie = valoare”. Atunci când se folosește operatorul SAU, orice termen de căutare din lista de chei va fi expandat și cu valorile corespunzătoare. Se pot utiliza și fraze. Perechea cheie-valoare funționează unidirecțional, puteți bineînțeles să introduceți și perechea inversată în listă."
|
| 936 |
+
|
| 937 |
+
#: relevanssi.php:4642
|
| 938 |
+
msgid "Import or export options"
|
| 939 |
+
msgstr "Import și export opțiuni"
|
| 940 |
+
|
| 941 |
+
#: relevanssi.php:4644
|
| 942 |
+
msgid "Here you find the current Relevanssi Premium options in a text format. Copy the contents of the text field to make a backup of your settings. You can also paste new settings here to change all settings at the same time. This is useful if you have default settings you want to use on every system."
|
| 943 |
+
msgstr "Aici găsiți setările curente ale modulului Relevanssi Premium în format text. Puteți copia conținutul câmpului pentru a face backup setărilor. Puteți de asemenea copia setări noi în acest câmp pentru a modifica toate setările dintr-o singură mișcare. Aceasta este util când aveți un set implicit de opțiuni pe care doriți să îl replicați pe toate blogurile."
|
| 944 |
+
|
| 945 |
+
#: relevanssi.php:4648
|
| 946 |
+
msgid "Import settings"
|
| 947 |
+
msgstr "Import setări"
|
| 948 |
+
|
| 949 |
+
#: relevanssi.php:4650
|
| 950 |
+
msgid "Note! Make sure you've got correct settings from a right version of Relevanssi. Settings from a different version of Relevanssi may or may not work and may or may not mess your settings."
|
| 951 |
+
msgstr "Notă: Asigurați-vă că introduceți setările de la o versiune corectă de Relevanssi. Setările de la o altă versiune ar putea sau nu să funcționeze sau ar putea să vă strice setările curente."
|
| 952 |
+
|
| 953 |
+
#: relevanssi.php:4663
|
| 954 |
+
#: ../relevanssi/relevanssi.php:3433
|
| 955 |
+
msgid "<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>"
|
| 956 |
+
msgstr "<p>Introduceți aici un cuvânt care să fie adăugat la lista de cuvinte ignorate. Cuvântul va fi eliminat automat din index, nu mai este necesară reindexarea. Pentru a introduce mai multe cuvinte simultan, separați-le cu virgule.</p>"
|
| 957 |
+
|
| 958 |
+
#: relevanssi.php:4665
|
| 959 |
+
#: ../relevanssi/relevanssi.php:3435
|
| 960 |
+
msgid "Stopword(s) to add: "
|
| 961 |
+
msgstr "Cuvinte de adăugat la lista de cuvinte ignorate:"
|
| 962 |
+
|
| 963 |
+
#: relevanssi.php:4666
|
| 964 |
+
#: ../relevanssi/relevanssi.php:3436
|
| 965 |
+
msgid "Add"
|
| 966 |
+
msgstr "Adăugare"
|
| 967 |
+
|
| 968 |
+
#: relevanssi.php:4669
|
| 969 |
+
#: ../relevanssi/relevanssi.php:3439
|
| 970 |
+
msgid "<p>Here's a list of stopwords in the database. Click a word to remove it from stopwords. Removing stopwords won't automatically return them to index, so you need to re-index all posts after removing stopwords to get those words back to index."
|
| 971 |
+
msgstr "<p>Aceasta este o listă de cuvinte ignorate din baza de date. Apăsați pe un cuvânt pentru a-l elimina din listă. Eliminarea cuvintelor nu se va reflecta în mod automat în index, va trebui să reconstruiți indexul pentru ca modificările să aibă efect."
|
| 972 |
+
|
| 973 |
+
#: relevanssi.php:4695
|
| 974 |
+
#: ../relevanssi/relevanssi.php:3465
|
| 975 |
+
msgid "Remove all stopwords"
|
| 976 |
+
msgstr "Eliminarea tuturor cuvintelor ignorate"
|
| 977 |
+
|
| 978 |
+
#: relevanssi.php:4701
|
| 979 |
+
#: ../relevanssi/relevanssi.php:3471
|
| 980 |
+
msgid "Here's a list of stopwords you can use to export the stopwords to another blog."
|
| 981 |
+
msgstr "Aceasta este o listă de cuvinte de ignorat pe care o puteți exporta pentru utilizarea în alt blog."
|
| 982 |
+
|
| 983 |
+
#: relevanssi.php:4781
|
| 984 |
+
msgid "Relevanssi post controls"
|
| 985 |
+
msgstr "Controale articole Relevanssi"
|
| 986 |
+
|
| 987 |
+
#: relevanssi.php:4787
|
| 988 |
+
msgid "Relevanssi page controls"
|
| 989 |
+
msgstr "Controale pagini Relevanssi"
|
| 990 |
+
|
| 991 |
+
#: relevanssi.php:4805
|
| 992 |
+
msgid "Exclude this post or page from the index."
|
| 993 |
+
msgstr "Exclude acest document din index."
|
| 994 |
+
|
| 995 |
+
#: ../relevanssi/relevanssi.php:474
|
| 996 |
+
msgid "Data wiped clean, you can now delete the plugin."
|
| 997 |
+
msgstr "Datele modulului au fost curățate, acum se poate elimina modului."
|
| 998 |
+
|
| 999 |
+
#: ../relevanssi/relevanssi.php:2393
|
| 1000 |
+
msgid "Relevanssi Search Options"
|
| 1001 |
+
msgstr "Opțiuni de căutare Relevanssi"
|
| 1002 |
+
|
| 1003 |
+
#: ../relevanssi/relevanssi.php:3057
|
| 1004 |
+
msgid "Uninstalling"
|
| 1005 |
+
msgstr "Dezinastalare"
|
| 1006 |
+
|
| 1007 |
+
#: ../relevanssi/relevanssi.php:3079
|
| 1008 |
+
msgid "Title weight:"
|
| 1009 |
+
msgstr "Greutate titlu:"
|
| 1010 |
+
|
| 1011 |
+
#: ../relevanssi/relevanssi.php:3081
|
| 1012 |
+
#: ../relevanssi/relevanssi.php:3085
|
| 1013 |
+
#: ../relevanssi/relevanssi.php:3089
|
| 1014 |
+
#, php-format
|
| 1015 |
+
msgid "Default: %s"
|
| 1016 |
+
msgstr "Implicit: %s"
|
| 1017 |
+
|
| 1018 |
+
#: ../relevanssi/relevanssi.php:3083
|
| 1019 |
+
msgid "Tag weight:"
|
| 1020 |
+
msgstr "Greutate etichetă:"
|
| 1021 |
+
|
| 1022 |
+
#: ../relevanssi/relevanssi.php:3087
|
| 1023 |
+
msgid "Comment weight:"
|
| 1024 |
+
msgstr "Greutate comentariu:"
|
| 1025 |
+
|
| 1026 |
+
#: ../relevanssi/relevanssi.php:3162
|
| 1027 |
+
msgid "Enter a comma-separated list of category and tag 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)."
|
| 1028 |
+
msgstr "Introduceți o listă separată prin virgule a ID-urilor categoriilor și etichetelor care doriți să fie excluse din lista de rezultate."
|
| 1029 |
+
|
| 1030 |
+
#: ../relevanssi/relevanssi.php:3168
|
| 1031 |
+
msgid "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)."
|
| 1032 |
+
msgstr "Introduceți o listă separată prin virgule a ID-urilor documentelor care doriți să fie excluse din lista de rezultate."
|
| 1033 |
+
|
| 1034 |
+
#: ../relevanssi/relevanssi.php:3230
|
| 1035 |
+
msgid "Highlight query terms in documents:"
|
| 1036 |
+
msgstr "Evidențierea termenilor de căutare în documente:"
|
| 1037 |
+
|
| 1038 |
+
#: ../relevanssi/relevanssi.php:3284
|
| 1039 |
+
msgid "What to include in the index"
|
| 1040 |
+
msgstr "Ce să fie înclus în index"
|
| 1041 |
+
|
| 1042 |
+
#: ../relevanssi/relevanssi.php:3286
|
| 1043 |
+
msgid "Everything"
|
| 1044 |
+
msgstr "Totul"
|
| 1045 |
+
|
| 1046 |
+
#: ../relevanssi/relevanssi.php:3287
|
| 1047 |
+
msgid "All public post types"
|
| 1048 |
+
msgstr "Toate tipurile de documente publice"
|
| 1049 |
+
|
| 1050 |
+
#: ../relevanssi/relevanssi.php:3288
|
| 1051 |
+
msgid "Posts"
|
| 1052 |
+
msgstr "Articole"
|
| 1053 |
+
|
| 1054 |
+
#: ../relevanssi/relevanssi.php:3289
|
| 1055 |
+
msgid "Pages"
|
| 1056 |
+
msgstr "Pagini"
|
| 1057 |
+
|
| 1058 |
+
#: ../relevanssi/relevanssi.php:3290
|
| 1059 |
+
msgid "Custom, set below"
|
| 1060 |
+
msgstr "Personalizat, setați mai jos"
|
| 1061 |
+
|
| 1062 |
+
#: ../relevanssi/relevanssi.php:3292
|
| 1063 |
+
msgid ""
|
| 1064 |
+
"This determines which post types are included in the index. Choosing 'everything'\n"
|
| 1065 |
+
"\twill include posts, pages and all custom post types. 'All public post types' includes all\n"
|
| 1066 |
+
"\tregistered post types that don't have the 'exclude_from_search' set to true. This includes post,\n"
|
| 1067 |
+
"\tpage, and possible custom types. 'All public types' requires at least WP 2.9, otherwise it's the\n"
|
| 1068 |
+
"\tsame as 'everything'. If you choose 'Custom', only the post types listed below are indexed.\n"
|
| 1069 |
+
"\tNote: attachments are covered with a separate option below."
|
| 1070 |
+
msgstr ""
|
| 1071 |
+
"Această opțiune determină ce tipuri de documente sunt incluse în index. Alegând „Totul” va include toate articolele,\n"
|
| 1072 |
+
"\tpaginile și documentele de tip personalizat. „Toate tipurile de documente publice” va include toate tipurile de documente\n"
|
| 1073 |
+
"\tpersonalizate care nu au atributul <i>exclude_fom_search</i> cu valoarea true. Aceasta va include articolele, paginile și\n"
|
| 1074 |
+
"\tposibile tipuri de documente personalizate. „Toate tipurile de documente publice” necesită cel puțin WP 2.9, altfel setarea va\n"
|
| 1075 |
+
"\tfuncționa la fel cu „Totul”. Dacă alegeți „Personalizat” numai tipurile de documente listate mai jos sunt indexate.\n"
|
| 1076 |
+
"\t Notă: atașamentele sunt acoperite cu altă opțiune aflată mai jos."
|
| 1077 |
+
|
| 1078 |
+
#: ../relevanssi/relevanssi.php:3301
|
| 1079 |
+
msgid "Custom post types to index"
|
| 1080 |
+
msgstr "Tipurile de documente de inclus în index"
|
| 1081 |
+
|
| 1082 |
+
#: ../relevanssi/relevanssi.php:3303
|
| 1083 |
+
msgid ""
|
| 1084 |
+
"If you don't want to index all custom post types, list here the custom post types\n"
|
| 1085 |
+
"\tyou want to see indexed. List comma-separated post type names (as used in the database). You can\n"
|
| 1086 |
+
"\talso use a hidden field in the search form to restrict the search to a certain post type:\n"
|
| 1087 |
+
"\t<code><input type='hidden' name='post_type' value='comma-separated list of post types'\n"
|
| 1088 |
+
"\t/></code>. If you choose 'All public post types' or 'Everything' above, this option has no\n"
|
| 1089 |
+
"\teffect. You can exclude custom post types with the minus notation, for example '-foo,bar,-baz'\n"
|
| 1090 |
+
"\twould include 'bar' and exclude 'foo' and 'baz'."
|
| 1091 |
+
msgstr ""
|
| 1092 |
+
"Dacă nu doriți să indexați toate tipurile de documente personalizate, listați aici tipurile pe care doriți\n"
|
| 1093 |
+
"\tsă le introduceți în index. Listați numele tipurilor de documente separate prin virgule. În formularul de căutare\n"
|
| 1094 |
+
"\tse poate folosi un câmp ascuns pentru a restricționa căutarea la un singur tip de document personalizat:\n"
|
| 1095 |
+
"\t<code><input type='hidden' name='post_type' value='listă separată prin virgule ale tipurilor de documente dorite' /></code>.\n"
|
| 1096 |
+
"\tDacă ați ales mai sus „Toate tipurile de documente publice” sau „Totul”, această opțiune nu mai are efect. Puteți exclude tipuri de documente\n"
|
| 1097 |
+
"\tprin notare cu minus în cadrul listei, de exemplu '-foo,bar,-baz' va include 'bar' și va exclude 'foo' și 'baz'."
|
| 1098 |
+
|
| 1099 |
+
#: ../relevanssi/relevanssi.php:3319
|
| 1100 |
+
msgid "Index and search your posts' attachments:"
|
| 1101 |
+
msgstr "Indexare și căutare în atașamente:"
|
| 1102 |
+
|
| 1103 |
+
#: ../relevanssi/relevanssi.php:3321
|
| 1104 |
+
msgid "If checked, Relevanssi will also index and search attachments of your posts (pictures, files and so on). Remember to rebuild the index if you change this option!"
|
| 1105 |
+
msgstr "Dacă opțiunea este bifată Relevanssi va indexa și va căuta și atașamentele documentelor (imagini, fișiere, etc). Amintiți-vă să reconstruiți indexul dacă modificați această opțiune!"
|
| 1106 |
+
|
| 1107 |
+
#: ../relevanssi/relevanssi.php:3416
|
| 1108 |
+
msgid "Uninstalling the plugin"
|
| 1109 |
+
msgstr "Dezinstalarea modulului"
|
| 1110 |
+
|
| 1111 |
+
#: ../relevanssi/relevanssi.php:3418
|
| 1112 |
+
msgid "If you want to uninstall the plugin, start by clicking the button below to wipe clean the options and tables created by the plugin, then remove it from the plugins list."
|
| 1113 |
+
msgstr "Dacă doriți să dezinstalați modulul, începeți prin apăsarea butornului de mai jos pentru a șterge opțiunile și tabelele specifice din baza de date, apoi eliminați modulul din listă."
|
| 1114 |
+
|
| 1115 |
+
#: ../relevanssi/relevanssi.php:3420
|
| 1116 |
+
msgid "Remove plugin data"
|
| 1117 |
+
msgstr "Eliminarea datelor modulului"
|
| 1118 |
+
|
| 1119 |
+
#~ msgid "Just posts"
|
| 1120 |
+
#~ msgstr "Numai articolele"
|
| 1121 |
+
|
| 1122 |
+
#~ msgid "Just pages"
|
| 1123 |
+
#~ msgstr "Numai paginile"
|
relevanssi.php
ADDED
|
@@ -0,0 +1,382 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/*
|
| 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 |
+
|
| 15 |
+
Relevanssi is free software: you can redistribute it and/or modify
|
| 16 |
+
it under the terms of the GNU General Public License as published by
|
| 17 |
+
the Free Software Foundation, either version 3 of the License, or
|
| 18 |
+
(at your option) any later version.
|
| 19 |
+
|
| 20 |
+
Relevanssi is distributed in the hope that it will be useful,
|
| 21 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 22 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 23 |
+
GNU General Public License for more details.
|
| 24 |
+
|
| 25 |
+
You should have received a copy of the GNU General Public License
|
| 26 |
+
along with Relevanssi. If not, see <http://www.gnu.org/licenses/>.
|
| 27 |
+
*/
|
| 28 |
+
|
| 29 |
+
// For debugging purposes
|
| 30 |
+
//error_reporting(E_ALL);
|
| 31 |
+
//ini_set("display_errors", 1);
|
| 32 |
+
//define('WP-DEBUG', true);
|
| 33 |
+
global $wpdb;
|
| 34 |
+
//$wpdb->show_errors();
|
| 35 |
+
|
| 36 |
+
define('RELEVANSSI_PREMIUM', false);
|
| 37 |
+
|
| 38 |
+
global $relevanssi_variables;
|
| 39 |
+
|
| 40 |
+
$relevanssi_variables['relevanssi_table'] = $wpdb->prefix . "relevanssi";
|
| 41 |
+
$relevanssi_variables['stopword_table'] = $wpdb->prefix . "relevanssi_stopwords";
|
| 42 |
+
$relevanssi_variables['log_table'] = $wpdb->prefix . "relevanssi_log";
|
| 43 |
+
$relevanssi_variables['relevanssi_cache'] = $wpdb->prefix . "relevanssi_cache";
|
| 44 |
+
$relevanssi_variables['relevanssi_excerpt_cache'] = $wpdb->prefix . "relevanssi_excerpt_cache";
|
| 45 |
+
$relevanssi_variables['title_boost_default'] = 5;
|
| 46 |
+
$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 |
+
|
| 54 |
+
require_once('lib/init.php');
|
| 55 |
+
require_once('lib/interface.php');
|
| 56 |
+
require_once('lib/cache.php');
|
| 57 |
+
require_once('lib/indexing.php');
|
| 58 |
+
require_once('lib/stopwords.php');
|
| 59 |
+
require_once('lib/search.php');
|
| 60 |
+
require_once('lib/excerpts-highlights.php');
|
| 61 |
+
require_once('lib/shortcodes.php');
|
| 62 |
+
require_once('lib/common.php');
|
| 63 |
+
|
| 64 |
+
function relevanssi_didyoumean($query, $pre, $post, $n = 5) {
|
| 65 |
+
global $wpdb, $relevanssi_variables, $wp_query;
|
| 66 |
+
|
| 67 |
+
$total_results = $wp_query->found_posts;
|
| 68 |
+
|
| 69 |
+
if ($total_results > $n) return;
|
| 70 |
+
|
| 71 |
+
$q = "SELECT query, count(query) as c, AVG(hits) as a FROM " . $relevanssi_variables['log_table'] . " WHERE hits > 1 GROUP BY query ORDER BY count(query) DESC";
|
| 72 |
+
$q = apply_filters('relevanssi_didyoumean_query', $q);
|
| 73 |
+
|
| 74 |
+
$data = $wpdb->get_results($q);
|
| 75 |
+
|
| 76 |
+
$distance = -1;
|
| 77 |
+
$closest = "";
|
| 78 |
+
|
| 79 |
+
foreach ($data as $row) {
|
| 80 |
+
if ($row->c < 2) break;
|
| 81 |
+
$lev = levenshtein($query, $row->query);
|
| 82 |
+
|
| 83 |
+
if ($lev < $distance || $distance < 0) {
|
| 84 |
+
if ($row->a > 0) {
|
| 85 |
+
$distance = $lev;
|
| 86 |
+
$closest = $row->query;
|
| 87 |
+
if ($lev == 1) break; // get the first with distance of 1 and go
|
| 88 |
+
}
|
| 89 |
+
}
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
if ($distance > 0) {
|
| 93 |
+
|
| 94 |
+
$url = get_bloginfo('url');
|
| 95 |
+
$url = esc_attr(add_query_arg(array(
|
| 96 |
+
's' => urlencode($closest)
|
| 97 |
+
|
| 98 |
+
), $url ));
|
| 99 |
+
echo "$pre<a href='$url'>$closest</a>$post";
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
}
|
| 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');
|
| 114 |
+
if ($tag_boost != 'nothing') {
|
| 115 |
+
$post_type_weights = get_option('relevanssi_post_type_weights');
|
| 116 |
+
if (!is_array($post_type_weights)) {
|
| 117 |
+
$post_type_weights = array();
|
| 118 |
+
}
|
| 119 |
+
$post_type_weights['post_tag'] = $tag_boost;
|
| 120 |
+
delete_option('relevanssi_tag_boost');
|
| 121 |
+
update_option('relevanssi_post_type_weights', $post_type_weights);
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
$index_type = get_option('relevanssi_index_type', 'nothing');
|
| 125 |
+
if ($index_type != 'nothing') {
|
| 126 |
+
// Delete unused options from versions < 3
|
| 127 |
+
$post_types = get_option('relevanssi_index_post_types');
|
| 128 |
+
|
| 129 |
+
if (!is_array($post_types)) $post_types = array();
|
| 130 |
+
|
| 131 |
+
switch ($index_type) {
|
| 132 |
+
case "posts":
|
| 133 |
+
array_push($post_types, 'post');
|
| 134 |
+
break;
|
| 135 |
+
case "pages":
|
| 136 |
+
array_push($post_types, 'page');
|
| 137 |
+
break;
|
| 138 |
+
case 'public':
|
| 139 |
+
if (function_exists('get_post_types')) {
|
| 140 |
+
$pt_1 = get_post_types(array('exclude_from_search' => '0'));
|
| 141 |
+
$pt_2 = get_post_types(array('exclude_from_search' => false));
|
| 142 |
+
foreach (array_merge($pt_1, $pt_2) as $type) {
|
| 143 |
+
array_push($post_types, $type);
|
| 144 |
+
}
|
| 145 |
+
}
|
| 146 |
+
break;
|
| 147 |
+
case "both": // really should be "everything"
|
| 148 |
+
$pt = get_post_types();
|
| 149 |
+
foreach ($pt as $type) {
|
| 150 |
+
array_push($post_types, $type);
|
| 151 |
+
}
|
| 152 |
+
break;
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
$attachments = get_option('relevanssi_index_attachments');
|
| 156 |
+
if ('on' == $attachments) array_push($post_types, 'attachment');
|
| 157 |
+
|
| 158 |
+
$custom_types = get_option('relevanssi_custom_types');
|
| 159 |
+
$custom_types = explode(',', $custom_types);
|
| 160 |
+
if (is_array($custom_types)) {
|
| 161 |
+
foreach ($custom_types as $type) {
|
| 162 |
+
$type = trim($type);
|
| 163 |
+
if (substr($type, 0, 1) != '-') {
|
| 164 |
+
array_push($post_types, $type);
|
| 165 |
+
}
|
| 166 |
+
}
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
update_option('relevanssi_index_post_types', $post_types);
|
| 170 |
+
|
| 171 |
+
delete_option('relevanssi_index_type');
|
| 172 |
+
delete_option('relevanssi_index_attachments');
|
| 173 |
+
delete_option('relevanssi_custom_types');
|
| 174 |
+
}
|
| 175 |
+
}
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
function _relevanssi_install() {
|
| 179 |
+
global $wpdb, $relevanssi_variables;
|
| 180 |
+
|
| 181 |
+
add_option('relevanssi_title_boost', $relevanssi_variables['title_boost_default']);
|
| 182 |
+
add_option('relevanssi_comment_boost', $relevanssi_variables['comment_boost_default']);
|
| 183 |
+
add_option('relevanssi_admin_search', 'off');
|
| 184 |
+
add_option('relevanssi_highlight', 'strong');
|
| 185 |
+
add_option('relevanssi_txt_col', '#ff0000');
|
| 186 |
+
add_option('relevanssi_bg_col', '#ffaf75');
|
| 187 |
+
add_option('relevanssi_css', 'text-decoration: underline; text-color: #ff0000');
|
| 188 |
+
add_option('relevanssi_class', 'relevanssi-query-term');
|
| 189 |
+
add_option('relevanssi_excerpts', 'on');
|
| 190 |
+
add_option('relevanssi_excerpt_length', '450');
|
| 191 |
+
add_option('relevanssi_excerpt_type', 'chars');
|
| 192 |
+
add_option('relevanssi_excerpt_allowable_tags', '');
|
| 193 |
+
add_option('relevanssi_log_queries', 'off');
|
| 194 |
+
add_option('relevanssi_cat', '0');
|
| 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');
|
| 207 |
+
add_option('relevanssi_indexed', '');
|
| 208 |
+
add_option('relevanssi_expand_shortcodes', 'on');
|
| 209 |
+
add_option('relevanssi_custom_taxonomies', '');
|
| 210 |
+
add_option('relevanssi_index_author', '');
|
| 211 |
+
add_option('relevanssi_implicit_operator', 'OR');
|
| 212 |
+
add_option('relevanssi_omit_from_logs', '');
|
| 213 |
+
add_option('relevanssi_synonyms', '');
|
| 214 |
+
add_option('relevanssi_index_excerpt', '');
|
| 215 |
+
add_option('relevanssi_index_limit', '500');
|
| 216 |
+
add_option('relevanssi_disable_or_fallback', 'off');
|
| 217 |
+
add_option('relevanssi_respect_exclude', 'on');
|
| 218 |
+
add_option('relevanssi_cache_seconds', '172800');
|
| 219 |
+
add_option('relevanssi_enable_cache', 'off');
|
| 220 |
+
add_option('relevanssi_min_word_length', 3);
|
| 221 |
+
add_option('relevanssi_wpml_only_current', 'on');
|
| 222 |
+
add_option('relevanssi_word_boundaries', 'on');
|
| 223 |
+
add_option('relevanssi_default_orderby', 'relevance');
|
| 224 |
+
add_option('relevanssi_db_version', '0');
|
| 225 |
+
add_option('relevanssi_post_type_weights', $relevanssi_variables['post_type_weight_defaults']);
|
| 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 |
+
}
|
| 232 |
+
|
| 233 |
+
if (function_exists('register_uninstall_hook')) {
|
| 234 |
+
register_uninstall_hook(__FILE__, 'relevanssi_uninstall');
|
| 235 |
+
// this doesn't seem to work
|
| 236 |
+
}
|
| 237 |
+
|
| 238 |
+
function relevanssi_get_post($id) {
|
| 239 |
+
global $relevanssi_post_array;
|
| 240 |
+
|
| 241 |
+
if (isset($relevanssi_post_array[$id])) {
|
| 242 |
+
$post = $relevanssi_post_array[$id];
|
| 243 |
+
}
|
| 244 |
+
else {
|
| 245 |
+
$post = get_post($id);
|
| 246 |
+
}
|
| 247 |
+
return $post;
|
| 248 |
+
}
|
| 249 |
+
|
| 250 |
+
function relevanssi_remove_doc($id) {
|
| 251 |
+
global $wpdb, $relevanssi_variables;
|
| 252 |
+
|
| 253 |
+
$q = "DELETE FROM " . $relevanssi_variables['relevanssi_table'] . " WHERE doc=$id";
|
| 254 |
+
$wpdb->query($q);
|
| 255 |
+
}
|
| 256 |
+
|
| 257 |
+
/*****
|
| 258 |
+
* Interface functions
|
| 259 |
+
*/
|
| 260 |
+
|
| 261 |
+
function relevanssi_form_tag_weight($post_type_weights) {
|
| 262 |
+
$label = __("Tag weight:", 'relevanssi');
|
| 263 |
+
$value = $post_type_weights['post_tag'];
|
| 264 |
+
|
| 265 |
+
echo <<<EOH
|
| 266 |
+
<tr>
|
| 267 |
+
<td>
|
| 268 |
+
$label
|
| 269 |
+
</td>
|
| 270 |
+
<td>
|
| 271 |
+
<input type='text' name='relevanssi_weight_post_tag' size='4' value='$value' />
|
| 272 |
+
</td>
|
| 273 |
+
<td> </td>
|
| 274 |
+
</tr>
|
| 275 |
+
EOH;
|
| 276 |
+
|
| 277 |
+
$label = __("Category weight:", 'relevanssi');
|
| 278 |
+
$value = $post_type_weights['category'];
|
| 279 |
+
|
| 280 |
+
echo <<<EOH
|
| 281 |
+
<tr>
|
| 282 |
+
<td>
|
| 283 |
+
$label
|
| 284 |
+
</td>
|
| 285 |
+
<td>
|
| 286 |
+
<input type='text' name='relevanssi_weight_category' size='4' value='$value' />
|
| 287 |
+
</td>
|
| 288 |
+
<td> </td>
|
| 289 |
+
</tr>
|
| 290 |
+
EOH;
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
function relevanssi_sidebar() {
|
| 294 |
+
$tweet = 'http://twitter.com/home?status=' . urlencode("I'm using Relevanssi, a better search for WordPress. http://wordpress.org/extend/plugins/relevanssi/ #relevanssi #wordpress");
|
| 295 |
+
if (function_exists("plugins_url")) {
|
| 296 |
+
global $wp_version;
|
| 297 |
+
if (version_compare($wp_version, '2.8dev', '>' )) {
|
| 298 |
+
$facebooklogo = plugins_url('facebooklogo.jpg', __FILE__);
|
| 299 |
+
}
|
| 300 |
+
else {
|
| 301 |
+
$facebooklogo = plugins_url('relevanssi/facebooklogo.jpg');
|
| 302 |
+
}
|
| 303 |
+
}
|
| 304 |
+
else {
|
| 305 |
+
// We can't check, so let's assume something sensible
|
| 306 |
+
$facebooklogo = '/wp-content/plugins/relevanssi/facebooklogo.jpg';
|
| 307 |
+
}
|
| 308 |
+
|
| 309 |
+
echo <<<EOH
|
| 310 |
+
<div class="postbox-container" style="width:20%; margin-top: 35px; margin-left: 15px;">
|
| 311 |
+
<div class="metabox-holder">
|
| 312 |
+
<div class="meta-box-sortables" style="min-height: 0">
|
| 313 |
+
<div id="relevanssi_buy" class="postbox">
|
| 314 |
+
<h3 class="hndle"><span>Buy Relevanssi Premium!</span></h3>
|
| 315 |
+
<div class="inside">
|
| 316 |
+
<p>Do you want more features? Support Relevanssi development? Get a
|
| 317 |
+
better search experience for your users?</p>
|
| 318 |
+
|
| 319 |
+
<p><strong>Go Premium!</strong> Buy Relevanssi Premium. See <a href="http://www.relevanssi.com/features/?utm_source=plugin&utm_medium=link&utm_campaign=features">feature
|
| 320 |
+
comparison</a> and <a href="http://www.relevanssi.com/buy-premium/?utm_source=plugin&utm_medium=link&utm_campaign=license">license prices</a>.</p>
|
| 321 |
+
</div>
|
| 322 |
+
</div>
|
| 323 |
+
</div>
|
| 324 |
+
|
| 325 |
+
<div class="meta-box-sortables" style="min-height: 0">
|
| 326 |
+
<div id="relevanssi_premium" class="postbox">
|
| 327 |
+
<h3 class="hndle"><span>Sample Premium features</span></h3>
|
| 328 |
+
<div class="inside">
|
| 329 |
+
<p>With Relevanssi Premium, you would have more options:</p>
|
| 330 |
+
|
| 331 |
+
<p>- Internal link anchors are search terms for the target posts, if you wish<br />
|
| 332 |
+
- Hiding Relevanssi branding from the User Searches page on a client installation<br />
|
| 333 |
+
- Adjust weights separately for each post type and taxonomy<br />
|
| 334 |
+
- Give extra weight to recent posts<br />
|
| 335 |
+
- Highlight search terms for visitors from Google and other external search sources<br />
|
| 336 |
+
- Make Relevanssi understand thousand separators to handle big numbers better<br />
|
| 337 |
+
- Index and search any columns in the wp_posts database<br />
|
| 338 |
+
- Index and search user profile pages<br />
|
| 339 |
+
- Index and search taxonomy term pages<br />
|
| 340 |
+
- Import and export options<br />
|
| 341 |
+
- And more!
|
| 342 |
+
</p>
|
| 343 |
+
</div>
|
| 344 |
+
</div>
|
| 345 |
+
</div>
|
| 346 |
+
|
| 347 |
+
<div class="meta-box-sortables" style="min-height: 0">
|
| 348 |
+
<div id="relevanssi_facebook" class="postbox">
|
| 349 |
+
<h3 class="hndle"><span>Relevanssi on Facebook</span></h3>
|
| 350 |
+
<div class="inside">
|
| 351 |
+
<div style="float: left; margin-right: 5px"><img src="$facebooklogo" width="45" height="43" alt="Facebook" /></div>
|
| 352 |
+
<p><a href="http://www.facebook.com/relevanssi">Check
|
| 353 |
+
out the Relevanssi page on Facebook</a> for news and updates about your favourite plugin.</p>
|
| 354 |
+
</div>
|
| 355 |
+
</div>
|
| 356 |
+
</div>
|
| 357 |
+
|
| 358 |
+
<div class="meta-box-sortables" style="min-height: 0">
|
| 359 |
+
<div id="relevanssi_help" class="postbox">
|
| 360 |
+
<h3 class="hndle"><span>Help and support</span></h3>
|
| 361 |
+
<div class="inside">
|
| 362 |
+
<p>For Relevanssi support, see:</p>
|
| 363 |
+
|
| 364 |
+
<p>- <a href="http://wordpress.org/tags/relevanssi?forum_id=10">WordPress.org forum</a><br />
|
| 365 |
+
- <a href="http://www.relevanssi.com/category/knowledge-base/?utm_source=plugin&utm_medium=link&utm_campaign=kb">Knowledge base</a></p>
|
| 366 |
+
</div>
|
| 367 |
+
</div>
|
| 368 |
+
</div>
|
| 369 |
+
|
| 370 |
+
</div>
|
| 371 |
+
</div>
|
| 372 |
+
EOH;
|
| 373 |
+
}
|
| 374 |
+
|
| 375 |
+
/**
|
| 376 |
+
* Wrapper function for Premium compatibility.
|
| 377 |
+
*/
|
| 378 |
+
function relevanssi_install() {
|
| 379 |
+
_relevanssi_install();
|
| 380 |
+
}
|
| 381 |
+
|
| 382 |
+
?>
|
relevanssi.po
ADDED
|
@@ -0,0 +1,321 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
msgid ""
|
| 2 |
+
msgstr ""
|
| 3 |
+
"Project-Id-Version: Relevanssi\n"
|
| 4 |
+
"Report-Msgid-Bugs-To: \n"
|
| 5 |
+
"POT-Creation-Date: 2009-08-14 14:06+0200\n"
|
| 6 |
+
"PO-Revision-Date: \n"
|
| 7 |
+
"Last-Translator: Mikko Saari <mikko@mikkosaari.fi>\n"
|
| 8 |
+
"Language-Team: \n"
|
| 9 |
+
"MIME-Version: 1.0\n"
|
| 10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
| 11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
| 12 |
+
"X-Poedit-KeywordsList: __\n"
|
| 13 |
+
"X-Poedit-Basepath: .\n"
|
| 14 |
+
"X-Poedit-SearchPath-0: .\n"
|
| 15 |
+
|
| 16 |
+
#: relevanssi.php:703
|
| 17 |
+
msgid "There is no excerpt because this is a protected post."
|
| 18 |
+
msgstr ""
|
| 19 |
+
|
| 20 |
+
#: relevanssi.php:994
|
| 21 |
+
msgid "Indexing complete!"
|
| 22 |
+
msgstr ""
|
| 23 |
+
|
| 24 |
+
#: relevanssi.php:1183
|
| 25 |
+
msgid "Relevanssi Search Options"
|
| 26 |
+
msgstr ""
|
| 27 |
+
|
| 28 |
+
#: relevanssi.php:1294
|
| 29 |
+
#, php-format
|
| 30 |
+
msgid "<div id='message' class='update fade'><p>Term '%s' added to stopwords!</p></div>"
|
| 31 |
+
msgstr ""
|
| 32 |
+
|
| 33 |
+
#: relevanssi.php:1297
|
| 34 |
+
#, php-format
|
| 35 |
+
msgid "<div id='message' class='update fade'><p>Couldn't add term '%s' to stopwords!</p></div>"
|
| 36 |
+
msgstr ""
|
| 37 |
+
|
| 38 |
+
#: relevanssi.php:1306
|
| 39 |
+
msgid "25 most common words in the index"
|
| 40 |
+
msgstr ""
|
| 41 |
+
|
| 42 |
+
#: relevanssi.php:1308
|
| 43 |
+
msgid "These words are excellent stopword material. A word that appears in most of the posts in the database is quite pointless when searching. This is also an easy way to create a completely new stopword list, if one isn't available in your language. Click the icon after the word to add the word to the stopword list. The word will also be removed from the index, so rebuilding the index is not necessary."
|
| 44 |
+
msgstr ""
|
| 45 |
+
|
| 46 |
+
#: relevanssi.php:1331
|
| 47 |
+
msgid "Add to stopwords"
|
| 48 |
+
msgstr ""
|
| 49 |
+
|
| 50 |
+
#: relevanssi.php:1344
|
| 51 |
+
msgid "25 most popular queries"
|
| 52 |
+
msgstr ""
|
| 53 |
+
|
| 54 |
+
#: relevanssi.php:1356
|
| 55 |
+
msgid "Recent queries that got 0 hits"
|
| 56 |
+
msgstr ""
|
| 57 |
+
|
| 58 |
+
#: relevanssi.php:1491
|
| 59 |
+
msgid "Title boost:"
|
| 60 |
+
msgstr ""
|
| 61 |
+
|
| 62 |
+
#: relevanssi.php:1492
|
| 63 |
+
#, php-format
|
| 64 |
+
msgid "Default: %d. 0 means titles are ignored, 1 means no boost, more than 1 gives extra value."
|
| 65 |
+
msgstr ""
|
| 66 |
+
|
| 67 |
+
#: relevanssi.php:1493
|
| 68 |
+
msgid "Tag boost:"
|
| 69 |
+
msgstr ""
|
| 70 |
+
|
| 71 |
+
#: relevanssi.php:1494
|
| 72 |
+
#, php-format
|
| 73 |
+
msgid "Default: %d. 0 means tags are ignored, 1 means no boost, more than 1 gives extra value."
|
| 74 |
+
msgstr ""
|
| 75 |
+
|
| 76 |
+
#: relevanssi.php:1495
|
| 77 |
+
msgid "Comment boost:"
|
| 78 |
+
msgstr ""
|
| 79 |
+
|
| 80 |
+
#: relevanssi.php:1496
|
| 81 |
+
#, php-format
|
| 82 |
+
msgid "Default: %d. 0 means comments are ignored, 1 means no boost, more than 1 gives extra value."
|
| 83 |
+
msgstr ""
|
| 84 |
+
|
| 85 |
+
#: relevanssi.php:1497
|
| 86 |
+
msgid "Use search for admin:"
|
| 87 |
+
msgstr ""
|
| 88 |
+
|
| 89 |
+
#: relevanssi.php:1498
|
| 90 |
+
msgid "If checked, Relevanssi will be used for searches in the admin interface"
|
| 91 |
+
msgstr ""
|
| 92 |
+
|
| 93 |
+
#: relevanssi.php:1499
|
| 94 |
+
msgid "Restrict search to these categories and tags:"
|
| 95 |
+
msgstr ""
|
| 96 |
+
|
| 97 |
+
#: relevanssi.php:1500
|
| 98 |
+
msgid "Enter a comma-separated list of category and tag IDs to restrict search to those categories or tags. You can also use <code><input type='hidden' name='cat' value='list of cats and tags' /></code> in your search form. The input field will overrun this setting."
|
| 99 |
+
msgstr ""
|
| 100 |
+
|
| 101 |
+
#: relevanssi.php:1501
|
| 102 |
+
msgid "Exclude these categories and tags from search:"
|
| 103 |
+
msgstr ""
|
| 104 |
+
|
| 105 |
+
#: relevanssi.php:1502
|
| 106 |
+
msgid "Enter a comma-separated list of category and tag 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)."
|
| 107 |
+
msgstr ""
|
| 108 |
+
|
| 109 |
+
#: relevanssi.php:1505
|
| 110 |
+
msgid "Exclude these posts/pages from search:"
|
| 111 |
+
msgstr ""
|
| 112 |
+
|
| 113 |
+
#: relevanssi.php:1506
|
| 114 |
+
msgid "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)."
|
| 115 |
+
msgstr ""
|
| 116 |
+
|
| 117 |
+
#: relevanssi.php:1507
|
| 118 |
+
msgid "Index and search your posts' tags:"
|
| 119 |
+
msgstr ""
|
| 120 |
+
|
| 121 |
+
#: relevanssi.php:1508
|
| 122 |
+
msgid "If checked, Relevanssi will also index and search the tags of your posts. Remember to rebuild the index if you change this option!"
|
| 123 |
+
msgstr ""
|
| 124 |
+
|
| 125 |
+
#: relevanssi.php:1509
|
| 126 |
+
msgid "Index and search these comments:"
|
| 127 |
+
msgstr ""
|
| 128 |
+
|
| 129 |
+
#: relevanssi.php:1510
|
| 130 |
+
msgid "Relevanssi will index and search ALL (all comments including track- & pingbacks and custom comment types), NONE (no comments) or NORMAL (manually posted comments on your blog).<br />Remember to rebuild the index if you change this option!"
|
| 131 |
+
msgstr ""
|
| 132 |
+
|
| 133 |
+
#: relevanssi.php:1511
|
| 134 |
+
msgid "all"
|
| 135 |
+
msgstr ""
|
| 136 |
+
|
| 137 |
+
#: relevanssi.php:1512
|
| 138 |
+
msgid "normal"
|
| 139 |
+
msgstr ""
|
| 140 |
+
|
| 141 |
+
#: relevanssi.php:1513
|
| 142 |
+
msgid "none"
|
| 143 |
+
msgstr ""
|
| 144 |
+
|
| 145 |
+
#: relevanssi.php:1516
|
| 146 |
+
msgid "Create custom search result snippets:"
|
| 147 |
+
msgstr ""
|
| 148 |
+
|
| 149 |
+
#: relevanssi.php:1517
|
| 150 |
+
msgid "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."
|
| 151 |
+
msgstr ""
|
| 152 |
+
|
| 153 |
+
#: relevanssi.php:1518
|
| 154 |
+
msgid "Length of the snippet:"
|
| 155 |
+
msgstr ""
|
| 156 |
+
|
| 157 |
+
#: relevanssi.php:1519
|
| 158 |
+
msgid "This must be an integer."
|
| 159 |
+
msgstr ""
|
| 160 |
+
|
| 161 |
+
#: relevanssi.php:1520
|
| 162 |
+
msgid "words"
|
| 163 |
+
msgstr ""
|
| 164 |
+
|
| 165 |
+
#: relevanssi.php:1521
|
| 166 |
+
msgid "characters"
|
| 167 |
+
msgstr ""
|
| 168 |
+
|
| 169 |
+
#: relevanssi.php:1522
|
| 170 |
+
msgid "Keep a log of user queries:"
|
| 171 |
+
msgstr ""
|
| 172 |
+
|
| 173 |
+
#: relevanssi.php:1523
|
| 174 |
+
msgid "If checked, Relevanssi will log user queries."
|
| 175 |
+
msgstr ""
|
| 176 |
+
|
| 177 |
+
#: relevanssi.php:1524
|
| 178 |
+
msgid "Highlight query terms in search results:"
|
| 179 |
+
msgstr ""
|
| 180 |
+
|
| 181 |
+
#: relevanssi.php:1525
|
| 182 |
+
msgid "Highlighting isn't available unless you use custom snippets"
|
| 183 |
+
msgstr ""
|
| 184 |
+
|
| 185 |
+
#: relevanssi.php:1526
|
| 186 |
+
msgid "Highlight query terms in result titles too:"
|
| 187 |
+
msgstr ""
|
| 188 |
+
|
| 189 |
+
#: relevanssi.php:1529
|
| 190 |
+
msgid "Save"
|
| 191 |
+
msgstr ""
|
| 192 |
+
|
| 193 |
+
#: relevanssi.php:1530
|
| 194 |
+
msgid "Building the index and indexing options"
|
| 195 |
+
msgstr ""
|
| 196 |
+
|
| 197 |
+
#: relevanssi.php:1531
|
| 198 |
+
msgid "After installing the plugin, you need to build the index. This generally needs to be done once, you don't have to re-index unless something goes wrong. Indexing is a heavy task and might take more time than your servers allow. If the indexing cannot be finished - for example you get a blank screen or something like that after indexing - you can continue indexing from where you left by clicking 'Continue indexing'. Clicking 'Build the index' will delete the old index, so you can't use that."
|
| 199 |
+
msgstr ""
|
| 200 |
+
|
| 201 |
+
#: relevanssi.php:1532
|
| 202 |
+
msgid "So, if you build the index and don't get the 'Indexing complete' in the end, keep on clicking the 'Continue indexing' button until you do. On my blogs, I was able to index ~400 pages on one go, but had to continue indexing twice to index ~950 pages."
|
| 203 |
+
msgstr ""
|
| 204 |
+
|
| 205 |
+
#: relevanssi.php:1533
|
| 206 |
+
msgid "Save indexing options and build the index"
|
| 207 |
+
msgstr ""
|
| 208 |
+
|
| 209 |
+
#: relevanssi.php:1534
|
| 210 |
+
msgid "Continue indexing"
|
| 211 |
+
msgstr ""
|
| 212 |
+
|
| 213 |
+
#: relevanssi.php:1535
|
| 214 |
+
msgid "No highlighting"
|
| 215 |
+
msgstr ""
|
| 216 |
+
|
| 217 |
+
#: relevanssi.php:1536
|
| 218 |
+
msgid "Text color"
|
| 219 |
+
msgstr ""
|
| 220 |
+
|
| 221 |
+
#: relevanssi.php:1537
|
| 222 |
+
msgid "Background color"
|
| 223 |
+
msgstr ""
|
| 224 |
+
|
| 225 |
+
#: relevanssi.php:1538
|
| 226 |
+
msgid "CSS Style"
|
| 227 |
+
msgstr ""
|
| 228 |
+
|
| 229 |
+
#: relevanssi.php:1539
|
| 230 |
+
msgid "CSS Class"
|
| 231 |
+
msgstr ""
|
| 232 |
+
|
| 233 |
+
#: relevanssi.php:1541
|
| 234 |
+
msgid "Text color for highlights:"
|
| 235 |
+
msgstr ""
|
| 236 |
+
|
| 237 |
+
#: relevanssi.php:1542
|
| 238 |
+
msgid "Background color for highlights:"
|
| 239 |
+
msgstr ""
|
| 240 |
+
|
| 241 |
+
#: relevanssi.php:1543
|
| 242 |
+
msgid "CSS style for highlights:"
|
| 243 |
+
msgstr ""
|
| 244 |
+
|
| 245 |
+
#: relevanssi.php:1544
|
| 246 |
+
msgid "CSS class for highlights:"
|
| 247 |
+
msgstr ""
|
| 248 |
+
|
| 249 |
+
#: relevanssi.php:1546
|
| 250 |
+
#: relevanssi.php:1547
|
| 251 |
+
msgid "Use HTML color codes (#rgb or #rrggbb)"
|
| 252 |
+
msgstr ""
|
| 253 |
+
|
| 254 |
+
#: relevanssi.php:1548
|
| 255 |
+
msgid "You can use any CSS styling here, style will be inserted with a <span>"
|
| 256 |
+
msgstr ""
|
| 257 |
+
|
| 258 |
+
#: relevanssi.php:1549
|
| 259 |
+
msgid "Name a class here, search results will be wrapped in a <span> with the class"
|
| 260 |
+
msgstr ""
|
| 261 |
+
|
| 262 |
+
#: relevanssi.php:1551
|
| 263 |
+
msgid "What to include in the index"
|
| 264 |
+
msgstr ""
|
| 265 |
+
|
| 266 |
+
#: relevanssi.php:1552
|
| 267 |
+
msgid "Everything"
|
| 268 |
+
msgstr ""
|
| 269 |
+
|
| 270 |
+
#: relevanssi.php:1553
|
| 271 |
+
msgid "Just posts"
|
| 272 |
+
msgstr ""
|
| 273 |
+
|
| 274 |
+
#: relevanssi.php:1554
|
| 275 |
+
msgid "Just pages"
|
| 276 |
+
msgstr ""
|
| 277 |
+
|
| 278 |
+
#: relevanssi.php:1556
|
| 279 |
+
msgid "Custom fields to index:"
|
| 280 |
+
msgstr ""
|
| 281 |
+
|
| 282 |
+
#: relevanssi.php:1557
|
| 283 |
+
msgid "A comma-separated list of custom field names to include in the index."
|
| 284 |
+
msgstr ""
|
| 285 |
+
|
| 286 |
+
#: relevanssi.php:1559
|
| 287 |
+
msgid "Show breakdown of search hits in excerpts:"
|
| 288 |
+
msgstr ""
|
| 289 |
+
|
| 290 |
+
#: relevanssi.php:1560
|
| 291 |
+
msgid "Check this to show more information on where the search hits were made. Requires custom snippets to work."
|
| 292 |
+
msgstr ""
|
| 293 |
+
|
| 294 |
+
#: relevanssi.php:1561
|
| 295 |
+
msgid "The breakdown format:"
|
| 296 |
+
msgstr ""
|
| 297 |
+
|
| 298 |
+
#: relevanssi.php:1562
|
| 299 |
+
msgid "Use %body%, %title%, %tags%, %comments% and %score% to display the number of hits and the document weight."
|
| 300 |
+
msgstr ""
|
| 301 |
+
|
| 302 |
+
#: relevanssi.php:1564
|
| 303 |
+
msgid "When to use fuzzy matching?"
|
| 304 |
+
msgstr ""
|
| 305 |
+
|
| 306 |
+
#: relevanssi.php:1565
|
| 307 |
+
msgid "When straight search gets no hits"
|
| 308 |
+
msgstr ""
|
| 309 |
+
|
| 310 |
+
#: relevanssi.php:1566
|
| 311 |
+
msgid "Always"
|
| 312 |
+
msgstr ""
|
| 313 |
+
|
| 314 |
+
#: relevanssi.php:1567
|
| 315 |
+
msgid "Don't use fuzzy search"
|
| 316 |
+
msgstr ""
|
| 317 |
+
|
| 318 |
+
#: relevanssi.php:1568
|
| 319 |
+
msgid "Straight search matches just the term. Fuzzy search matches everything that begins or ends with the search term."
|
| 320 |
+
msgstr ""
|
| 321 |
+
|
stopwords/stopwords.de_DE
ADDED
|
@@ -0,0 +1,1037 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/*
|
| 3 |
+
Fetched from: http://feya.solariz.de/wp-content/uploads/stopwords.txt
|
| 4 |
+
|
| 5 |
+
GERMAN STOPWORDS
|
| 6 |
+
Zusammmengetragen von Marco Götze, Steffen Geyer
|
| 7 |
+
thx an Steffen für den Updateanstoß hatte den ewig vor mich her geschoben ;)
|
| 8 |
+
LAST UPDATE 13. March 2009
|
| 9 |
+
Besucht doch mal: www.solariz.de
|
| 10 |
+
*/
|
| 11 |
+
|
| 12 |
+
$stopwords = array(
|
| 13 |
+
"ab",
|
| 14 |
+
"bei",
|
| 15 |
+
"da",
|
| 16 |
+
"deshalb",
|
| 17 |
+
"ein",
|
| 18 |
+
"für",
|
| 19 |
+
"haben",
|
| 20 |
+
"hier",
|
| 21 |
+
"ich",
|
| 22 |
+
"ja",
|
| 23 |
+
"kann",
|
| 24 |
+
"machen",
|
| 25 |
+
"muesste",
|
| 26 |
+
"nach",
|
| 27 |
+
"oder",
|
| 28 |
+
"seid",
|
| 29 |
+
"sonst",
|
| 30 |
+
"und",
|
| 31 |
+
"vom",
|
| 32 |
+
"wann",
|
| 33 |
+
"wenn",
|
| 34 |
+
"wie",
|
| 35 |
+
"zu",
|
| 36 |
+
"bin",
|
| 37 |
+
"eines",
|
| 38 |
+
"hat",
|
| 39 |
+
"manche",
|
| 40 |
+
"solches",
|
| 41 |
+
"an",
|
| 42 |
+
"anderm",
|
| 43 |
+
"bis",
|
| 44 |
+
"das",
|
| 45 |
+
"deinem",
|
| 46 |
+
"demselben",
|
| 47 |
+
"dir",
|
| 48 |
+
"doch",
|
| 49 |
+
"einig",
|
| 50 |
+
"er",
|
| 51 |
+
"eurer",
|
| 52 |
+
"hatte",
|
| 53 |
+
"ihnen",
|
| 54 |
+
"ihre",
|
| 55 |
+
"ins",
|
| 56 |
+
"jenen",
|
| 57 |
+
"keinen",
|
| 58 |
+
"manchem",
|
| 59 |
+
"meinen",
|
| 60 |
+
"nichts",
|
| 61 |
+
"seine",
|
| 62 |
+
"soll",
|
| 63 |
+
"unserm",
|
| 64 |
+
"welche",
|
| 65 |
+
"werden",
|
| 66 |
+
"wollte",
|
| 67 |
+
"während",
|
| 68 |
+
"alle",
|
| 69 |
+
"allem",
|
| 70 |
+
"allen",
|
| 71 |
+
"aller",
|
| 72 |
+
"alles",
|
| 73 |
+
"als",
|
| 74 |
+
"also",
|
| 75 |
+
"am",
|
| 76 |
+
"ander",
|
| 77 |
+
"andere",
|
| 78 |
+
"anderem",
|
| 79 |
+
"anderen",
|
| 80 |
+
"anderer",
|
| 81 |
+
"anderes",
|
| 82 |
+
"andern",
|
| 83 |
+
"anderr",
|
| 84 |
+
"anders",
|
| 85 |
+
"auch",
|
| 86 |
+
"auf",
|
| 87 |
+
"aus",
|
| 88 |
+
"bist",
|
| 89 |
+
"bsp.",
|
| 90 |
+
"daher",
|
| 91 |
+
"damit",
|
| 92 |
+
"dann",
|
| 93 |
+
"dasselbe",
|
| 94 |
+
"dazu",
|
| 95 |
+
"daß",
|
| 96 |
+
"dein",
|
| 97 |
+
"deine",
|
| 98 |
+
"deinen",
|
| 99 |
+
"deiner",
|
| 100 |
+
"deines",
|
| 101 |
+
"dem",
|
| 102 |
+
"den",
|
| 103 |
+
"denn",
|
| 104 |
+
"denselben",
|
| 105 |
+
"der",
|
| 106 |
+
"derer",
|
| 107 |
+
"derselbe",
|
| 108 |
+
"derselben",
|
| 109 |
+
"des",
|
| 110 |
+
"desselben",
|
| 111 |
+
"dessen",
|
| 112 |
+
"dich",
|
| 113 |
+
"die",
|
| 114 |
+
"dies",
|
| 115 |
+
"diese",
|
| 116 |
+
"dieselbe",
|
| 117 |
+
"dieselben",
|
| 118 |
+
"diesem",
|
| 119 |
+
"diesen",
|
| 120 |
+
"dieser",
|
| 121 |
+
"dieses",
|
| 122 |
+
"dort",
|
| 123 |
+
"du",
|
| 124 |
+
"durch",
|
| 125 |
+
"eine",
|
| 126 |
+
"einem",
|
| 127 |
+
"einen",
|
| 128 |
+
"einer",
|
| 129 |
+
"einige",
|
| 130 |
+
"einigem",
|
| 131 |
+
"einigen",
|
| 132 |
+
"einiger",
|
| 133 |
+
"einiges",
|
| 134 |
+
"einmal",
|
| 135 |
+
"es",
|
| 136 |
+
"etwas",
|
| 137 |
+
"euch",
|
| 138 |
+
"euer",
|
| 139 |
+
"eure",
|
| 140 |
+
"eurem",
|
| 141 |
+
"euren",
|
| 142 |
+
"eures",
|
| 143 |
+
"ganz",
|
| 144 |
+
"ganze",
|
| 145 |
+
"ganzen",
|
| 146 |
+
"ganzer",
|
| 147 |
+
"ganzes",
|
| 148 |
+
"gegen",
|
| 149 |
+
"gemacht",
|
| 150 |
+
"gesagt",
|
| 151 |
+
"gesehen",
|
| 152 |
+
"gewesen",
|
| 153 |
+
"gewollt",
|
| 154 |
+
"hab",
|
| 155 |
+
"habe",
|
| 156 |
+
"hatten",
|
| 157 |
+
"hin",
|
| 158 |
+
"hinter",
|
| 159 |
+
"ihm",
|
| 160 |
+
"ihn",
|
| 161 |
+
"ihr",
|
| 162 |
+
"ihrem",
|
| 163 |
+
"ihren",
|
| 164 |
+
"ihrer",
|
| 165 |
+
"ihres",
|
| 166 |
+
"im",
|
| 167 |
+
"in",
|
| 168 |
+
"indem",
|
| 169 |
+
"ist",
|
| 170 |
+
"jede",
|
| 171 |
+
"jedem",
|
| 172 |
+
"jeden",
|
| 173 |
+
"jeder",
|
| 174 |
+
"jedes",
|
| 175 |
+
"jene",
|
| 176 |
+
"jenem",
|
| 177 |
+
"jener",
|
| 178 |
+
"jenes",
|
| 179 |
+
"jetzt",
|
| 180 |
+
"kein",
|
| 181 |
+
"keine",
|
| 182 |
+
"keinem",
|
| 183 |
+
"keiner",
|
| 184 |
+
"keines",
|
| 185 |
+
"konnte",
|
| 186 |
+
"können",
|
| 187 |
+
"könnte",
|
| 188 |
+
"mache",
|
| 189 |
+
"machst",
|
| 190 |
+
"macht",
|
| 191 |
+
"machte",
|
| 192 |
+
"machten",
|
| 193 |
+
"man",
|
| 194 |
+
"manchen",
|
| 195 |
+
"mancher",
|
| 196 |
+
"manches",
|
| 197 |
+
"mein",
|
| 198 |
+
"meine",
|
| 199 |
+
"meinem",
|
| 200 |
+
"meiner",
|
| 201 |
+
"meines",
|
| 202 |
+
"mich",
|
| 203 |
+
"mir",
|
| 204 |
+
"mit",
|
| 205 |
+
"muss",
|
| 206 |
+
"musste",
|
| 207 |
+
"müßt",
|
| 208 |
+
"nicht",
|
| 209 |
+
"noch",
|
| 210 |
+
"nun",
|
| 211 |
+
"nur",
|
| 212 |
+
"ob",
|
| 213 |
+
"ohne",
|
| 214 |
+
"sage",
|
| 215 |
+
"sagen",
|
| 216 |
+
"sagt",
|
| 217 |
+
"sagte",
|
| 218 |
+
"sagten",
|
| 219 |
+
"sagtest",
|
| 220 |
+
"sehe",
|
| 221 |
+
"sehen",
|
| 222 |
+
"sehr",
|
| 223 |
+
"seht",
|
| 224 |
+
"sein",
|
| 225 |
+
"seinem",
|
| 226 |
+
"seinen",
|
| 227 |
+
"seiner",
|
| 228 |
+
"seines",
|
| 229 |
+
"selbst",
|
| 230 |
+
"sich",
|
| 231 |
+
"sicher",
|
| 232 |
+
"sie",
|
| 233 |
+
"sind",
|
| 234 |
+
"so",
|
| 235 |
+
"solche",
|
| 236 |
+
"solchem",
|
| 237 |
+
"solchen",
|
| 238 |
+
"solcher",
|
| 239 |
+
"sollte",
|
| 240 |
+
"sondern",
|
| 241 |
+
"um",
|
| 242 |
+
"uns",
|
| 243 |
+
"unse",
|
| 244 |
+
"unsen",
|
| 245 |
+
"unser",
|
| 246 |
+
"unses",
|
| 247 |
+
"unter",
|
| 248 |
+
"viel",
|
| 249 |
+
"von",
|
| 250 |
+
"vor",
|
| 251 |
+
"war",
|
| 252 |
+
"waren",
|
| 253 |
+
"warst",
|
| 254 |
+
"was",
|
| 255 |
+
"weg",
|
| 256 |
+
"weil",
|
| 257 |
+
"weiter",
|
| 258 |
+
"welchem",
|
| 259 |
+
"welchen",
|
| 260 |
+
"welcher",
|
| 261 |
+
"welches",
|
| 262 |
+
"werde",
|
| 263 |
+
"wieder",
|
| 264 |
+
"will",
|
| 265 |
+
"wir",
|
| 266 |
+
"wird",
|
| 267 |
+
"wirst",
|
| 268 |
+
"wo",
|
| 269 |
+
"wolle",
|
| 270 |
+
"wollen",
|
| 271 |
+
"wollt",
|
| 272 |
+
"wollten",
|
| 273 |
+
"wolltest",
|
| 274 |
+
"wolltet",
|
| 275 |
+
"würde",
|
| 276 |
+
"würden",
|
| 277 |
+
"z.B.",
|
| 278 |
+
"zum",
|
| 279 |
+
"zur",
|
| 280 |
+
"zwar",
|
| 281 |
+
"zwischen",
|
| 282 |
+
"über",
|
| 283 |
+
"aber",
|
| 284 |
+
"abgerufen",
|
| 285 |
+
"abgerufene",
|
| 286 |
+
"abgerufener",
|
| 287 |
+
"abgerufenes",
|
| 288 |
+
"acht",
|
| 289 |
+
"acute",
|
| 290 |
+
"allein",
|
| 291 |
+
"allerdings",
|
| 292 |
+
"allerlei",
|
| 293 |
+
"allg",
|
| 294 |
+
"allgemein",
|
| 295 |
+
"allmählich",
|
| 296 |
+
"allzu",
|
| 297 |
+
"alsbald",
|
| 298 |
+
"amp",
|
| 299 |
+
"and",
|
| 300 |
+
"andererseits",
|
| 301 |
+
"andernfalls",
|
| 302 |
+
"anerkannt",
|
| 303 |
+
"anerkannte",
|
| 304 |
+
"anerkannter",
|
| 305 |
+
"anerkanntes",
|
| 306 |
+
"anfangen",
|
| 307 |
+
"anfing",
|
| 308 |
+
"angefangen",
|
| 309 |
+
"angesetze",
|
| 310 |
+
"angesetzt",
|
| 311 |
+
"angesetzten",
|
| 312 |
+
"angesetzter",
|
| 313 |
+
"ansetzen",
|
| 314 |
+
"anstatt",
|
| 315 |
+
"arbeiten",
|
| 316 |
+
"aufgehört",
|
| 317 |
+
"aufgrund",
|
| 318 |
+
"aufhören",
|
| 319 |
+
"aufhörte",
|
| 320 |
+
"aufzusuchen",
|
| 321 |
+
"ausdrücken",
|
| 322 |
+
"ausdrückt",
|
| 323 |
+
"ausdrückte",
|
| 324 |
+
"ausgenommen",
|
| 325 |
+
"ausser",
|
| 326 |
+
"ausserdem",
|
| 327 |
+
"author",
|
| 328 |
+
"autor",
|
| 329 |
+
"außen",
|
| 330 |
+
"außer",
|
| 331 |
+
"außerdem",
|
| 332 |
+
"außerhalb",
|
| 333 |
+
"background",
|
| 334 |
+
"bald",
|
| 335 |
+
"bearbeite",
|
| 336 |
+
"bearbeiten",
|
| 337 |
+
"bearbeitete",
|
| 338 |
+
"bearbeiteten",
|
| 339 |
+
"bedarf",
|
| 340 |
+
"bedurfte",
|
| 341 |
+
"bedürfen",
|
| 342 |
+
"been",
|
| 343 |
+
"befragen",
|
| 344 |
+
"befragte",
|
| 345 |
+
"befragten",
|
| 346 |
+
"befragter",
|
| 347 |
+
"begann",
|
| 348 |
+
"beginnen",
|
| 349 |
+
"begonnen",
|
| 350 |
+
"behalten",
|
| 351 |
+
"behielt",
|
| 352 |
+
"beide",
|
| 353 |
+
"beiden",
|
| 354 |
+
"beiderlei",
|
| 355 |
+
"beides",
|
| 356 |
+
"beim",
|
| 357 |
+
"beinahe",
|
| 358 |
+
"beitragen",
|
| 359 |
+
"beitrugen",
|
| 360 |
+
"bekannt",
|
| 361 |
+
"bekannte",
|
| 362 |
+
"bekannter",
|
| 363 |
+
"bekennen",
|
| 364 |
+
"benutzt",
|
| 365 |
+
"bereits",
|
| 366 |
+
"berichten",
|
| 367 |
+
"berichtet",
|
| 368 |
+
"berichtete",
|
| 369 |
+
"berichteten",
|
| 370 |
+
"besonders",
|
| 371 |
+
"besser",
|
| 372 |
+
"bestehen",
|
| 373 |
+
"besteht",
|
| 374 |
+
"beträchtlich",
|
| 375 |
+
"bevor",
|
| 376 |
+
"bezüglich",
|
| 377 |
+
"bietet",
|
| 378 |
+
"bisher",
|
| 379 |
+
"bislang",
|
| 380 |
+
"biz",
|
| 381 |
+
"bleiben",
|
| 382 |
+
"blieb",
|
| 383 |
+
"bloss",
|
| 384 |
+
"bloß",
|
| 385 |
+
"border",
|
| 386 |
+
"brachte",
|
| 387 |
+
"brachten",
|
| 388 |
+
"brauchen",
|
| 389 |
+
"braucht",
|
| 390 |
+
"bringen",
|
| 391 |
+
"bräuchte",
|
| 392 |
+
"bzw",
|
| 393 |
+
"böden",
|
| 394 |
+
"ca",
|
| 395 |
+
"ca.",
|
| 396 |
+
"collapsed",
|
| 397 |
+
"com",
|
| 398 |
+
"comment",
|
| 399 |
+
"content",
|
| 400 |
+
"da?",
|
| 401 |
+
"dabei",
|
| 402 |
+
"dadurch",
|
| 403 |
+
"dafür",
|
| 404 |
+
"dagegen",
|
| 405 |
+
"dahin",
|
| 406 |
+
"damals",
|
| 407 |
+
"danach",
|
| 408 |
+
"daneben",
|
| 409 |
+
"dank",
|
| 410 |
+
"danke",
|
| 411 |
+
"danken",
|
| 412 |
+
"dannen",
|
| 413 |
+
"daran",
|
| 414 |
+
"darauf",
|
| 415 |
+
"daraus",
|
| 416 |
+
"darf",
|
| 417 |
+
"darfst",
|
| 418 |
+
"darin",
|
| 419 |
+
"darum",
|
| 420 |
+
"darunter",
|
| 421 |
+
"darüber",
|
| 422 |
+
"darüberhinaus",
|
| 423 |
+
"dass",
|
| 424 |
+
"davon",
|
| 425 |
+
"davor",
|
| 426 |
+
"demnach",
|
| 427 |
+
"denen",
|
| 428 |
+
"dennoch",
|
| 429 |
+
"derart",
|
| 430 |
+
"derartig",
|
| 431 |
+
"derem",
|
| 432 |
+
"deren",
|
| 433 |
+
"derjenige",
|
| 434 |
+
"derjenigen",
|
| 435 |
+
"derzeit",
|
| 436 |
+
"desto",
|
| 437 |
+
"deswegen",
|
| 438 |
+
"diejenige",
|
| 439 |
+
"diesseits",
|
| 440 |
+
"dinge",
|
| 441 |
+
"direkt",
|
| 442 |
+
"direkte",
|
| 443 |
+
"direkten",
|
| 444 |
+
"direkter",
|
| 445 |
+
"doc",
|
| 446 |
+
"doppelt",
|
| 447 |
+
"dorther",
|
| 448 |
+
"dorthin",
|
| 449 |
+
"drauf",
|
| 450 |
+
"drei",
|
| 451 |
+
"dreißig",
|
| 452 |
+
"drin",
|
| 453 |
+
"dritte",
|
| 454 |
+
"drunter",
|
| 455 |
+
"drüber",
|
| 456 |
+
"dunklen",
|
| 457 |
+
"durchaus",
|
| 458 |
+
"durfte",
|
| 459 |
+
"durften",
|
| 460 |
+
"dürfen",
|
| 461 |
+
"dürfte",
|
| 462 |
+
"eben",
|
| 463 |
+
"ebenfalls",
|
| 464 |
+
"ebenso",
|
| 465 |
+
"ehe",
|
| 466 |
+
"eher",
|
| 467 |
+
"eigenen",
|
| 468 |
+
"eigenes",
|
| 469 |
+
"eigentlich",
|
| 470 |
+
"einbaün",
|
| 471 |
+
"einerseits",
|
| 472 |
+
"einfach",
|
| 473 |
+
"einführen",
|
| 474 |
+
"einführte",
|
| 475 |
+
"einführten",
|
| 476 |
+
"eingesetzt",
|
| 477 |
+
"einigermaßen",
|
| 478 |
+
"eins",
|
| 479 |
+
"einseitig",
|
| 480 |
+
"einseitige",
|
| 481 |
+
"einseitigen",
|
| 482 |
+
"einseitiger",
|
| 483 |
+
"einst",
|
| 484 |
+
"einstmals",
|
| 485 |
+
"einzig",
|
| 486 |
+
"elf",
|
| 487 |
+
"ende",
|
| 488 |
+
"entsprechend",
|
| 489 |
+
"entweder",
|
| 490 |
+
"ergänze",
|
| 491 |
+
"ergänzen",
|
| 492 |
+
"ergänzte",
|
| 493 |
+
"ergänzten",
|
| 494 |
+
"erhalten",
|
| 495 |
+
"erhielt",
|
| 496 |
+
"erhielten",
|
| 497 |
+
"erhält",
|
| 498 |
+
"erneut",
|
| 499 |
+
"erst",
|
| 500 |
+
"erste",
|
| 501 |
+
"ersten",
|
| 502 |
+
"erster",
|
| 503 |
+
"eröffne",
|
| 504 |
+
"eröffnen",
|
| 505 |
+
"eröffnet",
|
| 506 |
+
"eröffnete",
|
| 507 |
+
"eröffnetes",
|
| 508 |
+
"etc",
|
| 509 |
+
"etliche",
|
| 510 |
+
"etwa",
|
| 511 |
+
"fall",
|
| 512 |
+
"falls",
|
| 513 |
+
"fand",
|
| 514 |
+
"fast",
|
| 515 |
+
"ferner",
|
| 516 |
+
"finden",
|
| 517 |
+
"findest",
|
| 518 |
+
"findet",
|
| 519 |
+
"folgende",
|
| 520 |
+
"folgenden",
|
| 521 |
+
"folgender",
|
| 522 |
+
"folgendes",
|
| 523 |
+
"folglich",
|
| 524 |
+
"for",
|
| 525 |
+
"fordern",
|
| 526 |
+
"fordert",
|
| 527 |
+
"forderte",
|
| 528 |
+
"forderten",
|
| 529 |
+
"fortsetzen",
|
| 530 |
+
"fortsetzt",
|
| 531 |
+
"fortsetzte",
|
| 532 |
+
"fortsetzten",
|
| 533 |
+
"fragte",
|
| 534 |
+
"frau",
|
| 535 |
+
"frei",
|
| 536 |
+
"freie",
|
| 537 |
+
"freier",
|
| 538 |
+
"freies",
|
| 539 |
+
"fuer",
|
| 540 |
+
"fünf",
|
| 541 |
+
"gab",
|
| 542 |
+
"ganzem",
|
| 543 |
+
"gar",
|
| 544 |
+
"gbr",
|
| 545 |
+
"geb",
|
| 546 |
+
"geben",
|
| 547 |
+
"geblieben",
|
| 548 |
+
"gebracht",
|
| 549 |
+
"gedurft",
|
| 550 |
+
"geehrt",
|
| 551 |
+
"geehrte",
|
| 552 |
+
"geehrten",
|
| 553 |
+
"geehrter",
|
| 554 |
+
"gefallen",
|
| 555 |
+
"gefiel",
|
| 556 |
+
"gefälligst",
|
| 557 |
+
"gefällt",
|
| 558 |
+
"gegeben",
|
| 559 |
+
"gehabt",
|
| 560 |
+
"gehen",
|
| 561 |
+
"geht",
|
| 562 |
+
"gekommen",
|
| 563 |
+
"gekonnt",
|
| 564 |
+
"gemocht",
|
| 565 |
+
"gemäss",
|
| 566 |
+
"genommen",
|
| 567 |
+
"genug",
|
| 568 |
+
"gern",
|
| 569 |
+
"gestern",
|
| 570 |
+
"gestrige",
|
| 571 |
+
"getan",
|
| 572 |
+
"geteilt",
|
| 573 |
+
"geteilte",
|
| 574 |
+
"getragen",
|
| 575 |
+
"gewissermaßen",
|
| 576 |
+
"geworden",
|
| 577 |
+
"ggf",
|
| 578 |
+
"gib",
|
| 579 |
+
"gibt",
|
| 580 |
+
"gleich",
|
| 581 |
+
"gleichwohl",
|
| 582 |
+
"gleichzeitig",
|
| 583 |
+
"glücklicherweise",
|
| 584 |
+
"gmbh",
|
| 585 |
+
"gratulieren",
|
| 586 |
+
"gratuliert",
|
| 587 |
+
"gratulierte",
|
| 588 |
+
"gute",
|
| 589 |
+
"guten",
|
| 590 |
+
"gängig",
|
| 591 |
+
"gängige",
|
| 592 |
+
"gängigen",
|
| 593 |
+
"gängiger",
|
| 594 |
+
"gängiges",
|
| 595 |
+
"gänzlich",
|
| 596 |
+
"haette",
|
| 597 |
+
"halb",
|
| 598 |
+
"hallo",
|
| 599 |
+
"hast",
|
| 600 |
+
"hattest",
|
| 601 |
+
"hattet",
|
| 602 |
+
"heraus",
|
| 603 |
+
"herein",
|
| 604 |
+
"heute",
|
| 605 |
+
"heutige",
|
| 606 |
+
"hiermit",
|
| 607 |
+
"hiesige",
|
| 608 |
+
"hinein",
|
| 609 |
+
"hinten",
|
| 610 |
+
"hinterher",
|
| 611 |
+
"hoch",
|
| 612 |
+
"html",
|
| 613 |
+
"http",
|
| 614 |
+
"hundert",
|
| 615 |
+
"hätt",
|
| 616 |
+
"hätte",
|
| 617 |
+
"hätten",
|
| 618 |
+
"höchstens",
|
| 619 |
+
"igitt",
|
| 620 |
+
"image",
|
| 621 |
+
"immer",
|
| 622 |
+
"immerhin",
|
| 623 |
+
"important",
|
| 624 |
+
"indessen",
|
| 625 |
+
"info",
|
| 626 |
+
"infolge",
|
| 627 |
+
"innen",
|
| 628 |
+
"innerhalb",
|
| 629 |
+
"insofern",
|
| 630 |
+
"inzwischen",
|
| 631 |
+
"irgend",
|
| 632 |
+
"irgendeine",
|
| 633 |
+
"irgendwas",
|
| 634 |
+
"irgendwen",
|
| 635 |
+
"irgendwer",
|
| 636 |
+
"irgendwie",
|
| 637 |
+
"irgendwo",
|
| 638 |
+
"je",
|
| 639 |
+
"jed",
|
| 640 |
+
"jedenfalls",
|
| 641 |
+
"jederlei",
|
| 642 |
+
"jedoch",
|
| 643 |
+
"jemand",
|
| 644 |
+
"jenseits",
|
| 645 |
+
"jährig",
|
| 646 |
+
"jährige",
|
| 647 |
+
"jährigen",
|
| 648 |
+
"jähriges",
|
| 649 |
+
"kam",
|
| 650 |
+
"kannst",
|
| 651 |
+
"kaum",
|
| 652 |
+
"kei nes",
|
| 653 |
+
"keinerlei",
|
| 654 |
+
"keineswegs",
|
| 655 |
+
"klar",
|
| 656 |
+
"klare",
|
| 657 |
+
"klaren",
|
| 658 |
+
"klares",
|
| 659 |
+
"klein",
|
| 660 |
+
"kleinen",
|
| 661 |
+
"kleiner",
|
| 662 |
+
"kleines",
|
| 663 |
+
"koennen",
|
| 664 |
+
"koennt",
|
| 665 |
+
"koennte",
|
| 666 |
+
"koennten",
|
| 667 |
+
"komme",
|
| 668 |
+
"kommen",
|
| 669 |
+
"kommt",
|
| 670 |
+
"konkret",
|
| 671 |
+
"konkrete",
|
| 672 |
+
"konkreten",
|
| 673 |
+
"konkreter",
|
| 674 |
+
"konkretes",
|
| 675 |
+
"konnten",
|
| 676 |
+
"könn",
|
| 677 |
+
"könnt",
|
| 678 |
+
"könnten",
|
| 679 |
+
"künftig",
|
| 680 |
+
"lag",
|
| 681 |
+
"lagen",
|
| 682 |
+
"langsam",
|
| 683 |
+
"lassen",
|
| 684 |
+
"laut",
|
| 685 |
+
"lediglich",
|
| 686 |
+
"leer",
|
| 687 |
+
"legen",
|
| 688 |
+
"legte",
|
| 689 |
+
"legten",
|
| 690 |
+
"leicht",
|
| 691 |
+
"leider",
|
| 692 |
+
"lesen",
|
| 693 |
+
"letze",
|
| 694 |
+
"letzten",
|
| 695 |
+
"letztendlich",
|
| 696 |
+
"letztens",
|
| 697 |
+
"letztes",
|
| 698 |
+
"letztlich",
|
| 699 |
+
"lichten",
|
| 700 |
+
"liegt",
|
| 701 |
+
"liest",
|
| 702 |
+
"links",
|
| 703 |
+
"längst",
|
| 704 |
+
"längstens",
|
| 705 |
+
"mag",
|
| 706 |
+
"magst",
|
| 707 |
+
"mal",
|
| 708 |
+
"mancherorts",
|
| 709 |
+
"manchmal",
|
| 710 |
+
"mann",
|
| 711 |
+
"margin",
|
| 712 |
+
"med",
|
| 713 |
+
"mehr",
|
| 714 |
+
"mehrere",
|
| 715 |
+
"meist",
|
| 716 |
+
"meiste",
|
| 717 |
+
"meisten",
|
| 718 |
+
"meta",
|
| 719 |
+
"mindestens",
|
| 720 |
+
"mithin",
|
| 721 |
+
"mochte",
|
| 722 |
+
"morgen",
|
| 723 |
+
"morgige",
|
| 724 |
+
"muessen",
|
| 725 |
+
"muesst",
|
| 726 |
+
"musst",
|
| 727 |
+
"mussten",
|
| 728 |
+
"muß",
|
| 729 |
+
"mußt",
|
| 730 |
+
"möchte",
|
| 731 |
+
"möchten",
|
| 732 |
+
"möchtest",
|
| 733 |
+
"mögen",
|
| 734 |
+
"möglich",
|
| 735 |
+
"mögliche",
|
| 736 |
+
"möglichen",
|
| 737 |
+
"möglicher",
|
| 738 |
+
"möglicherweise",
|
| 739 |
+
"müssen",
|
| 740 |
+
"müsste",
|
| 741 |
+
"müssten",
|
| 742 |
+
"müßte",
|
| 743 |
+
"nachdem",
|
| 744 |
+
"nacher",
|
| 745 |
+
"nachhinein",
|
| 746 |
+
"nahm",
|
| 747 |
+
"natürlich",
|
| 748 |
+
"ncht",
|
| 749 |
+
"neben",
|
| 750 |
+
"nebenan",
|
| 751 |
+
"nehmen",
|
| 752 |
+
"nein",
|
| 753 |
+
"neu",
|
| 754 |
+
"neue",
|
| 755 |
+
"neuem",
|
| 756 |
+
"neuen",
|
| 757 |
+
"neuer",
|
| 758 |
+
"neues",
|
| 759 |
+
"neun",
|
| 760 |
+
"nie",
|
| 761 |
+
"niemals",
|
| 762 |
+
"niemand",
|
| 763 |
+
"nimm",
|
| 764 |
+
"nimmer",
|
| 765 |
+
"nimmt",
|
| 766 |
+
"nirgends",
|
| 767 |
+
"nirgendwo",
|
| 768 |
+
"nter",
|
| 769 |
+
"nutzen",
|
| 770 |
+
"nutzt",
|
| 771 |
+
"nutzung",
|
| 772 |
+
"nächste",
|
| 773 |
+
"nämlich",
|
| 774 |
+
"nötigenfalls",
|
| 775 |
+
"nützt",
|
| 776 |
+
"oben",
|
| 777 |
+
"oberhalb",
|
| 778 |
+
"obgleich",
|
| 779 |
+
"obschon",
|
| 780 |
+
"obwohl",
|
| 781 |
+
"oft",
|
| 782 |
+
"online",
|
| 783 |
+
"org",
|
| 784 |
+
"padding",
|
| 785 |
+
"per",
|
| 786 |
+
"pfui",
|
| 787 |
+
"plötzlich",
|
| 788 |
+
"pro",
|
| 789 |
+
"reagiere",
|
| 790 |
+
"reagieren",
|
| 791 |
+
"reagiert",
|
| 792 |
+
"reagierte",
|
| 793 |
+
"rechts",
|
| 794 |
+
"regelmäßig",
|
| 795 |
+
"rief",
|
| 796 |
+
"rund",
|
| 797 |
+
"sang",
|
| 798 |
+
"sangen",
|
| 799 |
+
"schlechter",
|
| 800 |
+
"schließlich",
|
| 801 |
+
"schnell",
|
| 802 |
+
"schon",
|
| 803 |
+
"schreibe",
|
| 804 |
+
"schreiben",
|
| 805 |
+
"schreibens",
|
| 806 |
+
"schreiber",
|
| 807 |
+
"schwierig",
|
| 808 |
+
"schätzen",
|
| 809 |
+
"schätzt",
|
| 810 |
+
"schätzte",
|
| 811 |
+
"schätzten",
|
| 812 |
+
"sechs",
|
| 813 |
+
"sect",
|
| 814 |
+
"sehrwohl",
|
| 815 |
+
"sei",
|
| 816 |
+
"seit",
|
| 817 |
+
"seitdem",
|
| 818 |
+
"seite",
|
| 819 |
+
"seiten",
|
| 820 |
+
"seither",
|
| 821 |
+
"selber",
|
| 822 |
+
"senke",
|
| 823 |
+
"senken",
|
| 824 |
+
"senkt",
|
| 825 |
+
"senkte",
|
| 826 |
+
"senkten",
|
| 827 |
+
"setzen",
|
| 828 |
+
"setzt",
|
| 829 |
+
"setzte",
|
| 830 |
+
"setzten",
|
| 831 |
+
"sicherlich",
|
| 832 |
+
"sieben",
|
| 833 |
+
"siebte",
|
| 834 |
+
"siehe",
|
| 835 |
+
"sieht",
|
| 836 |
+
"singen",
|
| 837 |
+
"singt",
|
| 838 |
+
"sobald",
|
| 839 |
+
"sodaß",
|
| 840 |
+
"soeben",
|
| 841 |
+
"sofern",
|
| 842 |
+
"sofort",
|
| 843 |
+
"sog",
|
| 844 |
+
"sogar",
|
| 845 |
+
"solange",
|
| 846 |
+
"solc hen",
|
| 847 |
+
"solch",
|
| 848 |
+
"sollen",
|
| 849 |
+
"sollst",
|
| 850 |
+
"sollt",
|
| 851 |
+
"sollten",
|
| 852 |
+
"solltest",
|
| 853 |
+
"somit",
|
| 854 |
+
"sonstwo",
|
| 855 |
+
"sooft",
|
| 856 |
+
"soviel",
|
| 857 |
+
"soweit",
|
| 858 |
+
"sowie",
|
| 859 |
+
"sowohl",
|
| 860 |
+
"spielen",
|
| 861 |
+
"später",
|
| 862 |
+
"startet",
|
| 863 |
+
"startete",
|
| 864 |
+
"starteten",
|
| 865 |
+
"statt",
|
| 866 |
+
"stattdessen",
|
| 867 |
+
"steht",
|
| 868 |
+
"steige",
|
| 869 |
+
"steigen",
|
| 870 |
+
"steigt",
|
| 871 |
+
"stets",
|
| 872 |
+
"stieg",
|
| 873 |
+
"stiegen",
|
| 874 |
+
"such",
|
| 875 |
+
"suchen",
|
| 876 |
+
"sämtliche",
|
| 877 |
+
"tages",
|
| 878 |
+
"tat",
|
| 879 |
+
"tatsächlich",
|
| 880 |
+
"tatsächlichen",
|
| 881 |
+
"tatsächlicher",
|
| 882 |
+
"tatsächliches",
|
| 883 |
+
"tausend",
|
| 884 |
+
"teile",
|
| 885 |
+
"teilen",
|
| 886 |
+
"teilte",
|
| 887 |
+
"teilten",
|
| 888 |
+
"titel",
|
| 889 |
+
"total",
|
| 890 |
+
"trage",
|
| 891 |
+
"tragen",
|
| 892 |
+
"trotzdem",
|
| 893 |
+
"trug",
|
| 894 |
+
"trägt",
|
| 895 |
+
"tun",
|
| 896 |
+
"tust",
|
| 897 |
+
"tut",
|
| 898 |
+
"txt",
|
| 899 |
+
"tät",
|
| 900 |
+
"ueber",
|
| 901 |
+
"umso",
|
| 902 |
+
"unbedingt",
|
| 903 |
+
"ungefähr",
|
| 904 |
+
"unmöglich",
|
| 905 |
+
"unmögliche",
|
| 906 |
+
"unmöglichen",
|
| 907 |
+
"unmöglicher",
|
| 908 |
+
"unnötig",
|
| 909 |
+
"unsem",
|
| 910 |
+
"unser",
|
| 911 |
+
"unsere",
|
| 912 |
+
"unserem",
|
| 913 |
+
"unseren",
|
| 914 |
+
"unserer",
|
| 915 |
+
"unseres",
|
| 916 |
+
"unten",
|
| 917 |
+
"unterbrach",
|
| 918 |
+
"unterbrechen",
|
| 919 |
+
"unterhalb",
|
| 920 |
+
"unwichtig",
|
| 921 |
+
"usw",
|
| 922 |
+
"var",
|
| 923 |
+
"vergangen",
|
| 924 |
+
"vergangene",
|
| 925 |
+
"vergangener",
|
| 926 |
+
"vergangenes",
|
| 927 |
+
"vermag",
|
| 928 |
+
"vermutlich",
|
| 929 |
+
"vermögen",
|
| 930 |
+
"verrate",
|
| 931 |
+
"verraten",
|
| 932 |
+
"verriet",
|
| 933 |
+
"verrieten",
|
| 934 |
+
"version",
|
| 935 |
+
"versorge",
|
| 936 |
+
"versorgen",
|
| 937 |
+
"versorgt",
|
| 938 |
+
"versorgte",
|
| 939 |
+
"versorgten",
|
| 940 |
+
"versorgtes",
|
| 941 |
+
"veröffentlichen",
|
| 942 |
+
"veröffentlicher",
|
| 943 |
+
"veröffentlicht",
|
| 944 |
+
"veröffentlichte",
|
| 945 |
+
"veröffentlichten",
|
| 946 |
+
"veröffentlichtes",
|
| 947 |
+
"viele",
|
| 948 |
+
"vielen",
|
| 949 |
+
"vieler",
|
| 950 |
+
"vieles",
|
| 951 |
+
"vielleicht",
|
| 952 |
+
"vielmals",
|
| 953 |
+
"vier",
|
| 954 |
+
"vollständig",
|
| 955 |
+
"voran",
|
| 956 |
+
"vorbei",
|
| 957 |
+
"vorgestern",
|
| 958 |
+
"vorher",
|
| 959 |
+
"vorne",
|
| 960 |
+
"vorüber",
|
| 961 |
+
"völlig",
|
| 962 |
+
"während",
|
| 963 |
+
"wachen",
|
| 964 |
+
"waere",
|
| 965 |
+
"warum",
|
| 966 |
+
"weder",
|
| 967 |
+
"wegen",
|
| 968 |
+
"weitere",
|
| 969 |
+
"weiterem",
|
| 970 |
+
"weiteren",
|
| 971 |
+
"weiterer",
|
| 972 |
+
"weiteres",
|
| 973 |
+
"weiterhin",
|
| 974 |
+
"weiß",
|
| 975 |
+
"wem",
|
| 976 |
+
"wen",
|
| 977 |
+
"wenig",
|
| 978 |
+
"wenige",
|
| 979 |
+
"weniger",
|
| 980 |
+
"wenigstens",
|
| 981 |
+
"wenngleich",
|
| 982 |
+
"wer",
|
| 983 |
+
"werdet",
|
| 984 |
+
"weshalb",
|
| 985 |
+
"wessen",
|
| 986 |
+
"wichtig",
|
| 987 |
+
"wieso",
|
| 988 |
+
"wieviel",
|
| 989 |
+
"wiewohl",
|
| 990 |
+
"willst",
|
| 991 |
+
"wirklich",
|
| 992 |
+
"wodurch",
|
| 993 |
+
"wogegen",
|
| 994 |
+
"woher",
|
| 995 |
+
"wohin",
|
| 996 |
+
"wohingegen",
|
| 997 |
+
"wohl",
|
| 998 |
+
"wohlweislich",
|
| 999 |
+
"womit",
|
| 1000 |
+
"woraufhin",
|
| 1001 |
+
"woraus",
|
| 1002 |
+
"worin",
|
| 1003 |
+
"wurde",
|
| 1004 |
+
"wurden",
|
| 1005 |
+
"währenddessen",
|
| 1006 |
+
"wär",
|
| 1007 |
+
"wäre",
|
| 1008 |
+
"wären",
|
| 1009 |
+
"zahlreich",
|
| 1010 |
+
"zehn",
|
| 1011 |
+
"zeitweise",
|
| 1012 |
+
"ziehen",
|
| 1013 |
+
"zieht",
|
| 1014 |
+
"zog",
|
| 1015 |
+
"zogen",
|
| 1016 |
+
"zudem",
|
| 1017 |
+
"zuerst",
|
| 1018 |
+
"zufolge",
|
| 1019 |
+
"zugleich",
|
| 1020 |
+
"zuletzt",
|
| 1021 |
+
"zumal",
|
| 1022 |
+
"zurück",
|
| 1023 |
+
"zusammen",
|
| 1024 |
+
"zuviel",
|
| 1025 |
+
"zwanzig",
|
| 1026 |
+
"zwei",
|
| 1027 |
+
"zwölf",
|
| 1028 |
+
"ähnlich",
|
| 1029 |
+
"übel",
|
| 1030 |
+
"überall",
|
| 1031 |
+
"überallhin",
|
| 1032 |
+
"überdies",
|
| 1033 |
+
"übermorgen",
|
| 1034 |
+
"übrig",
|
| 1035 |
+
"übrigens"
|
| 1036 |
+
);
|
| 1037 |
+
?>
|
stopwords/stopwords.en_GB
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"a",
|
| 4 |
+
"about",
|
| 5 |
+
"above",
|
| 6 |
+
"above",
|
| 7 |
+
"across",
|
| 8 |
+
"after",
|
| 9 |
+
"afterwards",
|
| 10 |
+
"again",
|
| 11 |
+
"against",
|
| 12 |
+
"all",
|
| 13 |
+
"almost",
|
| 14 |
+
"alone",
|
| 15 |
+
"along",
|
| 16 |
+
"already",
|
| 17 |
+
"also",
|
| 18 |
+
"although",
|
| 19 |
+
"always",
|
| 20 |
+
"am",
|
| 21 |
+
"among",
|
| 22 |
+
"amongst",
|
| 23 |
+
"amoungst",
|
| 24 |
+
"amount",
|
| 25 |
+
"an",
|
| 26 |
+
"and",
|
| 27 |
+
"another",
|
| 28 |
+
"any",
|
| 29 |
+
"anyhow",
|
| 30 |
+
"anyone",
|
| 31 |
+
"anything",
|
| 32 |
+
"anyway",
|
| 33 |
+
"anywhere",
|
| 34 |
+
"are",
|
| 35 |
+
"around",
|
| 36 |
+
"as",
|
| 37 |
+
"at",
|
| 38 |
+
"back",
|
| 39 |
+
"be",
|
| 40 |
+
"became",
|
| 41 |
+
"because",
|
| 42 |
+
"become",
|
| 43 |
+
"becomes",
|
| 44 |
+
"becoming",
|
| 45 |
+
"been",
|
| 46 |
+
"before",
|
| 47 |
+
"beforehand",
|
| 48 |
+
"behind",
|
| 49 |
+
"being",
|
| 50 |
+
"below",
|
| 51 |
+
"beside",
|
| 52 |
+
"besides",
|
| 53 |
+
"between",
|
| 54 |
+
"beyond",
|
| 55 |
+
"bill",
|
| 56 |
+
"both",
|
| 57 |
+
"bottom",
|
| 58 |
+
"but",
|
| 59 |
+
"by",
|
| 60 |
+
"call",
|
| 61 |
+
"can",
|
| 62 |
+
"cannot",
|
| 63 |
+
"cant",
|
| 64 |
+
"co",
|
| 65 |
+
"con",
|
| 66 |
+
"could",
|
| 67 |
+
"couldnt",
|
| 68 |
+
"cry",
|
| 69 |
+
"de",
|
| 70 |
+
"describe",
|
| 71 |
+
"detail",
|
| 72 |
+
"do",
|
| 73 |
+
"done",
|
| 74 |
+
"down",
|
| 75 |
+
"due",
|
| 76 |
+
"during",
|
| 77 |
+
"each",
|
| 78 |
+
"eg",
|
| 79 |
+
"eight",
|
| 80 |
+
"either",
|
| 81 |
+
"eleven",
|
| 82 |
+
"else",
|
| 83 |
+
"elsewhere",
|
| 84 |
+
"empty",
|
| 85 |
+
"enough",
|
| 86 |
+
"etc",
|
| 87 |
+
"even",
|
| 88 |
+
"ever",
|
| 89 |
+
"every",
|
| 90 |
+
"everyone",
|
| 91 |
+
"everything",
|
| 92 |
+
"everywhere",
|
| 93 |
+
"except",
|
| 94 |
+
"few",
|
| 95 |
+
"fifteen",
|
| 96 |
+
"fify",
|
| 97 |
+
"fill",
|
| 98 |
+
"find",
|
| 99 |
+
"fire",
|
| 100 |
+
"first",
|
| 101 |
+
"five",
|
| 102 |
+
"for",
|
| 103 |
+
"former",
|
| 104 |
+
"formerly",
|
| 105 |
+
"forty",
|
| 106 |
+
"found",
|
| 107 |
+
"four",
|
| 108 |
+
"from",
|
| 109 |
+
"front",
|
| 110 |
+
"full",
|
| 111 |
+
"further",
|
| 112 |
+
"get",
|
| 113 |
+
"give",
|
| 114 |
+
"go",
|
| 115 |
+
"had",
|
| 116 |
+
"has",
|
| 117 |
+
"hasnt",
|
| 118 |
+
"have",
|
| 119 |
+
"he",
|
| 120 |
+
"hence",
|
| 121 |
+
"her",
|
| 122 |
+
"here",
|
| 123 |
+
"hereafter",
|
| 124 |
+
"hereby",
|
| 125 |
+
"herein",
|
| 126 |
+
"hereupon",
|
| 127 |
+
"hers",
|
| 128 |
+
"herself",
|
| 129 |
+
"him",
|
| 130 |
+
"himself",
|
| 131 |
+
"his",
|
| 132 |
+
"how",
|
| 133 |
+
"however",
|
| 134 |
+
"hundred",
|
| 135 |
+
"ie",
|
| 136 |
+
"if",
|
| 137 |
+
"in",
|
| 138 |
+
"inc",
|
| 139 |
+
"indeed",
|
| 140 |
+
"interest",
|
| 141 |
+
"into",
|
| 142 |
+
"is",
|
| 143 |
+
"it",
|
| 144 |
+
"its",
|
| 145 |
+
"itself",
|
| 146 |
+
"keep",
|
| 147 |
+
"last",
|
| 148 |
+
"latter",
|
| 149 |
+
"latterly",
|
| 150 |
+
"least",
|
| 151 |
+
"less",
|
| 152 |
+
"ltd",
|
| 153 |
+
"made",
|
| 154 |
+
"many",
|
| 155 |
+
"may",
|
| 156 |
+
"me",
|
| 157 |
+
"meanwhile",
|
| 158 |
+
"might",
|
| 159 |
+
"mill",
|
| 160 |
+
"mine",
|
| 161 |
+
"more",
|
| 162 |
+
"moreover",
|
| 163 |
+
"most",
|
| 164 |
+
"mostly",
|
| 165 |
+
"move",
|
| 166 |
+
"much",
|
| 167 |
+
"must",
|
| 168 |
+
"my",
|
| 169 |
+
"myself",
|
| 170 |
+
"name",
|
| 171 |
+
"namely",
|
| 172 |
+
"neither",
|
| 173 |
+
"never",
|
| 174 |
+
"nevertheless",
|
| 175 |
+
"next",
|
| 176 |
+
"nine",
|
| 177 |
+
"no",
|
| 178 |
+
"nobody",
|
| 179 |
+
"none",
|
| 180 |
+
"noone",
|
| 181 |
+
"nor",
|
| 182 |
+
"not",
|
| 183 |
+
"nothing",
|
| 184 |
+
"now",
|
| 185 |
+
"nowhere",
|
| 186 |
+
"of",
|
| 187 |
+
"off",
|
| 188 |
+
"often",
|
| 189 |
+
"on",
|
| 190 |
+
"once",
|
| 191 |
+
"one",
|
| 192 |
+
"only",
|
| 193 |
+
"onto",
|
| 194 |
+
"or",
|
| 195 |
+
"other",
|
| 196 |
+
"others",
|
| 197 |
+
"otherwise",
|
| 198 |
+
"our",
|
| 199 |
+
"ours",
|
| 200 |
+
"ourselves",
|
| 201 |
+
"out",
|
| 202 |
+
"over",
|
| 203 |
+
"own",
|
| 204 |
+
"part",
|
| 205 |
+
"per",
|
| 206 |
+
"perhaps",
|
| 207 |
+
"please",
|
| 208 |
+
"put",
|
| 209 |
+
"rather",
|
| 210 |
+
"re",
|
| 211 |
+
"same",
|
| 212 |
+
"see",
|
| 213 |
+
"seem",
|
| 214 |
+
"seemed",
|
| 215 |
+
"seeming",
|
| 216 |
+
"seems",
|
| 217 |
+
"serious",
|
| 218 |
+
"several",
|
| 219 |
+
"she",
|
| 220 |
+
"should",
|
| 221 |
+
"show",
|
| 222 |
+
"side",
|
| 223 |
+
"since",
|
| 224 |
+
"sincere",
|
| 225 |
+
"six",
|
| 226 |
+
"sixty",
|
| 227 |
+
"so",
|
| 228 |
+
"some",
|
| 229 |
+
"somehow",
|
| 230 |
+
"someone",
|
| 231 |
+
"something",
|
| 232 |
+
"sometime",
|
| 233 |
+
"sometimes",
|
| 234 |
+
"somewhere",
|
| 235 |
+
"still",
|
| 236 |
+
"such",
|
| 237 |
+
"system",
|
| 238 |
+
"take",
|
| 239 |
+
"ten",
|
| 240 |
+
"than",
|
| 241 |
+
"that",
|
| 242 |
+
"the",
|
| 243 |
+
"their",
|
| 244 |
+
"them",
|
| 245 |
+
"themselves",
|
| 246 |
+
"then",
|
| 247 |
+
"thence",
|
| 248 |
+
"there",
|
| 249 |
+
"thereafter",
|
| 250 |
+
"thereby",
|
| 251 |
+
"therefore",
|
| 252 |
+
"therein",
|
| 253 |
+
"thereupon",
|
| 254 |
+
"these",
|
| 255 |
+
"they",
|
| 256 |
+
"thickv",
|
| 257 |
+
"thin",
|
| 258 |
+
"third",
|
| 259 |
+
"this",
|
| 260 |
+
"those",
|
| 261 |
+
"though",
|
| 262 |
+
"three",
|
| 263 |
+
"through",
|
| 264 |
+
"throughout",
|
| 265 |
+
"thru",
|
| 266 |
+
"thus",
|
| 267 |
+
"to",
|
| 268 |
+
"together",
|
| 269 |
+
"too",
|
| 270 |
+
"top",
|
| 271 |
+
"toward",
|
| 272 |
+
"towards",
|
| 273 |
+
"twelve",
|
| 274 |
+
"twenty",
|
| 275 |
+
"two",
|
| 276 |
+
"un",
|
| 277 |
+
"under",
|
| 278 |
+
"until",
|
| 279 |
+
"up",
|
| 280 |
+
"upon",
|
| 281 |
+
"us",
|
| 282 |
+
"very",
|
| 283 |
+
"via",
|
| 284 |
+
"was",
|
| 285 |
+
"we",
|
| 286 |
+
"well",
|
| 287 |
+
"were",
|
| 288 |
+
"what",
|
| 289 |
+
"whatever",
|
| 290 |
+
"when",
|
| 291 |
+
"whence",
|
| 292 |
+
"whenever",
|
| 293 |
+
"where",
|
| 294 |
+
"whereafter",
|
| 295 |
+
"whereas",
|
| 296 |
+
"whereby",
|
| 297 |
+
"wherein",
|
| 298 |
+
"whereupon",
|
| 299 |
+
"wherever",
|
| 300 |
+
"whether",
|
| 301 |
+
"which",
|
| 302 |
+
"while",
|
| 303 |
+
"whither",
|
| 304 |
+
"who",
|
| 305 |
+
"whoever",
|
| 306 |
+
"whole",
|
| 307 |
+
"whom",
|
| 308 |
+
"whose",
|
| 309 |
+
"why",
|
| 310 |
+
"will",
|
| 311 |
+
"with",
|
| 312 |
+
"within",
|
| 313 |
+
"without",
|
| 314 |
+
"would",
|
| 315 |
+
"yet",
|
| 316 |
+
"you",
|
| 317 |
+
"your",
|
| 318 |
+
"yours",
|
| 319 |
+
"yourself",
|
| 320 |
+
"yourselves",
|
| 321 |
+
"the"
|
| 322 |
+
);
|
| 323 |
+
?>
|
stopwords/stopwords.en_US
ADDED
|
@@ -0,0 +1,323 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"a",
|
| 4 |
+
"about",
|
| 5 |
+
"above",
|
| 6 |
+
"above",
|
| 7 |
+
"across",
|
| 8 |
+
"after",
|
| 9 |
+
"afterwards",
|
| 10 |
+
"again",
|
| 11 |
+
"against",
|
| 12 |
+
"all",
|
| 13 |
+
"almost",
|
| 14 |
+
"alone",
|
| 15 |
+
"along",
|
| 16 |
+
"already",
|
| 17 |
+
"also",
|
| 18 |
+
"although",
|
| 19 |
+
"always",
|
| 20 |
+
"am",
|
| 21 |
+
"among",
|
| 22 |
+
"amongst",
|
| 23 |
+
"amoungst",
|
| 24 |
+
"amount",
|
| 25 |
+
"an",
|
| 26 |
+
"and",
|
| 27 |
+
"another",
|
| 28 |
+
"any",
|
| 29 |
+
"anyhow",
|
| 30 |
+
"anyone",
|
| 31 |
+
"anything",
|
| 32 |
+
"anyway",
|
| 33 |
+
"anywhere",
|
| 34 |
+
"are",
|
| 35 |
+
"around",
|
| 36 |
+
"as",
|
| 37 |
+
"at",
|
| 38 |
+
"back",
|
| 39 |
+
"be",
|
| 40 |
+
"became",
|
| 41 |
+
"because",
|
| 42 |
+
"become",
|
| 43 |
+
"becomes",
|
| 44 |
+
"becoming",
|
| 45 |
+
"been",
|
| 46 |
+
"before",
|
| 47 |
+
"beforehand",
|
| 48 |
+
"behind",
|
| 49 |
+
"being",
|
| 50 |
+
"below",
|
| 51 |
+
"beside",
|
| 52 |
+
"besides",
|
| 53 |
+
"between",
|
| 54 |
+
"beyond",
|
| 55 |
+
"bill",
|
| 56 |
+
"both",
|
| 57 |
+
"bottom",
|
| 58 |
+
"but",
|
| 59 |
+
"by",
|
| 60 |
+
"call",
|
| 61 |
+
"can",
|
| 62 |
+
"cannot",
|
| 63 |
+
"cant",
|
| 64 |
+
"co",
|
| 65 |
+
"con",
|
| 66 |
+
"could",
|
| 67 |
+
"couldnt",
|
| 68 |
+
"cry",
|
| 69 |
+
"de",
|
| 70 |
+
"describe",
|
| 71 |
+
"detail",
|
| 72 |
+
"do",
|
| 73 |
+
"done",
|
| 74 |
+
"down",
|
| 75 |
+
"due",
|
| 76 |
+
"during",
|
| 77 |
+
"each",
|
| 78 |
+
"eg",
|
| 79 |
+
"eight",
|
| 80 |
+
"either",
|
| 81 |
+
"eleven",
|
| 82 |
+
"else",
|
| 83 |
+
"elsewhere",
|
| 84 |
+
"empty",
|
| 85 |
+
"enough",
|
| 86 |
+
"etc",
|
| 87 |
+
"even",
|
| 88 |
+
"ever",
|
| 89 |
+
"every",
|
| 90 |
+
"everyone",
|
| 91 |
+
"everything",
|
| 92 |
+
"everywhere",
|
| 93 |
+
"except",
|
| 94 |
+
"few",
|
| 95 |
+
"fifteen",
|
| 96 |
+
"fify",
|
| 97 |
+
"fill",
|
| 98 |
+
"find",
|
| 99 |
+
"fire",
|
| 100 |
+
"first",
|
| 101 |
+
"five",
|
| 102 |
+
"for",
|
| 103 |
+
"former",
|
| 104 |
+
"formerly",
|
| 105 |
+
"forty",
|
| 106 |
+
"found",
|
| 107 |
+
"four",
|
| 108 |
+
"from",
|
| 109 |
+
"front",
|
| 110 |
+
"full",
|
| 111 |
+
"further",
|
| 112 |
+
"get",
|
| 113 |
+
"give",
|
| 114 |
+
"go",
|
| 115 |
+
"had",
|
| 116 |
+
"has",
|
| 117 |
+
"hasnt",
|
| 118 |
+
"have",
|
| 119 |
+
"he",
|
| 120 |
+
"hence",
|
| 121 |
+
"her",
|
| 122 |
+
"here",
|
| 123 |
+
"hereafter",
|
| 124 |
+
"hereby",
|
| 125 |
+
"herein",
|
| 126 |
+
"hereupon",
|
| 127 |
+
"hers",
|
| 128 |
+
"herself",
|
| 129 |
+
"him",
|
| 130 |
+
"himself",
|
| 131 |
+
"his",
|
| 132 |
+
"how",
|
| 133 |
+
"however",
|
| 134 |
+
"hundred",
|
| 135 |
+
"ie",
|
| 136 |
+
"if",
|
| 137 |
+
"in",
|
| 138 |
+
"inc",
|
| 139 |
+
"indeed",
|
| 140 |
+
"interest",
|
| 141 |
+
"into",
|
| 142 |
+
"is",
|
| 143 |
+
"it",
|
| 144 |
+
"its",
|
| 145 |
+
"itself",
|
| 146 |
+
"keep",
|
| 147 |
+
"last",
|
| 148 |
+
"latter",
|
| 149 |
+
"latterly",
|
| 150 |
+
"least",
|
| 151 |
+
"less",
|
| 152 |
+
"ltd",
|
| 153 |
+
"made",
|
| 154 |
+
"many",
|
| 155 |
+
"may",
|
| 156 |
+
"me",
|
| 157 |
+
"meanwhile",
|
| 158 |
+
"might",
|
| 159 |
+
"mill",
|
| 160 |
+
"mine",
|
| 161 |
+
"more",
|
| 162 |
+
"moreover",
|
| 163 |
+
"most",
|
| 164 |
+
"mostly",
|
| 165 |
+
"move",
|
| 166 |
+
"much",
|
| 167 |
+
"must",
|
| 168 |
+
"my",
|
| 169 |
+
"myself",
|
| 170 |
+
"name",
|
| 171 |
+
"namely",
|
| 172 |
+
"neither",
|
| 173 |
+
"never",
|
| 174 |
+
"nevertheless",
|
| 175 |
+
"next",
|
| 176 |
+
"nine",
|
| 177 |
+
"no",
|
| 178 |
+
"nobody",
|
| 179 |
+
"none",
|
| 180 |
+
"noone",
|
| 181 |
+
"nor",
|
| 182 |
+
"not",
|
| 183 |
+
"nothing",
|
| 184 |
+
"now",
|
| 185 |
+
"nowhere",
|
| 186 |
+
"of",
|
| 187 |
+
"off",
|
| 188 |
+
"often",
|
| 189 |
+
"on",
|
| 190 |
+
"once",
|
| 191 |
+
"one",
|
| 192 |
+
"only",
|
| 193 |
+
"onto",
|
| 194 |
+
"or",
|
| 195 |
+
"other",
|
| 196 |
+
"others",
|
| 197 |
+
"otherwise",
|
| 198 |
+
"our",
|
| 199 |
+
"ours",
|
| 200 |
+
"ourselves",
|
| 201 |
+
"out",
|
| 202 |
+
"over",
|
| 203 |
+
"own",
|
| 204 |
+
"part",
|
| 205 |
+
"per",
|
| 206 |
+
"perhaps",
|
| 207 |
+
"please",
|
| 208 |
+
"put",
|
| 209 |
+
"rather",
|
| 210 |
+
"re",
|
| 211 |
+
"same",
|
| 212 |
+
"see",
|
| 213 |
+
"seem",
|
| 214 |
+
"seemed",
|
| 215 |
+
"seeming",
|
| 216 |
+
"seems",
|
| 217 |
+
"serious",
|
| 218 |
+
"several",
|
| 219 |
+
"she",
|
| 220 |
+
"should",
|
| 221 |
+
"show",
|
| 222 |
+
"side",
|
| 223 |
+
"since",
|
| 224 |
+
"sincere",
|
| 225 |
+
"six",
|
| 226 |
+
"sixty",
|
| 227 |
+
"so",
|
| 228 |
+
"some",
|
| 229 |
+
"somehow",
|
| 230 |
+
"someone",
|
| 231 |
+
"something",
|
| 232 |
+
"sometime",
|
| 233 |
+
"sometimes",
|
| 234 |
+
"somewhere",
|
| 235 |
+
"still",
|
| 236 |
+
"such",
|
| 237 |
+
"system",
|
| 238 |
+
"take",
|
| 239 |
+
"ten",
|
| 240 |
+
"than",
|
| 241 |
+
"that",
|
| 242 |
+
"the",
|
| 243 |
+
"their",
|
| 244 |
+
"them",
|
| 245 |
+
"themselves",
|
| 246 |
+
"then",
|
| 247 |
+
"thence",
|
| 248 |
+
"there",
|
| 249 |
+
"thereafter",
|
| 250 |
+
"thereby",
|
| 251 |
+
"therefore",
|
| 252 |
+
"therein",
|
| 253 |
+
"thereupon",
|
| 254 |
+
"these",
|
| 255 |
+
"they",
|
| 256 |
+
"thickv",
|
| 257 |
+
"thin",
|
| 258 |
+
"third",
|
| 259 |
+
"this",
|
| 260 |
+
"those",
|
| 261 |
+
"though",
|
| 262 |
+
"three",
|
| 263 |
+
"through",
|
| 264 |
+
"throughout",
|
| 265 |
+
"thru",
|
| 266 |
+
"thus",
|
| 267 |
+
"to",
|
| 268 |
+
"together",
|
| 269 |
+
"too",
|
| 270 |
+
"top",
|
| 271 |
+
"toward",
|
| 272 |
+
"towards",
|
| 273 |
+
"twelve",
|
| 274 |
+
"twenty",
|
| 275 |
+
"two",
|
| 276 |
+
"un",
|
| 277 |
+
"under",
|
| 278 |
+
"until",
|
| 279 |
+
"up",
|
| 280 |
+
"upon",
|
| 281 |
+
"us",
|
| 282 |
+
"very",
|
| 283 |
+
"via",
|
| 284 |
+
"was",
|
| 285 |
+
"we",
|
| 286 |
+
"well",
|
| 287 |
+
"were",
|
| 288 |
+
"what",
|
| 289 |
+
"whatever",
|
| 290 |
+
"when",
|
| 291 |
+
"whence",
|
| 292 |
+
"whenever",
|
| 293 |
+
"where",
|
| 294 |
+
"whereafter",
|
| 295 |
+
"whereas",
|
| 296 |
+
"whereby",
|
| 297 |
+
"wherein",
|
| 298 |
+
"whereupon",
|
| 299 |
+
"wherever",
|
| 300 |
+
"whether",
|
| 301 |
+
"which",
|
| 302 |
+
"while",
|
| 303 |
+
"whither",
|
| 304 |
+
"who",
|
| 305 |
+
"whoever",
|
| 306 |
+
"whole",
|
| 307 |
+
"whom",
|
| 308 |
+
"whose",
|
| 309 |
+
"why",
|
| 310 |
+
"will",
|
| 311 |
+
"with",
|
| 312 |
+
"within",
|
| 313 |
+
"without",
|
| 314 |
+
"would",
|
| 315 |
+
"yet",
|
| 316 |
+
"you",
|
| 317 |
+
"your",
|
| 318 |
+
"yours",
|
| 319 |
+
"yourself",
|
| 320 |
+
"yourselves",
|
| 321 |
+
"the"
|
| 322 |
+
);
|
| 323 |
+
?>
|
stopwords/stopwords.es_ES
ADDED
|
@@ -0,0 +1,386 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"a",
|
| 4 |
+
"b",
|
| 5 |
+
"c",
|
| 6 |
+
"d",
|
| 7 |
+
"e",
|
| 8 |
+
"f",
|
| 9 |
+
"g",
|
| 10 |
+
"h",
|
| 11 |
+
"i",
|
| 12 |
+
"j",
|
| 13 |
+
"k",
|
| 14 |
+
"l",
|
| 15 |
+
"m",
|
| 16 |
+
"n",
|
| 17 |
+
"ñ",
|
| 18 |
+
"o",
|
| 19 |
+
"p",
|
| 20 |
+
"q",
|
| 21 |
+
"r",
|
| 22 |
+
"s",
|
| 23 |
+
"t",
|
| 24 |
+
"u",
|
| 25 |
+
"v",
|
| 26 |
+
"w",
|
| 27 |
+
"x",
|
| 28 |
+
"y",
|
| 29 |
+
"z",
|
| 30 |
+
"el",
|
| 31 |
+
"la",
|
| 32 |
+
"los",
|
| 33 |
+
"les",
|
| 34 |
+
"las",
|
| 35 |
+
"de",
|
| 36 |
+
"del",
|
| 37 |
+
"a",
|
| 38 |
+
"ante",
|
| 39 |
+
"con",
|
| 40 |
+
"en",
|
| 41 |
+
"para",
|
| 42 |
+
"por",
|
| 43 |
+
"y",
|
| 44 |
+
"o",
|
| 45 |
+
"u",
|
| 46 |
+
"tu",
|
| 47 |
+
"te",
|
| 48 |
+
"ti",
|
| 49 |
+
"le",
|
| 50 |
+
"que",
|
| 51 |
+
"al",
|
| 52 |
+
"ha",
|
| 53 |
+
"un",
|
| 54 |
+
"han",
|
| 55 |
+
"lo",
|
| 56 |
+
"su",
|
| 57 |
+
"una",
|
| 58 |
+
"estas",
|
| 59 |
+
"esto",
|
| 60 |
+
"este",
|
| 61 |
+
"es",
|
| 62 |
+
"tras",
|
| 63 |
+
"a",
|
| 64 |
+
"acá",
|
| 65 |
+
"ahí",
|
| 66 |
+
"al",
|
| 67 |
+
"algo",
|
| 68 |
+
"algún",
|
| 69 |
+
"alguna",
|
| 70 |
+
"algunas",
|
| 71 |
+
"alguno",
|
| 72 |
+
"algunos",
|
| 73 |
+
"allá",
|
| 74 |
+
"alli",
|
| 75 |
+
"allí",
|
| 76 |
+
"antes",
|
| 77 |
+
"aquel",
|
| 78 |
+
"aquella",
|
| 79 |
+
"aquellas",
|
| 80 |
+
"aquello",
|
| 81 |
+
"aquellos",
|
| 82 |
+
"aqui",
|
| 83 |
+
"aquí",
|
| 84 |
+
"asi",
|
| 85 |
+
"atras",
|
| 86 |
+
"aun",
|
| 87 |
+
"aunque",
|
| 88 |
+
"bajo",
|
| 89 |
+
"bastante",
|
| 90 |
+
"bien",
|
| 91 |
+
"cabe",
|
| 92 |
+
"cada",
|
| 93 |
+
"casi",
|
| 94 |
+
"cierta",
|
| 95 |
+
"ciertas",
|
| 96 |
+
"cierto",
|
| 97 |
+
"ciertos",
|
| 98 |
+
"como",
|
| 99 |
+
"cómo",
|
| 100 |
+
"con",
|
| 101 |
+
"conmigo",
|
| 102 |
+
"conseguimos",
|
| 103 |
+
"conseguir",
|
| 104 |
+
"consigo",
|
| 105 |
+
"consigue",
|
| 106 |
+
"consiguen",
|
| 107 |
+
"consigues",
|
| 108 |
+
"contigo",
|
| 109 |
+
"contra",
|
| 110 |
+
"cual",
|
| 111 |
+
"cuales",
|
| 112 |
+
"cualquier",
|
| 113 |
+
"cualquiera",
|
| 114 |
+
"cualquieras",
|
| 115 |
+
"cuando",
|
| 116 |
+
"cuanta",
|
| 117 |
+
"cuánta",
|
| 118 |
+
"cuantas",
|
| 119 |
+
"cuántas",
|
| 120 |
+
"cuanto",
|
| 121 |
+
"cuánto",
|
| 122 |
+
"cuantos",
|
| 123 |
+
"cuántos",
|
| 124 |
+
"de",
|
| 125 |
+
"dejar",
|
| 126 |
+
"del",
|
| 127 |
+
"demás",
|
| 128 |
+
"demas",
|
| 129 |
+
"demasiada",
|
| 130 |
+
"demasiadas",
|
| 131 |
+
"demasiado",
|
| 132 |
+
"demasiados",
|
| 133 |
+
"dentro",
|
| 134 |
+
"desde",
|
| 135 |
+
"donde",
|
| 136 |
+
"dos",
|
| 137 |
+
"el",
|
| 138 |
+
"él",
|
| 139 |
+
"ella",
|
| 140 |
+
"ellas",
|
| 141 |
+
"ello",
|
| 142 |
+
"ellos",
|
| 143 |
+
"en",
|
| 144 |
+
"encima",
|
| 145 |
+
"entonces",
|
| 146 |
+
"entre",
|
| 147 |
+
"era",
|
| 148 |
+
"eramos",
|
| 149 |
+
"eran",
|
| 150 |
+
"eras",
|
| 151 |
+
"eres",
|
| 152 |
+
"es",
|
| 153 |
+
"esa",
|
| 154 |
+
"esas",
|
| 155 |
+
"ese",
|
| 156 |
+
"eso",
|
| 157 |
+
"esos",
|
| 158 |
+
"esta",
|
| 159 |
+
"estaba",
|
| 160 |
+
"estado",
|
| 161 |
+
"estais",
|
| 162 |
+
"estamos",
|
| 163 |
+
"estan",
|
| 164 |
+
"estar",
|
| 165 |
+
"estas",
|
| 166 |
+
"este",
|
| 167 |
+
"esto",
|
| 168 |
+
"estos",
|
| 169 |
+
"estoy",
|
| 170 |
+
"etc",
|
| 171 |
+
"fin",
|
| 172 |
+
"fue",
|
| 173 |
+
"fueron",
|
| 174 |
+
"fui",
|
| 175 |
+
"fuimos",
|
| 176 |
+
"gueno",
|
| 177 |
+
"ha",
|
| 178 |
+
"hace",
|
| 179 |
+
"haceis",
|
| 180 |
+
"hacemos",
|
| 181 |
+
"hacen",
|
| 182 |
+
"hacer",
|
| 183 |
+
"haces",
|
| 184 |
+
"hacia",
|
| 185 |
+
"hago",
|
| 186 |
+
"hasta",
|
| 187 |
+
"incluso",
|
| 188 |
+
"intenta",
|
| 189 |
+
"intentais",
|
| 190 |
+
"intentamos",
|
| 191 |
+
"intentan",
|
| 192 |
+
"intentar",
|
| 193 |
+
"intentas",
|
| 194 |
+
"intento",
|
| 195 |
+
"ir",
|
| 196 |
+
"jamás",
|
| 197 |
+
"junto",
|
| 198 |
+
"juntos",
|
| 199 |
+
"la",
|
| 200 |
+
"largo",
|
| 201 |
+
"las",
|
| 202 |
+
"lo",
|
| 203 |
+
"los",
|
| 204 |
+
"mas",
|
| 205 |
+
"más",
|
| 206 |
+
"me",
|
| 207 |
+
"menos",
|
| 208 |
+
"mi",
|
| 209 |
+
"mía",
|
| 210 |
+
"mia",
|
| 211 |
+
"mias",
|
| 212 |
+
"mientras",
|
| 213 |
+
"mio",
|
| 214 |
+
"mío",
|
| 215 |
+
"mios",
|
| 216 |
+
"mis",
|
| 217 |
+
"misma",
|
| 218 |
+
"mismas",
|
| 219 |
+
"mismo",
|
| 220 |
+
"mismos",
|
| 221 |
+
"modo",
|
| 222 |
+
"mucha",
|
| 223 |
+
"muchas",
|
| 224 |
+
"muchísima",
|
| 225 |
+
"muchísimas",
|
| 226 |
+
"muchísimo",
|
| 227 |
+
"muchísimos",
|
| 228 |
+
"mucho",
|
| 229 |
+
"muchos",
|
| 230 |
+
"muy",
|
| 231 |
+
"nada",
|
| 232 |
+
"ni",
|
| 233 |
+
"ningun",
|
| 234 |
+
"ninguna",
|
| 235 |
+
"ningunas",
|
| 236 |
+
"ninguno",
|
| 237 |
+
"ningunos",
|
| 238 |
+
"no",
|
| 239 |
+
"nos",
|
| 240 |
+
"nosotras",
|
| 241 |
+
"nosotros",
|
| 242 |
+
"nuestra",
|
| 243 |
+
"nuestras",
|
| 244 |
+
"nuestro",
|
| 245 |
+
"nuestros",
|
| 246 |
+
"nunca",
|
| 247 |
+
"os",
|
| 248 |
+
"otra",
|
| 249 |
+
"otras",
|
| 250 |
+
"otro",
|
| 251 |
+
"otros",
|
| 252 |
+
"para",
|
| 253 |
+
"parecer",
|
| 254 |
+
"pero",
|
| 255 |
+
"poca",
|
| 256 |
+
"pocas",
|
| 257 |
+
"poco",
|
| 258 |
+
"pocos",
|
| 259 |
+
"podeis",
|
| 260 |
+
"podemos",
|
| 261 |
+
"poder",
|
| 262 |
+
"podria",
|
| 263 |
+
"podriais",
|
| 264 |
+
"podriamos",
|
| 265 |
+
"podrian",
|
| 266 |
+
"podrias",
|
| 267 |
+
"por",
|
| 268 |
+
"por qué",
|
| 269 |
+
"porque",
|
| 270 |
+
"primero",
|
| 271 |
+
"primero desde",
|
| 272 |
+
"puede",
|
| 273 |
+
"pueden",
|
| 274 |
+
"puedo",
|
| 275 |
+
"pues",
|
| 276 |
+
"que",
|
| 277 |
+
"qué",
|
| 278 |
+
"querer",
|
| 279 |
+
"quien",
|
| 280 |
+
"quién",
|
| 281 |
+
"quienes",
|
| 282 |
+
"quienes",
|
| 283 |
+
"quiera",
|
| 284 |
+
"quienquiera",
|
| 285 |
+
"quiza",
|
| 286 |
+
"quizas",
|
| 287 |
+
"sabe",
|
| 288 |
+
"sabeis",
|
| 289 |
+
"sabemos",
|
| 290 |
+
"saben",
|
| 291 |
+
"saber",
|
| 292 |
+
"sabes",
|
| 293 |
+
"se",
|
| 294 |
+
"segun",
|
| 295 |
+
"según",
|
| 296 |
+
"ser",
|
| 297 |
+
"si",
|
| 298 |
+
"sí",
|
| 299 |
+
"siempre",
|
| 300 |
+
"siendo",
|
| 301 |
+
"sin",
|
| 302 |
+
"sín",
|
| 303 |
+
"sino",
|
| 304 |
+
"so",
|
| 305 |
+
"sobre",
|
| 306 |
+
"sois",
|
| 307 |
+
"solamente",
|
| 308 |
+
"solo",
|
| 309 |
+
"somos",
|
| 310 |
+
"soy",
|
| 311 |
+
"sr",
|
| 312 |
+
"sra",
|
| 313 |
+
"sres",
|
| 314 |
+
"esta",
|
| 315 |
+
"su",
|
| 316 |
+
"sus",
|
| 317 |
+
"suya",
|
| 318 |
+
"suyas",
|
| 319 |
+
"suyo",
|
| 320 |
+
"suyos",
|
| 321 |
+
"tal",
|
| 322 |
+
"tales",
|
| 323 |
+
"también",
|
| 324 |
+
"tambien",
|
| 325 |
+
"tampoco",
|
| 326 |
+
"tan",
|
| 327 |
+
"tanta",
|
| 328 |
+
"tantas",
|
| 329 |
+
"tanto",
|
| 330 |
+
"tantos",
|
| 331 |
+
"te",
|
| 332 |
+
"teneis",
|
| 333 |
+
"tenemos",
|
| 334 |
+
"tener",
|
| 335 |
+
"tengo",
|
| 336 |
+
"ti",
|
| 337 |
+
"tiempo",
|
| 338 |
+
"tiene",
|
| 339 |
+
"tienen",
|
| 340 |
+
"toda",
|
| 341 |
+
"todas",
|
| 342 |
+
"todo",
|
| 343 |
+
"todos",
|
| 344 |
+
"tras",
|
| 345 |
+
"tú",
|
| 346 |
+
"tu",
|
| 347 |
+
"tus",
|
| 348 |
+
"tuya",
|
| 349 |
+
"tuyo",
|
| 350 |
+
"tuyos",
|
| 351 |
+
"ultimo",
|
| 352 |
+
"un",
|
| 353 |
+
"una",
|
| 354 |
+
"unas",
|
| 355 |
+
"uno",
|
| 356 |
+
"unos",
|
| 357 |
+
"usa",
|
| 358 |
+
"usais",
|
| 359 |
+
"usamos",
|
| 360 |
+
"usan",
|
| 361 |
+
"usar",
|
| 362 |
+
"usas",
|
| 363 |
+
"uso",
|
| 364 |
+
"usted",
|
| 365 |
+
"ustedes",
|
| 366 |
+
"va",
|
| 367 |
+
"vais",
|
| 368 |
+
"vamos",
|
| 369 |
+
"van",
|
| 370 |
+
"varias",
|
| 371 |
+
"varios",
|
| 372 |
+
"vaya",
|
| 373 |
+
"verdad",
|
| 374 |
+
"verdadera",
|
| 375 |
+
"vosotras",
|
| 376 |
+
"vosotros",
|
| 377 |
+
"voy",
|
| 378 |
+
"vuestra",
|
| 379 |
+
"vuestras",
|
| 380 |
+
"vuestro",
|
| 381 |
+
"vuestros",
|
| 382 |
+
"y",
|
| 383 |
+
"ya",
|
| 384 |
+
"yo"
|
| 385 |
+
);
|
| 386 |
+
?>
|
stopwords/stopwords.fi
ADDED
|
@@ -0,0 +1,365 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"a",
|
| 4 |
+
"aina",
|
| 5 |
+
"ainakin",
|
| 6 |
+
"aivan",
|
| 7 |
+
"alla",
|
| 8 |
+
"alle",
|
| 9 |
+
"amp",
|
| 10 |
+
"an",
|
| 11 |
+
"asti",
|
| 12 |
+
"auki",
|
| 13 |
+
"author",
|
| 14 |
+
"com",
|
| 15 |
+
"ehkä",
|
| 16 |
+
"ei",
|
| 17 |
+
"eikä",
|
| 18 |
+
"eivät",
|
| 19 |
+
"em",
|
| 20 |
+
"emme",
|
| 21 |
+
"en",
|
| 22 |
+
"enemmän",
|
| 23 |
+
"ennen",
|
| 24 |
+
"eri",
|
| 25 |
+
"et",
|
| 26 |
+
"ette",
|
| 27 |
+
"että",
|
| 28 |
+
"fax",
|
| 29 |
+
"fi",
|
| 30 |
+
"h",
|
| 31 |
+
"he",
|
| 32 |
+
"heidän",
|
| 33 |
+
"heidät",
|
| 34 |
+
"heihin",
|
| 35 |
+
"heille",
|
| 36 |
+
"heillä",
|
| 37 |
+
"heiltä",
|
| 38 |
+
"heissä",
|
| 39 |
+
"heistä",
|
| 40 |
+
"heitä",
|
| 41 |
+
"hieman",
|
| 42 |
+
"hlä",
|
| 43 |
+
"hlää",
|
| 44 |
+
"html",
|
| 45 |
+
"http",
|
| 46 |
+
"hyvin",
|
| 47 |
+
"hän",
|
| 48 |
+
"häneen",
|
| 49 |
+
"hänelle",
|
| 50 |
+
"hänellä",
|
| 51 |
+
"häneltä",
|
| 52 |
+
"hänen",
|
| 53 |
+
"hänessä",
|
| 54 |
+
"hänestä",
|
| 55 |
+
"hänet",
|
| 56 |
+
"häntä",
|
| 57 |
+
"ihan",
|
| 58 |
+
"ilman",
|
| 59 |
+
"itse",
|
| 60 |
+
"ja",
|
| 61 |
+
"jo",
|
| 62 |
+
"johon",
|
| 63 |
+
"joiden",
|
| 64 |
+
"joihin",
|
| 65 |
+
"joiksi",
|
| 66 |
+
"joilla",
|
| 67 |
+
"joille",
|
| 68 |
+
"joilta",
|
| 69 |
+
"joina",
|
| 70 |
+
"joissa",
|
| 71 |
+
"joista",
|
| 72 |
+
"joita",
|
| 73 |
+
"joka",
|
| 74 |
+
"joko",
|
| 75 |
+
"joksi",
|
| 76 |
+
"jolla",
|
| 77 |
+
"jolle",
|
| 78 |
+
"jolta",
|
| 79 |
+
"jona",
|
| 80 |
+
"jonka",
|
| 81 |
+
"jopa",
|
| 82 |
+
"jos",
|
| 83 |
+
"joskus",
|
| 84 |
+
"jossa",
|
| 85 |
+
"josta",
|
| 86 |
+
"jota",
|
| 87 |
+
"jotain",
|
| 88 |
+
"jotka",
|
| 89 |
+
"juuri",
|
| 90 |
+
"jälkeen",
|
| 91 |
+
"kai",
|
| 92 |
+
"kaikki",
|
| 93 |
+
"kanssa",
|
| 94 |
+
"kaukana",
|
| 95 |
+
"keiden",
|
| 96 |
+
"keihin",
|
| 97 |
+
"keiksi",
|
| 98 |
+
"keille",
|
| 99 |
+
"keillä",
|
| 100 |
+
"keiltä",
|
| 101 |
+
"keinä",
|
| 102 |
+
"keissä",
|
| 103 |
+
"keistä",
|
| 104 |
+
"keitä",
|
| 105 |
+
"keneen",
|
| 106 |
+
"keneksi",
|
| 107 |
+
"kenelle",
|
| 108 |
+
"kenellä",
|
| 109 |
+
"keneltä",
|
| 110 |
+
"kenen",
|
| 111 |
+
"kenenä",
|
| 112 |
+
"kenessä",
|
| 113 |
+
"kenestä",
|
| 114 |
+
"kenet",
|
| 115 |
+
"kenties",
|
| 116 |
+
"keskellä",
|
| 117 |
+
"kesken",
|
| 118 |
+
"ketkä",
|
| 119 |
+
"ketä",
|
| 120 |
+
"klo",
|
| 121 |
+
"koko",
|
| 122 |
+
"koska",
|
| 123 |
+
"koskaan",
|
| 124 |
+
"kuin",
|
| 125 |
+
"kuinka",
|
| 126 |
+
"kuitenkaan",
|
| 127 |
+
"kuitenkin",
|
| 128 |
+
"kuka",
|
| 129 |
+
"kun",
|
| 130 |
+
"kuten",
|
| 131 |
+
"kyllä",
|
| 132 |
+
"li",
|
| 133 |
+
"liian",
|
| 134 |
+
"lisäksi",
|
| 135 |
+
"lisää",
|
| 136 |
+
"lla",
|
| 137 |
+
"lopulta",
|
| 138 |
+
"lue",
|
| 139 |
+
"luona",
|
| 140 |
+
"lähellä",
|
| 141 |
+
"läpi",
|
| 142 |
+
"maroon",
|
| 143 |
+
"me",
|
| 144 |
+
"meidän",
|
| 145 |
+
"meidät",
|
| 146 |
+
"meihin",
|
| 147 |
+
"meille",
|
| 148 |
+
"meillä",
|
| 149 |
+
"meiltä",
|
| 150 |
+
"meissä",
|
| 151 |
+
"meistä",
|
| 152 |
+
"meitä",
|
| 153 |
+
"mihin",
|
| 154 |
+
"miksi",
|
| 155 |
+
"mikä",
|
| 156 |
+
"mille",
|
| 157 |
+
"milloin",
|
| 158 |
+
"milloinkaan",
|
| 159 |
+
"millä",
|
| 160 |
+
"miltä",
|
| 161 |
+
"minkä",
|
| 162 |
+
"minua",
|
| 163 |
+
"minulla",
|
| 164 |
+
"minulle",
|
| 165 |
+
"minulta",
|
| 166 |
+
"minun",
|
| 167 |
+
"minussa",
|
| 168 |
+
"minusta",
|
| 169 |
+
"minut",
|
| 170 |
+
"minuun",
|
| 171 |
+
"minä",
|
| 172 |
+
"missä",
|
| 173 |
+
"mistä",
|
| 174 |
+
"miten",
|
| 175 |
+
"mitkä",
|
| 176 |
+
"mitä",
|
| 177 |
+
"mitään",
|
| 178 |
+
"mukaan",
|
| 179 |
+
"mutta",
|
| 180 |
+
"muut",
|
| 181 |
+
"muuta",
|
| 182 |
+
"myäs",
|
| 183 |
+
"myös",
|
| 184 |
+
"ne",
|
| 185 |
+
"net",
|
| 186 |
+
"niiden",
|
| 187 |
+
"niihin",
|
| 188 |
+
"niiksi",
|
| 189 |
+
"niille",
|
| 190 |
+
"niillä",
|
| 191 |
+
"niiltä",
|
| 192 |
+
"niin",
|
| 193 |
+
"niinä",
|
| 194 |
+
"niissä",
|
| 195 |
+
"niistä",
|
| 196 |
+
"niitä",
|
| 197 |
+
"noiden",
|
| 198 |
+
"noihin",
|
| 199 |
+
"noiksi",
|
| 200 |
+
"noilla",
|
| 201 |
+
"noille",
|
| 202 |
+
"noilta",
|
| 203 |
+
"noin",
|
| 204 |
+
"noina",
|
| 205 |
+
"noissa",
|
| 206 |
+
"noista",
|
| 207 |
+
"noita",
|
| 208 |
+
"nopeasti",
|
| 209 |
+
"nuo",
|
| 210 |
+
"nyt",
|
| 211 |
+
"näiden",
|
| 212 |
+
"näihin",
|
| 213 |
+
"näiksi",
|
| 214 |
+
"näille",
|
| 215 |
+
"näillä",
|
| 216 |
+
"näiltä",
|
| 217 |
+
"näin",
|
| 218 |
+
"näinä",
|
| 219 |
+
"näissä",
|
| 220 |
+
"näistä",
|
| 221 |
+
"näitä",
|
| 222 |
+
"nämä",
|
| 223 |
+
"of",
|
| 224 |
+
"oikea",
|
| 225 |
+
"oikealla",
|
| 226 |
+
"oikein",
|
| 227 |
+
"ole",
|
| 228 |
+
"olemme",
|
| 229 |
+
"olen",
|
| 230 |
+
"olet",
|
| 231 |
+
"olette",
|
| 232 |
+
"oli",
|
| 233 |
+
"olimme",
|
| 234 |
+
"olin",
|
| 235 |
+
"olisi",
|
| 236 |
+
"olisimme",
|
| 237 |
+
"olisin",
|
| 238 |
+
"olisit",
|
| 239 |
+
"olisitte",
|
| 240 |
+
"olisivat",
|
| 241 |
+
"olit",
|
| 242 |
+
"olitte",
|
| 243 |
+
"olivat",
|
| 244 |
+
"olla",
|
| 245 |
+
"olleet",
|
| 246 |
+
"ollut",
|
| 247 |
+
"on",
|
| 248 |
+
"onkin",
|
| 249 |
+
"org",
|
| 250 |
+
"ovat",
|
| 251 |
+
"paitsi",
|
| 252 |
+
"paljon",
|
| 253 |
+
"paras",
|
| 254 |
+
"poikki",
|
| 255 |
+
"puh",
|
| 256 |
+
"saa",
|
| 257 |
+
"saada",
|
| 258 |
+
"saat",
|
| 259 |
+
"se",
|
| 260 |
+
"sekä",
|
| 261 |
+
"sen",
|
| 262 |
+
"siellä",
|
| 263 |
+
"siihen",
|
| 264 |
+
"siinä",
|
| 265 |
+
"siis",
|
| 266 |
+
"siitä",
|
| 267 |
+
"siksi",
|
| 268 |
+
"sille",
|
| 269 |
+
"sillä",
|
| 270 |
+
"silti",
|
| 271 |
+
"siltä",
|
| 272 |
+
"sinua",
|
| 273 |
+
"sinulla",
|
| 274 |
+
"sinulle",
|
| 275 |
+
"sinulta",
|
| 276 |
+
"sinun",
|
| 277 |
+
"sinussa",
|
| 278 |
+
"sinusta",
|
| 279 |
+
"sinut",
|
| 280 |
+
"sinuun",
|
| 281 |
+
"sinä",
|
| 282 |
+
"sis",
|
| 283 |
+
"sitten",
|
| 284 |
+
"sitä",
|
| 285 |
+
"sivu",
|
| 286 |
+
"span",
|
| 287 |
+
"ssa",
|
| 288 |
+
"sta",
|
| 289 |
+
"strong",
|
| 290 |
+
"style",
|
| 291 |
+
"suoraan",
|
| 292 |
+
"taas",
|
| 293 |
+
"tai",
|
| 294 |
+
"takana",
|
| 295 |
+
"takia",
|
| 296 |
+
"tavalla",
|
| 297 |
+
"td",
|
| 298 |
+
"te",
|
| 299 |
+
"teidän",
|
| 300 |
+
"teidät",
|
| 301 |
+
"teihin",
|
| 302 |
+
"teille",
|
| 303 |
+
"teillä",
|
| 304 |
+
"teiltä",
|
| 305 |
+
"teissä",
|
| 306 |
+
"teistä",
|
| 307 |
+
"teitä",
|
| 308 |
+
"the",
|
| 309 |
+
"tms",
|
| 310 |
+
"to",
|
| 311 |
+
"tr",
|
| 312 |
+
"tule",
|
| 313 |
+
"tuo",
|
| 314 |
+
"tuoda",
|
| 315 |
+
"tuohon",
|
| 316 |
+
"tuoksi",
|
| 317 |
+
"tuolla",
|
| 318 |
+
"tuolle",
|
| 319 |
+
"tuolta",
|
| 320 |
+
"tuon",
|
| 321 |
+
"tuona",
|
| 322 |
+
"tuossa",
|
| 323 |
+
"tuosta",
|
| 324 |
+
"tuota",
|
| 325 |
+
"tähän",
|
| 326 |
+
"täksi",
|
| 327 |
+
"tälle",
|
| 328 |
+
"tällä",
|
| 329 |
+
"tältä",
|
| 330 |
+
"tämä",
|
| 331 |
+
"tämän",
|
| 332 |
+
"tänä",
|
| 333 |
+
"tässä",
|
| 334 |
+
"tästä",
|
| 335 |
+
"tätä",
|
| 336 |
+
"ul",
|
| 337 |
+
"vaan",
|
| 338 |
+
"vai",
|
| 339 |
+
"vaikka",
|
| 340 |
+
"vain",
|
| 341 |
+
"varsin",
|
| 342 |
+
"vasemmalla",
|
| 343 |
+
"vasen",
|
| 344 |
+
"vastan",
|
| 345 |
+
"weight",
|
| 346 |
+
"vielä",
|
| 347 |
+
"vieressä",
|
| 348 |
+
"viim",
|
| 349 |
+
"voi",
|
| 350 |
+
"voida",
|
| 351 |
+
"voisi",
|
| 352 |
+
"voit",
|
| 353 |
+
"wp",
|
| 354 |
+
"www",
|
| 355 |
+
"vähemmän",
|
| 356 |
+
"vähän",
|
| 357 |
+
"välillä",
|
| 358 |
+
"yhdessä",
|
| 359 |
+
"yhtä",
|
| 360 |
+
"yksi",
|
| 361 |
+
"yli",
|
| 362 |
+
"yläs",
|
| 363 |
+
"yms"
|
| 364 |
+
);
|
| 365 |
+
?>
|
stopwords/stopwords.fr_FR
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php $stopwords = array("$","£","a","A","à","afin","ah","ai","aie","aient","aies","ailleurs",
|
| 2 |
+
"ainsi","ait","alentour","alias","allais","allaient","allait","allons","allez","alors","Ap.",
|
| 3 |
+
"Apr.","après","après-demain","arrière","as","assez","attendu","au","aucun","aucune","au-dedans",
|
| 4 |
+
"au-dehors","au-delà","au-dessous","au-dessus","au-devant","audit","aujourd'","aujourd'hui",
|
| 5 |
+
"auparavant","auprès","auquel","aura","aurai","auraient","aurais","aurait","auras","aurez",
|
| 6 |
+
"auriez","aurions","aurons","auront","aussi","aussitôt","autant","autour","autre","autrefois",
|
| 7 |
+
"autres","autrui","aux","auxdites","auxdits","auxquelles","auxquels","avaient","avais","avait",
|
| 8 |
+
"avant","avant-hier","avec","avez","aviez","avions","avoir","avons","ayant","ayez","ayons","B",
|
| 9 |
+
"bah","banco","bé","beaucoup","ben","bien","bientôt","bis","bon","C","c'","ç'","c.-à-d.","Ca",
|
| 10 |
+
"ça","çà","cahin-caha","car","ce","-ce","céans","ceci","cela","celle","celle-ci","celle-là",
|
| 11 |
+
"celles","celles-ci","celles-là","celui","celui-ci","celui-là","cent","cents","cependant",
|
| 12 |
+
"certain","certaine","certaines","certains","certes","ces","c'est-à-dire","cet","cette","ceux",
|
| 13 |
+
"ceux-ci","ceux-là","cf.","cg","cgr","chacun","chacune","chaque","cher","chez","ci","-ci",
|
| 14 |
+
"ci-après","ci-dessous","ci-dessus","cinq","cinquante","cinquante-cinq","cinquante-deux",
|
| 15 |
+
"cinquante-et-un","cinquante-huit","cinquante-neuf","cinquante-quatre","cinquante-sept",
|
| 16 |
+
"cinquante-six","cinquante-trois","cl","cm","cm²","combien","comme","comment","contrario",
|
| 17 |
+
"contre","crescendo","D","d'","d'abord","d'accord","d'affilée","d'ailleurs","dans","d'après",
|
| 18 |
+
"d'arrache-pied","davantage","de","debout","dedans","dehors","déjà","delà","demain","d'emblée",
|
| 19 |
+
"depuis","derechef","derrière","des","dès","desdites","desdits","désormais","desquelles",
|
| 20 |
+
"desquels","dessous","dessus","deux","devant","devers","dg","die","différentes","différents",
|
| 21 |
+
"dire","dis","disent","dit","dito","divers","diverses","dix","dix-huit","dix-neuf","dix-sept",
|
| 22 |
+
"dl","dm","donc","dont","dorénavant","douze","du","dû","dudit","duquel","durant","E","eh","elle",
|
| 23 |
+
"-elle","elles","-elles","en","'en","-en","encore","enfin","ensemble","ensuite","entre",
|
| 24 |
+
"entre-temps","envers","environ","es","ès","est","et","et/ou","étaient","étais","était",
|
| 25 |
+
"étant","etc","été","êtes","étiez","étions","être","eu","eue","eues","euh","eûmes","eurent","eus",
|
| 26 |
+
"eusse","eussent","eusses","eussiez","eussions","eut","eût","eûtes","eux","exprès","extenso",
|
| 27 |
+
"extremis","F","facto","fallait","faire","fais","faisais","faisait","faisaient","faisons","fait",
|
| 28 |
+
"faites","faudrait","faut","fi","flac","fors","fort","forte","fortiori","frais","fûmes","fur",
|
| 29 |
+
"furent","fus","fusse","fussent","fusses","fussiez","fussions","fut","fût","fûtes","G","GHz","gr",
|
| 30 |
+
"grosso","guère","H","ha","han","haut","hé","hein","hem","heu","hg","hier","hl","hm","hm³","holà",
|
| 31 |
+
"hop","hormis","hors","hui","huit","hum","I","ibidem","ici","ici-bas","idem","il","-il","illico",
|
| 32 |
+
"ils","-ils","ipso","item","J","j'","jadis","jamais","je","-je","jusqu'","jusqu'à","jusqu'au",
|
| 33 |
+
"jusqu'aux","jusque","juste","K","kg","km","km²","L","l'","la","-la","là","-là","là-bas",
|
| 34 |
+
"là-dedans","là-dehors","là-derrière","là-dessous","là-dessus","là-devant","là-haut","laquelle",
|
| 35 |
+
"l'autre","le","-le","lequel","les","-les","lès","lesquelles","lesquels","leur","-leur","leurs",
|
| 36 |
+
"lez","loin","l'on","longtemps","lors","lorsqu'","lorsque","lui","-lui","l'un","l'une","M","m'",
|
| 37 |
+
"m²","m³","ma","maint","mainte","maintenant","maintes","maints","mais","mal","malgré","me","même",
|
| 38 |
+
"mêmes","mes","mg","mgr","MHz","mieux","mil","mille","milliards","millions","minima","ml","mm",
|
| 39 |
+
"mm²","modo","moi","-moi","moins","mon","moult","moyennant","mt","N","n'","naguère","ne",
|
| 40 |
+
"néanmoins","neuf","ni","nº","non","nonante","nonobstant","nos","notre","nous","-nous","nul",
|
| 41 |
+
"nulle","O","ô","octante","oh","on","-on","ont","onze","or","ou","où","ouais","oui","outre","P",
|
| 42 |
+
"par","parbleu","parce","par-ci","par-delà","par-derrière","par-dessous","par-dessus","par-devant",
|
| 43 |
+
"parfois","par-là","parmi","partout","pas","passé","passim","pendant","personne","petto","peu",
|
| 44 |
+
"peut","peuvent","peux","peut-être","pis","plus","plusieurs","plutôt","point","posteriori","pour",
|
| 45 |
+
"pourquoi","pourtant","préalable","près","presqu'","presque","primo","priori","prou","pu","puis",
|
| 46 |
+
"puisqu'","puisque","Q","qu'","qua","quand","quarante","quarante-cinq","quarante-deux",
|
| 47 |
+
"quarante-et-un","quarante-huit","quarante-neuf","quarante-quatre","quarante-sept","quarante-six",
|
| 48 |
+
"quarante-trois","quasi","quatorze","quatre","quatre-vingt","quatre-vingt-cinq","quatre-vingt-deux",
|
| 49 |
+
"quatre-vingt-dix","quatre-vingt-dix-huit","quatre-vingt-dix-neuf","quatre-vingt-dix-sept",
|
| 50 |
+
"quatre-vingt-douze","quatre-vingt-huit","quatre-vingt-neuf","quatre-vingt-onze",
|
| 51 |
+
"quatre-vingt-quatorze","quatre-vingt-quatre","quatre-vingt-quinze","quatre-vingts",
|
| 52 |
+
"quatre-vingt-seize","quatre-vingt-sept","quatre-vingt-six","quatre-vingt-treize",
|
| 53 |
+
"quatre-vingt-trois","quatre-vingt-un","quatre-vingt-une","que","quel","quelle","quelles",
|
| 54 |
+
"quelqu'","quelque","quelquefois","quelques","quelques-unes","quelques-uns","quelqu'un",
|
| 55 |
+
"quelqu'une","quels","qui","quiconque","quinze","quoi","quoiqu'","quoique","R","revoici",
|
| 56 |
+
"revoilà","rien","S","s'","sa","sans","sauf","se","secundo","seize","selon","sensu","sept",
|
| 57 |
+
"septante","sera","serai","seraient","serais","serait","seras","serez","seriez","serions",
|
| 58 |
+
"serons","seront","ses","si","sic","sine","sinon","sitôt","situ","six","soi","soient","sois",
|
| 59 |
+
"soit","soixante","soixante-cinq","soixante-deux","soixante-dix","soixante-dix-huit",
|
| 60 |
+
"soixante-dix-neuf","soixante-dix-sept","soixante-douze","soixante-et-onze","soixante-et-un",
|
| 61 |
+
"soixante-et-une","soixante-huit","soixante-neuf","soixante-quatorze","soixante-quatre",
|
| 62 |
+
"soixante-quinze","soixante-seize","soixante-sept","soixante-six","soixante-treize",
|
| 63 |
+
"soixante-trois","sommes","son","sont","soudain","sous","souvent","soyez","soyons","stricto",
|
| 64 |
+
"suis","sur","sur-le-champ","surtout","sus","T","-t","t'","ta","tacatac","tant","tantôt","tard",
|
| 65 |
+
"te","tel","telle","telles","tels","ter","tes","toi","-toi","ton","tôt","toujours","tous","tout",
|
| 66 |
+
"toute","toutefois","toutes","treize","trente","trente-cinq","trente-deux","trente-et-un",
|
| 67 |
+
"trente-huit","trente-neuf","trente-quatre","trente-sept","trente-six","trente-trois","très",
|
| 68 |
+
"trois","trop","tu","-tu","U","un","une","unes","uns","USD","V","va","vais","vas","vers","veut",
|
| 69 |
+
"veux","via","vice-versa","vingt","vingt-cinq","vingt-deux","vingt-huit","vingt-neuf",
|
| 70 |
+
"vingt-quatre","vingt-sept","vingt-six","vingt-trois","vis-à-vis","vite","vitro","vivo","voici",
|
| 71 |
+
"voilà","voire","volontiers","vos","votre","vous","-vous","W","X","y","-y","Z","zéro");
|
| 72 |
+
?>
|
stopwords/stopwords.pl_PL
ADDED
|
@@ -0,0 +1,210 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"a",
|
| 4 |
+
"aby",
|
| 5 |
+
"acz",
|
| 6 |
+
"aczkolwiek",
|
| 7 |
+
"ale",
|
| 8 |
+
"ależ",
|
| 9 |
+
"aż",
|
| 10 |
+
"bardziej",
|
| 11 |
+
"bardzo",
|
| 12 |
+
"bez",
|
| 13 |
+
"bo",
|
| 14 |
+
"bowiem",
|
| 15 |
+
"by",
|
| 16 |
+
"byli",
|
| 17 |
+
"być",
|
| 18 |
+
"był",
|
| 19 |
+
"była",
|
| 20 |
+
"było",
|
| 21 |
+
"były",
|
| 22 |
+
"będzie",
|
| 23 |
+
"będą",
|
| 24 |
+
"cali",
|
| 25 |
+
"cała",
|
| 26 |
+
"cały",
|
| 27 |
+
"co",
|
| 28 |
+
"cokolwiek",
|
| 29 |
+
"coś",
|
| 30 |
+
"czasami",
|
| 31 |
+
"czasem",
|
| 32 |
+
"czemu",
|
| 33 |
+
"czy",
|
| 34 |
+
"czyli",
|
| 35 |
+
"dla",
|
| 36 |
+
"dlaczego",
|
| 37 |
+
"dlatego",
|
| 38 |
+
"do",
|
| 39 |
+
"gdy",
|
| 40 |
+
"gdyż",
|
| 41 |
+
"gdzie",
|
| 42 |
+
"gdziekolwiek",
|
| 43 |
+
"gdzieś",
|
| 44 |
+
"go",
|
| 45 |
+
"i",
|
| 46 |
+
"ich",
|
| 47 |
+
"ile",
|
| 48 |
+
"im",
|
| 49 |
+
"inna",
|
| 50 |
+
"inne",
|
| 51 |
+
"inny",
|
| 52 |
+
"innych",
|
| 53 |
+
"iż",
|
| 54 |
+
"ja",
|
| 55 |
+
"jak",
|
| 56 |
+
"jakaś",
|
| 57 |
+
"jakichś",
|
| 58 |
+
"jakie",
|
| 59 |
+
"jakiś",
|
| 60 |
+
"jakiż",
|
| 61 |
+
"jakkolwiek",
|
| 62 |
+
"jako",
|
| 63 |
+
"jakoś",
|
| 64 |
+
"jednak",
|
| 65 |
+
"jednakże",
|
| 66 |
+
"jego",
|
| 67 |
+
"jej",
|
| 68 |
+
"jest",
|
| 69 |
+
"jeszcze",
|
| 70 |
+
"jeśli",
|
| 71 |
+
"jeżeli",
|
| 72 |
+
"już",
|
| 73 |
+
"ją",
|
| 74 |
+
"kiedy",
|
| 75 |
+
"kilka",
|
| 76 |
+
"kimś",
|
| 77 |
+
"kto",
|
| 78 |
+
"ktokolwiek",
|
| 79 |
+
"ktoś",
|
| 80 |
+
"która",
|
| 81 |
+
"które",
|
| 82 |
+
"którego",
|
| 83 |
+
"której",
|
| 84 |
+
"który",
|
| 85 |
+
"których",
|
| 86 |
+
"którym",
|
| 87 |
+
"którzy",
|
| 88 |
+
"lat",
|
| 89 |
+
"lecz",
|
| 90 |
+
"lub",
|
| 91 |
+
"ma",
|
| 92 |
+
"mają",
|
| 93 |
+
"mi",
|
| 94 |
+
"mimo",
|
| 95 |
+
"między",
|
| 96 |
+
"mnie",
|
| 97 |
+
"mogą",
|
| 98 |
+
"moim",
|
| 99 |
+
"może",
|
| 100 |
+
"możliwe",
|
| 101 |
+
"można",
|
| 102 |
+
"mu",
|
| 103 |
+
"musi",
|
| 104 |
+
"na",
|
| 105 |
+
"nad",
|
| 106 |
+
"nam",
|
| 107 |
+
"nas",
|
| 108 |
+
"naszego",
|
| 109 |
+
"naszych",
|
| 110 |
+
"natomiast",
|
| 111 |
+
"nawet",
|
| 112 |
+
"nic",
|
| 113 |
+
"nich",
|
| 114 |
+
"nie",
|
| 115 |
+
"nigdy",
|
| 116 |
+
"nim",
|
| 117 |
+
"niż",
|
| 118 |
+
"no",
|
| 119 |
+
"o",
|
| 120 |
+
"obok",
|
| 121 |
+
"od",
|
| 122 |
+
"około",
|
| 123 |
+
"on",
|
| 124 |
+
"ona",
|
| 125 |
+
"ono",
|
| 126 |
+
"oraz",
|
| 127 |
+
"pan",
|
| 128 |
+
"pana",
|
| 129 |
+
"pani",
|
| 130 |
+
"po",
|
| 131 |
+
"pod",
|
| 132 |
+
"podczas",
|
| 133 |
+
"pomimo",
|
| 134 |
+
"ponad",
|
| 135 |
+
"ponieważ",
|
| 136 |
+
"powinien",
|
| 137 |
+
"powinna",
|
| 138 |
+
"powinni",
|
| 139 |
+
"powinno",
|
| 140 |
+
"poza",
|
| 141 |
+
"prawie",
|
| 142 |
+
"przecież",
|
| 143 |
+
"przed",
|
| 144 |
+
"przede",
|
| 145 |
+
"przez",
|
| 146 |
+
"przy",
|
| 147 |
+
"roku",
|
| 148 |
+
"również",
|
| 149 |
+
"się",
|
| 150 |
+
"sobie",
|
| 151 |
+
"sobą",
|
| 152 |
+
"sposób",
|
| 153 |
+
"swoje",
|
| 154 |
+
"są",
|
| 155 |
+
"ta",
|
| 156 |
+
"tak",
|
| 157 |
+
"taka",
|
| 158 |
+
"taki",
|
| 159 |
+
"takie",
|
| 160 |
+
"także",
|
| 161 |
+
"tam",
|
| 162 |
+
"te",
|
| 163 |
+
"tego",
|
| 164 |
+
"tej",
|
| 165 |
+
"ten",
|
| 166 |
+
"teraz",
|
| 167 |
+
"też",
|
| 168 |
+
"to",
|
| 169 |
+
"tobie",
|
| 170 |
+
"toteż",
|
| 171 |
+
"trzeba",
|
| 172 |
+
"tu",
|
| 173 |
+
"twoim",
|
| 174 |
+
"twoja",
|
| 175 |
+
"twoje",
|
| 176 |
+
"twym",
|
| 177 |
+
"twój",
|
| 178 |
+
"ty",
|
| 179 |
+
"tych",
|
| 180 |
+
"tylko",
|
| 181 |
+
"tym",
|
| 182 |
+
"u",
|
| 183 |
+
"w",
|
| 184 |
+
"we",
|
| 185 |
+
"według",
|
| 186 |
+
"wiele",
|
| 187 |
+
"wielu",
|
| 188 |
+
"więc",
|
| 189 |
+
"więcej",
|
| 190 |
+
"wszyscy",
|
| 191 |
+
"wszystkich",
|
| 192 |
+
"wszystkie",
|
| 193 |
+
"wszystkim",
|
| 194 |
+
"wszystko",
|
| 195 |
+
"właśnie",
|
| 196 |
+
"z",
|
| 197 |
+
"za",
|
| 198 |
+
"zapewne",
|
| 199 |
+
"zawsze",
|
| 200 |
+
"ze",
|
| 201 |
+
"znowu",
|
| 202 |
+
"znów",
|
| 203 |
+
"został",
|
| 204 |
+
"żadna",
|
| 205 |
+
"żadne",
|
| 206 |
+
"żadnych",
|
| 207 |
+
"że",
|
| 208 |
+
"żeby"
|
| 209 |
+
);
|
| 210 |
+
?>
|
stopwords/stopwords.pt_BR
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"último",
|
| 4 |
+
"é",
|
| 5 |
+
"acerca",
|
| 6 |
+
"agora",
|
| 7 |
+
"algmas",
|
| 8 |
+
"alguns",
|
| 9 |
+
"ali",
|
| 10 |
+
"ambos",
|
| 11 |
+
"antes",
|
| 12 |
+
"apontar",
|
| 13 |
+
"aquela",
|
| 14 |
+
"aquelas",
|
| 15 |
+
"aquele",
|
| 16 |
+
"aqueles",
|
| 17 |
+
"aqui",
|
| 18 |
+
"atrás",
|
| 19 |
+
"bem",
|
| 20 |
+
"bom",
|
| 21 |
+
"cada",
|
| 22 |
+
"caminho",
|
| 23 |
+
"cima",
|
| 24 |
+
"com",
|
| 25 |
+
"como",
|
| 26 |
+
"comprido",
|
| 27 |
+
"conhecido",
|
| 28 |
+
"corrente",
|
| 29 |
+
"das",
|
| 30 |
+
"debaixo",
|
| 31 |
+
"dentro",
|
| 32 |
+
"desde",
|
| 33 |
+
"desligado",
|
| 34 |
+
"deve",
|
| 35 |
+
"devem",
|
| 36 |
+
"deverá",
|
| 37 |
+
"direita",
|
| 38 |
+
"diz",
|
| 39 |
+
"dizer",
|
| 40 |
+
"dois",
|
| 41 |
+
"dos",
|
| 42 |
+
"e",
|
| 43 |
+
"ela",
|
| 44 |
+
"elas",
|
| 45 |
+
"ele",
|
| 46 |
+
"eles",
|
| 47 |
+
"em",
|
| 48 |
+
"enquanto",
|
| 49 |
+
"então",
|
| 50 |
+
"está",
|
| 51 |
+
"estão",
|
| 52 |
+
"estado",
|
| 53 |
+
"estar",
|
| 54 |
+
"estará",
|
| 55 |
+
"este",
|
| 56 |
+
"estes",
|
| 57 |
+
"esteve",
|
| 58 |
+
"estive",
|
| 59 |
+
"estivemos",
|
| 60 |
+
"estiveram",
|
| 61 |
+
"eu",
|
| 62 |
+
"fará",
|
| 63 |
+
"faz",
|
| 64 |
+
"fazer",
|
| 65 |
+
"fazia",
|
| 66 |
+
"fez",
|
| 67 |
+
"fim",
|
| 68 |
+
"foi",
|
| 69 |
+
"fora",
|
| 70 |
+
"horas",
|
| 71 |
+
"iniciar",
|
| 72 |
+
"inicio",
|
| 73 |
+
"ir",
|
| 74 |
+
"irá",
|
| 75 |
+
"ista",
|
| 76 |
+
"iste",
|
| 77 |
+
"isto",
|
| 78 |
+
"ligado",
|
| 79 |
+
"maioria",
|
| 80 |
+
"maiorias",
|
| 81 |
+
"mais",
|
| 82 |
+
"mas",
|
| 83 |
+
"mesmo",
|
| 84 |
+
"meu",
|
| 85 |
+
"muito",
|
| 86 |
+
"muitos",
|
| 87 |
+
"nós",
|
| 88 |
+
"não",
|
| 89 |
+
"nome",
|
| 90 |
+
"nosso",
|
| 91 |
+
"novo",
|
| 92 |
+
"o",
|
| 93 |
+
"onde",
|
| 94 |
+
"os",
|
| 95 |
+
"ou",
|
| 96 |
+
"outro",
|
| 97 |
+
"para",
|
| 98 |
+
"parte",
|
| 99 |
+
"pegar",
|
| 100 |
+
"pelo",
|
| 101 |
+
"pessoas",
|
| 102 |
+
"pode",
|
| 103 |
+
"poderá",
|
| 104 |
+
"podia",
|
| 105 |
+
"por",
|
| 106 |
+
"porque",
|
| 107 |
+
"povo",
|
| 108 |
+
"primeiro",
|
| 109 |
+
"que",
|
| 110 |
+
"quê",
|
| 111 |
+
"qual",
|
| 112 |
+
"qualquer",
|
| 113 |
+
"quando",
|
| 114 |
+
"quem",
|
| 115 |
+
"quieto",
|
| 116 |
+
"são",
|
| 117 |
+
"saber",
|
| 118 |
+
"sem",
|
| 119 |
+
"ser",
|
| 120 |
+
"seu",
|
| 121 |
+
"somente",
|
| 122 |
+
"têm",
|
| 123 |
+
"tal",
|
| 124 |
+
"também",
|
| 125 |
+
"tem",
|
| 126 |
+
"tempo",
|
| 127 |
+
"tenho",
|
| 128 |
+
"tentar",
|
| 129 |
+
"tentaram",
|
| 130 |
+
"tente",
|
| 131 |
+
"tentei",
|
| 132 |
+
"teu",
|
| 133 |
+
"teve",
|
| 134 |
+
"tipo",
|
| 135 |
+
"tive",
|
| 136 |
+
"todos",
|
| 137 |
+
"trabalhar",
|
| 138 |
+
"trabalho",
|
| 139 |
+
"tu",
|
| 140 |
+
"um",
|
| 141 |
+
"uma",
|
| 142 |
+
"umas",
|
| 143 |
+
"uns",
|
| 144 |
+
"usa",
|
| 145 |
+
"usar",
|
| 146 |
+
"valor",
|
| 147 |
+
"veja",
|
| 148 |
+
"ver",
|
| 149 |
+
"verdade",
|
| 150 |
+
"verdadeiro",
|
| 151 |
+
"você",
|
| 152 |
+
"de",
|
| 153 |
+
"do",
|
| 154 |
+
"da",
|
| 155 |
+
"no",
|
| 156 |
+
"se",
|
| 157 |
+
"as",
|
| 158 |
+
"na",
|
| 159 |
+
"ao",
|
| 160 |
+
"sua",
|
| 161 |
+
"já",
|
| 162 |
+
"isso",
|
| 163 |
+
"sobre",
|
| 164 |
+
"seja",
|
| 165 |
+
"seus",
|
| 166 |
+
"suas",
|
| 167 |
+
"à",
|
| 168 |
+
"aos",
|
| 169 |
+
"pelo",
|
| 170 |
+
"pelas",
|
| 171 |
+
"tem",
|
| 172 |
+
"nos",
|
| 173 |
+
);
|
stopwords/stopwords.pt_PT
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$stopwords = array(
|
| 3 |
+
"último",
|
| 4 |
+
"é",
|
| 5 |
+
"acerca",
|
| 6 |
+
"agora",
|
| 7 |
+
"algmas",
|
| 8 |
+
"alguns",
|
| 9 |
+
"ali",
|
| 10 |
+
"ambos",
|
| 11 |
+
"antes",
|
| 12 |
+
"apontar",
|
| 13 |
+
"aquela",
|
| 14 |
+
"aquelas",
|
| 15 |
+
"aquele",
|
| 16 |
+
"aqueles",
|
| 17 |
+
"aqui",
|
| 18 |
+
"atrás",
|
| 19 |
+
"bem",
|
| 20 |
+
"bom",
|
| 21 |
+
"cada",
|
| 22 |
+
"caminho",
|
| 23 |
+
"cima",
|
| 24 |
+
"com",
|
| 25 |
+
"como",
|
| 26 |
+
"comprido",
|
| 27 |
+
"conhecido",
|
| 28 |
+
"corrente",
|
| 29 |
+
"das",
|
| 30 |
+
"debaixo",
|
| 31 |
+
"dentro",
|
| 32 |
+
"desde",
|
| 33 |
+
"desligado",
|
| 34 |
+
"deve",
|
| 35 |
+
"devem",
|
| 36 |
+
"deverá",
|
| 37 |
+
"direita",
|
| 38 |
+
"diz",
|
| 39 |
+
"dizer",
|
| 40 |
+
"dois",
|
| 41 |
+
"dos",
|
| 42 |
+
"e",
|
| 43 |
+
"ela",
|
| 44 |
+
"elas",
|
| 45 |
+
"ele",
|
| 46 |
+
"eles",
|
| 47 |
+
"em",
|
| 48 |
+
"enquanto",
|
| 49 |
+
"então",
|
| 50 |
+
"está",
|
| 51 |
+
"estão",
|
| 52 |
+
"estado",
|
| 53 |
+
"estar",
|
| 54 |
+
"estará",
|
| 55 |
+
"este",
|
| 56 |
+
"estes",
|
| 57 |
+
"esteve",
|
| 58 |
+
"estive",
|
| 59 |
+
"estivemos",
|
| 60 |
+
"estiveram",
|
| 61 |
+
"eu",
|
| 62 |
+
"fará",
|
| 63 |
+
"faz",
|
| 64 |
+
"fazer",
|
| 65 |
+
"fazia",
|
| 66 |
+
"fez",
|
| 67 |
+
"fim",
|
| 68 |
+
"foi",
|
| 69 |
+
"fora",
|
| 70 |
+
"horas",
|
| 71 |
+
"iniciar",
|
| 72 |
+
"inicio",
|
| 73 |
+
"ir",
|
| 74 |
+
"irá",
|
| 75 |
+
"ista",
|
| 76 |
+
"iste",
|
| 77 |
+
"isto",
|
| 78 |
+
"ligado",
|
| 79 |
+
"maioria",
|
| 80 |
+
"maiorias",
|
| 81 |
+
"mais",
|
| 82 |
+
"mas",
|
| 83 |
+
"mesmo",
|
| 84 |
+
"meu",
|
| 85 |
+
"muito",
|
| 86 |
+
"muitos",
|
| 87 |
+
"nós",
|
| 88 |
+
"não",
|
| 89 |
+
"nome",
|
| 90 |
+
"nosso",
|
| 91 |
+
"novo",
|
| 92 |
+
"o",
|
| 93 |
+
"onde",
|
| 94 |
+
"os",
|
| 95 |
+
"ou",
|
| 96 |
+
"outro",
|
| 97 |
+
"para",
|
| 98 |
+
"parte",
|
| 99 |
+
"pegar",
|
| 100 |
+
"pelo",
|
| 101 |
+
"pessoas",
|
| 102 |
+
"pode",
|
| 103 |
+
"poderá",
|
| 104 |
+
"podia",
|
| 105 |
+
"por",
|
| 106 |
+
"porque",
|
| 107 |
+
"povo",
|
| 108 |
+
"primeiro",
|
| 109 |
+
"que",
|
| 110 |
+
"quê",
|
| 111 |
+
"qual",
|
| 112 |
+
"qualquer",
|
| 113 |
+
"quando",
|
| 114 |
+
"quem",
|
| 115 |
+
"quieto",
|
| 116 |
+
"são",
|
| 117 |
+
"saber",
|
| 118 |
+
"sem",
|
| 119 |
+
"ser",
|
| 120 |
+
"seu",
|
| 121 |
+
"somente",
|
| 122 |
+
"têm",
|
| 123 |
+
"tal",
|
| 124 |
+
"também",
|
| 125 |
+
"tem",
|
| 126 |
+
"tempo",
|
| 127 |
+
"tenho",
|
| 128 |
+
"tentar",
|
| 129 |
+
"tentaram",
|
| 130 |
+
"tente",
|
| 131 |
+
"tentei",
|
| 132 |
+
"teu",
|
| 133 |
+
"teve",
|
| 134 |
+
"tipo",
|
| 135 |
+
"tive",
|
| 136 |
+
"todos",
|
| 137 |
+
"trabalhar",
|
| 138 |
+
"trabalho",
|
| 139 |
+
"tu",
|
| 140 |
+
"um",
|
| 141 |
+
"uma",
|
| 142 |
+
"umas",
|
| 143 |
+
"uns",
|
| 144 |
+
"usa",
|
| 145 |
+
"usar",
|
| 146 |
+
"valor",
|
| 147 |
+
"veja",
|
| 148 |
+
"ver",
|
| 149 |
+
"verdade",
|
| 150 |
+
"verdadeiro",
|
| 151 |
+
"você",
|
| 152 |
+
"de",
|
| 153 |
+
"do",
|
| 154 |
+
"da",
|
| 155 |
+
"no",
|
| 156 |
+
"se",
|
| 157 |
+
"as",
|
| 158 |
+
"na",
|
| 159 |
+
"ao",
|
| 160 |
+
"sua",
|
| 161 |
+
"já",
|
| 162 |
+
"isso",
|
| 163 |
+
"sobre",
|
| 164 |
+
"seja",
|
| 165 |
+
"seus",
|
| 166 |
+
"suas",
|
| 167 |
+
"à",
|
| 168 |
+
"aos",
|
| 169 |
+
"pelo",
|
| 170 |
+
"pelas",
|
| 171 |
+
"tem",
|
| 172 |
+
"nos",
|
| 173 |
+
);
|
uninstall.php
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
if (!defined('WP_UNINSTALL_PLUGIN'))
|
| 4 |
+
exit();
|
| 5 |
+
|
| 6 |
+
global $wpdb;
|
| 7 |
+
require_once('lib/uninstall.php');
|
| 8 |
+
|
| 9 |
+
relevanssi_uninstall();
|
| 10 |
+
|
| 11 |
+
function relevanssi_uninstall() {
|
| 12 |
+
delete_option('relevanssi_title_boost');
|
| 13 |
+
delete_option('relevanssi_tag_boost');
|
| 14 |
+
delete_option('relevanssi_comment_boost');
|
| 15 |
+
delete_option('relevanssi_admin_search');
|
| 16 |
+
delete_option('relevanssi_highlight');
|
| 17 |
+
delete_option('relevanssi_txt_col');
|
| 18 |
+
delete_option('relevanssi_bg_col');
|
| 19 |
+
delete_option('relevanssi_css');
|
| 20 |
+
delete_option('relevanssi_class');
|
| 21 |
+
delete_option('relevanssi_excerpts');
|
| 22 |
+
delete_option('relevanssi_excerpt_length');
|
| 23 |
+
delete_option('relevanssi_excerpt_type');
|
| 24 |
+
delete_option('relevanssi_excerpt_allowable_tags');
|
| 25 |
+
delete_option('relevanssi_log_queries');
|
| 26 |
+
delete_option('relevanssi_excat');
|
| 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');
|
| 44 |
+
delete_option('relevanssi_synonyms');
|
| 45 |
+
delete_option('relevanssi_index_excerpt');
|
| 46 |
+
delete_option('relevanssi_highlight_docs');
|
| 47 |
+
delete_option('relevanssi_highlight_comments');
|
| 48 |
+
delete_option('relevanssi_index_limit');
|
| 49 |
+
delete_option('relevanssi_disable_or_fallback');
|
| 50 |
+
delete_option('relevanssi_respect_exclude');
|
| 51 |
+
delete_option('relevanssi_cache_seconds');
|
| 52 |
+
delete_option('relevanssi_enable_cache');
|
| 53 |
+
delete_option('relevanssi_min_word_length');
|
| 54 |
+
delete_option('relevanssi_options');
|
| 55 |
+
delete_option('relevanssi_wpml_only_current');
|
| 56 |
+
delete_option('relevanssi_word_boundaries');
|
| 57 |
+
delete_option('relevanssi_default_orderby');
|
| 58 |
+
delete_option('relevanssi_db_version');
|
| 59 |
+
delete_option('relevanssi_throttle');
|
| 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');
|
| 66 |
+
delete_option('relevanssi_hidesponsor');
|
| 67 |
+
delete_option('relevanssi_index_attachments');
|
| 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 |
+
}
|
| 74 |
+
|
| 75 |
+
?>
|
