Broken Link Checker - Version 1.11.12

Version Description

  • Added an interface to use personal YouTube API Key
  • Fixed database errors on installation for some hosts.
  • Fixed link editor not working with elementor.
  • Fixed custom field key with multiple keys not rendering.
  • Fixed compatibility issues with Business Directory plugin.
  • Fixed bulk actions not working properly for some actions.
  • Updated the owner on repository.
Download this release

Release Info

Developer bplv
Plugin Icon 128x128 Broken Link Checker
Version 1.11.12
Comparing to
See all releases

Code changes from version 1.11.11 to 1.11.12

broken-link-checker.php CHANGED
@@ -4,9 +4,9 @@
4
  * Plugin Name: Broken Link Checker
5
  * Plugin URI: https://wordpress.org/plugins/broken-link-checker/
6
  * Description: Checks your blog for broken links and missing images and notifies you on the dashboard if any are found.
7
- * Version: 1.11.11
8
- * Author: ManageWP
9
- * Author URI: https://managewp.com
10
  * Text Domain: broken-link-checker
11
  * License: GPLv2 or later
12
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
4
  * Plugin Name: Broken Link Checker
5
  * Plugin URI: https://wordpress.org/plugins/broken-link-checker/
6
  * Description: Checks your blog for broken links and missing images and notifies you on the dashboard if any are found.
7
+ * Version: 1.11.12
8
+ * Author: WPMU DEV
9
+ * Author URI: https://premium.wpmudev.org/
10
  * Text Domain: broken-link-checker
11
  * License: GPLv2 or later
12
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
core/core.php CHANGED
@@ -522,6 +522,9 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
522
  $this->conf->options['run_in_dashboard'] = ! empty( $_POST['run_in_dashboard'] );
523
  $this->conf->options['run_via_cron'] = ! empty( $_POST['run_via_cron'] );
524
 
 
 
 
525
  //Email notifications on/off
526
  $email_notifications = ! empty( $_POST['send_email_notifications'] );
527
  $send_authors_email_notifications = ! empty( $_POST['send_authors_email_notifications'] );
@@ -690,6 +693,7 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
690
  'how' => __( 'Protocols & APIs', 'broken-link-checker' ),
691
  'advanced' => __( 'Advanced', 'broken-link-checker' ),
692
  );
 
693
  ?>
694
 
695
  <!--[if lte IE 7]>
@@ -908,7 +912,7 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
908
  </a>
909
  </p>
910
 
911
- <div id="removed-link-css-wrap"
912
  <?php
