Search Everything - Version 8

Version Description

Download this release

Release Info

Developer ddksr
Plugin Icon wp plugin Search Everything
Version 8
Comparing to
See all releases

Code changes from version 7.0.4 to 8

README.markdown CHANGED
@@ -77,4 +77,3 @@ What Translations are included?
77
  * Swedish
78
  * Turkish
79
  * Taiwan / Chinese
80
-
77
  * Swedish
78
  * Turkish
79
  * Taiwan / Chinese
 
config.php CHANGED
@@ -1,9 +1,22 @@
1
  <?php
2
 
3
- global $se_options, $se_meta;
4
  $se_options = false;
5
  $se_meta = false;
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  function se_get_options() {
9
  global $se_options, $se_meta;
@@ -61,6 +74,21 @@ function se_update_options($new_options) {
61
  return $r;
62
  }
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  //we have to be careful, as previously version was not stored in the options!
65
  function se_upgrade() {
66
  $se_meta = get_option('se_meta', false);
@@ -86,6 +114,30 @@ function se_upgrade() {
86
  }
87
  }
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  function se_migrate_7_0_3() {
90
 
91
  $se_meta = get_option('se_meta', false);
@@ -173,19 +225,21 @@ function se_migrate_7_0_1() {
173
  function se_install() {
174
  $se_meta = array(
175
  'blog_id' => false,
 
176
  'auth_key' => false,
177
  'version' => SE_VERSION,
178
  'first_version' => SE_VERSION,
179
  'new_user' => true,
180
  'name' => '',
181
  'email' => '',
182
- 'show_options_page_notice' => true
183
  );
184
  $se_options = se_get_default_options();
185
 
186
  update_option('se_meta', $se_meta);
187
  update_option('se_options', $se_options);
188
 
 
189
  }
190
 
191
  function se_get_default_options() {
@@ -195,11 +249,11 @@ function se_get_default_options() {
195
  'se_exclude_posts' => '',
196
  'se_exclude_posts_list' => '',
197
  'se_use_page_search' =>false,
198
- 'se_use_comment_search' =>false,
199
  'se_use_tag_search' => false,
200
  'se_use_tax_search' => false,
201
- 'se_use_category_search' => false,
202
- 'se_approved_comments_only'=> false,
203
  'se_approved_pages_only' => false,
204
  'se_use_excerpt_search' => false,
205
  'se_use_draft_search' => false,
@@ -207,10 +261,16 @@ function se_get_default_options() {
207
  'se_use_authors' => false,
208
  'se_use_cmt_authors' => false,
209
  'se_use_metadata_search' => false,
210
- 'se_use_highlight' => false,
211
- 'se_highlight_color' => '',
212
- 'se_highlight_style' => ''
 
 
 
 
 
213
  );
214
 
215
  return $se_options;
216
  }
 
1
  <?php
2
 
3
+ global $se_options, $se_meta, $se_global_notice_pages;
4
  $se_options = false;
5
  $se_meta = false;
6
 
7
+ $se_global_notice_pages = array('plugins.php', 'index.php', 'update-core.php');
8
+
9
+ $se_response_messages = array(
10
+ SE_PREFS_STATE_NOT_ENGLISH => __('<a href="http://support.zemanta.com/customer/portal/articles/674752-which-languages-does-zemanta-support" target="_blank">Your blog is not in English</a>', 'SearchEverything'),
11
+ SE_PREFS_STATE_EMPTY => __('Your blog feed is empty', 'SearchEverything'),
12
+ SE_PREFS_STATE_FAILED => __('Unable to reslove URL to a source feed' , 'SearchEverything'),
13
+ SE_PREFS_STATE_FOUND => __('You are connected to Zemanta network', 'SearchEverything')
14
+ );
15
+
16
+ function se_get_response_messages() {
17
+ global $se_response_messages;
18
+ return $se_response_messages;
19
+ }
20
 
21
  function se_get_options() {
22
  global $se_options, $se_meta;
74
  return $r;
75
  }
76
 
77
+ function se_set_global_notice() {
78
+ $url = admin_url( 'options-general.php' );
79
+ $url = add_query_arg( array(
80
+ 'page' => 'extend_search',
81
+ 'se_global_notice' => 0,
82
+ ), $url );
83
+
84
+ $se_meta = get_option('se_meta', false);
85
+ $se_meta['se_global_notice'] = array(
86
+ 'title' => 'Search everything has been updated with security fixes!',
87
+ 'message' => 'Search Everything has been upgraded with security updates and some exciting new features. Visit <a href="'.$url.'">settings</a> to learn more.'
88
+ );
89
+ se_update_meta($se_meta);
90
+ }
91
+
92
  //we have to be careful, as previously version was not stored in the options!
93
  function se_upgrade() {
94
  $se_meta = get_option('se_meta', false);
114
  }
115
  }
116
 
117
+ function se_migrate_7_0_4() {
118
+ $se_meta = get_option('se_meta', false);
119
+
120
+ if ($se_meta) {
121
+ $se_meta['version'] = '8.0';
122
+ $se_meta['api_key'] = false;
123
+ }
124
+
125
+ $se_options = get_option('se_options', false);
126
+
127
+ //enable external search
128
+ $se_options['se_research_widget'] = array (
129
+ 'visible_on_compose' => true,
130
+ 'external_search_enabled' => false,
131
+ 'notice_visible' => true,
132
+ );
133
+ $se_meta['show_options_page_notice'] = false;
134
+
135
+ update_option('se_meta',$se_meta);
136
+ update_option('se_options',$se_options);
137
+
138
+ se_set_global_notice();
139
+ }
140
+
141
  function se_migrate_7_0_3() {
142
 
143
  $se_meta = get_option('se_meta', false);
225
  function se_install() {
226
  $se_meta = array(
227
  'blog_id' => false,
228
+ 'api_key' => false,
229
  'auth_key' => false,
230
  'version' => SE_VERSION,
231
  'first_version' => SE_VERSION,
232
  'new_user' => true,
233
  'name' => '',
234
  'email' => '',
235
+ 'show_options_page_notice' => false
236
  );
237
  $se_options = se_get_default_options();
238
 
239
  update_option('se_meta', $se_meta);
240
  update_option('se_options', $se_options);
241
 
242
+ se_set_global_notice();
243
  }
244
 
245
  function se_get_default_options() {
249
  'se_exclude_posts' => '',
250
  'se_exclude_posts_list' => '',
251
  'se_use_page_search' =>false,
252
+ 'se_use_comment_search' =>true,
253
  'se_use_tag_search' => false,
254
  'se_use_tax_search' => false,
255
+ 'se_use_category_search' => true,
256
+ 'se_approved_comments_only'=> true,
257
  'se_approved_pages_only' => false,
258
  'se_use_excerpt_search' => false,
259
  'se_use_draft_search' => false,
261
  'se_use_authors' => false,
262
  'se_use_cmt_authors' => false,
263
  'se_use_metadata_search' => false,
264
+ 'se_use_highlight' => true,
265
+ 'se_highlight_color' => 'orange',
266
+ 'se_highlight_style' => '',
267
+ 'se_research_metabox' => array (
268
+ 'visible_on_compose' => true,
269
+ 'external_search_enabled' => false,
270
+ 'notice_visible' => true
271
+ )
272
  );
273
 
274
  return $se_options;
275
  }
276
+
lang/se-de_DE.po CHANGED
@@ -1,280 +1,280 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Search Everything v6.3.1\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: \n"
6
- "PO-Revision-Date: 2009-10-30 16:00+0100\n"
7
- "Last-Translator: admin <administration@terrarienpflanzen-lexikon.de>\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
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
- "X-Poedit-Language: German\n"
14
- "X-Poedit-Country: GERMANY\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
- "X-Poedit-Basepath: ../\n"
18
- "X-Poedit-Bookmarks: \n"
19
- "X-Poedit-SearchPath-0: .\n"
20
- "X-Textdomain-Support: yes"
21
-
22
- #: views/options.php:54
23
- #: views/options.php:61
24
- #@ SearchEverything
25
- msgid "Your default search settings have been <strong>updated</strong> by Search Everything. </p><p> What are you waiting for? Go check out the new search results!"
26
- msgstr "Ihre Einstellungen für Search Everything wurden <strong>aktualisiert.</strong> </p><p> Was wartest du noch? Teste die neuen Suchergebnisse!"
27
-
28
- #: views/options.php:71
29
- #@ SearchEverything
30
- msgid "Search Everything Version:"
31
- msgstr "Search Everything Version:"
32
-
33
- #: views/options.php:76
34
- #: views/options.php:281
35
- #@ SearchEverything
36
- msgid "Update Options"
37
- msgstr "Einstellungen aktualisieren"
38
-
39
- #: views/options.php:84
40
- #@ SearchEverything
41
- msgid "Basic Configuration"
42
- msgstr "Grundkonfiguration"
43
-
44
- #: views/options.php:92
45
- #@ SearchEverything
46
- msgid "Search every page"
47
- msgstr "Durchsuche jede Seite"
48
-
49
- #: views/options.php:96
50
- #: views/options.php:107
51
- #: views/options.php:121
52
- #: views/options.php:135
53
- #: views/options.php:146
54
- #: views/options.php:156
55
- #: views/options.php:166
56
- #: views/options.php:176
57
- #: views/options.php:189
58
- #: views/options.php:200
59
- #: views/options.php:210
60
- #: views/options.php:220
61
- #: views/options.php:230
62
- #@ SearchEverything
63
- msgid "Yes"
64
- msgstr "Ja"
65
-
66
- #: views/options.php:103
67
- #@ SearchEverything
68
- msgid "Search approved pages only"
69
- msgstr "Durchsuche nur veröffentlichte Seiten"
70
-
71
- #: views/options.php:117
72
- #@ SearchEverything
73
- msgid "Search every tag name"
74
- msgstr "Durchsuche alle Tag-Namen"
75
-
76
- #: views/options.php:131
77
- #@ SearchEverything
78
- msgid "Search every category name and description"
79
- msgstr "Durchsuche alle Kategorie-Namen und Beschreibungen"
80
-
81
- #: views/options.php:142
82
- #@ SearchEverything
83
- msgid "Search every comment"
84
- msgstr "Durchsuche jeden Kommentar"
85
-
86
- #: views/options.php:152
87
- #@ SearchEverything
88
- msgid "Search comment authors"
89
- msgstr "Durchsuche Kommentar-Autoren"
90
-
91
- #: views/options.php:162
92
- #@ SearchEverything
93
- msgid "Search approved comments only"
94
- msgstr "Durchsuche nur genehmigte Kommentare"
95
-
96
- #: views/options.php:172
97
- #@ SearchEverything
98
- msgid "Search every excerpt"
99
- msgstr "Durchsuche jeden Auszug"
100
-
101
- #: views/options.php:185
102
- #@ SearchEverything
103
- msgid "Search every draft"
104
- msgstr "Durchsuche jeden Entwurf"
105
-
106
- #: views/options.php:196
107
- #@ SearchEverything
108
- msgid "Search every attachment"
109
- msgstr "Durchsuche alle Anhänge"
110
-
111
- #: views/options.php:196
112
- #@ SearchEverything
113
- msgid "(post type = attachment)"
114
- msgstr "(Artikel-Typ = Anhang)"
115
-
116
- #: views/options.php:206
117
- #@ SearchEverything
118
- msgid "Search every custom field"
119
- msgstr "Durchsuche alle benutzerdefinierten Felder"
120
-
121
- #: views/options.php:206
122
- #@ SearchEverything
123
- msgid "(metadata)"
124
- msgstr "(Metadaten)"
125
-
126
- #: views/options.php:216
127
- #@ SearchEverything
128
- msgid "Search every author"
129
- msgstr "Durchsuche alle Autoren"
130
-
131
- #: views/options.php:226
132
- #@ SearchEverything
133
- msgid "Highlight Search Terms"
134
- msgstr "Hebe Suchbegriffe hervor"
135
-
136
- #: views/options.php:236
137
- #@ SearchEverything
138
- msgid "Highlight Background Color"
139
- msgstr "Highlight Hintergrundfarbe"
140
-
141
- #: views/options.php:239
142
- #@ SearchEverything
143
- msgid "Examples:<br/>'#FFF984' or 'red\\"
144
- msgstr "Beispiele:<br/>'#FFF984' oder 'red\\"
145
-
146
- #: views/options.php:249
147
- #@ SearchEverything
148
- msgid "Advanced Configuration - Exclusion"
149
- msgstr "Erweiterte Konfiguration - Ausschlüsse"
150
-
151
- #: views/options.php:255
152
- #@ SearchEverything
153
- msgid "Exclude some post or page IDs"
154
- msgstr "Schliesse einige Post- oder Seiten-IDs aus"
155
-
156
- #: views/options.php:258
157
- #@ SearchEverything
158
- msgid "Comma separated Post IDs (example: 1, 5, 9)"
159
- msgstr "Post-IDs durch Komma getrennt (Beispiel: 1, 5, 9)"
160
-
161
- #: views/options.php:262
162
- #@ SearchEverything
163
- msgid "Exclude Categories"
164
- msgstr "Schliesse Kategorien aus"
165
-
166
- #: views/options.php:265
167
- #@ SearchEverything
168
- msgid "Comma separated category IDs (example: 1, 4)"
169
- msgstr "Kategorie-IDs durch Kommas trennen (Beispiel: 1, 4)"
170
-
171
- #: views/options.php:269
172
- #@ SearchEverything
173
- msgid "Full Highlight Style"
174
- msgstr "Fortgeschrittenes Highlight Styling"
175
-
176
- #: views/options.php:271
177
- #@ SearchEverything
178
- msgid "Important: 'Highlight Background Color' must be blank to use this advanced styling."
179
- msgstr "Wichtig: 'Highlight Hintergrundfarbe' muss leer sein, um das fortgeschrittene Styling zu verwenden."
180
-
181
- #: views/options.php:273
182
- #@ SearchEverything
183
- msgid "Example:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
184
- msgstr "Beispiel:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
185
-
186
- #: views/options.php:286
187
- #@ SearchEverything
188
- msgid "Developed by Dan Cameron of"
189
- msgstr "Herausgegeben von Dan Cameron, "
190
-
191
- #: views/options.php:286
192
- #@ SearchEverything
193
- msgid "Sprout Venture"
194
- msgstr " Sprout Venture"
195
-
196
- #: views/options.php:286
197
- #@ SearchEverything
198
- msgid "We Provide custom WordPress Plugins and Themes and a whole lot more."
199
- msgstr "Wir bieten individuelle WordPress Plugins, Themes und vieles mehr."
200
-
201
- #: views/options.php:290
202
- #@ SearchEverything
203
- msgid "Reset Button"
204
- msgstr "Reset-Button"
205
-
206
- #: views/options.php:298
207
- #@ SearchEverything
208
- msgid "Find a bug?"
209
- msgstr "Einen Bug gefunden?"
210
-
211
- #: views/options.php:298
212
- #@ SearchEverything
213
- msgid "Post it as a new issue"
214
- msgstr "Poste es als eine neue Bug-Meldung"
215
-
216
- #: views/options.php:305
217
- #@ SearchEverything
218
- msgid "Test Search Form"
219
- msgstr "Teste Suchformular"
220
-
221
- #: views/options.php:312
222
- #@ SearchEverything
223
- msgid "Use this search form to run a live search test."
224
- msgstr "Du kannst die neue Suche live testen:"
225
-
226
- #: views/options.php:318
227
- #@ SearchEverything
228
- msgid "Run Test Search"
229
- msgstr "Starte Test-Suche"
230
-
231
- #: views/options.php:329
232
- #@ SearchEverything
233
- msgid "News"
234
- msgstr "News"
235
-
236
- #: views/options.php:330
237
- #@ SearchEverything
238
- msgid "Development Support"
239
- msgstr "Development Support"
240
-
241
- #: views/options.php:331
242
- #@ SearchEverything
243
- msgid "Localization Support"
244
- msgstr "Lokalisation Support"
245
-
246
- #: views/options.php:337
247
- #@ SearchEverything
248
- msgid "LOCALIZATION SUPPORT:"
249
- msgstr "LOKALISATION SUPPORT:"
250
-
251
- #: views/options.php:337
252
- #@ SearchEverything
253
- msgid "Version 6 was a major update and a few areas need new localization support. If you can help send me your translations by posting them as a new issue, "
254
- msgstr "Version 6 hatte ein großes Update, ein paar Bereiche benötigen neue Lokalisierungen. Wenn Du helfen möchtest, sende mir deine Übersetzungen: "
255
-
256
- #: views/options.php:337
257
- #@ SearchEverything
258
- msgid "here"
259
- msgstr " hier"
260
-
261
- #: views/options.php:338
262
- #@ SearchEverything
263
- msgid "Thank You!"
264
- msgstr "Danke!"
265
-
266
- #: views/options.php:338
267
- #@ SearchEverything
268
- msgid "The development of Search Everything since Version one has primarily come from the WordPress community, I&#8217;m grateful for their dedicated and continued support."
269
- msgstr "Search Everything verdankt seine Entwicklung seit der ersten Version der WordPress-Community. Ich bedanke mich für Eure engagierte und kontinuierliche Unterstützung!"
270
-
271
- #: views/options.php:348
272
- #@ SearchEverything
273
- msgid "and many more..."
274
- msgstr "und vieles mehr ..."
275
-
276
- #: views/options.php:348
277
- #@ SearchEverything
278
- msgid "how about you?"
279
- msgstr "Und Du?"
280
-
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Search Everything v6.3.1\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: \n"
6
+ "PO-Revision-Date: 2009-10-30 16:00+0100\n"
7
+ "Last-Translator: admin <administration@terrarienpflanzen-lexikon.de>\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
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
13
+ "X-Poedit-Language: German\n"
14
+ "X-Poedit-Country: GERMANY\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
17
+ "X-Poedit-Basepath: ../\n"
18
+ "X-Poedit-Bookmarks: \n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
+ "X-Textdomain-Support: yes"
21
+
22
+ #: views/options.php:54
23
+ #: views/options.php:61
24
+ #@ SearchEverything
25
+ msgid "Your default search settings have been <strong>updated</strong> by Search Everything. </p><p> What are you waiting for? Go check out the new search results!"
26
+ msgstr "Ihre Einstellungen für Search Everything wurden <strong>aktualisiert.</strong> </p><p> Was wartest du noch? Teste die neuen Suchergebnisse!"
27
+
28
+ #: views/options.php:71
29
+ #@ SearchEverything
30
+ msgid "Search Everything Version:"
31
+ msgstr "Search Everything Version:"
32
+
33
+ #: views/options.php:76
34
+ #: views/options.php:281
35
+ #@ SearchEverything
36
+ msgid "Update Options"
37
+ msgstr "Einstellungen aktualisieren"
38
+
39
+ #: views/options.php:84
40
+ #@ SearchEverything
41
+ msgid "Basic Configuration"
42
+ msgstr "Grundkonfiguration"
43
+
44
+ #: views/options.php:92
45
+ #@ SearchEverything
46
+ msgid "Search every page"
47
+ msgstr "Durchsuche jede Seite"
48
+
49
+ #: views/options.php:96
50
+ #: views/options.php:107
51
+ #: views/options.php:121
52
+ #: views/options.php:135
53
+ #: views/options.php:146
54
+ #: views/options.php:156
55
+ #: views/options.php:166
56
+ #: views/options.php:176
57
+ #: views/options.php:189
58
+ #: views/options.php:200
59
+ #: views/options.php:210
60
+ #: views/options.php:220
61
+ #: views/options.php:230
62
+ #@ SearchEverything
63
+ msgid "Yes"
64
+ msgstr "Ja"
65
+
66
+ #: views/options.php:103
67
+ #@ SearchEverything
68
+ msgid "Search approved pages only"
69
+ msgstr "Durchsuche nur veröffentlichte Seiten"
70
+
71
+ #: views/options.php:117
72
+ #@ SearchEverything
73
+ msgid "Search every tag name"
74
+ msgstr "Durchsuche alle Tag-Namen"
75
+
76
+ #: views/options.php:131
77
+ #@ SearchEverything
78
+ msgid "Search every category name and description"
79
+ msgstr "Durchsuche alle Kategorie-Namen und Beschreibungen"
80
+
81
+ #: views/options.php:142
82
+ #@ SearchEverything
83
+ msgid "Search every comment"
84
+ msgstr "Durchsuche jeden Kommentar"
85
+
86
+ #: views/options.php:152
87
+ #@ SearchEverything
88
+ msgid "Search comment authors"
89
+ msgstr "Durchsuche Kommentar-Autoren"
90
+
91
+ #: views/options.php:162
92
+ #@ SearchEverything
93
+ msgid "Search approved comments only"
94
+ msgstr "Durchsuche nur genehmigte Kommentare"
95
+
96
+ #: views/options.php:172
97
+ #@ SearchEverything
98
+ msgid "Search every excerpt"
99
+ msgstr "Durchsuche jeden Auszug"
100
+
101
+ #: views/options.php:185
102
+ #@ SearchEverything
103
+ msgid "Search every draft"
104
+ msgstr "Durchsuche jeden Entwurf"
105
+
106
+ #: views/options.php:196
107
+ #@ SearchEverything
108
+ msgid "Search every attachment"
109
+ msgstr "Durchsuche alle Anhänge"
110
+
111
+ #: views/options.php:196
112
+ #@ SearchEverything
113
+ msgid "(post type = attachment)"
114
+ msgstr "(Artikel-Typ = Anhang)"
115
+
116
+ #: views/options.php:206
117
+ #@ SearchEverything
118
+ msgid "Search every custom field"
119
+ msgstr "Durchsuche alle benutzerdefinierten Felder"
120
+
121
+ #: views/options.php:206
122
+ #@ SearchEverything
123
+ msgid "(metadata)"
124
+ msgstr "(Metadaten)"
125
+
126
+ #: views/options.php:216
127
+ #@ SearchEverything
128
+ msgid "Search every author"
129
+ msgstr "Durchsuche alle Autoren"
130
+
131
+ #: views/options.php:226
132
+ #@ SearchEverything
133
+ msgid "Highlight Search Terms"
134
+ msgstr "Hebe Suchbegriffe hervor"
135
+
136
+ #: views/options.php:236
137
+ #@ SearchEverything
138
+ msgid "Highlight Background Color"
139
+ msgstr "Highlight Hintergrundfarbe"
140
+
141
+ #: views/options.php:239
142
+ #@ SearchEverything
143
+ msgid "Examples:<br/>'#FFF984' or 'red\\"
144
+ msgstr "Beispiele:<br/>'#FFF984' oder 'red\\"
145
+
146
+ #: views/options.php:249
147
+ #@ SearchEverything
148
+ msgid "Advanced Configuration - Exclusion"
149
+ msgstr "Erweiterte Konfiguration - Ausschlüsse"
150
+
151
+ #: views/options.php:255
152
+ #@ SearchEverything
153
+ msgid "Exclude some post or page IDs"
154
+ msgstr "Schliesse einige Post- oder Seiten-IDs aus"
155
+
156
+ #: views/options.php:258
157
+ #@ SearchEverything
158
+ msgid "Comma separated Post IDs (example: 1, 5, 9)"
159
+ msgstr "Post-IDs durch Komma getrennt (Beispiel: 1, 5, 9)"
160
+
161
+ #: views/options.php:262
162
+ #@ SearchEverything
163
+ msgid "Exclude Categories"
164
+ msgstr "Schliesse Kategorien aus"
165
+
166
+ #: views/options.php:265
167
+ #@ SearchEverything
168
+ msgid "Comma separated category IDs (example: 1, 4)"
169
+ msgstr "Kategorie-IDs durch Kommas trennen (Beispiel: 1, 4)"
170
+
171
+ #: views/options.php:269
172
+ #@ SearchEverything
173
+ msgid "Full Highlight Style"
174
+ msgstr "Fortgeschrittenes Highlight Styling"
175
+
176
+ #: views/options.php:271
177
+ #@ SearchEverything
178
+ msgid "Important: 'Highlight Background Color' must be blank to use this advanced styling."
179
+ msgstr "Wichtig: 'Highlight Hintergrundfarbe' muss leer sein, um das fortgeschrittene Styling zu verwenden."
180
+
181
+ #: views/options.php:273
182
+ #@ SearchEverything
183
+ msgid "Example:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
184
+ msgstr "Beispiel:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
185
+
186
+ #: views/options.php:286
187
+ #@ SearchEverything
188
+ msgid "Developed by Dan Cameron of"
189
+ msgstr "Herausgegeben von Dan Cameron, "
190
+
191
+ #: views/options.php:286
192
+ #@ SearchEverything
193
+ msgid "Sprout Venture"
194
+ msgstr " Sprout Venture"
195
+
196
+ #: views/options.php:286
197
+ #@ SearchEverything
198
+ msgid "We Provide custom WordPress Plugins and Themes and a whole lot more."
199
+ msgstr "Wir bieten individuelle WordPress Plugins, Themes und vieles mehr."
200
+
201
+ #: views/options.php:290
202
+ #@ SearchEverything
203
+ msgid "Reset Button"
204
+ msgstr "Reset-Button"
205
+
206
+ #: views/options.php:298
207
+ #@ SearchEverything
208
+ msgid "Find a bug?"
209
+ msgstr "Einen Bug gefunden?"
210
+
211
+ #: views/options.php:298
212
+ #@ SearchEverything
213
+ msgid "Post it as a new issue"
214
+ msgstr "Poste es als eine neue Bug-Meldung"
215
+
216
+ #: views/options.php:305
217
+ #@ SearchEverything
218
+ msgid "Test Search Form"
219
+ msgstr "Teste Suchformular"
220
+
221
+ #: views/options.php:312
222
+ #@ SearchEverything
223
+ msgid "Use this search form to run a live search test."
224
+ msgstr "Du kannst die neue Suche live testen:"
225
+
226
+ #: views/options.php:318
227
+ #@ SearchEverything
228
+ msgid "Run Test Search"
229
+ msgstr "Starte Test-Suche"
230
+
231
+ #: views/options.php:329
232
+ #@ SearchEverything
233
+ msgid "News"
234
+ msgstr "News"
235
+
236
+ #: views/options.php:330
237
+ #@ SearchEverything
238
+ msgid "Development Support"
239
+ msgstr "Development Support"
240
+
241
+ #: views/options.php:331
242
+ #@ SearchEverything
243
+ msgid "Localization Support"
244
+ msgstr "Lokalisation Support"
245
+
246
+ #: views/options.php:337
247
+ #@ SearchEverything
248
+ msgid "LOCALIZATION SUPPORT:"
249
+ msgstr "LOKALISATION SUPPORT:"
250
+
251
+ #: views/options.php:337
252
+ #@ SearchEverything
253
+ msgid "Version 6 was a major update and a few areas need new localization support. If you can help send me your translations by posting them as a new issue, "
254
+ msgstr "Version 6 hatte ein großes Update, ein paar Bereiche benötigen neue Lokalisierungen. Wenn Du helfen möchtest, sende mir deine Übersetzungen: "
255
+
256
+ #: views/options.php:337
257
+ #@ SearchEverything
258
+ msgid "here"
259
+ msgstr " hier"
260
+
261
+ #: views/options.php:338
262
+ #@ SearchEverything
263
+ msgid "Thank You!"
264
+ msgstr "Danke!"
265
+
266
+ #: views/options.php:338
267
+ #@ SearchEverything
268
+ msgid "The development of Search Everything since Version one has primarily come from the WordPress community, I&#8217;m grateful for their dedicated and continued support."
269
+ msgstr "Search Everything verdankt seine Entwicklung seit der ersten Version der WordPress-Community. Ich bedanke mich für Eure engagierte und kontinuierliche Unterstützung!"
270
+
271
+ #: views/options.php:348
272
+ #@ SearchEverything
273
+ msgid "and many more..."
274
+ msgstr "und vieles mehr ..."
275
+
276
+ #: views/options.php:348
277
+ #@ SearchEverything
278
+ msgid "how about you?"
279
+ msgstr "Und Du?"
280
+
lang/se-fr_FR.po CHANGED
@@ -1,362 +1,362 @@
1
- # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) YEAR Dan Cameron of Sprout Venture
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
- #
6
- msgid ""
7
- msgstr ""
8
- "Project-Id-Version: PACKAGE VERSION\n"
9
- "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2010-02-28 05:13+0100\n"
11
- "PO-Revision-Date: 2010-02-28 05:18+0100\n"
12
- "Last-Translator: Maître Mô <postmaster@maitremo.fr>\n"
13
- "Language-Team: LANGUAGE <LL@li.org>\n"
14
- "MIME-Version: 1.0\n"
15
- "Content-Type: text/plain; charset=UTF-8\n"
16
- "Content-Transfer-Encoding: 8bit\n"
17
- "X-Poedit-KeywordsList: _e\n"
18
- "X-Poedit-Basepath: .\n"
19
-
20
- #: C:\Documents
21
- #: and Settings\JYM\Bureau\search-everything/views/options.php:72
22
- msgid "Search Everything Version:"
23
- msgstr "Version de Search Everything:"
24
-
25
- #: C:\Documents
26
- #: and Settings\JYM\Bureau\search-everything/views/options.php:77
27
- #: Settings\JYM\Bureau\search-everything/views/options.php:298
28
- msgid "Update Options"
29
- msgstr "Mise à jour"
30
-
31
- #: C:\Documents
32
- #: and Settings\JYM\Bureau\search-everything/views/options.php:85
33
- msgid "Basic Configuration"
34
- msgstr "Configuration de base"
35
-
36
- #: C:\Documents
37
- #: and Settings\JYM\Bureau\search-everything/views/options.php:93
38
- msgid "Search every page"
39
- msgstr "Chercher dans toutes les pages"
40
-
41
- #: C:\Documents
42
- #: and Settings\JYM\Bureau\search-everything/views/options.php:97
43
- #: Settings\JYM\Bureau\search-everything/views/options.php:108
44
- #: Settings\JYM\Bureau\search-everything/views/options.php:122
45
- #: Settings\JYM\Bureau\search-everything/views/options.php:136
46
- #: Settings\JYM\Bureau\search-everything/views/options.php:150
47
- #: Settings\JYM\Bureau\search-everything/views/options.php:161
48
- #: Settings\JYM\Bureau\search-everything/views/options.php:171
49
- #: Settings\JYM\Bureau\search-everything/views/options.php:181
50
- #: Settings\JYM\Bureau\search-everything/views/options.php:191
51
- #: Settings\JYM\Bureau\search-everything/views/options.php:204
52
- #: Settings\JYM\Bureau\search-everything/views/options.php:215
53
- #: Settings\JYM\Bureau\search-everything/views/options.php:225
54
- #: Settings\JYM\Bureau\search-everything/views/options.php:236
55
- #: Settings\JYM\Bureau\search-everything/views/options.php:247
56
- msgid "Yes"
57
- msgstr "Oui"
58
-
59
- #: C:\Documents
60
- #: and
61
- #: Settings\JYM\Bureau\search-everything/views/options.php:104
62
- msgid "Search approved pages only"
63
- msgstr "Rechercher dans les pages validées seulement"
64
-
65
- #: C:\Documents
66
- #: and
67
- #: Settings\JYM\Bureau\search-everything/views/options.php:118
68
- msgid "Search every tag name"
69
- msgstr "Rechercher dans tous les mots clés"
70
-
71
- #: C:\Documents
72
- #: and
73
- #: Settings\JYM\Bureau\search-everything/views/options.php:132
74
- msgid "Search custom taxonomies"
75
- msgstr "Rechercher dans les taxonomies personnalisées"
76
-
77
- #: C:\Documents
78
- #: and
79
- #: Settings\JYM\Bureau\search-everything/views/options.php:146
80
- msgid "Search every category name and description"
81
- msgstr "Rechercher dans tous les noms de catégories et description"
82
-
83
- #: C:\Documents
84
- #: and
85
- #: Settings\JYM\Bureau\search-everything/views/options.php:157
86
- msgid "Search every comment"
87
- msgstr "Rechercher dans tous les commentaires"
88
-
89
- #: C:\Documents
90
- #: and
91
- #: Settings\JYM\Bureau\search-everything/views/options.php:167
92
- msgid "Search comment authors"
93
- msgstr "Rechercher dans les commentaires des auteurs"
94
-
95
- #: C:\Documents
96
- #: and
97
- #: Settings\JYM\Bureau\search-everything/views/options.php:177
98
- msgid "Search approved comments only"
99
- msgstr "Rechercher dans les commentaires validés seulement"
100
-
101
- #: C:\Documents
102
- #: and
103
- #: Settings\JYM\Bureau\search-everything/views/options.php:187
104
- msgid "Search every excerpt"
105
- msgstr "Rechercher dans tous les extraits"
106
-
107
- #: C:\Documents
108
- #: and
109
- #: Settings\JYM\Bureau\search-everything/views/options.php:200
110
- msgid "Search every draft"
111
- msgstr "Rechercher dans tous les brouillons"
112
-
113
- #: C:\Documents
114
- #: and
115
- #: Settings\JYM\Bureau\search-everything/views/options.php:211
116
- msgid "Search every attachment"
117
- msgstr "Rechercher dans tous les documents joints"
118
-
119
- #: C:\Documents
120
- #: and
121
- #: Settings\JYM\Bureau\search-everything/views/options.php:211
122
- msgid "(post type = attachment)"
123
- msgstr "(type d'article = lien)"
124
-
125
- #: C:\Documents
126
- #: and
127
- #: Settings\JYM\Bureau\search-everything/views/options.php:221
128
- msgid "Search every custom field"
129
- msgstr "Rechercher dans tous les champs personnalisés"
130
-
131
- #: C:\Documents
132
- #: and
133
- #: Settings\JYM\Bureau\search-everything/views/options.php:221
134
- msgid "(metadata)"
135
- msgstr "(métadonnées)"
136
-
137
- #: C:\Documents
138
- #: and
139
- #: Settings\JYM\Bureau\search-everything/views/options.php:231
140
- msgid "Search every author"
141
- msgstr "Rechercher dans tous les auteurs"
142
-
143
- #: C:\Documents
144
- #: and
145
- #: Settings\JYM\Bureau\search-everything/views/options.php:239
146
- msgid "This is disabled for WP 2.8+. I'd appreciate the help if you have a fix."
147
- msgstr "Désactivé depuis WP 2.8 et plus. J'apprécierais de l'aide si vous avez une solution."
148
-
149
- #: C:\Documents
150
- #: and
151
- #: Settings\JYM\Bureau\search-everything/views/options.php:243
152
- msgid "Highlight Search Terms"
153
- msgstr "Mettre en évidence les termes recherchés"
154
-
155
- #: C:\Documents
156
- #: and
157
- #: Settings\JYM\Bureau\search-everything/views/options.php:253
158
- msgid "Highlight Background Color"
159
- msgstr "Couleur de fond de la mise en évidence"
160
-
161
- #: C:\Documents
162
- #: and
163
- #: Settings\JYM\Bureau\search-everything/views/options.php:256
164
- msgid "Examples:<br/>'#FFF984' or 'red'"
165
- msgstr "Exemples :<br/>'#FFF984' or 'red'"
166
-
167
- #: C:\Documents
168
- #: and
169
- #: Settings\JYM\Bureau\search-everything/views/options.php:266
170
- msgid "Advanced Configuration - Exclusion"
171
- msgstr "Configuration avancée - Exclusion"
172
-
173
- #: C:\Documents
174
- #: and
175
- #: Settings\JYM\Bureau\search-everything/views/options.php:272
176
- msgid "Exclude some post or page IDs"
177
- msgstr "Exclure des ID d'articles ou de pages"
178
-
179
- #: C:\Documents
180
- #: and
181
- #: Settings\JYM\Bureau\search-everything/views/options.php:275
182
- msgid "Comma separated Post IDs (example: 1, 5, 9)"
183
- msgstr "Liste d'IDs d'articles séparées par des virgules (ex : 1,5,9)"
184
-
185
- #: C:\Documents
186
- #: and
187
- #: Settings\JYM\Bureau\search-everything/views/options.php:279
188
- msgid "Exclude Categories"
189
- msgstr "Exclure des ID de catégories"
190
-
191
- #: C:\Documents
192
- #: and
193
- #: Settings\JYM\Bureau\search-everything/views/options.php:282
194
- msgid "Comma separated category IDs (example: 1, 4)"
195
- msgstr "Liste d'IDs de catégories séparées par des virgules (ex : 1,4)"
196
-
197
- #: C:\Documents
198
- #: and
199
- #: Settings\JYM\Bureau\search-everything/views/options.php:286
200
- msgid "Full Highlight Style"
201
- msgstr "Style complet de la mise en évidence"
202
-
203
- #: C:\Documents
204
- #: and
205
- #: Settings\JYM\Bureau\search-everything/views/options.php:288
206
- msgid "Important: 'Highlight Background Color' must be blank to use this advanced styling."
207
- msgstr "Important : \"Couleur de fond de la mise en évidence\" doit être vide pour utiliser ce stylisme avancé."
208
-
209
- #: C:\Documents
210
- #: and
211
- #: Settings\JYM\Bureau\search-everything/views/options.php:290
212
- msgid "Example:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
213
- msgstr "Exemple :<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
214
-
215
- #: C:\Documents
216
- #: and
217
- #: Settings\JYM\Bureau\search-everything/views/options.php:303
218
- msgid "Developed by Dan Cameron of"
219
- msgstr "Développé par Dan Cameron de"
220
-
221
- #: C:\Documents
222
- #: and
223
- #: Settings\JYM\Bureau\search-everything/views/options.php:303
224
- msgid "Sprout Venture"
225
- msgstr "Sprout Venture"
226
-
227
- #: C:\Documents
228
- #: and
229
- #: Settings\JYM\Bureau\search-everything/views/options.php:303
230
- msgid "We Provide custom WordPress Plugins and Themes and a whole lot more."
231
- msgstr "Nous développons des Plugins et des Thèmes pour Wordpress et bien plus encore."
232
-
233
- #: C:\Documents
234
- #: and
235
- #: Settings\JYM\Bureau\search-everything/views/options.php:307
236
- msgid "Reset Button"
237
- msgstr "Bouton de réinitialisation"
238
-
239
- #: C:\Documents
240
- #: and
241
- #: Settings\JYM\Bureau\search-everything/views/options.php:315
242
- msgid "Find a bug?"
243
- msgstr "Vous avez trouvé une erreur?"
244
-
245
- #: C:\Documents
246
- #: and
247
- #: Settings\JYM\Bureau\search-everything/views/options.php:315
248
- msgid "Post it as a new issue"
249
- msgstr "Poster en tant que nouveau problème"
250
-
251
- #: C:\Documents
252
- #: and
253
- #: Settings\JYM\Bureau\search-everything/views/options.php:322
254
- msgid "Test Search Form"
255
- msgstr "Test de recherche"
256
-
257
- #: C:\Documents
258
- #: and
259
- #: Settings\JYM\Bureau\search-everything/views/options.php:329
260
- msgid "Use this search form to run a live search test."
261
- msgstr "Utilisez ce champ pour effectuer une recherche réelle."
262
-
263
- #: C:\Documents
264
- #: and
265
- #: Settings\JYM\Bureau\search-everything/views/options.php:335
266
- msgid "Run Test Search"
267
- msgstr "Lancer la recherche"
268
-
269
- #: C:\Documents
270
- #: and
271
- #: Settings\JYM\Bureau\search-everything/views/options.php:346
272
- msgid "News"
273
- msgstr "Informations"
274
-
275
- #: C:\Documents
276
- #: and
277
- #: Settings\JYM\Bureau\search-everything/views/options.php:347
278
- msgid "Development Support"
279
- msgstr "Support pour le développement"
280
-
281
- #: C:\Documents
282
- #: and
283
- #: Settings\JYM\Bureau\search-everything/views/options.php:348
284
- msgid "Localization Support"
285
- msgstr "Support pour la traduction"
286
-
287
- #: C:\Documents
288
- #: and
289
- #: Settings\JYM\Bureau\search-everything/views/options.php:354
290
- msgid "LOCALIZATION SUPPORT:"
291
- msgstr "SUPPORT POUR LA TRADUCTION:"
292
-
293
- #: C:\Documents
294
- #: and
295
- #: Settings\JYM\Bureau\search-everything/views/options.php:354
296
- msgid "Version 6 was a major update and a few areas need new localization support. If you can help send me your translations by posting them as a new issue, "
297
- msgstr "La version 6 est une mise à jour majeure et plusieurs champs ont besoin d'une aide à la traduction. Vous pouvez m'aider en me faisant parvenir vos traductions par message,"
298
-
299
- #: C:\Documents
300
- #: and
301
- #: Settings\JYM\Bureau\search-everything/views/options.php:354
302
- msgid "here"
303
- msgstr "ici"
304
-
305
- #: C:\Documents
306
- #: and
307
- #: Settings\JYM\Bureau\search-everything/views/options.php:355
308
- msgid "Thank You!"
309
- msgstr "Merci!"
310
-
311
- #: C:\Documents
312
- #: and
313
- #: Settings\JYM\Bureau\search-everything/views/options.php:355
314
- msgid "The development of Search Everything since Version one has primarily come from the WordPress community, I&#8217;m grateful for their dedicated and continued support."
315
- msgstr "Le développement de Search Everything depuis la première version provient de la communauté WordPress, je suis reconnaissant pour leur dévouement et leur soutien permanent."
316
-
317
- #: C:\Documents
318
- #: and
319
- #: Settings\JYM\Bureau\search-everything/views/options.php:365
320
- msgid "and many more..."
321
- msgstr "et beaucoup plus..."
322
-
323
- #: C:\Documents
324
- #: and
325
- #: Settings\JYM\Bureau\search-everything/views/options.php:365
326
- msgid "how about you?"
327
- msgstr "et vous?"
328
-
329
- #~ msgid ""
330
- #~ "Your default search settings have been <strong>updated</strong> by Search "
331
- #~ "Everything. </p><p> What are you waiting for? Go check out the new search "
332
- #~ "results!"
333
- #~ msgstr ""
334
- #~ "Vos paramètres de recherche par défaut ont été <strong>mis à jour</"
335
- #~ "strong> par Search Everything. </p><p> Qu'est-ce que vous attendez? Allez "
336
- #~ "consulter les nouveaux résultats de la recherche!"
337
- #~ msgid "(non-password protected)"
338
- #~ msgstr "(non-protégées par mot de passe)"
339
- #~ msgid "Search Everything"
340
- #~ msgstr "Search Everything"
341
- #~ msgid "https://core.sproutventure.com/projects/show/search-everything"
342
- #~ msgstr "https://core.sproutventure.com/projects/show/search-everything"
343
- #~ msgid ""
344
- #~ "Adds search functionality without modifying any template pages: Activate, "
345
- #~ "Configure and Search. Options Include: search highlight, search pages, "
346
- #~ "excerpts, attachments, drafts, comments, tags and custom fields "
347
- #~ "(metadata). Also offers the ability to exclude specific pages and posts. "
348
- #~ "Does not search password-protected content."
349
- #~ msgstr ""
350
- #~ "Ajoute une fonction de recherche sans modification d'aucun modèle de "
351
- #~ "pages : activer, configurer et rechercher. Options inclues : mise en "
352
- #~ "valeur du résultat, recherche dans les pages, les extraits, les pièces "
353
- #~ "jointes, les brouillons, les commentaires, les mots clés et les champs "
354
- #~ "personnalisés (métadonnées). Offre également la possibilité d'exclure des "
355
- #~ "pages et articles donnés. Exlut les contenus protégés par mot de passe."
356
- #~ msgid "Dan Cameron of Sprout Venture"
357
- #~ msgstr "Dan Cameron de Sprout Venture"
358
- #~ msgid "http://sproutventure.com/"
359
- #~ msgstr "http://sproutventure.com/"
360
- #~ msgid "Your settings have been reset"
361
- #~ msgstr "Vos paramètres ont été réinitialisés"
362
-
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR Dan Cameron of Sprout Venture
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2010-02-28 05:13+0100\n"
11
+ "PO-Revision-Date: 2010-02-28 05:18+0100\n"
12
+ "Last-Translator: Maître Mô <postmaster@maitremo.fr>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "X-Poedit-KeywordsList: _e\n"
18
+ "X-Poedit-Basepath: .\n"
19
+
20
+ #: C:\Documents
21
+ #: and Settings\JYM\Bureau\search-everything/views/options.php:72
22
+ msgid "Search Everything Version:"
23
+ msgstr "Version de Search Everything:"
24
+
25
+ #: C:\Documents
26
+ #: and Settings\JYM\Bureau\search-everything/views/options.php:77
27
+ #: Settings\JYM\Bureau\search-everything/views/options.php:298
28
+ msgid "Update Options"
29
+ msgstr "Mise à jour"
30
+
31
+ #: C:\Documents
32
+ #: and Settings\JYM\Bureau\search-everything/views/options.php:85
33
+ msgid "Basic Configuration"
34
+ msgstr "Configuration de base"
35
+
36
+ #: C:\Documents
37
+ #: and Settings\JYM\Bureau\search-everything/views/options.php:93
38
+ msgid "Search every page"
39
+ msgstr "Chercher dans toutes les pages"
40
+
41
+ #: C:\Documents
42
+ #: and Settings\JYM\Bureau\search-everything/views/options.php:97
43
+ #: Settings\JYM\Bureau\search-everything/views/options.php:108
44
+ #: Settings\JYM\Bureau\search-everything/views/options.php:122
45
+ #: Settings\JYM\Bureau\search-everything/views/options.php:136
46
+ #: Settings\JYM\Bureau\search-everything/views/options.php:150
47
+ #: Settings\JYM\Bureau\search-everything/views/options.php:161
48
+ #: Settings\JYM\Bureau\search-everything/views/options.php:171
49
+ #: Settings\JYM\Bureau\search-everything/views/options.php:181
50
+ #: Settings\JYM\Bureau\search-everything/views/options.php:191
51
+ #: Settings\JYM\Bureau\search-everything/views/options.php:204
52
+ #: Settings\JYM\Bureau\search-everything/views/options.php:215
53
+ #: Settings\JYM\Bureau\search-everything/views/options.php:225
54
+ #: Settings\JYM\Bureau\search-everything/views/options.php:236
55
+ #: Settings\JYM\Bureau\search-everything/views/options.php:247
56
+ msgid "Yes"
57
+ msgstr "Oui"
58
+
59
+ #: C:\Documents
60
+ #: and
61
+ #: Settings\JYM\Bureau\search-everything/views/options.php:104
62
+ msgid "Search approved pages only"
63
+ msgstr "Rechercher dans les pages validées seulement"
64
+
65
+ #: C:\Documents
66
+ #: and
67
+ #: Settings\JYM\Bureau\search-everything/views/options.php:118
68
+ msgid "Search every tag name"
69
+ msgstr "Rechercher dans tous les mots clés"
70
+
71
+ #: C:\Documents
72
+ #: and
73
+ #: Settings\JYM\Bureau\search-everything/views/options.php:132
74
+ msgid "Search custom taxonomies"
75
+ msgstr "Rechercher dans les taxonomies personnalisées"
76
+
77
+ #: C:\Documents
78
+ #: and
79
+ #: Settings\JYM\Bureau\search-everything/views/options.php:146
80
+ msgid "Search every category name and description"
81
+ msgstr "Rechercher dans tous les noms de catégories et description"
82
+
83
+ #: C:\Documents
84
+ #: and
85
+ #: Settings\JYM\Bureau\search-everything/views/options.php:157
86
+ msgid "Search every comment"
87
+ msgstr "Rechercher dans tous les commentaires"
88
+
89
+ #: C:\Documents
90
+ #: and
91
+ #: Settings\JYM\Bureau\search-everything/views/options.php:167
92
+ msgid "Search comment authors"
93
+ msgstr "Rechercher dans les commentaires des auteurs"
94
+
95
+ #: C:\Documents
96
+ #: and
97
+ #: Settings\JYM\Bureau\search-everything/views/options.php:177
98
+ msgid "Search approved comments only"
99
+ msgstr "Rechercher dans les commentaires validés seulement"
100
+
101
+ #: C:\Documents
102
+ #: and
103
+ #: Settings\JYM\Bureau\search-everything/views/options.php:187
104
+ msgid "Search every excerpt"
105
+ msgstr "Rechercher dans tous les extraits"
106
+
107
+ #: C:\Documents
108
+ #: and
109
+ #: Settings\JYM\Bureau\search-everything/views/options.php:200
110
+ msgid "Search every draft"
111
+ msgstr "Rechercher dans tous les brouillons"
112
+
113
+ #: C:\Documents
114
+ #: and
115
+ #: Settings\JYM\Bureau\search-everything/views/options.php:211
116
+ msgid "Search every attachment"
117
+ msgstr "Rechercher dans tous les documents joints"
118
+
119
+ #: C:\Documents
120
+ #: and
121
+ #: Settings\JYM\Bureau\search-everything/views/options.php:211
122
+ msgid "(post type = attachment)"
123
+ msgstr "(type d'article = lien)"
124
+
125
+ #: C:\Documents
126
+ #: and
127
+ #: Settings\JYM\Bureau\search-everything/views/options.php:221
128
+ msgid "Search every custom field"
129
+ msgstr "Rechercher dans tous les champs personnalisés"
130
+
131
+ #: C:\Documents
132
+ #: and
133
+ #: Settings\JYM\Bureau\search-everything/views/options.php:221
134
+ msgid "(metadata)"
135
+ msgstr "(métadonnées)"
136
+
137
+ #: C:\Documents
138
+ #: and
139
+ #: Settings\JYM\Bureau\search-everything/views/options.php:231
140
+ msgid "Search every author"
141
+ msgstr "Rechercher dans tous les auteurs"
142
+
143
+ #: C:\Documents
144
+ #: and
145
+ #: Settings\JYM\Bureau\search-everything/views/options.php:239
146
+ msgid "This is disabled for WP 2.8+. I'd appreciate the help if you have a fix."
147
+ msgstr "Désactivé depuis WP 2.8 et plus. J'apprécierais de l'aide si vous avez une solution."
148
+
149
+ #: C:\Documents
150
+ #: and
151
+ #: Settings\JYM\Bureau\search-everything/views/options.php:243
152
+ msgid "Highlight Search Terms"
153
+ msgstr "Mettre en évidence les termes recherchés"
154
+
155
+ #: C:\Documents
156
+ #: and
157
+ #: Settings\JYM\Bureau\search-everything/views/options.php:253
158
+ msgid "Highlight Background Color"
159
+ msgstr "Couleur de fond de la mise en évidence"
160
+
161
+ #: C:\Documents
162
+ #: and
163
+ #: Settings\JYM\Bureau\search-everything/views/options.php:256
164
+ msgid "Examples:<br/>'#FFF984' or 'red'"
165
+ msgstr "Exemples :<br/>'#FFF984' or 'red'"
166
+
167
+ #: C:\Documents
168
+ #: and
169
+ #: Settings\JYM\Bureau\search-everything/views/options.php:266
170
+ msgid "Advanced Configuration - Exclusion"
171
+ msgstr "Configuration avancée - Exclusion"
172
+
173
+ #: C:\Documents
174
+ #: and
175
+ #: Settings\JYM\Bureau\search-everything/views/options.php:272
176
+ msgid "Exclude some post or page IDs"
177
+ msgstr "Exclure des ID d'articles ou de pages"
178
+
179
+ #: C:\Documents
180
+ #: and
181
+ #: Settings\JYM\Bureau\search-everything/views/options.php:275
182
+ msgid "Comma separated Post IDs (example: 1, 5, 9)"
183
+ msgstr "Liste d'IDs d'articles séparées par des virgules (ex : 1,5,9)"
184
+
185
+ #: C:\Documents
186
+ #: and
187
+ #: Settings\JYM\Bureau\search-everything/views/options.php:279
188
+ msgid "Exclude Categories"
189
+ msgstr "Exclure des ID de catégories"
190
+
191
+ #: C:\Documents
192
+ #: and
193
+ #: Settings\JYM\Bureau\search-everything/views/options.php:282
194
+ msgid "Comma separated category IDs (example: 1, 4)"
195
+ msgstr "Liste d'IDs de catégories séparées par des virgules (ex : 1,4)"
196
+
197
+ #: C:\Documents
198
+ #: and
199
+ #: Settings\JYM\Bureau\search-everything/views/options.php:286
200
+ msgid "Full Highlight Style"
201
+ msgstr "Style complet de la mise en évidence"
202
+
203
+ #: C:\Documents
204
+ #: and
205
+ #: Settings\JYM\Bureau\search-everything/views/options.php:288
206
+ msgid "Important: 'Highlight Background Color' must be blank to use this advanced styling."
207
+ msgstr "Important : \"Couleur de fond de la mise en évidence\" doit être vide pour utiliser ce stylisme avancé."
208
+
209
+ #: C:\Documents
210
+ #: and
211
+ #: Settings\JYM\Bureau\search-everything/views/options.php:290
212
+ msgid "Example:<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
213
+ msgstr "Exemple :<br/>background-color: #FFF984; font-weight: bold; color: #000; padding: 0 1px;"
214
+
215
+ #: C:\Documents
216
+ #: and
217
+ #: Settings\JYM\Bureau\search-everything/views/options.php:303
218
+ msgid "Developed by Dan Cameron of"
219
+ msgstr "Développé par Dan Cameron de"
220
+
221
+ #: C:\Documents
222
+ #: and
223
+ #: Settings\JYM\Bureau\search-everything/views/options.php:303
224
+ msgid "Sprout Venture"
225
+ msgstr "Sprout Venture"
226
+
227
+ #: C:\Documents
228
+ #: and
229
+ #: Settings\JYM\Bureau\search-everything/views/options.php:303
230
+ msgid "We Provide custom WordPress Plugins and Themes and a whole lot more."
231
+ msgstr "Nous développons des Plugins et des Thèmes pour Wordpress et bien plus encore."
232
+
233
+ #: C:\Documents
234
+ #: and
235
+ #: Settings\JYM\Bureau\search-everything/views/options.php:307
236
+ msgid "Reset Button"
237
+ msgstr "Bouton de réinitialisation"
238
+
239
+ #: C:\Documents
240
+ #: and
241
+ #: Settings\JYM\Bureau\search-everything/views/options.php:315
242
+ msgid "Find a bug?"
243
+ msgstr "Vous avez trouvé une erreur?"
244
+
245
+ #: C:\Documents
246
+ #: and
247
+ #: Settings\JYM\Bureau\search-everything/views/options.php:315
248
+ msgid "Post it as a new issue"
249
+ msgstr "Poster en tant que nouveau problème"
250
+
251
+ #: C:\Documents
252
+ #: and
253
+ #: Settings\JYM\Bureau\search-everything/views/options.php:322
254
+ msgid "Test Search Form"
255
+ msgstr "Test de recherche"
256
+
257
+ #: C:\Documents
258
+ #: and
259
+ #: Settings\JYM\Bureau\search-everything/views/options.php:329
260
+ msgid "Use this search form to run a live search test."
261
+ msgstr "Utilisez ce champ pour effectuer une recherche réelle."
262
+
263
+ #: C:\Documents
264
+ #: and
265
+ #: Settings\JYM\Bureau\search-everything/views/options.php:335
266
+ msgid "Run Test Search"
267
+ msgstr "Lancer la recherche"
268
+
269
+ #: C:\Documents
270
+ #: and
271
+ #: Settings\JYM\Bureau\search-everything/views/options.php:346
272
+ msgid "News"
273
+ msgstr "Informations"
274
+
275
+ #: C:\Documents
276
+ #: and
277
+ #: Settings\JYM\Bureau\search-everything/views/options.php:347
278
+ msgid "Development Support"
279
+ msgstr "Support pour le développement"
280
+
281
+ #: C:\Documents
282
+ #: and
283
+ #: Settings\JYM\Bureau\search-everything/views/options.php:348
284
+ msgid "Localization Support"
285
+ msgstr "Support pour la traduction"
286
+
287
+ #: C:\Documents
288
+ #: and
289
+ #: Settings\JYM\Bureau\search-everything/views/options.php:354
290
+ msgid "LOCALIZATION SUPPORT:"
291
+ msgstr "SUPPORT POUR LA TRADUCTION:"
292
+
293
+ #: C:\Documents
294
+ #: and
295
+ #: Settings\JYM\Bureau\search-everything/views/options.php:354
296
+ msgid "Version 6 was a major update and a few areas need new localization support. If you can help send me your translations by posting them as a new issue, "
297
+ msgstr "La version 6 est une mise à jour majeure et plusieurs champs ont besoin d'une aide à la traduction. Vous pouvez m'aider en me faisant parvenir vos traductions par message,"
298
+
299
+ #: C:\Documents
300
+ #: and
301
+ #: Settings\JYM\Bureau\search-everything/views/options.php:354
302
+ msgid "here"
303
+ msgstr "ici"
304
+
305
+ #: C:\Documents
306
+ #: and
307
+ #: Settings\JYM\Bureau\search-everything/views/options.php:355
308
+ msgid "Thank You!"
309
+ msgstr "Merci!"
310
+
311
+ #: C:\Documents
312
+ #: and
313
+ #: Settings\JYM\Bureau\search-everything/views/options.php:355
314
+ msgid "The development of Search Everything since Version one has primarily come from the WordPress community, I&#8217;m grateful for their dedicated and continued support."
315
+ msgstr "Le développement de Search Everything depuis la première version provient de la communauté WordPress, je suis reconnaissant pour leur dévouement et leur soutien permanent."
316
+
317
+ #: C:\Documents
318
+ #: and
319
+ #: Settings\JYM\Bureau\search-everything/views/options.php:365
320
+ msgid "and many more..."
321
+ msgstr "et beaucoup plus..."
322
+
323
+ #: C:\Documents
324
+ #: and
325
+ #: Settings\JYM\Bureau\search-everything/views/options.php:365
326
+ msgid "how about you?"
327
+ msgstr "et vous?"
328
+
329
+ #~ msgid ""
330
+ #~ "Your default search settings have been <strong>updated</strong> by Search "
331
+ #~ "Everything. </p><p> What are you waiting for? Go check out the new search "
332
+ #~ "results!"
333
+ #~ msgstr ""
334
+ #~ "Vos paramètres de recherche par défaut ont été <strong>mis à jour</"
335
+ #~ "strong> par Search Everything. </p><p> Qu'est-ce que vous attendez? Allez "
336
+ #~ "consulter les nouveaux résultats de la recherche!"
337
+ #~ msgid "(non-password protected)"
338
+ #~ msgstr "(non-protégées par mot de passe)"
339
+ #~ msgid "Search Everything"
340
+ #~ msgstr "Search Everything"
341
+ #~ msgid "https://core.sproutventure.com/projects/show/search-everything"
342
+ #~ msgstr "https://core.sproutventure.com/projects/show/search-everything"
343
+ #~ msgid ""
344
+ #~ "Adds search functionality without modifying any template pages: Activate, "
345
+ #~ "Configure and Search. Options Include: search highlight, search pages, "
346
+ #~ "excerpts, attachments, drafts, comments, tags and custom fields "
347
+ #~ "(metadata). Also offers the ability to exclude specific pages and posts. "
348
+ #~ "Does not search password-protected content."
349
+ #~ msgstr ""
350
+ #~ "Ajoute une fonction de recherche sans modification d'aucun modèle de "
351
+ #~ "pages : activer, configurer et rechercher. Options inclues : mise en "
352
+ #~ "valeur du résultat, recherche dans les pages, les extraits, les pièces "
353
+ #~ "jointes, les brouillons, les commentaires, les mots clés et les champs "
354
+ #~ "personnalisés (métadonnées). Offre également la possibilité d'exclure des "
355
+ #~ "pages et articles donnés. Exlut les contenus protégés par mot de passe."
356
+ #~ msgid "Dan Cameron of Sprout Venture"
357
+ #~ msgstr "Dan Cameron de Sprout Venture"
358
+ #~ msgid "http://sproutventure.com/"
359
+ #~ msgstr "http://sproutventure.com/"
360
+ #~ msgid "Your settings have been reset"
361
+ #~ msgstr "Vos paramètres ont été réinitialisés"
362
+
lang/se-tr_TR.po CHANGED
@@ -1,105 +1,105 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: Search Everything\n"
4
- "POT-Creation-Date: \n"
5
- "PO-Revision-Date: 2007-10-11 01:59+0200\n"
6
- "Last-Translator: Baris Unver <baris.unver@beyn.org>\n"
7
- "Language-Team: Baris Unver <baris.unver@beyn.org>\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=utf-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Poedit-Language: Turkish\n"
12
- "X-Poedit-Country: TURKEY\n"
13
- "X-Poedit-KeywordsList: __;_e\n"
14
- "X-Poedit-Basepath: c:\\wamp\\www\\wordpress212\\wp-content\\plugins\\\n"
15
- "X-Poedit-SourceCharset: utf-8\n"
16
- "X-Poedit-SearchPath-0: search-everything\n"
17
-
18
- #: search-everything/SE-Admin.php:
19
- msgid "The options selected below will be used in every search query on this site; in addition to the built-in post search."
20
- msgstr "Aşağıda belirleyeceğiniz seçenekler, Wordpress'in varsayılan arama kutusuyla yapılan aramalarda etkili olacaktır."
21
-
22
- #: search-everything/SE-Admin.php:
23
- msgid "Exclude some post or page IDs"
24
- msgstr "Belirteceğim yazıları hariç tut"
25
-
26
- #: search-everything/SE-Admin.php:
27
- msgid "Comma separated Post IDs (example: 1, 5, 9)"
28
- msgstr "Virgülle ayırarak ID(ler) girin (örn. 1, 5, 9)"
29
-
30
- #: search-everything/SE-Admin.php:
31
- msgid "Exclude Categories <strong><small>(Wordpress 2.2 Only)</strong></small>"
32
- msgstr "Belirteceğim kategorileri hariç tut <strong><small>(Yalnızca Wordpress 2.2)</strong></small>"
33
-
34
- #: search-everything/SE-Admin.php:
35
- msgid "Comma separated category IDs (example: 1, 4)"
36
- msgstr "Virgülle ayırarak ID(ler) girin (örn. 1, 4)"
37
-
38
- #: search-everything/SE-Admin.php:
39
- msgid "Search every page (non-password protected)"
40
- msgstr "Sayfaları ara (şifre konmamışları)"
41
-
42
- #: search-everything/SE-Admin.php:
43
- msgid "Search approved pages only?"
44
- msgstr "Yalnızca onaylanmış sayfaları ara"
45
-
46
- #: search-everything/SE-Admin.php:
47
- msgid "Search every comment"
48
- msgstr "Yorumları ara"
49
-
50
- #: search-everything/SE-Admin.php:
51
- msgid "Search approved comments only?"
52
- msgstr "Yalnızca onaylanmış yorumları ara"
53
-
54
- #: search-everything/SE-Admin.php:
55
- msgid "Search every excerpt"
56
- msgstr "Excerpt'leri ara"
57
-
58
- #: search-everything/SE-Admin.php:
59
- msgid "Search every draft"
60
- msgstr "Taslakları ara"
61
-
62
- #: search-everything/SE-Admin.php:
63
- msgid "Search every attachment"
64
- msgstr "Eklentileri ara"
65
-
66
- #: search-everything/SE-Admin.php:
67
- msgid "Search every custom field (metadata)"
68
- msgstr "Özel alanları ara (metadata)"
69
-
70
- #: search-everything/SE-Admin.php:
71
- msgid "Update Options"
72
- msgstr "Seçenekleri Güncelle"
73
-
74
- #: search-everything/SE-Admin.php:
75
- msgid "SE Search Form"
76
- msgstr "SE Arama Formu"
77
-
78
- #: search-everything/SE-Admin.php:
79
- msgid "SE Search Options"
80
- msgstr "SE Arama Seçenekleri"
81
-
82
- #: search-everything/SE-Admin.php:
83
- msgid "Use this form to configure your search options."
84
- msgstr "Bu bölümü arama seçeneklerini belirlemek için kullanın."
85
-
86
- #: search-everything/SE-Admin.php:
87
- msgid "Search Options Form"
88
- msgstr "Arama Seçenekleri Formu"
89
-
90
- #: search-everything/SE-Admin.php:
91
- msgid "Use this search form to run a live search test."
92
- msgstr "Örnek bir arama yapmak için bu formu kullanın."
93
-
94
- #: search-everything/SE-Admin.php:
95
- msgid "Site Search"
96
- msgstr "Site Araması"
97
-
98
- #: search-everything/SE-Admin.php:
99
- msgid "Enter search terms"
100
- msgstr "Arama kriterlerini girin"
101
-
102
- #: search-everything/SE-Admin.php:
103
- msgid "Run Test Search"
104
- msgstr "Deneme Araması"
105
-
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: Search Everything\n"
4
+ "POT-Creation-Date: \n"
5
+ "PO-Revision-Date: 2007-10-11 01:59+0200\n"
6
+ "Last-Translator: Baris Unver <baris.unver@beyn.org>\n"
7
+ "Language-Team: Baris Unver <baris.unver@beyn.org>\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=utf-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Poedit-Language: Turkish\n"
12
+ "X-Poedit-Country: TURKEY\n"
13
+ "X-Poedit-KeywordsList: __;_e\n"
14
+ "X-Poedit-Basepath: c:\\wamp\\www\\wordpress212\\wp-content\\plugins\\\n"
15
+ "X-Poedit-SourceCharset: utf-8\n"
16
+ "X-Poedit-SearchPath-0: search-everything\n"
17
+
18
+ #: search-everything/SE-Admin.php:
19
+ msgid "The options selected below will be used in every search query on this site; in addition to the built-in post search."
20
+ msgstr "Aşağıda belirleyeceğiniz seçenekler, Wordpress'in varsayılan arama kutusuyla yapılan aramalarda etkili olacaktır."
21
+
22
+ #: search-everything/SE-Admin.php:
23
+ msgid "Exclude some post or page IDs"
24
+ msgstr "Belirteceğim yazıları hariç tut"
25
+
26
+ #: search-everything/SE-Admin.php:
27
+ msgid "Comma separated Post IDs (example: 1, 5, 9)"
28
+ msgstr "Virgülle ayırarak ID(ler) girin (örn. 1, 5, 9)"
29
+
30
+ #: search-everything/SE-Admin.php:
31
+ msgid "Exclude Categories <strong><small>(Wordpress 2.2 Only)</strong></small>"
32
+ msgstr "Belirteceğim kategorileri hariç tut <strong><small>(Yalnızca Wordpress 2.2)</strong></small>"
33
+
34
+ #: search-everything/SE-Admin.php:
35
+ msgid "Comma separated category IDs (example: 1, 4)"
36
+ msgstr "Virgülle ayırarak ID(ler) girin (örn. 1, 4)"
37
+
38
+ #: search-everything/SE-Admin.php:
39
+ msgid "Search every page (non-password protected)"
40
+ msgstr "Sayfaları ara (şifre konmamışları)"
41
+
42
+ #: search-everything/SE-Admin.php:
43
+ msgid "Search approved pages only?"
44
+ msgstr "Yalnızca onaylanmış sayfaları ara"
45
+
46
+ #: search-everything/SE-Admin.php:
47
+ msgid "Search every comment"
48
+ msgstr "Yorumları ara"
49
+
50
+ #: search-everything/SE-Admin.php:
51
+ msgid "Search approved comments only?"
52
+ msgstr "Yalnızca onaylanmış yorumları ara"
53
+
54
+ #: search-everything/SE-Admin.php:
55
+ msgid "Search every excerpt"
56
+ msgstr "Excerpt'leri ara"
57
+
58
+ #: search-everything/SE-Admin.php:
59
+ msgid "Search every draft"
60
+ msgstr "Taslakları ara"
61
+
62
+ #: search-everything/SE-Admin.php:
63
+ msgid "Search every attachment"
64
+ msgstr "Eklentileri ara"
65
+
66
+ #: search-everything/SE-Admin.php:
67
+ msgid "Search every custom field (metadata)"
68
+ msgstr "Özel alanları ara (metadata)"
69
+
70
+ #: search-everything/SE-Admin.php:
71
+ msgid "Update Options"
72
+ msgstr "Seçenekleri Güncelle"
73
+
74
+ #: search-everything/SE-Admin.php:
75
+ msgid "SE Search Form"
76
+ msgstr "SE Arama Formu"
77
+
78
+ #: search-everything/SE-Admin.php:
79
+ msgid "SE Search Options"
80
+ msgstr "SE Arama Seçenekleri"
81
+
82
+ #: search-everything/SE-Admin.php:
83
+ msgid "Use this form to configure your search options."
84
+ msgstr "Bu bölümü arama seçeneklerini belirlemek için kullanın."
85
+
86
+ #: search-everything/SE-Admin.php:
87
+ msgid "Search Options Form"
88
+ msgstr "Arama Seçenekleri Formu"
89
+
90
+ #: search-everything/SE-Admin.php:
91
+ msgid "Use this search form to run a live search test."
92
+ msgstr "Örnek bir arama yapmak için bu formu kullanın."
93
+
94
+ #: search-everything/SE-Admin.php:
95
+ msgid "Site Search"
96
+ msgstr "Site Araması"
97
+
98
+ #: search-everything/SE-Admin.php:
99
+ msgid "Enter search terms"
100
+ msgstr "Arama kriterlerini girin"
101
+
102
+ #: search-everything/SE-Admin.php:
103
+ msgid "Run Test Search"
104
+ msgstr "Deneme Araması"
105
+
lang/se.pot CHANGED
@@ -1,8 +1,4 @@
1
- # SOME DESCRIPTIVE TITLE.
2
- # Copyright (C) YEAR Dan Cameron of Sprout Venture
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
- #
6
  #, fuzzy
7
  msgid ""
8
  msgstr ""
@@ -18,6 +14,10 @@ msgstr ""
18
  "MIME-Version: 1.0\n"
19
  "Content-Type: text/plain; charset=CHARSET\n"
20
  "Content-Transfer-Encoding: 8bit\n"
 
 
 
 
21
 
22
  #: views/options.php:54 views/options.php:61
23
  msgid ""
@@ -208,8 +208,8 @@ msgstr ""
208
 
209
  #: views/options.php:334
210
  msgid ""
211
- "Version 6 was a major update and a few areas need new localization support. "
212
- "If you can help send me your translations by posting them as a new issue, "
213
  msgstr ""
214
 
215
  #: views/options.php:334
@@ -222,9 +222,9 @@ msgstr ""
222
 
223
  #: views/options.php:335
224
  msgid ""
225
- "The development of Search Everything since Version one has primarily come "
226
- "from the WordPress community, I&#8217;m grateful for their dedicated and "
227
- "continued support."
228
  msgstr ""
229
 
230
  #: views/options.php:345
@@ -246,10 +246,10 @@ msgstr ""
246
  #. Description of an extension
247
  msgid ""
248
  "Adds search functionality without modifying any template pages: Activate, "
249
- "Configure and Search. Options Include: search highlight, search pages, "
250
- "excerpts, attachments, drafts, comments, tags and custom fields (metadata). "
251
- "Also offers the ability to exclude specific pages and posts. Does not search "
252
- "password-protected content."
253
  msgstr ""
254
 
255
  #. Author of an extension
1
+ #. Loco Gettext template
 
 
 
 
2
  #, fuzzy
3
  msgid ""
4
  msgstr ""
14
  "MIME-Version: 1.0\n"
15
  "Content-Type: text/plain; charset=CHARSET\n"
16
  "Content-Transfer-Encoding: 8bit\n"
17
+ "X-Poedit-SourceCharset: UTF-8\n"
18
+ "X-Loco-Source-Locale: en_GB\n"
19
+ "X-Loco-Parser: loco_parse_po\n"
20
+ "X-Generator: Loco - https://localise.biz/"
21
 
22
  #: views/options.php:54 views/options.php:61
23
  msgid ""
208
 
209
  #: views/options.php:334
210
  msgid ""
211
+ "Version 6 was a major update and a few areas need new localization support. If "
212
+ "you can help send me your translations by posting them as a new issue, "
213
  msgstr ""
214
 
215
  #: views/options.php:334
222
 
223
  #: views/options.php:335
224
  msgid ""
225
+ "The development of Search Everything since Version one has primarily come from "
226
+ "the WordPress community, I&#8217;m grateful for their dedicated and continued "
227
+ "support."
228
  msgstr ""
229
 
230
  #: views/options.php:345
246
  #. Description of an extension
247
  msgid ""
248
  "Adds search functionality without modifying any template pages: Activate, "
249
+ "Configure and Search. Options Include: search highlight, search pages, excerpts,"
250
+ " attachments, drafts, comments, tags and custom fields (metadata). Also offers "
251
+ "the ability to exclude specific pages and posts. Does not search password-"
252
+ "protected content."
253
  msgstr ""
254
 
255
  #. Author of an extension
options.php CHANGED
@@ -1,17 +1,21 @@
1
  <?php
2
 
3
  Class se_admin {
4
-
5
  function se_admin() {
6
  // Load language file
7
  $locale = get_locale();
8
  $meta = se_get_meta();
 
9
  if ( !empty($locale) )
10
  load_textdomain('SearchEverything', SE_PLUGIN_DIR .'lang/se-'.$locale.'.mo');
11
 
12
- add_action( 'admin_enqueue_scripts', array(&$this,'se_register_plugin_styles'));
13
- add_action('admin_menu', array(&$this, 'se_add_options_panel'));
14
 
 
 
 
15
 
16
  if ( isset( $_GET['se_notice'] ) && 0 == $_GET['se_notice'] ) {
17
  $meta['show_options_page_notice'] = false;
@@ -20,17 +24,65 @@ Class se_admin {
20
  if ( $meta['show_options_page_notice'] ) {
21
  add_action( 'all_admin_notices', array( &$this, 'se_options_page_notice' ) );
22
  }
 
 
 
 
 
23
  }
24
 
25
  /**
26
  * Register style sheet.
27
  */
28
- function se_register_plugin_styles() {
29
- wp_register_style( 'search-everything', SE_PLUGIN_URL . '/css/admin.css' );
30
  wp_enqueue_style( 'search-everything' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
34
 
35
  function se_add_options_panel() {
36
  add_options_page('Search', 'Search Everything', 'manage_options', 'extend_search', array(&$this, 'se_option_page'));
@@ -61,9 +113,12 @@ Class se_admin {
61
  'se_use_metadata_search' => (isset($_POST['search_metadata']) && $_POST['search_metadata']),
62
  'se_use_highlight' => (isset($_POST['search_highlight']) && $_POST['search_highlight']),
63
  'se_highlight_color' => (isset($_POST['highlight_color'])) ? $_POST['highlight_color'] : '',
64
- 'se_highlight_style' => (isset($_POST['highlight_style'])) ? $_POST['highlight_style'] : ''
 
 
65
  );
66
 
 
67
  if(isset($_POST['action']) && $_POST['action'] == "save") {
68
  echo "<div class=\"updated fade\" id=\"limitcatsupdatenotice\"><p>" . __('Your default search settings have been <strong>updated</strong> by Search Everything. </p><p> What are you waiting for? Go check out the new search results!', 'SearchEverything') . "</p></div>";
69
  se_update_options($new_options);
@@ -79,10 +134,32 @@ Class se_admin {
79
  $options = se_get_options();
80
  $meta = se_get_meta();
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  include(se_get_view('options_page'));
83
 
84
  } //end se_option_page
85
 
 
86
  function se_options_page_notice() {
87
  $screen = get_current_screen();
88
  if ( 'settings_page_extend_search' == $screen->id ) {
@@ -95,3 +172,73 @@ Class se_admin {
95
  }
96
  }
97
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
 
3
  Class se_admin {
4
+
5
  function se_admin() {
6
  // Load language file
7
  $locale = get_locale();
8
  $meta = se_get_meta();
9
+ $options = se_get_options();
10
  if ( !empty($locale) )
11
  load_textdomain('SearchEverything', SE_PLUGIN_DIR .'lang/se-'.$locale.'.mo');
12
 
13
+ add_action( 'admin_enqueue_scripts', array(&$this,'se_register_plugin_scripts_and_styles'));
14
+ add_action( 'admin_menu', array(&$this, 'se_add_options_panel'));
15
 
16
+ if (!empty($options['se_research_metabox']['visible_on_compose'])) {
17
+ add_action( 'add_meta_boxes', array(&$this,'se_meta_box_add' ));
18
+ }
19
 
20
  if ( isset( $_GET['se_notice'] ) && 0 == $_GET['se_notice'] ) {
21
  $meta['show_options_page_notice'] = false;
24
  if ( $meta['show_options_page_notice'] ) {
25
  add_action( 'all_admin_notices', array( &$this, 'se_options_page_notice' ) );
26
  }
27
+
28
+ if ( isset( $_GET['se_global_notice'] ) && 0 == $_GET['se_global_notice']) {
29
+ $meta['se_global_notice'] = null;
30
+ se_update_meta($meta);
31
+ }
32
  }
33
 
34
  /**
35
  * Register style sheet.
36
  */
37
+ function se_register_plugin_scripts_and_styles() {
38
+ wp_register_style( 'search-everything', SE_PLUGIN_URL . '/static/css/admin.css', array(), SE_VERSION );
39
  wp_enqueue_style( 'search-everything' );
40
+
41
+ add_editor_style(SE_PLUGIN_URL . '/static/css/se-styles.css', array(), SE_VERSION);
42
+
43
+ wp_register_style( 'search-everything-compose', SE_PLUGIN_URL . '/static/css/se-compose.css', array(), SE_VERSION );
44
+ wp_enqueue_style( 'search-everything-compose' );
45
+
46
+ wp_register_script( 'search-everything', SE_PLUGIN_URL . '/static/js/searcheverything.js', array(), SE_VERSION );
47
+ wp_enqueue_script('search-everything');
48
+ }
49
+
50
+
51
+
52
+ /*
53
+ * Add metabox for search widget on editor
54
+ */
55
+
56
+ function se_meta_box_add() {
57
+ add_meta_box( 'se-metabox', 'Research Everything', array(&$this,'se_meta_box_cb'), 'post', 'side', 'high' );
58
+ }
59
+
60
+ function se_meta_box_cb($post) {
61
+ $values = get_post_custom($post->ID);
62
+ $text = isset($values['se-meta-box-text']) ? esc_attr($values['se-meta-box-text'][0]) : '';
63
+ wp_nonce_field('se-meta-box-nonce', 'meta_box_nonce');
64
+ ?>
65
+ <div id="se-metabox-form">
66
+ <input placeholder="Type search here" data-ajaxurl="<?php echo admin_url('admin-ajax.php'); ?>" type="search" placeholder="Search interesting stuff" name="se-metabox-text" id="se-metabox-text" value="" />
67
+ <a id="se-metabox-search">Search</a>
68
+ </div>
69
+ <?php
70
  }
71
 
72
 
73
+ function se_meta_box_search($post_id) {
74
+ // Bail if we're doing an auto save
75
+ if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
76
+
77
+ // if our nonce isn't there, or we can't verify it, bail
78
+ if( !isset( $_POST['meta_box_nonce'] ) || !wp_verify_nonce( $_POST['meta_box_nonce'], 'se-meta-box-nonce' ) ) return;
79
+
80
+ // if our current user can't edit this post, bail
81
+ if( !current_user_can( 'edit_post' ) ) return;
82
+
83
+
84
+ }
85
+
86
 
87
  function se_add_options_panel() {
88
  add_options_page('Search', 'Search Everything', 'manage_options', 'extend_search', array(&$this, 'se_option_page'));
113
  'se_use_metadata_search' => (isset($_POST['search_metadata']) && $_POST['search_metadata']),
114
  'se_use_highlight' => (isset($_POST['search_highlight']) && $_POST['search_highlight']),
115
  'se_highlight_color' => (isset($_POST['highlight_color'])) ? $_POST['highlight_color'] : '',
116
+ 'se_highlight_style' => (isset($_POST['highlight_style'])) ? $_POST['highlight_style'] : '',
117
+ 'se_research_metabox' => array ('visible_on_compose' => (isset($_POST['research_metabox']) && $_POST['research_metabox']),
118
+ 'external_search_enabled' => (isset($_POST['research_external_results']) && $_POST['research_external_results']))
119
  );
120
 
121
+
122
  if(isset($_POST['action']) && $_POST['action'] == "save") {
123
  echo "<div class=\"updated fade\" id=\"limitcatsupdatenotice\"><p>" . __('Your default search settings have been <strong>updated</strong> by Search Everything. </p><p> What are you waiting for? Go check out the new search results!', 'SearchEverything') . "</p></div>";
124
  se_update_options($new_options);
134
  $options = se_get_options();
135
  $meta = se_get_meta();
136
 
137
+ //get api key if it doesn't exist
138
+ if ( $options['se_research_metabox']['external_search_enabled'] && empty($meta['api_key'])) {
139
+ $api_key = fetch_api_key();
140
+ $meta['api_key'] = $api_key;
141
+ se_update_meta($meta);
142
+ }
143
+
144
+ $response_messages = se_get_response_messages();
145
+ $external_message = "";
146
+ if (!empty($meta['api_key']) && empty($meta['sfid'])) {
147
+ $sfid_response = get_sfid();
148
+ if (!empty($sfid_response[0])) {
149
+ $meta['sfid'] = $sfid_response[1];
150
+ se_update_meta($meta);
151
+ }
152
+ $external_message = !empty($response_messages[$sfid_response[1]]) ? $response_messages[$sfid_response[1]] : $response_messages[SE_PREFS_STATE_FAILED];
153
+ }
154
+ elseif (!empty($meta['sfid'])) {
155
+ $external_message = $response_messages[SE_PREFS_STATE_FOUND];
156
+ }
157
+
158
  include(se_get_view('options_page'));
159
 
160
  } //end se_option_page
161
 
162
+
163
  function se_options_page_notice() {
164
  $screen = get_current_screen();
165
  if ( 'settings_page_extend_search' == $screen->id ) {
172
  }
173
  }
174
  }
175
+
176
+ /**
177
+ * fetch_api_key
178
+ *
179
+ * Get API Key
180
+ */
181
+ function fetch_api_key()
182
+ {
183
+ $response = api(array(
184
+ 'method' => 'zemanta.auth.create_user',
185
+ 'partner_id' => 'wordpress-se'
186
+ ));
187
+
188
+ if(!is_wp_error($response))
189
+ {
190
+ if(preg_match('/<status>(.+?)<\/status>/', $response['body'], $matches))
191
+ {
192
+ if($matches[1] == 'ok' && preg_match('/<apikey>(.+?)<\/apikey>/', $response['body'], $matches))
193
+ return $matches[1];
194
+ }
195
+ }
196
+
197
+ return '';
198
+ }
199
+
200
+
201
+ /**
202
+ * api
203
+ *
204
+ * API Call
205
+ *
206
+ * @param array $arguments Arguments to pass to the API
207
+ */
208
+ function api($arguments)
209
+ {
210
+ $meta = se_get_meta();
211
+
212
+ $api_key = $meta['api_key'] ? $meta['api_key'] : '';
213
+
214
+ $arguments = array_merge($arguments, array(
215
+ 'api_key'=> $api_key
216
+ ));
217
+
218
+ if (!isset($arguments['format']))
219
+ {
220
+ $arguments['format'] = 'xml';
221
+ }
222
+
223
+ return wp_remote_post(SE_ZEMANTA_API_GATEWAY, array('body' => $arguments));
224
+ }
225
+
226
+ function get_sfid() {
227
+ $site_urls = array(
228
+ get_bloginfo('rss2_url'),
229
+ get_site_url()
230
+ );
231
+ $response_state;
232
+ foreach($site_urls as $url) {
233
+ if (empty($url)) continue;
234
+ $response = wp_remote_GET(SE_ZEMANTA_PREFS_URL . '?url=' . urlencode($url));
235
+ if(!is_wp_error($response)) {
236
+ $response_json = json_decode($response['body']);
237
+ $response_state = $response_json->state;
238
+ if ($response_json->status === 'ok' && !empty($response_json->sfid)) {
239
+ return array($response_json->sfid, $response_state);
240
+ }
241
+ }
242
+ }
243
+ return array(null, $response_state);
244
+ }
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: zemanta
3
  Tags: search, search highlight, tag search, category search, category exclusion, comment search, page search, admin, seo, post filter
4
  Requires at least: 3
5
  Tested up to: 3.8.1
6
- Stable tag: 7.0.4
7
 
8
  Search Everything increases WordPress' default search functionality in three easy steps.
9
 
@@ -16,13 +16,15 @@ From Jan 24, 2014 Search Everything originaly developed by dancameron, sproutven
16
 
17
  Search Everything improves WordPress default search functionality without modifying any of the template pages. You can configure it to search pages, excerpts, attachments, drafts, comments, tags and custom fields (metadata) and you can specify your own search highlight style. It also offers the ability to exclude specific pages and posts. It does not search password-protected content. Simply install, configure... and search.
18
 
 
 
19
  = Better WordPress search in three steps =
20
 
21
  * Activate
22
  * Configure options
23
  * Search!
24
 
25
- = What it does: =
26
 
27
  Search Everything increases the ability of the default Wordpress Search, options include:
28
 
@@ -92,6 +94,11 @@ Please open a new issue at [github Issues](https://github.com/zemanta/search-eve
92
 
93
  == Changelog ==
94
 
 
 
 
 
 
95
  = 7.0.4 =
96
  * Urgent bugfix - changed migration script
97
 
3
  Tags: search, search highlight, tag search, category search, category exclusion, comment search, page search, admin, seo, post filter
4
  Requires at least: 3
5
  Tested up to: 3.8.1
6
+ Stable tag: 8.0
7
 
8
  Search Everything increases WordPress' default search functionality in three easy steps.
9
 
16
 
17
  Search Everything improves WordPress default search functionality without modifying any of the template pages. You can configure it to search pages, excerpts, attachments, drafts, comments, tags and custom fields (metadata) and you can specify your own search highlight style. It also offers the ability to exclude specific pages and posts. It does not search password-protected content. Simply install, configure... and search.
18
 
19
+ **NEW:*** Search Everything plugin now includes a writing helper called Research Everything which let’s you search for your posts and link to them while writing. You can also enable Power Search to research posts from the wider web.
20
+
21
  = Better WordPress search in three steps =
22
 
23
  * Activate
24
  * Configure options
25
  * Search!
26
 
27
+ = What it does =
28
 
29
  Search Everything increases the ability of the default Wordpress Search, options include:
30
 
94
 
95
  == Changelog ==
96
 
97
+ = 8.0 =
98
+ * Added research widget on compose screen
99
+ * Reorganized settings
100
+ * Security updates
101
+
102
  = 7.0.4 =
103
  * Urgent bugfix - changed migration script
104
 
screenshot-1.jpg DELETED
Binary file
screenshot-1.png ADDED
Binary file
screenshot-2.png ADDED
Binary file
screenshot-3.png ADDED
Binary file
search-everything.php CHANGED
@@ -1,816 +1,918 @@
1
- <?php
2
- /*
3
- Plugin Name: Search Everything
4
- Plugin URI: https://github.com/Zemanta/search-everything-wordpress-plugin/
5
- Description: Adds search functionality without modifying any template pages: Activate, Configure and Search. Options Include: search highlight, search pages, excerpts, attachments, drafts, comments, tags and custom fields (metadata). Also offers the ability to exclude specific pages and posts. Does not search password-protected content.
6
- Version: 7.0.4
7
- Author: Zemanta
8
- Author URI: http://www.zemanta.com
9
- */
10
-
11
- define('SE_VERSION', '7.0.4');
12
-
13
- if (!defined('SE_PLUGIN_FILE'))
14
- define('SE_PLUGIN_FILE', plugin_basename(__FILE__));
15
-
16
- if (!defined('SE_PLUGIN_NAME'))
17
- define('SE_PLUGIN_NAME', trim(dirname(plugin_basename(__FILE__)), '/'));
18
-
19
- if (!defined('SE_PLUGIN_DIR'))
20
- define('SE_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . SE_PLUGIN_NAME);
21
-
22
- if (!defined('SE_PLUGIN_URL'))
23
- define('SE_PLUGIN_URL', WP_PLUGIN_URL . '/' . SE_PLUGIN_NAME);
24
-
25
- include_once(SE_PLUGIN_DIR . '/config.php');
26
- include_once(SE_PLUGIN_DIR . '/options.php');
27
-
28
- add_action('wp_loaded','se_initialize_plugin');
29
-
30
- function se_initialize_plugin() {
31
- $SE = new SearchEverything();
32
- //add filters based upon option settings
33
- }
34
-
35
- function se_get_view($view) {
36
- return SE_PLUGIN_DIR . "/views/$view.php";
37
- }
38
-
39
- class SearchEverything {
40
-
41
- var $logging = false;
42
- var $options;
43
- var $wp_ver23;
44
- var $wp_ver25;
45
- var $wp_ver28;
46
- var $ajax_request;
47
- private $query_instance;
48
-
49
- function SearchEverything($ajax_query=false) {
50
- global $wp_version;
51
- $this->wp_ver23 = ( $wp_version >= '2.3' );
52
- $this->wp_ver25 = ( $wp_version >= '2.5' );
53
- $this->wp_ver28 = ( $wp_version >= '2.8' );
54
- $this->ajax_request = $ajax_query ? true : false;
55
- $this->options = se_get_options();
56
-
57
- if ($this->ajax_request) {
58
- $this->init_ajax($ajax_query);
59
- }
60
- else {
61
- $this->init();
62
- }
63
- }
64
-
65
- function init_ajax($query) {
66
-
67
-
68
- $this->search_hooks();
69
- }
70
-
71
- function init() {
72
- if ( current_user_can('manage_options') ) {
73
- $SEAdmin = new se_admin();
74
- // Disable Search-Everything, because posts_join is not working properly in Wordpress-backend's Ajax functions
75
- if (basename( $_SERVER["SCRIPT_NAME"] ) == "admin-ajax.php") {
76
- return true;
77
- }
78
- }
79
-
80
- $this->search_hooks();
81
-
82
- // Highlight content
83
- if ( $this->options['se_use_highlight'] ) {
84
- add_filter( 'the_content', array( &$this, 'se_postfilter' ), 11 );
85
- add_filter( 'the_title', array( &$this, 'se_postfilter' ), 11 );
86
- add_filter( 'the_excerpt', array( &$this, 'se_postfilter' ), 11 );
87
- }
88
- }
89
-
90
- function search_hooks() {
91
- //add filters based upon option settings
92
- if ( $this->options['se_use_tag_search'] || $this->options['se_use_category_search'] || $this->options['se_use_tax_search'] ) {
93
- add_filter( 'posts_join', array( &$this, 'se_terms_join' ) );
94
- if ( $this->options['se_use_tag_search'] ) {
95
- $this->se_log( "searching tags" );
96
- }
97
- if ( $this->options['se_use_category_search'] ) {
98
- $this->se_log( "searching categories" );
99
- }
100
- if ( $this->options['se_use_tax_search'] ) {
101
- $this->se_log( "searching custom taxonomies" );
102
- }
103
- }
104
-
105
- if ( $this->options['se_use_page_search'] ) {
106
- add_filter( 'posts_where', array( &$this, 'se_search_pages' ) );
107
- $this->se_log( "searching pages" );
108
- }
109
-
110
- if ( $this->options['se_use_excerpt_search'] ) {
111
- $this->se_log( "searching excerpts" );
112
- }
113
-
114
- if ( $this->options['se_use_comment_search'] ) {
115
- add_filter( 'posts_join', array( &$this, 'se_comments_join' ) );
116
- $this->se_log( "searching comments" );
117
- // Highlight content
118
- if ( $this->options['se_use_highlight'] ) {
119
- add_filter( 'comment_text', array( &$this, 'se_postfilter' ) );
120
- }
121
- }
122
-
123
- if ( $this->options['se_use_draft_search'] ) {
124
- add_filter( 'posts_where', array( &$this, 'se_search_draft_posts' ) );
125
- $this->se_log( "searching drafts" );
126
- }
127
-
128
- if ( $this->options['se_use_attachment_search'] ) {
129
- add_filter( 'posts_where', array( &$this, 'se_search_attachments' ) );
130
- $this->se_log( "searching attachments" );
131
- }
132
-
133
- if ( $this->options['se_use_metadata_search'] ) {
134
- add_filter( 'posts_join', array( &$this, 'se_search_metadata_join' ) );
135
- $this->se_log( "searching metadata" );
136
- }
137
-
138
-
139
-
140
- if ( $this->options['se_exclude_posts_list'] != '' ) {
141
- $this->se_log( "searching excluding posts" );
142
- }
143
-
144
- if ( $this->options['se_exclude_categories_list'] != '' ) {
145
- add_filter( 'posts_join', array( &$this, 'se_exclude_categories_join' ) );
146
- $this->se_log( "searching excluding categories" );
147
- }
148
-
149
- if ( $this->options['se_use_authors'] ) {
150
-
151
- add_filter( 'posts_join', array( &$this, 'se_search_authors_join' ) );
152
- $this->se_log( "searching authors" );
153
- }
154
-
155
- add_filter( 'posts_search', array( &$this, 'se_search_where' ), 10, 2 );
156
-
157
- add_filter( 'posts_where', array( &$this, 'se_no_revisions' ) );
158
-
159
- add_filter( 'posts_request', array( &$this, 'se_distinct' ) );
160
-
161
- add_filter( 'posts_where', array( &$this, 'se_no_future' ) );
162
-
163
- add_filter( 'posts_request', array( &$this, 'se_log_query' ), 10, 2 );
164
- }
165
-
166
- // creates the list of search keywords from the 's' parameters.
167
- function se_get_search_terms() {
168
- global $wpdb;
169
- $s = isset( $this->query_instance->query_vars['s'] ) ? $this->query_instance->query_vars['s'] : '';
170
- $sentence = isset( $this->query_instance->query_vars['sentence'] ) ? $this->query_instance->query_vars['sentence'] : false;
171
- $search_terms = array();
172
-
173
- if ( !empty( $s ) ) {
174
- // added slashes screw with quote grouping when done early, so done later
175
- $s = stripslashes( $s );
176
- if ( $sentence ) {
177
- $search_terms = array( $s );
178
- } else {
179
- preg_match_all( '/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $s, $matches );
180
- $search_terms = array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] );
181
- }
182
- }
183
- return $search_terms;
184
- }
185
-
186
- // add where clause to the search query
187
- function se_search_where( $where, $wp_query ) {
188
-
189
- if ( !$wp_query->is_search() && !$this->ajax_request)
190
- return $where;
191
-
192
- $this->query_instance = &$wp_query;
193
- global $wpdb;
194
-
195
- $searchQuery = $this->se_search_default();
196
-
197
- //add filters based upon option settings
198
- if ( $this->options['se_use_tag_search'] ) {
199
- $searchQuery .= $this->se_build_search_tag();
200
- }
201
- if ( $this->options['se_use_category_search'] || $this->options['se_use_tax_search'] ) {
202
- $searchQuery .= $this->se_build_search_categories();
203
- }
204
- if ( $this->options['se_use_metadata_search'] ) {
205
- $searchQuery .= $this->se_build_search_metadata();
206
- }
207
- if ( $this->options['se_use_excerpt_search'] ) {
208
- $searchQuery .= $this->se_build_search_excerpt();
209
- }
210
- if ( $this->options['se_use_comment_search'] ) {
211
- $searchQuery .= $this->se_build_search_comments();
212
- }
213
- if ( $this->options['se_use_authors'] ) {
214
- $searchQuery .= $this->se_search_authors();
215
- }
216
- if ( $searchQuery != '' ) {
217
- $where = preg_replace( '#\(\(\(.*?\)\)\)#', '(('.$searchQuery.'))', $where );
218
-
219
- }
220
- if ( $this->options['se_exclude_posts_list'] != '' ) {
221
- $where .= $this->se_build_exclude_posts();
222
- }
223
- if ( $this->options['se_exclude_categories_list'] != '' ) {
224
- $where .= $this->se_build_exclude_categories();
225
-
226
- }
227
- $this->se_log( "global where: ".$where );
228
- return $where;
229
- }
230
- // search for terms in default locations like title and content
231
- // replacing the old search terms seems to be the best way to
232
- // avoid issue with multiple terms
233
- function se_search_default(){
234
-
235
- global $wpdb;
236
-
237
- $not_exact = empty($this->query_instance->query_vars['exact']);
238
- $search_sql_query = '';
239
- $seperator = '';
240
- $terms = $this->se_get_search_terms();
241
-
242
- // if it's not a sentance add other terms
243
- $search_sql_query .= '(';
244
- foreach ( $terms as $term ) {
245
- $search_sql_query .= $seperator;
246
-
247
- $esc_term = esc_sql($term);
248
- if ($not_exact) {
249
- $esc_term = "%$esc_term%";
250
- }
251
-
252
- $like_title = "($wpdb->posts.post_title LIKE '$esc_term')";
253
- $like_post = "($wpdb->posts.post_content LIKE '$esc_term')";
254
-
255
- $search_sql_query .= "($like_title OR $like_post)";
256
-
257
- $seperator = ' AND ';
258
- }
259
-
260
- $search_sql_query .= ')';
261
- return $search_sql_query;
262
- }
263
-
264
- // Exclude post revisions
265
- function se_no_revisions( $where ) {
266
- global $wpdb;
267
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
268
- if ( !$this->wp_ver28 ) {
269
- $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ") AND $wpdb->posts.post_type != 'revision'";
270
- }
271
- $where = ' AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ') AND post_type != \'revision\'';
272
- }
273
- return $where;
274
- }
275
-
276
- // Exclude future posts fix provided by Mx
277
- function se_no_future( $where ) {
278
- global $wpdb;
279
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
280
- if ( !$this->wp_ver28 ) {
281
- $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ") AND $wpdb->posts.post_status != 'future'";
282
- }
283
- $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ') AND post_status != \'future\'';
284
- }
285
- return $where;
286
- }
287
-
288
- // Logs search into a file
289
- function se_log( $msg ) {
290
-
291
- if ( $this->logging ) {
292
- $fp = fopen( SE_PLUGIN_DIR. "logfile.log", "a+" );
293
- if ( !$fp ) {
294
- echo 'unable to write to log file!';
295
- }
296
- $date = date( "Y-m-d H:i:s " );
297
- $source = "search_everything plugin: ";
298
- fwrite( $fp, "\n\n".$date."\n".$source."\n".$msg );
299
- fclose( $fp );
300
- }
301
- return true;
302
- }
303
-
304
- //Duplicate fix provided by Tiago.Pocinho
305
- function se_distinct( $query ) {
306
- global $wpdb;
307
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
308
- if ( strstr( $query, 'DISTINCT' ) ) {}
309
- else {
310
- $query = str_replace( 'SELECT', 'SELECT DISTINCT', $query );
311
- }
312
- }
313
- return $query;
314
- }
315
-
316
- //search pages (except password protected pages provided by loops)
317
- function se_search_pages( $where ) {
318
- global $wpdb;
319
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
320
-
321
- $where = str_replace( '"', '\'', $where );
322
- if ( $this->options['se_approved_pages_only'] ) {
323
- $where = str_replace( "post_type = 'post'", " AND 'post_password = '' AND ", $where );
324
- } else { // < v 2.1
325
- $where = str_replace( 'post_type = \'post\' AND ', '', $where );
326
- }
327
- }
328
- $this->se_log( "pages where: ".$where );
329
- return $where;
330
- }
331
-
332
- // create the search excerpts query
333
- function se_build_search_excerpt() {
334
- global $wpdb;
335
- $vars = $this->query_instance->query_vars;
336
-
337
- $s = $vars['s'];
338
- $search_terms = $this->se_get_search_terms();
339
- $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
340
- $search = '';
341
-
342
- if ( !empty( $search_terms ) ) {
343
- // Building search query
344
- $n = ( $exact ) ? '' : '%';
345
- $searchand = '';
346
- foreach ( $search_terms as $term ) {
347
- $term = addslashes_gpc( $term );
348
- $search .= "{$searchand}($wpdb->posts.post_excerpt LIKE '{$n}{$term}{$n}')";
349
- $searchand = ' AND ';
350
- }
351
- $sentence_term = esc_sql( $s );
352
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
353
- $search = "($search) OR ($wpdb->posts.post_excerpt LIKE '{$n}{$sentence_term}{$n}')";
354
- }
355
- if ( !empty( $search ) )
356
- $search = " OR ({$search}) ";
357
- }
358
-
359
- return $search;
360
- }
361
-
362
-
363
- //search drafts
364
- function se_search_draft_posts( $where ) {
365
- global $wpdb;
366
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
367
- $where = str_replace( '"', '\'', $where );
368
- if ( !$this->wp_ver28 ) {
369
- $where = str_replace( " AND (post_status = 'publish'", " AND ((post_status = 'publish' OR post_status = 'draft')", $where );
370
- }
371
- else {
372
- $where = str_replace( " AND ($wpdb->posts.post_status = 'publish'", " AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'draft'", $where );
373
- }
374
- $where = str_replace( " AND (post_status = 'publish'", " AND (post_status = 'publish' OR post_status = 'draft'", $where );
375
- }
376
- $this->se_log( "drafts where: ".$where );
377
- return $where;
378
- }
379
-
380
- //search attachments
381
- function se_search_attachments( $where ) {
382
- global $wpdb;
383
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
384
- $where = str_replace( '"', '\'', $where );
385
- if ( !$this->wp_ver28 ) {
386
- $where = str_replace( " AND (post_status = 'publish'", " AND (post_status = 'publish' OR post_type = 'attachment'", $where );
387
- $where = str_replace( "AND post_type != 'attachment'", "", $where );
388
- }
389
- else {
390
- $where = str_replace( " AND ($wpdb->posts.post_status = 'publish'", " AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_type = 'attachment'", $where );
391
- $where = str_replace( "AND $wpdb->posts.post_type != 'attachment'", "", $where );
392
- }
393
- }
394
- $this->se_log( "attachments where: ".$where );
395
- return $where;
396
- }
397
-
398
- // create the comments data query
399
- function se_build_search_comments() {
400
- global $wpdb;
401
- $vars = $this->query_instance->query_vars;
402
-
403
- $s = $vars['s'];
404
- $search_terms = $this->se_get_search_terms();
405
- $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
406
-
407
- if ( !empty( $search_terms ) ) {
408
- // Building search query on comments content
409
- $n = ( $exact ) ? '' : '%';
410
- $searchand = '';
411
- $searchContent = '';
412
- foreach ( $search_terms as $term ) {
413
- $term = addslashes_gpc( $term );
414
- if ( $this->wp_ver23 ) {
415
- $searchContent .= "{$searchand}(cmt.comment_content LIKE '{$n}{$term}{$n}')";
416
- }
417
- $searchand = ' AND ';
418
- }
419
- $sentense_term = esc_sql( $s );
420
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentense_term ) {
421
- if ( $this->wp_ver23 ) {
422
- $searchContent = "($searchContent) OR (cmt.comment_content LIKE '{$n}{$sentense_term}{$n}')";
423
- }
424
- }
425
- $search = $searchContent;
426
- // Building search query on comments author
427
- if ( $this->options['se_use_cmt_authors'] ) {
428
- $searchand = '';
429
- $comment_author = '';
430
- foreach ( $search_terms as $term ) {
431
- $term = addslashes_gpc( $term );
432
- if ( $this->wp_ver23 ) {
433
- $comment_author .= "{$searchand}(cmt.comment_author LIKE '{$n}{$term}{$n}')";
434
- }
435
- $searchand = ' AND ';
436
- }
437
- $sentence_term = esc_sql( $s );
438
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
439
- if ( $this->wp_ver23 ) {
440
- $comment_author = "($comment_author) OR (cmt.comment_author LIKE '{$n}{$sentence_term}{$n}')";
441
- }
442
- }
443
- $search = "($search) OR ($comment_author)";
444
- }
445
- if ( $this->options['se_approved_comments_only'] ) {
446
- $comment_approved = "AND cmt.comment_approved = '1'";
447
- $search = "($search) $comment_approved";
448
- }
449
- if ( !empty( $search ) )
450
- $search = " OR ({$search}) ";
451
- }
452
- //$this->se_log( "comments where: ".$where );
453
- $this->se_log( "comments sql: ".$search );
454
- return $search;
455
- }
456
-
457
- // Build the author search
458
- function se_search_authors() {
459
- global $wpdb;
460
- $s = $this->query_instance->query_vars['s'];
461
- $search_terms = $this->se_get_search_terms();
462
- $n = ( isset( $this->query_instance->query_vars['exact'] ) && $this->query_instance->query_vars['exact'] ) ? '' : '%';
463
- $search = '';
464
- $searchand = '';
465
-
466
- if ( !empty( $search_terms ) ) {
467
- // Building search query
468
- foreach ( $search_terms as $term ) {
469
- $term = addslashes_gpc( $term );
470
- if ( $this->wp_ver23 ) {
471
- $search .= "{$searchand}(u.display_name LIKE '{$n}{$term}{$n}')";
472
- } else {
473
- $search .= "{$searchand}(u.display_name LIKE '{$n}{$term}{$n}')";
474
- }
475
- $searchand = ' OR ';
476
- }
477
- $sentence_term = esc_sql( $s );
478
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
479
- if ( $this->wp_ver23 ) {
480
- $search .= " OR (u.display_name LIKE '{$n}{$sentence_term}{$n}')";
481
- } else {
482
- $search .= " OR (u.display_name LIKE '{$n}{$sentence_term}{$n}')";
483
- }
484
- }
485
-
486
-
487
-
488
- if ( !empty( $search ) )
489
- $search = " OR ({$search}) ";
490
-
491
- }
492
-
493
- $this->se_log( "user where: ".$search );
494
- return $search;
495
- }
496
-
497
- // create the search meta data query
498
- function se_build_search_metadata() {
499
- global $wpdb;
500
- $s = $this->query_instance->query_vars['s'];
501
- $search_terms = $this->se_get_search_terms();
502
- $n = ( isset( $this->query_instance->query_vars['exact'] ) && $this->query_instance->query_vars['exact'] ) ? '' : '%';
503
- $search = '';
504
-
505
- if ( !empty( $search_terms ) ) {
506
- // Building search query
507
- $searchand = '';
508
- foreach ( $search_terms as $term ) {
509
- $term = addslashes_gpc( $term );
510
- if ( $this->wp_ver23 ) {
511
- $search .= "{$searchand}(m.meta_value LIKE '{$n}{$term}{$n}')";
512
- } else {
513
- $search .= "{$searchand}(meta_value LIKE '{$n}{$term}{$n}')";
514
- }
515
- $searchand = ' AND ';
516
- }
517
- $sentence_term = esc_sql( $s );
518
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
519
- if ( $this->wp_ver23 ) {
520
- $search = "($search) OR (m.meta_value LIKE '{$n}{$sentence_term}{$n}')";
521
- } else {
522
- $search = "($search) OR (meta_value LIKE '{$n}{$sentence_term}{$n}')";
523
- }
524
- }
525
-
526
- if ( !empty( $search ) )
527
- $search = " OR ({$search}) ";
528
-
529
- }
530
- $this->se_log( "meta where: ".$search );
531
- return $search;
532
- }
533
-
534
- // create the search tag query
535
- function se_build_search_tag() {
536
- global $wpdb;
537
- $vars = $this->query_instance->query_vars;
538
-
539
- $s = $vars['s'];
540
- $search_terms = $this->se_get_search_terms();
541
- $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
542
- $search = '';
543
-
544
- if ( !empty( $search_terms ) ) {
545
- // Building search query
546
- $n = ( $exact ) ? '' : '%';
547
- $searchand = '';
548
- foreach ( $search_terms as $term ) {
549
- $term = addslashes_gpc( $term );
550
- if ( $this->wp_ver23 ) {
551
- $search .= "{$searchand}(tter.name LIKE '{$n}{$term}{$n}')";
552
- }
553
- $searchand = ' AND ';
554
- }
555
- $sentence_term = esc_sql( $s );
556
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
557
- if ( $this->wp_ver23 ) {
558
- $search = "($search) OR (tter.name LIKE '{$n}{$sentence_term}{$n}')";
559
- }
560
- }
561
- if ( !empty( $search ) )
562
- $search = " OR ({$search}) ";
563
- }
564
- $this->se_log( "tag where: ".$search );
565
- return $search;
566
- }
567
-
568
- // create the search categories query
569
- function se_build_search_categories() {
570
- global $wpdb;
571
- $vars = $this->query_instance->query_vars;
572
-
573
- $s = $vars['s'];
574
- $search_terms = $this->se_get_search_terms();
575
- $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
576
- $search = '';
577
-
578
- if ( !empty( $search_terms ) ) {
579
- // Building search query for categories slug.
580
- $n = ( $exact ) ? '' : '%';
581
- $searchand = '';
582
- $searchSlug = '';
583
- foreach ( $search_terms as $term ) {
584
- $term = addslashes_gpc( $term );
585
- $searchSlug .= "{$searchand}(tter.slug LIKE '{$n}".sanitize_title_with_dashes( $term )."{$n}')";
586
- $searchand = ' AND ';
587
- }
588
- if ( count( $search_terms ) > 1 && $search_terms[0] != $s ) {
589
- $searchSlug = "($searchSlug) OR (tter.slug LIKE '{$n}".sanitize_title_with_dashes( $s )."{$n}')";
590
- }
591
- if ( !empty( $searchSlug ) )
592
- $search = " OR ({$searchSlug}) ";
593
-
594
- // Building search query for categories description.
595
- $searchand = '';
596
- $searchDesc = '';
597
- foreach ( $search_terms as $term ) {
598
- $term = addslashes_gpc( $term );
599
- $searchDesc .= "{$searchand}(ttax.description LIKE '{$n}{$term}{$n}')";
600
- $searchand = ' AND ';
601
- }
602
- $sentence_term = esc_sql( $s );
603
- if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
604
- $searchDesc = "($searchDesc) OR (ttax.description LIKE '{$n}{$sentence_term}{$n}')";
605
- }
606
- if ( !empty( $searchDesc ) )
607
- $search = $search." OR ({$searchDesc}) ";
608
- }
609
- $this->se_log( "categories where: ".$search );
610
- return $search;
611
- }
612
-
613
- // create the Posts exclusion query
614
- function se_build_exclude_posts() {
615
- global $wpdb;
616
- $excludeQuery = '';
617
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
618
- $excludedPostList = trim( $this->options['se_exclude_posts_list'] );
619
- if ( $excludedPostList != '' ) {
620
- $excl_list = implode( ',', explode( ',', $excludedPostList ) );
621
- $excludeQuery = ' AND ('.$wpdb->posts.'.ID NOT IN ( '.$excl_list.' ))';
622
- }
623
- $this->se_log( "ex posts where: ".$excludeQuery );
624
- }
625
- return $excludeQuery;
626
- }
627
-
628
- // create the Categories exclusion query
629
- function se_build_exclude_categories() {
630
- global $wpdb;
631
- $excludeQuery = '';
632
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
633
- $excludedCatList = trim( $this->options['se_exclude_categories_list'] );
634
- if ( $excludedCatList != '' ) {
635
- $excl_list = implode( ',', explode( ',', $excludedCatList ) );
636
- if ( $this->wp_ver23 ) {
637
- $excludeQuery = " AND ( ctax.term_id NOT IN ( ".$excl_list." ))";
638
- }
639
- else {
640
- $excludeQuery = ' AND (c.category_id NOT IN ( '.$excl_list.' ))';
641
- }
642
- }
643
- $this->se_log( "ex category where: ".$excludeQuery );
644
- }
645
- return $excludeQuery;
646
- }
647
-
648
- //join for excluding categories - Deprecated in 2.3
649
- function se_exclude_categories_join( $join ) {
650
- global $wpdb;
651
-
652
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
653
-
654
- if ( $this->wp_ver23 ) {
655
- $join .= " LEFT JOIN $wpdb->term_relationships AS crel ON ($wpdb->posts.ID = crel.object_id) LEFT JOIN $wpdb->term_taxonomy AS ctax ON (ctax.taxonomy = 'category' AND crel.term_taxonomy_id = ctax.term_taxonomy_id) LEFT JOIN $wpdb->terms AS cter ON (ctax.term_id = cter.term_id) ";
656
- } else {
657
- $join .= "LEFT JOIN $wpdb->post2cat AS c ON $wpdb->posts.ID = c.post_id";
658
- }
659
- }
660
- $this->se_log( "category join: ".$join );
661
- return $join;
662
- }
663
-
664
- //join for searching comments
665
- function se_comments_join( $join ) {
666
- global $wpdb;
667
-
668
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
669
- if ( $this->wp_ver23 ) {
670
- $join .= " LEFT JOIN $wpdb->comments AS cmt ON ( cmt.comment_post_ID = $wpdb->posts.ID ) ";
671
-
672
- } else {
673
-
674
- if ( $this->options['se_approved_comments_only'] ) {
675
- $comment_approved = " AND comment_approved = '1'";
676
- } else {
677
- $comment_approved = '';
678
- }
679
- $join .= "LEFT JOIN $wpdb->comments ON ( comment_post_ID = ID " . $comment_approved . ") ";
680
- }
681
-
682
- }
683
- $this->se_log( "comments join: ".$join );
684
- return $join;
685
- }
686
-
687
- //join for searching authors
688
-
689
- function se_search_authors_join( $join ) {
690
- global $wpdb;
691
-
692
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
693
- $join .= " LEFT JOIN $wpdb->users AS u ON ($wpdb->posts.post_author = u.ID) ";
694
- }
695
- $this->se_log( "authors join: ".$join );
696
- return $join;
697
- }
698
-
699
- //join for searching metadata
700
- function se_search_metadata_join( $join ) {
701
- global $wpdb;
702
-
703
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
704
-
705
- if ( $this->wp_ver23 )
706
- $join .= " LEFT JOIN $wpdb->postmeta AS m ON ($wpdb->posts.ID = m.post_id) ";
707
- else
708
- $join .= " LEFT JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id ";
709
- }
710
- $this->se_log( "metadata join: ".$join );
711
- return $join;
712
- }
713
-
714
- //join for searching tags
715
- function se_terms_join( $join ) {
716
- global $wpdb;
717
-
718
- if ( !empty( $this->query_instance->query_vars['s'] ) ) {
719
-
720
- // if we're searching for categories
721
- if ( $this->options['se_use_category_search'] ) {
722
- $on[] = "ttax.taxonomy = 'category'";
723
- }
724
-
725
- // if we're searching for tags
726
- if ( $this->options['se_use_tag_search'] ) {
727
- $on[] = "ttax.taxonomy = 'post_tag'";
728
- }
729
- // if we're searching custom taxonomies
730
- if ( $this->options['se_use_tax_search'] ) {
731
- $all_taxonomies = get_taxonomies();
732
- $filter_taxonomies = array( 'post_tag', 'category', 'nav_menu', 'link_category' );
733
-
734
- foreach ( $all_taxonomies as $taxonomy ) {
735
- if ( in_array( $taxonomy, $filter_taxonomies ) )
736
- continue;
737
- $on[] = "ttax.taxonomy = '" . addslashes( $taxonomy )."'";
738
- }
739
- }
740
- // build our final string
741
- $on = ' ( ' . implode( ' OR ', $on ) . ' ) ';
742
-
743
- $join .= " LEFT JOIN $wpdb->term_relationships AS trel ON ($wpdb->posts.ID = trel.object_id) LEFT JOIN $wpdb->term_taxonomy AS ttax ON ( " . $on . " AND trel.term_taxonomy_id = ttax.term_taxonomy_id) LEFT JOIN $wpdb->terms AS tter ON (ttax.term_id = tter.term_id) ";
744
- }
745
- $this->se_log( "tags join: ".$join );
746
- return $join;
747
- }
748
-
749
- // Highlight the searched terms into Title, excerpt and content
750
- // in the search result page.
751
- function se_postfilter( $postcontent ) {
752
- global $wpdb;
753
- $s = isset( $this->query_instance->query_vars['s'] ) ? $this->query_instance->query_vars['s'] : '';
754
- // highlighting
755
- if ( is_search() && $s != '' ) {
756
- $highlight_color = $this->options['se_highlight_color'];
757
- $highlight_style = $this->options['se_highlight_style'];
758
- $search_terms = $this->se_get_search_terms();
759
- foreach ( $search_terms as $term ) {
760
- if ( preg_match( '/\>/', $term ) )
761
- continue; //don't try to highlight this one
762
- $term = preg_quote( $term );
763
-
764
- if ( $highlight_color != '' )
765
- $postcontent = preg_replace(
766
- '"(?<!\<)(?<!\w)(\pL*'.$term.'\pL*)(?!\w|[^<>]*>)"i'
767
- , '<span class="search-everything-highlight-color" style="background-color:'.$highlight_color.'">$1</span>'
768
- , $postcontent
769
- );
770
- else
771
- $postcontent = preg_replace(
772
- '"(?<!\<)(?<!\w)(\pL*'.$term.'\pL*)(?!\w|[^<>]*>)"i'
773
- , '<span class="search-everything-highlight" style="'.$highlight_style.'">$1</span>'
774
- , $postcontent
775
- );
776
- }
777
- }
778
- return $postcontent;
779
- }
780
-
781
- function se_log_query( $query, $wp_query ) {
782
- if ( $wp_query->is_search )
783
- $this->se_log( $query );
784
- return $query;
785
- }// se_log_query
786
- } // END
787
-
788
- add_action('wp_ajax_search_everything', 'search_everything_callback');
789
-
790
- function search_everything_callback() {
791
- $is_query = !empty($_GET['s']);
792
-
793
- $result = array();
794
- if ($is_query) {
795
- $SE = new SearchEverything(true);
796
-
797
- $params = array(
798
- 's' => $_GET['s']
799
- );
800
- if (!empty($_GET['exact'])) {
801
- $params['exact'] = true;
802
- }
803
-
804
- $post_query = new WP_query($params);
805
-
806
- while ( $post_query->have_posts() ) {
807
- $post_query->the_post();
808
-
809
- $result[] = get_post();
810
- }
811
- $post_query->reset_postdata();
812
-
813
- }
814
- print json_encode($result);
815
- die();
816
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Plugin Name: Search Everything
4
+ Plugin URI: https://github.com/Zemanta/search-everything-wordpress-plugin/
5
+ Description: Adds search functionality without modifying any template pages: Activate, Configure and Search. Options Include: search highlight, search pages, excerpts, attachments, drafts, comments, tags and custom fields (metadata). Also offers the ability to exclude specific pages and posts. Does not search password-protected content.
6
+ Version: 8.0
7
+ Author: Zemanta
8
+ Author URI: http://www.zemanta.com
9
+ */
10
+
11
+ define('SE_VERSION', '8.0');
12
+
13
+ if (!defined('SE_PLUGIN_FILE'))
14
+ define('SE_PLUGIN_FILE', plugin_basename(__FILE__));
15
+
16
+ if (!defined('SE_PLUGIN_NAME'))
17
+ define('SE_PLUGIN_NAME', trim(dirname(plugin_basename(__FILE__)), '/'));
18
+
19
+ if (!defined('SE_PLUGIN_DIR'))
20
+ define('SE_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . SE_PLUGIN_NAME);
21
+
22
+ if (!defined('SE_PLUGIN_URL'))
23
+ define('SE_PLUGIN_URL', WP_PLUGIN_URL . '/' . SE_PLUGIN_NAME);
24
+
25
+ if (!defined('SE_ZEMANTA_API_GATEWAY'))
26
+ define('SE_ZEMANTA_API_GATEWAY', 'http://api.zemanta.com/services/rest/0.0/');
27
+
28
+ if (!defined('SE_ZEMANTA_DASHBOARD_URL'))
29
+ define('SE_ZEMANTA_DASHBOARD_URL', 'http://blogmind.zemanta.com/');
30
+
31
+ if (!defined('SE_ZEMANTA_PREFS_URL'))
32
+ define('SE_ZEMANTA_PREFS_URL', 'http://prefs.zemanta.com/api/get-sfid/');
33
+
34
+ if (!defined('SE_ZEMANTA_LOGO_URL'))
35
+ define('SE_ZEMANTA_LOGO_URL', 'http://www.zemanta.com');
36
+
37
+ if (!defined('SE_PREFS_STATE_FOUND')) {
38
+ define('SE_PREFS_STATE_FOUND', 1);
39
+ define('SE_PREFS_STATE_FAILED', -2);
40
+ define('SE_PREFS_STATE_NOT_ENGLISH', -4);
41
+ define('SE_PREFS_STATE_EMPTY', -7);
42
+ }
43
+
44
+ include_once(SE_PLUGIN_DIR . '/config.php');
45
+ include_once(SE_PLUGIN_DIR . '/options.php');
46
+
47
+ add_action('wp_loaded','se_initialize_plugin');
48
+
49
+ function se_initialize_plugin() {
50
+ $SE = new SearchEverything();
51
+
52
+ //add filters based upon option settings
53
+ //include_once(SE_PLUGIN_DIR . '/zemanta/zemanta.php');
54
+ //$se_zemanta = new SEZemanta();
55
+ }
56
+
57
+ function se_get_view($view) {
58
+ return SE_PLUGIN_DIR . "/views/$view.php";
59
+ }
60
+
61
+ function se_admin_head() {
62
+ $se_options = se_get_options();
63
+ $se_meta = se_get_meta();
64
+ $se_metabox = $se_options['se_research_metabox'];
65
+ include(se_get_view('admin_head'));
66
+ }
67
+
68
+ add_action('admin_head', 'se_admin_head');
69
+
70
+ function se_global_notice() {
71
+ global $pagenow, $se_global_notice_pages;
72
+
73
+ $se_meta = se_get_meta();
74
+
75
+ $close_url = admin_url( 'options-general.php' );
76
+ $close_url = add_query_arg( array(
77
+ 'page' => 'extend_search',
78
+ 'se_global_notice' => 0,
79
+ ), $close_url );
80
+
81
+ $notice = $se_meta['se_global_notice'];
82
+
83
+ if ($notice && in_array($pagenow, $se_global_notice_pages)) {
84
+ include(se_get_view('global_notice'));
85
+ }
86
+ }
87
+ add_action('all_admin_notices', 'se_global_notice' );
88
+
89
+ class SearchEverything {
90
+
91
+ var $logging = false;
92
+ var $options;
93
+ var $wp_ver23;
94
+ var $wp_ver25;
95
+ var $wp_ver28;
96
+ var $ajax_request;
97
+ private $query_instance;
98
+
99
+ function SearchEverything($ajax_query=false) {
100
+ global $wp_version;
101
+ $this->wp_ver23 = ( $wp_version >= '2.3' );
102
+ $this->wp_ver25 = ( $wp_version >= '2.5' );
103
+ $this->wp_ver28 = ( $wp_version >= '2.8' );
104
+ $this->ajax_request = $ajax_query ? true : false;
105
+ $this->options = se_get_options();
106
+
107
+ if ($this->ajax_request) {
108
+ $this->init_ajax($ajax_query);
109
+ }
110
+ else {
111
+ $this->init();
112
+ }
113
+ }
114
+
115
+ function init_ajax($query) {
116
+ $this->search_hooks();
117
+ }
118
+
119
+ function init() {
120
+ if ( current_user_can('manage_options') ) {
121
+ $SEAdmin = new se_admin();
122
+ // Disable Search-Everything, because posts_join is not working properly in Wordpress-backend's Ajax functions
123
+ if (basename( $_SERVER["SCRIPT_NAME"] ) == "admin-ajax.php") {
124
+ return true;
125
+ }
126
+ }
127
+
128
+ $this->search_hooks();
129
+
130
+ // Highlight content
131
+ if ( $this->options['se_use_highlight'] ) {
132
+ add_filter( 'the_content', array( &$this, 'se_postfilter' ), 11 );
133
+ add_filter( 'the_title', array( &$this, 'se_postfilter' ), 11 );
134
+ add_filter( 'the_excerpt', array( &$this, 'se_postfilter' ), 11 );
135
+ }
136
+ }
137
+
138
+ function search_hooks() {
139
+ //add filters based upon option settings
140
+ if ( $this->options['se_use_tag_search'] || $this->options['se_use_category_search'] || $this->options['se_use_tax_search'] ) {
141
+ add_filter( 'posts_join', array( &$this, 'se_terms_join' ) );
142
+ if ( $this->options['se_use_tag_search'] ) {
143
+ $this->se_log( "searching tags" );
144
+ }
145
+ if ( $this->options['se_use_category_search'] ) {
146
+ $this->se_log( "searching categories" );
147
+ }
148
+ if ( $this->options['se_use_tax_search'] ) {
149
+ $this->se_log( "searching custom taxonomies" );
150
+ }
151
+ }
152
+
153
+ if ( $this->options['se_use_page_search'] ) {
154
+ add_filter( 'posts_where', array( &$this, 'se_search_pages' ) );
155
+ $this->se_log( "searching pages" );
156
+ }
157
+
158
+ if ( $this->options['se_use_excerpt_search'] ) {
159
+ $this->se_log( "searching excerpts" );
160
+ }
161
+
162
+ if ( $this->options['se_use_comment_search'] ) {
163
+ add_filter( 'posts_join', array( &$this, 'se_comments_join' ) );
164
+ $this->se_log( "searching comments" );
165
+ // Highlight content
166
+ if ( $this->options['se_use_highlight'] ) {
167
+ add_filter( 'comment_text', array( &$this, 'se_postfilter' ) );
168
+ }
169
+ }
170
+
171
+ if ( $this->options['se_use_draft_search'] ) {
172
+ add_filter( 'posts_where', array( &$this, 'se_search_draft_posts' ) );
173
+ $this->se_log( "searching drafts" );
174
+ }
175
+
176
+ if ( $this->options['se_use_attachment_search'] ) {
177
+ add_filter( 'posts_where', array( &$this, 'se_search_attachments' ) );
178
+ $this->se_log( "searching attachments" );
179
+ }
180
+
181
+ if ( $this->options['se_use_metadata_search'] ) {
182
+ add_filter( 'posts_join', array( &$this, 'se_search_metadata_join' ) );
183
+ $this->se_log( "searching metadata" );
184
+ }
185
+
186
+
187
+
188
+ if ( $this->options['se_exclude_posts_list'] != '' ) {
189
+ $this->se_log( "searching excluding posts" );
190
+ }
191
+
192
+ if ( $this->options['se_exclude_categories_list'] != '' ) {
193
+ add_filter( 'posts_join', array( &$this, 'se_exclude_categories_join' ) );
194
+ $this->se_log( "searching excluding categories" );
195
+ }
196
+
197
+ if ( $this->options['se_use_authors'] ) {
198
+
199
+ add_filter( 'posts_join', array( &$this, 'se_search_authors_join' ) );
200
+ $this->se_log( "searching authors" );
201
+ }
202
+
203
+ add_filter( 'posts_search', array( &$this, 'se_search_where' ), 10, 2 );
204
+
205
+ add_filter( 'posts_where', array( &$this, 'se_no_revisions' ) );
206
+
207
+ add_filter( 'posts_request', array( &$this, 'se_distinct' ) );
208
+
209
+ add_filter( 'posts_where', array( &$this, 'se_no_future' ) );
210
+
211
+ add_filter( 'posts_request', array( &$this, 'se_log_query' ), 10, 2 );
212
+ }
213
+
214
+ // creates the list of search keywords from the 's' parameters.
215
+ function se_get_search_terms() {
216
+ global $wpdb;
217
+ $s = isset( $this->query_instance->query_vars['s'] ) ? $this->query_instance->query_vars['s'] : '';
218
+ $sentence = isset( $this->query_instance->query_vars['sentence'] ) ? $this->query_instance->query_vars['sentence'] : false;
219
+ $search_terms = array();
220
+
221
+ if ( !empty( $s ) ) {
222
+ // added slashes screw with quote grouping when done early, so done later
223
+ $s = stripslashes( $s );
224
+ if ( $sentence ) {
225
+ $search_terms = array( $s );
226
+ } else {
227
+ preg_match_all( '/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $s, $matches );
228
+ $search_terms = array_map( create_function( '$a', 'return trim($a, "\\"\'\\n\\r ");' ), $matches[0] );
229
+ }
230
+ }
231
+ return $search_terms;
232
+ }
233
+
234
+ // add where clause to the search query
235
+ function se_search_where( $where, $wp_query ) {
236
+
237
+ if ( !$wp_query->is_search() && !$this->ajax_request)
238
+ return $where;
239
+
240
+ $this->query_instance = &$wp_query;
241
+ global $wpdb;
242
+
243
+ $searchQuery = $this->se_search_default();
244
+
245
+ //add filters based upon option settings
246
+ if ( $this->options['se_use_tag_search'] ) {
247
+ $searchQuery .= $this->se_build_search_tag();
248
+ }
249
+ if ( $this->options['se_use_category_search'] || $this->options['se_use_tax_search'] ) {
250
+ $searchQuery .= $this->se_build_search_categories();
251
+ }
252
+ if ( $this->options['se_use_metadata_search'] ) {
253
+ $searchQuery .= $this->se_build_search_metadata();
254
+ }
255
+ if ( $this->options['se_use_excerpt_search'] ) {
256
+ $searchQuery .= $this->se_build_search_excerpt();
257
+ }
258
+ if ( $this->options['se_use_comment_search'] ) {
259
+ $searchQuery .= $this->se_build_search_comments();
260
+ }
261
+ if ( $this->options['se_use_authors'] ) {
262
+ $searchQuery .= $this->se_search_authors();
263
+ }
264
+ if ( $searchQuery != '' ) {
265
+ $where = preg_replace( '#\(\(\(.*?\)\)\)#', '(('.$searchQuery.'))', $where );
266
+
267
+ }
268
+ if ( $this->options['se_exclude_posts_list'] != '' ) {
269
+ $where .= $this->se_build_exclude_posts();
270
+ }
271
+ if ( $this->options['se_exclude_categories_list'] != '' ) {
272
+ $where .= $this->se_build_exclude_categories();
273
+
274
+ }
275
+ $this->se_log( "global where: ".$where );
276
+ return $where;
277
+ }
278
+ // search for terms in default locations like title and content
279
+ // replacing the old search terms seems to be the best way to
280
+ // avoid issue with multiple terms
281
+ function se_search_default(){
282
+
283
+ global $wpdb;
284
+
285
+ $not_exact = empty($this->query_instance->query_vars['exact']);
286
+ $search_sql_query = '';
287
+ $seperator = '';
288
+ $terms = $this->se_get_search_terms();
289
+
290
+ // if it's not a sentance add other terms
291
+ $search_sql_query .= '(';
292
+ foreach ( $terms as $term ) {
293
+ $search_sql_query .= $seperator;
294
+
295
+ $esc_term = esc_sql($term);
296
+ if ($not_exact) {
297
+ $esc_term = "%$esc_term%";
298
+ }
299
+
300
+ $like_title = "($wpdb->posts.post_title LIKE '$esc_term')";
301
+ $like_post = "($wpdb->posts.post_content LIKE '$esc_term')";
302
+
303
+ $search_sql_query .= "($like_title OR $like_post)";
304
+
305
+ $seperator = ' AND ';
306
+ }
307
+
308
+ $search_sql_query .= ')';
309
+ return $search_sql_query;
310
+ }
311
+
312
+ // Exclude post revisions
313
+ function se_no_revisions( $where ) {
314
+ global $wpdb;
315
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
316
+ if ( !$this->wp_ver28 ) {
317
+ $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ") AND $wpdb->posts.post_type != 'revision'";
318
+ }
319
+ $where = ' AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ') AND post_type != \'revision\'';
320
+ }
321
+ return $where;
322
+ }
323
+
324
+ // Exclude future posts fix provided by Mx
325
+ function se_no_future( $where ) {
326
+ global $wpdb;
327
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
328
+ if ( !$this->wp_ver28 ) {
329
+ $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ") AND $wpdb->posts.post_status != 'future'";
330
+ }
331
+ $where = 'AND (' . substr( $where, strpos( $where, 'AND' )+3 ) . ') AND post_status != \'future\'';
332
+ }
333
+ return $where;
334
+ }
335
+
336
+ // Logs search into a file
337
+ function se_log( $msg ) {
338
+
339
+ if ( $this->logging ) {
340
+ $fp = fopen( SE_PLUGIN_DIR. "logfile.log", "a+" );
341
+ if ( !$fp ) {
342
+ echo 'unable to write to log file!';
343
+ }
344
+ $date = date( "Y-m-d H:i:s " );
345
+ $source = "search_everything plugin: ";
346
+ fwrite( $fp, "\n\n".$date."\n".$source."\n".$msg );
347
+ fclose( $fp );
348
+ }
349
+ return true;
350
+ }
351
+
352
+ //Duplicate fix provided by Tiago.Pocinho
353
+ function se_distinct( $query ) {
354
+ global $wpdb;
355
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
356
+ if ( strstr( $query, 'DISTINCT' ) ) {}
357
+ else {
358
+ $query = str_replace( 'SELECT', 'SELECT DISTINCT', $query );
359
+ }
360
+ }
361
+ return $query;
362
+ }
363
+
364
+ //search pages (except password protected pages provided by loops)
365
+ function se_search_pages( $where ) {
366
+ global $wpdb;
367
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
368
+
369
+ $where = str_replace( '"', '\'', $where );
370
+ if ( $this->options['se_approved_pages_only'] ) {
371
+ $where = str_replace( "post_type = 'post'", " AND 'post_password = '' AND ", $where );
372
+ } else { // < v 2.1
373
+ $where = str_replace( 'post_type = \'post\' AND ', '', $where );
374
+ }
375
+ }
376
+ $this->se_log( "pages where: ".$where );
377
+ return $where;
378
+ }
379
+
380
+ // create the search excerpts query
381
+ function se_build_search_excerpt() {
382
+ global $wpdb;
383
+ $vars = $this->query_instance->query_vars;
384
+
385
+ $s = $vars['s'];
386
+ $search_terms = $this->se_get_search_terms();
387
+ $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
388
+ $search = '';
389
+
390
+ if ( !empty( $search_terms ) ) {
391
+ // Building search query
392
+ $n = ( $exact ) ? '' : '%';
393
+ $searchand = '';
394
+ foreach ( $search_terms as $term ) {
395
+ $term = addslashes_gpc( $term );
396
+ $search .= "{$searchand}($wpdb->posts.post_excerpt LIKE '{$n}{$term}{$n}')";
397
+ $searchand = ' AND ';
398
+ }
399
+ $sentence_term = esc_sql( $s );
400
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
401
+ $search = "($search) OR ($wpdb->posts.post_excerpt LIKE '{$n}{$sentence_term}{$n}')";
402
+ }
403
+ if ( !empty( $search ) )
404
+ $search = " OR ({$search}) ";
405
+ }
406
+
407
+ return $search;
408
+ }
409
+
410
+
411
+ //search drafts
412
+ function se_search_draft_posts( $where ) {
413
+ global $wpdb;
414
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
415
+ $where = str_replace( '"', '\'', $where );
416
+ if ( !$this->wp_ver28 ) {
417
+ $where = str_replace( " AND (post_status = 'publish'", " AND ((post_status = 'publish' OR post_status = 'draft')", $where );
418
+ }
419
+ else {
420
+ $where = str_replace( " AND ($wpdb->posts.post_status = 'publish'", " AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'draft'", $where );
421
+ }
422
+ $where = str_replace( " AND (post_status = 'publish'", " AND (post_status = 'publish' OR post_status = 'draft'", $where );
423
+ }
424
+ $this->se_log( "drafts where: ".$where );
425
+ return $where;
426
+ }
427
+
428
+ //search attachments
429
+ function se_search_attachments( $where ) {
430
+ global $wpdb;
431
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
432
+ $where = str_replace( '"', '\'', $where );
433
+ if ( !$this->wp_ver28 ) {
434
+ $where = str_replace( " AND (post_status = 'publish'", " AND (post_status = 'publish' OR post_type = 'attachment'", $where );
435
+ $where = str_replace( "AND post_type != 'attachment'", "", $where );
436
+ }
437
+ else {
438
+ $where = str_replace( " AND ($wpdb->posts.post_status = 'publish'", " AND ($wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_type = 'attachment'", $where );
439
+ $where = str_replace( "AND $wpdb->posts.post_type != 'attachment'", "", $where );
440
+ }
441
+ }
442
+ $this->se_log( "attachments where: ".$where );
443
+ return $where;
444
+ }
445
+
446
+ // create the comments data query
447
+ function se_build_search_comments() {
448
+ global $wpdb;
449
+ $vars = $this->query_instance->query_vars;
450
+
451
+ $s = $vars['s'];
452
+ $search_terms = $this->se_get_search_terms();
453
+ $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
454
+ $search = '';
455
+ if ( !empty( $search_terms ) ) {
456
+ // Building search query on comments content
457
+ $n = ( $exact ) ? '' : '%';
458
+ $searchand = '';
459
+ $searchContent = '';
460
+ foreach ( $search_terms as $term ) {
461
+ $term = addslashes_gpc( $term );
462
+ if ( $this->wp_ver23 ) {
463
+ $searchContent .= "{$searchand}(cmt.comment_content LIKE '{$n}{$term}{$n}')";
464
+ }
465
+ $searchand = ' AND ';
466
+ }
467
+ $sentense_term = esc_sql( $s );
468
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentense_term ) {
469
+ if ( $this->wp_ver23 ) {
470
+ $searchContent = "($searchContent) OR (cmt.comment_content LIKE '{$n}{$sentense_term}{$n}')";
471
+ }
472
+ }
473
+ $search = $searchContent;
474
+ // Building search query on comments author
475
+ if ( $this->options['se_use_cmt_authors'] ) {
476
+ $searchand = '';
477
+ $comment_author = '';
478
+ foreach ( $search_terms as $term ) {
479
+ $term = addslashes_gpc( $term );
480
+ if ( $this->wp_ver23 ) {
481
+ $comment_author .= "{$searchand}(cmt.comment_author LIKE '{$n}{$term}{$n}')";
482
+ }
483
+ $searchand = ' AND ';
484
+ }
485
+ $sentence_term = esc_sql( $s );
486
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
487
+ if ( $this->wp_ver23 ) {
488
+ $comment_author = "($comment_author) OR (cmt.comment_author LIKE '{$n}{$sentence_term}{$n}')";
489
+ }
490
+ }
491
+ $search = "($search) OR ($comment_author)";
492
+ }
493
+ if ( $this->options['se_approved_comments_only'] ) {
494
+ $comment_approved = "AND cmt.comment_approved = '1'";
495
+ $search = "($search) $comment_approved";
496
+ }
497
+ if ( !empty( $search ) )
498
+ $search = " OR ({$search}) ";
499
+ }
500
+ //$this->se_log( "comments where: ".$where );
501
+ $this->se_log( "comments sql: ".$search );
502
+ return $search;
503
+ }
504
+
505
+ // Build the author search
506
+ function se_search_authors() {
507
+ global $wpdb;
508
+ $s = $this->query_instance->query_vars['s'];
509
+ $search_terms = $this->se_get_search_terms();
510
+ $n = ( isset( $this->query_instance->query_vars['exact'] ) && $this->query_instance->query_vars['exact'] ) ? '' : '%';
511
+ $search = '';
512
+ $searchand = '';
513
+
514
+ if ( !empty( $search_terms ) ) {
515
+ // Building search query
516
+ foreach ( $search_terms as $term ) {
517
+ $term = addslashes_gpc( $term );
518
+ if ( $this->wp_ver23 ) {
519
+ $search .= "{$searchand}(u.display_name LIKE '{$n}{$term}{$n}')";
520
+ } else {
521
+ $search .= "{$searchand}(u.display_name LIKE '{$n}{$term}{$n}')";
522
+ }
523
+ $searchand = ' OR ';
524
+ }
525
+ $sentence_term = esc_sql( $s );
526
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
527
+ if ( $this->wp_ver23 ) {
528
+ $search .= " OR (u.display_name LIKE '{$n}{$sentence_term}{$n}')";
529
+ } else {
530
+ $search .= " OR (u.display_name LIKE '{$n}{$sentence_term}{$n}')";
531
+ }
532
+ }
533
+
534
+
535
+
536
+ if ( !empty( $search ) )
537
+ $search = " OR ({$search}) ";
538
+
539
+ }
540
+
541
+ $this->se_log( "user where: ".$search );
542
+ return $search;
543
+ }
544
+
545
+ // create the search meta data query
546
+ function se_build_search_metadata() {
547
+ global $wpdb;
548
+ $s = $this->query_instance->query_vars['s'];
549
+ $search_terms = $this->se_get_search_terms();
550
+ $n = ( isset( $this->query_instance->query_vars['exact'] ) && $this->query_instance->query_vars['exact'] ) ? '' : '%';
551
+ $search = '';
552
+
553
+ if ( !empty( $search_terms ) ) {
554
+ // Building search query
555
+ $searchand = '';
556
+ foreach ( $search_terms as $term ) {
557
+ $term = addslashes_gpc( $term );
558
+ if ( $this->wp_ver23 ) {
559
+ $search .= "{$searchand}(m.meta_value LIKE '{$n}{$term}{$n}')";
560
+ } else {
561
+ $search .= "{$searchand}(meta_value LIKE '{$n}{$term}{$n}')";
562
+ }
563
+ $searchand = ' AND ';
564
+ }
565
+ $sentence_term = esc_sql( $s );
566
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
567
+ if ( $this->wp_ver23 ) {
568
+ $search = "($search) OR (m.meta_value LIKE '{$n}{$sentence_term}{$n}')";
569
+ } else {
570
+ $search = "($search) OR (meta_value LIKE '{$n}{$sentence_term}{$n}')";
571
+ }
572
+ }
573
+
574
+ if ( !empty( $search ) )
575
+ $search = " OR ({$search}) ";
576
+
577
+ }
578
+ $this->se_log( "meta where: ".$search );
579
+ return $search;
580
+ }
581
+
582
+ // create the search tag query
583
+ function se_build_search_tag() {
584
+ global $wpdb;
585
+ $vars = $this->query_instance->query_vars;
586
+
587
+ $s = $vars['s'];
588
+ $search_terms = $this->se_get_search_terms();
589
+ $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
590
+ $search = '';
591
+
592
+ if ( !empty( $search_terms ) ) {
593
+ // Building search query
594
+ $n = ( $exact ) ? '' : '%';
595
+ $searchand = '';
596
+ foreach ( $search_terms as $term ) {
597
+ $term = addslashes_gpc( $term );
598
+ if ( $this->wp_ver23 ) {
599
+ $search .= "{$searchand}(tter.name LIKE '{$n}{$term}{$n}')";
600
+ }
601
+ $searchand = ' AND ';
602
+ }
603
+ $sentence_term = esc_sql( $s );
604
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
605
+ if ( $this->wp_ver23 ) {
606
+ $search = "($search) OR (tter.name LIKE '{$n}{$sentence_term}{$n}')";
607
+ }
608
+ }
609
+ if ( !empty( $search ) )
610
+ $search = " OR ({$search}) ";
611
+ }
612
+ $this->se_log( "tag where: ".$search );
613
+ return $search;
614
+ }
615
+
616
+ // create the search categories query
617
+ function se_build_search_categories() {
618
+ global $wpdb;
619
+ $vars = $this->query_instance->query_vars;
620
+
621
+ $s = $vars['s'];
622
+ $search_terms = $this->se_get_search_terms();
623
+ $exact = isset( $vars['exact'] ) ? $vars['exact'] : '';
624
+ $search = '';
625
+
626
+ if ( !empty( $search_terms ) ) {
627
+ // Building search query for categories slug.
628
+ $n = ( $exact ) ? '' : '%';
629
+ $searchand = '';
630
+ $searchSlug = '';
631
+ foreach ( $search_terms as $term ) {
632
+ $term = addslashes_gpc( $term );
633
+ $searchSlug .= "{$searchand}(tter.slug LIKE '{$n}".sanitize_title_with_dashes( $term )."{$n}')";
634
+ $searchand = ' AND ';
635
+ }
636
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $s ) {
637
+ $searchSlug = "($searchSlug) OR (tter.slug LIKE '{$n}".sanitize_title_with_dashes( $s )."{$n}')";
638
+ }
639
+ if ( !empty( $searchSlug ) )
640
+ $search = " OR ({$searchSlug}) ";
641
+
642
+ // Building search query for categories description.
643
+ $searchand = '';
644
+ $searchDesc = '';
645
+ foreach ( $search_terms as $term ) {
646
+ $term = addslashes_gpc( $term );
647
+ $searchDesc .= "{$searchand}(ttax.description LIKE '{$n}{$term}{$n}')";
648
+ $searchand = ' AND ';
649
+ }
650
+ $sentence_term = esc_sql( $s );
651
+ if ( count( $search_terms ) > 1 && $search_terms[0] != $sentence_term ) {
652
+ $searchDesc = "($searchDesc) OR (ttax.description LIKE '{$n}{$sentence_term}{$n}')";
653
+ }
654
+ if ( !empty( $searchDesc ) )
655
+ $search = $search." OR ({$searchDesc}) ";
656
+ }
657
+ $this->se_log( "categories where: ".$search );
658
+ return $search;
659
+ }
660
+
661
+ // create the Posts exclusion query
662
+ function se_build_exclude_posts() {
663
+ global $wpdb;
664
+ $excludeQuery = '';
665
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
666
+ $excludedPostList = trim( $this->options['se_exclude_posts_list'] );
667
+ if ( $excludedPostList != '' ) {
668
+ $excl_list = implode( ',', explode( ',', $excludedPostList ) );
669
+ $excludeQuery = ' AND ('.$wpdb->posts.'.ID NOT IN ( '.$excl_list.' ))';
670
+ }
671
+ $this->se_log( "ex posts where: ".$excludeQuery );
672
+ }
673
+ return $excludeQuery;
674
+ }
675
+
676
+ // create the Categories exclusion query
677
+ function se_build_exclude_categories() {
678
+ global $wpdb;
679
+ $excludeQuery = '';
680
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
681
+ $excludedCatList = trim( $this->options['se_exclude_categories_list'] );
682
+ if ( $excludedCatList != '' ) {
683
+ $excl_list = implode( ',', explode( ',', $excludedCatList ) );
684
+ if ( $this->wp_ver23 ) {
685
+ $excludeQuery = " AND ( ctax.term_id NOT IN ( ".$excl_list." ))";
686
+ }
687
+ else {
688
+ $excludeQuery = ' AND (c.category_id NOT IN ( '.$excl_list.' ))';
689
+ }
690
+ }
691
+ $this->se_log( "ex category where: ".$excludeQuery );
692
+ }
693
+ return $excludeQuery;
694
+ }
695
+
696
+ //join for excluding categories - Deprecated in 2.3
697
+ function se_exclude_categories_join( $join ) {
698
+ global $wpdb;
699
+
700
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
701
+
702
+ if ( $this->wp_ver23 ) {
703
+ $join .= " LEFT JOIN $wpdb->term_relationships AS crel ON ($wpdb->posts.ID = crel.object_id) LEFT JOIN $wpdb->term_taxonomy AS ctax ON (ctax.taxonomy = 'category' AND crel.term_taxonomy_id = ctax.term_taxonomy_id) LEFT JOIN $wpdb->terms AS cter ON (ctax.term_id = cter.term_id) ";
704
+ } else {
705
+ $join .= "LEFT JOIN $wpdb->post2cat AS c ON $wpdb->posts.ID = c.post_id";
706
+ }
707
+ }
708
+ $this->se_log( "category join: ".$join );
709
+ return $join;
710
+ }
711
+
712
+ //join for searching comments
713
+ function se_comments_join( $join ) {
714
+ global $wpdb;
715
+
716
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
717
+ if ( $this->wp_ver23 ) {
718
+ $join .= " LEFT JOIN $wpdb->comments AS cmt ON ( cmt.comment_post_ID = $wpdb->posts.ID ) ";
719
+
720
+ } else {
721
+
722
+ if ( $this->options['se_approved_comments_only'] ) {
723
+ $comment_approved = " AND comment_approved = '1'";
724
+ } else {
725
+ $comment_approved = '';
726
+ }
727
+ $join .= "LEFT JOIN $wpdb->comments ON ( comment_post_ID = ID " . $comment_approved . ") ";
728
+ }
729
+
730
+ }
731
+ $this->se_log( "comments join: ".$join );
732
+ return $join;
733
+ }
734
+
735
+ //join for searching authors
736
+
737
+ function se_search_authors_join( $join ) {
738
+ global $wpdb;
739
+
740
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
741
+ $join .= " LEFT JOIN $wpdb->users AS u ON ($wpdb->posts.post_author = u.ID) ";
742
+ }
743
+ $this->se_log( "authors join: ".$join );
744
+ return $join;
745
+ }
746
+
747
+ //join for searching metadata
748
+ function se_search_metadata_join( $join ) {
749
+ global $wpdb;
750
+
751
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
752
+
753
+ if ( $this->wp_ver23 )
754
+ $join .= " LEFT JOIN $wpdb->postmeta AS m ON ($wpdb->posts.ID = m.post_id) ";
755
+ else
756
+ $join .= " LEFT JOIN $wpdb->postmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id ";
757
+ }
758
+ $this->se_log( "metadata join: ".$join );
759
+ return $join;
760
+ }
761
+
762
+ //join for searching tags
763
+ function se_terms_join( $join ) {
764
+ global $wpdb;
765
+
766
+ if ( !empty( $this->query_instance->query_vars['s'] ) ) {
767
+
768
+ // if we're searching for categories
769
+ if ( $this->options['se_use_category_search'] ) {
770
+ $on[] = "ttax.taxonomy = 'category'";
771
+ }
772
+
773
+ // if we're searching for tags
774
+ if ( $this->options['se_use_tag_search'] ) {
775
+ $on[] = "ttax.taxonomy = 'post_tag'";
776
+ }
777
+ // if we're searching custom taxonomies
778
+ if ( $this->options['se_use_tax_search'] ) {
779
+ $all_taxonomies = get_taxonomies();
780
+ $filter_taxonomies = array( 'post_tag', 'category', 'nav_menu', 'link_category' );
781
+
782
+ foreach ( $all_taxonomies as $taxonomy ) {
783
+ if ( in_array( $taxonomy, $filter_taxonomies ) )
784
+ continue;
785
+ $on[] = "ttax.taxonomy = '" . addslashes( $taxonomy )."'";
786
+ }
787
+ }
788
+ // build our final string
789
+ $on = ' ( ' . implode( ' OR ', $on ) . ' ) ';
790
+
791
+ $join .= " LEFT JOIN $wpdb->term_relationships AS trel ON ($wpdb->posts.ID = trel.object_id) LEFT JOIN $wpdb->term_taxonomy AS ttax ON ( " . $on . " AND trel.term_taxonomy_id = ttax.term_taxonomy_id) LEFT JOIN $wpdb->terms AS tter ON (ttax.term_id = tter.term_id) ";
792
+ }
793
+ $this->se_log( "tags join: ".$join );
794
+ return $join;
795
+ }
796
+
797
+ // Highlight the searched terms into Title, excerpt and content
798
+ // in the search result page.
799
+ function se_postfilter( $postcontent ) {
800
+ global $wpdb;
801
+ $s = isset( $this->query_instance->query_vars['s'] ) ? $this->query_instance->query_vars['s'] : '';
802
+ // highlighting
803
+ if ( is_search() && $s != '' ) {
804
+ $highlight_color = $this->options['se_highlight_color'];
805
+ $highlight_style = $this->options['se_highlight_style'];
806
+ $search_terms = $this->se_get_search_terms();
807
+ foreach ( $search_terms as $term ) {
808
+ if ( preg_match( '/\>/', $term ) )
809
+ continue; //don't try to highlight this one
810
+ $term = preg_quote( $term );
811
+
812
+ if ( $highlight_color != '' )
813
+ $postcontent = preg_replace(
814
+ '"(?<!\<)(?<!\w)(\pL*'.$term.'\pL*)(?!\w|[^<>]*>)"i'
815
+ , '<span class="search-everything-highlight-color" style="background-color:'.$highlight_color.'">$1</span>'
816
+ , $postcontent
817
+ );
818
+ else
819
+ $postcontent = preg_replace(
820
+ '"(?<!\<)(?<!\w)(\pL*'.$term.'\pL*)(?!\w|[^<>]*>)"i'
821
+ , '<span class="search-everything-highlight" style="'.$highlight_style.'">$1</span>'
822
+ , $postcontent
823
+ );
824
+ }
825
+ }
826
+ return $postcontent;
827
+ }
828
+
829
+ function se_log_query( $query, $wp_query ) {
830
+ if ( $wp_query->is_search )
831
+ $this->se_log( $query );
832
+ return $query;
833
+ }// se_log_query
834
+ } // END
835
+
836
+ add_action('wp_ajax_search_everything', 'search_everything_callback');
837
+
838
+ function search_everything_callback() {
839
+ $is_query = !empty($_GET['s']);
840
+ $result = array();
841
+ if ($is_query) {
842
+ $result = array(
843
+ 'own' => array(),
844
+ 'external' => array()
845
+ );
846
+
847
+ $params = array(
848
+ 's' => $_GET['s']
849
+ );
850
+
851
+ $zemanta_response = api(array(
852
+ 'method' => 'zemanta.suggest',
853
+ 'return_images' => 0,
854
+ 'return_rich_objects' => 0,
855
+ 'return_articles' => 1,
856
+ 'return_markup' => 0,
857
+ 'return_rdf_links' => 0,
858
+ 'return_keywords' => 0,
859
+ 'careful_pc' => 1,
860
+ 'interface' => 'wordpress-se',
861
+ 'format' => 'json',
862
+ 'emphasis' => $_GET['s'],
863
+ 'text' => $_GET['text']
864
+ ));
865
+
866
+ if (!is_wp_error($zemanta_response) && $zemanta_response['response']['code'] == 200) {
867
+ $result['external'] = json_decode($zemanta_response['body'])->articles;
868
+ }
869
+
870
+ $SE = new SearchEverything(true);
871
+
872
+ if (!empty($_GET['exact'])) {
873
+ $params['exact'] = true;
874
+ }
875
+
876
+ $post_query = new WP_query($params);
877
+
878
+ while ( $post_query->have_posts() ) {
879
+ $post_query->the_post();
880
+
881
+ $result['own'][] = get_post();
882
+ }
883
+ $post_query->reset_postdata();
884
+
885
+ }
886
+ print json_encode($result);
887
+ die();
888
+ }
889
+
890
+ function se_enqueue_styles() {
891
+ wp_enqueue_style('se-link-styles', SE_PLUGIN_URL . '/static/css/se-styles.css');
892
+ }
893
+
894
+ add_action('wp_enqueue_scripts', 'se_enqueue_styles');
895
+
896
+
897
+
898
+ function se_post_publish_ping($post_id) {
899
+ //should happen only on first publish
900
+ if( ( $_POST['post_status'] == 'publish' ) && ( $_POST['original_post_status'] != 'publish' ) ) {
901
+ $permalink = get_permalink($post_id);
902
+
903
+ $zemanta_response = api(array(
904
+ 'method' => 'zemanta.post_published_ping',
905
+ 'current_url' => $permalink,
906
+ 'post_url' => $permalink,
907
+ 'post_rid' => '',
908
+ 'interface' => 'wordpress-se',
909
+ 'deployment' => 'search-everything',
910
+ 'format' => 'json'
911
+ ));
912
+
913
+ $status = json_decode($zemanta_response['body'])->status;
914
+ }
915
+ }
916
+
917
+ add_action( 'publish_post', 'se_post_publish_ping' );
918
+
static/css/admin.css ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .thanks {width:400px; }
2
+ .thanks p {padding-left:20px; padding-right:20px;}
3
+ .info { background: #FFFFCC; border: 1px dotted #D8D2A9; padding: 10px; color: #333; }
4
+ .info a { color: #333; text-decoration: none; border-bottom: 1px dotted #333 }
5
+ .info a:hover { color: #666; border-bottom: 1px dotted #666; }
6
+
7
+ #se-description,#se-basic-settings,#se-advanced-settings, #se-test-search, #se-info, #se-research-settings, .se-submit {margin-top: 20px;}
8
+ #se-basic-settings .manage-column, #se-advanced-settings .manage-column, #se-research-settings .manage-column {font-weight:bold;}
9
+ #se-description,#se-basic-settings.widefat, #se-advanced-settings.widefat,#se-test-search.widefat, #se-info.widefat, #se-research-settings, .se-submit {width:80%;}
10
+ .se-submit {text-align: right;}
11
+ .se-col {width:350px;}
12
+ .se-suboption label { font-size: smaller;margin-left:10px; color:#666;}
13
+ p span.se-thank-you {font-size: large; font-weight: bold;}
14
+
15
+ #se-top-notice {width:80%; position:relative;}
16
+ #se-top-notice .updated {margin:0;}
17
+
18
+ #se-description {background-color:#fff;font-size: 14px;}
19
+ #se-description p{ font-size:16px;padding: 15px 10px 15px 10px;}
20
+ .se-name {font-weight:bold; color:#F58520;}
21
+ .se-zem-color{color:#F58520;}
22
+ #se-research-settings td { vertical-align: middle; }
23
+
24
+ #wpwrap #wpcontent .se-updated {
25
+ position: relative;
26
+ margin: 5px 0 15px;
27
+ padding: 1px 12px;
28
+ background-color: #fff;
29
+ border-left: 4px solid #f58520;
30
+ -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
31
+ box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
32
+ }
33
+ #wpwrap #wpcontent .se-updated p {font-size: 1.3em;}
34
+ #wpwrap #wpcontent .se-updated p a {color: inherit; text-decoration: underline;}
35
+ #wpwrap #wpcontent .se-updated .se-logo {position: absolute; bottom: 15px; right: 12px;}
36
+ #wpwrap #wpcontent .se-updated .se-dismiss {position: absolute;top: 15px;right: 14px;}
37
+ #wpwrap #wpcontent .se-updated .se-logo img {width: 90px;}
38
+ #se-research-settings small, #se-basic-settings small, #se-advanced-settings small, #se-test-search small, #se-info small {font-size: 11px;}
39
+
static/css/se-compose.css ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #se-metabox .inside {margin:0;padding:0;}
2
+
3
+ #se-metabox-form {letter-spacing:-4px;}
4
+ #se-metabox-form input {display:inline-block;letter-spacing:normal;word-spacing:normal;padding:5px 3px 5px 10px;margin:0;border:none;vertical-align:top;}
5
+ #se-metabox-form a {text-indent:-9999em;cursor:pointer;background:transparent url(../img/search.png) -2px -3px no-repeat;display:inline-block;vertical-align:top;letter-spacing:normal;word-spacing:normal;width:20px;height:25px;}
6
+ .branch-3-8 #se-metabox-form a, .branch-3-9 #se-metabox-form a {background:transparent url(../img/search.png) -2px -1px no-repeat;width:20px;height:29px;}
7
+
8
+ #se-metabox-results {border-top:1px solid #dfdfdf;max-height:400px;overflow-y:scroll;}
9
+ #se-metabox-results .se-spinner {margin:20px auto;width:32px;height:32px;background:transparent url(../img/ajax-loader.gif) top left no-repeat;}
10
+ #se-metabox-results .se-no-results {margin:10px auto;text-align:center;}
11
+ #se-metabox-results .se-metabox-results-list {display:none;}
12
+ #se-metabox-results .se-metabox-results-list h4 {font-size:14px;margin:10px 0 0 7px;cursor:pointer;}
13
+ #se-metabox-results .se-metabox-results-list p.se-instructions {font-size:10px;margin:2px 10px;}
14
+ #se-metabox-results .se-metabox-results-list ul {letter-spacing:-4px;margin:0;opacity:1;height:auto;-webkit-transition:opacity .5s ease-out;transition:opacity .5s ease-out;}
15
+ #se-metabox-results .se-metabox-results-list ul li {vertical-align:top;cursor:pointer;width:200px;margin:5px;border:1px solid #dfdfdf;padding:5px;display:inline-block;background:#fff;letter-spacing:normal;word-spacing:normal;-webkit-box-shadow: inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-webkit-border-radius:3px;border-radius:3px;}
16
+ #se-metabox-results .se-metabox-results-list ul li div {display:block;}
17
+ #se-metabox-results .se-metabox-results-list ul li div h6 {font-size:12px;font-weight:bold;margin:0;color:#3498db;}
18
+ #se-metabox-results .se-metabox-results-list ul li div p {font-size:12px;line-height:15px;margin:0;color:#7f8c8d;}
19
+ #se-metabox-results .se-metabox-results-list ul li div a {display:inline-block;font-size:10px;margin:0 0 5px 0;color:#3498db;}
20
+ #se-metabox-results .se-metabox-results-list p {margin:10px;}
21
+ #se-metabox-results .se-metabox-results-list ul li:hover a h6 {color:#2980b9;text-decoration:underline;}
22
+ #se-metabox-results .se-metabox-results-list ul li:hover a span {color:#2980b9;}
23
+
24
+ #postbox-container-1 #se-metabox-results .se-no-results {margin:10px;text-align:left;}
25
+ #postbox-container-1 #se-metabox-results .se-metabox-results-list {display:none;}
26
+ #postbox-container-1 #se-metabox-results .se-metabox-results-list h4 {font-size:14px;margin:5px 0 5px 10px;}
27
+ #postbox-container-1 #se-metabox-results .se-metabox-results-list ul li {display:block;margin:5px;width:auto;}
28
+
29
+ #se-metabox-results .se-metabox-results-list.se-hidden ul {overflow:hidden;height:0;opacity:0;}
30
+ #se-metabox-results .se-metabox-results-list.se-hidden p.se-instructions {margin:0;overflow:hidden;height:0;opacity:0;}
static/css/se-styles.css ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ a.se-box {
2
+ display: block;
3
+ float:right;
4
+ box-shadow: rgba(0, 0, 0, 0.15) 0 1px 3px 0;
5
+ width: 200px;
6
+ font-family: "Helvetica Neue", Arial, sans-serif;
7
+ color: rgb(0, 0, 0);
8
+ text-decoration: none;
9
+ margin: 10px;
10
+ -webkit-border-radius: 5px;
11
+ -moz-border-radius: 5px;
12
+ -ms-border-radius: 5px;
13
+ -o-border-radius: 5px;
14
+ border-radius: 5px;
15
+ border: 1px solid rgb(238, 238, 238);
16
+ padding: 10px;
17
+ background-color: #fff;
18
+ -webkit-box-shadow: rgba(0, 0, 0, 0.15) 0 1px 3px 0;
19
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 0 1px 3px 0;
20
+ }
21
+
22
+ a.se-box span.se-box-heading {
23
+ display: block;
24
+ line-height:20px;
25
+ }
26
+
27
+ a.se-box span.se-box-heading span.se-box-heading-title {
28
+ font-weight: bold;
29
+ font-size: 16px;
30
+ display: inline-block;
31
+ color: #3498db;
32
+ }
33
+
34
+ a.se-box span.se-box-text {
35
+ font-style: italic;
36
+ margin: 8px 0;
37
+ font-size: 12px;
38
+ display: block;
39
+ color:#7f8c8d;
40
+ line-height:14px;
41
+ }
42
+
43
+ a.se-box span.se-box-date {
44
+ font-style: italic;
45
+ margin: 0 0 5px 0;
46
+ font-size: 10px;
47
+ display: block;
48
+ color: #2c3e50;
49
+ line-height:10px;
50
+ }
51
+
52
+ a.se-box span.se-box-domain {
53
+ font-style: italic;
54
+ margin: 0;
55
+ font-size: 10px;
56
+ display: block;
57
+ color: #2c3e50;
58
+ line-height:10px;
59
+ }
static/img/ajax-loader.gif ADDED
Binary file
static/img/search.png ADDED
Binary file
static/img/zem-logo.png ADDED
Binary file
static/js/searcheverything.js ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ var SearchEverything=function(a){var g={months:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),resizeSearchInput:function(){var b=a("#se-metabox-text");b.css({width:b.closest("div").outerWidth(!0)-b.next("a").outerWidth(!0)})},handleWindowResize:function(){a(window).resize(g.resizeSearchInput)},handleMetaboxActions:function(){a(".meta-box-sortables").on("sortstop",function(a,e){e.item&&(e.item.length&&"se-metabox"===e.item[0].id)&&g.resizeSearchInput()});a(".postbox h3, .postbox .handlediv").on("click",
2
+ function(){var b=a(this).closest(".postbox");setTimeout(function(){b.hasClass("closed")||g.resizeSearchInput()},1)})},displayOwnResults:function(b,e){var d=0;a.each(e,function(e,c){var f=a('<li><div title="Click to insert link into post."><h6></h6><a href="" target="_blank"></a><p></p></div></li>');4<e||(d+=1,f.data(c),f.find("h6").text(c.post_title||"Title missing"),f.find("p").text(g.extractText(f,"post_content")),f.find("a").text(g.urlDomain(c.guid)).prop("title",c.title||"Title missing").prop("href",
3
+ c.guid),b.append(f))});return d},extractText:function(b,e){var d=a("<div>"+b.data(e)+"</div>").text();!d||0===d.length?d="No Excerpt":100<d.length&&(d=d.substring(0,100)+"\u2026");return d},displayExternalResults:function(b,e){var d=0;a.each(e,function(e,c){var f=a('<li><div title="Click to insert link into post."><h6></h6><a href="" target="_blank"></a><p></p></div></li>');4<e||(d+=1,f.data(c),f.find("h6").text(c.title||"Title missing"),f.find("p").text(g.extractText(f,"text_preview")),f.find("a").text(g.urlDomain(c.url)).prop("title",
4
+ c.title||"Title missing").prop("href",c.url),b.append(f))});return d},performSearch:function(){var b=a("#se-metabox-text"),e=a('<div id="se-metabox-results"><div id="se-metabox-external-results" class="se-metabox-results-list se-hidden"><h4>Results from around the web</h4><p class="se-instructions">Click to insert link into post.</p><ul></ul></div><div id="se-metabox-own-results" class="se-metabox-results-list"><h4>Results from your blog</h4><p class="se-instructions">Click to insert link into post.</p><ul></ul></div><div class="se-spinner"></div></div>'),
5
+ d=0;a("#se-metabox-results").remove();b.closest("div").after(e);a.ajax({url:b.data("ajaxurl"),method:"get",dataType:"json",data:{action:"search_everything",text:tinyMCE&&tinyMCE.activeEditor.getContent()||"",s:b.prop("value")||""},success:function(e){var c=a("#se-metabox-own-results"),f=c.find("ul"),h=a("#se-metabox-external-results"),i=h.find("ul");a(".se-spinner, .se-no-results").remove();window.externalSearchEnabled?0===e.external.length?a("#se-metabox-results").append('<p class="se-no-results">We haven\'t found any external resources for you.</p>'):
6
+ (h.show(),d=g.displayExternalResults(i,e.external),h.find("h4").text(h.find("h4").text()+" ("+d+")")):(c.before('<div id="se-metabox-own-powersearch" class="se-metabox-results-list"><h4>Results from around the web</h4><p>If you want to use external search, you need to enable it in your <a class="se-settings-link" href="options-general.php?page=extend_search" target="_blank"><strong>settings</strong></strong></a>.</p></div>'),a("#se-metabox-own-powersearch").show());0===e.own.length?(a("#se-metabox-results").append('<p class="se-no-results">It seems we haven\'t found any results for search term <strong>'+
7
+ b.prop("value")+" on your blog</strong>.</p>"),h.removeClass("se-hidden")):(c.show(),d=g.displayOwnResults(f,e.own),c.find("h4").text(c.find("h4").text()+" ("+d+")"))},error:function(){a(".se-spinner, .se-no-results").remove();a("#se-metabox-results").append('<p class="se-no-results">There was something wrong with the search. Please try again. If this happens a lot, please check out our <a href="http://wordpress.org/support/plugin/search-everything" target="_blank">Support forum</a>.</p>')}});e.on("click",
8
+ ".se-settings-link",function(){a(this).parent().text("Thanks. Please refresh this page.")})},urlDomain:function(a){var e=document.createElement("a");e.href=a;return e.hostname},handleSearch:function(){var b=a("#se-metabox-text");b.on("keypress",function(e){13===e.which&&(e.preventDefault(),""!==a.trim(b.prop("value"))&&g.performSearch())});a("#se-metabox-search").on("click",function(e){e.preventDefault();""!==a.trim(b.prop("value"))&&g.performSearch()})},initResultBehaviour:function(){var b=a("#se-metabox");
9
+ b.on("click","#se-metabox-own-results li",function(e){var d=a('<div id="se-just-a-wrapper"><p><a target="_blank" class="se-box se-article"><span class="se-box-heading"><span class="se-box-heading-title"></span></span><span class="se-box-text"></span><span class="se-box-date"></span><span class="se-box-domain"></span></a></p></div>'),b=a(this),c;c=b.data("post_date").split(" ")[0].split("-");c=new Date(c[0],c[1]-1,c[2]);c=g.months[c.getMonth()]+" "+c.getDate()+" "+c.getFullYear();var f=a('a.se-box[href="'+
10
+ b.data("guid")+'"]',tinyMCE&&tinyMCE.activeEditor.contentWindow.document||document);"A"!==a(e.target).prop("tagName")&&(f.length?"P"===f.parent().prop("tagName")?f.closest("p").remove():f.remove():(d.find(".se-box-heading-title").text(b.data("post_title")||"Title missing".substring(0,50)),d.find(".se-box-heading-domain").text("("+g.urlDomain(b.data("guid"))+")"),d.find(".se-box-text").text(g.extractText(b,"post_content")),d.find(".se-box-date").text(c),d.find(".se-box-domain").text(g.urlDomain(b.data("guid"))),
11
+ d.find(".se-box").attr("href",b.data("guid")),send_to_editor&&send_to_editor(d.html())))});b.on("click","#se-metabox-external-results li",function(e){var d=a('<div id="se-just-a-wrapper"><p><a target="_blank" class="se-box se-article"><span class="se-box-heading"><span class="se-box-heading-title"></span></span><span class="se-box-text"></span><span class="se-box-date"></span><span class="se-box-domain"></span></a></p></div>'),b=a(this),c;c=b.data("published_datetime").split("T")[0].split("-");c=
12
+ new Date(c[0],parseInt(c[1],10)-1,parseInt(c[2],10));c=g.months[c.getMonth()]+" "+c.getDate()+" "+c.getFullYear();var f=a('a.se-box[href="'+b.data("url")+'"]',tinyMCE&&tinyMCE.activeEditor.contentWindow.document||document);"A"!==a(e.target).prop("tagName")&&(f.length?"P"===f.parent().prop("tagName")?f.closest("p").remove():f.remove():(d.find(".se-box-heading-title").text(b.data("title")||"Title missing".substring(0,50)),d.find(".se-box-heading-domain").text("("+g.urlDomain(b.data("article_id"))+")"),
13
+ d.find(".se-box-text").text(g.extractText(b,"text_preview")),d.find(".se-box-date").text(c),d.find(".se-box-domain").text(g.urlDomain(b.data("url"))),d.find(".se-box").attr("href",b.data("url")),send_to_editor&&send_to_editor(d.html())))});b.on("click",".se-metabox-results-list h4",function(){a(this).closest(".se-metabox-results-list").toggleClass("se-hidden")})}};return{initialize:function(){g.resizeSearchInput();g.handleWindowResize();g.handleMetaboxActions();g.handleSearch();g.initResultBehaviour();
14
+ return this}}}(jQuery);jQuery(function(){SearchEverything.initialize()});
uninstall.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ //if uninstall not called from WordPress exit
4
+ if ( !defined( 'WP_UNINSTALL_PLUGIN' ) )
5
+ exit();
6
+
7
+ delete_option('se_options');
8
+ delete_option('se_meta');
views/admin_head.php ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <script type="text/javascript">
2
+ var externalSearchEnabled = <?php echo $se_metabox["external_search_enabled"] ? "true" : "false"; ?>;
3
+ </script>
views/global_notice.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <div class="updated se-updated" id="se-top-global-notice" >
2
+ <div class="se-dismiss"><a href="<?php echo $close_url; ?>">Dismiss</a></div>
3
+ <h3><?php echo $notice['title']; ?></h3>
4
+ <p class="se-about-description"><?php echo $notice['message']; ?></p>
5
+ </div>
6
+
views/options_page.php CHANGED
@@ -1,15 +1,47 @@
1
  <div class="wrap">
2
- <h2><?php _e('Search Everything', 'SearchEverything'); ?> <?php echo $meta['version']; ?> - <?php _e('settings','SearchEverything');?></h2>
3
- <p><?php _e('Customize your search by checking one or more options below.','SearchEverything'); ?></p>
 
 
 
 
4
  <form method="post">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  <table id="se-basic-settings" class="widefat">
6
  <thead>
7
  <tr class="title">
8
- <th scope="col" class="manage-column se-col"><?php _e('Basic Configuration', 'SearchEverything'); ?></th>
9
  <th scope="col" class="manage-column"></th>
10
  </tr>
11
  </thead>
12
  <tbody>
 
13
  <?php if ($wp_version <= '2.5'): ?>
14
  <tr valign="middle">
15
  <th class="titledesc">
@@ -51,11 +83,12 @@
51
  <?php if ($wp_version >= '2.5'): ?>
52
  <tr valign="middle">
53
  <th scope="row">
54
- <label for="search_categories">
55
- <?php _e('Search every category name and description','SearchEverything'); ?>:</label>
 
56
  </th>
57
  <td>
58
- <input type="checkbox" id="search_categories" name="search_categories" value="yes" <?php checked($options['se_use_category_search']); ?> />
59
  </td>
60
  </tr><?php endif; ?>
61
  <tr valign="middle">
@@ -139,19 +172,25 @@
139
  </th>
140
  <td>
141
  <input type="text" id="highlight_color" name="highlight_color" value="<?php echo $options['se_highlight_color'];?>" /><br/>
142
- <small> <?php _e('Examples:\'#FFF984\' or \'red\'','SearchEverything'); ?></small>
143
  </td>
144
  </tr>
145
  </tbody>
146
  </table>
 
 
 
 
 
147
  <table id="se-advanced-settings" class="widefat">
148
  <thead>
149
  <tr class="title">
150
- <th scope="col" class="manage-column se-col"><?php _e('Advanced Configuration - Exclusion', 'SearchEverything'); ?></th>
151
  <th scope="col" class="manage-column"></th>
152
  </tr>
153
  </thead>
154
  <tbody>
 
155
  <tr valign="middle">
156
  <th scope="row"><label for="exclude_posts_list"><?php _e('Exclude some post or page IDs','SearchEverything'); ?>:</label></th>
157
  <td class="forminp">
@@ -176,10 +215,10 @@
176
  </tr>
177
  </tbody>
178
  </table>
179
- <p class="submit">
180
  <input type="hidden" name="action" value="save" />
181
  <input type="submit" class="button button-primary" value="<?php _e('Save Changes', 'SearchEverything') ?>" />
182
- </p>
183
  </form>
184
  <table id="se-test-search" class="widefat">
185
  <thead>
@@ -214,14 +253,21 @@
214
  </thead>
215
  <tr valign="middle">
216
  <td class="thanks">
 
 
 
 
 
 
217
  <p>
218
  <strong><?php _e('LOCALIZATION SUPPORT:', 'SearchEverything'); ?></strong><br />
219
  <?php _e('Version 6 was a major update and a few areas need new localization support. If you can help send us your translations by posting them as a new issue, ', 'SearchEverything') ?>
220
  <a href="https://github.com/Zemanta/search-everything-wordpress-plugin/issues?sort=created&direction=desc&state=open&page=1" target="blank"><strong><?php _e('here','SearchEverything')?></strong></a>.
221
  </p>
 
222
  <p>
223
- <strong><?php _e('Thank You!', 'SearchEverything'); ?></strong><br />
224
- <?php _e('The development of Search Everything since Version one has primarily come from the WordPress community, We&#8217;m grateful for their dedicated and continued support.', 'SearchEverything'); ?>
225
  </p>
226
  </td>
227
  <td>
1
  <div class="wrap">
2
+ <h2><?php _e('Search Everything', 'SearchEverything'); ?> <?php _e('options','SearchEverything');?> (<?php _e('current version','SearchEverything') ?> <?php echo $meta['version']; ?>)</h2>
3
+ <div id="se-description" class="widefat">
4
+ <p><span class="se-name"><?php _e('Search Everything', 'SearchEverything'); ?> </span><?php _e('is the most reliable and efficient search plugin for WordPress.
5
+ It improves the search results for your readers and comes with the','SearchEverything')?> <span class="se-name"><?php _e('Research Everything','SearchEverything') ?></span> <?php _e('compose-screen widget to help you write better.
6
+ On this page you can customize each of these two features.','SearchEverything') ?></p>
7
+ </div>
8
  <form method="post">
9
+ <table id="se-research-settings" class="widefat">
10
+ <tr class="title">
11
+ <th scope="col" class="manage-column se-col"><?php _e('Research Everything compose-screen widget', 'SearchEverything'); ?></th>
12
+ <th scope="col" class="manage-column"></th>
13
+ </tr>
14
+ <tr scope="row"><td><?php _e('Enable research tool on compose screen','SearchEverything')?></td>
15
+ <td><input type="checkbox" id="research_metabox" name="research_metabox" value="yes" <?php checked($options['se_research_metabox']['visible_on_compose']); ?> /></td>
16
+ </tr>
17
+ <tr scope="row"><td><?php _e('Enable search results from the web on compose screen','SearchEverything')?><br>
18
+ <small>(This will help you research similar posts. <a href="http://www.zemanta.com/blog/research-everything/" target="_blank">Learn more.</a>)</small></td>
19
+ <td><input type="checkbox" id="research_external_results" name="research_external_results" value="yes" <?php checked($options['se_research_metabox']['external_search_enabled']); ?> /><span class="se-zem-color">&lArr; Try me. ;)</span></td>
20
+ </tr>
21
+ <tr scope="row"><td><?php _e('Zemanta api key','SearchEverything')?><br>
22
+ <small><?php _e('(Autogenerated. You will need this if you are using the external results and something goes wrong and you need to <a href="mailto:support+researcheverything@zemanta.com">contact our support</a>.)','SearchEverything')?></small></td>
23
+ <td><input type="text" id="research_api_key" name="research_api_key" disabled="disabled" value="<?php _e($meta['api_key']); ?>" /></td>
24
+ </tr>
25
+ <?php if (!empty($external_message) && !empty($options['se_research_metabox']['external_search_enabled'])): ?>
26
+ <tr scope="row">
27
+ <td>Status</td>
28
+ <td><strong><?php echo $external_message; ?></strong></td>
29
+ </tr>
30
+ <?php endif; ?>
31
+ </table>
32
+ <div class="se-submit">
33
+ <input type="hidden" name="action" value="save" />
34
+ <input type="submit" class="button button-primary" value="<?php _e('Save Changes', 'SearchEverything') ?>" />
35
+ </div>
36
  <table id="se-basic-settings" class="widefat">
37
  <thead>
38
  <tr class="title">
39
+ <th scope="col" class="manage-column se-col"><?php _e('Search Everything Basic Configuration', 'SearchEverything'); ?></th>
40
  <th scope="col" class="manage-column"></th>
41
  </tr>
42
  </thead>
43
  <tbody>
44
+ <tr><td colspan="2"><?php _e('We’ve selected some smart defaults, if in doubt leave as is.','SearchEverything')?></td></tr>
45
  <?php if ($wp_version <= '2.5'): ?>
46
  <tr valign="middle">
47
  <th class="titledesc">
83
  <?php if ($wp_version >= '2.5'): ?>
84
  <tr valign="middle">
85
  <th scope="row">
86
+ <label for="search_categories">
87
+ <?php _e('Search every category name and description','SearchEverything'); ?>:
88
+ </label>
89
  </th>
90
  <td>
91
+ <input type="checkbox" id="search_categories" name="search_categories" value="yes" <?php checked($options['se_use_category_search']); ?> />
92
  </td>
93
  </tr><?php endif; ?>
94
  <tr valign="middle">
172
  </th>
173
  <td>
174
  <input type="text" id="highlight_color" name="highlight_color" value="<?php echo $options['se_highlight_color'];?>" /><br/>
175
+ <small> <?php _e('Examples: \'#FFF984\' or \'red\'','SearchEverything'); ?></small>
176
  </td>
177
  </tr>
178
  </tbody>
179
  </table>
180
+ <div class="se-submit">
181
+ <input type="hidden" name="action" value="save" />
182
+ <input type="submit" class="button button-primary" value="<?php _e('Save Changes', 'SearchEverything') ?>" />
183
+ </div>
184
+
185
  <table id="se-advanced-settings" class="widefat">
186
  <thead>
187
  <tr class="title">
188
+ <th scope="col" class="manage-column se-col"><?php _e('Search Engine Advanced Configuration', 'SearchEverything'); ?></th>
189
  <th scope="col" class="manage-column"></th>
190
  </tr>
191
  </thead>
192
  <tbody>
193
+ <tr><td colspan="2"><?php _e('For power users and special use cases.','SearchEverything')?></td></tr>
194
  <tr valign="middle">
195
  <th scope="row"><label for="exclude_posts_list"><?php _e('Exclude some post or page IDs','SearchEverything'); ?>:</label></th>
196
  <td class="forminp">
215
  </tr>
216
  </tbody>
217
  </table>
218
+ <div class="se-submit">
219
  <input type="hidden" name="action" value="save" />
220
  <input type="submit" class="button button-primary" value="<?php _e('Save Changes', 'SearchEverything') ?>" />
221
+ </div>
222
  </form>
223
  <table id="se-test-search" class="widefat">
224
  <thead>
253
  </thead>
254
  <tr valign="middle">
255
  <td class="thanks">
256
+ <p>
257
+ Today we are proud to announce our first major update to the <a target="_blank" href="http://wordpress.org/plugins/search-everything/">Search Everything plugin</a>, which gives the blogger advanced search functionality while they write.
258
+ The <span class="se-name">Search Everything</span> writing helper enables you to link to what you’ve written in the past, has great SEO benefits, and is a powerful tool to keep visitors on your site longer. All you have to do to insert the link is click on the results, and a “vest pocket” will be added into your post where your cursor was.
259
+
260
+ Read more about it in our <a href="http://www.zemanta.com/blog/search-everything-for-wordpress-reborn/" target="_blank">blog post</a>.
261
+ </p>
262
  <p>
263
  <strong><?php _e('LOCALIZATION SUPPORT:', 'SearchEverything'); ?></strong><br />
264
  <?php _e('Version 6 was a major update and a few areas need new localization support. If you can help send us your translations by posting them as a new issue, ', 'SearchEverything') ?>
265
  <a href="https://github.com/Zemanta/search-everything-wordpress-plugin/issues?sort=created&direction=desc&state=open&page=1" target="blank"><strong><?php _e('here','SearchEverything')?></strong></a>.
266
  </p>
267
+ <br /><br /><br /><br />
268
  <p>
269
+ <span class="se-thank-you"><?php _e('Thank You!', 'SearchEverything'); ?></span><br />
270
+ <?php _e('The development of Search Everything since version v1.0 has primarily come from the <a href="http://wordpress.org/support/plugin/search-everything">WordPress community</a>. We are grateful for their dedicated and continued support and wish to nourish this relationship in the future! Thanks guys!', 'SearchEverything'); ?>
271
  </p>
272
  </td>
273
  <td>
views/options_page_notice.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class="updated" id="se-top-notice" >
2
  <a href="<?php echo $close_url; ?>" style="position: absolute; right: 30px; top: 20px;">Dismiss</a>
3
  <h3>Good news everyone!</h3>
4
- <p class="about-description">This plugin is <strong>alive</strong> again and we have great plans for it. Stay tuned.</p>
5
  </div>
6
 
1
  <div class="updated" id="se-top-notice" >
2
  <a href="<?php echo $close_url; ?>" style="position: absolute; right: 30px; top: 20px;">Dismiss</a>
3
  <h3>Good news everyone!</h3>
4
+ <p class="about-description">Search Everything has been upgraded with security updates and some exciting new features. Visit settings to learn more.</p>
5
  </div>
6