913
  if ( ! blcUtility::get_cookie( 'removed-link-css-wrap', false ) ) {
914
  echo ' class="hidden"';
@@ -986,6 +990,25 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
986
  </td>
987
  </tr>
988
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
989
  </table>
990
 
991
  </div>
@@ -2158,17 +2181,20 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
2158
 
2159
  $message = '';
2160
  $msg_class = 'updated';
2161
-
2162
  check_admin_referer( 'bulk-action' );
2163
 
2164
- if ( count( $selected_links ) > 0 ) {
 
 
 
 
 
2165
 
2166
  $changes = $wpdb->query(
2167
  $wpdb->prepare(
2168
- "UPDATE {$wpdb->prefix}blc_links
2169
- SET last_check_attempt = '0000-00-00 00:00:00'
2170
- WHERE link_id IN ( %s )",
2171
- implode( '', $selected_links )
2172
  )
2173
  );
2174
 
@@ -2287,6 +2313,7 @@ if ( ! class_exists( 'wsBrokenLinkChecker' ) ) {
2287
  $link->dismissed = true;
2288
 
2289
  $link->isOptionLinkChanged = true;
 
2290
  //Save the changes
2291
  if ( $link->save() ) {
2292
  $processed_links++;
522
  $this->conf->options['run_in_dashboard'] = ! empty( $_POST['run_in_dashboard'] );
523
  $this->conf->options['run_via_cron'] = ! empty( $_POST['run_via_cron'] );
524
 
525
+ //youtube api
526
+ $this->conf->options['youtube_api_key'] = ! empty( $_POST['youtube_api_key'] ) ? $_POST['youtube_api_key'] : '';
527
+
528
  //Email notifications on/off
529
  $email_notifications = ! empty( $_POST['send_email_notifications'] );
530
  $send_authors_email_notifications = ! empty( $_POST['send_authors_email_notifications'] );
693
  'how' => __( 'Protocols & APIs', 'broken-link-checker' ),
694
  'advanced' => __( 'Advanced', 'broken-link-checker' ),
695
  );
696
+
697
  ?>
698
 
699
  <!--[if lte IE 7]>
912
  </a>
913
  </p>
914
 
915
+ <div id="removed-link-css-wrap"
916
  <?php
917
  if ( ! blcUtility::get_cookie( 'removed-link-css-wrap', false ) ) {
918
  echo ' class="hidden"';
990
  </td>
991
  </tr>
992
 
993
+ <tr valign="top">
994
+ <th scope="row"><?php echo __( 'YouTube API Key', 'broken-link-checker' ); ?></th>
995
+ <td>
996
+ <p>
997
+ <label>
998
+ <input
999
+ type="text"
1000
+ name="youtube_api_key"
1001
+ id="youtube_api_key"
1002
+ value="<?php echo $this->conf->options[ 'youtube_api_key' ]; ?>"
1003
+ class="regular-text ltr">
1004
+ </label><br>
1005
+ <span class="description">
1006
+ <?php printf( __( 'Use your own %1$sapi key%2$s for checking youtube links.', 'broken-link-checker' ), '<a href="https://developers.google.com/youtube/v3/getting-started">', '</a>' ); ?>
1007
+ </span>
1008
+ </p>
1009
+ </td>
1010
+ </tr>
1011
+
1012
  </table>
1013
 
1014
  </div>
2181
 
2182
  $message = '';
2183
  $msg_class = 'updated';
2184
+ $total_links = count( $selected_links );
2185
  check_admin_referer( 'bulk-action' );
2186
 
2187
+ if ( $total_links > 0 ) {
2188
+ $placeholders = array_fill( 0, $total_links, '%d' );
2189
+ $format = implode( ', ', $placeholders );
2190
+ $query = "UPDATE {$wpdb->prefix}blc_links
2191
+ SET last_check_attempt = '0000-00-00 00:00:00'
2192
+ WHERE link_id IN ( $format )";
2193
 
2194
  $changes = $wpdb->query(
2195
  $wpdb->prepare(
2196
+ $query, //phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
2197
+ $selected_links
 
 
2198
  )
2199
  );
2200
 
2313
  $link->dismissed = true;
2314
 
2315
  $link->isOptionLinkChanged = true;
2316
+
2317
  //Save the changes
2318
  if ( $link->save() ) {
2319
  $processed_links++;
core/init.php CHANGED
@@ -103,6 +103,7 @@ if ( defined( 'BLC_ACTIVE' ) ) {
103
  'user_has_donated' => false, // Whether the user has donated to the plugin.
104
  'donation_flag_fixed' => false,
105
  'show_link_actions' => array( 'blc-deredirect-action' => false ), //Visible link actions.
 
106
  )
107
  );
108
 
103
  'user_has_donated' => false, // Whether the user has donated to the plugin.
104
  'donation_flag_fixed' => false,
105
  'show_link_actions' => array( 'blc-deredirect-action' => false ), //Visible link actions.
106
+ 'youtube_api_key' => '',
107
  )
108
  );
109
 
includes/admin/db-schema.php CHANGED
@@ -8,25 +8,17 @@ if ( ! function_exists( 'blc_get_db_schema' ) ) {
8
  //Use the character set and collation that's configured for WP tables
9
  $charset_collate = '';
10
  if ( ! empty( $wpdb->charset ) ) {
 
11
  //Some German installs use "utf-8" (invalid) instead of "utf8" (valid). None of
12
  //the charset ids supported by MySQL contain dashes, so we can safely strip them.
13
  //See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html
14
  $charset = str_replace( '-', '', $wpdb->charset );
15
 
 
16
  $charset_collate = "DEFAULT CHARACTER SET {$charset}";
17
  }
18
 
19
- //Sometimes when WP is installed from Cpanel ( checked on GoDaddy ) uses different
20
- //collation for tables. Instead of using default collations which can cause problem when
21
- //the plugin uses SQL join.
22
- //TODO: USE alterative for JOIN statements and remove this as a whole
23
- $posts_collate_sql = "SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME ='{$wpdb->posts}';";
24
- $posts_collate = $wpdb->get_row( $posts_collate_sql ); //phpcs:ignore
25
-
26
- //by default use the same collation that the posts table is using.
27
- if ( ! empty( $posts_collate ) ) {
28
- $charset_collate .= " COLLATE {$posts_collate->TABLE_COLLATION}";
29
- } elseif ( ! empty( $wpdb->collate ) ) {
30
  $charset_collate .= " COLLATE {$wpdb->collate}";
31
  }
32
 
8
  //Use the character set and collation that's configured for WP tables
9
  $charset_collate = '';
10
  if ( ! empty( $wpdb->charset ) ) {
11
+
12
  //Some German installs use "utf-8" (invalid) instead of "utf8" (valid). None of
13
  //the charset ids supported by MySQL contain dashes, so we can safely strip them.
14
  //See http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html
15
  $charset = str_replace( '-', '', $wpdb->charset );
16
 
17
+ //set charset
18
  $charset_collate = "DEFAULT CHARACTER SET {$charset}";
19
  }
20
 
21
+ if ( ! empty( $wpdb->collate ) ) {
 
 
 
 
 
 
 
 
 
 
22
  $charset_collate .= " COLLATE {$wpdb->collate}";
23
  }
24
 
includes/any-post.php CHANGED
@@ -67,7 +67,7 @@ class blcPostTypeOverlord {
67
  add_action( 'delete_post', array( &$this, 'post_deleted' ) );
68
  add_action( 'save_post', array( &$this, 'post_saved' ) );
69
  //We also treat post trashing/untrashing as delete/save.
70
- add_action( 'trash_post', array( &$this, 'post_deleted' ) );
71
  add_action( 'untrash_post', array( &$this, 'post_saved' ) );
72
 
73
  //Highlight and nofollow broken links in posts & pages
@@ -586,6 +586,7 @@ class blcAnyPostContainer extends blcContainer {
586
  }
587
 
588
  $post_id = wp_update_post( $this->wrapped_object, true );
 
589
  if ( is_wp_error( $post_id ) ) {
590
  return $post_id;
591
  } elseif ( $post_id == 0 ) {
@@ -594,10 +595,34 @@ class blcAnyPostContainer extends blcContainer {
594
  sprintf( __( 'Updating post %d failed', 'broken-link-checker' ), $this->container_id )
595
  );
596
  } else {
 
597
  return true;
598
  }
599
  }
600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
601
  /**
602
  * Get the base URL of the container. For posts, the post permalink is used
603
  * as the base URL when normalizing relative links.
67
  add_action( 'delete_post', array( &$this, 'post_deleted' ) );
68
  add_action( 'save_post', array( &$this, 'post_saved' ) );
69
  //We also treat post trashing/untrashing as delete/save.
70
+ add_action( 'trashed_post', array( &$this, 'post_deleted' ) );
71
  add_action( 'untrash_post', array( &$this, 'post_saved' ) );
72
 
73
  //Highlight and nofollow broken links in posts & pages
586
  }
587
 
588
  $post_id = wp_update_post( $this->wrapped_object, true );
589
+
590
  if ( is_wp_error( $post_id ) ) {
591
  return $post_id;
592
  } elseif ( $post_id == 0 ) {
595
  sprintf( __( 'Updating post %d failed', 'broken-link-checker' ), $this->container_id )
596
  );
597
  } else {
598
+ $this->update_pagebuilders( $post_id );
599
  return true;
600
  }
601
  }
602
 
603
+ /**
604
+ * Update the the links on pagebuilders
605
+ *
606
+ * @param $post_id Post ID of whose content to update
607
+ */
608
+ function update_pagebuilders( $post_id ) {
609
+
610
+ if ( ! $post_id ) {
611
+ return;
612
+ }
613
+
614
+ global $wpdb;
615
+ //support for elementor page builder.
616
+ if ( class_exists( '\Elementor\Plugin' ) && \Elementor\Plugin::$instance->db->is_built_with_elementor( $post_id ) ) {
617
+ // @codingStandardsIgnoreStart cannot use `$wpdb->prepare` because it remove's the backslashes
618
+ $rows_affected = $wpdb->query(
619
+ "UPDATE {$wpdb->postmeta} " .
620
+ "SET `meta_value` = REPLACE(`meta_value`, '" . str_replace( '/', '\\\/', $this->updating_urls['old_url'] ) . "', '" . str_replace( '/', '\\\/', $this->updating_urls['new_url'] ) . "') " .
621
+ "WHERE `meta_key` = '_elementor_data' AND `post_id` = '" . $post_id . "' AND `meta_value` LIKE '[%' ;" ); // meta_value LIKE '[%' are json formatted
622
+ // @codingStandardsIgnoreEnd
623
+ }
624
+ }
625
+
626
  /**
627
  * Get the base URL of the container. For posts, the post permalink is used
628
  * as the base URL when normalizing relative links.
includes/containers.php CHANGED
@@ -13,6 +13,7 @@ class blcContainerManager extends blcModule {
13
  var $container_type = '';
14
  var $fields = array();
15
  var $container_class_name = 'blcContainer';
 
16
 
17
  /**
18
  * Do whatever setup necessary that wasn't already done in the constructor.
@@ -509,6 +510,12 @@ class blcContainer {
509
  //Get the current value of the field that needs to be edited.
510
  $old_value = $this->get_field( $field_name );
511
 
 
 
 
 
 
 
512
  //Have the parser modify the specified link. If successful, the parser will
513
  //return an associative array with two keys - 'content' and 'raw_url'.
514
  //Otherwise we'll get an instance of WP_Error.
13
  var $container_type = '';
14
  var $fields = array();
15
  var $container_class_name = 'blcContainer';
16
+ var $updating_urls = '';
17
 
18
  /**
19
  * Do whatever setup necessary that wasn't already done in the constructor.
510
  //Get the current value of the field that needs to be edited.
511
  $old_value = $this->get_field( $field_name );
512
 
513
+ //store the new url
514
+ $this->updating_urls = array(
515
+ 'old_url' => $old_url,
516
+ 'new_url' => $new_url,
517
+ );
518
+
519
  //Have the parser modify the specified link. If successful, the parser will
520
  //return an associative array with two keys - 'content' and 'raw_url'.
521
  //Otherwise we'll get an instance of WP_Error.
languages/broken-link-checker.pot CHANGED
@@ -1,8 +1,8 @@
1
- # Copyright (C) 2020 Broken Link Checker 1.11.11
2
- # This file is distributed under the same license as the Broken Link Checker 1.11.11 package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Broken Link Checker 1.11.11\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -74,667 +74,675 @@ msgctxt "link action; replace one redirect with a direct link"
74
  msgid "Fix redirect"
75
  msgstr ""
76
 
77
- #: core/core.php:650
78
  msgid "Settings saved."
79
  msgstr ""
80
 
81
- #: core/core.php:656
82
  msgid "Thank you for your donation!"
83
  msgstr ""
84
 
85
- #: core/core.php:664
86
  msgid "Complete site recheck started."
87
  msgstr ""
88
 
89
- #: core/core.php:687
90
  msgid "General"
91
  msgstr ""
92
 
93
- #: core/core.php:688
94
  msgid "Look For Links In"
95
  msgstr ""
96
 
97
- #: core/core.php:689
98
  msgid "Which Links To Check"
99
  msgstr ""
100
 
101
- #: core/core.php:690
102
  msgid "Protocols & APIs"
103
  msgstr ""
104
 
105
- #: core/core.php:691
106
  msgid "Advanced"
107
  msgstr ""
108
 
109
- #: core/core.php:705
110
  msgid "Broken Link Checker Options"
111
  msgstr ""
112
 
113
- #: core/core.php:749, includes/admin/table-printer.php:215
114
  msgid "Status"
115
  msgstr ""
116
 
117
- #: core/core.php:751, includes/admin/options-page-js.php:56
118
  msgid "Show debug info"
119
  msgstr ""
120
 
121
- #: core/core.php:779
122
  msgid "Check each link"
123
  msgstr ""
124
 
125
- #: core/core.php:784
126
  msgid "Every %s hours"
127
  msgstr ""
128
 
129
- #: core/core.php:793
130
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
131
  msgstr ""
132
 
133
- #: core/core.php:800
134
  msgid "E-mail notifications"
135
  msgstr ""
136
 
137
- #: core/core.php:810
138
  msgid "Send me e-mail notifications about newly detected broken links"
139
  msgstr ""
140
 
141
- #: core/core.php:822
142
  msgid "Send authors e-mail notifications about broken links in their posts"
143
  msgstr ""
144
 
145
- #: core/core.php:829
146
  msgid "Notification e-mail address"
147
  msgstr ""
148
 
149
- #: core/core.php:841
150
  msgid "Leave empty to use the e-mail address specified in Settings &rarr; General."
151
  msgstr ""
152
 
153
- #: core/core.php:848
154
  msgid "Link tweaks"
155
  msgstr ""
156
 
157
- #: core/core.php:858
158
  msgid "Apply custom formatting to broken links"
159
  msgstr ""
160
 
161
- #: core/core.php:863, core/core.php:906
162
  msgid "Edit CSS"
163
  msgstr ""
164
 
165
- #: core/core.php:885
166
  msgid "Example : Lorem ipsum <a %s>broken link</a>, dolor sit amet."
167
  msgstr ""
168
 
169
- #: core/core.php:888, core/core.php:932
170
  msgid "Click \"Save Changes\" to update example output."
171
  msgstr ""
172
 
173
- #: core/core.php:901
174
  msgid "Apply custom formatting to removed links"
175
  msgstr ""
176
 
177
- #: core/core.php:929
178
  msgid "Example : Lorem ipsum <span %s>removed link</span>, dolor sit amet."
179
  msgstr ""
180
 
181
- #: core/core.php:946
182
  msgid "Stop search engines from following broken links"
183
  msgstr ""
184
 
185
- #: core/core.php:952
186
  msgctxt "\"Link tweaks\" settings"
187
  msgid "These settings only apply to the content of posts, not comments or custom fields."
188
  msgstr ""
189
 
190
- #: core/core.php:963
191
  msgctxt "settings page"
192
  msgid "Suggestions"
193
  msgstr ""
194
 
195
- #: core/core.php:968
196
  msgid "Suggest alternatives to broken links"
197
  msgstr ""
198
 
199
- #: core/core.php:974
200
  msgctxt "settings page"
201
  msgid "Warnings"
202
  msgstr ""
203
 
204
- #: core/core.php:979
205
  msgid "Show uncertain or minor problems as \"warnings\" instead of \"broken\""
206
  msgstr ""
207
 
208
- #: core/core.php:983
209
  msgid "Turning off this option will make the plugin report all problems as broken links."
210
  msgstr ""
211
 
212
- #: core/core.php:999
 
 
 
 
 
 
 
 
213
  msgid "Look for links in"
214
  msgstr ""
215
 
216
- #: core/core.php:1015
217
  msgid "Post statuses"
218
  msgstr ""
219
 
220
- #: core/core.php:1048
221
  msgid "Link types"
222
  msgstr ""
223
 
224
- #: core/core.php:1054
225
  msgid "Error : All link parsers missing!"
226
  msgstr ""
227
 
228
- #: core/core.php:1061
229
  msgid "Exclusion list"
230
  msgstr ""
231
 
232
- #: core/core.php:1062
233
  msgid "Don't check links where the URL contains any of these words (one per line) :"
234
  msgstr ""
235
 
236
- #: core/core.php:1083
237
  msgid "Check links using"
238
  msgstr ""
239
 
240
- #: core/core.php:1102, includes/links.php:1032
241
  msgid "Timeout"
242
  msgstr ""
243
 
244
- #: core/core.php:1108, core/core.php:1203, core/core.php:3640
245
  msgid "%s seconds"
246
  msgstr ""
247
 
248
- #: core/core.php:1117
249
  msgid "Links that take longer than this to load will be marked as broken."
250
  msgstr ""
251
 
252
- #: core/core.php:1124
253
  msgid "Link monitor"
254
  msgstr ""
255
 
256
- #: core/core.php:1136
257
  msgid "Run continuously while the Dashboard is open"
258
  msgstr ""
259
 
260
- #: core/core.php:1148
261
  msgid "Run hourly in the background"
262
  msgstr ""
263
 
264
- #: core/core.php:1156
265
  msgid "Show the dashboard widget for"
266
  msgstr ""
267
 
268
- #: core/core.php:1161
269
  msgctxt "dashboard widget visibility"
270
  msgid "Administrator"
271
  msgstr ""
272
 
273
- #: core/core.php:1162
274
  msgctxt "dashboard widget visibility"
275
  msgid "Editor and above"
276
  msgstr ""
277
 
278
- #: core/core.php:1163
279
  msgctxt "dashboard widget visibility"
280
  msgid "Nobody (disables the widget)"
281
  msgstr ""
282
 
283
- #: core/core.php:1179
284
  msgctxt "settings page"
285
  msgid "Show link actions"
286
  msgstr ""
287
 
288
- #: core/core.php:1197
289
  msgid "Max. execution time"
290
  msgstr ""
291
 
292
- #: core/core.php:1214
293
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
294
  msgstr ""
295
 
296
- #: core/core.php:1223
297
  msgid "Server load limit"
298
  msgstr ""
299
 
300
- #: core/core.php:1238
301
  msgid "Current load : %s"
302
  msgstr ""
303
 
304
- #: core/core.php:1243
305
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
306
  msgstr ""
307
 
308
- #: core/core.php:1252
309
  msgid "Not available"
310
  msgstr ""
311
 
312
- #: core/core.php:1254
313
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
314
  msgstr ""
315
 
316
- #: core/core.php:1262
317
  msgid "Target resource usage"
318
  msgstr ""
319
 
320
- #: core/core.php:1282
321
  msgid "Logging"
322
  msgstr ""
323
 
324
- #: core/core.php:1288
325
  msgid "Enable logging"
326
  msgstr ""
327
 
328
- #: core/core.php:1295
329
  msgid "Log file location"
330
  msgstr ""
331
 
332
- #: core/core.php:1304
333
  msgctxt "log file location"
334
  msgid "Default"
335
  msgstr ""
336
 
337
- #: core/core.php:1320
338
  msgctxt "log file location"
339
  msgid "Custom"
340
  msgstr ""
341
 
342
- #: core/core.php:1332
343
  msgid "Forced recheck"
344
  msgstr ""
345
 
346
- #: core/core.php:1335
347
  msgid "Re-check all pages"
348
  msgstr ""
349
 
350
- #: core/core.php:1340
351
  msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
352
  msgstr ""
353
 
354
- #: core/core.php:1352
355
  msgid "Save Changes"
356
  msgstr ""
357
 
358
- #: core/core.php:1403
359
  msgid "Configure"
360
  msgstr ""
361
 
362
- #: core/core.php:1485
363
  msgid "Enter the names of custom fields you want to check (one per line). If a field contains HTML code, prefix its name with <code>html:</code>. For example, <code>html:field_name</code>."
364
  msgstr ""
365
 
366
- #: core/core.php:1499
367
  msgid "Enter the keys of acf fields you want to check (one per line). If a field contains HTML code, prefix its name with <code>html:</code>. For example, <code>html:field_586a3eaa4091b</code>."
368
  msgstr ""
369
 
370
- #: core/core.php:1630, core/core.php:1716, core/core.php:1748
371
  msgid "Database error : %s"
372
  msgstr ""
373
 
374
- #: core/core.php:1697
375
  msgid "You must enter a filter name!"
376
  msgstr ""
377
 
378
- #: core/core.php:1701
379
  msgid "Invalid search query."
380
  msgstr ""
381
 
382
- #: core/core.php:1711
383
  msgid "Filter \"%s\" created"
384
  msgstr ""
385
 
386
- #: core/core.php:1738
387
  msgid "Filter ID not specified."
388
  msgstr ""
389
 
390
- #: core/core.php:1745
391
  msgid "Filter deleted"
392
  msgstr ""
393
 
394
- #: core/core.php:1794
395
  msgid "Replaced %d redirect with a direct link"
396
  msgid_plural "Replaced %d redirects with direct links"
397
  msgstr[0] ""
398
  msgstr[1] ""
399
 
400
- #: core/core.php:1805
401
  msgid "Failed to fix %d redirect"
402
  msgid_plural "Failed to fix %d redirects"
403
  msgstr[0] ""
404
  msgstr[1] ""
405
 
406
- #: core/core.php:1816
407
  msgid "None of the selected links are redirects!"
408
  msgstr ""
409
 
410
- #: core/core.php:1896
411
  msgid "%d link updated."
412
  msgid_plural "%d links updated."
413
  msgstr[0] ""
414
  msgstr[1] ""
415
 
416
- #: core/core.php:1907
417
  msgid "Failed to update %d link."
418
  msgid_plural "Failed to update %d links."
419
  msgstr[0] ""
420
  msgstr[1] ""
421
 
422
- #: core/core.php:1998
423
  msgid "%d link removed"
424
  msgid_plural "%d links removed"
425
  msgstr[0] ""
426
  msgstr[1] ""
427
 
428
- #: core/core.php:2009
429
  msgid "Failed to remove %d link"
430
  msgid_plural "Failed to remove %d links"
431
  msgstr[0] ""
432
  msgstr[1] ""
433
 
434
- #: core/core.php:2119
435
  msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
436
  msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
437
  msgstr[0] ""
438
  msgstr[1] ""
439
 
440
- #: core/core.php:2141
441
  msgid "Didn't find anything to delete!"
442
  msgstr ""
443
 
444
- #: core/core.php:2176
445
  msgid "%d link scheduled for rechecking"
446
  msgid_plural "%d links scheduled for rechecking"
447
  msgstr[0] ""
448
  msgstr[1] ""
449
 
450
- #: core/core.php:2225, core/core.php:3061
451
  msgid "This link was manually marked as working by the user."
452
  msgstr ""
453
 
454
- #: core/core.php:2233, core/core.php:2295
455
  msgid "Couldn't modify link %d"
456
  msgstr ""
457
 
458
- #: core/core.php:2244
459
  msgid "%d link marked as not broken"
460
  msgid_plural "%d links marked as not broken"
461
  msgstr[0] ""
462
  msgstr[1] ""
463
 
464
- #: core/core.php:2306
465
  msgid "%d link dismissed"
466
  msgid_plural "%d links dismissed"
467
  msgstr[0] ""
468
  msgstr[1] ""
469
 
470
- #: core/core.php:2363
471
  msgid "The \"Warnings\" page lists problems that are probably temporary or suspected to be false positives.<br> Warnings that persist for a long time will usually be reclassified as broken links."
472
  msgstr ""
473
 
474
- #: core/core.php:2368
475
  msgctxt "admin notice under Tools - Broken links - Warnings"
476
  msgid "Hide notice"
477
  msgstr ""
478
 
479
- #: core/core.php:2374
480
  msgctxt "a link from the admin notice under Tools - Broken links - Warnings"
481
  msgid "Change warning settings"
482
  msgstr ""
483
 
484
- #: core/core.php:2399
485
  msgid "Table columns"
486
  msgstr ""
487
 
488
- #: core/core.php:2418
489
  msgid "Show on screen"
490
  msgstr ""
491
 
492
- #: core/core.php:2425
493
  msgid "links"
494
  msgstr ""
495
 
496
- #: core/core.php:2426, includes/admin/table-printer.php:175
497
  msgid "Apply"
498
  msgstr ""
499
 
500
- #: core/core.php:2430
501
  msgid "Misc"
502
  msgstr ""
503
 
504
- #: core/core.php:2445
505
  msgid "Highlight links broken for at least %s days"
506
  msgstr ""
507
 
508
- #: core/core.php:2454
509
  msgid "Color-code status codes"
510
  msgstr ""
511
 
512
- #: core/core.php:2473, core/core.php:3045, core/core.php:3092, core/core.php:3131, core/core.php:3255, core/core.php:3314, core/core.php:3392
513
  msgid "You're not allowed to do that!"
514
  msgstr ""
515
 
516
- #: core/core.php:2913
517
  msgid "View broken links"
518
  msgstr ""
519
 
520
- #: core/core.php:2914
521
  msgid "Found %d broken link"
522
  msgid_plural "Found %d broken links"
523
  msgstr[0] ""
524
  msgstr[1] ""
525
 
526
- #: core/core.php:2920
527
  msgid "No broken links found."
528
  msgstr ""
529
 
530
- #: core/core.php:2927
531
  msgid "%d URL in the work queue"
532
  msgid_plural "%d URLs in the work queue"
533
  msgstr[0] ""
534
  msgstr[1] ""
535
 
536
- #: core/core.php:2931
537
  msgid "No URLs in the work queue."
538
  msgstr ""
539
 
540
- #: core/core.php:2937
541
  msgctxt "for the \"Detected X unique URLs in Y links\" message"
542
  msgid "%d unique URL"
543
  msgid_plural "%d unique URLs"
544
  msgstr[0] ""
545
  msgstr[1] ""
546
 
547
- #: core/core.php:2941
548
  msgctxt "for the \"Detected X unique URLs in Y links\" message"
549
  msgid "%d link"
550
  msgid_plural "%d links"
551
  msgstr[0] ""
552
  msgstr[1] ""
553
 
554
- #: core/core.php:2947
555
  msgid "Detected %1$s in %2$s and still searching..."
556
  msgstr ""
557
 
558
- #: core/core.php:2953
559
  msgid "Detected %1$s in %2$s."
560
  msgstr ""
561
 
562
- #: core/core.php:2960
563
  msgid "Searching your blog for links..."
564
  msgstr ""
565
 
566
- #: core/core.php:2962
567
  msgid "No links detected."
568
  msgstr ""
569
 
570
- #: core/core.php:2988
571
  msgctxt "current load"
572
  msgid "Unknown"
573
  msgstr ""
574
 
575
- #: core/core.php:3053, core/core.php:3100, core/core.php:3154, core/core.php:3269, core/core.php:3337, core/core.php:3415
576
  msgid "Oops, I can't find the link %d"
577
  msgstr ""
578
 
579
- #: core/core.php:3073, core/core.php:3114
580
  msgid "Oops, couldn't modify the link!"
581
  msgstr ""
582
 
583
- #: core/core.php:3076, core/core.php:3117, core/core.php:3302, core/core.php:3324, core/core.php:3402
584
  msgid "Error : link_id not specified"
585
  msgstr ""
586
 
587
- #: core/core.php:3141
588
  msgid "Error : link_id or new_url not specified"
589
  msgstr ""
590
 
591
- #: core/core.php:3167, core/core.php:3181
592
  msgid "Oops, the new URL is invalid!"
593
  msgstr ""
594
 
595
- #: core/core.php:3201
596
  msgid "An unexpected error occurred!"
597
  msgstr ""
598
 
599
- #: core/core.php:3282
600
  msgid "An unexpected error occured!"
601
  msgstr ""
602
 
603
- #: core/core.php:3450
604
  msgid "You don't have sufficient privileges to access this information!"
605
  msgstr ""
606
 
607
- #: core/core.php:3463
608
  msgid "Error : link ID not specified"
609
  msgstr ""
610
 
611
- #: core/core.php:3477
612
  msgid "Failed to load link details (%s)"
613
  msgstr ""
614
 
615
- #: core/core.php:3531
616
  msgid "Broken Link Checker"
617
  msgstr ""
618
 
619
- #: core/core.php:3570
620
  msgid "You have an old version of CURL. Redirect detection may not work properly."
621
  msgstr ""
622
 
623
- #: core/core.php:3581, core/core.php:3597, core/core.php:3602
624
  msgid "Not installed"
625
  msgstr ""
626
 
627
- #: core/core.php:3590
628
  msgid "Installed"
629
  msgstr ""
630
 
631
- #: core/core.php:3603
632
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
633
  msgstr ""
634
 
635
- #: core/core.php:3613
636
  msgid "On"
637
  msgstr ""
638
 
639
- #: core/core.php:3614
640
  msgid "Redirects may be detected as broken links when safe_mode is on."
641
  msgstr ""
642
 
643
- #: core/core.php:3619, core/core.php:3633
644
  msgid "Off"
645
  msgstr ""
646
 
647
- #: core/core.php:3627
648
  msgid "On ( %s )"
649
  msgstr ""
650
 
651
- #: core/core.php:3628
652
  msgid "Redirects may be detected as broken links when open_basedir is on."
653
  msgstr ""
654
 
655
- #: core/core.php:3665
656
  msgid "If this value is zero even after several page reloads you have probably encountered a bug."
657
  msgstr ""
658
 
659
- #: core/core.php:3789, core/core.php:3908
660
  msgid "[%s] Broken links detected"
661
  msgstr ""
662
 
663
- #: core/core.php:3794
664
  msgid "Broken Link Checker has detected %d new broken link on your site."
665
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
666
  msgstr[0] ""
667
  msgstr[1] ""
668
 
669
- #: core/core.php:3825
670
  msgid "Here's a list of the first %d broken links:"
671
  msgid_plural "Here's a list of the first %d broken links:"
672
  msgstr[0] ""
673
  msgstr[1] ""
674
 
675
- #: core/core.php:3834
676
  msgid "Here's a list of the new broken links: "
677
  msgstr ""
678
 
679
- #: core/core.php:3843
680
  msgid "Link text : %s"
681
  msgstr ""
682
 
683
- #: core/core.php:3844
684
  msgid "Link URL : <a href=\"%1$s\">%2$s</a>"
685
  msgstr ""
686
 
687
- #: core/core.php:3845
688
  msgid "Source : %s"
689
  msgstr ""
690
 
691
- #: core/core.php:3859
692
  msgid "You can see all broken links here:"
693
  msgstr ""
694
 
695
- #: core/core.php:3913
696
  msgid "Broken Link Checker has detected %d new broken link in your posts."
697
  msgid_plural "Broken Link Checker has detected %d new broken links in your posts."
698
  msgstr[0] ""
699
  msgstr[1] ""
700
 
701
- #: core/init.php:233
702
  msgid "Every 10 minutes"
703
  msgstr ""
704
 
705
- #: core/init.php:240
706
  msgid "Once Weekly"
707
  msgstr ""
708
 
709
- #: core/init.php:246
710
  msgid "Twice a Month"
711
  msgstr ""
712
 
713
- #: core/init.php:324
714
  msgid "Broken Link Checker installation failed. Try deactivating and then reactivating the plugin."
715
  msgstr ""
716
 
717
- #: core/init.php:328
718
  msgid "Please activate the plugin separately on each site. Network activation is not supported."
719
  msgstr ""
720
 
721
- #: includes/any-post.php:462, modules/containers/acf_field.php:248, modules/containers/blogroll.php:46, modules/containers/comment.php:159, modules/containers/custom_field.php:230
722
  msgid "Edit"
723
  msgstr ""
724
 
725
- #: includes/any-post.php:470, modules/containers/acf_field.php:252, modules/containers/custom_field.php:236
726
  msgid "Move this item to the Trash"
727
  msgstr ""
728
 
729
- #: includes/any-post.php:472, modules/containers/acf_field.php:252, modules/containers/custom_field.php:238
730
  msgid "Trash"
731
  msgstr ""
732
 
733
- #: includes/any-post.php:477, modules/containers/acf_field.php:254, modules/containers/custom_field.php:243
734
  msgid "Delete this item permanently"
735
  msgstr ""
736
 
737
- #: includes/any-post.php:479, modules/containers/acf_field.php:254, modules/containers/blogroll.php:47, modules/containers/custom_field.php:245
738
  msgid "Delete"
739
  msgstr ""
740
 
@@ -750,11 +758,11 @@ msgstr ""
750
  msgid "View &#8220;%s&#8221;"
751
  msgstr ""
752
 
753
- #: includes/any-post.php:501, modules/containers/acf_field.php:258, modules/containers/comment.php:172, modules/containers/custom_field.php:250
754
  msgid "View"
755
  msgstr ""
756
 
757
- #: includes/any-post.php:520, modules/containers/acf_field.php:248, modules/containers/custom_field.php:230
758
  msgid "Edit this item"
759
  msgstr ""
760
 
@@ -762,65 +770,65 @@ msgstr ""
762
  msgid "Nothing to update"
763
  msgstr ""
764
 
765
- #: includes/any-post.php:594
766
  msgid "Updating post %d failed"
767
  msgstr ""
768
 
769
- #: includes/any-post.php:631, modules/containers/acf_field.php:327, modules/containers/custom_field.php:319
770
  msgid "Failed to delete post \"%1$s\" (%2$d)"
771
  msgstr ""
772
 
773
- #: includes/any-post.php:650, modules/containers/acf_field.php:341, modules/containers/custom_field.php:338
774
  msgid "Can't move post \"%1$s\" (%2$d) to the trash because the trash feature is disabled"
775
  msgstr ""
776
 
777
- #: includes/any-post.php:670, modules/containers/acf_field.php:353, modules/containers/custom_field.php:357
778
  msgid "Failed to move post \"%1$s\" (%2$d) to the trash"
779
  msgstr ""
780
 
781
- #: includes/any-post.php:778
782
  msgid "%d post deleted."
783
  msgid_plural "%d posts deleted."
784
  msgstr[0] ""
785
  msgstr[1] ""
786
 
787
- #: includes/any-post.php:780
788
  msgid "%d page deleted."
789
  msgid_plural "%d pages deleted."
790
  msgstr[0] ""
791
  msgstr[1] ""
792
 
793
- #: includes/any-post.php:782
794
  msgid "%1$d \"%2$s\" deleted."
795
  msgid_plural "%1$d \"%2$s\" deleted."
796
  msgstr[0] ""
797
  msgstr[1] ""
798
 
799
- #: includes/any-post.php:801
800
  msgid "%d post moved to the Trash."
801
  msgid_plural "%d posts moved to the Trash."
802
  msgstr[0] ""
803
  msgstr[1] ""
804
 
805
- #: includes/any-post.php:803
806
  msgid "%d page moved to the Trash."
807
  msgid_plural "%d pages moved to the Trash."
808
  msgstr[0] ""
809
  msgstr[1] ""
810
 
811
- #: includes/any-post.php:805
812
  msgid "%1$d \"%2$s\" moved to the Trash."
813
  msgid_plural "%1$d \"%2$s\" moved to the Trash."
814
  msgstr[0] ""
815
  msgstr[1] ""
816
 
817
- #: includes/containers.php:122
818
  msgid "%1$d '%2$s' has been deleted"
819
  msgid_plural "%1$d '%2$s' have been deleted"
820
  msgstr[0] ""
821
  msgstr[1] ""
822
 
823
- #: includes/containers.php:923, includes/containers.php:941
824
  msgid "Container type '%s' not recognized"
825
  msgstr ""
826
 
@@ -1498,19 +1506,19 @@ msgstr ""
1498
  msgid "Using Snoopy"
1499
  msgstr ""
1500
 
1501
- #: modules/containers/acf_field.php:102, modules/containers/custom_field.php:85
1502
  msgid "Failed to update the meta field '%1$s' on %2$s [%3$d]"
1503
  msgstr ""
1504
 
1505
- #: modules/containers/acf_field.php:132, modules/containers/custom_field.php:115
1506
  msgid "Failed to delete the meta field '%1$s' on %2$s [%3$d]"
1507
  msgstr ""
1508
 
1509
- #: modules/containers/acf_field.php:234, modules/containers/custom_field.php:216
1510
  msgid "Edit this post"
1511
  msgstr ""
1512
 
1513
- #: modules/containers/acf_field.php:258, modules/containers/custom_field.php:250
1514
  msgid "View \"%s\""
1515
  msgstr ""
1516
 
@@ -1712,7 +1720,7 @@ msgstr ""
1712
  msgid "Unknown YouTube API response received."
1713
  msgstr ""
1714
 
1715
- #: modules/parsers/acf_field.php:120, modules/parsers/metadata.php:119
1716
  msgid "Custom field"
1717
  msgstr ""
1718
 
1
+ # Copyright (C) 2020 Broken Link Checker 1.11.12
2
+ # This file is distributed under the same license as the Broken Link Checker 1.11.12 package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Broken Link Checker 1.11.12\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
74
  msgid "Fix redirect"
75
  msgstr ""
76
 
77
+ #: core/core.php:653
78
  msgid "Settings saved."
79
  msgstr ""
80
 
81
+ #: core/core.php:659
82
  msgid "Thank you for your donation!"
83
  msgstr ""
84
 
85
+ #: core/core.php:667
86
  msgid "Complete site recheck started."
87
  msgstr ""
88
 
89
+ #: core/core.php:690
90
  msgid "General"
91
  msgstr ""
92
 
93
+ #: core/core.php:691
94
  msgid "Look For Links In"
95
  msgstr ""
96
 
97
+ #: core/core.php:692
98
  msgid "Which Links To Check"
99
  msgstr ""
100
 
101
+ #: core/core.php:693
102
  msgid "Protocols & APIs"
103
  msgstr ""
104
 
105
+ #: core/core.php:694
106
  msgid "Advanced"
107
  msgstr ""
108
 
109
+ #: core/core.php:709
110
  msgid "Broken Link Checker Options"
111
  msgstr ""
112
 
113
+ #: core/core.php:753, includes/admin/table-printer.php:215
114
  msgid "Status"
115
  msgstr ""
116
 
117
+ #: core/core.php:755, includes/admin/options-page-js.php:56
118
  msgid "Show debug info"
119
  msgstr ""
120
 
121
+ #: core/core.php:783
122
  msgid "Check each link"
123
  msgstr ""
124
 
125
+ #: core/core.php:788
126
  msgid "Every %s hours"
127
  msgstr ""
128
 
129
+ #: core/core.php:797
130
  msgid "Existing links will be checked this often. New links will usually be checked ASAP."
131
  msgstr ""
132
 
133
+ #: core/core.php:804
134
  msgid "E-mail notifications"
135
  msgstr ""
136
 
137
+ #: core/core.php:814
138
  msgid "Send me e-mail notifications about newly detected broken links"
139
  msgstr ""
140
 
141
+ #: core/core.php:826
142
  msgid "Send authors e-mail notifications about broken links in their posts"
143
  msgstr ""
144
 
145
+ #: core/core.php:833
146
  msgid "Notification e-mail address"
147
  msgstr ""
148
 
149
+ #: core/core.php:845
150
  msgid "Leave empty to use the e-mail address specified in Settings &rarr; General."
151
  msgstr ""
152
 
153
+ #: core/core.php:852
154
  msgid "Link tweaks"
155
  msgstr ""
156
 
157
+ #: core/core.php:862
158
  msgid "Apply custom formatting to broken links"
159
  msgstr ""
160
 
161
+ #: core/core.php:867, core/core.php:910
162
  msgid "Edit CSS"
163
  msgstr ""
164
 
165
+ #: core/core.php:889
166
  msgid "Example : Lorem ipsum <a %s>broken link</a>, dolor sit amet."
167
  msgstr ""
168
 
169
+ #: core/core.php:892, core/core.php:936
170
  msgid "Click \"Save Changes\" to update example output."
171
  msgstr ""
172
 
173
+ #: core/core.php:905
174
  msgid "Apply custom formatting to removed links"
175
  msgstr ""
176
 
177
+ #: core/core.php:933
178
  msgid "Example : Lorem ipsum <span %s>removed link</span>, dolor sit amet."
179
  msgstr ""
180
 
181
+ #: core/core.php:950
182
  msgid "Stop search engines from following broken links"
183
  msgstr ""
184
 
185
+ #: core/core.php:956
186
  msgctxt "\"Link tweaks\" settings"
187
  msgid "These settings only apply to the content of posts, not comments or custom fields."
188
  msgstr ""
189
 
190
+ #: core/core.php:967
191
  msgctxt "settings page"
192
  msgid "Suggestions"
193
  msgstr ""
194
 
195
+ #: core/core.php:972
196
  msgid "Suggest alternatives to broken links"
197
  msgstr ""
198
 
199
+ #: core/core.php:978
200
  msgctxt "settings page"
201
  msgid "Warnings"
202
  msgstr ""
203
 
204
+ #: core/core.php:983
205
  msgid "Show uncertain or minor problems as \"warnings\" instead of \"broken\""
206
  msgstr ""
207
 
208
+ #: core/core.php:987
209
  msgid "Turning off this option will make the plugin report all problems as broken links."
210
  msgstr ""
211
 
212
+ #: core/core.php:994
213
+ msgid "YouTube API Key"
214
+ msgstr ""
215
+
216
+ #: core/core.php:1006
217
+ msgid "Use your own %1$sapi key%2$s for checking youtube links."
218
+ msgstr ""
219
+
220
+ #: core/core.php:1022
221
  msgid "Look for links in"
222
  msgstr ""
223
 
224
+ #: core/core.php:1038
225
  msgid "Post statuses"
226
  msgstr ""
227
 
228
+ #: core/core.php:1071
229
  msgid "Link types"
230
  msgstr ""
231
 
232
+ #: core/core.php:1077
233
  msgid "Error : All link parsers missing!"
234
  msgstr ""
235
 
236
+ #: core/core.php:1084
237
  msgid "Exclusion list"
238
  msgstr ""
239
 
240
+ #: core/core.php:1085
241
  msgid "Don't check links where the URL contains any of these words (one per line) :"
242
  msgstr ""
243
 
244
+ #: core/core.php:1106
245
  msgid "Check links using"
246
  msgstr ""
247
 
248
+ #: core/core.php:1125, includes/links.php:1032
249
  msgid "Timeout"
250
  msgstr ""
251
 
252
+ #: core/core.php:1131, core/core.php:1226, core/core.php:3667
253
  msgid "%s seconds"
254
  msgstr ""
255
 
256
+ #: core/core.php:1140
257
  msgid "Links that take longer than this to load will be marked as broken."
258
  msgstr ""
259
 
260
+ #: core/core.php:1147
261
  msgid "Link monitor"
262
  msgstr ""
263
 
264
+ #: core/core.php:1159
265
  msgid "Run continuously while the Dashboard is open"
266
  msgstr ""
267
 
268
+ #: core/core.php:1171
269
  msgid "Run hourly in the background"
270
  msgstr ""
271
 
272
+ #: core/core.php:1179
273
  msgid "Show the dashboard widget for"
274
  msgstr ""
275
 
276
+ #: core/core.php:1184
277
  msgctxt "dashboard widget visibility"
278
  msgid "Administrator"
279
  msgstr ""
280
 
281
+ #: core/core.php:1185
282
  msgctxt "dashboard widget visibility"
283
  msgid "Editor and above"
284
  msgstr ""
285
 
286
+ #: core/core.php:1186
287
  msgctxt "dashboard widget visibility"
288
  msgid "Nobody (disables the widget)"
289
  msgstr ""
290
 
291
+ #: core/core.php:1202
292
  msgctxt "settings page"
293
  msgid "Show link actions"
294
  msgstr ""
295
 
296
+ #: core/core.php:1220
297
  msgid "Max. execution time"
298
  msgstr ""
299
 
300
+ #: core/core.php:1237
301
  msgid "The plugin works by periodically launching a background job that parses your posts for links, checks the discovered URLs, and performs other time-consuming tasks. Here you can set for how long, at most, the link monitor may run each time before stopping."
302
  msgstr ""
303
 
304
+ #: core/core.php:1246
305
  msgid "Server load limit"
306
  msgstr ""
307
 
308
+ #: core/core.php:1261
309
  msgid "Current load : %s"
310
  msgstr ""
311
 
312
+ #: core/core.php:1266
313
  msgid "Link checking will be suspended if the average <a href=\"%s\">server load</a> rises above this number. Leave this field blank to disable load limiting."
314
  msgstr ""
315
 
316
+ #: core/core.php:1275
317
  msgid "Not available"
318
  msgstr ""
319
 
320
+ #: core/core.php:1277
321
  msgid "Load limiting only works on Linux-like systems where <code>/proc/loadavg</code> is present and accessible."
322
  msgstr ""
323
 
324
+ #: core/core.php:1285
325
  msgid "Target resource usage"
326
  msgstr ""
327
 
328
+ #: core/core.php:1305
329
  msgid "Logging"
330
  msgstr ""
331
 
332
+ #: core/core.php:1311
333
  msgid "Enable logging"
334
  msgstr ""
335
 
336
+ #: core/core.php:1318
337
  msgid "Log file location"
338
  msgstr ""
339
 
340
+ #: core/core.php:1327
341
  msgctxt "log file location"
342
  msgid "Default"
343
  msgstr ""
344
 
345
+ #: core/core.php:1343
346
  msgctxt "log file location"
347
  msgid "Custom"
348
  msgstr ""
349
 
350
+ #: core/core.php:1355
351
  msgid "Forced recheck"
352
  msgstr ""
353
 
354
+ #: core/core.php:1358
355
  msgid "Re-check all pages"
356
  msgstr ""
357
 
358
+ #: core/core.php:1363
359
  msgid "The \"Nuclear Option\". Click this button to make the plugin empty its link database and recheck the entire site from scratch."
360
  msgstr ""
361
 
362
+ #: core/core.php:1375
363
  msgid "Save Changes"
364
  msgstr ""
365
 
366
+ #: core/core.php:1426
367
  msgid "Configure"
368
  msgstr ""
369
 
370
+ #: core/core.php:1508
371
  msgid "Enter the names of custom fields you want to check (one per line). If a field contains HTML code, prefix its name with <code>html:</code>. For example, <code>html:field_name</code>."
372
  msgstr ""
373
 
374
+ #: core/core.php:1522
375
  msgid "Enter the keys of acf fields you want to check (one per line). If a field contains HTML code, prefix its name with <code>html:</code>. For example, <code>html:field_586a3eaa4091b</code>."
376
  msgstr ""
377
 
378
+ #: core/core.php:1653, core/core.php:1739, core/core.php:1771
379
  msgid "Database error : %s"
380
  msgstr ""
381
 
382
+ #: core/core.php:1720
383
  msgid "You must enter a filter name!"
384
  msgstr ""
385
 
386
+ #: core/core.php:1724
387
  msgid "Invalid search query."
388
  msgstr ""
389
 
390
+ #: core/core.php:1734
391
  msgid "Filter \"%s\" created"
392
  msgstr ""
393
 
394
+ #: core/core.php:1761
395
  msgid "Filter ID not specified."
396
  msgstr ""
397
 
398
+ #: core/core.php:1768
399
  msgid "Filter deleted"
400
  msgstr ""
401
 
402
+ #: core/core.php:1817
403
  msgid "Replaced %d redirect with a direct link"
404
  msgid_plural "Replaced %d redirects with direct links"
405
  msgstr[0] ""
406
  msgstr[1] ""
407
 
408
+ #: core/core.php:1828
409
  msgid "Failed to fix %d redirect"
410
  msgid_plural "Failed to fix %d redirects"
411
  msgstr[0] ""
412
  msgstr[1] ""
413
 
414
+ #: core/core.php:1839
415
  msgid "None of the selected links are redirects!"
416
  msgstr ""
417
 
418
+ #: core/core.php:1919
419
  msgid "%d link updated."
420
  msgid_plural "%d links updated."
421
  msgstr[0] ""
422
  msgstr[1] ""
423
 
424
+ #: core/core.php:1930
425
  msgid "Failed to update %d link."
426
  msgid_plural "Failed to update %d links."
427
  msgstr[0] ""
428
  msgstr[1] ""
429
 
430
+ #: core/core.php:2021
431
  msgid "%d link removed"
432
  msgid_plural "%d links removed"
433
  msgstr[0] ""
434
  msgstr[1] ""
435
 
436
+ #: core/core.php:2032
437
  msgid "Failed to remove %d link"
438
  msgid_plural "Failed to remove %d links"
439
  msgstr[0] ""
440
  msgstr[1] ""
441
 
442
+ #: core/core.php:2142
443
  msgid "%d item was skipped because it can't be moved to the Trash. You need to delete it manually."
444
  msgid_plural "%d items were skipped because they can't be moved to the Trash. You need to delete them manually."
445
  msgstr[0] ""
446
  msgstr[1] ""
447
 
448
+ #: core/core.php:2164
449
  msgid "Didn't find anything to delete!"
450
  msgstr ""
451
 
452
+ #: core/core.php:2202
453
  msgid "%d link scheduled for rechecking"
454
  msgid_plural "%d links scheduled for rechecking"
455
  msgstr[0] ""
456
  msgstr[1] ""
457
 
458
+ #: core/core.php:2251, core/core.php:3088
459
  msgid "This link was manually marked as working by the user."
460
  msgstr ""
461
 
462
+ #: core/core.php:2259, core/core.php:2322
463
  msgid "Couldn't modify link %d"
464
  msgstr ""
465
 
466
+ #: core/core.php:2270
467
  msgid "%d link marked as not broken"
468
  msgid_plural "%d links marked as not broken"
469
  msgstr[0] ""
470
  msgstr[1] ""
471
 
472
+ #: core/core.php:2333
473
  msgid "%d link dismissed"
474
  msgid_plural "%d links dismissed"
475
  msgstr[0] ""
476
  msgstr[1] ""
477
 
478
+ #: core/core.php:2390
479
  msgid "The \"Warnings\" page lists problems that are probably temporary or suspected to be false positives.<br> Warnings that persist for a long time will usually be reclassified as broken links."
480
  msgstr ""
481
 
482
+ #: core/core.php:2395
483
  msgctxt "admin notice under Tools - Broken links - Warnings"
484
  msgid "Hide notice"
485
  msgstr ""
486
 
487
+ #: core/core.php:2401
488
  msgctxt "a link from the admin notice under Tools - Broken links - Warnings"
489
  msgid "Change warning settings"
490
  msgstr ""
491
 
492
+ #: core/core.php:2426
493
  msgid "Table columns"
494
  msgstr ""
495
 
496
+ #: core/core.php:2445
497
  msgid "Show on screen"
498
  msgstr ""
499
 
500
+ #: core/core.php:2452
501
  msgid "links"
502
  msgstr ""
503
 
504
+ #: core/core.php:2453, includes/admin/table-printer.php:175
505
  msgid "Apply"
506
  msgstr ""
507
 
508
+ #: core/core.php:2457
509
  msgid "Misc"
510
  msgstr ""
511
 
512
+ #: core/core.php:2472
513
  msgid "Highlight links broken for at least %s days"
514
  msgstr ""
515
 
516
+ #: core/core.php:2481
517
  msgid "Color-code status codes"
518
  msgstr ""
519
 
520
+ #: core/core.php:2500, core/core.php:3072, core/core.php:3119, core/core.php:3158, core/core.php:3282, core/core.php:3341, core/core.php:3419
521
  msgid "You're not allowed to do that!"
522
  msgstr ""
523
 
524
+ #: core/core.php:2940
525
  msgid "View broken links"
526
  msgstr ""
527
 
528
+ #: core/core.php:2941
529
  msgid "Found %d broken link"
530
  msgid_plural "Found %d broken links"
531
  msgstr[0] ""
532
  msgstr[1] ""
533
 
534
+ #: core/core.php:2947
535
  msgid "No broken links found."
536
  msgstr ""
537
 
538
+ #: core/core.php:2954
539
  msgid "%d URL in the work queue"
540
  msgid_plural "%d URLs in the work queue"
541
  msgstr[0] ""
542
  msgstr[1] ""
543
 
544
+ #: core/core.php:2958
545
  msgid "No URLs in the work queue."
546
  msgstr ""
547
 
548
+ #: core/core.php:2964
549
  msgctxt "for the \"Detected X unique URLs in Y links\" message"
550
  msgid "%d unique URL"
551
  msgid_plural "%d unique URLs"
552
  msgstr[0] ""
553
  msgstr[1] ""
554
 
555
+ #: core/core.php:2968
556
  msgctxt "for the \"Detected X unique URLs in Y links\" message"
557
  msgid "%d link"
558
  msgid_plural "%d links"
559
  msgstr[0] ""
560
  msgstr[1] ""
561
 
562
+ #: core/core.php:2974
563
  msgid "Detected %1$s in %2$s and still searching..."
564
  msgstr ""
565
 
566
+ #: core/core.php:2980
567
  msgid "Detected %1$s in %2$s."
568
  msgstr ""
569
 
570
+ #: core/core.php:2987
571
  msgid "Searching your blog for links..."
572
  msgstr ""
573
 
574
+ #: core/core.php:2989
575
  msgid "No links detected."
576
  msgstr ""
577
 
578
+ #: core/core.php:3015
579
  msgctxt "current load"
580
  msgid "Unknown"
581
  msgstr ""
582
 
583
+ #: core/core.php:3080, core/core.php:3127, core/core.php:3181, core/core.php:3296, core/core.php:3364, core/core.php:3442
584
  msgid "Oops, I can't find the link %d"
585
  msgstr ""
586
 
587
+ #: core/core.php:3100, core/core.php:3141
588
  msgid "Oops, couldn't modify the link!"
589
  msgstr ""
590
 
591
+ #: core/core.php:3103, core/core.php:3144, core/core.php:3329, core/core.php:3351, core/core.php:3429
592
  msgid "Error : link_id not specified"
593
  msgstr ""
594
 
595
+ #: core/core.php:3168
596
  msgid "Error : link_id or new_url not specified"
597
  msgstr ""
598
 
599
+ #: core/core.php:3194, core/core.php:3208
600
  msgid "Oops, the new URL is invalid!"
601
  msgstr ""
602
 
603
+ #: core/core.php:3228
604
  msgid "An unexpected error occurred!"
605
  msgstr ""
606
 
607
+ #: core/core.php:3309
608
  msgid "An unexpected error occured!"
609
  msgstr ""
610
 
611
+ #: core/core.php:3477
612
  msgid "You don't have sufficient privileges to access this information!"
613
  msgstr ""
614
 
615
+ #: core/core.php:3490
616
  msgid "Error : link ID not specified"
617
  msgstr ""
618
 
619
+ #: core/core.php:3504
620
  msgid "Failed to load link details (%s)"
621
  msgstr ""
622
 
623
+ #: core/core.php:3558
624
  msgid "Broken Link Checker"
625
  msgstr ""
626
 
627
+ #: core/core.php:3597
628
  msgid "You have an old version of CURL. Redirect detection may not work properly."
629
  msgstr ""
630
 
631
+ #: core/core.php:3608, core/core.php:3624, core/core.php:3629
632
  msgid "Not installed"
633
  msgstr ""
634
 
635
+ #: core/core.php:3617
636
  msgid "Installed"
637
  msgstr ""
638
 
639
+ #: core/core.php:3630
640
  msgid "You must have either CURL or Snoopy installed for the plugin to work!"
641
  msgstr ""
642
 
643
+ #: core/core.php:3640
644
  msgid "On"
645
  msgstr ""
646
 
647
+ #: core/core.php:3641
648
  msgid "Redirects may be detected as broken links when safe_mode is on."
649
  msgstr ""
650
 
651
+ #: core/core.php:3646, core/core.php:3660
652
  msgid "Off"
653
  msgstr ""
654
 
655
+ #: core/core.php:3654
656
  msgid "On ( %s )"
657
  msgstr ""
658
 
659
+ #: core/core.php:3655
660
  msgid "Redirects may be detected as broken links when open_basedir is on."
661
  msgstr ""
662
 
663
+ #: core/core.php:3692
664
  msgid "If this value is zero even after several page reloads you have probably encountered a bug."
665
  msgstr ""
666
 
667
+ #: core/core.php:3816, core/core.php:3935
668
  msgid "[%s] Broken links detected"
669
  msgstr ""
670
 
671
+ #: core/core.php:3821
672
  msgid "Broken Link Checker has detected %d new broken link on your site."
673
  msgid_plural "Broken Link Checker has detected %d new broken links on your site."
674
  msgstr[0] ""
675
  msgstr[1] ""
676
 
677
+ #: core/core.php:3852
678
  msgid "Here's a list of the first %d broken links:"
679
  msgid_plural "Here's a list of the first %d broken links:"
680
  msgstr[0] ""
681
  msgstr[1] ""
682
 
683
+ #: core/core.php:3861
684
  msgid "Here's a list of the new broken links: "
685
  msgstr ""
686
 
687
+ #: core/core.php:3870
688
  msgid "Link text : %s"
689
  msgstr ""
690
 
691
+ #: core/core.php:3871
692
  msgid "Link URL : <a href=\"%1$s\">%2$s</a>"
693
  msgstr ""
694
 
695
+ #: core/core.php:3872
696
  msgid "Source : %s"
697
  msgstr ""
698
 
699
+ #: core/core.php:3886
700
  msgid "You can see all broken links here:"
701
  msgstr ""
702
 
703
+ #: core/core.php:3940
704
  msgid "Broken Link Checker has detected %d new broken link in your posts."
705
  msgid_plural "Broken Link Checker has detected %d new broken links in your posts."
706
  msgstr[0] ""
707
  msgstr[1] ""
708
 
709
+ #: core/init.php:234
710
  msgid "Every 10 minutes"
711
  msgstr ""
712
 
713
+ #: core/init.php:241
714
  msgid "Once Weekly"
715
  msgstr ""
716
 
717
+ #: core/init.php:247
718
  msgid "Twice a Month"
719
  msgstr ""
720
 
721
+ #: core/init.php:325
722
  msgid "Broken Link Checker installation failed. Try deactivating and then reactivating the plugin."
723
  msgstr ""
724
 
725
+ #: core/init.php:329
726
  msgid "Please activate the plugin separately on each site. Network activation is not supported."
727
  msgstr ""
728
 
729
+ #: includes/any-post.php:462, modules/containers/acf_field.php:248, modules/containers/blogroll.php:46, modules/containers/comment.php:159, modules/containers/custom_field.php:252
730
  msgid "Edit"
731
  msgstr ""
732
 
733
+ #: includes/any-post.php:470, modules/containers/acf_field.php:252, modules/containers/custom_field.php:258
734
  msgid "Move this item to the Trash"
735
  msgstr ""
736
 
737
+ #: includes/any-post.php:472, modules/containers/acf_field.php:252, modules/containers/custom_field.php:260
738
  msgid "Trash"
739
  msgstr ""
740
 
741
+ #: includes/any-post.php:477, modules/containers/acf_field.php:254, modules/containers/custom_field.php:265
742
  msgid "Delete this item permanently"
743
  msgstr ""
744
 
745
+ #: includes/any-post.php:479, modules/containers/acf_field.php:254, modules/containers/blogroll.php:47, modules/containers/custom_field.php:267
746
  msgid "Delete"
747
  msgstr ""
748
 
758
  msgid "View &#8220;%s&#8221;"
759
  msgstr ""
760
 
761
+ #: includes/any-post.php:501, modules/containers/acf_field.php:258, modules/containers/comment.php:172, modules/containers/custom_field.php:272
762
  msgid "View"
763
  msgstr ""
764
 
765
+ #: includes/any-post.php:520, modules/containers/acf_field.php:248, modules/containers/custom_field.php:252
766
  msgid "Edit this item"
767
  msgstr ""
768
 
770
  msgid "Nothing to update"
771
  msgstr ""
772
 
773
+ #: includes/any-post.php:595
774
  msgid "Updating post %d failed"
775
  msgstr ""
776
 
777
+ #: includes/any-post.php:656, modules/containers/acf_field.php:327, modules/containers/custom_field.php:341
778
  msgid "Failed to delete post \"%1$s\" (%2$d)"
779
  msgstr ""
780
 
781
+ #: includes/any-post.php:675, modules/containers/acf_field.php:341, modules/containers/custom_field.php:360
782
  msgid "Can't move post \"%1$s\" (%2$d) to the trash because the trash feature is disabled"
783
  msgstr ""
784
 
785
+ #: includes/any-post.php:695, modules/containers/acf_field.php:353, modules/containers/custom_field.php:379
786
  msgid "Failed to move post \"%1$s\" (%2$d) to the trash"
787
  msgstr ""
788
 
789
+ #: includes/any-post.php:803
790
  msgid "%d post deleted."
791
  msgid_plural "%d posts deleted."
792
  msgstr[0] ""
793
  msgstr[1] ""
794
 
795
+ #: includes/any-post.php:805
796
  msgid "%d page deleted."
797
  msgid_plural "%d pages deleted."
798
  msgstr[0] ""
799
  msgstr[1] ""
800
 
801
+ #: includes/any-post.php:807
802
  msgid "%1$d \"%2$s\" deleted."
803
  msgid_plural "%1$d \"%2$s\" deleted."
804
  msgstr[0] ""
805
  msgstr[1] ""
806
 
807
+ #: includes/any-post.php:826
808
  msgid "%d post moved to the Trash."
809
  msgid_plural "%d posts moved to the Trash."
810
  msgstr[0] ""
811
  msgstr[1] ""
812
 
813
+ #: includes/any-post.php:828
814
  msgid "%d page moved to the Trash."
815
  msgid_plural "%d pages moved to the Trash."
816
  msgstr[0] ""
817
  msgstr[1] ""
818
 
819
+ #: includes/any-post.php:830
820
  msgid "%1$d \"%2$s\" moved to the Trash."
821
  msgid_plural "%1$d \"%2$s\" moved to the Trash."
822
  msgstr[0] ""
823
  msgstr[1] ""
824
 
825
+ #: includes/containers.php:123
826
  msgid "%1$d '%2$s' has been deleted"
827
  msgid_plural "%1$d '%2$s' have been deleted"
828
  msgstr[0] ""
829
  msgstr[1] ""
830
 
831
+ #: includes/containers.php:930, includes/containers.php:948
832
  msgid "Container type '%s' not recognized"
833
  msgstr ""
834
 
1506
  msgid "Using Snoopy"
1507
  msgstr ""
1508
 
1509
+ #: modules/containers/acf_field.php:102, modules/containers/custom_field.php:107
1510
  msgid "Failed to update the meta field '%1$s' on %2$s [%3$d]"
1511
  msgstr ""
1512
 
1513
+ #: modules/containers/acf_field.php:132, modules/containers/custom_field.php:137
1514
  msgid "Failed to delete the meta field '%1$s' on %2$s [%3$d]"
1515
  msgstr ""
1516
 
1517
+ #: modules/containers/acf_field.php:234, modules/containers/custom_field.php:238
1518
  msgid "Edit this post"
1519
  msgstr ""
1520
 
1521
+ #: modules/containers/acf_field.php:258, modules/containers/custom_field.php:272
1522
  msgid "View \"%s\""
1523
  msgstr ""
1524
 
1720
  msgid "Unknown YouTube API response received."
1721
  msgstr ""
1722
 
1723
+ #: modules/parsers/acf_field.php:120, modules/parsers/metadata.php:141
1724
  msgid "Custom field"
1725
  msgstr ""
1726
 
modules/containers/custom_field.php CHANGED
@@ -44,6 +44,7 @@ class blcPostMeta extends blcContainer {
44
  if ( is_null( $this->wrapped_object ) || $ensure_consistency ) {
45
  $this->wrapped_object = get_metadata( $this->meta_type, $this->container_id );
46
  }
 
47
  return $this->wrapped_object;
48
  }
49
 
@@ -59,8 +60,14 @@ class blcPostMeta extends blcContainer {
59
  * @param string $field Field name. If omitted, the value of the default field will be returned.
60
  * @return array
61
  */
62
- function get_field( $field = '' ) {
63
  $get_only_first_field = ( 'metadata' !== $this->fields[ $field ] );
 
 
 
 
 
 
64
  return get_metadata( $this->meta_type, $this->container_id, $field, $get_only_first_field );
65
  }
66
 
@@ -75,6 +82,21 @@ class blcPostMeta extends blcContainer {
75
  * @return bool|WP_Error True on success, an error object if something went wrong.
76
  */
77
  function update_field( $field, $new_value, $old_value = '' ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  $rez = update_metadata( $this->meta_type, $this->container_id, $field, $new_value, $old_value );
79
  if ( $rez ) {
80
  return true;
44
  if ( is_null( $this->wrapped_object ) || $ensure_consistency ) {
45
  $this->wrapped_object = get_metadata( $this->meta_type, $this->container_id );
46
  }
47
+
48
  return $this->wrapped_object;
49
  }
50
 
60
  * @param string $field Field name. If omitted, the value of the default field will be returned.
61
  * @return array
62
  */
63
+ function get_field( $field = '', $single = false ) {
64
  $get_only_first_field = ( 'metadata' !== $this->fields[ $field ] );
65
+
66
+ //override the get only first by a param
67
+ if ( $single ) {
68
+ $get_only_first_field = true;
69
+ }
70
+
71
  return get_metadata( $this->meta_type, $this->container_id, $field, $get_only_first_field );
72
  }
73
 
82
  * @return bool|WP_Error True on success, an error object if something went wrong.
83
  */
84
  function update_field( $field, $new_value, $old_value = '' ) {
85
+
86
+ //necessary for metas that store more than one value in a key
87
+ $meta_value = $this->get_field( $field, true );
88
+ $new_meta_value = $meta_value;
89
+ if ( is_array( $meta_value ) ) {
90
+ foreach ( $meta_value as $key => $meta ) {
91
+ if ( $meta === $old_value ) {
92
+ $new_meta_value[ $key ] = $new_value;
93
+ }
94
+ }
95
+ $new_value = $new_meta_value;
96
+ $old_value = $meta_value;
97
+ }
98
+
99
+ //update the medatadata
100
  $rez = update_metadata( $this->meta_type, $this->container_id, $field, $new_value, $old_value );
101
  if ( $rez ) {
102
  return true;
modules/extras/youtube.php CHANGED
@@ -17,7 +17,6 @@ ModuleCheckerUrlPattern: @^https?://(?:([\w\d]+\.)*youtube\.[^/]+/watch\?.*v=[^/
17
  */
18
 
19
  class blcYouTubeChecker extends blcChecker {
20
- var $youtube_developer_key = 'AIzaSyCE2HKP0BneF8YdVT45UpadENdBeYCzFrE';
21
  var $api_grace_period = 0.3; //How long to wait between YouTube API requests.
22
  var $last_api_request = 0; //Timestamp of the last request.
23
 
@@ -98,6 +97,7 @@ class blcYouTubeChecker extends blcChecker {
98
  }
99
  }
100
 
 
101
  //The hash should contain info about all pieces of data that pertain to determining if the
102
  //link is working.
103
  $result['result_hash'] = implode(
@@ -285,7 +285,12 @@ class blcYouTubeChecker extends blcChecker {
285
  }
286
 
287
  public function get_youtube_api_key() {
288
- return apply_filters( 'blc_youtube_api_key', $this->youtube_developer_key );
 
 
 
 
 
289
  }
290
 
291
  }
17
  */
18
 
19
  class blcYouTubeChecker extends blcChecker {
 
20
  var $api_grace_period = 0.3; //How long to wait between YouTube API requests.
21
  var $last_api_request = 0; //Timestamp of the last request.
22
 
97
  }
98
  }
99
 
100
+
101
  //The hash should contain info about all pieces of data that pertain to determining if the
102
  //link is working.
103
  $result['result_hash'] = implode(
285
  }
286
 
287
  public function get_youtube_api_key() {
288
+ $conf = blc_get_configuration();
289
+
290
+ //todo: Remove defualt API key.
291
+ $api_key = ! empty( $conf->options['youtube_api_key'] ) ? $conf->options['youtube_api_key'] : 'AIzaSyCE2HKP0BneF8YdVT45UpadENdBeYCzFrE';
292
+
293
+ return apply_filters( 'blc_youtube_api_key', $conf->options['youtube_api_key'] );
294
  }
295
 
296
  }
modules/parsers/metadata.php CHANGED
@@ -33,46 +33,68 @@ class blcMetadataParser extends blcParser {
33
  }
34
 
35
  foreach ( $content as $value ) {
36
- //The complete contents of the meta field are stored in raw_url.
37
- //This is useful for editing/unlinking, when one may need to
38
- //distinguish between multiple fields with the same name.
39
- $raw_url = $value;
 
 
 
 
 
 
 
 
 
40
 
41
- //If this is a multiline metadata field take only the first line (workaround for the 'enclosure' field).
42
- $lines = explode( "\n", $value );
43
- $url = trim( reset( $lines ) );
44
 
45
- //Attempt to parse the URL
46
- $parts = @parse_url( $url );
 
 
 
 
 
 
 
 
 
 
47
 
48
- if ( ! $parts ) {
49
- return $instances; //Ignore invalid URLs
50
- }
51
 
52
- if ( ! isset( $parts['scheme'] ) ) {
53
- //No scheme - likely a relative URL. Turn it into an absolute one.
54
- $url = $this->relative2absolute( $url, $base_url );
55
 
56
- //Skip invalid URLs (again)
57
- if ( ! $url || ( strlen( $url ) < 6 ) ) {
58
- return $instances;
59
- }
60
- }
61
 
62
- //The URL is okay, create and populate a new link instance.
63
- $instance = new blcLinkInstance();
 
64
 
65
- $instance->set_parser( $this );
66
- $instance->raw_url = $raw_url;
67
- $instance->link_text = $default_link_text;
 
 
68
 
69
- $link_obj = new blcLink( $url ); //Creates or loads the link
70
- $instance->set_link( $link_obj );
71
 
72
- $instances[] = $instance;
73
- }
 
 
 
 
74
 
75
- return $instances;
76
  }
77
 
78
  /**
33
  }
34
 
35
  foreach ( $content as $value ) {
36
+ //parse all values of a seralized custom field
37
+ if ( is_array( $value ) ) {
38
+ foreach ( $value as $singular_value ) {
39
+ //only get urls
40
+ //todo: filter relative urls
41
+ if ( filter_var( $singular_value, FILTER_VALIDATE_URL ) ) {
42
+ $instances[] = $this->parse_metafield( $singular_value, $base_url, $default_link_text );
43
+ }
44
+ }
45
+ } else {
46
+ $instances[] = $this->parse_metafield( $value, $base_url, $default_link_text );
47
+ }
48
+ }
49
 
50
+ return array_values( array_filter( $instances ) );
51
+ }
 
52
 
53
+ /**
54
+ * Metadata url parser helper.
55
+ *
56
+ * @param string $metaurl The url on the meta data
57
+ * @param string $default_link_text
58
+ * @return array An array of new blcLinkInstance objects.
59
+ */
60
+ function parse_metafield( $metaurl = '', $base_url, $default_link_text = '' ) {
61
+ //The complete contents of the meta field are stored in raw_url.
62
+ //This is useful for editing/unlinking, when one may need to
63
+ //distinguish between multiple fields with the same name.
64
+ $raw_url = $metaurl;
65
 
66
+ //If this is a multiline metadata field take only the first line (workaround for the 'enclosure' field).
67
+ $lines = explode( "\n", $metaurl );
68
+ $url = trim( reset( $lines ) );
69
 
70
+ //Attempt to parse the URL
71
+ $parts = @parse_url( $url );
 
72
 
73
+ if ( ! $parts ) {
74
+ return ''; //Ignore invalid URLs
75
+ }
 
 
76
 
77
+ if ( ! isset( $parts['scheme'] ) ) {
78
+ //No scheme - likely a relative URL. Turn it into an absolute one.
79
+ $url = $this->relative2absolute( $url, $base_url );
80
 
81
+ //Skip invalid URLs (again)
82
+ if ( ! $url || ( strlen( $url ) < 6 ) ) {
83
+ return '';
84
+ }
85
+ }
86
 
87
+ //The URL is okay, create and populate a new link instance.
88
+ $instance = new blcLinkInstance();
89
 
90
+ $instance->set_parser( $this );
91
+ $instance->raw_url = $raw_url;
92
+ $instance->link_text = $default_link_text;
93
+
94
+ $link_obj = new blcLink( $url ); //Creates or loads the link
95
+ $instance->set_link( $link_obj );
96
 
97
+ return $instance;
98
  }
99
 
100
  /**
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: managewp, wpmudev
3
  Donate link:
4
  Tags: links, broken, maintenance, blogroll, custom fields, admin, comments, posts
5
- Requires at least: 3.2
6
- Tested up to: 5.3.2
7
- Stable tag: 1.11.11
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -67,6 +67,14 @@ To upgrade your installation
67
  1. Reactivate the plugin. Your settings will be retained from the previous version.
68
 
69
  == Changelog ==
 
 
 
 
 
 
 
 
70
 
71
  = 1.11.11 =
72
  * Fixed SQL errors caused on some hosts.
2
  Contributors: managewp, wpmudev
3
  Donate link:
4
  Tags: links, broken, maintenance, blogroll, custom fields, admin, comments, posts
5
+ Requires at least: 4.6
6
+ Tested up to: 5.4
7
+ Stable tag: 1.11.12
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
67
  1. Reactivate the plugin. Your settings will be retained from the previous version.
68
 
69
  == Changelog ==
70
+ = 1.11.12 =
71
+ * Added an interface to use personal YouTube API Key
72
+ * Fixed database errors on installation for some hosts.
73
+ * Fixed link editor not working with elementor.
74
+ * Fixed custom field key with multiple keys not rendering.
75
+ * Fixed compatibility issues with Business Directory plugin.
76
+ * Fixed bulk actions not working properly for some actions.
77
+ * Updated the owner on repository.
78
 
79
  = 1.11.11 =
80
  * Fixed SQL errors caused on some hosts.