Media Library Assistant - Version 2.84

Version Description

  • New: For the "MLA Substitution Parameter Hooks Example" plugin, a new "ucwords" custom format value lets you uppercase the first letter in each word of a string.
  • New: For the Media/Assistant submenu table, if a non-image item has a Featured Image, it will be displayed as the item thumbnail instead of the MIME Type icon.
  • New: A new option, "Always Use MLA MIME Type", has been added to the Settings/Media Library Assistant Uploads tab. When checked, this option overrides WordPress validation logic that fails some uploads for "security purposes". For example, a CSV file that contains HTML tags on one or more cells. More information in the "Help" dropdown menu for the tab.
  • New: Support for the PaidMembershipsPro plugin has been added. MLA will restrict access to attachments assigned to "members-only categories" in the [mla_gallery] shortcode.
  • New: The "MLA Gallery Download Archive" example plugin implements a shortcode that lets you download the files attached to a "gallery" of Media library items as a ZIP archive file. Documentation is provided in comments at the start of the source code.
  • New: The "MLA CSV Data Source Example" plugin allows you to access values in a CSV file as a custom Data Source for MLA Bulk Edit templates, mapping rules and shortcode parameters. Detailed instructions are provided in a Documentation tab.
  • New: For the [mla_tag_cloud] and [mla_term_list] shortcodes, the orderby=term_order parameter supports the "drag and drop" ordering of taxonomy terms created by the Simple Custom Post Order plugin.
  • New: For the [mla_tag_cloud] and [mla_term_list] shortcodes, the orderby=tax_position parameter supports the "drag and drop" ordering of taxonomy terms created by the Simple Taxonomy Ordering plugin.
  • New: For the Media/Assistant admin submenu and [mla_gallery] shortcode, support is added for the "Media Library" filter used in the Featured Image from URL plugin.
  • New: For the "MLA Advanced Custom Fields Example" plugin, add "where used" information for the ACF "image" field type. See the first page of the plugin source code for details.
  • New: A new MLA_DEBUG_LEVEL category allows logging of "query-attachments" requests and results for the Media Manager Modal Window.
  • New: For IPTC/EXIF taxonomy mapping rules, the "text" option supports composing a term name from a Content Template with multiple data sources.
  • New: Allow ALT Taxt values to be assigned to application\* MIME types, such as PDF documents, in the Media/Assistant Bulk Edit and Quick Edit areas. These will populate the alt= attributes of <img> tags in [mla_gallery] displays.
  • Fix: Deprecated Jquery functions have been replaced for compatibility with WP 5.5+.
  • Fix: Cross site scripting (reflected) and HTTP parameter pollution problems in [mla_gallery] pagination controls have been resolved.
  • Fix: Some problems parsing Content Templates with nested "test" delimiters have been resolved.
  • Fix: References to the WP_Query class documentation in the WordPress Code Reference have been updated.
  • Fix: Accommodate WordPress 5.4.2 bug that prevents changing "items per screen",e.g., on the Media/Assistant submenu table.
  • Fix: Correct parsing problems with embedded delimiter characters in Content Template choice elements.
  • Fix: Allow mapping rule taxonomy term assignment for "not logged in" applications such as WP/LR Sync.
  • Fix: Avoid PHP Notice messages for attempts to extract non-existent metadata from, for example, SVG images.
  • Fix: For the [mla_gallery] shortcode, empty tax_query parameters are now accepted and ignored, matching the behavior of simple taxonomy parameters.
  • Fix: For the Bulk Edit Area in the Media/Add New (Upload New Media) screen, content templates with backslash characters are now parsed and processed correctly.
  • Fix: For Admin Columns v4.1+ and Pro v5.0+, correct "Deprecated: AC\AdminColumns::register_list_screen..." problem.
  • Fix: For the "MLA Custom Feed Example" plugin, correct the handling of values containing quotes and special characters in the "Edit Feed" page.
Download this release

Release Info

Developer dglingren
Plugin Icon 128x128 Media Library Assistant
Version 2.84
Comparing to
See all releases

Code changes from version 2.83 to 2.84

Files changed (35) hide show
  1. examples/plugins/mla-advanced-custom-fields-example.php +366 -101
  2. examples/plugins/mla-csv-data-source-example/admin-settings-page.tpl +305 -0
  3. examples/plugins/mla-csv-data-source-example/mla-csv-data-source-example.php +945 -0
  4. examples/plugins/mla-custom-feed-example/admin-settings-page.tpl +4 -4
  5. examples/plugins/mla-custom-feed-example/mla-custom-feed-example.php +15 -15
  6. examples/plugins/mla-gallery-download-archive.php +369 -0
  7. examples/plugins/mla-insert-fixit.php +5 -5
  8. examples/plugins/mla-substitution-parameter-hooks-example.php +26 -5
  9. examples/plugins/mla-ui-elements-example.php +31 -9
  10. includes/class-mla-admin-columns-pro-support.php +2 -0
  11. includes/class-mla-ajax.php +100 -1
  12. includes/class-mla-core-options.php +12 -0
  13. includes/class-mla-core.php +27 -8
  14. includes/class-mla-data-query.php +5 -0
  15. includes/class-mla-data.php +145 -35
  16. includes/class-mla-edit-media.php +5 -4
  17. includes/class-mla-list-table.php +53 -5
  18. includes/class-mla-main.php +45 -27
  19. includes/class-mla-mime-types.php +27 -3
  20. includes/class-mla-options.php +7 -19
  21. includes/class-mla-settings-custom-fields-tab.php +1 -1
  22. includes/class-mla-settings-iptc-exif-tab.php +33 -12
  23. includes/class-mla-settings.php +10 -3
  24. includes/class-mla-shortcode-support.php +281 -153
  25. index.php +1 -1
  26. js/mla-inline-edit-settings-scripts.js +1 -1
  27. js/mla-inline-edit-settings-scripts.min.js +1 -1
  28. languages/media-library-assistant-en_US - References.pot +1146 -1094
  29. languages/media-library-assistant-en_US.po +47 -5
  30. languages/media-library-assistant-en_US.pot +46 -4
  31. readme.txt +37 -96
  32. tpls/admin-display-settings-custom-fields-tab.tpl +1 -1
  33. tpls/admin-display-settings-iptc-exif-tab.tpl +14 -0
  34. tpls/documentation-settings-tab.tpl +46 -16
  35. tpls/help-for-settings_page_mla-settings-menu-upload.tpl +4 -0
examples/plugins/mla-advanced-custom-fields-example.php CHANGED
@@ -10,28 +10,40 @@
10
  * 2. an Advanced Custom Fields "repeater" custom field is analyzed to display
11
  * "where used" information in the Media/Assistant submenu table.
12
  *
13
- * The ACF checkbox custom field name is "acf_checkbox"; this is the ACF "Field Name",
14
- * not the "Field Label". You can support another field by changing all occurances of
15
- * the name to match the field you want.
 
 
 
 
 
 
 
 
 
16
  *
17
- * You must also define an MLA Custom Field mapping rule for the field. You can leave
18
- * the Data Source as "-- None (select a value) --" and the other defaults. Check the
19
- * three boxes for MLA Column, Quick Edit and Bulk Edit support.
20
- *
 
 
 
21
  *
22
  * @package MLA Advanced Custom Fields Example
23
- * @version 1.03
24
  */
25
 
26
  /*
27
  Plugin Name: MLA Advanced Custom Fields Example
28
  Plugin URI: http://davidlingren.com/
29
- Description: Supports an ACF checkbox and "where-used" in an ACF repeater
30
  Author: David Lingren
31
- Version: 1.03
32
  Author URI: http://davidlingren.com/
33
 
34
- Copyright 2014 - 2015 David Lingren
35
 
36
  This program is free software; you can redistribute it and/or modify
37
  it under the terms of the GNU General Public License as published by
@@ -48,7 +60,7 @@ Copyright 2014 - 2015 David Lingren
48
  */
49
 
50
  /**
51
- * Class MLA Advanced Custom Fields Example hooks some of the filters provided by the MLA_List_Table class
52
  *
53
  * Call it anything you want, but give it an unlikely and hopefully unique name. Hiding everything
54
  * else inside a class means this is the only name you have to worry about.
@@ -58,44 +70,13 @@ Copyright 2014 - 2015 David Lingren
58
  */
59
  class MLAACFExample {
60
  /**
61
- * Initialization function, similar to __construct()
62
  *
63
- * @since 1.00
64
  *
65
- * @return void
66
  */
67
- public static function initialize() {
68
- /*
69
- * The filters are only useful for the admin section; exit in the front-end posts/pages
70
- */
71
- if ( ! is_admin() )
72
- return;
73
-
74
- /*
75
- * add_filter parameters:
76
- * $tag - name of the hook you're filtering; defined by [mla_gallery]
77
- * $function_to_add - function to be called when [mla_gallery] applies the filter
78
- * $priority - default 10; lower runs earlier, higher runs later
79
- * $accepted_args - number of arguments your function accepts
80
- */
81
-
82
- /*
83
- * Defined in /media-library-assistant/includes/class-mla-main.php
84
- */
85
- add_filter( 'mla_list_table_inline_action', 'MLAACFExample::mla_list_table_inline_action', 10, 2 ); //
86
- add_filter( 'mla_list_table_bulk_action_initial_request', 'MLAACFExample::mla_list_table_bulk_action_initial_request', 10, 3 );
87
- add_filter( 'mla_list_table_bulk_action', 'MLAACFExample::mla_list_table_bulk_action', 10, 3 ); //
88
- add_filter( 'mla_list_table_inline_values', 'MLAACFExample::mla_list_table_inline_values', 10, 1 ); //
89
-
90
- /*
91
- * Defined in /media-library-assistant/includes/class-mla-list-table.php
92
- */
93
- add_filter( 'mla_list_table_get_columns', 'MLAACFExample::mla_list_table_get_columns', 10, 1 ); //
94
- add_filter( 'mla_list_table_get_hidden_columns', 'MLAACFExample::mla_list_table_get_hidden_columns', 10, 1 ); //
95
- add_filter( 'mla_list_table_get_sortable_columns', 'MLAACFExample::mla_list_table_get_sortable_columns', 10, 1 ); //
96
- add_filter( 'mla_list_table_column_default', 'MLAACFExample::mla_list_table_column_default', 10, 3 ); //
97
- add_filter( 'mla_list_table_build_inline_data', 'MLAACFExample::mla_list_table_build_inline_data', 10, 2 );
98
- }
99
 
100
  /**
101
  * Field name of the checkbox field
@@ -115,6 +96,15 @@ class MLAACFExample {
115
  */
116
  const ACF_CHECKBOX_TITLE = 'ACF Checkbox';
117
 
 
 
 
 
 
 
 
 
 
118
  /**
119
  * Field name of the "parent" repeater field
120
  *
@@ -142,6 +132,163 @@ class MLAACFExample {
142
  */
143
  const ACF_SUB_FIELD = 'photo';
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  /**
146
  * Process an MLA_List_Table inline action, i.e., Quick Edit
147
  *
@@ -158,10 +305,7 @@ class MLAACFExample {
158
  * 'prevent_default' => true to bypass the MLA handler )
159
  */
160
  public static function mla_list_table_inline_action( $item_content, $post_id ) {
161
- /*
162
- * Convert the comma-delimited string of "checked" checkbox values back to
163
- * an ACF-compatible array
164
- */
165
  if ( isset( $_REQUEST['custom_updates'] ) && isset( $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] ) ) {
166
  if ( ! empty( $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] ) ) {
167
  $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] = explode( ',', $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] );
@@ -257,9 +401,7 @@ class MLAACFExample {
257
  * @return array updated substitution parameter name => value pairs
258
  */
259
  public static function mla_list_table_inline_values( $item_values ) {
260
- /*
261
- * Replace the ACF Field Name with a more friendly Field Label
262
- */
263
  $item_values['custom_fields'] = str_replace( '>acf_checkbox<', '>' . self::ACF_CHECKBOX_TITLE . '<', $item_values['custom_fields'] );
264
  $item_values['bulk_custom_fields'] = str_replace( '>acf_checkbox<', '>' . self::ACF_CHECKBOX_TITLE . '<', $item_values['bulk_custom_fields'] );
265
 
@@ -288,34 +430,50 @@ class MLAACFExample {
288
  * @return array updated array of columns.
289
  */
290
  public static function mla_list_table_get_columns( $columns ) {
291
- /*
292
- * The Quick and Bulk Edit forms substitute arbitrary "slugs" for the
293
- * custom field names. Remember them for table column and bulk update processing.
294
- */
295
- if ( false !== $slug = array_search( self::ACF_CHECKBOX_FIELD, $columns ) ) {
296
- self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] = $slug;
297
-
298
  /*
299
- * Change the column slug so we can provide our own friendly content.
300
- * Replace the entry for the column we're capturing, preserving its place in the list
301
  */
302
- $new_columns = array();
 
303
 
304
- foreach ( $columns as $key => $value ) {
305
- if ( $key == $slug ) {
306
- $new_columns[ self::ACF_CHECKBOX_FIELD ] = self::ACF_CHECKBOX_TITLE;
307
- } else {
308
- $new_columns[ $key ] = $value;
309
- }
310
- } // foreach column
311
 
312
- $columns = $new_columns;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
313
  }
314
 
315
- /*
316
- * Add a column of our own for the repeater "where-used" information
317
- */
318
- $columns[ 'acf_' . self::ACF_REPEATER_FIELD ] = self::ACF_REPEATER_TITLE;
319
  return $columns;
320
  } // mla_list_table_get_columns
321
 
@@ -332,9 +490,7 @@ class MLAACFExample {
332
  * @return array updated array of columns.
333
  */
334
  public static function mla_list_table_get_hidden_columns( $hidden_columns ) {
335
- /*
336
- * Replace the MLA custom field slug with our own slug value
337
- */
338
  if ( isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
339
  $index = array_search( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ], $hidden_columns );
340
  if ( false !== $index ) {
@@ -362,9 +518,7 @@ class MLAACFExample {
362
  * @return array updated array of columns.
363
  */
364
  public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
365
- /*
366
- * Replace the slug for the column we've captured, preserving its place in the list
367
- */
368
  if ( isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
369
  $slug = self::$field_slugs[ self::ACF_CHECKBOX_FIELD ];
370
  if ( isset( $sortable_columns[ $slug ] ) ) {
@@ -429,24 +583,19 @@ class MLAACFExample {
429
  * @return string Text or HTML to be placed inside the column
430
  */
431
  public static function mla_list_table_column_default( $content, $item, $column_name ) {
432
- /*
433
- * Convert the ACF-compatible array to a comma-delimited list of
434
- * "checked" checkbox values.
435
- */
436
  if ( self::ACF_CHECKBOX_FIELD == $column_name ) {
437
  $values = isset( $item->mla_item_acf_checkbox ) ? $item->mla_item_acf_checkbox : '';
438
  if ( empty( $values ) ) {
439
  return '';
440
  } elseif ( is_array( $values ) ) {
441
  return '[' . implode( '],[', $values ) . ']';
442
- } else {
443
- return $values;
444
  }
 
 
445
  }
446
 
447
- /*
448
- * Retrieve and format the repeater field "where-used" information
449
- */
450
  if ( ( 'acf_' . self::ACF_REPEATER_FIELD ) == $column_name ) {
451
  global $wpdb;
452
 
@@ -494,8 +643,38 @@ class MLAACFExample {
494
  /*%6$s*/ $parent ) . "<br>\r\n";
495
  } // foreach $reference
496
  } // found $references
 
 
497
  } // found repeater column
498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
499
  return $content;
500
  } // mla_list_table_column_default
501
 
@@ -513,17 +692,12 @@ class MLAACFExample {
513
  * @return string updated HTML markup for inline data.
514
  */
515
  public static function mla_list_table_build_inline_data( $inline_data, $item ) {
516
- /*
517
- * See if the field is present
518
- */
519
  if ( ! isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
520
  return $inline_data;
521
  }
522
 
523
- /*
524
- * Convert the ACF-compatible array to a comma-delimited list of
525
- * "checked" checkbox values.
526
- */
527
  $match_count = preg_match_all( '/\<div class="' . self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] . '"\>(.*)\<\/div\>/', $inline_data, $matches, PREG_OFFSET_CAPTURE );
528
  if ( ( $match_count == false ) || ( $match_count == 0 ) ) {
529
  return $inline_data;
@@ -541,10 +715,101 @@ class MLAACFExample {
541
 
542
  return $inline_data;
543
  } // mla_list_table_build_inline_data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
544
  } // Class MLAACFExample
545
 
546
- /*
547
- * Install the filters at an early opportunity
548
- */
549
  add_action('init', 'MLAACFExample::initialize');
550
  ?>
10
  * 2. an Advanced Custom Fields "repeater" custom field is analyzed to display
11
  * "where used" information in the Media/Assistant submenu table.
12
  *
13
+ * 3. Advanced Custom Fields "image" custom field(s) are analyzed to display
14
+ * "where used" information in the Media/Assistant submenu table.
15
+ *
16
+ * 4. Advanced Custom Fields "image" custom field(s) are made available as custom data substitution
17
+ * parameters, using the prefix "acf:", e.g., "acf:search_bar_image". Three format/option values
18
+ * can be added: 1) "acf:search_bar_image(count)" returns the number of item references,
19
+ * 2) "acf:search_bar_image(present)" returns 1 if there are references present, and 3) a numeric
20
+ * value, e.g., "acf:search_bar_image(3)" returns the count only if it is equal to or greater than
21
+ * the number of references.
22
+ *
23
+ * You can turn each of the three field types on or off by setting the corresponding "_ENABLE" constant
24
+ * to true or false. You can change the field names and labels by editing the corresponding constants.
25
  *
26
+ * Created for support topic "Advanced Custom Fields repeater"
27
+ * opened on 3/1/2015 by "ncj"
28
+ * https://wordpress.org/support/topic/advanced-custom-fields-repeater/
29
+ *
30
+ * Enhanced for support topic "finding “where used” in custom field"
31
+ * opened on 4/19/2020 by "maven1129"
32
+ * https://wordpress.org/support/topic/finding-where-used-in-custom-field/
33
  *
34
  * @package MLA Advanced Custom Fields Example
35
+ * @version 1.05
36
  */
37
 
38
  /*
39
  Plugin Name: MLA Advanced Custom Fields Example
40
  Plugin URI: http://davidlingren.com/
41
+ Description: Supports an ACF checkbox, "where-used" in an ACF repeater and one or more ACF "image" variables.
42
  Author: David Lingren
43
+ Version: 1.05
44
  Author URI: http://davidlingren.com/
45
 
46
+ Copyright 2014 - 2020 David Lingren
47
 
48
  This program is free software; you can redistribute it and/or modify
49
  it under the terms of the GNU General Public License as published by
60
  */
61
 
62
  /**
63
+ * Class MLA Advanced Custom Fields Example hooks some of the filters provided by the MLA_List_Table and MLAData classes
64
  *
65
  * Call it anything you want, but give it an unlikely and hopefully unique name. Hiding everything
66
  * else inside a class means this is the only name you have to worry about.
70
  */
71
  class MLAACFExample {
72
  /**
73
+ * True to enable the checkbox field, false to disable
74
  *
75
+ * @since 1.04
76
  *
77
+ * @var string
78
  */
79
+ const ACF_CHECKBOX_ENABLED = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
  /**
82
  * Field name of the checkbox field
96
  */
97
  const ACF_CHECKBOX_TITLE = 'ACF Checkbox';
98
 
99
+ /**
100
+ * True to enable the repeater field, false to disable
101
+ *
102
+ * @since 1.04
103
+ *
104
+ * @var string
105
+ */
106
+ const ACF_REPEATER_ENABLED = true;
107
+
108
  /**
109
  * Field name of the "parent" repeater field
110
  *
132
  */
133
  const ACF_SUB_FIELD = 'photo';
134
 
135
+ /**
136
+ * True to enable the image field(s), false to disable
137
+ *
138
+ * @since 1.04
139
+ *
140
+ * @var string
141
+ */
142
+ const ACF_IMAGE_ENABLED = true;
143
+
144
+ /**
145
+ * Field name(s) of the image field(s)
146
+ *
147
+ * @since 1.04
148
+ *
149
+ * @var string
150
+ */
151
+ const ACF_IMAGE_FIELDS = 'search_bar_image,rates_search_bar_image';
152
+
153
+ /**
154
+ * Field Label(s) of the image field(s)
155
+ *
156
+ * @since 1.04
157
+ *
158
+ * @var string
159
+ */
160
+ const ACF_IMAGE_TITLES = 'Header Image,Header Image Alt';
161
+
162
+ /**
163
+ * Initialization function, similar to __construct()
164
+ *
165
+ * @since 1.00
166
+ *
167
+ * @return void
168
+ */
169
+ public static function initialize() {
170
+ // The filters are only useful for the admin section; exit in the front-end posts/pages
171
+ if ( ! is_admin() )
172
+ return;
173
+
174
+ // Defined in /media-library-assistant/includes/class-mla-main.php
175
+ if ( self::ACF_CHECKBOX_ENABLED ) {
176
+ add_filter( 'mla_list_table_inline_action', 'MLAACFExample::mla_list_table_inline_action', 10, 2 );
177
+ add_filter( 'mla_list_table_bulk_action_initial_request', 'MLAACFExample::mla_list_table_bulk_action_initial_request', 10, 3 );
178
+ add_filter( 'mla_list_table_bulk_action', 'MLAACFExample::mla_list_table_bulk_action', 10, 3 );
179
+ add_filter( 'mla_list_table_inline_values', 'MLAACFExample::mla_list_table_inline_values', 10, 1 );
180
+ }
181
+
182
+ // Defined in /media-library-assistant/includes/class-mla-list-table.php
183
+ add_filter( 'mla_list_table_get_columns', 'MLAACFExample::mla_list_table_get_columns', 10, 1 );
184
+ add_filter( 'mla_list_table_column_default', 'MLAACFExample::mla_list_table_column_default', 10, 3 );
185
+
186
+ if ( self::ACF_CHECKBOX_ENABLED ) {
187
+ add_filter( 'mla_list_table_get_hidden_columns', 'MLAACFExample::mla_list_table_get_hidden_columns', 10, 1 );
188
+ add_filter( 'mla_list_table_get_sortable_columns', 'MLAACFExample::mla_list_table_get_sortable_columns', 10, 1 );
189
+ add_filter( 'mla_list_table_build_inline_data', 'MLAACFExample::mla_list_table_build_inline_data', 10, 2 );
190
+ }
191
+
192
+ // Defined in /media-library-assistant/includes/class-mla-data.php
193
+ if ( self::ACF_IMAGE_ENABLED ) {
194
+ add_filter( 'mla_expand_custom_prefix', 'MLAACFExample::mla_expand_custom_prefix', 10, 8 );
195
+ }
196
+ }
197
+
198
+ /**
199
+ * MLA Expand Custom Prefix Filter
200
+ *
201
+ * Gives you an opportunity to generate your custom data value when a parameter's prefix value is not recognized.
202
+ *
203
+ * @since 1.00
204
+ *
205
+ * @param string NULL, indicating that by default, no custom value is available
206
+ * @param string the data-source name
207
+ * @param array data-source components; prefix (empty), value, option, format and args (if present)
208
+ * @param array values from the query, if any, e.g. shortcode parameters
209
+ * @param array item-level markup template values, if any
210
+ * @param integer attachment ID for attachment-specific values
211
+ * @param boolean for option 'multi', retain existing values
212
+ * @param string default option value
213
+ */
214
+ public static function mla_expand_custom_prefix( $custom_value, $key, $value, $query, $markup_values, $post_id, $keep_existing, $default_option ) {
215
+ if ( 'acf' !== strtolower( $value['prefix'] ) ) {
216
+ return $custom_value;
217
+ }
218
+
219
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id}, {$keep_existing}, {$default_option} ) value = " . var_export( $value, true ), 0 );
220
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) query = " . var_export( $query, true ), 0 );
221
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) markup_values = " . var_export( $markup_values, true ), 0 );
222
+
223
+ // Look for field/value qualifier
224
+ $match_count = preg_match( '/^(.+)\((.+)\)/', $value['value'], $matches );
225
+ if ( $match_count ) {
226
+ $field = $matches[1];
227
+ $qualifier = $matches[2];
228
+ } else {
229
+ $field = $value['value'];
230
+ $qualifier = '';
231
+ }
232
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) field = {$field}, qualifier = {$qualifier}", 0 );
233
+
234
+ // Set debug mode
235
+ $debug_active = isset( $query['mla_debug'] ) && ( 'false' !== trim( strtolower( $query['mla_debug'] ) ) );
236
+ if ( $debug_active ) {
237
+ $old_mode = MLACore::mla_debug_mode( 'log' );
238
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id}, {$keep_existing}, {$default_option} ) \$_REQUEST = " . var_export( $_REQUEST, true ) );
239
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$field}, {$qualifier} ) \$value = " . var_export( $value, true ) );
240
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix() \$query = " . var_export( $query, true ) );
241
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix() \$markup_values = " . var_export( $markup_values, true ) );
242
+ }
243
+
244
+ $posts = self::_find_field_references( $field, $post_id );
245
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) posts = " . var_export( $posts, true ), 0 );
246
+ if ( !empty( $posts ) ) {
247
+ switch ( $qualifier ) {
248
+ case 'count':
249
+ $custom_value = count( $posts );
250
+ break;
251
+ case 'present':
252
+ $custom_value = ( count( $posts ) ) ? 1 : 0;
253
+ break;
254
+ default:
255
+ $low_bound = absint( $qualifier );
256
+ if ( $low_bound ) {
257
+ $custom_value = count( $posts );
258
+ if ( $low_bound > $custom_value ) {
259
+ $custom_value = NULL;
260
+ }
261
+
262
+ break;
263
+ }
264
+
265
+ $custom_value = '';
266
+ $item = get_post( $post_id );
267
+
268
+ foreach ( $posts as $post_id => $post ) {
269
+ $reference = self::$field_parents[ $post ];
270
+ $status = self::_format_post_status( $reference->post_status );
271
+
272
+ if ( $post_id == $item->post_parent ) {
273
+ $parent = ', ' . __( 'PARENT', 'media-library-assistant' );
274
+ } else {
275
+ $parent = '';
276
+ }
277
+
278
+ $custom_value .= sprintf( '%1$s (%2$s %3$s%4$s%5$s), ',
279
+ /*%1$s*/ esc_attr( $reference->post_title ),
280
+ /*%2$s*/ esc_attr( $reference->post_type ),
281
+ /*%3$s*/ $post_id,
282
+ /*%4$s*/ $status,
283
+ /*%5$s*/ $parent );
284
+ } // foreach $reference
285
+ }
286
+ }
287
+
288
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) custom_value = " . var_export( $custom_value, true ), 0 );
289
+ return $custom_value;
290
+ } // mla_expand_custom_prefix
291
+
292
  /**
293
  * Process an MLA_List_Table inline action, i.e., Quick Edit
294
  *
305
  * 'prevent_default' => true to bypass the MLA handler )
306
  */
307
  public static function mla_list_table_inline_action( $item_content, $post_id ) {
308
+ // Convert the comma-delimited string of "checked" checkbox values back to an ACF-compatible array
 
 
 
309
  if ( isset( $_REQUEST['custom_updates'] ) && isset( $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] ) ) {
310
  if ( ! empty( $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] ) ) {
311
  $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] = explode( ',', $_REQUEST['custom_updates'][ self::ACF_CHECKBOX_FIELD ] );
401
  * @return array updated substitution parameter name => value pairs
402
  */
403
  public static function mla_list_table_inline_values( $item_values ) {
404
+ // Replace the ACF Field Name with a more friendly Field Label
 
 
405
  $item_values['custom_fields'] = str_replace( '>acf_checkbox<', '>' . self::ACF_CHECKBOX_TITLE . '<', $item_values['custom_fields'] );
406
  $item_values['bulk_custom_fields'] = str_replace( '>acf_checkbox<', '>' . self::ACF_CHECKBOX_TITLE . '<', $item_values['bulk_custom_fields'] );
407
 
430
  * @return array updated array of columns.
431
  */
432
  public static function mla_list_table_get_columns( $columns ) {
433
+ if ( self::ACF_CHECKBOX_ENABLED ) {
 
 
 
 
 
 
434
  /*
435
+ * The Quick and Bulk Edit forms substitute arbitrary "slugs" for the
436
+ * custom field names. Remember them for table column and bulk update processing.
437
  */
438
+ if ( false !== $slug = array_search( self::ACF_CHECKBOX_FIELD, $columns ) ) {
439
+ self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] = $slug;
440
 
441
+ /*
442
+ * Change the column slug so we can provide our own friendly content.
443
+ * Replace the entry for the column we're capturing, preserving its place in the list
444
+ */
445
+ $new_columns = array();
 
 
446
 
447
+ foreach ( $columns as $key => $value ) {
448
+ if ( $key == $slug ) {
449
+ $new_columns[ self::ACF_CHECKBOX_FIELD ] = self::ACF_CHECKBOX_TITLE;
450
+ } else {
451
+ $new_columns[ $key ] = $value;
452
+ }
453
+ } // foreach column
454
+
455
+ $columns = $new_columns;
456
+ }
457
+ }
458
+
459
+ // Add a column of our own for the repeater "where-used" information
460
+ if ( self::ACF_REPEATER_ENABLED ) {
461
+ $columns[ 'acf_' . self::ACF_REPEATER_FIELD ] = self::ACF_REPEATER_TITLE;
462
+ }
463
+
464
+ // Add columns of our own for the image "where-used" information
465
+ if ( self::ACF_IMAGE_ENABLED ) {
466
+ $image_fields = explode( ',', self::ACF_IMAGE_FIELDS );
467
+ $image_titles = explode( ',', self::ACF_IMAGE_TITLES );
468
+
469
+ if ( count( $image_fields ) === count( $image_titles ) ) {
470
+ foreach( $image_fields as $index => $field_name ) {
471
+ self::$field_slugs[ 'acf_' . $field_name ] = $field_name;
472
+ $columns[ 'acf_' . $field_name ] = $image_titles[ $index ];
473
+ }
474
+ }
475
  }
476
 
 
 
 
 
477
  return $columns;
478
  } // mla_list_table_get_columns
479
 
490
  * @return array updated array of columns.
491
  */
492
  public static function mla_list_table_get_hidden_columns( $hidden_columns ) {
493
+ // Replace the MLA custom field slug with our own slug value
 
 
494
  if ( isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
495
  $index = array_search( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ], $hidden_columns );
496
  if ( false !== $index ) {
518
  * @return array updated array of columns.
519
  */
520
  public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
521
+ // Replace the slug for the column we've captured, preserving its place in the list
 
 
522
  if ( isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
523
  $slug = self::$field_slugs[ self::ACF_CHECKBOX_FIELD ];
524
  if ( isset( $sortable_columns[ $slug ] ) ) {
583
  * @return string Text or HTML to be placed inside the column
584
  */
585
  public static function mla_list_table_column_default( $content, $item, $column_name ) {
586
+ // Convert the ACF-compatible array to a comma-delimited list of "checked" checkbox values.
 
 
 
587
  if ( self::ACF_CHECKBOX_FIELD == $column_name ) {
588
  $values = isset( $item->mla_item_acf_checkbox ) ? $item->mla_item_acf_checkbox : '';
589
  if ( empty( $values ) ) {
590
  return '';
591
  } elseif ( is_array( $values ) ) {
592
  return '[' . implode( '],[', $values ) . ']';
 
 
593
  }
594
+
595
+ return $values;
596
  }
597
 
598
+ // Retrieve and format the repeater field "where-used" information
 
 
599
  if ( ( 'acf_' . self::ACF_REPEATER_FIELD ) == $column_name ) {
600
  global $wpdb;
601
 
643
  /*%6$s*/ $parent ) . "<br>\r\n";
644
  } // foreach $reference
645
  } // found $references
646
+
647
+ return $content;
648
  } // found repeater column
649
 
650
+
651
+ // Retrieve and format the image field(s) "where-used" information
652
+ if ( array_key_exists( $column_name, self::$field_slugs ) ) {
653
+ $content = '';
654
+
655
+ $posts = self::_find_field_references( self::$field_slugs[ $column_name ], $item->ID );
656
+ foreach ( $posts as $post_id => $post ) {
657
+ $reference = self::$field_parents[ $post ];
658
+ $status = self::_format_post_status( $reference->post_status );
659
+
660
+ if ( $post_id == $item->post_parent ) {
661
+ $parent = ',<br>' . __( 'PARENT', 'media-library-assistant' );
662
+ } else {
663
+ $parent = '';
664
+ }
665
+
666
+ $content .= sprintf( '<a href="%1$s" title="' . __( 'Edit', 'media-library-assistant' ) . ' &#8220;%2$s&#8221;">%2$s</a> (%3$s %4$s%5$s%6$s), ',
667
+ /*%1$s*/ esc_url( add_query_arg( array('post' => $post_id, 'action' => 'edit'), 'post.php' ) ),
668
+ /*%2$s*/ esc_attr( $reference->post_title ),
669
+ /*%3$s*/ esc_attr( $reference->post_type ),
670
+ /*%4$s*/ $post_id,
671
+ /*%5$s*/ $status,
672
+ /*%6$s*/ $parent ) . "<br>\r\n";
673
+ } // foreach $reference
674
+
675
+ return $content;
676
+ } // found image column
677
+
678
  return $content;
679
  } // mla_list_table_column_default
680
 
692
  * @return string updated HTML markup for inline data.
693
  */
694
  public static function mla_list_table_build_inline_data( $inline_data, $item ) {
695
+ // See if the field is present
 
 
696
  if ( ! isset( self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] ) ) {
697
  return $inline_data;
698
  }
699
 
700
+ // Convert the ACF-compatible array to a comma-delimited list of "checked" checkbox values.
 
 
 
701
  $match_count = preg_match_all( '/\<div class="' . self::$field_slugs[ self::ACF_CHECKBOX_FIELD ] . '"\>(.*)\<\/div\>/', $inline_data, $matches, PREG_OFFSET_CAPTURE );
702
  if ( ( $match_count == false ) || ( $match_count == 0 ) ) {
703
  return $inline_data;
715
 
716
  return $inline_data;
717
  } // mla_list_table_build_inline_data
718
+
719
+ /**
720
+ * Cached values for the ACF Image fields
721
+ *
722
+ * @since 1.05
723
+ *
724
+ * @var array( field_slug => array( item_ID => array( reference_ID => reference_ID ) ) )
725
+ */
726
+ private static $field_instances = array();
727
+
728
+ /**
729
+ * Cached "parent post" values for the ACF Image fields
730
+ *
731
+ * @since 1.05
732
+ *
733
+ * @var array( post_ID => array( post_type, post_status, post_title ) )
734
+ */
735
+ private static $field_parents = array();
736
+
737
+ /**
738
+ * Filter the data for inline (Quick and Bulk) editing
739
+ *
740
+ * This filter gives you an opportunity to filter the data passed to the
741
+ * JavaScript functions for Quick and Bulk editing.
742
+ *
743
+ * @since 1.00
744
+ *
745
+ * @param string $field_slug ACF Image variable slug.
746
+ * @param integer $item_ID Media Library item ID.
747
+ *
748
+ * @return array post_id values referencing the item.
749
+ */
750
+ private static function _find_field_references( $field_slug, $item_ID ) {
751
+ global $wpdb;
752
+
753
+ if ( !isset( self::$field_instances[ $field_slug ] ) ) {
754
+ $references = $wpdb->get_results(
755
+ "
756
+ SELECT post_id, meta_value
757
+ FROM {$wpdb->postmeta}
758
+ WHERE meta_key LIKE '{$field_slug}'
759
+ "
760
+ );
761
+
762
+ $post_ids = array();
763
+ foreach ( $references as $reference ) {
764
+ $post_id = (int) $reference->post_id;
765
+ $meta_value = (int) $reference->meta_value;
766
+ self::$field_instances[ $field_slug ][ $meta_value ][ $post_id ] = $post_id;
767
+ $post_ids[ $post_id ] = $post_id;
768
+ }
769
+
770
+ // Find the post information, excluding revisions
771
+ $parents = implode( ',', $post_ids );
772
+ $references = $wpdb->get_results(
773
+ "
774
+ SELECT ID, post_type, post_status, post_title
775
+ FROM {$wpdb->posts}
776
+ WHERE ( post_type <> 'revision' ) AND ( ID IN ({$parents}) )
777
+ "
778
+ );
779
+
780
+ foreach ( $references as $reference ) {
781
+ $post_id = (int) $reference->ID;
782
+ unset( $reference->ID );
783
+ self::$field_parents[ $post_id ] = $reference;
784
+ }
785
+ //error_log( __LINE__ . " MLAACFExample::_find_field_references( {$field_slug} ) field_parents = " . var_export( self::$field_parents, true ), 0 );
786
+
787
+ // Remove the revisions from the field references
788
+ foreach ( self::$field_instances[ $field_slug ] as $meta_value => $post_ids ) {
789
+ $references = array();
790
+ foreach ( $post_ids as $post_id ) {
791
+ if ( array_key_exists( $post_id, self::$field_parents ) ) {
792
+ $references[ $post_id ] = $post_id;
793
+ }
794
+ }
795
+
796
+ if ( count( $references ) ) {
797
+ self::$field_instances[ $field_slug ][ $meta_value ] = $references;
798
+ } else {
799
+ unset( self::$field_instances[ $field_slug ][ $meta_value ] );
800
+ }
801
+ }
802
+ //error_log( __LINE__ . " MLAACFExample::_find_field_references( {$field_slug} ) field_instances = " . var_export( self::$field_instances, true ), 0 );
803
+ } // !isset( self::$field_instances[ $field_slug ] )
804
+
805
+ if ( isset( self::$field_instances[ $field_slug ][ $item_ID ] ) ) {
806
+ return self::$field_instances[ $field_slug ][ $item_ID ];
807
+ }
808
+
809
+ return array();
810
+ } // _find_field_references
811
  } // Class MLAACFExample
812
 
813
+ // Install the filters at an early opportunity
 
 
814
  add_action('init', 'MLAACFExample::initialize');
815
  ?>
examples/plugins/mla-csv-data-source-example/admin-settings-page.tpl ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- template="page" -->
2
+ <a name="backtotop"></a>
3
+ &nbsp;
4
+ <div class="wrap">
5
+ <h1 class="wp-heading-inline">MLA CSV Data Source Example [+version+] Settings</h1>
6
+ [+messages+]
7
+ [+tablist+]
8
+ [+tab_content+]
9
+ </div><!-- wrap -->
10
+
11
+ <!-- template="tablist" -->
12
+ <h2 class="nav-tab-wrapper">
13
+ [+tablist+]
14
+ </h2>
15
+ <!-- template="tablist-item" -->
16
+ <a data-tab-id="[+data-tab-id+]" class="nav-tab [+nav-tab-active+]" href="?page=[+settings-page+]&amp;mla_tab=[+data-tab-id+]">[+title+]</a>
17
+
18
+ <!-- template="messages" -->
19
+ <div class="[+mla_messages_class+]">
20
+ <p>
21
+ [+messages+]
22
+ </p>
23
+ [+dismiss_button+]
24
+ </div>
25
+
26
+ <!-- template="select-option" -->
27
+ <option [+selected+] value="[+value+]">[+text+]</option>
28
+
29
+ <!-- template="page-level-options" -->
30
+ <tr valign="top">
31
+ <td class="textright">
32
+ <strong>Source file</strong>
33
+ </td>
34
+ <td>
35
+ <select name="mla_csv_data_source_options[source]" id="mla-csv-data-source-source">
36
+ [+source_options+]
37
+ </select>
38
+ <div class="mla-settings-help">&nbsp;&nbsp;Select the CSV file to use for the data sources.</div>
39
+ </td>
40
+ </tr>
41
+ <tr valign="top">
42
+ <td class="textright">
43
+ <strong>Match on</strong>
44
+ </td>
45
+ <td>
46
+ <select name="mla_csv_data_source_options[match]" id="mla-csv-data-source-match">
47
+ <option [+id_selected+] value="id">ID (or .ID)</option>
48
+ <option [+base_file_selected+] value="base_file">Base File</option>
49
+ <option [+file_name_selected+] value="file_name">File Name (only)</option>
50
+ </select>
51
+ <div class="mla-settings-help">&nbsp;&nbsp;Select the key used to match the item to the CSV variables.</div>
52
+ </td>
53
+ </tr>
54
+ <tr valign="top">
55
+ <td class="textright">
56
+ <strong>Delimiter</strong>
57
+ </td>
58
+ <td>
59
+ <input name="mla_csv_data_source_options[delimiter]" id="mla-csv-data-source-delimiter" type="text" size="1" maxlength="1"value="[+delimiter+]" />
60
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter the (one character) delimiter that separates variables.</div>
61
+ </td>
62
+ </tr>
63
+ <tr valign="top">
64
+ <td class="textright">
65
+ <strong>Enclosure</strong>
66
+ </td>
67
+ <td>
68
+ <input name="mla_csv_data_source_options[enclosure]" id="mla-csv-data-source-enclosure" type="text" size="1" maxlength="1"value="[+enclosure+]" />
69
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter the (one) character that encloses a variable.</div>
70
+ </td>
71
+ </tr>
72
+ <tr valign="top">
73
+ <td class="textright">
74
+ <strong>Escape</strong>
75
+ </td>
76
+ <td>
77
+ <input name="mla_csv_data_source_options[escape]" id="mla-csv-data-source-escape" type="text" size="1" maxlength="1"value="[+escape+]" />
78
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter the (one) character that escapes special characters within a variable.</div>
79
+ </td>
80
+ </tr>
81
+
82
+ <!-- template="general-tab" -->
83
+ <style type='text/css'>
84
+ .mla-settings-help {
85
+ font-size: 8pt;
86
+ padding-bottom: 5px
87
+ }
88
+
89
+ .mla-page-level-options-form {
90
+ margin-left: 0px;
91
+ margin-top: 10px;
92
+ padding-bottom: 10px;
93
+ border-bottom:thin solid #888888;
94
+ }
95
+
96
+ span.submit.mla-settings-submit,
97
+ p.submit.mla-settings-submit {
98
+ padding-bottom: 0px
99
+ }
100
+
101
+ ul.mla_settings {
102
+ list-style-type: disc;
103
+ list-style-position: outside;
104
+ }
105
+
106
+ ul.mla_settings li {
107
+ margin-left: 2em;
108
+ }
109
+ </style>
110
+ <h2>Plugin Options</h2>
111
+ <p>In this tab you can select the file containing the data you want, the variable used to match the variables to Media Library items and the special characters used to format the file.</p>
112
+ <p>You can find more information about using the features of this plugin in the Documentation tab on this screen.</p>
113
+ <div class="mla-page-level-options-form">
114
+ <form action="[+form_url+]" method="post" class="mla-display-settings-page" id="mla-display-settings-path-mapping-tab">
115
+ <table class="optiontable">
116
+ <tbody>
117
+ [+options_list+]
118
+ </tbody>
119
+ </table>
120
+ <span class="submit mla-settings-submit">
121
+ <input name="mla_csv_data_source_options_save" class="button-primary" id="mla-csv-data-source-save" type="submit" value="Save Changes" />
122
+ </span>
123
+ <h3>Export Match Keys</h3>
124
+ <p>Click the button below to download a CSV file containing the ID, Base File and File Name values for all the items currently in your Media Library.</p>
125
+ <span class="submit mla-settings-submit">
126
+ <input name="mla_csv_data_source_options_export" class="button-primary" id="mla-csv-data-source-export" type="submit" value="Export Match Keys" />
127
+ </span>
128
+ [+_wpnonce+]
129
+ </form>
130
+ </div>
131
+
132
+ <!-- template="documentation-tab" -->
133
+ <style type='text/css'>
134
+ .mla-doc-toc-list {
135
+ list-style-position:inside;
136
+ list-style:disc;
137
+ line-height: 15px;
138
+ padding-left: 20px
139
+ }
140
+
141
+ .mla-doc-hook-label {
142
+ text-align: right;
143
+ padding: 0 1em 2em 0;
144
+ vertical-align: top;
145
+ font-weight:bold
146
+ }
147
+
148
+ .mla-doc-hook-definition {
149
+ vertical-align: top;
150
+ }
151
+
152
+ .mla-doc-table-label {
153
+ text-align: right;
154
+ padding-right: 10px;
155
+ vertical-align: top;
156
+ font-weight:bold
157
+ }
158
+
159
+ .mla-doc-table-sublabel {
160
+ padding-right: 10px;
161
+ vertical-align: top
162
+ }
163
+
164
+ .mla-doc-table-reverse {
165
+ text-align: right;
166
+ padding-right: 10px;
167
+ vertical-align:top
168
+ }
169
+
170
+ .mla-doc-table-definition {
171
+ vertical-align: top;
172
+ }
173
+
174
+ .mla-doc-bold-link {
175
+ font-size:14px;
176
+ font-weight:bold
177
+ }
178
+
179
+ ul.mla_settings {
180
+ list-style-type: disc;
181
+ list-style-position: outside;
182
+ }
183
+
184
+ ul.mla_settings li {
185
+ margin-left: 2em;
186
+ }
187
+ </style>
188
+ <h2>Plugin Documentation. In this tab, jump to:</h2>
189
+ <div class="mla-display-settings-page" id="mla-display-settings-documentation-tab" style="width:700px">
190
+ <ul class="mla-doc-toc-list">
191
+ <li><a href="#introduction"><strong>Introduction</strong></a></li>
192
+ <li><a href="#selecting-a-source-file"><strong>Selecting a Source File</strong></a></li>
193
+ <li><a href="#source-file-format"><strong>Source File Format</strong></a></li>
194
+ <li><a href="#matching-csv-rows"><strong>Matching CSV rows to Media Library Items</strong></a></li>
195
+ <li><a href="#delimiter-enclosure-escape"><strong>Delimiter, Enclosure and Escape</strong></a></li>
196
+ <li><a href="#accessing-csv-values"><strong>Accessing CSV Values</strong></a></li>
197
+ <li><a href="#assigning-hierarchical-terms"><strong>Assigning Hierarchical Terms</strong></a></li>
198
+ </ul>
199
+ <p>
200
+ &nbsp;
201
+ <a name="introduction"></a>
202
+ </p>
203
+ <p>
204
+ <a href="#backtotop">Go to Top</a>
205
+ </p>
206
+ <h3>Introduction</h3>
207
+ <p>
208
+ MLA provides access to a wealth of data about Media Library items through its <a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_variable_parameters" target="_blank">Field-level substitution parameters</a> and <a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#field_level_data_sources" target="_blank">Field-level data sources</a>. You can use these data sources in the Media/Assistant and Media/Add New (Upload New Media) Bulk Edit areas to compose values for Standard Fields like Title and Caption, taxonomy term assignments and custom field values. You can also use them in IPTC/EXIF and Custom Field mapping rules in the same fashion. Mapping rules were originally created to extract and use the IPTC, EXIF and XMP metadata embedded in image files, PDF documents and Microsoft Office files. However, many files do not contain metadata values and some file formats do not support the metadata standards.
209
+ </p>
210
+ <p>
211
+ This plugin was developed to support Comma-separated Variable (CSV) files as an alternative source for field-level data sources. It uses the Field-level substitution parameter filters (Hooks) MLA provides to do this. In the sections below you will find information on creating compatible CSV files, matching the CSV values to Media Library items, accessing the values and some notes on assigning terms in hierarchical taxonomies.
212
+ <a name="selecting-a-source-file"></a>
213
+ </p>
214
+ <p>
215
+ <a href="#backtotop">Go to Top</a>
216
+ </p>
217
+ <h3>Selecting a Source File</h3>
218
+ <p>
219
+ The first control on this plugin's General tab is a dropdown control containing the Title values for every item in the Media Library that has a MIME Type of "text/csv". The type is assigned to files with a ".csv" extension.
220
+ </p>
221
+ <p>
222
+ This means that the first step of the process is, of course, uploading the CSV file (or files) you want to use to your Media Library. You can have as many files as you like, although only one file can be active at any one time.
223
+ <a name="source-file-format"></a>
224
+ </p>
225
+ <p>
226
+ <a href="#backtotop">Go to Top</a>
227
+ </p>
228
+ <h3>Source File Format</h3>
229
+ <p>
230
+ A comma-separated values (CSV) file is a delimited text file that uses a comma to separate values. Each line of the file is a data record. Each record consists of one or more fields, separated by commas. The use of the comma as a field separator is the source of the name for this file format. A CSV file typically stores tabular data (numbers and text) in plain text, in which case each line will have the same number of fields. You can find much more information in the <a href="https://en.wikipedia.org/wiki/Comma-separated_values" title="Comma-separated values Wikipedia article" target="_blank">Comma-separated values</a> article on Wikipedia.
231
+ </p>
232
+ <p>
233
+ To be used with this plugin the first record in the CSV file <strong>must</strong> be a header record, containing the names of the variables in the file. Like WordPress custom field names, the variable names can contain spaces and some puncuation characters. Variable names are case-specific, e.g., "the name" and "The Name" are <strong>not</strong> the same. A few special names are defined in the next section.
234
+ </p>
235
+ <p>
236
+ This plugin uses a standard PHP function, <a href="http://php.net/manual/en/function.fgetcsv.php" title="PHP Manual page for fgetcsv" target="_blank">fgetcsv</a>, to read and parse CSV files. Your file must be compatible with that function to be used in this plugin.
237
+ </p>
238
+ <p>
239
+ This plugin loads the entire file into memory for quick access to all records. This should be fine for files with hundreds or a few thousand records, but you may need to increase the memory available to WordPress for really large files.
240
+ <a name="matching-csv-rows"></a>
241
+ </p>
242
+ <p>
243
+ <a href="#backtotop">Go to Top</a>
244
+ </p>
245
+ <h3>Matching CSV rows to Media Library Items</h3>
246
+ <p>
247
+ To match a record containing CSV variables to the correct Media Library item the CSV variables must include one or more of the following (identified by its names in the header record):
248
+ </p>
249
+ <ul class="mla_settings">
250
+ <li><strong>ID (or .ID)</strong> - the ID of the corresponding item in the <strong>destination site's</strong> Media Library. This is the most efficient match variable, but it may be unavailable for some applications. Also, it will <strong>not</strong> be available for matching new items as they are uploaded to the Media Library.<br />&nbsp;<br />If you are exporting from one site and importing to another site, <strong>do NOT use</strong> the ID values from the site you are exporting from; they will not be correct!<br />&nbsp;<br />If your ID value is the first column/variable in the file you must use the alternate ".ID" name because "ID" at the very beginning of the file is reserved for another Microsoft file format and will cause all sorts of trouble for CSV files.</li>
251
+ <li><strong>Base Name</strong> - the relative path and file name within the uploads directory. If your Settings/Media options include the "Organize my uploads into month- and year-based folders" option the Base Name will prepend the year and month to the file name, e.g., something like "2020/03/picture.jpg". If the option is not set it will be the same as the File Name, e.g., "picture.jpg".</li>
252
+ <li><strong>File Name</strong> - the file name (only) within the uploads directory, e.g., "picture.jpg". If your file names are unique this will work well. If you have files of the same name in different year/month subdirectories all of them will get the same CSV values unless you use the Base Name to differentiate them.</li>
253
+ </ul>
254
+ <p>
255
+ If you select a file that does not contain the match variable you select on the General tab you will see a warning message at the top of the screen. None of the variables in the file will be accessible until you select a match variable that the file contains.
256
+ </p>
257
+ <p>
258
+ You can use the "Export Match Keys" button at the bottom of the General tag to create and download a CSV file containing all three match key values of the items in the destination site. You can use this file to match the File Name or the Base Name to the correct destination site ID values and update your source file with the correct ID values.
259
+ <a name="delimiter-enclosure-escape"></a>
260
+ </p>
261
+ <p>
262
+ <a href="#backtotop">Go to Top</a>
263
+ </p>
264
+ <h3>Delimiter, Enclosure and Escape</h3>
265
+ <p>
266
+ As described in the Wikipedia article, most CSV files will use a comma to separate variables and double-quotes to enclose variables containing special characters (such as commas and double-quotes). Occasionally you might encounter a fle that uses, for example, a semicolon to separate variables. For these unusual situations you can specify the characters used in these three ways:
267
+ </p>
268
+ <ul class="mla_settings">
269
+ <li><strong>Delimiter</strong> - the character used to separate variables within a record. Defaults to a comma.</li>
270
+ <li><strong>Enclosure</strong> - enclose variables containing special characters (such as commas and double-quotes). Defaults to a double-quote.</li>
271
+ <li><strong>Escape</strong> - optional; sets the escape character (at most one character). An empty string disables the proprietary escape mechanism.<br />&nbsp;<br /><strong>Note</strong>: Usually an enclosure character is escaped inside a field by doubling it; however, the escape character can be used as an alternative. So for the default parameter values "" and \" have the same meaning. Other than allowing to escape the enclosure character the escape character has no special meaning; it isn't even meant to escape itself. </li>
272
+ </ul>
273
+ <p>
274
+ You can enter at most one character in each text box on the General tab. If you enter an empty value for the Delimiter and/or Enclosure the default values will be substituted.
275
+ <a name="accessing-csv-values"></a>
276
+ </p>
277
+ <p>
278
+ <a href="#backtotop">Go to Top</a>
279
+ </p>
280
+ <h3>Accessing CSV Values</h3>
281
+ <p>
282
+ The advantage of implementing CSV access as a custom data source is that it takes advantage of MLA's many existing features, e.g., IPTC/EXIF and Custom Field mapping rules, the Media/Assistant Bulk Edit area, Content Templates and the field-level substitution parameters in shortcodes such as <code>[mla_gallery]</code>. Once a CSV record is matched to an item, simply use the <code>csv:</code> prefix and the variable name from the file's header record, e.g., "[+csv:File Name+]". Variable names are case sensitive, so the name you enter must match the variable name in the file exactly.
283
+ </p>
284
+ <p>
285
+ You can use one or more CSV variables in a <a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_template_parameters" target="_blank">Content Template</a> to compose a value from several CSV variables and other data sources, literal strings and other material. You can use <a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#field_level_formats" target="_blank">Field-level option/format values</a> to specify the treatment of fields with multiple values or to change the format of a field for display/mapping purposes.
286
+ <a name="assigning-hierarchical-terms"></a>
287
+ </p>
288
+ <p>
289
+ <a href="#backtotop">Go to Top</a>
290
+ </p>
291
+ <h3>Assigning Hierarchical Terms</h3>
292
+ <p>
293
+ The current MLA version provides mapping rules to assign taxonomy terms to Media Library items from IPTC, EXIF and XMP metadata values embedded in the image files. For hierarchical taxonomies, the current version allows new terms to be added under a specified &ldquo;Parent&rdquo; term, but does not support more general mapping of terms within multiple levels.
294
+ </p>
295
+ <p>
296
+ To accurately import hierarchical term assignments you have (at least) two alternatives. First, if your term names are unique you can simply define all of the terms and their relationships before you import your CSV data. Given an existing term with a unique name, MLA can find the correct term for each assignment. Second, you can encode the hierarchicy information in the CSV file and use an MLA example plugin to set up the hierarchy as the CSV data is imported.
297
+ </p>
298
+ <p>
299
+ The <a title="Find the Path Mapping Example" href="[+example_url+]&amp;mla-example-search=Search+Plugins&amp;s=%22MLA+Path+Mapping%22" target="_blank" class="mla-doc-bold-link">MLA Path Mapping Example</a>
300
+ plugin adds a &ldquo;Path Delimiter&rdquo; that allows term parent and higher-level ancestor values to be specified, more precisely placing a term in the hierarchy. For example, a value such as &ldquo;/grand parent/parent/child&rdquo; denotes a specific term within a three-level hierarchy. In this example the delimiter at the start of the value means that &ldquo;grand parent&rdquo; must be a root term, i.e., it appears at the highest level and has no ancestors. This is an absolute path specification. A path such as &ldquo;parent/child&rdquo; is a relative path specification, starting wherever &ldquo;parent&rdquo; appears in the hierarchy.
301
+ </p>
302
+ <p>
303
+ The MLA Path Mapping Example plugin includes a Settings/MLA Path Mapping Documentation tab with a detailed discussion of hierarchical term implementation and how to code term path names in your CSV file.
304
+ </p>
305
+ </div>
examples/plugins/mla-csv-data-source-example/mla-csv-data-source-example.php ADDED
@@ -0,0 +1,945 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Populates one or more data sources from a CSV file for use in mapping rules, etc.
4
+ *
5
+ * Much more information is in the Settings/MLA CSV Data "Documentation" tab.
6
+ *
7
+ * Inspired by several support topics, such as:
8
+ *
9
+ * "Update image meta data from CSV"
10
+ * opened on 5/10/2020 by "eledris".
11
+ * https://wordpress.org/support/topic/update-image-meta-data-from-csv/
12
+ *
13
+ * "Export Settings?"
14
+ * opened on 5/5/2020 by "redkite".
15
+ * https://wordpress.org/support/topic/export-settings-25/
16
+ *
17
+ * "Migrating Data From One Site to Another"
18
+ * opened on 11/26/2019 by "digisavvy".
19
+ * https://wordpress.org/support/topic/migrating-data-from-one-site-to-another/
20
+ *
21
+ * "Export/Import Att. Data"
22
+ * opened on 8/15/2019 by "customle".
23
+ * https://wordpress.org/support/topic/migrating-data-from-one-site-to-another/
24
+ *
25
+ * "Batch upload of media (not bulk upload)"
26
+ * opened on 3/30/2018 by "yassermkali".
27
+ * https://wordpress.org/support/topic/batch-upload-of-media-not-bulk-upload/
28
+ *
29
+ * "Import/Export Funcionality"
30
+ * opened on 10/15/2017 by "polymathy".
31
+ * https://wordpress.org/support/topic/batch-upload-of-media-not-bulk-upload/
32
+ *
33
+ * "Bulk Add Unique Captions"*
34
+ * opened on 2/17/2016 by "hunterscreate".
35
+ * https://wordpress.org/support/topic/batch-upload-of-media-not-bulk-upload/
36
+ *
37
+ * "How to migrate image attributes during site migration"
38
+ * opened on 8/30/2015 by "cliffmama".
39
+ * https://wordpress.org/support/topic/how-to-migrate-image-attributes-during-site-migration/
40
+ *
41
+ * "Export / Import Att. Categories"
42
+ * opened on 6/4/2014 by "thitz" and "vipoxofni".
43
+ * https://wordpress.org/support/topic/export-import-att-categories/
44
+ *
45
+ * "export / import settings"
46
+ * opened on 9/23/2013 by "bhensler".
47
+ * https://wordpress.org/support/topic/batch-upload-of-media-not-bulk-upload/
48
+ *
49
+ * "What about a media library export/import function"
50
+ * opened on 9/25/2012 by "brentwz".
51
+ * https://wordpress.org/support/topic/plugin-media-library-assistant-what-about-a-media-library-exportimport-function/
52
+ *
53
+ * @package MLA CSV Data Source Example
54
+ * @version 1.01
55
+ */
56
+
57
+ /*
58
+ Plugin Name: MLA CSV Data Source Example
59
+ Plugin URI: http://davidlingren.com/
60
+ Description: Populates one or more data sources from a CSV file
61
+ Author: David Lingren
62
+ Version: 1.01
63
+ Author URI: http://davidlingren.com/
64
+
65
+ Copyright 2020 David Lingren
66
+
67
+ This program is free software; you can redistribute it and/or modify
68
+ it under the terms of the GNU General Public License as published by
69
+ the Free Software Foundation; either version 2 of the License, or
70
+ (at your option) any later version.
71
+
72
+ This program is distributed in the hope that it will be useful,
73
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
74
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
75
+ GNU General Public License for more details.
76
+
77
+ You can get a copy of the GNU General Public License by writing to the
78
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
79
+ */
80
+
81
+ /**
82
+ * Class MLA CSV Data Source Example hooks one of the filters provided by the IPTC/EXIF and Custom Field mapping features
83
+ *
84
+ * Call it anything you want, but give it an unlikely and hopefully unique name. Hiding everything
85
+ * else inside a class means this is the only name you have to worry about.
86
+ *
87
+ * @package MLA CSV Data Source Example
88
+ * @since 1.00
89
+ */
90
+ class MLACSVDataSourceExample {
91
+ /**
92
+ * Current version number
93
+ *
94
+ * @since 1.00
95
+ *
96
+ * @var string
97
+ */
98
+ const CURRENT_VERSION = '1.01';
99
+
100
+ /**
101
+ * Slug prefix for registering and enqueueing submenu pages, style sheets, scripts and settings
102
+ *
103
+ * @since 1.00
104
+ *
105
+ * @var string
106
+ */
107
+ const SLUG_PREFIX = 'mlacsvdatasource';
108
+
109
+ /**
110
+ * Initialization function, similar to __construct()
111
+ *
112
+ * Installs filters and actions that handle the MLA hooks for uploading and mapping.
113
+ *
114
+ * @since 1.00
115
+ *
116
+ * @return void
117
+ */
118
+ public static function initialize() {
119
+ if ( !empty( $_REQUEST['mla_csv_data_source_options_export'] ) ) {
120
+ // Match Keys download will be handled in the admin_init filter
121
+ check_admin_referer( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME );
122
+ self::export_match_keys_action( );
123
+ return;
124
+ }
125
+
126
+ // Defined in /media-library-assistant/includes/class-mla-data.php
127
+ add_filter( 'mla_expand_custom_prefix', 'MLACSVDataSourceExample::mla_expand_custom_prefix', 10, 8 );
128
+
129
+ // The remaining filters are only useful in the admin section; exit if in the "front-end" posts/pages.
130
+ if ( ! is_admin() )
131
+ return;
132
+
133
+ // Add submenu page in the "Settings" section
134
+ add_action( 'admin_menu', 'MLACSVDataSourceExample::admin_menu' );
135
+ } // initialize
136
+
137
+ /**
138
+ * Add submenu page in the "Settings" section
139
+ *
140
+ * @since 1.00
141
+ */
142
+ public static function admin_menu( ) {
143
+ /*
144
+ * We need a tab-specific page ID to manage the screen options on the General tab.
145
+ * Use the URL suffix, if present. If the URL doesn't have a tab suffix, use '-general'.
146
+ * This hack is required to pass the WordPress "referer" validation.
147
+ */
148
+ if ( isset( $_REQUEST['page'] ) && is_string( $_REQUEST['page'] ) && ( self::SLUG_PREFIX . '-settings-' == substr( $_REQUEST['page'], 0, strlen( self::SLUG_PREFIX . '-settings-' ) ) ) ) {
149
+ $tab = substr( $_REQUEST['page'], strlen( self::SLUG_PREFIX . '-settings-' ) );
150
+ } else {
151
+ $tab = 'general';
152
+ }
153
+
154
+ $tab = self::_get_options_tablist( $tab ) ? '-' . $tab : '-general';
155
+ add_submenu_page( 'options-general.php', 'MLA CSV Data Source Example', 'MLA CSV Data', 'manage_options', self::SLUG_PREFIX . '-settings' . $tab, 'MLACSVDataSourceExample::add_submenu_page' );
156
+ add_filter( 'plugin_action_links', 'MLACSVDataSourceExample::plugin_action_links', 10, 2 );
157
+ } // admin_menu
158
+
159
+ /**
160
+ * Add the "Settings" and "Guide" links to the Plugins section entry
161
+ *
162
+ * @since 1.00
163
+ *
164
+ * @param array array of links for the Plugin, e.g., "Activate"
165
+ * @param string Directory and name of the plugin Index file
166
+ *
167
+ * @return array Updated array of links for the Plugin
168
+ */
169
+ public static function plugin_action_links( $links, $file ) {
170
+ if ( $file == 'mla-csv-data-source-example/mla-csv-data-source-example.php' ) {
171
+ $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=' . self::SLUG_PREFIX . '-settings-documentation&mla_tab=documentation' ), 'Guide' );
172
+ array_unshift( $links, $settings_link );
173
+ $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=' . self::SLUG_PREFIX . '-settings-general' ), 'Settings' );
174
+ array_unshift( $links, $settings_link );
175
+ }
176
+
177
+ return $links;
178
+ } // plugin_action_links
179
+
180
+ /**
181
+ * Render (echo) the "MLA CSV Data" submenu in the Settings section
182
+ *
183
+ * @since 1.00
184
+ *
185
+ * @return void Echoes HTML markup for the submenu page
186
+ */
187
+ public static function add_submenu_page() {
188
+ //error_log( __LINE__ . " MLACSVDataSourceExample:add_submenu_page _REQUEST = " . var_export( $_REQUEST, true ), 0 );
189
+
190
+ if ( !current_user_can( 'manage_options' ) ) {
191
+ echo "<h2>MLA CSV Data Source Example - Error</h2>\n";
192
+ wp_die( 'You do not have permission to manage plugin settings.' );
193
+ }
194
+
195
+ // Load template array and initialize page-level values.
196
+ self::$page_template_array = MLACore::mla_load_template( dirname( __FILE__ ) . '/admin-settings-page.tpl', 'path' );
197
+ $current_tab_slug = isset( $_REQUEST['mla_tab'] ) ? $_REQUEST['mla_tab']: 'general';
198
+ $current_tab = self::_get_options_tablist( $current_tab_slug );
199
+ $page_values = array(
200
+ 'version' => 'v' . self::CURRENT_VERSION,
201
+ 'messages' => '',
202
+ 'tablist' => self::_compose_settings_tabs( $current_tab_slug ),
203
+ 'tab_content' => '',
204
+ );
205
+
206
+ // Compose tab content
207
+ if ( $current_tab ) {
208
+ if ( isset( $current_tab['render'] ) ) {
209
+ $handler = $current_tab['render'];
210
+ $page_content = call_user_func( $handler );
211
+ } else {
212
+ $page_content = array( 'message' => 'ERROR: Cannot render content tab', 'body' => '' );
213
+ }
214
+ } else {
215
+ $page_content = array( 'message' => 'ERROR: Unknown content tab', 'body' => '' );
216
+ }
217
+
218
+ if ( ! empty( $page_content['message'] ) ) {
219
+ if ( false !== strpos( $page_content['message'], 'ERROR' ) ) {
220
+ $messages_class = 'updated error';
221
+ $dismiss_button = '';
222
+ } else {
223
+ $messages_class = 'updated notice is-dismissible';
224
+ $dismiss_button = " <button class=\"notice-dismiss\" type=\"button\"><span class=\"screen-reader-text\">[+dismiss_text+].</span></button>\n";
225
+ }
226
+
227
+ $page_values['messages'] = MLAData::mla_parse_template( self::$page_template_array['messages'], array(
228
+ 'mla_messages_class' => $messages_class ,
229
+ 'messages' => $page_content['message'],
230
+ 'dismiss_button' => $dismiss_button,
231
+ 'dismiss_text' => 'Dismiss this notice',
232
+ ) );
233
+ }
234
+
235
+ $page_values['tab_content'] = $page_content['body'];
236
+ echo MLAData::mla_parse_template( self::$page_template_array['page'], $page_values );
237
+ } // add_submenu_page
238
+
239
+ /**
240
+ * Template file for the Settings page(s) and parts
241
+ *
242
+ * This array contains all of the template parts for the Settings page(s). The array is built once
243
+ * each page load and cached for subsequent use.
244
+ *
245
+ * @since 1.00
246
+ *
247
+ * @var array
248
+ */
249
+ public static $page_template_array = NULL;
250
+
251
+ /**
252
+ * Definitions for Settings page tab ids, titles and handlers
253
+ * Each tab is defined by an array with the following elements:
254
+ *
255
+ * array key => HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)
256
+ *
257
+ * title => tab label / heading text
258
+ * render => rendering function for tab messages and content. Usage:
259
+ * $tab_content = ['render']( );
260
+ *
261
+ * @since 1.00
262
+ *
263
+ * @var array
264
+ */
265
+ private static $mla_tablist = array(
266
+ 'general' => array( 'title' => 'General', 'render' => array( 'MLACSVDataSourceExample', '_compose_general_tab' ) ),
267
+ 'documentation' => array( 'title' => 'Documentation', 'render' => array( 'MLACSVDataSourceExample', '_compose_documentation_tab' ) ),
268
+ );
269
+
270
+ /**
271
+ * Retrieve the list of options tabs or a specific tab value
272
+ *
273
+ * @since 1.00
274
+ *
275
+ * @param string Tab slug, to retrieve a single entry
276
+ *
277
+ * @return array|false The entire tablist ( $tab = NULL ), a single tab entry or false if not found/not allowed
278
+ */
279
+ private static function _get_options_tablist( $tab = NULL ) {
280
+ if ( is_string( $tab ) ) {
281
+ if ( isset( self::$mla_tablist[ $tab ] ) ) {
282
+ $results = self::$mla_tablist[ $tab ];
283
+ } else {
284
+ $results = false;
285
+ }
286
+ } else {
287
+ $results = self::$mla_tablist;
288
+ }
289
+
290
+ return $results;
291
+ } // _get_options_tablist
292
+
293
+ /**
294
+ * Compose the navigation tabs for the Settings subpage
295
+ *
296
+ * @since 1.00
297
+ * @uses $page_template_array contains tablist and tablist-item templates
298
+ *
299
+ * @param string Optional data-tab-id value for the active tab, default 'general'
300
+ *
301
+ * @return string HTML markup for the Settings subpage navigation tabs
302
+ */
303
+ private static function _compose_settings_tabs( $active_tab = 'general' ) {
304
+ $tablist_item = self::$page_template_array['tablist-item'];
305
+ $tabs = '';
306
+ foreach ( self::_get_options_tablist() as $key => $item ) {
307
+ $item_values = array(
308
+ 'data-tab-id' => $key,
309
+ 'nav-tab-active' => ( $active_tab == $key ) ? 'nav-tab-active' : '',
310
+ 'settings-page' => self::SLUG_PREFIX . '-settings-' . $key,
311
+ 'title' => $item['title']
312
+ );
313
+
314
+ $tabs .= MLAData::mla_parse_template( $tablist_item, $item_values );
315
+ } // foreach $item
316
+
317
+ $tablist_values = array( 'tablist' => $tabs );
318
+ return MLAData::mla_parse_template( self::$page_template_array['tablist'], $tablist_values );
319
+ } // _compose_settings_tabs
320
+
321
+ /**
322
+ * Compose HTML markup for the source file options if any text/csv files exist
323
+ *
324
+ * @since 1.00
325
+ *
326
+ * @param integer Optional item ID value for the current source file, default 0
327
+ *
328
+ * @return string HTML markup for the Source file <select> list, if any
329
+ */
330
+ private static function _compose_source_file_options( $current_id = 0 ) {
331
+ // Default option if no files exist or there is no current selection
332
+ $option_values = array(
333
+ 'value' => '0',
334
+ 'text' => '&mdash; select a source (CSV) file &mdash;',
335
+ 'selected' => ''
336
+ );
337
+ $select_options = MLAData::mla_parse_template( self::$page_template_array['select-option'], $option_values );
338
+
339
+ // Find all CSV files in the Media Library
340
+ $args = array(
341
+ 'post_type' => 'attachment',
342
+ 'post_status' => 'inherit',
343
+ 'post_mime_type' => 'text/csv',
344
+ 'nopaging' => true,
345
+ );
346
+ $query = new WP_Query( $args );
347
+
348
+ foreach ( $query->posts as $post ) {
349
+ $option_values = array(
350
+ 'value' => $post->ID,
351
+ 'text' => esc_attr( $post->post_title ),
352
+ 'selected' => $current_id === $post->ID ? 'selected=selected' : '',
353
+ );
354
+
355
+ $select_options .= MLAData::mla_parse_template( self::$page_template_array['select-option'], $option_values );
356
+ }
357
+
358
+ $option_values = array(
359
+ 'key' => 'mla-import-settings-file',
360
+ 'options' => $select_options
361
+ );
362
+
363
+ return $select_options;
364
+ } // _compose_source_file_options
365
+
366
+ /**
367
+ * Compose the General tab content for the Settings subpage
368
+ *
369
+ * @since 1.00
370
+ * @uses $page_template_array contains tab content template(s)
371
+ *
372
+ * @return array 'message' => status/error messages, 'body' => tab content
373
+ */
374
+ private static function _compose_general_tab( ) {
375
+ $page_content = array( 'message' => '', 'body' => '' );
376
+
377
+ // Initialize page messages and content, check for page-level Save Changes and Export Match Keys
378
+ if ( !empty( $_REQUEST['mla_csv_data_source_options_save'] ) ) {
379
+ check_admin_referer( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME );
380
+ $page_content = self::_save_setting_changes( );
381
+ }
382
+
383
+ if ( !empty( $page_content['body'] ) ) {
384
+ return $page_content;
385
+ }
386
+
387
+ // Display the General tab
388
+ $_SERVER['REQUEST_URI'] = remove_query_arg( array(
389
+ 'mla_csv_data_source_options',
390
+ '_wpnonce',
391
+ '_wp_http_referer',
392
+ 'mla_csv_data_source_options_save',
393
+ ), $_SERVER['REQUEST_URI'] );
394
+
395
+ // Compose page-level options
396
+ $page_values = array(
397
+ 'source_options' => self::_compose_source_file_options( self::_get_plugin_option('source') ),
398
+ 'id_selected' => 'id' === self::_get_plugin_option('match') ? 'selected=selected' : '',
399
+ 'base_file_selected' => 'base_file' === self::_get_plugin_option('match') ? 'selected=selected' : '',
400
+ 'file_name_selected' => 'file_name' === self::_get_plugin_option('match') ? 'selected=selected' : '',
401
+ 'delimiter' => esc_attr( self::_get_plugin_option('delimiter') ),
402
+ 'enclosure' => esc_attr( self::_get_plugin_option('enclosure') ),
403
+ 'escape' => esc_attr( self::_get_plugin_option('escape') ),
404
+ );
405
+ $options_list = MLAData::mla_parse_template( self::$page_template_array['page-level-options'], $page_values );
406
+
407
+ $form_arguments = '?page=' . self::SLUG_PREFIX . '-settings-general&mla_tab=general';
408
+
409
+ $page_values = array(
410
+ 'form_url' => admin_url( 'options-general.php' ) . $form_arguments,
411
+ '_wpnonce' => wp_nonce_field( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME, true, false ),
412
+ 'options_list' => $options_list,
413
+ );
414
+
415
+ $page_content['body'] .= MLAData::mla_parse_template( self::$page_template_array['general-tab'], $page_values );
416
+
417
+ return $page_content;
418
+ } // _compose_general_tab
419
+
420
+ /**
421
+ * Compose the General tab content for the Settings subpage
422
+ *
423
+ * @since 1.00
424
+ * @uses $page_template_array contains tab content template(s)
425
+ *
426
+ * @return array 'message' => status/error messages, 'body' => tab content
427
+ */
428
+ private static function _compose_documentation_tab( ) {
429
+ $page_content = array( 'message' => '', 'body' => '' );
430
+ $page_values = array(
431
+ 'example_url' => MLACore::mla_nonce_url( '?page=mla-settings-menu-documentation&mla_tab=documentation&mla-example-search=Search', MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME ),
432
+ 'settingsURL' => admin_url('options-general.php'),
433
+ );
434
+
435
+ $page_content['body'] = MLAData::mla_parse_template( self::$page_template_array['documentation-tab'], $page_values );
436
+ return $page_content;
437
+ } // _compose_documentation_tab
438
+
439
+ /**
440
+ * Export Base Name, File Name and ID to a CSV file
441
+ *
442
+ * @since 1.01
443
+ *
444
+ * @return none terminates execution with exit();
445
+ */
446
+ public static function export_match_keys_action() {//
447
+ global $wpdb;
448
+
449
+ check_admin_referer( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME );
450
+
451
+ if( ini_get( 'zlib.output_compression' ) ) {
452
+ ini_set( 'zlib.output_compression', 'Off' );
453
+ }
454
+
455
+ $message = '';
456
+ $upload_dir = wp_upload_dir();
457
+ $upload_dir = $upload_dir['basedir'];
458
+ $date = date("Ymd_B");
459
+ $filename = "{$upload_dir}/match_keys_{$date}.csv";
460
+
461
+ $file_handle = @fopen( $filename, 'w' );
462
+ if ( ! $file_handle ) {
463
+ $message = sprintf( 'ERROR: The export file ( %1$s ) could not be opened.', $filename );
464
+ } else {
465
+ if (false === @fwrite( $file_handle, "Base Name,File Name,ID\r\n")) {
466
+ $error_info = error_get_last();
467
+
468
+ if ( false !== ( $tail = strpos( $error_info['message'], '</a>]: ' ) ) ) {
469
+ $php_errormsg = ':<br>' . substr( $error_info['message'], $tail + 7 );
470
+ } else {
471
+ $php_errormsg = '.';
472
+ }
473
+
474
+ $message = sprintf( 'ERROR: Writing the settings file ( %1$s ) "%2$s".', $filename, $php_errormsg );
475
+ }
476
+ }
477
+
478
+ if ( empty( $message ) ) {
479
+ // Compile the data we need to populate the file
480
+ $query = sprintf( 'SELECT post_id, meta_value FROM %1$s WHERE %1$s.meta_key = \'%2$s\'', $wpdb->postmeta, '_wp_attached_file' );
481
+ $items = $wpdb->get_results( $query, OBJECT );
482
+
483
+ foreach( $items as $item ) {
484
+ $pathinfo = pathinfo( $item->meta_value );
485
+ $file_name = $pathinfo['basename'];
486
+ $fields = array( $item->meta_value, $file_name, $item->post_id );
487
+ @fputcsv( $file_handle, $fields );
488
+ }
489
+ }
490
+
491
+ fclose($file_handle);
492
+
493
+ if ( empty( $message ) ) {
494
+ header('Pragma: public'); // required
495
+ header('Expires: 0'); // no cache
496
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
497
+ header('Last-Modified: '.gmdate ( 'D, d M Y H:i:s', filemtime ( $filename ) ).' GMT');
498
+ header('Cache-Control: private',false);
499
+ header('Content-Type: text/csv');
500
+ header('Content-Disposition: attachment; filename="'.basename( $filename ).'"');
501
+ header('Content-Transfer-Encoding: binary');
502
+ header('Content-Length: ' . filesize( $filename ));
503
+ header('Connection: close');
504
+
505
+ readfile( $filename );
506
+ } else {
507
+ echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
508
+ echo '<html xmlns="http://www.w3.org/1999/xhtml">';
509
+ echo '<head>';
510
+ echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
511
+ echo '<title>Download Error</title>';
512
+ echo '</head>';
513
+ echo '';
514
+ echo '<body>';
515
+ echo $message;
516
+ echo '</body>';
517
+ echo '</html> ';
518
+ }
519
+
520
+ @unlink( $filename );
521
+ exit();
522
+ } // export_match_keys_action
523
+
524
+ /**
525
+ * Save settings as a WordPress wp_options entry
526
+ *
527
+ * @since 1.00
528
+ *
529
+ * @return array 'message' => status/error messages, 'body' => tab content
530
+ */
531
+ private static function _save_setting_changes() {
532
+ $page_content = array( 'message' => 'Settings unchanged.', 'body' => '' );
533
+
534
+ $changed = self::_update_plugin_option( 'source', absint( $_REQUEST[ 'mla_csv_data_source_options' ]['source'] ) );
535
+ $changed |= self::_update_plugin_option( 'match', stripslashes( $_REQUEST[ 'mla_csv_data_source_options' ]['match'] ) );
536
+
537
+ if ( empty( $_REQUEST[ 'mla_csv_data_source_options' ]['delimiter'] ) ) {
538
+ $changed |= self::_update_plugin_option( 'delimiter', self::$_default_settings['delimiter'] );
539
+ } else {
540
+ $changed |= self::_update_plugin_option( 'delimiter', stripslashes( $_REQUEST[ 'mla_csv_data_source_options' ]['delimiter'] ) );
541
+ }
542
+
543
+ if ( empty( $_REQUEST[ 'mla_csv_data_source_options' ]['enclosure'] ) ) {
544
+ $changed |= self::_update_plugin_option( 'enclosure', self::$_default_settings['enclosure'] );
545
+ } else {
546
+ $changed |= self::_update_plugin_option( 'enclosure', stripslashes( $_REQUEST[ 'mla_csv_data_source_options' ]['enclosure'] ) );
547
+ }
548
+
549
+ if ( empty( $_REQUEST[ 'mla_csv_data_source_options' ]['escape'] ) ) {
550
+ // An empty escape character is allowed as of PHP 7.4; is disables the escape mechanism.
551
+ if ( version_compare( phpversion(), '7.4.0', '>=' ) ) {
552
+ $changed |= self::_update_plugin_option( 'escape', '' );
553
+ } else {
554
+ $changed |= self::_update_plugin_option( 'escape', self::$_default_settings['escape'] );
555
+ }
556
+ } else {
557
+ $changed |= self::_update_plugin_option( 'escape', stripslashes( $_REQUEST[ 'mla_csv_data_source_options' ]['escape'] ) );
558
+ }
559
+
560
+ if ( $changed ) {
561
+ // No reason to save defaults in the database
562
+ if ( self::$_settings === self::$_default_settings ) {
563
+ delete_option( self::SLUG_PREFIX . '-settings' );
564
+ } else {
565
+ $changed = update_option( self::SLUG_PREFIX . '-settings', self::$_settings, false );
566
+ }
567
+
568
+ if ( $changed ) {
569
+ $page_content['message'] = "Settings have been updated.";
570
+ } else {
571
+ $page_content['message'] = "Settings update failed.";
572
+ }
573
+ }
574
+
575
+ if ( false === self::_validate_match_selection( false ) ) {
576
+ $page_content['message'] .= "<br />WARNING: Match variable not found in source file.";
577
+ }
578
+
579
+ return $page_content;
580
+ } // _save_setting_changes
581
+
582
+ /**
583
+ * Assemble the in-memory representation of the custom feed settings
584
+ *
585
+ * @since 1.00
586
+ *
587
+ * @param boolean $force_refresh Optional. Force a reload of rules. Default false.
588
+ * @return boolean Success (true) or failure (false) of the operation
589
+ */
590
+ private static function _get_plugin_option_settings( $force_refresh = false ) {
591
+ if ( false == $force_refresh && NULL != self::$_settings ) {
592
+ return true;
593
+ }
594
+
595
+ // Update the plugin options from the wp_options table or set defaults
596
+ self::$_settings = get_option( self::SLUG_PREFIX . '-settings' );
597
+ if ( !is_array( self::$_settings ) ) {
598
+ self::$_settings = self::$_default_settings;
599
+ }
600
+
601
+ return true;
602
+ } // _get_plugin_option_settings
603
+
604
+ /**
605
+ * In-memory representation of the option settings
606
+ *
607
+ * @since 1.00
608
+ *
609
+ * @var array $_settings {
610
+ * @type boolean $assign_parents Assign all terms in path, not just the last (leaf) term
611
+ * @type boolean $assign_rule_parent Assign the Rule Parent (if any) in addition to terms in path
612
+ * @type string $path_delimiter The delimiter that separates path components
613
+ * }
614
+ */
615
+ private static $_settings = NULL;
616
+
617
+ /**
618
+ * Default processing options
619
+ *
620
+ * @since 1.00
621
+ *
622
+ * @var array
623
+ */
624
+ private static $_default_settings = array (
625
+ 'source' => 0,
626
+ 'match' => 'id',
627
+ 'delimiter' => ',',
628
+ 'enclosure' => '"',
629
+ 'escape' => '\\',
630
+ );
631
+
632
+ /**
633
+ * Get a custom feed option setting
634
+ *
635
+ * @since 1.00
636
+ *
637
+ * @param string $name Option name
638
+ *
639
+ * @return mixed Option value, if it exists else NULL
640
+ */
641
+ private static function _get_plugin_option( $name ) {
642
+ if ( !self::_get_plugin_option_settings() ) {
643
+ return NULL;
644
+ }
645
+
646
+ if ( !isset( self::$_settings[ $name ] ) ) {
647
+ return NULL;
648
+ }
649
+
650
+ return self::$_settings[ $name ];
651
+ } // _get_plugin_option
652
+
653
+ /**
654
+ * Update a custom feed option setting
655
+ *
656
+ * @since 1.00
657
+ *
658
+ * @param string $name Option name
659
+ * @param mixed $new_value Option value
660
+ *
661
+ * @return mixed True if option value changed, false if value unchanged, NULL if failure
662
+ */
663
+ private static function _update_plugin_option( $name, $new_value ) {
664
+ if ( !self::_get_plugin_option_settings() ) {
665
+ return NULL;
666
+ }
667
+
668
+ $old_value = isset( self::$_settings[ $name ] ) ? self::$_settings[ $name ] : NULL;
669
+
670
+ if ( $new_value === $old_value ) {
671
+ return false;
672
+ }
673
+
674
+ self::$_settings[ $name ] = $new_value;
675
+ return true;
676
+ } // _update_plugin_option
677
+
678
+ /**
679
+ * In-memory representation of the CSV variables,
680
+ * indexed by the "match" column value; ID, Base Name or File Name.
681
+ *
682
+ * @since 1.00
683
+ *
684
+ * @var array $_csv_variables { $match_value =>
685
+ * @type array $variables The item's value for each data source, except for $match_value
686
+ * }
687
+ */
688
+ private static $_csv_variables = NULL;
689
+
690
+ /**
691
+ * In-memory representation of the CSV variable namess, from the
692
+ * first line of the file. Indexed by column position in the CSV file.
693
+ *
694
+ * @since 1.00
695
+ *
696
+ * @var array $_csv_variables { $index =>
697
+ * @type array $names The variable name for each data source
698
+ * }
699
+ */
700
+ private static $_csv_variable_names = NULL;
701
+
702
+ /**
703
+ * Name of the "match" variable
704
+ *
705
+ * @since 1.00
706
+ *
707
+ * @var string "ID", ".ID", "Base Name" or "File Name"
708
+ */
709
+ private static $_csv_match_variable= '';
710
+
711
+ /**
712
+ * Name of the "match" variable
713
+ *
714
+ * @since 1.00
715
+ *
716
+ * @var mixed index of CSV match variable, if found, else false.
717
+ */
718
+ private static $_csv_match_index = false;
719
+
720
+ /**
721
+ * Verify existance of match variable in the CSV file
722
+ *
723
+ * @since 1.00
724
+ *
725
+ * @param boolean Optional, Use existing values, if present. Default true.
726
+ *
727
+ * @return boolean True if variable exists in file else false.
728
+ */
729
+ private static function _validate_match_selection( $use_existing = true ) {
730
+ self::_load_csv_file( $use_existing, true );
731
+
732
+ if ( !empty( self::$_csv_variable_names ) ) {
733
+ $match = self::_get_plugin_option('match');
734
+
735
+ switch ( $match ) {
736
+ case 'id':
737
+ if ( false !== array_search( 'ID', self::$_csv_variable_names ) ) {
738
+ return true;
739
+ } elseif ( false !== array_search( '.ID', self::$_csv_variable_names ) ) {
740
+ // Special case; Excel does not allow "ID" as the first column name
741
+ return true;
742
+ }
743
+ break;
744
+ case 'base_file':
745
+ if ( false !== array_search( 'Base File', self::$_csv_variable_names ) ) {
746
+ return true;
747
+ }
748
+ break;
749
+ case 'file_name':
750
+ if ( false !== array_search( 'File Name', self::$_csv_variable_names ) ) {
751
+ return true;
752
+ }
753
+ break;
754
+ }
755
+ }
756
+
757
+ return false;
758
+ } // _validate_match_selection
759
+
760
+ /**
761
+ * Load a CSV File into memory
762
+ *
763
+ * @since 1.00
764
+ *
765
+ * @param boolean Optional, Use existing values, if present. Default true.
766
+ * @param boolean Optional, Load names only, from first line of the file. Default false.
767
+ */
768
+ private static function _load_csv_file( $use_existing = true, $names_only = false ) {
769
+ if ( $use_existing && !empty( self::$_csv_variables ) ) {
770
+ return;
771
+ }
772
+
773
+ // Populate if possible else no values available
774
+ self::$_csv_variables = array();
775
+ self::$_csv_variable_names = array();
776
+ self::$_csv_match_variable = '';
777
+ self::$_csv_match_index = false;
778
+
779
+ $ID = self::_get_plugin_option('source');
780
+ $match = self::_get_plugin_option('match');
781
+ $delimiter = self::_get_plugin_option('delimiter');
782
+ $enclosure = self::_get_plugin_option('enclosure');
783
+ $escape = self::_get_plugin_option('escape');
784
+
785
+ // Find the file attached to the selected item
786
+ $path = get_attached_file( $ID );
787
+
788
+ if ( !empty( $path ) ) {
789
+ $handle = fopen( $path, "r" );
790
+ if ( false !== $handle ) {
791
+ $match_index = false;
792
+ self::$_csv_variable_names = fgetcsv( $handle, 0, $delimiter, $enclosure, $escape );
793
+
794
+ if ( ( false === $names_only) && ( !empty( self::$_csv_variable_names ) ) ) {
795
+ switch ( $match ) {
796
+ case 'id':
797
+ $match_index = array_search( 'ID', self::$_csv_variable_names );
798
+ if ( false === $match_index ) {
799
+ // Special case; Excel does not allow "ID" as the first column name
800
+ $match_index = array_search( '.ID', self::$_csv_variable_names );
801
+ }
802
+ break;
803
+ case 'base_file':
804
+ $match_index = array_search( 'Base File', self::$_csv_variable_names );
805
+ break;
806
+ case 'file_name':
807
+ $match_index = array_search( 'File Name', self::$_csv_variable_names );
808
+ break;
809
+ } // case $match
810
+ } // have variable names
811
+
812
+ // Load the file if we have a valid match variable
813
+ if ( false !== $match_index ) {
814
+ self::$_csv_match_variable = $match;
815
+ self::$_csv_match_index = $match_index;
816
+
817
+ while ( false !== ( $data = fgetcsv( $handle, 0, $delimiter, $enclosure, $escape ) ) ) {
818
+ if ( 'id' === $match ) {
819
+ $match_value = absint( $data[ $match_index ] );
820
+ } else {
821
+ $match_value = $data[ $match_index ];
822
+ }
823
+
824
+ // Don't store the match value twice
825
+ unset( $data[ $match_index ] );
826
+
827
+ self::$_csv_variables[ $match_value ] = $data;
828
+ }
829
+ }
830
+
831
+ fclose($handle);
832
+ } // file exists
833
+ } // !empty( $path )
834
+ } // _load_csv_file
835
+
836
+ /**
837
+ * Find CSV variables for a given Media Library item
838
+ *
839
+ * @since 1.00
840
+ *
841
+ * @param integer attachment ID for attachment-specific values
842
+ *
843
+ * @return mixed array of CSV variables, if found, else false
844
+ */
845
+ private static function _csv_search( $post_id ) {
846
+ switch ( self::$_csv_match_variable ) {
847
+ case 'id':
848
+ $key = $post_id;
849
+ break;
850
+ case 'base_file':
851
+ $key = get_post_meta( $post_id, '_wp_attached_file', true );
852
+ break;
853
+ case 'file_name':
854
+ $pathinfo = pathinfo( get_post_meta( $post_id, '_wp_attached_file', true ) );
855
+ $key = $pathinfo['basename'];
856
+ break;
857
+ default:
858
+ $key = '';
859
+ } // case $match
860
+
861
+ if ( isset( self::$_csv_variables[ $key ] ) ) {
862
+ $values = self::$_csv_variables[ $key ];
863
+ // Restore the match value to the array
864
+ $values[ self::$_csv_match_index ] = (string) $key;
865
+ return $values;
866
+ }
867
+
868
+ return false;
869
+ } // _csv_search
870
+
871
+ /**
872
+ * MLA Expand Custom Prefix Filter
873
+ *
874
+ * Gives you an opportunity to generate your custom data value when a parameter's prefix value is not recognized.
875
+ *
876
+ * @since 1.00
877
+ *
878
+ * @param string NULL, indicating that by default, no custom value is available
879
+ * @param string the data-source name
880
+ * @param array data-source components; prefix (empty), value, option, format and args (if present)
881
+ * @param array values from the query, if any, e.g. shortcode parameters
882
+ * @param array item-level markup template values, if any
883
+ * @param integer attachment ID for attachment-specific values
884
+ * @param boolean for option 'multi', retain existing values
885
+ * @param string default option value
886
+ */
887
+ public static function mla_expand_custom_prefix( $custom_value, $key, $value, $query, $markup_values, $post_id, $keep_existing, $default_option ) {
888
+ static $match_cache = null;
889
+
890
+ if ( 'csv' !== strtolower( $value['prefix'] ) ) {
891
+ return $custom_value;
892
+ }
893
+
894
+ if ( is_null( $match_cache ) ) {
895
+ self::_load_csv_file();
896
+ $match_cache = array();
897
+ }
898
+
899
+ // Look for field/value qualifier
900
+ $match_count = preg_match( '/^(.+)\((.+)\)/', $value['value'], $matches );
901
+ if ( $match_count ) {
902
+ $field = $matches[1];
903
+ $qualifier = $matches[2];
904
+ } else {
905
+ $field = $value['value'];
906
+ $qualifier = '';
907
+ }
908
+
909
+ // Set debug mode
910
+ $debug_active = isset( $query['mla_debug'] ) && ( 'false' !== trim( strtolower( $query['mla_debug'] ) ) );
911
+ if ( $debug_active ) {
912
+ $old_mode = MLACore::mla_debug_mode( 'log' );
913
+ MLACore::mla_debug_add( __LINE__ . " MLACSVDataSourceExample::mla_expand_custom_prefix( {$key}, {$post_id}, {$keep_existing}, {$default_option} ) \$_REQUEST = " . var_export( $_REQUEST, true ) );
914
+ MLACore::mla_debug_add( __LINE__ . " MLACSVDataSourceExample::mla_expand_custom_prefix( {$field}, {$qualifier} ) \$value = " . var_export( $value, true ) );
915
+ MLACore::mla_debug_add( __LINE__ . " MLACSVDataSourceExample::mla_expand_custom_prefix() \$query = " . var_export( $query, true ) );
916
+ MLACore::mla_debug_add( __LINE__ . " MLACSVDataSourceExample::mla_expand_custom_prefix() \$markup_values = " . var_export( $markup_values, true ) );
917
+ }
918
+
919
+ $match_index = array_search( $field, self::$_csv_variable_names );
920
+
921
+ if ( false === $match_index ) {
922
+ return '';
923
+ }
924
+
925
+ $csv_variables = false;
926
+ if ( isset( $match_cache[ $post_id ] ) ) {
927
+ $csv_variables = $match_cache[ $post_id ];
928
+ } else {
929
+ $csv_variables = self::_csv_search( $post_id );
930
+ if ( false !== $csv_variables ) {
931
+ $match_cache[ $post_id ] = $csv_variables;
932
+ }
933
+ }
934
+
935
+ if ( ( false === $csv_variables ) || empty( $csv_variables[ $match_index ] ) ){
936
+ return '';
937
+ }
938
+
939
+ return $csv_variables[ $match_index ];
940
+ } // mla_expand_custom_prefix
941
+ } //MLACSVDataSourceExample
942
+
943
+ // Install the filters at an early opportunity
944
+ add_action('init', 'MLACSVDataSourceExample::initialize');
945
+ ?>
examples/plugins/mla-custom-feed-example/admin-settings-page.tpl CHANGED
@@ -62,17 +62,17 @@
62
  <tr class="form-field custom-feed-title-wrap">
63
  <th scope="row"> <label for="mla-custom-feed-title">Title</label>
64
  </th>
65
- <td><input name="mla_edit_custom_feed[title]" id="mla-custom-feed-title" type="text" value="" /></td>
66
  </tr>
67
  <tr class="form-field custom-feed-link-wrap">
68
  <th scope="row"> <label for="mla-custom-feed-link">Link</label>
69
  </th>
70
- <td><input name="mla_edit_custom_feed[link]" id="mla-custom-feed-link" type="text" value="" /></td>
71
  </tr>
72
  <tr class="form-field custom-feed-description-wrap">
73
  <th scope="row"> <label for="mla-custom-feed-description">Description</label>
74
  </th>
75
- <td><input name="mla_edit_custom_feed[description]" id="mla-custom-feed-description" type="text" value="" /></td>
76
  </tr>
77
  <tr class="form-field custom-feed-last_build_date-wrap">
78
  <th scope="row"> <label for="mla-custom-feed-last_build_date">Last Built</label>
@@ -601,7 +601,7 @@ You can use all of the WordPress template tags to access item values within the
601
  </p>
602
  <h4>Theme-based Templates</h4>
603
  <p>
604
- You can create your own template file and add it to your theme or child theme. Defining your own template file goves you complete control over the feed content.
605
  </p>
606
  <p>
607
  If you define your own template file you can substitute it for the default file by filling in the "Tpl. Slug" and optionally the "Tpl. Name" fields in the Add New Theme area. For example, let's say you have created a template file:<br />&nbsp;<br />
62
  <tr class="form-field custom-feed-title-wrap">
63
  <th scope="row"> <label for="mla-custom-feed-title">Title</label>
64
  </th>
65
+ <td><input name="mla_edit_custom_feed[title]" id="mla-custom-feed-title" type="text" value="[+title+]" /></td>
66
  </tr>
67
  <tr class="form-field custom-feed-link-wrap">
68
  <th scope="row"> <label for="mla-custom-feed-link">Link</label>
69
  </th>
70
+ <td><input name="mla_edit_custom_feed[link]" id="mla-custom-feed-link" type="text" value="[+link+]" /></td>
71
  </tr>
72
  <tr class="form-field custom-feed-description-wrap">
73
  <th scope="row"> <label for="mla-custom-feed-description">Description</label>
74
  </th>
75
+ <td><input name="mla_edit_custom_feed[description]" id="mla-custom-feed-description" type="text" value="[+description+]" /></td>
76
  </tr>
77
  <tr class="form-field custom-feed-last_build_date-wrap">
78
  <th scope="row"> <label for="mla-custom-feed-last_build_date">Last Built</label>
601
  </p>
602
  <h4>Theme-based Templates</h4>
603
  <p>
604
+ You can create your own template file and add it to your theme or child theme. Defining your own template file gives you complete control over the feed content.
605
  </p>
606
  <p>
607
  If you define your own template file you can substitute it for the default file by filling in the "Tpl. Slug" and optionally the "Tpl. Name" fields in the Add New Theme area. For example, let's say you have created a template file:<br />&nbsp;<br />
examples/plugins/mla-custom-feed-example/mla-custom-feed-example.php CHANGED
@@ -18,7 +18,7 @@
18
  * https://wordpress.org/support/topic/create-a-feed-out-of-the-media-library/
19
  *
20
  * @package MLA Custom Feed Example
21
- * @version 1.11
22
  */
23
 
24
  /*
@@ -26,10 +26,10 @@ Plugin Name: MLA Custom Feed Example
26
  Plugin URI: http://davidlingren.com/
27
  Description: Configures and processes custom RSS2 feeds for Media Library items
28
  Author: David Lingren
29
- Version: 1.11
30
  Author URI: http://davidlingren.com/
31
 
32
- Copyright 2017 David Lingren
33
 
34
  This program is free software; you can redistribute it and/or modify
35
  it under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ class MLACustomFeedExample {
60
  *
61
  * @var string
62
  */
63
- const CURRENT_VERSION = '1.11';
64
 
65
  /**
66
  * Slug prefix for registering and enqueueing submenu pages, style sheets, scripts and settings
@@ -351,28 +351,28 @@ class MLACustomFeedExample {
351
  'old_slug' => $item['slug'],
352
  '_wpnonce' => wp_nonce_field( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME, true, false ),
353
 
354
- 'slug' => $item['slug'],
355
  'rss_selected' => '', // Set below
356
  'rss2_selected' => '',
357
  'rss_http_selected' => '',
358
- 'title' => $item['title'],
359
- 'link' => $item['link'],
360
- 'description' => $item['description'],
361
  'current_selected' => 'current' === $item['last_build_date'] ? 'selected=selected' : '',
362
  'modified_selected' => 'modified' === $item['last_build_date'] ? 'selected=selected' : '',
363
- 'ttl' => !empty( $item['ttl'] ) ? $item['ttl'] : '',
364
  'none_selected' => '', // Set below
365
  'hourly_selected' => '',
366
  'daily_selected' => '',
367
  'weekly_selected' => '',
368
  'monthly_selected' => '',
369
  'yearly_selected' => '',
370
- 'update_frequency' => !empty( $item['update_frequency'] ) ? $item['update_frequency'] : '',
371
- 'update_base' => $item['update_base'],
372
- 'taxonomies' => $item['taxonomies'],
373
- 'parameters' => $item['parameters'],
374
- 'template_slug' => $item['template_slug'],
375
- 'template_name' => $item['template_name'],
376
 
377
  'active_selected' => $item['active'] ? 'selected=selected' : '',
378
  'inactive_selected' => $item['active'] ? '' : 'selected=selected',
18
  * https://wordpress.org/support/topic/create-a-feed-out-of-the-media-library/
19
  *
20
  * @package MLA Custom Feed Example
21
+ * @version 1.12
22
  */
23
 
24
  /*
26
  Plugin URI: http://davidlingren.com/
27
  Description: Configures and processes custom RSS2 feeds for Media Library items
28
  Author: David Lingren
29
+ Version: 1.12
30
  Author URI: http://davidlingren.com/
31
 
32
+ Copyright 2017-2020 David Lingren
33
 
34
  This program is free software; you can redistribute it and/or modify
35
  it under the terms of the GNU General Public License as published by
60
  *
61
  * @var string
62
  */
63
+ const CURRENT_VERSION = '1.12';
64
 
65
  /**
66
  * Slug prefix for registering and enqueueing submenu pages, style sheets, scripts and settings
351
  'old_slug' => $item['slug'],
352
  '_wpnonce' => wp_nonce_field( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME, true, false ),
353
 
354
+ 'slug' => esc_attr( $item['slug'] ),
355
  'rss_selected' => '', // Set below
356
  'rss2_selected' => '',
357
  'rss_http_selected' => '',
358
+ 'title' => esc_attr( $item['title'] ),
359
+ 'link' => esc_attr( $item['link'] ),
360
+ 'description' => esc_attr( $item['description'] ),
361
  'current_selected' => 'current' === $item['last_build_date'] ? 'selected=selected' : '',
362
  'modified_selected' => 'modified' === $item['last_build_date'] ? 'selected=selected' : '',
363
+ 'ttl' => !empty( $item['ttl'] ) ? esc_attr( $item['ttl'] ) : '',
364
  'none_selected' => '', // Set below
365
  'hourly_selected' => '',
366
  'daily_selected' => '',
367
  'weekly_selected' => '',
368
  'monthly_selected' => '',
369
  'yearly_selected' => '',
370
+ 'update_frequency' => !empty( $item['update_frequency'] ) ? esc_attr( $item['update_frequency'] ) : '',
371
+ 'update_base' => esc_attr( $item['update_base'] ),
372
+ 'taxonomies' => esc_attr( $item['taxonomies'] ),
373
+ 'parameters' => esc_attr( $item['parameters'] ),
374
+ 'template_slug' => esc_attr( $item['template_slug'] ),
375
+ 'template_name' => esc_attr( $item['template_name'] ),
376
 
377
  'active_selected' => $item['active'] ? 'selected=selected' : '',
378
  'inactive_selected' => $item['active'] ? '' : 'selected=selected',
examples/plugins/mla-gallery-download-archive.php ADDED
@@ -0,0 +1,369 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Downloads gallery items as a ZIP archive
4
+ *
5
+ * Generates a hyperlink that, when clicked, assembles and downloads a ZIP archive containing
6
+ * the attached files for the gallery items. All of the [mla_gallery] data selection parameters
7
+ * are accepted by this plugin and passed to the MLAShortcode_Support::mla_get_shortcode_attachments()
8
+ * function to populate the "gallery".
9
+ *
10
+ * Example: [mla_download_archive archive_name="My Archive" attachment_category=abc]
11
+ *
12
+ * Shortcode parameters for this plugin:
13
+ *
14
+ * archive_name - REQUIRED; prefixes the file name for the ZIP archive.
15
+ *
16
+ * link_attributes - adds one or more HTML attributes to the hyperlink.
17
+ *
18
+ * link_class - adds an HTML "class" attribute to the hyperlink.
19
+ *
20
+ * link_text - replaces the text displayed for the hyperlink. Default is "Download" followed by the archive_name.
21
+ *
22
+ * allow_empty_archive - 'true' to allow download of an empty ZIP archive, 'false' to display nolink_text; default 'true'.
23
+ *
24
+ * nolink_text - replaces the hyperlink with a text message for an empty "gallery".
25
+ *
26
+ *
27
+ * Created for support topic "Download of a Gallery"
28
+ * opened on 6/7/2020 by "ernstwg"
29
+ * https://wordpress.org/support/topic/download-of-a-gallery/
30
+ *
31
+ * @package MLA Gallery Download Archive
32
+ * @version 1.02
33
+ */
34
+
35
+ /*
36
+ Plugin Name: MLA Gallery Download Archive
37
+ Plugin URI: http://davidlingren.com/
38
+ Description: Downloads gallery items as a ZIP archive
39
+ Author: David Lingren
40
+ Version: 1.02
41
+ Author URI: http://davidlingren.com/
42
+
43
+ Copyright 2020 David Lingren
44
+
45
+ This program is free software; you can redistribute it and/or modify
46
+ it under the terms of the GNU General Public License as published by
47
+ the Free Software Foundation; either version 2 of the License, or
48
+ (at your option) any later version.
49
+
50
+ This program is distributed in the hope that it will be useful,
51
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
52
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
53
+ GNU General Public License for more details.
54
+
55
+ You can get a copy of the GNU General Public License by writing to the
56
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
57
+ */
58
+
59
+ /**
60
+ * Class MLA Gallery Download Archive downloads gallery items as a ZIP archive
61
+ *
62
+ * @package MLA Gallery Download Archive
63
+ * @since 1.00
64
+ */
65
+ class MLAGalleryDownloadArchive {
66
+ /**
67
+ * Name the shortcode
68
+ */
69
+ const SHORTCODE_NAME = 'mla_download_archive';
70
+
71
+ /**
72
+ * Initialization function, similar to __construct()
73
+ *
74
+ * Adds the 'mla_featured_field' shortcode to WordPress
75
+ *
76
+ * @since 1.00
77
+ *
78
+ * @return void
79
+ */
80
+ public static function initialize() {
81
+ // Are we processing the download link?
82
+ if( defined('DOING_AJAX') && DOING_AJAX ) {
83
+ // Defined here because the "admin_init" action is not called for item transfers
84
+ if ( isset( $_REQUEST['action'] ) && self::SHORTCODE_NAME === $_REQUEST['action'] ) {
85
+ add_action( 'wp_ajax_' . self::SHORTCODE_NAME, 'MLAGalleryDownloadArchive::mla_download_archive_action' );
86
+ add_action( 'wp_ajax_nopriv_' . self::SHORTCODE_NAME, 'MLAGalleryDownloadArchive::mla_download_archive_action' );
87
+ }
88
+ } else {
89
+ add_shortcode( self::SHORTCODE_NAME, 'MLAGalleryDownloadArchive::mla_download_archive' );
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Make sure $attr is an array, repair line-break damage, merge with $content,
95
+ * expand page-level, request: and query: substitution parameters
96
+ *
97
+ * @since 1.01
98
+ *
99
+ * @param mixed $attr Array or string containing shortcode attributes
100
+ * @param string $content Optional content for enclosing shortcodes
101
+ *
102
+ * @return array clean attributes array
103
+ */
104
+ private static function _prepare_attributes( $attr, $content = NULL ) {
105
+ global $post;
106
+
107
+ if ( !class_exists( 'MLAShortcode_Support' ) ) {
108
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-shortcode-support.php' );
109
+ }
110
+
111
+ // Create a clean array of shortcode parameters
112
+ $attr = MLAShortcode_Support::mla_validate_attributes( $attr, $content );
113
+
114
+ // Page values are already known, and can be used in data selection parameters
115
+ $page_values = array(
116
+ 'id' => $post->ID,
117
+ 'page_ID' => $post->ID,
118
+ 'page_author' => $post->post_author,
119
+ 'page_date' => $post->post_date,
120
+ 'page_content' => $post->post_content,
121
+ 'page_title' => $post->post_title,
122
+ 'page_excerpt' => $post->post_excerpt,
123
+ 'page_status' => $post->post_status,
124
+ 'page_name' => $post->post_name,
125
+ 'page_modified' => $post->post_modified,
126
+ 'page_parent' => $post->post_parent,
127
+ 'page_guid' => $post->guid,
128
+ 'page_type' => $post->post_type,
129
+ 'page_mime_type' => $post->post_mime_type,
130
+ 'page_url' => get_page_link(),
131
+ );
132
+
133
+ // Look for page-level, 'request:' and 'query:' substitution parameters
134
+ foreach ( $attr as $attr_key => $attr_value ) {
135
+ $attr_value = str_replace( '{+', '[+', str_replace( '+}', '+]', $attr_value ) );
136
+ $replacement_values = MLAData::mla_expand_field_level_parameters( $attr_value, $attr, $page_values );
137
+ $attr[ $attr_key ] = MLAData::mla_parse_template( $attr_value, $replacement_values );
138
+ }
139
+
140
+ return $attr;
141
+ }
142
+
143
+ /**
144
+ * Ajax handler to download an archie of Media Library items
145
+ *
146
+ * @since 1.00
147
+ *
148
+ * @return void echo HTML for file streaming or download, then exit()
149
+ */
150
+ public static function mla_download_archive_action() {
151
+ global $post;
152
+
153
+ $default_arguments = array(
154
+ 'mla_post' => 0,
155
+ 'mla_index' => 0,
156
+ );
157
+
158
+ $arguments = shortcode_atts( $default_arguments, $_REQUEST );
159
+
160
+ $mla_post = absint( $arguments['mla_post'] );
161
+ $mla_index = absint( $arguments['mla_index'] );
162
+ $post = get_post( $mla_post );
163
+
164
+ if ( is_null( $post ) ) {
165
+ exit;
166
+ }
167
+
168
+ // Recover the original shortcode parameters from the post/page content
169
+ $shortcode_regex = get_shortcode_regex( array( MLAGalleryDownloadArchive::SHORTCODE_NAME ) );
170
+ if ( preg_match_all( '/'. $shortcode_regex .'/s', $post->post_content, $matches )
171
+ && array_key_exists( 2, $matches )
172
+ && isset( $matches[2][ $mla_index ] ) ) {
173
+ if ( !class_exists( 'MLAShortcode_Support' ) ) {
174
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-shortcode-support.php' );
175
+ }
176
+
177
+ // Create a clean array of shortcode parameters
178
+ $attr = self::_prepare_attributes( $matches[3][ $mla_index ], $matches[5][ $mla_index ] );
179
+ }
180
+
181
+ // Populate the "gallery"
182
+ $attachments = MLAShortcode_Support::mla_get_shortcode_attachments( $mla_post, $attr, false );
183
+
184
+ /*
185
+ * Create unique local names to handle the case where the same file name
186
+ * appears in multiple year/month/ directories.
187
+ */
188
+ $file_names = array();
189
+ foreach ( $attachments as $index => $attachment ) {
190
+ $file_name = get_attached_file( $attachment->ID );
191
+ $path_info = pathinfo( $file_name );
192
+ $local_name = $path_info['basename'];
193
+ $suffix = 0;
194
+ while( array_key_exists( $local_name, $file_names ) ) {
195
+ $suffix++;
196
+ $local_name = $path_info['filename'] . $suffix . '.' . $path_info['extension'];
197
+ }
198
+
199
+ $file_names[ $local_name ] = $file_name;
200
+ }
201
+
202
+ // Create the ZIP archive
203
+ $upload_dir = wp_upload_dir();
204
+ $prefix = ( !empty( $attr['archive_name'] ) ) ? sanitize_title_with_dashes( trim( $attr['archive_name'] ) ) : MLAGalleryDownloadArchive::SHORTCODE_NAME;
205
+ $date = date("Ymd_B");
206
+ $archive_name = $upload_dir['basedir'] . '/' . "{$prefix}_{$date}.zip";
207
+
208
+ if ( file_exists( $archive_name ) ) {
209
+ @unlink( $archive_name );
210
+ }
211
+
212
+ $mla_error = '';
213
+ $zip = new ZipArchive();
214
+ if ( true !== $zip->open( $archive_name, ZIPARCHIVE::CREATE ) ) {
215
+ $mla_error = sprintf( 'ERROR: The ZIP archive ( %1$s ) could not be created.', $archive_name );
216
+ } else {
217
+ foreach( $file_names as $local_name => $file_name ) {
218
+ if ( true !== $zip->addFile( $file_name, $local_name ) ) {
219
+ $mla_error = sprintf( 'ERROR: The file ( %1$s ) could not be added to the ZIP archive.', $file_name );
220
+ break;
221
+ }
222
+ } // foreach file
223
+
224
+ if ( true !== $zip->close() ) {
225
+ $mla_error = sprintf( 'ERROR: The ZIP archive ( %1$s ) could not be closed.', $archive_name );
226
+ }
227
+ }
228
+
229
+ if ( empty( $mla_error ) ) {
230
+ if ( file_exists( $archive_name ) ) {
231
+ $filemtime = filemtime ( $archive_name );
232
+ $filesize = filesize( $archive_name );
233
+ } else {
234
+ $filemtime = time();
235
+ $filesize = 0;
236
+ }
237
+
238
+ header('Pragma: public'); // required
239
+ header('Expires: 0'); // no cache
240
+ header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
241
+ header('Last-Modified: '.gmdate ( 'D, d M Y H:i:s', $filemtime ).' GMT');
242
+ header('Cache-Control: private',false);
243
+ header('Content-Type: '.$request['mla_download_type']);
244
+ header('Content-Disposition: attachment; filename="'.basename( $archive_name ).'"');
245
+ header('Content-Transfer-Encoding: binary');
246
+ header('Content-Length: '.$filesize); // provide file size
247
+ header('Connection: close');
248
+
249
+ if ( 0 < $filesize ) {
250
+ readfile( $archive_name );
251
+ }
252
+
253
+ if ( isset( $request['mla_download_disposition'] ) && 'delete' == $request['mla_download_disposition'] ) {
254
+ @unlink( $archive_name );
255
+ }
256
+ } else {
257
+ echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
258
+ echo '<html xmlns="http://www.w3.org/1999/xhtml">';
259
+ echo '<head>';
260
+ echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
261
+ echo '<title>Download Error</title>';
262
+ echo '</head>';
263
+ echo '';
264
+ echo '<body>';
265
+ echo $mla_error;
266
+ echo '</body>';
267
+ echo '</html> ';
268
+ }
269
+
270
+ exit();
271
+ }
272
+
273
+ /**
274
+ * WordPress Shortcode; downloads gallery items as a ZIP archive
275
+ *
276
+ * @since 1.00
277
+ *
278
+ * @param array shortcode parameters; defaults ( 'field_name' => DEFAULT_FIELD, 'ids' => '' )
279
+ *
280
+ * @return string post/page content to replace the shortcode
281
+ */
282
+ public static function mla_download_archive( $attr, $content = NULL ) {
283
+ global $post;
284
+
285
+ $default_arguments = array(
286
+ 'archive_name' => '',
287
+ 'link_attributes' => '',
288
+ 'link_class' => '',
289
+ 'link_text' => '',
290
+ 'allow_empty_archive' => 'true',
291
+ 'nolink_text' => '',
292
+ );
293
+
294
+ // Create a clean array of shortcode parameters
295
+ $attr = self::_prepare_attributes( $attr, $content );
296
+
297
+ // Combine parameters with defaults
298
+ $arguments = shortcode_atts( $default_arguments, $attr );
299
+
300
+ // archive_name is required and must be unique in the post/page
301
+ if ( empty( $arguments['archive_name'] ) ) {
302
+ return '';
303
+ }
304
+
305
+ $archive_title = $arguments['archive_name'];
306
+ $archive_name = sanitize_title_with_dashes( trim( $archive_title ) );
307
+
308
+ $link_attributes = trim( $arguments['link_attributes'] );
309
+ if ( !empty( $link_attributes ) ) {
310
+ $link_attributes .= ' ';
311
+ }
312
+
313
+ $link_class = trim( $arguments['link_class'] );
314
+ if ( !empty( $link_class ) ) {
315
+ $link_class .= ' ';
316
+ }
317
+
318
+ $link_text = trim( $arguments['link_text'] );
319
+ if ( empty( $link_text ) ) {
320
+ $link_text = "Download {$archive_title}";
321
+ }
322
+
323
+ $allow_empty_archive = 'true' === strtolower( trim( $arguments['allow_empty_archive'] ) );
324
+
325
+ // Find all of the shortcodes in the post/page content
326
+ $shortcode_regex = get_shortcode_regex( array( MLAGalleryDownloadArchive::SHORTCODE_NAME ) );
327
+ if ( preg_match_all( '/'. $shortcode_regex .'/s', $post->post_content, $matches )
328
+ && array_key_exists( 2, $matches )
329
+ && in_array( MLAGalleryDownloadArchive::SHORTCODE_NAME, $matches[2] ) ) {
330
+ foreach ( $matches[0] as $index => $match ) {
331
+ // Match to this specific shortcode instance
332
+ if ( false === strpos( $match, 'archive_name' ) || false === strpos( $match, $archive_title ) ) {
333
+ continue;
334
+ }
335
+
336
+ // Check for the empty case, if not allowed
337
+ if ( !$allow_empty_archive ) {
338
+ // Create a clean array of shortcode parameters
339
+ $attr = self::_prepare_attributes( $matches[3][ $index ], $matches[5][ $index ] );
340
+ $attachments = MLAShortcode_Support::mla_get_shortcode_attachments( $post->ID, $attr, false );
341
+ if ( empty( $attachments ) ) {
342
+ $nolink_text = trim( $arguments['nolink_text'] );
343
+ if ( empty( $link_text ) ) {
344
+ return '';
345
+ }
346
+
347
+ return $nolink_text;
348
+ } // found empty archive
349
+ } // Prevent empty archive
350
+
351
+ // AJAX-based link for forced downloads
352
+ $args = array_merge( $_REQUEST, array(
353
+ 'action' => 'mla_download_archive',
354
+ 'mla_post' => $post->ID,
355
+ 'mla_index' => $index,
356
+ ) );
357
+
358
+ $url = add_query_arg( $args, admin_url( 'admin-ajax.php' ) );
359
+ return sprintf( '<a %1$s%2$shref="%3$s">%4$s</a>', $link_class, $link_attributes, $url, $link_text );
360
+ } // each matches[0]
361
+ }
362
+
363
+ return '';
364
+ } //mla_download_archive
365
+ } //MLAGalleryDownloadArchive
366
+
367
+ // Install the shortcode at an early opportunity
368
+ add_action('init', 'MLAGalleryDownloadArchive::initialize');
369
+ ?>
examples/plugins/mla-insert-fixit.php CHANGED
@@ -108,14 +108,14 @@ class Insert_Fixit {
108
  const INPUT_ATTACH_ALL = 'attach-all';
109
 
110
  /**
111
- * Make "Attach" tools unconditional, i.e., overwrite existing parent values
112
  *
113
  * @since 1.06
114
  *
115
  * @var boolean
116
  */
117
  private static $reverse_sort = false;
118
- const INPUT_REVERSE_SORT = 'reverse-sort';
119
 
120
  /**
121
  * WordPress version test for $wpdb->esc_like() Vs esc_sql()
@@ -210,7 +210,7 @@ class Insert_Fixit {
210
  // Attach Media Library items
211
  self::$attach_all = isset( $_REQUEST[ self::SLUG_PREFIX . self::INPUT_ATTACH_ALL ] ) ? true : false;
212
  $attach_all_attr = self::$attach_all ? ' checked="checked" ' : ' ';
213
- self::$reverse_sort = isset( $_REQUEST[ self::SLUG_PREFIX . 'first_item' ] ) ? 'highest' === $_REQUEST[ self::SLUG_PREFIX . 'first_item' ] : self::$reverse_sort;
214
  $lowest_attr = self::$reverse_sort ? ' ' : ' selected="selected" ';
215
  $highest_attr = self::$reverse_sort ? ' selected="selected" ' : ' ';
216
 
@@ -296,7 +296,7 @@ class Insert_Fixit {
296
  't1206' => array( 'continue' => '</tr><tr>' ),
297
  't1207' => array( 'continue' => ' <td>&nbsp;</td>' ),
298
  't1208' => array( 'continue' => ' <td>' ),
299
- 't1209' => array( 'continue' => ' <select name="' . self::SLUG_PREFIX . 'first_item">' ),
300
  't1210' => array( 'continue' => ' <option' . $lowest_attr . 'value="lowest">Oldest (lowest ID)</option>' ),
301
  't1211' => array( 'continue' => ' <option' . $highest_attr . 'value="highest">Newest (highest ID)</option>' ),
302
  't1212' => array( 'continue' => ' </select>' ),
@@ -1550,7 +1550,7 @@ class Insert_Fixit {
1550
 
1551
  $examined_posts = count( self::$figcaption_inserts );
1552
  if ( 0 === $examined_posts ) {
1553
- return 'No <figcaption> tags found; nothing updated.';
1554
  }
1555
 
1556
  $figcaption_template = isset( $_REQUEST[ self::SLUG_PREFIX . 'figcaption_template' ] ) ? $_REQUEST[ self::SLUG_PREFIX . 'figcaption_template' ] : '([+post_excerpt+])';
108
  const INPUT_ATTACH_ALL = 'attach-all';
109
 
110
  /**
111
+ * Make "Attach Media Library items" first item the newest item, not the oldest.
112
  *
113
  * @since 1.06
114
  *
115
  * @var boolean
116
  */
117
  private static $reverse_sort = false;
118
+ const INPUT_FIRST_ITEM = 'first-item';
119
 
120
  /**
121
  * WordPress version test for $wpdb->esc_like() Vs esc_sql()
210
  // Attach Media Library items
211
  self::$attach_all = isset( $_REQUEST[ self::SLUG_PREFIX . self::INPUT_ATTACH_ALL ] ) ? true : false;
212
  $attach_all_attr = self::$attach_all ? ' checked="checked" ' : ' ';
213
+ self::$reverse_sort = isset( $_REQUEST[ self::SLUG_PREFIX . self::INPUT_FIRST_ITEM ] ) ? 'highest' === $_REQUEST[ self::SLUG_PREFIX . self::INPUT_FIRST_ITEM ] : self::$reverse_sort;
214
  $lowest_attr = self::$reverse_sort ? ' ' : ' selected="selected" ';
215
  $highest_attr = self::$reverse_sort ? ' selected="selected" ' : ' ';
216
 
296
  't1206' => array( 'continue' => '</tr><tr>' ),
297
  't1207' => array( 'continue' => ' <td>&nbsp;</td>' ),
298
  't1208' => array( 'continue' => ' <td>' ),
299
+ 't1209' => array( 'continue' => ' <select name="' . self::SLUG_PREFIX . self::INPUT_FIRST_ITEM . '">' ),
300
  't1210' => array( 'continue' => ' <option' . $lowest_attr . 'value="lowest">Oldest (lowest ID)</option>' ),
301
  't1211' => array( 'continue' => ' <option' . $highest_attr . 'value="highest">Newest (highest ID)</option>' ),
302
  't1212' => array( 'continue' => ' </select>' ),
1550
 
1551
  $examined_posts = count( self::$figcaption_inserts );
1552
  if ( 0 === $examined_posts ) {
1553
+ return 'No &lt;figcaption&gt; tags found; nothing updated.';
1554
  }
1555
 
1556
  $figcaption_template = isset( $_REQUEST[ self::SLUG_PREFIX . 'figcaption_template' ] ) ? $_REQUEST[ self::SLUG_PREFIX . 'figcaption_template' ] : '([+post_excerpt+])';
examples/plugins/mla-substitution-parameter-hooks-example.php CHANGED
@@ -6,11 +6,13 @@
6
  * - a "parent_terms:" prefix accesses taxonomy terms assigned to an item's parent post/page
7
  * - a "page_terms:" prefix accesses taxonomy terms assigned to the current post/page
8
  * - a "parent:" prefix accesses all of the WP_Post properties, custom fields and the permalink for an item's parent
 
9
  * - an "author:" prefix accesses all of the WP_User properties for an item's author
10
  * - an "conditional:" prefix returns a value when a condition is true, e.g., during the upload process
11
  * - a "wp_query_vars:" prefix accesses all of the "global $wp_query->query_vars" properties
12
  * - a "current_term:" prefix accesses the term named in a $_REQUEST variable
13
  * e.g. {+current_term:taxonomy.default_value(term_field)+}
 
14
  *
15
  * Created for support topic "Parent category tag"
16
  * opened on 5/20/2016 by "Levy":
@@ -44,19 +46,23 @@
44
  * opened on 5/9/2018 by "antonstepichev":
45
  * https://wordpress.org/support/topic/sorting-items-in-tag-cloud-by-parent-child/
46
  *
 
 
 
 
47
  * @package MLA Substitution Parameter Hooks Example
48
- * @version 1.12
49
  */
50
 
51
  /*
52
  Plugin Name: MLA Substitution Parameter Hooks Example
53
  Plugin URI: http://davidlingren.com/
54
- Description: Adds "parent_terms:", "page_terms:", "parent:", "author:", "conditional:", "wp_query_vars" and "current_term" Field-level Substitution Parameters
55
  Author: David Lingren
56
- Version: 1.12
57
  Author URI: http://davidlingren.com/
58
 
59
- Copyright 2016-2018 David Lingren
60
 
61
  This program is free software; you can redistribute it and/or modify
62
  it under the terms of the GNU General Public License as published by
@@ -97,7 +103,7 @@ class MLASubstitutionParameterExample {
97
  // Defined in /media-library-assistant/includes/class-mla-data.php
98
  //add_filter( 'mla_expand_custom_data_source', 'MLASubstitutionParameterExample::mla_expand_custom_data_source', 10, 9 );
99
  add_filter( 'mla_expand_custom_prefix', 'MLASubstitutionParameterExample::mla_expand_custom_prefix', 10, 8 );
100
- //add_filter( 'mla_apply_custom_format', 'MLASubstitutionParameterExample::mla_apply_custom_format', 10, 2 );
101
 
102
  // Defined in /media-library-assistant/includes/class-mla-data-source.php
103
  //add_filter( 'mla_evaluate_custom_data_source', 'MLASubstitutionParameterExample::mla_evaluate_custom_data_source', 10, 5 );
@@ -559,6 +565,21 @@ class MLASubstitutionParameterExample {
559
  public static function mla_apply_custom_format( $value, $args ) {
560
  //error_log( __LINE__ . " MLASubstitutionParameterExample::mla_apply_custom_format( {$value} ) args = " . var_export( $args, true ), 0 );
561
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
562
  return $value;
563
  } // mla_apply_custom_format
564
 
6
  * - a "parent_terms:" prefix accesses taxonomy terms assigned to an item's parent post/page
7
  * - a "page_terms:" prefix accesses taxonomy terms assigned to the current post/page
8
  * - a "parent:" prefix accesses all of the WP_Post properties, custom fields and the permalink for an item's parent
9
+ * - a "page:" prefix accesses the featured image ID of the parent page/post, i.e. [+page:featured+]
10
  * - an "author:" prefix accesses all of the WP_User properties for an item's author
11
  * - an "conditional:" prefix returns a value when a condition is true, e.g., during the upload process
12
  * - a "wp_query_vars:" prefix accesses all of the "global $wp_query->query_vars" properties
13
  * - a "current_term:" prefix accesses the term named in a $_REQUEST variable
14
  * e.g. {+current_term:taxonomy.default_value(term_field)+}
15
+ * - a "ucwords" custom format value uppercases the first character of each word in a string
16
  *
17
  * Created for support topic "Parent category tag"
18
  * opened on 5/20/2016 by "Levy":
46
  * opened on 5/9/2018 by "antonstepichev":
47
  * https://wordpress.org/support/topic/sorting-items-in-tag-cloud-by-parent-child/
48
  *
49
+ * Enhanced for support topic "Auto alt text from field in exif or iptc"
50
+ * opened on 8/1/2020 by "perchera":
51
+ * https://wordpress.org/support/topic/auto-alt-text-from-field-in-exif-or-iptc/
52
+ *
53
  * @package MLA Substitution Parameter Hooks Example
54
+ * @version 1.13
55
  */
56
 
57
  /*
58
  Plugin Name: MLA Substitution Parameter Hooks Example
59
  Plugin URI: http://davidlingren.com/
60
+ Description: Adds "parent_terms:", "page_terms:", "parent:", "author:", "conditional:", "wp_query_vars" and "current_term" Field-level Substitution Parameters and "ucwords" custom format value
61
  Author: David Lingren
62
+ Version: 1.13
63
  Author URI: http://davidlingren.com/
64
 
65
+ Copyright 2016-2020 David Lingren
66
 
67
  This program is free software; you can redistribute it and/or modify
68
  it under the terms of the GNU General Public License as published by
103
  // Defined in /media-library-assistant/includes/class-mla-data.php
104
  //add_filter( 'mla_expand_custom_data_source', 'MLASubstitutionParameterExample::mla_expand_custom_data_source', 10, 9 );
105
  add_filter( 'mla_expand_custom_prefix', 'MLASubstitutionParameterExample::mla_expand_custom_prefix', 10, 8 );
106
+ add_filter( 'mla_apply_custom_format', 'MLASubstitutionParameterExample::mla_apply_custom_format', 10, 2 );
107
 
108
  // Defined in /media-library-assistant/includes/class-mla-data-source.php
109
  //add_filter( 'mla_evaluate_custom_data_source', 'MLASubstitutionParameterExample::mla_evaluate_custom_data_source', 10, 5 );
565
  public static function mla_apply_custom_format( $value, $args ) {
566
  //error_log( __LINE__ . " MLASubstitutionParameterExample::mla_apply_custom_format( {$value} ) args = " . var_export( $args, true ), 0 );
567
 
568
+ if ( 'ucwords' === $args['format'] ) {
569
+ if ( isset( $args['args'] ) ) {
570
+ if ( is_array( $args['args'] ) ) {
571
+ $delimiters = stripslashes( $args['args'][0] );
572
+ } else {
573
+ $delimiters = stripslashes( $args['args'] );
574
+ }
575
+ } else {
576
+ $delimiters = " \t\r\n\f\v";
577
+ }
578
+
579
+ $value = ucwords( $value, $delimiters );
580
+ }
581
+
582
+ //error_log( __LINE__ . " MLASubstitutionParameterExample::mla_apply_custom_format( {$value} ) delimiters = " . var_export( $delimiters, true ), 0 );
583
  return $value;
584
  } // mla_apply_custom_format
585
 
examples/plugins/mla-ui-elements-example.php CHANGED
@@ -17,7 +17,10 @@
17
  * present) and add that query to the taxonomy queries. If the simple query is 'muie-no-terms',
18
  * it will be ignored.
19
  *
20
- * 4. Shortcodes are provided to generate text box controls and retain their settings when the
 
 
 
21
  * page is refreshed or pagination moves to a new page:
22
  *
23
  * [muie_terms_search] generates a terms search text box
@@ -28,7 +31,7 @@
28
  * [muie_assigned_items_count] returns the number of items assigned to any term(s) in the
29
  * selected taxonomy
30
  *
31
- * 5. With a bit of work you can add a tag cloud that works with these filters. Here's an example
32
  * you can adapt for your application:
33
  *
34
  * <style type='text/css'>
@@ -72,8 +75,12 @@
72
  * opened on 12/10/2019 by "ageingdj".
73
  * https://wordpress.org/support/topic/drop-down-not-sticking/
74
  *
 
 
 
 
75
  * @package MLA UI Elements Example
76
- * @version 1.12
77
  */
78
 
79
  /*
@@ -81,7 +88,7 @@ Plugin Name: MLA UI Elements Example
81
  Plugin URI: http://davidlingren.com/
82
  Description: Provides shortcodes to improve user experience for [mla_term_list], [mla_tag_cloud] and [mla_gallery] shortcodes
83
  Author: David Lingren
84
- Version: 1.12
85
  Author URI: http://davidlingren.com/
86
 
87
  Copyright 2016-2019 David Lingren
@@ -192,7 +199,7 @@ class MLAUIElementsExample {
192
  } else {
193
  $mla_option_value = in_array( $shortcode_attributes['mla_option_value'], array( '{+slug+}', '[+slug+]' ) ) ? 'slug' : 'term_id';
194
  }
195
-
196
  foreach( explode( ',', $shortcode_attributes['taxonomy'] ) as $taxonomy ) {
197
  self::$mla_option_values[ $taxonomy ] = $mla_option_value;
198
  }
@@ -227,7 +234,7 @@ class MLAUIElementsExample {
227
  } else {
228
  $input = $_REQUEST[ $mla_control_name ];
229
  }
230
-
231
  foreach( $input as $input_element ) {
232
  $value = explode( '.', $input_element );
233
 
@@ -253,7 +260,7 @@ class MLAUIElementsExample {
253
  if ( is_string( $terms ) ) {
254
  $terms = (array) trim( stripslashes( $terms ), ' \'"' );
255
  }
256
-
257
  // Check for a dropdown control with "All Terms" selected
258
  if ( empty( $shortcode_attributes['option_all_value'] ) ) {
259
  $option_all = array_search( '0', $terms );
@@ -300,7 +307,8 @@ class MLAUIElementsExample {
300
  } // mla_term_list_attributes
301
 
302
  /**
303
- * Add the taxonomy query to the shortcode, limit posts_per_page and encode filters for pagination links
 
304
  *
305
  * @since 1.00
306
  *
@@ -367,8 +375,12 @@ class MLAUIElementsExample {
367
  $muie_filters['muie_order'] = $shortcode_attributes['order'] = $_REQUEST['muie_order'];
368
  }
369
 
 
 
 
370
  // Add the terms search parameters, if present
371
  if ( !empty( $_REQUEST['muie_terms_search'] ) && is_array( $_REQUEST['muie_terms_search'] ) && !empty( $_REQUEST['muie_terms_search']['mla_terms_phrases'] ) ) {
 
372
  $muie_filters['muie_terms_search'] = $_REQUEST['muie_terms_search'];
373
  foreach( $muie_filters['muie_terms_search'] as $key => $value ) {
374
  if ( !empty( $value ) ) {
@@ -379,6 +391,7 @@ class MLAUIElementsExample {
379
 
380
  // Add the keyword search parameters, if present
381
  if ( !empty( $_REQUEST['muie_keyword_search'] ) && is_array( $_REQUEST['muie_keyword_search'] ) && !empty( $_REQUEST['muie_keyword_search']['s'] ) ) {
 
382
  $muie_filters['muie_keyword_search'] = $_REQUEST['muie_keyword_search'];
383
  foreach( $muie_filters['muie_keyword_search'] as $key => $value ) {
384
  if ( !empty( $value ) ) {
@@ -423,7 +436,7 @@ class MLAUIElementsExample {
423
  }
424
  } // array_key_exists
425
  } //foreach $shortcode_attributes
426
-
427
  if ( !empty( $simple_tax_queries ) ) {
428
  foreach ( $simple_tax_queries as $key => $value ) {
429
  $tax_input[ $key ] = explode( ',', $value );
@@ -544,10 +557,19 @@ class MLAUIElementsExample {
544
  }
545
 
546
  if ( ! empty( $tax_query ) ) {
 
547
  $shortcode_attributes['tax_query'] = "array( 'relation' => '" . $tax_relation . "', " . $tax_query . ')';
548
  }
549
  }
550
 
 
 
 
 
 
 
 
 
551
  // Add the filter settings to pagination URLs
552
  if ( !empty( $shortcode_attributes['mla_output'] ) ) {
553
 
17
  * present) and add that query to the taxonomy queries. If the simple query is 'muie-no-terms',
18
  * it will be ignored.
19
  *
20
+ * 4. If you add "default_empty_gallery=true" an [mla_gallery] shortcode the initial gallery display
21
+ * will show no items, until a selection is made from the other controls.
22
+ *
23
+ * 5. Shortcodes are provided to generate text box controls and retain their settings when the
24
  * page is refreshed or pagination moves to a new page:
25
  *
26
  * [muie_terms_search] generates a terms search text box
31
  * [muie_assigned_items_count] returns the number of items assigned to any term(s) in the
32
  * selected taxonomy
33
  *
34
+ * 6. With a bit of work you can add a tag cloud that works with these filters. Here's an example
35
  * you can adapt for your application:
36
  *
37
  * <style type='text/css'>
75
  * opened on 12/10/2019 by "ageingdj".
76
  * https://wordpress.org/support/topic/drop-down-not-sticking/
77
  *
78
+ * Enhanced (default_empty_gallery) for support topic "Search fields and presentation of results"
79
+ * opened on 6/2/2020 by "ernstwg".
80
+ * https://wordpress.org/support/topic/search-fields-and-presentation-of-results/
81
+ *
82
  * @package MLA UI Elements Example
83
+ * @version 1.13
84
  */
85
 
86
  /*
88
  Plugin URI: http://davidlingren.com/
89
  Description: Provides shortcodes to improve user experience for [mla_term_list], [mla_tag_cloud] and [mla_gallery] shortcodes
90
  Author: David Lingren
91
+ Version: 1.13
92
  Author URI: http://davidlingren.com/
93
 
94
  Copyright 2016-2019 David Lingren
199
  } else {
200
  $mla_option_value = in_array( $shortcode_attributes['mla_option_value'], array( '{+slug+}', '[+slug+]' ) ) ? 'slug' : 'term_id';
201
  }
202
+
203
  foreach( explode( ',', $shortcode_attributes['taxonomy'] ) as $taxonomy ) {
204
  self::$mla_option_values[ $taxonomy ] = $mla_option_value;
205
  }
234
  } else {
235
  $input = $_REQUEST[ $mla_control_name ];
236
  }
237
+
238
  foreach( $input as $input_element ) {
239
  $value = explode( '.', $input_element );
240
 
260
  if ( is_string( $terms ) ) {
261
  $terms = (array) trim( stripslashes( $terms ), ' \'"' );
262
  }
263
+
264
  // Check for a dropdown control with "All Terms" selected
265
  if ( empty( $shortcode_attributes['option_all_value'] ) ) {
266
  $option_all = array_search( '0', $terms );
307
  } // mla_term_list_attributes
308
 
309
  /**
310
+ * Add the taxonomy, terms, keyword queries and sort parameters to the shortcode,
311
+ * limit posts_per_page and encode filters for pagination links
312
  *
313
  * @since 1.00
314
  *
375
  $muie_filters['muie_order'] = $shortcode_attributes['order'] = $_REQUEST['muie_order'];
376
  }
377
 
378
+ // Flag for the "empty_default_gallery" parameter
379
+ $default_gallery = true;
380
+
381
  // Add the terms search parameters, if present
382
  if ( !empty( $_REQUEST['muie_terms_search'] ) && is_array( $_REQUEST['muie_terms_search'] ) && !empty( $_REQUEST['muie_terms_search']['mla_terms_phrases'] ) ) {
383
+ $default_gallery = false;
384
  $muie_filters['muie_terms_search'] = $_REQUEST['muie_terms_search'];
385
  foreach( $muie_filters['muie_terms_search'] as $key => $value ) {
386
  if ( !empty( $value ) ) {
391
 
392
  // Add the keyword search parameters, if present
393
  if ( !empty( $_REQUEST['muie_keyword_search'] ) && is_array( $_REQUEST['muie_keyword_search'] ) && !empty( $_REQUEST['muie_keyword_search']['s'] ) ) {
394
+ $default_gallery = false;
395
  $muie_filters['muie_keyword_search'] = $_REQUEST['muie_keyword_search'];
396
  foreach( $muie_filters['muie_keyword_search'] as $key => $value ) {
397
  if ( !empty( $value ) ) {
436
  }
437
  } // array_key_exists
438
  } //foreach $shortcode_attributes
439
+
440
  if ( !empty( $simple_tax_queries ) ) {
441
  foreach ( $simple_tax_queries as $key => $value ) {
442
  $tax_input[ $key ] = explode( ',', $value );
557
  }
558
 
559
  if ( ! empty( $tax_query ) ) {
560
+ $default_gallery = false;
561
  $shortcode_attributes['tax_query'] = "array( 'relation' => '" . $tax_relation . "', " . $tax_query . ')';
562
  }
563
  }
564
 
565
+ // Check for an initial display of an empty gallery instead of all images.
566
+ if ( $default_gallery && !empty( $shortcode_attributes['default_empty_gallery'] ) ) {
567
+ if ( 'true' === trim( strtolower( $shortcode_attributes['default_empty_gallery'] ) ) ) {
568
+ $shortcode_attributes['s'] = 'mla-default-empty-gallery-keyword-search-string';
569
+ $shortcode_attributes['mla_search_fields'] = 'title';
570
+ }
571
+ }
572
+
573
  // Add the filter settings to pagination URLs
574
  if ( !empty( $shortcode_attributes['mla_output'] ) ) {
575
 
includes/class-mla-admin-columns-pro-support.php CHANGED
@@ -227,6 +227,8 @@ class ACP_Addon_MLA_Export_Strategy extends ACP\Export\Strategy {
227
  }
228
 
229
  /**
 
 
230
  * @return ListTable
231
  */
232
  protected function get_list_table() {
227
  }
228
 
229
  /**
230
+ * Creates and returns the MLA_List_Table object
231
+ *
232
  * @return ListTable
233
  */
234
  protected function get_list_table() {
includes/class-mla-ajax.php CHANGED
@@ -34,7 +34,7 @@ class MLA_Ajax {
34
  public static function initialize() {
35
  if ( ! ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'heartbeat' ) ) {
36
  $ajax_only = var_export( self::$ajax_only, true );
37
- MLACore::mla_debug_add( __LINE__ . " MLA_Ajax::initialize( {$ajax_only} ) \$_REQUEST = " . var_export( $_REQUEST, true ), MLACore::MLA_DEBUG_CATEGORY_AJAX );
38
  }
39
 
40
  // If there's no action variable, we have nothing more to do
@@ -49,6 +49,105 @@ class MLA_Ajax {
49
  } else {
50
  add_action( 'admin_init', 'MLA_Ajax::mla_admin_init_action' );
51
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  }
53
 
54
  /**
34
  public static function initialize() {
35
  if ( ! ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'heartbeat' ) ) {
36
  $ajax_only = var_export( self::$ajax_only, true );
37
+ MLACore::mla_debug_add( __LINE__ . " MLA_Ajax::initialize( {$ajax_only} ) \$_REQUEST = " . var_export( $_REQUEST, true ), ( MLACore::MLA_DEBUG_CATEGORY_AJAX || MLACore::MLA_DEBUG_CATEGORY_MMMW ) );
38
  }
39
 
40
  // If there's no action variable, we have nothing more to do
49
  } else {
50
  add_action( 'admin_init', 'MLA_Ajax::mla_admin_init_action' );
51
  }
52
+
53
+ if ( 'query-attachments' == $_REQUEST['action'] ) {
54
+ if ( ( MLACore::$mla_debug_level & 1 ) && ( MLACore::$mla_debug_level & MLACore::MLA_DEBUG_CATEGORY_MMMW ) ) {
55
+ add_filter( 'posts_clauses', 'MLA_Ajax::mla_mmmw_query_posts_clauses_filter', 0x7FFFFFFF, 1 );
56
+ add_filter( 'posts_clauses_request', 'MLA_Ajax::mla_mmmw_query_posts_clauses_request_filter', 0x7FFFFFFF, 1 );
57
+ add_filter( 'posts_request', 'MLA_Ajax::mla_mmmw_query_posts_request_filter', 0x7FFFFFFF, 1 );
58
+ add_filter( 'posts_results', 'MLA_Ajax::mla_mmmw_query_posts_results_filter', 0x7FFFFFFF, 2 );
59
+ add_filter( 'the_posts', 'MLA_Ajax::mla_mmmw_query_the_posts_filter', 0x7FFFFFFF, 2 );
60
+ MLACore::mla_debug_mode( 'log' );
61
+ } // debug
62
+ } // query_attachments
63
+ }
64
+
65
+ /**
66
+ * Filters all clauses for shortcode queries, pre caching plugins
67
+ *
68
+ * This is for debug purposes only.
69
+ * Defined as public because it's a filter.
70
+ *
71
+ * @since 2.84
72
+ *
73
+ * @param array query clauses before modification
74
+ */
75
+ public static function mla_mmmw_query_posts_clauses_filter( $pieces ) {
76
+ /* translators: 1: DEBUG tag 2: SQL clauses */
77
+ MLACore::mla_debug_add( sprintf( _x( '%1$s: mla_mmmw_query_posts_clauses_filter = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'DEBUG', 'media-library-assistant' ), var_export( $pieces, true ) ) );
78
+
79
+ return $pieces;
80
+ }
81
+
82
+ /**
83
+ * Filters all clauses for shortcode queries, post caching plugins
84
+ *
85
+ * This is for debug purposes only.
86
+ * Defined as public because it's a filter.
87
+ *
88
+ * @since 2.84
89
+ *
90
+ * @param array query clauses before modification
91
+ */
92
+ public static function mla_mmmw_query_posts_clauses_request_filter( $pieces ) {
93
+ /* translators: 1: DEBUG tag 2: SQL clauses */
94
+ MLACore::mla_debug_add( sprintf( _x( '%1$s: mla_mmmw_query_posts_clauses_request_filter = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'DEBUG', 'media-library-assistant' ), var_export( $pieces, true ) ) );
95
+
96
+ return $pieces;
97
+ }
98
+
99
+ /**
100
+ * Filters the completed SQL query before sending
101
+ *
102
+ * This is for debug purposes only.
103
+ * Defined as public because it's a filter.
104
+ *
105
+ * @since 2.84
106
+ *
107
+ * @param array SQL query before sending
108
+ */
109
+ public static function mla_mmmw_query_posts_request_filter( $request ) {
110
+ /* translators: 1: DEBUG tag 2: SQL clauses */
111
+ MLACore::mla_debug_add( sprintf( _x( '%1$s: mla_mmmw_query_posts_request_filter = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'DEBUG', 'media-library-assistant' ), var_export( $request, true ) ) );
112
+
113
+ return $request;
114
+ }
115
+
116
+ /**
117
+ * Filters the raw post results array, prior to status checks.
118
+ *
119
+ * This is for debug purposes only.
120
+ * Defined as public because it's a filter.
121
+ *
122
+ * @since 2.84
123
+ *
124
+ * @param WP_Post[] $posts Array of post objects.
125
+ * @param WP_Query $wp_query The WP_Query instance (passed by reference).
126
+ */
127
+ public static function mla_mmmw_query_posts_results_filter( $posts, $wp_query ) {
128
+ /* translators: 1: DEBUG tag 2: SQL clauses */
129
+ MLACore::mla_debug_add( sprintf( _x( '%1$s: mla_mmmw_query_posts_results_filter post_count = "%2$d", found_posts = "%3$d" count = %4$d.', 'error_log', 'media-library-assistant' ), __( 'DEBUG', 'media-library-assistant' ), $wp_query->post_count, $wp_query->found_posts, count( $posts ) ) );
130
+
131
+ return $posts;
132
+ }
133
+
134
+ /**
135
+ * Filters the array of retrieved posts after they've been fetched and
136
+ * internally processed.
137
+ *
138
+ * This is for debug purposes only.
139
+ * Defined as public because it's a filter.
140
+ *
141
+ * @since 2.84
142
+ *
143
+ * @param WP_Post[] $posts Array of post objects.
144
+ * @param WP_Query $wp_query The WP_Query instance (passed by reference).
145
+ */
146
+ public static function mla_mmmw_query_the_posts_filter( $posts, $wp_query ) {
147
+ /* translators: 1: DEBUG tag 2: SQL clauses */
148
+ MLACore::mla_debug_add( sprintf( _x( '%1$s: mla_mmmw_query_the_posts_filter post_count = "%2$d", found_posts = "%3$d" count = %4$d.', 'error_log', 'media-library-assistant' ), __( 'DEBUG', 'media-library-assistant' ), $wp_query->post_count, $wp_query->found_posts, count( $posts ) ) );
149
+
150
+ return $posts;
151
  }
152
 
153
  /**
includes/class-mla-core-options.php CHANGED
@@ -312,6 +312,11 @@ class MLACoreOptions {
312
  */
313
  const MLA_ENABLE_MLA_ICONS = 'enable_mla_icons';
314
 
 
 
 
 
 
315
  /**
316
  * Provides a unique name for the Enable Custom Field Mapping option
317
  */
@@ -1359,6 +1364,13 @@ class MLACoreOptions {
1359
  'std' => 'checked',
1360
  'help' => __( 'Check/uncheck this option to enable/disable MLA File Type Icons Support, then click <strong>Save Changes</strong> to record the new setting.', 'media-library-assistant' )),
1361
 
 
 
 
 
 
 
 
1362
  self::MLA_DEBUG_DISPLAY_LIMIT =>
1363
  array('tab' => 'debug',
1364
  'name' => __( 'Display Limit', 'media-library-assistant' ),
312
  */
313
  const MLA_ENABLE_MLA_ICONS = 'enable_mla_icons';
314
 
315
+ /**
316
+ * Provides a unique name for the Always Use MLA MIME Type option
317
+ */
318
+ const MLA_FORCE_MLA_MIME_TYPE = 'force_mla_mime_type';
319
+
320
  /**
321
  * Provides a unique name for the Enable Custom Field Mapping option
322
  */
1364
  'std' => 'checked',
1365
  'help' => __( 'Check/uncheck this option to enable/disable MLA File Type Icons Support, then click <strong>Save Changes</strong> to record the new setting.', 'media-library-assistant' )),
1366
 
1367
+ self::MLA_FORCE_MLA_MIME_TYPE =>
1368
+ array('tab' => 'upload',
1369
+ 'name' => __( 'Always Use MLA MIME Type', 'media-library-assistant' ),
1370
+ 'type' => 'checkbox',
1371
+ 'std' => '',
1372
+ 'help' => __( 'Check this option to override WordPress MIME Type security checks, then click <strong>Save Changes</strong> to record the new setting.', 'media-library-assistant' )),
1373
+
1374
  self::MLA_DEBUG_DISPLAY_LIMIT =>
1375
  array('tab' => 'debug',
1376
  'name' => __( 'Display Limit', 'media-library-assistant' ),
includes/class-mla-core.php CHANGED
@@ -21,7 +21,7 @@ class MLACore {
21
  *
22
  * @var string
23
  */
24
- const CURRENT_MLA_VERSION = '2.83';
25
 
26
  /**
27
  * Slug for registering and enqueueing plugin style sheets (moved from class-mla-main.php)
@@ -122,6 +122,15 @@ class MLACore {
122
  */
123
  const MLA_DEBUG_CATEGORY_MIME_TYPE = 0x00000080;
124
 
 
 
 
 
 
 
 
 
 
125
  /**
126
  * Slug for adding plugin submenu
127
  *
@@ -599,6 +608,14 @@ class MLACore {
599
  MLACore::$mla_debug_level = $mla_reporting | 1;
600
  if ( class_exists( 'MLA' ) && ! ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'heartbeat' ) ) {
601
  MLACore::mla_debug_add( __LINE__ . sprintf( ' MLACore::mla_plugins_loaded_action() MLA %s (%s) mla_debug_level 0x%X', MLACore::CURRENT_MLA_VERSION, MLA::MLA_DEVELOPMENT_VERSION, MLACore::$mla_debug_level, true ), MLACore::MLA_DEBUG_CATEGORY_ANY );
 
 
 
 
 
 
 
 
602
  }
603
  } else {
604
  MLACore::$mla_debug_level = 0;
@@ -1741,9 +1758,7 @@ class MLACore {
1741
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-admin-columns-support-deprecated.php' );
1742
  MLACore::$admin_columns_storage_model = new CPAC_Deprecated_Storage_Model_MLA();
1743
 
1744
- /*
1745
- * Put MLA before/after WP Media Library so is_columns_screen() will work
1746
- */
1747
  $new_models = array();
1748
  foreach ( $storage_models as $key => $model ) {
1749
  if ( 'wp-media' == $key ) {
@@ -1759,9 +1774,7 @@ class MLACore {
1759
  }
1760
  }
1761
 
1762
- /*
1763
- * If we didn't find wp-media, add our entry to the end
1764
- */
1765
  if ( count( $storage_models ) == count( $new_models ) ) {
1766
  $new_models[ $storage_model->key ] = MLACore::$admin_columns_storage_model;
1767
  }
@@ -1804,7 +1817,13 @@ class MLACore {
1804
  AC\ListScreenTypes::instance()->register_list_screen( new ACP_Addon_MLA_ListScreen );
1805
  }
1806
  } else {
1807
- AC()->register_list_screen( new AC_Addon_MLA_ListScreen );
 
 
 
 
 
 
1808
  }
1809
  }
1810
  } // Class MLACore
21
  *
22
  * @var string
23
  */
24
+ const CURRENT_MLA_VERSION = '2.84';
25
 
26
  /**
27
  * Slug for registering and enqueueing plugin style sheets (moved from class-mla-main.php)
122
  */
123
  const MLA_DEBUG_CATEGORY_MIME_TYPE = 0x00000080;
124
 
125
+ /**
126
+ * Constant to log Media Manager "query_attachments" activity
127
+ *
128
+ * @since 2.84
129
+ *
130
+ * @var integer
131
+ */
132
+ const MLA_DEBUG_CATEGORY_MMMW = 0x00000100;
133
+
134
  /**
135
  * Slug for adding plugin submenu
136
  *
608
  MLACore::$mla_debug_level = $mla_reporting | 1;
609
  if ( class_exists( 'MLA' ) && ! ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] === 'heartbeat' ) ) {
610
  MLACore::mla_debug_add( __LINE__ . sprintf( ' MLACore::mla_plugins_loaded_action() MLA %s (%s) mla_debug_level 0x%X', MLACore::CURRENT_MLA_VERSION, MLA::MLA_DEVELOPMENT_VERSION, MLACore::$mla_debug_level, true ), MLACore::MLA_DEBUG_CATEGORY_ANY );
611
+
612
+ if ( ( MLACore::$mla_debug_level & MLACore::MLA_DEBUG_CATEGORY_METADATA ) && isset( $_SERVER['REQUEST_URI'] ) ) {
613
+ $is_wplr_sync = false !== strpos( $_SERVER['REQUEST_URI'], '/?wplr-sync-api' );
614
+ MLACore::mla_debug_add( __LINE__ . " MLACore::mla_plugins_loaded_action( {$is_wplr_sync} ) \$_SERVER[REQUEST_URI] = " . var_export( $_SERVER['REQUEST_URI'], true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
615
+ if ( $is_wplr_sync && isset( $_POST['action'] ) ) {
616
+ MLACore::mla_debug_add( __LINE__ . " MLACore::mla_plugins_loaded_action wplr action = " . var_export( $_POST['action'], true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
617
+ }
618
+ }
619
  }
620
  } else {
621
  MLACore::$mla_debug_level = 0;
1758
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-admin-columns-support-deprecated.php' );
1759
  MLACore::$admin_columns_storage_model = new CPAC_Deprecated_Storage_Model_MLA();
1760
 
1761
+ // Put MLA before/after WP Media Library so is_columns_screen() will work
 
 
1762
  $new_models = array();
1763
  foreach ( $storage_models as $key => $model ) {
1764
  if ( 'wp-media' == $key ) {
1774
  }
1775
  }
1776
 
1777
+ // If we didn't find wp-media, add our entry to the end
 
 
1778
  if ( count( $storage_models ) == count( $new_models ) ) {
1779
  $new_models[ $storage_model->key ] = MLACore::$admin_columns_storage_model;
1780
  }
1817
  AC\ListScreenTypes::instance()->register_list_screen( new ACP_Addon_MLA_ListScreen );
1818
  }
1819
  } else {
1820
+ $legacy_version = version_compare( AC()->get_version(), '4.1.0', '<' );
1821
+
1822
+ if ( $legacy_version ) {
1823
+ AC()->register_list_screen( new AC_Addon_MLA_ListScreen );
1824
+ } else {
1825
+ AC\ListScreenTypes::instance()->register_list_screen( new AC_Addon_MLA_ListScreen );
1826
+ }
1827
  }
1828
  }
1829
  } // Class MLACore
includes/class-mla-data-query.php CHANGED
@@ -1936,6 +1936,11 @@ class MLAQuery {
1936
  }
1937
  }
1938
 
 
 
 
 
 
1939
  if ( isset( self::$query_parameters['debug'] ) ) {
1940
  $debug_array['where_clause'] = $where_clause;
1941
 
1936
  }
1937
  }
1938
 
1939
+ // Support Plugin Name: Featured Image from URL, "Media Library" option setting
1940
+ if ( function_exists('fifu_is_off') && fifu_is_off('fifu_media_library')) {
1941
+ $where_clause .= sprintf( ' AND %1$s.post_author <> 77777', $wpdb->posts );
1942
+ }
1943
+
1944
  if ( isset( self::$query_parameters['debug'] ) ) {
1945
  $debug_array['where_clause'] = $where_clause;
1946
 
includes/class-mla-data.php CHANGED
@@ -215,6 +215,53 @@ class MLAData {
215
  return $tpl;
216
  }
217
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  /**
219
  * Find a complete delimited element, balancing opening and closing delimiters
220
  *
@@ -227,35 +274,59 @@ class MLAData {
227
  * @return string '' or template substring including the opening and closing delimiters
228
  */
229
  private static function _find_delimited_substring( $tpl, $open_delimiter = '(', $close_delimiter = ')' ) {
 
230
  if ( $open_delimiter == $tpl[0] ) {
231
- $nest = 1;
232
  $level = 1;
233
  do {
234
- $test_end = strpos( $tpl, $close_delimiter, $nest );
235
- if ( false === $test_end ) {
236
- /* translators: 1: ERROR tag 2: template string */
237
- MLACore::mla_debug_add( __LINE__ . ' ' . sprintf( _x( '%1$s: _find_delimited_substring no end delimiter, tail = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'ERROR', 'media-library-assistant' ), substr( $tpl, $nest ) ), MLACore::MLA_DEBUG_CATEGORY_ANY );
238
- return '';
 
 
 
239
  }
240
 
241
- $nest = strpos( $tpl, $open_delimiter, $nest );
242
- if ( false === $nest ) {
243
- $nest = $test_end + 1;
244
- $level--;
245
- } elseif ( $nest < $test_end ) {
246
- $nest += 1;
 
 
 
 
 
 
 
 
 
 
 
247
  $level++;
248
- } else {
249
- $nest = $test_end + 1;
 
 
 
 
250
  $level--;
 
251
  }
 
 
 
 
 
252
  } while ( $level );
253
 
254
- $test_length = $test_end + 1;
255
- $test_content = substr( $tpl, 0, $test_length );
256
- return $test_content;
257
- } // found test element
258
 
 
259
  return '';
260
  }
261
 
@@ -342,10 +413,7 @@ class MLAData {
342
  } // bad test string
343
  } // (test) element
344
  elseif ( '|' == $byte ) {
345
- /*
346
- * Turn each alternative within a choice element into a conditional
347
- */
348
-
349
  if ( ! empty( $output ) ) {
350
  $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
351
  $output = '';
@@ -1772,7 +1840,7 @@ class MLAData {
1772
  $haystack[ $key ] = array();
1773
  }
1774
 
1775
- return self::_set_array_element( implode( $key_array, '.' ), $value, $haystack[ $key ] );
1776
  }
1777
 
1778
  /**
@@ -1799,7 +1867,7 @@ class MLAData {
1799
  } // lowest level
1800
 
1801
  if ( isset( $haystack[ $key ] ) ) {
1802
- return self::_unset_array_element( implode( $key_array, '.' ), $haystack[ $key ] );
1803
  }
1804
 
1805
  return false;
@@ -1907,7 +1975,7 @@ class MLAData {
1907
  } // $option
1908
  } // is_array
1909
 
1910
- return self::_bin_to_utf8( $haystack );
1911
  } // mla_find_array_element
1912
 
1913
  /**
@@ -3464,6 +3532,11 @@ class MLAData {
3464
  MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize returns ' . var_export( $size, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3465
  MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize info keys = ' . var_export( array_keys( $info ), true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3466
 
 
 
 
 
 
3467
  if ( is_callable( 'iptcparse' ) ) {
3468
  if ( ! empty( $info['APP13'] ) ) {
3469
  set_error_handler( 'MLAData::mla_IPTC_EXIF_error_handler' );
@@ -4144,6 +4217,25 @@ class MLAData {
4144
  return $message;
4145
  }
4146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4147
  /**
4148
  * Update a single item; change the "post" data, taxonomy terms
4149
  * and meta data for a single attachment
@@ -4176,6 +4268,8 @@ class MLAData {
4176
  $new_data = stripslashes_deep( $new_data );
4177
  $new_meta = NULL;
4178
 
 
 
4179
  foreach ( $new_data as $key => $value ) {
4180
  switch ( $key ) {
4181
  case 'post_title':
@@ -4194,9 +4288,7 @@ class MLAData {
4194
 
4195
  $value = sanitize_title( $value );
4196
 
4197
- /*
4198
- * Make sure new slug is unique
4199
- */
4200
  $args = array(
4201
  'name' => $value,
4202
  'post_type' => 'attachment',
@@ -4216,11 +4308,11 @@ class MLAData {
4216
  break;
4217
  /*
4218
  * bulk_image_alt requires a separate key because some attachment types
4219
- * should not get a value, e.g., text or PDF documents
4220
  */
4221
  case 'bulk_image_alt':
4222
- // wp_attachment_is_image( $post_id );
4223
- if ( 'image/' !== substr( $post_data[ 'post_mime_type' ], 0, 6 ) ) {
4224
  break;
4225
  }
4226
  // fallthru
@@ -4371,10 +4463,14 @@ class MLAData {
4371
 
4372
  $taxonomy_obj = get_taxonomy( $taxonomy );
4373
 
4374
- if ( ! current_user_can( $taxonomy_obj->cap->assign_terms ) ) {
4375
- /* translators: 1: taxonomy */
4376
- $message .= sprintf( __( 'You cannot assign "%1$s" terms', 'media-library-assistant' ) . '<br>', $taxonomy );
4377
- continue;
 
 
 
 
4378
  }
4379
 
4380
  // array of int = hierarchical, comma-delimited string = flat.
@@ -4415,6 +4511,12 @@ class MLAData {
4415
  $tags = $clean_terms;
4416
  }
4417
 
 
 
 
 
 
 
4418
  switch ( $tax_action ) {
4419
  case 'add':
4420
  if ( ! empty( $tags ) ) {
@@ -4445,6 +4547,10 @@ class MLAData {
4445
  // ignore anything else
4446
  }
4447
 
 
 
 
 
4448
  /*
4449
  * Definitive results check would use:
4450
  * do_action( 'set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids );
@@ -4502,6 +4608,10 @@ class MLAData {
4502
  // $final_message .= '<br>' . $message;
4503
  //error_log( __LINE__ . ' MLAData::mla_update_single_item message = ' . var_export( $message, true ), 0 );
4504
 
 
 
 
 
4505
  return array(
4506
  'message' => $final_message,
4507
  'body' => ''
215
  return $tpl;
216
  }
217
 
218
+ /**
219
+ * Find a complete substitution parameter/template, balancing nested delimiters
220
+ *
221
+ * @since 2.84
222
+ *
223
+ * @param string $tpl A string possibly starting with '[+' at $offset
224
+ * @param integer $offset Position within $tpl to start parsing
225
+ *
226
+ * @return integer length of substitution parameter
227
+ */
228
+ private static function _find_parameter( $tpl, $offset ) {
229
+ // Parameter must start with opening delimiter
230
+ if ( $offset === strpos( $tpl, '[+', $offset ) ) {
231
+ $start = $offset;
232
+ $offset += 2;
233
+ $level = 1;
234
+ do {
235
+ $next_open = strpos( $tpl, '[+', $offset );
236
+ $next_close = strpos( $tpl, '+]', $offset );
237
+
238
+ // See if a nested opening delimiter is next
239
+ if ( ( false !== $next_open ) && ( $next_open < $next_close ) ) {
240
+ $offset = $next_open + 2;
241
+ $level++;
242
+ continue;
243
+ }
244
+
245
+ // See if a closing delimiter is next
246
+ if ( false !== $next_close ) {
247
+ $offset = $next_close + 2;
248
+ $level--;
249
+ continue;
250
+ }
251
+
252
+ // Delimiters are not balanced - abort
253
+ /* translators: 1: ERROR tag 2: template string */
254
+ MLACore::mla_debug_add( __LINE__ . ' ' . sprintf( _x( '%1$s: _find_parameter no end delimiter, tail = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'ERROR', 'media-library-assistant' ), substr( $tpl, $offset ) ), MLACore::MLA_DEBUG_CATEGORY_ANY );
255
+ return strlen( $tpl ) - $offset;
256
+ } while ( $level );
257
+
258
+ return $offset - $start;
259
+ } // found opening delimiter
260
+
261
+ // No opening delimiter - abort
262
+ return strlen( $tpl ) - $offset;
263
+ }
264
+
265
  /**
266
  * Find a complete delimited element, balancing opening and closing delimiters
267
  *
274
  * @return string '' or template substring including the opening and closing delimiters
275
  */
276
  private static function _find_delimited_substring( $tpl, $open_delimiter = '(', $close_delimiter = ')' ) {
277
+ // Template must start with opening delimiter
278
  if ( $open_delimiter == $tpl[0] ) {
279
+ $offset = 1;
280
  $level = 1;
281
  do {
282
+ $next_parameter = strpos( $tpl, '[+', $offset );
283
+
284
+ $next_open = strpos( $tpl, $open_delimiter, $offset );
285
+ // Skip over escaped delimiters
286
+ if ( $next_open ) {
287
+ while ( $next_open && '\\' === $tpl[ $next_open - 1 ] ) {
288
+ $next_open = strpos( $tpl, $open_delimiter, $next_open + 1 );
289
+ }
290
  }
291
 
292
+ $next_close = strpos( $tpl, $close_delimiter, $offset );
293
+ // Skip over escaped delimiters
294
+ if ( $next_close ) {
295
+ while ( $next_close && '\\' === $tpl[ $next_close - 1 ] ) {
296
+ $next_close = strpos( $tpl, $close_delimiter, $next_close + 1 );
297
+ }
298
+ }
299
+
300
+ // See if a parameter is next
301
+ if ( ( false !== $next_parameter ) && ( $next_parameter < $next_open ) && ( $next_parameter < $next_close ) ) {
302
+ $offset += self::_find_parameter( $tpl, $next_parameter );
303
+ continue;
304
+ }
305
+
306
+ // See if a nested opening delimiter is next
307
+ if ( ( false !== $next_open ) && ( $next_open < $next_close ) ) {
308
+ $offset = $next_open + 1;
309
  $level++;
310
+ continue;
311
+ }
312
+
313
+ // See if a closing delimiter is next
314
+ if ( false !== $next_close ) {
315
+ $offset = $next_close + 1;
316
  $level--;
317
+ continue;
318
  }
319
+
320
+ // Delimiters are not balanced - abort
321
+ /* translators: 1: ERROR tag 2: template string */
322
+ MLACore::mla_debug_add( __LINE__ . ' ' . sprintf( _x( '%1$s: _find_delimited_substring no end delimiter, tail = "%2$s".', 'error_log', 'media-library-assistant' ), __( 'ERROR', 'media-library-assistant' ), substr( $tpl, $offset ) ), MLACore::MLA_DEBUG_CATEGORY_ANY );
323
+ return '';
324
  } while ( $level );
325
 
326
+ return substr( $tpl, 0, $offset );
327
+ } // found opening delimiter
 
 
328
 
329
+ // No opening delimiter - abort
330
  return '';
331
  }
332
 
413
  } // bad test string
414
  } // (test) element
415
  elseif ( '|' == $byte ) {
416
+ // Turn each alternative within a choice element into a conditional
 
 
 
417
  if ( ! empty( $output ) ) {
418
  $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
419
  $output = '';
1840
  $haystack[ $key ] = array();
1841
  }
1842
 
1843
+ return self::_set_array_element( implode( '.', $key_array ), $value, $haystack[ $key ] );
1844
  }
1845
 
1846
  /**
1867
  } // lowest level
1868
 
1869
  if ( isset( $haystack[ $key ] ) ) {
1870
+ return self::_unset_array_element( implode( '.', $key_array ), $haystack[ $key ] );
1871
  }
1872
 
1873
  return false;
1975
  } // $option
1976
  } // is_array
1977
 
1978
+ return self::_bin_to_utf8( (string) $haystack );
1979
  } // mla_find_array_element
1980
 
1981
  /**
3532
  MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize returns ' . var_export( $size, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3533
  MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize info keys = ' . var_export( array_keys( $info ), true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3534
 
3535
+ // SVG and some other types don't have metadata
3536
+ if ( false === $size ) {
3537
+ return $results;
3538
+ }
3539
+
3540
  if ( is_callable( 'iptcparse' ) ) {
3541
  if ( ! empty( $info['APP13'] ) ) {
3542
  set_error_handler( 'MLAData::mla_IPTC_EXIF_error_handler' );
4217
  return $message;
4218
  }
4219
 
4220
+ /**
4221
+ * Fires after an object's terms have been set.
4222
+ *
4223
+ * @since 2.84
4224
+ *
4225
+ * @param int $object_id Object ID.
4226
+ * @param array $terms An array of object terms.
4227
+ * @param array $tt_ids An array of term taxonomy IDs.
4228
+ * @param string $taxonomy Taxonomy slug.
4229
+ * @param bool $append Whether to append new terms to the old terms.
4230
+ * @param array $old_tt_ids Old array of term taxonomy IDs.
4231
+ */
4232
+ public static function mla_set_object_terms_action( $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids ) {
4233
+ $append_replace = $append ? 'append' : 'replace';
4234
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_set_object_terms_action( $object_id, $taxonomy, $append_replace ) terms = " . var_export( $terms, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4235
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_set_object_terms_action( $object_id, $taxonomy, $append_replace ) tt_ids = " . var_export( $tt_ids, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4236
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_set_object_terms_action( $object_id, $taxonomy, $append_replace ) old_tt_ids = " . var_export( $old_tt_ids, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4237
+ }
4238
+
4239
  /**
4240
  * Update a single item; change the "post" data, taxonomy terms
4241
  * and meta data for a single attachment
4268
  $new_data = stripslashes_deep( $new_data );
4269
  $new_meta = NULL;
4270
 
4271
+ $log_details = ( MLACore::$mla_debug_level & 1 ) && ( MLACore::$mla_debug_level & MLACore::MLA_DEBUG_CATEGORY_METADATA );
4272
+
4273
  foreach ( $new_data as $key => $value ) {
4274
  switch ( $key ) {
4275
  case 'post_title':
4288
 
4289
  $value = sanitize_title( $value );
4290
 
4291
+ // Make sure new slug is unique
 
 
4292
  $args = array(
4293
  'name' => $value,
4294
  'post_type' => 'attachment',
4308
  break;
4309
  /*
4310
  * bulk_image_alt requires a separate key because some attachment types
4311
+ * should not get a value. MLA v2.84 allows all application/ MIME types.
4312
  */
4313
  case 'bulk_image_alt':
4314
+ if ( ( 'image/' !== substr( $post_data[ 'post_mime_type' ], 0, 6 ) )
4315
+ && ( 'application/' !== substr( $post_data[ 'post_mime_type' ], 0, 12 ) ) ) {
4316
  break;
4317
  }
4318
  // fallthru
4463
 
4464
  $taxonomy_obj = get_taxonomy( $taxonomy );
4465
 
4466
+ // Check if logged-in user can assign terms
4467
+ $current_user = wp_get_current_user();
4468
+ if ( $current_user->ID ) {
4469
+ if ( ! current_user_can( $taxonomy_obj->cap->assign_terms ) ) {
4470
+ /* translators: 1: taxonomy */
4471
+ $message .= sprintf( __( 'You cannot assign "%1$s" terms', 'media-library-assistant' ) . '<br>', $taxonomy );
4472
+ continue;
4473
+ }
4474
  }
4475
 
4476
  // array of int = hierarchical, comma-delimited string = flat.
4511
  $tags = $clean_terms;
4512
  }
4513
 
4514
+ if ( $log_details ) {
4515
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_update_single_item( $post_id, $taxonomy ) \$tags = " . var_export( $tags, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4516
+
4517
+ add_action( 'set_object_terms', 'MLAData::mla_set_object_terms_action', 10, 6 );
4518
+ }
4519
+
4520
  switch ( $tax_action ) {
4521
  case 'add':
4522
  if ( ! empty( $tags ) ) {
4547
  // ignore anything else
4548
  }
4549
 
4550
+ if ( $log_details ) {
4551
+ remove_action( 'set_object_terms', 'MLAData::mla_set_object_terms_action' );
4552
+ }
4553
+
4554
  /*
4555
  * Definitive results check would use:
4556
  * do_action( 'set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids );
4608
  // $final_message .= '<br>' . $message;
4609
  //error_log( __LINE__ . ' MLAData::mla_update_single_item message = ' . var_export( $message, true ), 0 );
4610
 
4611
+ if ( $log_details ) {
4612
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_update_single_item( $post_id ) message = " . var_export( $final_message . '<br>' . $message, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4613
+ }
4614
+
4615
  return array(
4616
  'message' => $final_message,
4617
  'body' => ''
includes/class-mla-edit-media.php CHANGED
@@ -519,9 +519,12 @@ class MLAEdit {
519
  if ( ( true == $options['is_upload'] ) && ! empty( $_REQUEST['mlaAddNewBulkEditFormString'] ) ) {
520
  /*
521
  * Clean up the inputs, which have everything from the enclosing <form>.
 
 
522
  * wp_parse_args converts plus signs to spaces, which we must avoid.
523
  */
524
- $args = wp_parse_args( stripslashes( str_replace( '%2B', 'urlencodedmlaplussign', $_REQUEST['mlaAddNewBulkEditFormString'] ) ) );
 
525
  foreach ( $args as $key => $arg ) {
526
  if ( is_string( $arg ) && 0 === strpos( $arg, 'template:' ) ) {
527
  $args[ $key ] = str_replace( 'urlencodedmlaplussign', '+', $arg );
@@ -553,9 +556,7 @@ class MLAEdit {
553
  unset ( $args['post_category'] );
554
  }
555
 
556
- /*
557
- * Pass the ID
558
- */
559
  $args['cb_attachment'] = array( $post_id );
560
  $item_content = MLA::mla_process_bulk_action( 'edit', $args );
561
  }
519
  if ( ( true == $options['is_upload'] ) && ! empty( $_REQUEST['mlaAddNewBulkEditFormString'] ) ) {
520
  /*
521
  * Clean up the inputs, which have everything from the enclosing <form>.
522
+ * Double slashes in the URL-encoded string must be doubled again to survive the
523
+ * stripslashes() call in MLA::mla_process_bulk_action().
524
  * wp_parse_args converts plus signs to spaces, which we must avoid.
525
  */
526
+ $args = stripslashes( str_replace( '%5C%5C', '%5C%5C%5C%5C', $_REQUEST['mlaAddNewBulkEditFormString'] ) );
527
+ $args = wp_parse_args( str_replace( '%2B', 'urlencodedmlaplussign', $args ) );
528
  foreach ( $args as $key => $arg ) {
529
  if ( is_string( $arg ) && 0 === strpos( $arg, 'template:' ) ) {
530
  $args[ $key ] = str_replace( 'urlencodedmlaplussign', '+', $arg );
556
  unset ( $args['post_category'] );
557
  }
558
 
559
+ // Pass the ID
 
 
560
  $args['cb_attachment'] = array( $post_id );
561
  $item_content = MLA::mla_process_bulk_action( 'edit', $args );
562
  }
includes/class-mla-list-table.php CHANGED
@@ -121,11 +121,46 @@ class MLA_List_Table extends WP_List_Table {
121
  */
122
  protected static $default_sortable_columns = array();
123
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  /**
125
  * Get MIME types with one or more attachments for view preparation
126
  *
127
  * Modeled after get_available_post_mime_types in wp-admin/includes/post.php,
128
- * but uses the output of wp_count_attachments() as input.
129
  *
130
  * @since 0.1
131
  *
@@ -544,7 +579,8 @@ class MLA_List_Table extends WP_List_Table {
544
  * Use "@" because embedded arrays throw PHP Warnings from implode.
545
  */
546
  if ( is_array( $value ) ) {
547
- $list[] = 'array( ' . @implode( ', ', $value ) . ' )'; // TODO PHP 7 error handling
 
548
  } elseif ( $is_meta ) {
549
  $list[] = $value;
550
  } else {
@@ -821,8 +857,18 @@ class MLA_List_Table extends WP_List_Table {
821
  }
822
 
823
  $dimensions = array( $icon_width, $icon_height );
824
- $thumb = wp_get_attachment_image( $item->ID, $dimensions, true, array( 'class' => 'mla_media_thumbnail' ) );
825
 
 
 
 
 
 
 
 
 
 
 
 
826
  if ( in_array( $item->post_mime_type, array( 'image/svg+xml' ) ) ) {
827
  $thumb = preg_replace( '/width=\"[^\"]*\"/', sprintf( 'width="%1$d"', $dimensions[0] ), $thumb );
828
  $thumb = preg_replace( '/height=\"[^\"]*\"/', sprintf( 'height="%1$d"', $dimensions[1] ), $thumb );
@@ -848,7 +894,9 @@ class MLA_List_Table extends WP_List_Table {
848
  $inline_data .= ' <div class="post_excerpt">' . esc_attr( $item->post_excerpt ) . "</div>\r\n";
849
  $inline_data .= ' <div class="post_content">' . esc_attr( $item->post_content ) . "</div>\r\n";
850
 
851
- if ( !empty( $item->mla_wp_attachment_metadata ) ) {
 
 
852
  $inline_data .= ' <div class="image_alt">';
853
 
854
  if ( isset( $item->mla_wp_attachment_image_alt ) ) {
@@ -1687,7 +1735,7 @@ class MLA_List_Table extends WP_List_Table {
1687
  }
1688
 
1689
  $default_types = MLACore::mla_get_option( MLACoreOptions::MLA_POST_MIME_TYPES, true );
1690
- $posts_per_type = (array) wp_count_attachments();
1691
  $post_mime_types = get_post_mime_types();
1692
  $avail_post_mime_types = self::_avail_mime_types( $posts_per_type );
1693
  $matches = wp_match_mime_types( array_keys( $post_mime_types ), array_keys( $posts_per_type ) );
121
  */
122
  protected static $default_sortable_columns = array();
123
 
124
+ /**
125
+ * Count number of attachments for the mime type(s)
126
+ *
127
+ * Modeled after wp_count_attachments in wp-includes/post.php,
128
+ * but supports the Featured Image from URL plugin.
129
+ *
130
+ * @since 2.84
131
+ *
132
+ * @param mixed (Optional) Array or comma-separated list of MIME patterns. Default ''
133
+ *
134
+ * @return object Attachment counts by mime type.
135
+ */
136
+ protected static function _count_attachments( $mime_type = '' ) {
137
+ global $wpdb;
138
+
139
+ // Support Plugin Name: Featured Image from URL, "Media Library" option setting
140
+ if ( function_exists('fifu_is_off') && fifu_is_off('fifu_media_library')) {
141
+ $author = 'AND post_author <> 77777';
142
+ } else {
143
+ $author = '';
144
+ }
145
+
146
+ $and = wp_post_mime_type_where( $mime_type );
147
+ $count = $wpdb->get_results( "SELECT post_mime_type, COUNT( * ) AS num_posts FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' $and $author GROUP BY post_mime_type", ARRAY_A );
148
+
149
+ $counts = array();
150
+ foreach ( (array) $count as $row ) {
151
+ $counts[ $row['post_mime_type'] ] = $row['num_posts'];
152
+ }
153
+ $counts['trash'] = $wpdb->get_var( "SELECT COUNT( * ) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status = 'trash' $and $author" );
154
+
155
+ // Modify returned attachment counts by mime type.
156
+ return apply_filters( 'wp_count_attachments', (object) $counts, $mime_type );
157
+ }
158
+
159
  /**
160
  * Get MIME types with one or more attachments for view preparation
161
  *
162
  * Modeled after get_available_post_mime_types in wp-admin/includes/post.php,
163
+ * but uses the output of self::_count_attachments() as input.
164
  *
165
  * @since 0.1
166
  *
579
  * Use "@" because embedded arrays throw PHP Warnings from implode.
580
  */
581
  if ( is_array( $value ) ) {
582
+ // $list[] = var_export( $value, true ); // Verbose output!
583
+ $list[] = 'array( ' . @implode( ', ', $value ) . ' )';
584
  } elseif ( $is_meta ) {
585
  $list[] = $value;
586
  } else {
857
  }
858
 
859
  $dimensions = array( $icon_width, $icon_height );
 
860
 
861
+ // For non-image types, check for a Featured Image
862
+ if ( 0 === strpos( $item->post_mime_type, 'image' ) ) {
863
+ $thumb = '';
864
+ } else {
865
+ $thumb = get_the_post_thumbnail( $item->ID, $dimensions, array( 'class' => 'mla_media_thumbnail' ) );
866
+ }
867
+
868
+ if ( empty( $thumb ) ) {
869
+ $thumb = wp_get_attachment_image( $item->ID, $dimensions, true, array( 'class' => 'mla_media_thumbnail' ) );
870
+ }
871
+
872
  if ( in_array( $item->post_mime_type, array( 'image/svg+xml' ) ) ) {
873
  $thumb = preg_replace( '/width=\"[^\"]*\"/', sprintf( 'width="%1$d"', $dimensions[0] ), $thumb );
874
  $thumb = preg_replace( '/height=\"[^\"]*\"/', sprintf( 'height="%1$d"', $dimensions[1] ), $thumb );
894
  $inline_data .= ' <div class="post_excerpt">' . esc_attr( $item->post_excerpt ) . "</div>\r\n";
895
  $inline_data .= ' <div class="post_content">' . esc_attr( $item->post_content ) . "</div>\r\n";
896
 
897
+ // if ( !empty( $item->mla_wp_attachment_metadata ) ) {
898
+ if ( ( 'image/' === substr( $item->post_mime_type, 0, 6 ) )
899
+ || ( 'application/' === substr( $item->post_mime_type, 0, 12 ) ) ) {
900
  $inline_data .= ' <div class="image_alt">';
901
 
902
  if ( isset( $item->mla_wp_attachment_image_alt ) ) {
1735
  }
1736
 
1737
  $default_types = MLACore::mla_get_option( MLACoreOptions::MLA_POST_MIME_TYPES, true );
1738
+ $posts_per_type = (array) self::_count_attachments();
1739
  $post_mime_types = get_post_mime_types();
1740
  $avail_post_mime_types = self::_avail_mime_types( $posts_per_type );
1741
  $matches = wp_match_mime_types( array_keys( $post_mime_types ), array_keys( $posts_per_type ) );
includes/class-mla-main.php CHANGED
@@ -129,6 +129,7 @@ class MLA {
129
  add_action( 'admin_enqueue_scripts', 'MLA::mla_admin_enqueue_scripts_action' );
130
  add_action( 'admin_menu', 'MLA::mla_admin_menu_action' );
131
  add_filter( 'set-screen-option', 'MLA::mla_set_screen_option_filter', 10, 3 ); // $status, $option, $value
 
132
  add_filter( 'screen_options_show_screen', 'MLA::mla_screen_options_show_screen_filter', 10, 2 ); // $show_screen, $this
133
  }
134
 
@@ -754,7 +755,8 @@ class MLA {
754
  MLACore::mla_debug_add( __LINE__ . " MLA::mla_set_screen_option_filter( {$option} ) wp_filter = " . MLACore::mla_decode_wp_filter('set-screen-option'), MLACore::MLA_DEBUG_CATEGORY_ANY );
755
 
756
  if ( ( MLA_OPTION_PREFIX . 'entries_per_page' ) == $option ) {
757
- return $value;
 
758
  }
759
 
760
  return $status;
@@ -812,42 +814,57 @@ class MLA {
812
  * @return void echos file contents and calls exit();
813
  */
814
  private static function _process_mla_download_file( $request, $test_path ) {
815
- $message = '';
816
- if ( isset( $request['mla_download_file'] ) && isset( $request['mla_download_type'] ) ) {
817
- if( ini_get( 'zlib.output_compression' ) ) {
818
- ini_set( 'zlib.output_compression', 'Off' );
819
- }
820
-
821
- $file_name = stripslashes( $request['mla_download_file'] );
822
- $match_name = str_replace( '\\', '/', $file_name );
823
-
824
- if ( $test_path ) {
825
- $upload_dir = wp_upload_dir();
826
- $allowed_path = str_replace( '\\', '/', $upload_dir['basedir'] );
827
- }
828
-
829
- if ( $test_path && ( 0 !== strpos( $match_name, $allowed_path ) ) ) {
830
- $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download path out of bounds.', 'media-library-assistant' );
831
- } elseif ( false !== strpos( $match_name, '..' ) ) {
832
- $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download path invalid.', 'media-library-assistant' );
833
- }
834
  } else {
835
- $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download argument(s) not set.', 'media-library-assistant' );
836
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
837
 
838
  if ( empty( $message ) ) {
 
 
 
 
 
 
 
 
839
  header('Pragma: public'); // required
840
  header('Expires: 0'); // no cache
841
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
842
- header('Last-Modified: '.gmdate ( 'D, d M Y H:i:s', filemtime ( $file_name ) ).' GMT');
843
  header('Cache-Control: private',false);
844
  header('Content-Type: '.$request['mla_download_type']);
845
  header('Content-Disposition: attachment; filename="'.basename( $file_name ).'"');
846
  header('Content-Transfer-Encoding: binary');
847
- header('Content-Length: '.filesize( $file_name )); // provide file size
848
  header('Connection: close');
849
 
850
- readfile( $file_name );
 
 
851
 
852
  if ( isset( $request['mla_download_disposition'] ) && 'delete' == $request['mla_download_disposition'] ) {
853
  @unlink( $file_name );
@@ -1020,8 +1037,9 @@ class MLA {
1020
  }
1021
 
1022
  /*
1023
- * image_alt requires a separate key because some attachment types
1024
- * should not get a value, e.g., text or PDF documents
 
1025
  */
1026
  if ( isset( $request['image_alt'] ) ) {
1027
  $test_value = self::_process_bulk_value( $post_id, $request['image_alt'] );
129
  add_action( 'admin_enqueue_scripts', 'MLA::mla_admin_enqueue_scripts_action' );
130
  add_action( 'admin_menu', 'MLA::mla_admin_menu_action' );
131
  add_filter( 'set-screen-option', 'MLA::mla_set_screen_option_filter', 10, 3 ); // $status, $option, $value
132
+ add_filter( 'set_screen_option_' . MLA_OPTION_PREFIX . 'entries_per_page', 'MLA::mla_set_screen_option_filter', 10, 3 );
133
  add_filter( 'screen_options_show_screen', 'MLA::mla_screen_options_show_screen_filter', 10, 2 ); // $show_screen, $this
134
  }
135
 
755
  MLACore::mla_debug_add( __LINE__ . " MLA::mla_set_screen_option_filter( {$option} ) wp_filter = " . MLACore::mla_decode_wp_filter('set-screen-option'), MLACore::MLA_DEBUG_CATEGORY_ANY );
756
 
757
  if ( ( MLA_OPTION_PREFIX . 'entries_per_page' ) == $option ) {
758
+ MLACore::mla_debug_add( __LINE__ . " MLA::mla_set_screen_option_filter( {$option} ) return value = " . var_export( $value, true ), MLACore::MLA_DEBUG_CATEGORY_ANY );
759
+ return absint( $value );
760
  }
761
 
762
  return $status;
814
  * @return void echos file contents and calls exit();
815
  */
816
  private static function _process_mla_download_file( $request, $test_path ) {
817
+ if ( isset( $request['mla_error'] ) ) {
818
+ $message = $request['mla_error'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
819
  } else {
820
+ $message = '';
821
+
822
+ if ( isset( $request['mla_download_file'] ) && isset( $request['mla_download_type'] ) ) {
823
+ if( ini_get( 'zlib.output_compression' ) ) {
824
+ ini_set( 'zlib.output_compression', 'Off' );
825
+ }
826
+
827
+ $file_name = stripslashes( $request['mla_download_file'] );
828
+ $match_name = str_replace( '\\', '/', $file_name );
829
+
830
+ if ( $test_path ) {
831
+ $upload_dir = wp_upload_dir();
832
+ $allowed_path = str_replace( '\\', '/', $upload_dir['basedir'] );
833
+ }
834
+
835
+ if ( $test_path && ( 0 !== strpos( $match_name, $allowed_path ) ) ) {
836
+ $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download path out of bounds.', 'media-library-assistant' );
837
+ } elseif ( false !== strpos( $match_name, '..' ) ) {
838
+ $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download path invalid.', 'media-library-assistant' );
839
+ }
840
+ } else {
841
+ $message = __( 'ERROR', 'media-library-assistant' ) . ': ' . __( 'download argument(s) not set.', 'media-library-assistant' );
842
+ }
843
+ } // no error message
844
 
845
  if ( empty( $message ) ) {
846
+ if ( file_exists( $file_name ) ) {
847
+ $filemtime = filemtime ( $file_name );
848
+ $filesize = filesize( $file_name );
849
+ } else {
850
+ $filemtime = time();
851
+ $filesize = 0;
852
+ }
853
+
854
  header('Pragma: public'); // required
855
  header('Expires: 0'); // no cache
856
  header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
857
+ header('Last-Modified: '.gmdate ( 'D, d M Y H:i:s', $filemtime ).' GMT');
858
  header('Cache-Control: private',false);
859
  header('Content-Type: '.$request['mla_download_type']);
860
  header('Content-Disposition: attachment; filename="'.basename( $file_name ).'"');
861
  header('Content-Transfer-Encoding: binary');
862
+ header('Content-Length: '.$filesize); // provide file size
863
  header('Connection: close');
864
 
865
+ if ( 0 < $filesize ) {
866
+ readfile( $file_name );
867
+ }
868
 
869
  if ( isset( $request['mla_download_disposition'] ) && 'delete' == $request['mla_download_disposition'] ) {
870
  @unlink( $file_name );
1037
  }
1038
 
1039
  /*
1040
+ * image_alt requires a separate key because some attachment types should
1041
+ * not get a value, e.g., text or PDF documents. OBSOLETE as of v2.84 -
1042
+ * allow all application/ MIME types; see class-mla-data.php
1043
  */
1044
  if ( isset( $request['image_alt'] ) ) {
1045
  $test_value = self::_process_bulk_value( $post_id, $request['image_alt'] );
includes/class-mla-mime-types.php CHANGED
@@ -22,6 +22,13 @@ class MLAMime {
22
  * @return void
23
  */
24
  public static function initialize() {
 
 
 
 
 
 
 
25
  self::_localize_default_upload_columns();
26
  self::_localize_default_upload_optional_columns();
27
  self::_localize_default_view_columns();
@@ -32,7 +39,7 @@ class MLAMime {
32
  self::$mla_debug_active = ( MLACore::$mla_debug_level & 1 ) && ( MLACore::$mla_debug_level & MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
33
  if ( self::$mla_debug_active ) {
34
  add_filter( 'sanitize_mime_type', 'MLAMime::mla_sanitize_mime_type_filter', 0x7FFFFFFF, 2 );
35
- add_filter( 'wp_check_filetype_and_ext', 'MLAMime::mla_wp_check_filetype_and_ext_filter', 0x7FFFFFFF, 4 );
36
  }
37
 
38
  // Handle WP 4.6.2, 4.7.x SVG bug
@@ -44,6 +51,11 @@ class MLAMime {
44
  }
45
 
46
  add_filter( 'upload_mimes', 'MLAMime::mla_upload_mimes_filter', 0x7FFFFFFF, 2 );
 
 
 
 
 
47
  }
48
 
49
  if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_ENABLE_POST_MIME_TYPES ) ) {
@@ -219,16 +231,28 @@ class MLAMime {
219
  * @param string Full path to the image
220
  * @param string The filename of the image
221
  * @param array Optional array of MIME types
 
222
  *
223
  * @return array Updated array( ext, type, proper_filename (string or false) )
224
  */
225
- public static function mla_wp_check_filetype_and_ext_filter( $validate, $file, $filename, $mimes ) {
226
  if ( self::$mla_debug_active ) {
227
  MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter( $file, $filename ) validate = " . var_export( $validate, true ), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
228
- MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter mimes = " . var_export( $mimes, true ), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
 
 
 
 
229
  MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter wp_filter = " . MLACore::mla_decode_wp_filter('wp_check_filetype_and_ext'), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
230
  }
231
 
 
 
 
 
 
 
 
232
  return $validate;
233
  } // mla_wp_check_filetype_and_ext_filter
234
 
22
  * @return void
23
  */
24
  public static function initialize() {
25
+ // $real_mime was added recently
26
+ if ( version_compare( get_bloginfo('version'), '5.0.99', '>' ) ) {
27
+ $filter_args = 5;
28
+ } else {
29
+ $filter_args = 4;
30
+ }
31
+
32
  self::_localize_default_upload_columns();
33
  self::_localize_default_upload_optional_columns();
34
  self::_localize_default_view_columns();
39
  self::$mla_debug_active = ( MLACore::$mla_debug_level & 1 ) && ( MLACore::$mla_debug_level & MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
40
  if ( self::$mla_debug_active ) {
41
  add_filter( 'sanitize_mime_type', 'MLAMime::mla_sanitize_mime_type_filter', 0x7FFFFFFF, 2 );
42
+ add_filter( 'wp_check_filetype_and_ext', 'MLAMime::mla_wp_check_filetype_and_ext_filter', 0x7FFFFFFF, $filter_args );
43
  }
44
 
45
  // Handle WP 4.6.2, 4.7.x SVG bug
51
  }
52
 
53
  add_filter( 'upload_mimes', 'MLAMime::mla_upload_mimes_filter', 0x7FFFFFFF, 2 );
54
+
55
+ // Make sure mla_wp_check_filetype_and_ext_filter() is acive if requested
56
+ if ( ( false === self::$mla_debug_active ) && ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_FORCE_MLA_MIME_TYPE ) ) ) {
57
+ add_filter( 'wp_check_filetype_and_ext', 'MLAMime::mla_wp_check_filetype_and_ext_filter', 0x7FFFFFFF, $filter_args );
58
+ }
59
  }
60
 
61
  if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_ENABLE_POST_MIME_TYPES ) ) {
231
  * @param string Full path to the image
232
  * @param string The filename of the image
233
  * @param array Optional array of MIME types
234
+ * @param mixed Since WP 5.1.0, the actual mime type or false if the type cannot be determined.
235
  *
236
  * @return array Updated array( ext, type, proper_filename (string or false) )
237
  */
238
+ public static function mla_wp_check_filetype_and_ext_filter( $validate, $file, $filename, $mimes, $real_mime = NULL ) {
239
  if ( self::$mla_debug_active ) {
240
  MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter( $file, $filename ) validate = " . var_export( $validate, true ), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
241
+ if ( NULL !== $real_mime ) {
242
+ MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter( {$real_mime} ) mimes = " . var_export( $mimes, true ), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
243
+ } else {
244
+ MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter mimes = " . var_export( $mimes, true ), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
245
+ }
246
  MLACore::mla_debug_add( __LINE__ . " MLAMime::mla_wp_check_filetype_and_ext_filter wp_filter = " . MLACore::mla_decode_wp_filter('wp_check_filetype_and_ext'), MLACore::MLA_DEBUG_CATEGORY_MIME_TYPE );
247
  }
248
 
249
+ // Override security checks in /wp_includes/functions.php function wp_check_filetype_and_ext()
250
+ if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_FORCE_MLA_MIME_TYPE ) ) {
251
+ $filetype = wp_check_filetype( $filename, $mimes );
252
+ $validate['ext'] = $filetype['ext'];
253
+ $validate['type'] = $filetype['type'];
254
+ }
255
+
256
  return $validate;
257
  } // mla_wp_check_filetype_and_ext_filter
258
 
includes/class-mla-options.php CHANGED
@@ -1606,7 +1606,7 @@ class MLAOptions {
1606
  'meta_name' => substr( $setting_value['exif_value'], 9 ),
1607
  'keep_existing' => $setting_value['keep_existing'],
1608
  'format' => 'native',
1609
- 'option' => 'array' );
1610
 
1611
  $exif_value = MLAOptions::mla_get_data_source( $post->ID, $data_source_category, $data_value, $attachment_metadata );
1612
  if ( ' ' == $exif_value ) {
@@ -1635,9 +1635,7 @@ class MLAOptions {
1635
  }
1636
  }
1637
 
1638
- /*
1639
- * Parse out individual terms
1640
- */
1641
  if ( ! empty( $setting_value['delimiters'] ) ) {
1642
  $text = $setting_value['delimiters'];
1643
  $delimiters = array();
@@ -1695,13 +1693,9 @@ class MLAOptions {
1695
  }
1696
  }
1697
 
1698
- /*
1699
- * Hierarchical taxonomies require term_id, flat require term names
1700
- */
1701
  if ( $hierarchical ) {
1702
- /*
1703
- * Convert text to term_id
1704
- */
1705
  $new_terms = array();
1706
  foreach ( $new_text as $new_term ) {
1707
  if ( 0 < $new_term = MLAOptions::_get_term_id( $new_term, $tax_parent, $setting_key, $post_terms ) ) {
@@ -1713,9 +1707,7 @@ class MLAOptions {
1713
  }
1714
 
1715
  if ( 'replace' == $tax_action ) {
1716
- /*
1717
- * If the new terms match the term cache, we can skip the update
1718
- */
1719
  foreach ( $new_terms as $new_term ) {
1720
  if ( isset( $current_terms[ $new_term ] ) ) {
1721
  unset( $current_terms[ $new_term ] );
@@ -1727,9 +1719,7 @@ class MLAOptions {
1727
 
1728
  $do_update = ! empty( $current_terms );
1729
  } else {
1730
- /*
1731
- * We are adding terms; remove existing terms
1732
- */
1733
  foreach ( $new_terms as $index => $new_term ) {
1734
  if ( isset( $current_terms[ esc_attr( $new_term ) ] ) ) {
1735
  unset( $new_terms[ $index ] );
@@ -1753,9 +1743,7 @@ class MLAOptions {
1753
  if ( ( $update_all || ( 'iptc_exif_custom_mapping' == $category ) ) && !empty( $settings['custom'] ) ) {
1754
  $custom_updates = array();
1755
  foreach ( $settings['custom'] as $setting_key => $setting_value ) {
1756
- /*
1757
- * Convert checkbox value(s)
1758
- */
1759
  $setting_value['no_null'] = isset( $setting_value['no_null'] );
1760
 
1761
  $setting_name = $setting_value['name'];
1606
  'meta_name' => substr( $setting_value['exif_value'], 9 ),
1607
  'keep_existing' => $setting_value['keep_existing'],
1608
  'format' => 'native',
1609
+ 'option' => $setting_value['option'] );
1610
 
1611
  $exif_value = MLAOptions::mla_get_data_source( $post->ID, $data_source_category, $data_value, $attachment_metadata );
1612
  if ( ' ' == $exif_value ) {
1635
  }
1636
  }
1637
 
1638
+ // Parse out individual terms
 
 
1639
  if ( ! empty( $setting_value['delimiters'] ) ) {
1640
  $text = $setting_value['delimiters'];
1641
  $delimiters = array();
1693
  }
1694
  }
1695
 
1696
+ // Hierarchical taxonomies require term_id, flat require term names
 
 
1697
  if ( $hierarchical ) {
1698
+ // Convert text to term_id
 
 
1699
  $new_terms = array();
1700
  foreach ( $new_text as $new_term ) {
1701
  if ( 0 < $new_term = MLAOptions::_get_term_id( $new_term, $tax_parent, $setting_key, $post_terms ) ) {
1707
  }
1708
 
1709
  if ( 'replace' == $tax_action ) {
1710
+ // If the new terms match the term cache, we can skip the update
 
 
1711
  foreach ( $new_terms as $new_term ) {
1712
  if ( isset( $current_terms[ $new_term ] ) ) {
1713
  unset( $current_terms[ $new_term ] );
1719
 
1720
  $do_update = ! empty( $current_terms );
1721
  } else {
1722
+ // We are adding terms; remove existing terms
 
 
1723
  foreach ( $new_terms as $index => $new_term ) {
1724
  if ( isset( $current_terms[ esc_attr( $new_term ) ] ) ) {
1725
  unset( $new_terms[ $index ] );
1743
  if ( ( $update_all || ( 'iptc_exif_custom_mapping' == $category ) ) && !empty( $settings['custom'] ) ) {
1744
  $custom_updates = array();
1745
  foreach ( $settings['custom'] as $setting_key => $setting_value ) {
1746
+ // Convert checkbox value(s)
 
 
1747
  $setting_value['no_null'] = isset( $setting_value['no_null'] );
1748
 
1749
  $setting_name = $setting_value['name'];
includes/class-mla-settings-custom-fields-tab.php CHANGED
@@ -947,7 +947,7 @@ class MLASettings_CustomFields {
947
  $rule['mla_column'] = isset( $_REQUEST['mla_column'] ) && '1' === $_REQUEST['mla_column'];
948
  $rule['quick_edit'] = isset( $_REQUEST['quick_edit'] ) && '1' === $_REQUEST['quick_edit'];
949
  $rule['bulk_edit'] = isset( $_REQUEST['bulk_edit'] ) && '1' === $_REQUEST['bulk_edit'];
950
- $rule['active'] = '1' === $_REQUEST['status'];
951
  $rule['changed'] = true;
952
  $rule['deleted'] = false;
953
  $rule = stripslashes_deep( $rule );
947
  $rule['mla_column'] = isset( $_REQUEST['mla_column'] ) && '1' === $_REQUEST['mla_column'];
948
  $rule['quick_edit'] = isset( $_REQUEST['quick_edit'] ) && '1' === $_REQUEST['quick_edit'];
949
  $rule['bulk_edit'] = isset( $_REQUEST['bulk_edit'] ) && '1' === $_REQUEST['bulk_edit'];
950
+ $rule['active'] = '1' === $_REQUEST['active'];
951
  $rule['changed'] = true;
952
  $rule['deleted'] = false;
953
  $rule = stripslashes_deep( $rule );
includes/class-mla-settings-iptc-exif-tab.php CHANGED
@@ -49,9 +49,7 @@ class MLASettings_IPTCEXIF {
49
  $use_spinner_class = version_compare( get_bloginfo( 'version' ), '4.2', '>=' );
50
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
51
 
52
- /*
53
- * Initialize variables for mapping scripts
54
- */
55
  $script_variables = array(
56
  'error' => __( 'Error while making the changes.', 'media-library-assistant' ),
57
  'ntdeltitle' => __( 'Remove From Bulk Edit', 'media-library-assistant' ),
@@ -84,9 +82,7 @@ class MLASettings_IPTCEXIF {
84
  wp_localize_script( MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
85
  MLASettings::JAVASCRIPT_INLINE_MAPPING_OBJECT, $script_variables );
86
 
87
- /*
88
- * Initialize variables for inline edit scripts
89
- */
90
  $script_variables = array(
91
  'error' => __( 'Error while making the changes.', 'media-library-assistant' ),
92
  'ntdeltitle' => __( 'Remove From Bulk Edit', 'media-library-assistant' ),
@@ -95,7 +91,7 @@ class MLASettings_IPTCEXIF {
95
  'useSpinnerClass' => $use_spinner_class,
96
  'ajax_nonce' => wp_create_nonce( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME ),
97
  'tab' => 'iptc_exif',
98
- 'fields' => array( 'type', 'name', 'rule_name', 'type', 'iptc_value', 'exif_value', 'iptc_first', 'keep_existing', 'active', 'delimiters', 'parent_options', 'parent', 'format', 'option' ),
99
  'checkboxes' => array( 'no_null' ),
100
  'ajax_action' => MLASettings::JAVASCRIPT_INLINE_EDIT_IPTC_EXIF_SLUG,
101
  );
@@ -331,7 +327,7 @@ class MLASettings_IPTCEXIF {
331
  'iptc_first' => $mla_iptc_exif_rule['iptc_first'],
332
  'keep_existing' => $mla_iptc_exif_rule['keep_existing'],
333
  'format' => $mla_iptc_exif_rule['format'],
334
- 'option' => $mla_iptc_exif_rule['option'],
335
  'no_null' => $mla_iptc_exif_rule['no_null'],
336
  'delimiters' => $mla_iptc_exif_rule['delimiters'],
337
  'parent' => !empty( $mla_iptc_exif_rule['parent'] ) && ( '0' !== $mla_iptc_exif_rule['parent'] ) ? absint( $mla_iptc_exif_rule['parent'] ) : 0,
@@ -404,7 +400,15 @@ class MLASettings_IPTCEXIF {
404
  }
405
 
406
  if ( '-1' !== $_REQUEST['option'] ) {
407
- $rule['option'] = $_REQUEST['option'];
 
 
 
 
 
 
 
 
408
  }
409
 
410
  if ( '-1' !== $_REQUEST['no_null'] ) {
@@ -549,6 +553,14 @@ class MLASettings_IPTCEXIF {
549
  } else {
550
  $page_values['hierarchical'] = '0';
551
  }
 
 
 
 
 
 
 
 
552
  break;
553
  case 'custom':
554
  $page_values['Edit Rule'] .= __( 'Custom field mapping', 'media-library-assistant' );
@@ -1017,7 +1029,13 @@ class MLASettings_IPTCEXIF {
1017
  $rule['delimiters'] = !empty( $_REQUEST['delimiters'] ) ? $_REQUEST['delimiters'] : '';
1018
  $rule['parent'] = !empty( $_REQUEST['parent'] ) ? absint( $_REQUEST['parent'] ) : 0;
1019
  $rule['format'] = $_REQUEST['format'];
1020
- $rule['option'] = $_REQUEST['option'];
 
 
 
 
 
 
1021
  $rule['no_null'] = isset( $_REQUEST['no_null'] ) && '1' === $_REQUEST['no_null'];
1022
  $rule['active'] = '1' === $_REQUEST['active'];
1023
  $rule['changed'] = true;
@@ -1472,6 +1490,7 @@ class MLA_IPTC_EXIF_List_Table extends WP_List_Table {
1472
  }
1473
 
1474
  $inline_data .= ' <div class="format">' . esc_attr( $item->format ) . "</div>\r\n";
 
1475
  $inline_data .= ' <div class="option">' . esc_attr( $item->option ) . "</div>\r\n";
1476
  $inline_data .= ' <div class="no_null">' . esc_attr( $item->no_null ) . "</div>\r\n";
1477
  $inline_data .= "</div>\r\n";
@@ -2073,7 +2092,7 @@ class MLA_IPTC_EXIF_Query {
2073
  'name' => $value->labels->name,
2074
  'hierarchical' => $value->hierarchical,
2075
  'format' => 'native',
2076
- 'option' => 'text',
2077
  'no_null' => false,
2078
  'read_only' => false,
2079
  'changed' => false,
@@ -2090,6 +2109,7 @@ class MLA_IPTC_EXIF_Query {
2090
  'iptc_first' => $existing_values['iptc_first'],
2091
  'keep_existing' => $existing_values['keep_existing'],
2092
  'delimiters' => $existing_values['delimiters'],
 
2093
  'parent' => $existing_values['parent'],
2094
  'active' => isset( $existing_values['active'] ) ? $existing_values['active'] : true,
2095
  ) );
@@ -2116,7 +2136,7 @@ class MLA_IPTC_EXIF_Query {
2116
  $value['key'] = $key;
2117
  $value['rule_name'] = $value['name'];
2118
  $value['format'] = 'native';
2119
- $value['option'] = 'text';
2120
  $value['no_null'] = false;
2121
  $value['read_only'] = false;
2122
  $value['changed'] = false;
@@ -2224,6 +2244,7 @@ class MLA_IPTC_EXIF_Query {
2224
  $new_value['hierarchical'] = $current_value['hierarchical'];
2225
  $new_value['parent'] = $current_value['parent'];
2226
  $new_value['delimiters'] = $current_value['delimiters'];
 
2227
  break;
2228
  case 'custom':
2229
  $new_value['format'] = $current_value['format'];
49
  $use_spinner_class = version_compare( get_bloginfo( 'version' ), '4.2', '>=' );
50
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
51
 
52
+ // Initialize variables for mapping scripts
 
 
53
  $script_variables = array(
54
  'error' => __( 'Error while making the changes.', 'media-library-assistant' ),
55
  'ntdeltitle' => __( 'Remove From Bulk Edit', 'media-library-assistant' ),
82
  wp_localize_script( MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
83
  MLASettings::JAVASCRIPT_INLINE_MAPPING_OBJECT, $script_variables );
84
 
85
+ // Initialize variables for inline edit scripts
 
 
86
  $script_variables = array(
87
  'error' => __( 'Error while making the changes.', 'media-library-assistant' ),
88
  'ntdeltitle' => __( 'Remove From Bulk Edit', 'media-library-assistant' ),
91
  'useSpinnerClass' => $use_spinner_class,
92
  'ajax_nonce' => wp_create_nonce( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME ),
93
  'tab' => 'iptc_exif',
94
+ 'fields' => array( 'type', 'name', 'rule_name', 'type', 'iptc_value', 'exif_value', 'iptc_first', 'keep_existing', 'active', 'delimiters', 'parent_options', 'parent', 'format', 'tax_option', 'option' ),
95
  'checkboxes' => array( 'no_null' ),
96
  'ajax_action' => MLASettings::JAVASCRIPT_INLINE_EDIT_IPTC_EXIF_SLUG,
97
  );
327
  'iptc_first' => $mla_iptc_exif_rule['iptc_first'],
328
  'keep_existing' => $mla_iptc_exif_rule['keep_existing'],
329
  'format' => $mla_iptc_exif_rule['format'],
330
+ 'option' => $mla_iptc_exif_rule['tax_option'],
331
  'no_null' => $mla_iptc_exif_rule['no_null'],
332
  'delimiters' => $mla_iptc_exif_rule['delimiters'],
333
  'parent' => !empty( $mla_iptc_exif_rule['parent'] ) && ( '0' !== $mla_iptc_exif_rule['parent'] ) ? absint( $mla_iptc_exif_rule['parent'] ) : 0,
400
  }
401
 
402
  if ( '-1' !== $_REQUEST['option'] ) {
403
+ // Only custom and taxonomy types use this value
404
+ if ( 'custom' === $rule['type'] ) {
405
+ $rule['option'] = $_REQUEST['option'];
406
+ } elseif ( 'taxonomy' === $rule['type'] ) {
407
+ // Taxonomy rules have limited options; array or text
408
+ if ( ( 'array' === $rule['option'] ) || ( 'text' === $rule['option'] ) ) {
409
+ $rule['option'] = $_REQUEST['option'];
410
+ }
411
+ }
412
  }
413
 
414
  if ( '-1' !== $_REQUEST['no_null'] ) {
553
  } else {
554
  $page_values['hierarchical'] = '0';
555
  }
556
+
557
+ switch( $item['option'] ) {
558
+ case 'text':
559
+ $page_values['text_option'] = 'selected="selected"';
560
+ break;
561
+ default:
562
+ $page_values['array_option'] = 'selected="selected"';
563
+ } // option
564
  break;
565
  case 'custom':
566
  $page_values['Edit Rule'] .= __( 'Custom field mapping', 'media-library-assistant' );
1029
  $rule['delimiters'] = !empty( $_REQUEST['delimiters'] ) ? $_REQUEST['delimiters'] : '';
1030
  $rule['parent'] = !empty( $_REQUEST['parent'] ) ? absint( $_REQUEST['parent'] ) : 0;
1031
  $rule['format'] = $_REQUEST['format'];
1032
+
1033
+ if ( 'taxonomy' === $rule['type'] ) {
1034
+ $rule['option'] = $_REQUEST['tax_option'];
1035
+ } else {
1036
+ $rule['option'] = $_REQUEST['option'];
1037
+ }
1038
+
1039
  $rule['no_null'] = isset( $_REQUEST['no_null'] ) && '1' === $_REQUEST['no_null'];
1040
  $rule['active'] = '1' === $_REQUEST['active'];
1041
  $rule['changed'] = true;
1490
  }
1491
 
1492
  $inline_data .= ' <div class="format">' . esc_attr( $item->format ) . "</div>\r\n";
1493
+ $inline_data .= ' <div class="tax_option">' . esc_attr( $item->option ) . "</div>\r\n";
1494
  $inline_data .= ' <div class="option">' . esc_attr( $item->option ) . "</div>\r\n";
1495
  $inline_data .= ' <div class="no_null">' . esc_attr( $item->no_null ) . "</div>\r\n";
1496
  $inline_data .= "</div>\r\n";
2092
  'name' => $value->labels->name,
2093
  'hierarchical' => $value->hierarchical,
2094
  'format' => 'native',
2095
+ 'option' => 'array',
2096
  'no_null' => false,
2097
  'read_only' => false,
2098
  'changed' => false,
2109
  'iptc_first' => $existing_values['iptc_first'],
2110
  'keep_existing' => $existing_values['keep_existing'],
2111
  'delimiters' => $existing_values['delimiters'],
2112
+ 'option' => isset( $existing_values['option'] ) ? $existing_values['option'] : 'array',
2113
  'parent' => $existing_values['parent'],
2114
  'active' => isset( $existing_values['active'] ) ? $existing_values['active'] : true,
2115
  ) );
2136
  $value['key'] = $key;
2137
  $value['rule_name'] = $value['name'];
2138
  $value['format'] = 'native';
2139
+ $value['option'] = 'array';
2140
  $value['no_null'] = false;
2141
  $value['read_only'] = false;
2142
  $value['changed'] = false;
2244
  $new_value['hierarchical'] = $current_value['hierarchical'];
2245
  $new_value['parent'] = $current_value['parent'];
2246
  $new_value['delimiters'] = $current_value['delimiters'];
2247
+ $new_value['option'] = $current_value['option'];
2248
  break;
2249
  case 'custom':
2250
  $new_value['format'] = $current_value['format'];
includes/class-mla-settings.php CHANGED
@@ -124,23 +124,30 @@ class MLASettings {
124
  } elseif ( isset( $_REQUEST['page'] ) && is_string( $_REQUEST['page'] ) && ( 'mla-settings-menu-' == substr( $_REQUEST['page'], 0, 18 ) ) ) {
125
  // Settings/Media Library Assistant current tab
126
  switch( substr( $_REQUEST['page'], 18 ) ) {
127
- case 'upload':
128
- require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-upload-tab.php' );
129
- break;
130
  case 'view':
131
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-view-tab.php' );
 
 
 
 
 
 
132
  break;
133
  case 'shortcodes':
134
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-shortcodes-tab.php' );
 
135
  break;
136
  case 'custom_field':
137
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-custom-fields-tab.php' );
 
138
  break;
139
  case 'iptc_exif':
140
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-iptc-exif-tab.php' );
 
141
  break;
142
  case 'documentation':
143
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-documentation-tab.php' );
 
144
  break;
145
  }
146
  }
124
  } elseif ( isset( $_REQUEST['page'] ) && is_string( $_REQUEST['page'] ) && ( 'mla-settings-menu-' == substr( $_REQUEST['page'], 0, 18 ) ) ) {
125
  // Settings/Media Library Assistant current tab
126
  switch( substr( $_REQUEST['page'], 18 ) ) {
 
 
 
127
  case 'view':
128
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-view-tab.php' );
129
+ add_filter( 'set_screen_option_mla_views_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
130
+ break;
131
+ case 'upload':
132
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-upload-tab.php' );
133
+ add_filter( 'set_screen_option_mla_uploads_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
134
+ add_filter( 'set_screen_option_mla_types_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
135
  break;
136
  case 'shortcodes':
137
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-shortcodes-tab.php' );
138
+ add_filter( 'set_screen_option_mla_shortcode_templates_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
139
  break;
140
  case 'custom_field':
141
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-custom-fields-tab.php' );
142
+ add_filter( 'set_screen_option_mla_custom_field_rules_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
143
  break;
144
  case 'iptc_exif':
145
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-iptc-exif-tab.php' );
146
+ add_filter( 'set_screen_option_mla_iptc_exif_rules_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
147
  break;
148
  case 'documentation':
149
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings-documentation-tab.php' );
150
+ add_filter( 'set_screen_option_mla_example_plugins_per_page', 'MLASettings::mla_set_screen_option_filter', 10, 3 );
151
  break;
152
  }
153
  }
includes/class-mla-shortcode-support.php CHANGED
@@ -319,10 +319,10 @@ class MLAShortcode_Support {
319
  self::$attributes_errors['escaped'][] = 'content [' . $key . '] => ' . esc_html( $value );
320
  continue;
321
  }
322
-
323
  $new_attr[ $key ] = $value;
324
  }
325
-
326
  $attr = array_merge( $attr, $new_attr );
327
  }
328
  }
@@ -429,6 +429,7 @@ class MLAShortcode_Support {
429
  * and repair damage caused by link-breaks in the source text
430
  */
431
  $attr = self::mla_validate_attributes( $attr, $content );
 
432
 
433
  // Filter the attributes before $mla_page_parameter and "request:" prefix processing.
434
  $attr = apply_filters( 'mla_gallery_raw_attributes', $attr );
@@ -548,7 +549,7 @@ class MLAShortcode_Support {
548
  }
549
 
550
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'gallery', 'markup', 'arguments' );
551
- if ( !empty( $arguments ) ) {
552
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
553
  }
554
 
@@ -569,6 +570,7 @@ class MLAShortcode_Support {
569
  $replacement_values = MLAData::mla_expand_field_level_parameters( $attr_value, $attr, $page_values );
570
  $attr[ $attr_key ] = MLAData::mla_parse_template( $attr_value, $replacement_values );
571
  }
 
572
 
573
  // Merge gallery arguments with defaults, pass the query arguments on to mla_get_shortcode_attachments.
574
  $attr = apply_filters( 'mla_gallery_attributes', $attr );
@@ -611,7 +613,7 @@ class MLAShortcode_Support {
611
  if ( self::$mla_debug ) {
612
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug REQUEST', 'media-library-assistant' ) . '</strong> = ' . var_export( $_REQUEST, true ) );
613
 
614
- if ( !empty( self::$attributes_errors ) ) {
615
  if ( 'log' == self::$mla_debug ) {
616
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug attributes_errors', 'media-library-assistant' ) . '</strong> = ' . var_export( self::$attributes_errors['raw'], true ) );
617
  } else {
@@ -638,50 +640,50 @@ class MLAShortcode_Support {
638
  $attachments['found_rows'] = absint( $arguments['mla_paginate_rows'] );
639
  } else {
640
  // Look for negative phrases in keyword search
641
- if ( !empty( $attr['s'] ) ) {
642
- $term_delimiter = /* !empty( $attr['mla_term_delimiter'] ) ? $attr['mla_term_delimiter'] : */ ',';
643
- $negative_delimiter = !empty( $attr['mla_negative_delimiter'] ) ? $attr['mla_negative_delimiter'] : '/';
644
  $search_phrases = MLAQuery::mla_divide_search_string( $attr['s'], $term_delimiter, $negative_delimiter );
645
-
646
- if ( !empty( $search_phrases['negative'] ) ) {
647
  $negative_arguments = $attr;
648
  unset( $negative_arguments[ $mla_page_parameter ] );
649
  unset( $negative_arguments['nopaging'] );
650
  unset( $negative_arguments['offset'] );
651
  unset( $negative_arguments['paged'] );
652
  $negative_arguments['orderby'] = 'none';
653
- $save_excludes = explode( ',', !empty( $negative_arguments['exclude'] ) ? $negative_arguments['exclude'] : '' );
654
  $negative_arguments['exclude'] = '';
655
-
656
  $negative_arguments['s'] = $search_phrases['negative'];
657
  $negative_arguments['fields'] = 'ids';
658
  $excluded_items = self::mla_get_shortcode_attachments( $post->ID, $negative_arguments, false );
659
-
660
  $attr['s'] = $search_phrases['positive'];
661
  $attr['exclude'] = implode( ',', array_merge( $save_excludes, $excluded_items ) );
662
  }
663
  }
664
-
665
  // Look for negative phrases in taxonomy term keyword search
666
- if ( !empty( $attr['mla_terms_phrases'] ) ) {
667
- $term_delimiter = !empty( $attr['mla_term_delimiter'] ) ? $attr['mla_term_delimiter'] : ',';
668
- $negative_delimiter = !empty( $attr['mla_negative_delimiter'] ) ? $attr['mla_negative_delimiter'] : '/';
669
  $search_phrases = MLAQuery::mla_divide_search_string( $attr['mla_terms_phrases'], $term_delimiter, $negative_delimiter );
670
-
671
- if ( !empty( $search_phrases['negative'] ) ) {
672
  $negative_arguments = $attr;
673
  unset( $negative_arguments[ $mla_page_parameter ] );
674
  unset( $negative_arguments['nopaging'] );
675
  unset( $negative_arguments['offset'] );
676
  unset( $negative_arguments['paged'] );
677
  $negative_arguments['orderby'] = 'none';
678
- $save_excludes = explode( ',', !empty( $negative_arguments['exclude'] ) ? $negative_arguments['exclude'] : '' );
679
  $negative_arguments['exclude'] = '';
680
-
681
  $negative_arguments['mla_terms_phrases'] = $search_phrases['negative'];
682
  $negative_arguments['fields'] = 'ids';
683
  $excluded_items = self::mla_get_shortcode_attachments( $post->ID, $negative_arguments, false );
684
-
685
  $attr['mla_terms_phrases'] = $search_phrases['positive'];
686
  $attr['exclude'] = implode( ',', array_merge( $save_excludes, $excluded_items ) );
687
  }
@@ -751,7 +753,7 @@ class MLAShortcode_Support {
751
  if ( is_string( $arguments['mla_alt_shortcode'] ) ) {
752
  // Replace data-selection parameters with the "ids" list
753
  $blacklist = array_merge( self::$mla_get_shortcode_attachments_parameters, self::$mla_get_shortcode_dynamic_attachments_parameters );
754
-
755
  // Other MLA shortcodes use some of the same parameters, e.g., mla_link_href, so let them thru
756
  if ( !in_array( $arguments['mla_alt_shortcode'], array( 'mla_tag_cloud', 'mla_term_list' ) ) ) {
757
  $blacklist = array_merge( $mla_arguments, $blacklist );
@@ -818,7 +820,7 @@ class MLAShortcode_Support {
818
  add_filter( 'pre_get_posts', 'MLAShortcode_Support::_photonic_pre_get_posts', 10, 4 );
819
  add_filter( 'wp_get_attachment_image_src', 'MLAShortcode_Support::_get_attachment_featured_image', 10, 4 );
820
  }
821
-
822
  if ( ! empty( $content ) ) {
823
  $output .= do_shortcode( sprintf( '[%1$s %2$s %3$s]%4$s[/%1$s]', $arguments['mla_alt_shortcode'], $mla_alt_shortcode_ids, $mla_alt_shortcode_args, $content ) );
824
  } else {
@@ -906,7 +908,7 @@ class MLAShortcode_Support {
906
  $arguments['mla_viewer_limit'] = abs( 0.0 + $arguments['mla_viewer_limit'] );
907
 
908
  // Fill width and/or height from explicit intermediate size
909
- if ( ( empty( $attr['mla_viewer_width'] ) && empty( $attr['mla_viewer_height'] ) ) && !empty( $attr['size'] ) ) {
910
  $registered_dimensions = self::_registered_dimensions();
911
  if ( isset( $registered_dimensions[ $attr['size'] ] ) ) {
912
  $arguments['mla_viewer_width'] = absint( $registered_dimensions[ $attr['size'] ][0] );
@@ -1210,14 +1212,14 @@ class MLAShortcode_Support {
1210
  $base_file = isset( $post_meta['mla_wp_attached_file'] ) ? $post_meta['mla_wp_attached_file'] : '';
1211
  $sizes = isset( $post_meta['mla_wp_attachment_metadata']['sizes'] ) ? $post_meta['mla_wp_attachment_metadata']['sizes'] : array();
1212
 
1213
- if ( !empty( $post_meta['mla_wp_attachment_metadata']['width'] ) ) {
1214
  $item_values['width'] = $post_meta['mla_wp_attachment_metadata']['width'];
1215
  $width = absint( $item_values['width'] );
1216
  } else {
1217
  $width = 0;
1218
  }
1219
 
1220
- if ( !empty( $post_meta['mla_wp_attachment_metadata']['height'] ) ) {
1221
  $item_values['height'] = $post_meta['mla_wp_attachment_metadata']['height'];
1222
  $height = absint( $item_values['height'] );
1223
  } else {
@@ -1228,11 +1230,11 @@ class MLAShortcode_Support {
1228
  $item_values['orientation'] = ( $height > $width ) ? 'portrait' : 'landscape';
1229
  }
1230
 
1231
- if ( !empty( $post_meta['mla_wp_attachment_metadata']['image_meta'] ) ) {
1232
  $item_values['image_meta'] = var_export( $post_meta['mla_wp_attachment_metadata']['image_meta'], true );
1233
  }
1234
 
1235
- if ( !empty( $post_meta['mla_wp_attachment_image_alt'] ) ) {
1236
  if ( is_array( $post_meta['mla_wp_attachment_image_alt'] ) ) {
1237
  $item_values['image_alt'] = wptexturize( $post_meta['mla_wp_attachment_image_alt'][0] );
1238
  } else {
@@ -1480,14 +1482,14 @@ class MLAShortcode_Support {
1480
  'mla_download_file' => urlencode( $item_values['base_dir'] . '/' . $item_values['base_file'] ),
1481
  'mla_download_type' => $item_values['mime_type']
1482
  );
1483
-
1484
  if ( 'log' == $arguments['mla_debug'] ) {
1485
  $args['mla_debug'] = 'log';
1486
  }
1487
 
1488
  $item_values['downloadlink_url'] = add_query_arg( $args, MLA_PLUGIN_URL . 'includes/mla-file-downloader.php' );
1489
  $item_values['downloadlink'] = preg_replace( '"' . $matches[0][0] . '"', sprintf( 'href=\'%1$s\'', $item_values['downloadlink_url'] ), $item_values['filelink'] ); // */
1490
-
1491
  // AJAX-based Named Transfer link
1492
  $args = array(
1493
  'action' => 'mla_named_transfer',
@@ -1501,7 +1503,7 @@ class MLAShortcode_Support {
1501
 
1502
  $item_values['transferlink_url'] = add_query_arg( $args, admin_url( 'admin-ajax.php' ) );
1503
  $item_values['transferlink'] = preg_replace( '"' . $matches[0][0] . '"', sprintf( 'href=\'%1$s\'', $item_values['transferlink_url'] ), $item_values['filelink'] );
1504
-
1505
  // AJAX-based Named Transfer link for forced downloads
1506
  $args = array(
1507
  'action' => 'mla_named_transfer',
@@ -1518,7 +1520,7 @@ class MLAShortcode_Support {
1518
  } else {
1519
  $item_values['downloadlink_url'] = $item_values['filelink_url'];
1520
  $item_values['downloadlink'] = $item_values['filelink'];
1521
-
1522
  $item_values['transferlink_url'] = $item_values['filelink_url'];
1523
  $item_values['transferlink'] = $item_values['filelink'];
1524
  }
@@ -2005,9 +2007,9 @@ class MLAShortcode_Support {
2005
  }
2006
 
2007
  // Apply default arguments set in the markup template
2008
- if ( !empty( $template ) ) {
2009
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'tag-cloud', 'markup', 'arguments' );
2010
- if ( !empty( $arguments ) ) {
2011
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
2012
  }
2013
  }
@@ -2619,7 +2621,7 @@ class MLAShortcode_Support {
2619
 
2620
  if ( ! empty( $arguments['mla_link_class'] ) ) {
2621
  $class_attributes = self::_process_shortcode_parameter( $arguments['mla_link_class'], $item_values );
2622
- if ( !empty( $class_attributes ) ) {
2623
  $link_attributes .= 'class="' . $class_attributes . '" ';
2624
  }
2625
  }
@@ -3086,7 +3088,7 @@ class MLAShortcode_Support {
3086
 
3087
  $child_links = array();
3088
  $child_active = false;
3089
- if ( $is_hierarchical && !empty( $term->children ) ) {
3090
  $child_active = self::_compose_term_list( $item_values['children'], $child_links, $term->children, $markup_values, $arguments, $attr );
3091
  $markup_values['current_level'] = $current_level; // Changed in _compose_term_list
3092
  }
@@ -3106,7 +3108,7 @@ class MLAShortcode_Support {
3106
  $item_values = apply_filters( 'mla_term_list_item_values', $item_values );
3107
  $links[] = apply_filters( 'mla_term_list_item_parse', $item_values['thelink'], NULL, $item_values );
3108
 
3109
- if ( $is_hierarchical && !empty( $child_links ) ) {
3110
  $links = array_merge( $links, $child_links );
3111
  }
3112
  }
@@ -3315,7 +3317,7 @@ class MLAShortcode_Support {
3315
 
3316
  // Apply default arguments set in the markup template
3317
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'term-list', 'markup', 'arguments' );
3318
- if ( !empty( $arguments ) ) {
3319
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
3320
  }
3321
 
@@ -3468,7 +3470,7 @@ class MLAShortcode_Support {
3468
  $arguments['mla_markup'] = $default_markup;
3469
  }
3470
 
3471
- $mla_multi_select = !empty( $arguments['mla_multi_select'] ) && ( 'true' == strtolower( $arguments['mla_multi_select'] ) );
3472
 
3473
  $is_hierarchical = !( 'false' === $arguments['hierarchical'] );
3474
  $combine_hierarchical = 'combine' === $arguments['hierarchical'];
@@ -3495,7 +3497,7 @@ class MLAShortcode_Support {
3495
  }
3496
 
3497
  $tags = self::mla_get_terms( $arguments );
3498
- if ( !empty( $exclude_later ) ) {
3499
  $arguments['exclude'] = $exclude_later;
3500
  }
3501
 
@@ -3552,7 +3554,7 @@ class MLAShortcode_Support {
3552
  $arguments['option_none_text'] = __( 'no-terms', 'media-library-assistant' );
3553
  }
3554
 
3555
- if ( !empty( $arguments['option_none_value'] ) ) {
3556
  $option_none_value = self::_process_shortcode_parameter( $arguments['option_none_value'], $page_values );
3557
  if ( is_numeric( $option_none_value ) ) {
3558
  $option_none_id = intval( $option_none_value );
@@ -3602,11 +3604,11 @@ class MLAShortcode_Support {
3602
  $list = '';
3603
  }
3604
 
3605
- $add_all_option = ( $is_checklist || $is_dropdown ) && !empty( $arguments['option_all_text'] ) && !$show_empty;
3606
 
3607
  // Using the slug is a common practice and affects option_all_value
3608
  if ( $add_all_option ) {
3609
- if ( !empty( $arguments['option_all_value'] ) ) {
3610
  $option_all_value = self::_process_shortcode_parameter( $arguments['option_all_value'], $page_values );
3611
  if ( is_numeric( $option_all_value ) ) {
3612
  $option_all_id = intval( $option_all_value );
@@ -3853,7 +3855,7 @@ class MLAShortcode_Support {
3853
  // A shortcode must return its content to the caller, so "echo" makes no sense
3854
  $attr['echo'] = false;
3855
 
3856
- if ( !empty( $attr['mla_output'] ) ) {
3857
  switch ( $attr['mla_output'] ) {
3858
  case 'wp_list_categories':
3859
  return wp_list_categories( $attr );
@@ -3917,6 +3919,60 @@ class MLAShortcode_Support {
3917
  return MLAData::mla_parse_template( $new_text, $markup_values );
3918
  }
3919
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3920
  /**
3921
  * Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links'
3922
  *
@@ -3970,8 +4026,7 @@ class MLAShortcode_Support {
3970
  if ( $prev_next && $current_page && 1 < $current_page ) {
3971
  $markup_values['new_page'] = $current_page - 1;
3972
  $new_title = ( ! empty( $arguments['mla_rollover_text'] ) ) ? 'title="' . esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $markup_values ) ) . '" ' : '';
3973
- $new_url = remove_query_arg( $mla_page_parameter, $new_base );
3974
- $new_url = add_query_arg( array( $mla_page_parameter => $current_page - 1 ), $new_url );
3975
  $prev_text = ( ! empty( $arguments['mla_prev_text'] ) ) ? esc_attr( self::_process_shortcode_parameter( $arguments['mla_prev_text'], $markup_values ) ) : '&laquo; ' . __( 'Previous', 'media-library-assistant' );
3976
  $page_links[] = sprintf( '<a %1$sclass="prev page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
3977
  /* %1$s */ $new_target,
@@ -3996,8 +4051,7 @@ class MLAShortcode_Support {
3996
  } else {
3997
  if ( $show_all || ( $new_page <= $end_size || ( $current_page && $new_page >= $current_page - $mid_size && $new_page <= $current_page + $mid_size ) || $new_page > $last_page - $end_size ) ) {
3998
  // build link
3999
- $new_url = remove_query_arg( $mla_page_parameter, $new_base );
4000
- $new_url = add_query_arg( array( $mla_page_parameter => $new_page ), $new_url );
4001
  $page_links[] = sprintf( '<a %1$sclass="page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
4002
  /* %1$s */ $new_target,
4003
  /* %2$s */ $new_class,
@@ -4019,8 +4073,7 @@ class MLAShortcode_Support {
4019
  // build next link
4020
  $markup_values['new_page'] = $current_page + 1;
4021
  $new_title = ( ! empty( $arguments['mla_rollover_text'] ) ) ? 'title="' . esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $markup_values ) ) . '" ' : '';
4022
- $new_url = remove_query_arg( $mla_page_parameter, $new_base );
4023
- $new_url = add_query_arg( array( $mla_page_parameter => $current_page + 1 ), $new_url );
4024
  $next_text = ( ! empty( $arguments['mla_next_text'] ) ) ? esc_attr( self::_process_shortcode_parameter( $arguments['mla_next_text'], $markup_values ) ) : __( 'Next', 'media-library-assistant' ) . ' &raquo;';
4025
  $page_links[] = sprintf( '<a %1$sclass="next page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
4026
  /* %1$s */ $new_target,
@@ -4187,13 +4240,33 @@ class MLAShortcode_Support {
4187
  }
4188
 
4189
  $markup_values['http_host'] = $_SERVER['HTTP_HOST'];
 
 
 
 
 
 
4190
  if ( 0 < $new_page ) {
4191
- $new_uri = remove_query_arg( $mla_page_parameter, $_SERVER['REQUEST_URI'] );
4192
- $markup_values['request_uri'] = add_query_arg( array( $mla_page_parameter => $new_page ), $new_uri );
4193
- } else {
4194
- $markup_values['request_uri'] = $_SERVER['REQUEST_URI'];
4195
  }
4196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4197
  $markup_values['new_url'] = set_url_scheme( $markup_values['scheme'] . $markup_values['http_host'] . $markup_values['request_uri'] );
4198
  $markup_values = apply_filters( 'mla_gallery_pagination_values', $markup_values );
4199
 
@@ -4296,6 +4369,7 @@ class MLAShortcode_Support {
4296
  */
4297
  private static function _validate_array_specification( $specification ) {
4298
  //error_log( __LINE__ . " _validate_array_specification() specification = " . var_export( $specification, true ), 0 );
 
4299
  // Check for outer array specification(s) and reject anything else.
4300
  if ( 1 !== preg_match( '/^array\s*\((.*)\)[\s\,]*$/', $specification, $matches ) ) {
4301
  return false;
@@ -4312,7 +4386,7 @@ class MLAShortcode_Support {
4312
  if ( false === self::_validate_array_specification( $search ) ) {
4313
  return false;
4314
  }
4315
-
4316
  $interior = str_replace( $search, 'ARRAY', $interior );
4317
  }
4318
  //error_log( __LINE__ . " _validate_array_specification() recursion interior = " . var_export( $interior, true ), 0 );
@@ -4323,33 +4397,33 @@ class MLAShortcode_Support {
4323
  $interior = trim( substr( $interior, 5 ), ' ,' );
4324
  continue;
4325
  }
4326
-
4327
  // Look for a nested array
4328
  if ( 1 === preg_match( '/^(array\s*\(.*\))(.*)$/', $interior, $matches ) ) {
4329
  //error_log( __LINE__ . " _validate_array_specification() matches = " . var_export( $matches, true ), 0 );
4330
  if ( false === self::_validate_array_specification( $matches[1] ) ) {
4331
  return false;
4332
  }
4333
-
4334
  $interior = trim( $matches[2], ' ,' );
4335
  continue;
4336
  }
4337
-
4338
  // PHP "undefined constant" pattern: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
4339
-
4340
  // Look for 'key' => value
4341
  if ( 1 === preg_match( '/^((([\'\"](.+?)[\'\"])|(\d+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))\s*\=\>\s*)(([\'\"](.*?)[\'\"])|(\d+)|(\w{4,5}))(.*)$/', $interior, $matches /*, PREG_OFFSET_CAPTURE */ ) ) {
4342
  //error_log( __LINE__ . " _validate_array_specification() key => value matches = " . var_export( $matches, true ), 0 );
4343
-
4344
  // Validate boolean and array() values
4345
- if ( !empty( $matches[11] ) ) {
4346
  //error_log( __LINE__ . " _validate_array_specification() boolean and array() matches = " . var_export( $matches[10], true ), 0 );
4347
  if ( false === in_array( strtolower( $matches[11] ), array( 'false', 'true', 'array' ) ) ) {
4348
  //error_log( __LINE__ . " _validate_array_specification() FAILED boolean matches = " . var_export( $matches[7], true ), 0 );
4349
  return false;
4350
  }
4351
  }
4352
-
4353
  $interior = trim( $matches[12], ' ,' );
4354
  continue;
4355
  }
@@ -4357,7 +4431,7 @@ class MLAShortcode_Support {
4357
  // Look for simple quoted string, integer value or "undefined constant", e.g., in 'terms' =>
4358
  if ( 1 === preg_match( '/^(([\'\"](.+?)[\'\"])|(\d+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))(.*)$/', $interior, $matches ) ) {
4359
  //error_log( __LINE__ . " _validate_array_specification() simple matches = " . var_export( $matches, true ), 0 );
4360
-
4361
  $interior = trim( $matches[5], ' ,' );
4362
  continue;
4363
  }
@@ -4365,7 +4439,7 @@ class MLAShortcode_Support {
4365
  //error_log( __LINE__ . " _validate_array_specification() FAILED interior = " . var_export( $interior, true ), 0 );
4366
  return false;
4367
  }
4368
-
4369
  //error_log( __LINE__ . " _validate_array_specification() GOOD interior = " . var_export( $interior, true ), 0 );
4370
  return true;
4371
  }
@@ -4624,6 +4698,21 @@ class MLAShortcode_Support {
4624
  // 'tax_include_children' => true (default), false
4625
  );
4626
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4627
  /**
4628
  * Parses shortcode parameters and returns the gallery objects
4629
  *
@@ -4703,7 +4792,7 @@ class MLAShortcode_Support {
4703
  }
4704
  }
4705
 
4706
- if ( !empty( $arguments['ids'] ) ) {
4707
  // 'ids' is explicitly ordered, unless you specify otherwise.
4708
  if ( empty( $attr['orderby'] ) ) {
4709
  $arguments['orderby'] = 'post__in';
@@ -4726,17 +4815,20 @@ class MLAShortcode_Support {
4726
  $simple_tax_queries = array();
4727
  foreach ( $attr as $key => $value ) {
4728
  if ( 'tax_query' === $key ) {
 
 
 
 
 
4729
  if ( is_array( $value ) ) {
4730
  $query_arguments[ $key ] = $value;
4731
  self::$mla_get_shortcode_dynamic_attachments_parameters[ $key ] = $value;
4732
  } else {
4733
  $value = self::_sanitize_query_specification( $value );
4734
- //error_log( __LINE__ . " mla_get_shortcode_attachments() value = " . var_export( $value, true ), 0 );
4735
 
4736
  // Replace invalid queries from "where-used" callers with a harmless equivalent
4737
  if ( $where_used_query && ( ( 'false' === $value ) || ( false !== strpos( $value, '{+' ) ) ) ) {
4738
  $value = "array( array( 'taxonomy' => 'none', 'field' => 'slug', 'terms' => 'none' ) )";
4739
- //error_log( __LINE__ . " mla_get_shortcode_attachments() value = " . var_export( $value, true ), 0 );
4740
  }
4741
 
4742
  try {
@@ -4747,28 +4839,13 @@ class MLAShortcode_Support {
4747
  $tax_query = NULL;
4748
  }
4749
 
4750
- /* try {
4751
- $function = @create_function('', 'return ' . $value . ';' );
4752
- } catch ( Throwable $e ) { // PHP 7
4753
- $function = NULL;
4754
- } catch ( Exception $e ) { // PHP 5
4755
- $function = NULL;
4756
- }
4757
-
4758
- if ( is_callable( $function ) ) {
4759
- $tax_query = $function();
4760
- } else {
4761
- $tax_query = NULL;
4762
-
4763
- } // */
4764
-
4765
  if ( is_array( $tax_query ) ) {
4766
  // Check for no.terms.assigned
4767
  foreach ( $tax_query as $tax_query_key => $tax_query_element ) {
4768
  if ( !is_array( $tax_query_element ) ) {
4769
  continue;
4770
  }
4771
-
4772
  if ( isset( $tax_query_element['taxonomy'] ) ) {
4773
  $tax_query_taxonomy = $tax_query_element['taxonomy'];
4774
  } else {
@@ -4782,7 +4859,7 @@ class MLAShortcode_Support {
4782
  ) );
4783
  }
4784
  }
4785
-
4786
  $query_arguments[ $key ] = $tax_query;
4787
  self::$mla_get_shortcode_dynamic_attachments_parameters[ $key ] = $value;
4788
  break; // Done - the tax_query overrides all other taxonomy parameters
@@ -4905,13 +4982,19 @@ class MLAShortcode_Support {
4905
  self::$mla_get_shortcode_dynamic_attachments_parameters['tax_include_children'] = $attr['tax_include_children'];
4906
  }
4907
 
4908
- // Convert lists to arrays
4909
  if ( is_string( $arguments['post_type'] ) ) {
4910
- $arguments['post_type'] = explode( ',', $arguments['post_type'] );
 
 
 
4911
  }
4912
 
4913
  if ( is_string( $arguments['post_status'] ) ) {
4914
- $arguments['post_status'] = explode( ',', $arguments['post_status'] );
 
 
 
4915
  }
4916
 
4917
  // $query_arguments has been initialized in the taxonomy code above.
@@ -5092,7 +5175,6 @@ class MLAShortcode_Support {
5092
  case 'whole_word':
5093
  case 'sentence':
5094
  case 'exact':
5095
- //error_log( __LINE__ . " mla_gallery_shortcode( $key) value = " . var_export( $value, true ), 0 );
5096
  if ( ! empty( $value ) && ( 'true' == strtolower( $value ) ) ) {
5097
  MLAQuery::$search_parameters[ $key ] = true;
5098
  } else {
@@ -5191,20 +5273,6 @@ class MLAShortcode_Support {
5191
  $date_query = NULL;
5192
  }
5193
 
5194
- /* try {
5195
- $function = @create_function('', 'return ' . $value . ';' );
5196
- } catch ( Throwable $e ) { // PHP 7
5197
- $function = NULL;
5198
- } catch ( Exception $e ) { // PHP 5
5199
- $function = NULL;
5200
- }
5201
-
5202
- if ( is_callable( $function ) ) {
5203
- $date_query = $function();
5204
- } else {
5205
- $date_query = NULL;
5206
- } // */
5207
-
5208
  if ( is_array( $date_query ) ) {
5209
  $query_arguments[ $key ] = $date_query;
5210
  } else {
@@ -5236,20 +5304,6 @@ class MLAShortcode_Support {
5236
  $meta_query = NULL;
5237
  }
5238
 
5239
- /* try {
5240
- $function = @create_function('', 'return ' . $value . ';' );
5241
- } catch ( Throwable $e ) { // PHP 7
5242
- $function = NULL;
5243
- } catch ( Exception $e ) { // PHP 5
5244
- $function = NULL;
5245
- }
5246
-
5247
- if ( is_callable( $function ) ) {
5248
- $meta_query = $function();
5249
- } else {
5250
- $meta_query = NULL;
5251
- } // */
5252
-
5253
  if ( is_array( $meta_query ) ) {
5254
  $query_arguments[ $key ] = $meta_query;
5255
  } else {
@@ -5411,9 +5465,9 @@ class MLAShortcode_Support {
5411
  MLAQuery::$search_parameters['mla_terms_search']['radio_terms'] = MLAQuery::$search_parameters['mla_term_connector'];
5412
  }
5413
 
5414
- MLAQuery::$search_parameters['mla_terms_search']['whole_word'] = !empty( MLAQuery::$search_parameters['whole_word'] );
5415
- MLAQuery::$search_parameters['mla_terms_search']['exact'] = !empty( MLAQuery::$search_parameters['exact'] );
5416
- MLAQuery::$search_parameters['mla_terms_search']['sentence'] = !empty( MLAQuery::$search_parameters['sentence'] );
5417
  }
5418
 
5419
  // Remove terms-search-specific parameters
@@ -5432,11 +5486,11 @@ class MLAShortcode_Support {
5432
  if ( in_array( 'alt-text', MLAQuery::$search_parameters['mla_search_fields'] ) ) {
5433
  self::$query_parameters[MLAQuery::MLA_ALT_TEXT_SUBQUERY] = true;
5434
  }
5435
-
5436
  if ( in_array( 'file', MLAQuery::$search_parameters['mla_search_fields'] ) ) {
5437
  self::$query_parameters[MLAQuery::MLA_FILE_SUBQUERY] = true;
5438
  }
5439
-
5440
  // Look for keyword search including 'terms'
5441
  foreach ( MLAQuery::$search_parameters['mla_search_fields'] as $index => $field ) {
5442
  if ( 'terms' == $field ) {
@@ -5493,9 +5547,19 @@ class MLAShortcode_Support {
5493
  $query_arguments = apply_filters( 'mla_get_shortcode_attachments_final_terms', $query_arguments, $return_found_rows );
5494
  }
5495
 
 
 
 
 
 
5496
  MLAShortcodes::$mla_gallery_wp_query_object = new WP_Query;
5497
  $attachments = MLAShortcodes::$mla_gallery_wp_query_object->query( $query_arguments );
5498
 
 
 
 
 
 
5499
  /*
5500
  * $return_found_rows is used to indicate that the call comes from gallery_shortcode(),
5501
  * which is the only call that supplies it.
@@ -5649,6 +5713,11 @@ class MLAShortcode_Support {
5649
  }
5650
  }
5651
 
 
 
 
 
 
5652
  if ( self::$mla_debug && ( $old_clause != $where_clause ) ) {
5653
  MLACore::mla_debug_add( '<strong>' . __( 'mla_debug modified WHERE filter', 'media-library-assistant' ) . '</strong> = ' . var_export( $where_clause, true ) );
5654
  }
@@ -5842,8 +5911,8 @@ class MLAShortcode_Support {
5842
 
5843
  $arguments['minimum'] = 0;
5844
  $arguments['post_mime_type'] = 'all';
5845
-
5846
- if ( 'count' ==strtolower( $arguments['orderby'] ) ) {
5847
  $arguments['orderby'] = 'none';
5848
  }
5849
 
@@ -5854,7 +5923,7 @@ class MLAShortcode_Support {
5854
  unset( $field_array[ $index ] );
5855
  }
5856
  }
5857
-
5858
  $field_array[] = ' tt.count';
5859
  $arguments['post_mime_type'] = 'all';
5860
  break;
@@ -5862,6 +5931,24 @@ class MLAShortcode_Support {
5862
  $no_count = false;
5863
  }
5864
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5865
  $clauses['fields'] = implode( ',', $field_array );
5866
  $clause = array ( 'INNER JOIN `' . $wpdb->term_taxonomy . '` AS tt ON t.term_id = tt.term_id' );
5867
  $clause_parameters = array();
@@ -5878,7 +5965,7 @@ class MLAShortcode_Support {
5878
  }
5879
  } else {
5880
  $clause[] = 'LEFT JOIN `' . $wpdb->term_relationships . '` AS tr ON tt.term_taxonomy_id = tr.term_taxonomy_id';
5881
- $clause[] = 'LEFT JOIN `' . $wpdb->posts . '` AS p ON tr.object_id = p.ID';
5882
 
5883
  // Add type and status constraints
5884
  if ( is_array( $arguments['post_type'] ) ) {
@@ -5909,11 +5996,11 @@ class MLAShortcode_Support {
5909
  }
5910
  }
5911
 
5912
- $clause[] = 'AND p.post_status IN (' . join( ',', $placeholders ) . ')';
5913
  }
5914
 
5915
  $clause = join(' ', $clause);
5916
- if ( !empty( $clause_parameters ) ) {
5917
  $clauses['join'] = $wpdb->prepare( $clause, $clause_parameters );
5918
  } else {
5919
  $clauses['join'] = $clause;
@@ -5997,7 +6084,7 @@ class MLAShortcode_Support {
5997
  }
5998
 
5999
  $clause = join(' ', $clause);
6000
- if ( !empty( $clause_parameters ) ) {
6001
  $clauses['where'] = $wpdb->prepare( $clause, $clause_parameters );
6002
  } else {
6003
  $clauses['where'] = $clause;
@@ -6011,22 +6098,33 @@ class MLAShortcode_Support {
6011
 
6012
  // Add sort order
6013
  if ( 'none' !== strtolower( $arguments['orderby'] ) ) {
6014
- if ( 'true' == strtolower( $arguments['preserve_case'] ) ) {
6015
- $binary_keys = array( 'name', 'slug', );
 
 
 
 
 
 
 
6016
  } else {
6017
- $binary_keys = array();
6018
- }
6019
-
6020
- $allowed_keys = array(
6021
- 'empty_orderby_default' => 'name',
6022
- 'count' => 'count',
6023
- 'id' => 'term_id',
6024
- 'name' => 'name',
6025
- 'random' => 'RAND()',
6026
- 'slug' => 'slug',
6027
- );
6028
-
6029
- $clauses['orderby'] = 'ORDER BY ' . self::_validate_sql_orderby( $arguments, '', $allowed_keys, $binary_keys );
 
 
 
 
6030
  } else {
6031
  $clauses['orderby'] = '';
6032
  }
@@ -6077,7 +6175,7 @@ class MLAShortcode_Support {
6077
  // $final_clauses, if present, require an SQL subquery
6078
  $final_clauses = array();
6079
 
6080
- if ( !empty( $clauses['orderby'] ) && 'ORDER BY count DESC' != $clauses['orderby'] ) {
6081
  $final_clauses[] = $clauses['orderby'];
6082
  }
6083
 
@@ -6152,14 +6250,17 @@ class MLAShortcode_Support {
6152
 
6153
  $child_of = ! empty( $arguments['child_of'] ) ? absint( $arguments['child_of'] ) : NULL;
6154
  $include_tree = ! empty( $arguments['include_tree'] ) ? wp_parse_id_list( $arguments['include_tree'] ) : NULL;
6155
- $exclude_tree = empty( $include_tree ) && !empty( $arguments['exclude_tree'] ) ? wp_parse_id_list( $arguments['exclude_tree'] ) : NULL;
6156
 
6157
- $depth = !empty( $arguments['depth'] ) ? absint( $arguments['depth'] ) : 0;
6158
  $term_tree = array();
6159
  $root_ids = array();
6160
  $parents = array();
6161
  $child_ids = array();
6162
- foreach( $terms as $term ) {
 
 
 
6163
  // TODO Make this conditional on $arguments['link']
6164
  $link = get_edit_tag_link( $term->term_id, $term->taxonomy );
6165
  if ( ! is_wp_error( $link ) ) {
@@ -6196,7 +6297,7 @@ class MLAShortcode_Support {
6196
  $root_ids[ $taxonomy ] = array();
6197
  }
6198
 
6199
- while ( !empty( $tax_parents ) ) {
6200
  foreach( $tax_parents as $parent_id => $children ) {
6201
  foreach( $children as $index => $child ) {
6202
  if ( ! array_key_exists( $child->term_id, $tax_parents ) ) {
@@ -6273,14 +6374,41 @@ class MLAShortcode_Support {
6273
  }
6274
  }
6275
 
 
 
 
6276
  $term_tree[ $taxonomy ]['found_rows'] = $term_count;
6277
  $all_terms_count += $term_count;
6278
- }
6279
 
6280
  $term_tree['found_rows'] = $all_terms_count;
6281
  return $term_tree;
6282
  } // _get_term_tree
6283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6284
  /**
6285
  * Find a term that matches $child_of
6286
  *
@@ -6322,7 +6450,7 @@ class MLAShortcode_Support {
6322
  foreach( $terms as $term ) {
6323
  if ( in_array( $term->term_id, $include_tree ) ) {
6324
  $new_tree[] = $term;
6325
- } elseif ( !empty( $term->children ) ) {
6326
  $result = self::_find_include_tree( $term->children, $include_tree );
6327
  if ( false !== $result ) {
6328
  $new_tree = array_merge( $new_tree, $result );
@@ -6351,7 +6479,7 @@ class MLAShortcode_Support {
6351
  foreach( $terms as $index => $term ) {
6352
  if ( in_array( $term->term_id, $exclude_tree ) ) {
6353
  unset( $terms[ $index ] );
6354
- } elseif ( !empty( $term->children ) ) {
6355
  self::_remove_exclude_tree( $term->children, $exclude_tree );
6356
  }
6357
  }
@@ -6459,8 +6587,8 @@ class MLAShortcode_Support {
6459
  // Touch every ancestor's lookup row for each post in each term
6460
  foreach ( $term_ids as $term_id ) {
6461
  $child = $term_id;
6462
- while ( !empty( $terms_by_id[ $child] ) && $parent = $terms_by_id[ $child ]->parent ) {
6463
- if ( !empty( $term_items[ $term_id ] ) ) {
6464
  foreach ( $term_items[ $term_id ] as $item_id => $touches ) {
6465
  $term_items[ $parent ][ $item_id ] = isset( $term_items[ $parent ][ $item_id ] ) ? ++$term_items[ $parent ][ $item_id ]: 1;
6466
  }
319
  self::$attributes_errors['escaped'][] = 'content [' . $key . '] => ' . esc_html( $value );
320
  continue;
321
  }
322
+
323
  $new_attr[ $key ] = $value;
324
  }
325
+
326
  $attr = array_merge( $attr, $new_attr );
327
  }
328
  }
429
  * and repair damage caused by link-breaks in the source text
430
  */
431
  $attr = self::mla_validate_attributes( $attr, $content );
432
+ //error_log( __LINE__ . " mla_gallery_shortcode() attr = " . var_export( $attr, true ), 0 );
433
 
434
  // Filter the attributes before $mla_page_parameter and "request:" prefix processing.
435
  $attr = apply_filters( 'mla_gallery_raw_attributes', $attr );
549
  }
550
 
551
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'gallery', 'markup', 'arguments' );
552
+ if ( ! empty( $arguments ) ) {
553
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
554
  }
555
 
570
  $replacement_values = MLAData::mla_expand_field_level_parameters( $attr_value, $attr, $page_values );
571
  $attr[ $attr_key ] = MLAData::mla_parse_template( $attr_value, $replacement_values );
572
  }
573
+ //error_log( __LINE__ . " mla_gallery_shortcode() attr = " . var_export( $attr, true ), 0 );
574
 
575
  // Merge gallery arguments with defaults, pass the query arguments on to mla_get_shortcode_attachments.
576
  $attr = apply_filters( 'mla_gallery_attributes', $attr );
613
  if ( self::$mla_debug ) {
614
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug REQUEST', 'media-library-assistant' ) . '</strong> = ' . var_export( $_REQUEST, true ) );
615
 
616
+ if ( ! empty( self::$attributes_errors ) ) {
617
  if ( 'log' == self::$mla_debug ) {
618
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug attributes_errors', 'media-library-assistant' ) . '</strong> = ' . var_export( self::$attributes_errors['raw'], true ) );
619
  } else {
640
  $attachments['found_rows'] = absint( $arguments['mla_paginate_rows'] );
641
  } else {
642
  // Look for negative phrases in keyword search
643
+ if ( ! empty( $attr['s'] ) ) {
644
+ $term_delimiter = /* ! empty( $attr['mla_term_delimiter'] ) ? $attr['mla_term_delimiter'] : */ ',';
645
+ $negative_delimiter = ! empty( $attr['mla_negative_delimiter'] ) ? $attr['mla_negative_delimiter'] : '/';
646
  $search_phrases = MLAQuery::mla_divide_search_string( $attr['s'], $term_delimiter, $negative_delimiter );
647
+
648
+ if ( ! empty( $search_phrases['negative'] ) ) {
649
  $negative_arguments = $attr;
650
  unset( $negative_arguments[ $mla_page_parameter ] );
651
  unset( $negative_arguments['nopaging'] );
652
  unset( $negative_arguments['offset'] );
653
  unset( $negative_arguments['paged'] );
654
  $negative_arguments['orderby'] = 'none';
655
+ $save_excludes = explode( ',', ! empty( $negative_arguments['exclude'] ) ? $negative_arguments['exclude'] : '' );
656
  $negative_arguments['exclude'] = '';
657
+
658
  $negative_arguments['s'] = $search_phrases['negative'];
659
  $negative_arguments['fields'] = 'ids';
660
  $excluded_items = self::mla_get_shortcode_attachments( $post->ID, $negative_arguments, false );
661
+
662
  $attr['s'] = $search_phrases['positive'];
663
  $attr['exclude'] = implode( ',', array_merge( $save_excludes, $excluded_items ) );
664
  }
665
  }
666
+
667
  // Look for negative phrases in taxonomy term keyword search
668
+ if ( ! empty( $attr['mla_terms_phrases'] ) ) {
669
+ $term_delimiter = ! empty( $attr['mla_term_delimiter'] ) ? $attr['mla_term_delimiter'] : ',';
670
+ $negative_delimiter = ! empty( $attr['mla_negative_delimiter'] ) ? $attr['mla_negative_delimiter'] : '/';
671
  $search_phrases = MLAQuery::mla_divide_search_string( $attr['mla_terms_phrases'], $term_delimiter, $negative_delimiter );
672
+
673
+ if ( ! empty( $search_phrases['negative'] ) ) {
674
  $negative_arguments = $attr;
675
  unset( $negative_arguments[ $mla_page_parameter ] );
676
  unset( $negative_arguments['nopaging'] );
677
  unset( $negative_arguments['offset'] );
678
  unset( $negative_arguments['paged'] );
679
  $negative_arguments['orderby'] = 'none';
680
+ $save_excludes = explode( ',', ! empty( $negative_arguments['exclude'] ) ? $negative_arguments['exclude'] : '' );
681
  $negative_arguments['exclude'] = '';
682
+
683
  $negative_arguments['mla_terms_phrases'] = $search_phrases['negative'];
684
  $negative_arguments['fields'] = 'ids';
685
  $excluded_items = self::mla_get_shortcode_attachments( $post->ID, $negative_arguments, false );
686
+
687
  $attr['mla_terms_phrases'] = $search_phrases['positive'];
688
  $attr['exclude'] = implode( ',', array_merge( $save_excludes, $excluded_items ) );
689
  }
753
  if ( is_string( $arguments['mla_alt_shortcode'] ) ) {
754
  // Replace data-selection parameters with the "ids" list
755
  $blacklist = array_merge( self::$mla_get_shortcode_attachments_parameters, self::$mla_get_shortcode_dynamic_attachments_parameters );
756
+
757
  // Other MLA shortcodes use some of the same parameters, e.g., mla_link_href, so let them thru
758
  if ( !in_array( $arguments['mla_alt_shortcode'], array( 'mla_tag_cloud', 'mla_term_list' ) ) ) {
759
  $blacklist = array_merge( $mla_arguments, $blacklist );
820
  add_filter( 'pre_get_posts', 'MLAShortcode_Support::_photonic_pre_get_posts', 10, 4 );
821
  add_filter( 'wp_get_attachment_image_src', 'MLAShortcode_Support::_get_attachment_featured_image', 10, 4 );
822
  }
823
+
824
  if ( ! empty( $content ) ) {
825
  $output .= do_shortcode( sprintf( '[%1$s %2$s %3$s]%4$s[/%1$s]', $arguments['mla_alt_shortcode'], $mla_alt_shortcode_ids, $mla_alt_shortcode_args, $content ) );
826
  } else {
908
  $arguments['mla_viewer_limit'] = abs( 0.0 + $arguments['mla_viewer_limit'] );
909
 
910
  // Fill width and/or height from explicit intermediate size
911
+ if ( ( empty( $attr['mla_viewer_width'] ) && empty( $attr['mla_viewer_height'] ) ) && ! empty( $attr['size'] ) ) {
912
  $registered_dimensions = self::_registered_dimensions();
913
  if ( isset( $registered_dimensions[ $attr['size'] ] ) ) {
914
  $arguments['mla_viewer_width'] = absint( $registered_dimensions[ $attr['size'] ][0] );
1212
  $base_file = isset( $post_meta['mla_wp_attached_file'] ) ? $post_meta['mla_wp_attached_file'] : '';
1213
  $sizes = isset( $post_meta['mla_wp_attachment_metadata']['sizes'] ) ? $post_meta['mla_wp_attachment_metadata']['sizes'] : array();
1214
 
1215
+ if ( ! empty( $post_meta['mla_wp_attachment_metadata']['width'] ) ) {
1216
  $item_values['width'] = $post_meta['mla_wp_attachment_metadata']['width'];
1217
  $width = absint( $item_values['width'] );
1218
  } else {
1219
  $width = 0;
1220
  }
1221
 
1222
+ if ( ! empty( $post_meta['mla_wp_attachment_metadata']['height'] ) ) {
1223
  $item_values['height'] = $post_meta['mla_wp_attachment_metadata']['height'];
1224
  $height = absint( $item_values['height'] );
1225
  } else {
1230
  $item_values['orientation'] = ( $height > $width ) ? 'portrait' : 'landscape';
1231
  }
1232
 
1233
+ if ( ! empty( $post_meta['mla_wp_attachment_metadata']['image_meta'] ) ) {
1234
  $item_values['image_meta'] = var_export( $post_meta['mla_wp_attachment_metadata']['image_meta'], true );
1235
  }
1236
 
1237
+ if ( ! empty( $post_meta['mla_wp_attachment_image_alt'] ) ) {
1238
  if ( is_array( $post_meta['mla_wp_attachment_image_alt'] ) ) {
1239
  $item_values['image_alt'] = wptexturize( $post_meta['mla_wp_attachment_image_alt'][0] );
1240
  } else {
1482
  'mla_download_file' => urlencode( $item_values['base_dir'] . '/' . $item_values['base_file'] ),
1483
  'mla_download_type' => $item_values['mime_type']
1484
  );
1485
+
1486
  if ( 'log' == $arguments['mla_debug'] ) {
1487
  $args['mla_debug'] = 'log';
1488
  }
1489
 
1490
  $item_values['downloadlink_url'] = add_query_arg( $args, MLA_PLUGIN_URL . 'includes/mla-file-downloader.php' );
1491
  $item_values['downloadlink'] = preg_replace( '"' . $matches[0][0] . '"', sprintf( 'href=\'%1$s\'', $item_values['downloadlink_url'] ), $item_values['filelink'] ); // */
1492
+
1493
  // AJAX-based Named Transfer link
1494
  $args = array(
1495
  'action' => 'mla_named_transfer',
1503
 
1504
  $item_values['transferlink_url'] = add_query_arg( $args, admin_url( 'admin-ajax.php' ) );
1505
  $item_values['transferlink'] = preg_replace( '"' . $matches[0][0] . '"', sprintf( 'href=\'%1$s\'', $item_values['transferlink_url'] ), $item_values['filelink'] );
1506
+
1507
  // AJAX-based Named Transfer link for forced downloads
1508
  $args = array(
1509
  'action' => 'mla_named_transfer',
1520
  } else {
1521
  $item_values['downloadlink_url'] = $item_values['filelink_url'];
1522
  $item_values['downloadlink'] = $item_values['filelink'];
1523
+
1524
  $item_values['transferlink_url'] = $item_values['filelink_url'];
1525
  $item_values['transferlink'] = $item_values['filelink'];
1526
  }
2007
  }
2008
 
2009
  // Apply default arguments set in the markup template
2010
+ if ( ! empty( $template ) ) {
2011
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'tag-cloud', 'markup', 'arguments' );
2012
+ if ( ! empty( $arguments ) ) {
2013
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
2014
  }
2015
  }
2621
 
2622
  if ( ! empty( $arguments['mla_link_class'] ) ) {
2623
  $class_attributes = self::_process_shortcode_parameter( $arguments['mla_link_class'], $item_values );
2624
+ if ( ! empty( $class_attributes ) ) {
2625
  $link_attributes .= 'class="' . $class_attributes . '" ';
2626
  }
2627
  }
3088
 
3089
  $child_links = array();
3090
  $child_active = false;
3091
+ if ( $is_hierarchical && ! empty( $term->children ) ) {
3092
  $child_active = self::_compose_term_list( $item_values['children'], $child_links, $term->children, $markup_values, $arguments, $attr );
3093
  $markup_values['current_level'] = $current_level; // Changed in _compose_term_list
3094
  }
3108
  $item_values = apply_filters( 'mla_term_list_item_values', $item_values );
3109
  $links[] = apply_filters( 'mla_term_list_item_parse', $item_values['thelink'], NULL, $item_values );
3110
 
3111
+ if ( $is_hierarchical && ! empty( $child_links ) ) {
3112
  $links = array_merge( $links, $child_links );
3113
  }
3114
  }
3317
 
3318
  // Apply default arguments set in the markup template
3319
  $arguments = MLATemplate_Support::mla_fetch_custom_template( $template, 'term-list', 'markup', 'arguments' );
3320
+ if ( ! empty( $arguments ) ) {
3321
  $attr = wp_parse_args( $attr, self::mla_validate_attributes( array(), $arguments ) );
3322
  }
3323
 
3470
  $arguments['mla_markup'] = $default_markup;
3471
  }
3472
 
3473
+ $mla_multi_select = ! empty( $arguments['mla_multi_select'] ) && ( 'true' == strtolower( $arguments['mla_multi_select'] ) );
3474
 
3475
  $is_hierarchical = !( 'false' === $arguments['hierarchical'] );
3476
  $combine_hierarchical = 'combine' === $arguments['hierarchical'];
3497
  }
3498
 
3499
  $tags = self::mla_get_terms( $arguments );
3500
+ if ( ! empty( $exclude_later ) ) {
3501
  $arguments['exclude'] = $exclude_later;
3502
  }
3503
 
3554
  $arguments['option_none_text'] = __( 'no-terms', 'media-library-assistant' );
3555
  }
3556
 
3557
+ if ( ! empty( $arguments['option_none_value'] ) ) {
3558
  $option_none_value = self::_process_shortcode_parameter( $arguments['option_none_value'], $page_values );
3559
  if ( is_numeric( $option_none_value ) ) {
3560
  $option_none_id = intval( $option_none_value );
3604
  $list = '';
3605
  }
3606
 
3607
+ $add_all_option = ( $is_checklist || $is_dropdown ) && ! empty( $arguments['option_all_text'] ) && !$show_empty;
3608
 
3609
  // Using the slug is a common practice and affects option_all_value
3610
  if ( $add_all_option ) {
3611
+ if ( ! empty( $arguments['option_all_value'] ) ) {
3612
  $option_all_value = self::_process_shortcode_parameter( $arguments['option_all_value'], $page_values );
3613
  if ( is_numeric( $option_all_value ) ) {
3614
  $option_all_id = intval( $option_all_value );
3855
  // A shortcode must return its content to the caller, so "echo" makes no sense
3856
  $attr['echo'] = false;
3857
 
3858
+ if ( ! empty( $attr['mla_output'] ) ) {
3859
  switch ( $attr['mla_output'] ) {
3860
  case 'wp_list_categories':
3861
  return wp_list_categories( $attr );
3919
  return MLAData::mla_parse_template( $new_text, $markup_values );
3920
  }
3921
 
3922
+ /**
3923
+ * Replaces or removes a query argument, preserving url encoding
3924
+ *
3925
+ * @since 2.84
3926
+ *
3927
+ * @param string argument name
3928
+ * @param mixed argument value (string) or false to remove argument
3929
+ * @param string url
3930
+ *
3931
+ * @return string url with argument replaced
3932
+ */
3933
+ private static function _replace_query_parameter( $key, $value, $url ) {
3934
+ $parts = wp_parse_url( $url );
3935
+ if ( empty( $parts['path'] ) ) {
3936
+ $parts['path'] = '';
3937
+ }
3938
+
3939
+ $clean_query = '';
3940
+ if ( empty( $parts['query'] ) ) {
3941
+ // No existing query arguments; create query if requested
3942
+ if ( false !== $value ) {
3943
+ $clean_query = '?' . urlencode( $key ) . '=' . urlencode( $value );
3944
+ }
3945
+ } else {
3946
+ parse_str( $parts['query'], $query );
3947
+
3948
+ $query_prefix = '?';
3949
+ $add_it = true;
3950
+ foreach ( $query as $query_key => $query_value ) {
3951
+ // Query argument names cannot have URL special characters
3952
+ if ( $query_key === urldecode( $query_key ) ) {
3953
+ if ( $key === $query_key ) {
3954
+ $add_it = false;
3955
+ // Deleting argument?
3956
+ if ( false === $value ) {
3957
+ continue;
3958
+ }
3959
+
3960
+ $query_value = $value;
3961
+ }
3962
+
3963
+ $clean_query .= $query_prefix . urlencode( $query_key ) . '=' . urlencode( $query_value );
3964
+ $query_prefix = '&';
3965
+ }
3966
+ }
3967
+
3968
+ if ( $add_it && ( false !== $value ) ) {
3969
+ $clean_query .= $query_prefix . urlencode( $key ) . '=' . urlencode( $value );
3970
+ }
3971
+ }
3972
+
3973
+ return $parts['scheme'] . '://' . $parts['host'] . $parts['path'] . $clean_query;
3974
+ }
3975
+
3976
  /**
3977
  * Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links'
3978
  *
4026
  if ( $prev_next && $current_page && 1 < $current_page ) {
4027
  $markup_values['new_page'] = $current_page - 1;
4028
  $new_title = ( ! empty( $arguments['mla_rollover_text'] ) ) ? 'title="' . esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $markup_values ) ) . '" ' : '';
4029
+ $new_url = self::_replace_query_parameter( $mla_page_parameter, $current_page - 1, $new_base );
 
4030
  $prev_text = ( ! empty( $arguments['mla_prev_text'] ) ) ? esc_attr( self::_process_shortcode_parameter( $arguments['mla_prev_text'], $markup_values ) ) : '&laquo; ' . __( 'Previous', 'media-library-assistant' );
4031
  $page_links[] = sprintf( '<a %1$sclass="prev page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
4032
  /* %1$s */ $new_target,
4051
  } else {
4052
  if ( $show_all || ( $new_page <= $end_size || ( $current_page && $new_page >= $current_page - $mid_size && $new_page <= $current_page + $mid_size ) || $new_page > $last_page - $end_size ) ) {
4053
  // build link
4054
+ $new_url = self::_replace_query_parameter( $mla_page_parameter, $new_page, $new_base );
 
4055
  $page_links[] = sprintf( '<a %1$sclass="page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
4056
  /* %1$s */ $new_target,
4057
  /* %2$s */ $new_class,
4073
  // build next link
4074
  $markup_values['new_page'] = $current_page + 1;
4075
  $new_title = ( ! empty( $arguments['mla_rollover_text'] ) ) ? 'title="' . esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $markup_values ) ) . '" ' : '';
4076
+ $new_url = self::_replace_query_parameter( $mla_page_parameter, $current_page + 1, $new_base );
 
4077
  $next_text = ( ! empty( $arguments['mla_next_text'] ) ) ? esc_attr( self::_process_shortcode_parameter( $arguments['mla_next_text'], $markup_values ) ) : __( 'Next', 'media-library-assistant' ) . ' &raquo;';
4078
  $page_links[] = sprintf( '<a %1$sclass="next page-numbers%2$s" %3$s%4$shref="%5$s">%6$s</a>',
4079
  /* %1$s */ $new_target,
4240
  }
4241
 
4242
  $markup_values['http_host'] = $_SERVER['HTTP_HOST'];
4243
+
4244
+ $parts = wp_parse_url( $_SERVER['REQUEST_URI'] );
4245
+ $uri_path = empty( $parts['path'] ) ? '' : $parts['path'];
4246
+ $uri_query = empty( $parts['query'] ) ? '' : $parts['query'];
4247
+
4248
+ // Add or replace the current page parameter
4249
  if ( 0 < $new_page ) {
4250
+ $uri_query = remove_query_arg( $mla_page_parameter, $uri_query );
4251
+ $uri_query = add_query_arg( array( $mla_page_parameter => $new_page ), $uri_query );
 
 
4252
  }
4253
 
4254
+ // Validate the query arguments to prevent cross-site scripting (reflection) attacks
4255
+ $test_query = array();
4256
+ parse_str( strval( $uri_query ), $test_query );
4257
+
4258
+ $clean_query = '';
4259
+ $query_prefix = '?';
4260
+ foreach ( $test_query as $test_key => $test_value ) {
4261
+ // Query argument names cannot have URL special characters
4262
+ if ( $test_key === urldecode( $test_key ) ) {
4263
+ $clean_query .= $query_prefix . urlencode( $test_key ) . '=' . urlencode( $test_value );
4264
+ $query_prefix = '&';
4265
+ }
4266
+ }
4267
+
4268
+ $markup_values['query_string'] = $clean_query;
4269
+ $markup_values['request_uri'] = $uri_path . $markup_values['query_string'];
4270
  $markup_values['new_url'] = set_url_scheme( $markup_values['scheme'] . $markup_values['http_host'] . $markup_values['request_uri'] );
4271
  $markup_values = apply_filters( 'mla_gallery_pagination_values', $markup_values );
4272
 
4369
  */
4370
  private static function _validate_array_specification( $specification ) {
4371
  //error_log( __LINE__ . " _validate_array_specification() specification = " . var_export( $specification, true ), 0 );
4372
+
4373
  // Check for outer array specification(s) and reject anything else.
4374
  if ( 1 !== preg_match( '/^array\s*\((.*)\)[\s\,]*$/', $specification, $matches ) ) {
4375
  return false;
4386
  if ( false === self::_validate_array_specification( $search ) ) {
4387
  return false;
4388
  }
4389
+
4390
  $interior = str_replace( $search, 'ARRAY', $interior );
4391
  }
4392
  //error_log( __LINE__ . " _validate_array_specification() recursion interior = " . var_export( $interior, true ), 0 );
4397
  $interior = trim( substr( $interior, 5 ), ' ,' );
4398
  continue;
4399
  }
4400
+
4401
  // Look for a nested array
4402
  if ( 1 === preg_match( '/^(array\s*\(.*\))(.*)$/', $interior, $matches ) ) {
4403
  //error_log( __LINE__ . " _validate_array_specification() matches = " . var_export( $matches, true ), 0 );
4404
  if ( false === self::_validate_array_specification( $matches[1] ) ) {
4405
  return false;
4406
  }
4407
+
4408
  $interior = trim( $matches[2], ' ,' );
4409
  continue;
4410
  }
4411
+
4412
  // PHP "undefined constant" pattern: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
4413
+
4414
  // Look for 'key' => value
4415
  if ( 1 === preg_match( '/^((([\'\"](.+?)[\'\"])|(\d+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))\s*\=\>\s*)(([\'\"](.*?)[\'\"])|(\d+)|(\w{4,5}))(.*)$/', $interior, $matches /*, PREG_OFFSET_CAPTURE */ ) ) {
4416
  //error_log( __LINE__ . " _validate_array_specification() key => value matches = " . var_export( $matches, true ), 0 );
4417
+
4418
  // Validate boolean and array() values
4419
+ if ( ! empty( $matches[11] ) ) {
4420
  //error_log( __LINE__ . " _validate_array_specification() boolean and array() matches = " . var_export( $matches[10], true ), 0 );
4421
  if ( false === in_array( strtolower( $matches[11] ), array( 'false', 'true', 'array' ) ) ) {
4422
  //error_log( __LINE__ . " _validate_array_specification() FAILED boolean matches = " . var_export( $matches[7], true ), 0 );
4423
  return false;
4424
  }
4425
  }
4426
+
4427
  $interior = trim( $matches[12], ' ,' );
4428
  continue;
4429
  }
4431
  // Look for simple quoted string, integer value or "undefined constant", e.g., in 'terms' =>
4432
  if ( 1 === preg_match( '/^(([\'\"](.+?)[\'\"])|(\d+)|([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*))(.*)$/', $interior, $matches ) ) {
4433
  //error_log( __LINE__ . " _validate_array_specification() simple matches = " . var_export( $matches, true ), 0 );
4434
+
4435
  $interior = trim( $matches[5], ' ,' );
4436
  continue;
4437
  }
4439
  //error_log( __LINE__ . " _validate_array_specification() FAILED interior = " . var_export( $interior, true ), 0 );
4440
  return false;
4441
  }
4442
+
4443
  //error_log( __LINE__ . " _validate_array_specification() GOOD interior = " . var_export( $interior, true ), 0 );
4444
  return true;
4445
  }
4698
  // 'tax_include_children' => true (default), false
4699
  );
4700
 
4701
+ /**
4702
+ * For Paid Memberships Pro plugin, Hide the 'attachment' post type
4703
+ * from searches and archives if membership is required to access.
4704
+ *
4705
+ * @since 2.84
4706
+ *
4707
+ * @param array Post types to be screened for membership
4708
+ */
4709
+
4710
+ public static function mla_pmp_hide_attachments_filter( $post_types ) {
4711
+ $post_types[] = 'attachment';
4712
+ return $post_types;
4713
+
4714
+ }
4715
+
4716
  /**
4717
  * Parses shortcode parameters and returns the gallery objects
4718
  *
4792
  }
4793
  }
4794
 
4795
+ if ( ! empty( $arguments['ids'] ) ) {
4796
  // 'ids' is explicitly ordered, unless you specify otherwise.
4797
  if ( empty( $attr['orderby'] ) ) {
4798
  $arguments['orderby'] = 'post__in';
4815
  $simple_tax_queries = array();
4816
  foreach ( $attr as $key => $value ) {
4817
  if ( 'tax_query' === $key ) {
4818
+ // An empty query should be ignored, as is an empty "simple tax query"
4819
+ if ( empty( $value ) ) {
4820
+ continue;
4821
+ }
4822
+
4823
  if ( is_array( $value ) ) {
4824
  $query_arguments[ $key ] = $value;
4825
  self::$mla_get_shortcode_dynamic_attachments_parameters[ $key ] = $value;
4826
  } else {
4827
  $value = self::_sanitize_query_specification( $value );
 
4828
 
4829
  // Replace invalid queries from "where-used" callers with a harmless equivalent
4830
  if ( $where_used_query && ( ( 'false' === $value ) || ( false !== strpos( $value, '{+' ) ) ) ) {
4831
  $value = "array( array( 'taxonomy' => 'none', 'field' => 'slug', 'terms' => 'none' ) )";
 
4832
  }
4833
 
4834
  try {
4839
  $tax_query = NULL;
4840
  }
4841
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4842
  if ( is_array( $tax_query ) ) {
4843
  // Check for no.terms.assigned
4844
  foreach ( $tax_query as $tax_query_key => $tax_query_element ) {
4845
  if ( !is_array( $tax_query_element ) ) {
4846
  continue;
4847
  }
4848
+
4849
  if ( isset( $tax_query_element['taxonomy'] ) ) {
4850
  $tax_query_taxonomy = $tax_query_element['taxonomy'];
4851
  } else {
4859
  ) );
4860
  }
4861
  }
4862
+
4863
  $query_arguments[ $key ] = $tax_query;
4864
  self::$mla_get_shortcode_dynamic_attachments_parameters[ $key ] = $value;
4865
  break; // Done - the tax_query overrides all other taxonomy parameters
4982
  self::$mla_get_shortcode_dynamic_attachments_parameters['tax_include_children'] = $attr['tax_include_children'];
4983
  }
4984
 
4985
+ // Convert lists to arrays, if they have more than one element
4986
  if ( is_string( $arguments['post_type'] ) ) {
4987
+ $value = explode( ',', $arguments['post_type'] );
4988
+ if ( 1 < count( $value ) ) {
4989
+ $arguments['post_type'] = $value;
4990
+ }
4991
  }
4992
 
4993
  if ( is_string( $arguments['post_status'] ) ) {
4994
+ $value = explode( ',', $arguments['post_status'] );
4995
+ if ( 1 < count( $value ) ) {
4996
+ $arguments['post_status'] = $value;
4997
+ }
4998
  }
4999
 
5000
  // $query_arguments has been initialized in the taxonomy code above.
5175
  case 'whole_word':
5176
  case 'sentence':
5177
  case 'exact':
 
5178
  if ( ! empty( $value ) && ( 'true' == strtolower( $value ) ) ) {
5179
  MLAQuery::$search_parameters[ $key ] = true;
5180
  } else {
5273
  $date_query = NULL;
5274
  }
5275
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5276
  if ( is_array( $date_query ) ) {
5277
  $query_arguments[ $key ] = $date_query;
5278
  } else {
5304
  $meta_query = NULL;
5305
  }
5306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5307
  if ( is_array( $meta_query ) ) {
5308
  $query_arguments[ $key ] = $meta_query;
5309
  } else {
5465
  MLAQuery::$search_parameters['mla_terms_search']['radio_terms'] = MLAQuery::$search_parameters['mla_term_connector'];
5466
  }
5467
 
5468
+ MLAQuery::$search_parameters['mla_terms_search']['whole_word'] = ! empty( MLAQuery::$search_parameters['whole_word'] );
5469
+ MLAQuery::$search_parameters['mla_terms_search']['exact'] = ! empty( MLAQuery::$search_parameters['exact'] );
5470
+ MLAQuery::$search_parameters['mla_terms_search']['sentence'] = ! empty( MLAQuery::$search_parameters['sentence'] );
5471
  }
5472
 
5473
  // Remove terms-search-specific parameters
5486
  if ( in_array( 'alt-text', MLAQuery::$search_parameters['mla_search_fields'] ) ) {
5487
  self::$query_parameters[MLAQuery::MLA_ALT_TEXT_SUBQUERY] = true;
5488
  }
5489
+
5490
  if ( in_array( 'file', MLAQuery::$search_parameters['mla_search_fields'] ) ) {
5491
  self::$query_parameters[MLAQuery::MLA_FILE_SUBQUERY] = true;
5492
  }
5493
+
5494
  // Look for keyword search including 'terms'
5495
  foreach ( MLAQuery::$search_parameters['mla_search_fields'] as $index => $field ) {
5496
  if ( 'terms' == $field ) {
5547
  $query_arguments = apply_filters( 'mla_get_shortcode_attachments_final_terms', $query_arguments, $return_found_rows );
5548
  }
5549
 
5550
+ // Paid Memberships Pro support
5551
+ if( defined('PMPRO_VERSION') ) {
5552
+ add_filter( 'pmpro_search_filter_post_types', 'MLAShortcode_Support::mla_pmp_hide_attachments_filter' );
5553
+ }
5554
+
5555
  MLAShortcodes::$mla_gallery_wp_query_object = new WP_Query;
5556
  $attachments = MLAShortcodes::$mla_gallery_wp_query_object->query( $query_arguments );
5557
 
5558
+ // Paid Memberships Pro support
5559
+ if( defined('PMPRO_VERSION') ) {
5560
+ remove_filter( 'pmpro_search_filter_post_types', 'MLAShortcode_Support::mla_pmp_hide_attachments_filter' );
5561
+ }
5562
+
5563
  /*
5564
  * $return_found_rows is used to indicate that the call comes from gallery_shortcode(),
5565
  * which is the only call that supplies it.
5713
  }
5714
  }
5715
 
5716
+ // Support Plugin Name: Featured Image from URL, "Media Library" option setting
5717
+ if ( function_exists('fifu_is_off') && fifu_is_off('fifu_media_library')) {
5718
+ $where_clause .= " AND {$table_prefix}posts.post_author <> 77777";
5719
+ }
5720
+
5721
  if ( self::$mla_debug && ( $old_clause != $where_clause ) ) {
5722
  MLACore::mla_debug_add( '<strong>' . __( 'mla_debug modified WHERE filter', 'media-library-assistant' ) . '</strong> = ' . var_export( $where_clause, true ) );
5723
  }
5911
 
5912
  $arguments['minimum'] = 0;
5913
  $arguments['post_mime_type'] = 'all';
5914
+
5915
+ if ( 'count' == strtolower( $arguments['orderby'] ) ) {
5916
  $arguments['orderby'] = 'none';
5917
  }
5918
 
5923
  unset( $field_array[ $index ] );
5924
  }
5925
  }
5926
+
5927
  $field_array[] = ' tt.count';
5928
  $arguments['post_mime_type'] = 'all';
5929
  break;
5931
  $no_count = false;
5932
  }
5933
 
5934
+ // Support Simple Taxonomy Ordering plugin
5935
+ if ( 'tax_position' === strtolower( $arguments['orderby'] ) ) {
5936
+ if ( class_exists( 'Yikes_Custom_Taxonomy_Order' ) ) {
5937
+ $field_array[] = ' term_meta.meta_value AS tax_position';
5938
+ } else {
5939
+ $arguments['orderby'] = 'name';
5940
+ }
5941
+ }
5942
+
5943
+ // Support Simple Custom Post Order plugin
5944
+ if ( 'term_order' === strtolower( $arguments['orderby'] ) ) {
5945
+ if ( class_exists( 'SCPO_Engine' ) ) {
5946
+ $field_array[] = ' t.term_order';
5947
+ } else {
5948
+ $arguments['orderby'] = 'name';
5949
+ }
5950
+ }
5951
+
5952
  $clauses['fields'] = implode( ',', $field_array );
5953
  $clause = array ( 'INNER JOIN `' . $wpdb->term_taxonomy . '` AS tt ON t.term_id = tt.term_id' );
5954
  $clause_parameters = array();
5965
  }
5966
  } else {
5967
  $clause[] = 'LEFT JOIN `' . $wpdb->term_relationships . '` AS tr ON tt.term_taxonomy_id = tr.term_taxonomy_id';
5968
+ $clause[] = 'LEFT JOIN `' . $wpdb->posts . '` AS p ON ( tr.object_id = p.ID';
5969
 
5970
  // Add type and status constraints
5971
  if ( is_array( $arguments['post_type'] ) ) {
5996
  }
5997
  }
5998
 
5999
+ $clause[] = 'AND p.post_status IN (' . join( ',', $placeholders ) . ') )';
6000
  }
6001
 
6002
  $clause = join(' ', $clause);
6003
+ if ( ! empty( $clause_parameters ) ) {
6004
  $clauses['join'] = $wpdb->prepare( $clause, $clause_parameters );
6005
  } else {
6006
  $clauses['join'] = $clause;
6084
  }
6085
 
6086
  $clause = join(' ', $clause);
6087
+ if ( ! empty( $clause_parameters ) ) {
6088
  $clauses['where'] = $wpdb->prepare( $clause, $clause_parameters );
6089
  } else {
6090
  $clauses['where'] = $clause;
6098
 
6099
  // Add sort order
6100
  if ( 'none' !== strtolower( $arguments['orderby'] ) ) {
6101
+ if ( ( 'tax_position' === strtolower( $arguments['orderby'] ) ) && class_exists( 'Yikes_Custom_Taxonomy_Order' ) ) {
6102
+ // Support Simple Taxonomy Ordering plugin
6103
+ $yikes_custom_taxonomy_order = Yikes_Custom_Taxonomy_Order::get_instance();
6104
+ $clauses = $yikes_custom_taxonomy_order->set_tax_order( $clauses, $taxonomies, array() );
6105
+ // Adjust the orderby clause to account for the subquery and the alias in the fields[] clause
6106
+ $clauses['orderby'] = 'ORDER BY CAST( tax_position AS UNSIGNED )';
6107
+ } elseif ( ( 'term_order' === strtolower( $arguments['orderby'] ) ) && class_exists( 'SCPO_Engine' ) ) {
6108
+ // Support Simple Custom Post Order plugin
6109
+ $clauses['orderby'] = 'ORDER BY term_order';
6110
  } else {
6111
+ if ( 'true' == strtolower( $arguments['preserve_case'] ) ) {
6112
+ $binary_keys = array( 'name', 'slug', );
6113
+ } else {
6114
+ $binary_keys = array();
6115
+ }
6116
+
6117
+ $allowed_keys = array(
6118
+ 'empty_orderby_default' => 'name',
6119
+ 'count' => 'count',
6120
+ 'id' => 'term_id',
6121
+ 'name' => 'name',
6122
+ 'random' => 'RAND()',
6123
+ 'slug' => 'slug',
6124
+ );
6125
+
6126
+ $clauses['orderby'] = 'ORDER BY ' . self::_validate_sql_orderby( $arguments, '', $allowed_keys, $binary_keys );
6127
+ } // not tax_position or term_order
6128
  } else {
6129
  $clauses['orderby'] = '';
6130
  }
6175
  // $final_clauses, if present, require an SQL subquery
6176
  $final_clauses = array();
6177
 
6178
+ if ( ! empty( $clauses['orderby'] ) && 'ORDER BY count DESC' != $clauses['orderby'] ) {
6179
  $final_clauses[] = $clauses['orderby'];
6180
  }
6181
 
6250
 
6251
  $child_of = ! empty( $arguments['child_of'] ) ? absint( $arguments['child_of'] ) : NULL;
6252
  $include_tree = ! empty( $arguments['include_tree'] ) ? wp_parse_id_list( $arguments['include_tree'] ) : NULL;
6253
+ $exclude_tree = empty( $include_tree ) && ! empty( $arguments['exclude_tree'] ) ? wp_parse_id_list( $arguments['exclude_tree'] ) : NULL;
6254
 
6255
+ $depth = ! empty( $arguments['depth'] ) ? absint( $arguments['depth'] ) : 0;
6256
  $term_tree = array();
6257
  $root_ids = array();
6258
  $parents = array();
6259
  $child_ids = array();
6260
+ foreach( $terms as $index => $term ) {
6261
+ // Preserve order for sorting later
6262
+ $term->original_index = $index;
6263
+
6264
  // TODO Make this conditional on $arguments['link']
6265
  $link = get_edit_tag_link( $term->term_id, $term->taxonomy );
6266
  if ( ! is_wp_error( $link ) ) {
6297
  $root_ids[ $taxonomy ] = array();
6298
  }
6299
 
6300
+ while ( ! empty( $tax_parents ) ) {
6301
  foreach( $tax_parents as $parent_id => $children ) {
6302
  foreach( $children as $index => $child ) {
6303
  if ( ! array_key_exists( $child->term_id, $tax_parents ) ) {
6374
  }
6375
  }
6376
 
6377
+ // Restore original sort order
6378
+ $term_tree[ $taxonomy ] = self::_sort_by_original_index( $term_tree[ $taxonomy ] );
6379
+
6380
  $term_tree[ $taxonomy ]['found_rows'] = $term_count;
6381
  $all_terms_count += $term_count;
6382
+ } // foreach taxonomy
6383
 
6384
  $term_tree['found_rows'] = $all_terms_count;
6385
  return $term_tree;
6386
  } // _get_term_tree
6387
 
6388
+ /**
6389
+ * Sort an array of terms (and their children) by original source order
6390
+ *
6391
+ * @since 2.84
6392
+ *
6393
+ * @param array $unsorted_tree unsorted term array, by reference
6394
+ *
6395
+ * @return array term array sorted by original source order
6396
+ */
6397
+ private static function _sort_by_original_index( &$unsorted_tree ) {
6398
+ $sorted_tree = array();
6399
+
6400
+ foreach ( $unsorted_tree as $unsorted_term ) {
6401
+ if ( ! empty( $unsorted_term->children ) ) {
6402
+ $unsorted_term->children = self::_sort_by_original_index( $unsorted_term->children );
6403
+ }
6404
+
6405
+ $sorted_tree[ $unsorted_term->original_index ] = $unsorted_term;
6406
+ }
6407
+
6408
+ ksort( $sorted_tree );
6409
+ return $sorted_tree;
6410
+ } // _sort_by_original_index
6411
+
6412
  /**
6413
  * Find a term that matches $child_of
6414
  *
6450
  foreach( $terms as $term ) {
6451
  if ( in_array( $term->term_id, $include_tree ) ) {
6452
  $new_tree[] = $term;
6453
+ } elseif ( ! empty( $term->children ) ) {
6454
  $result = self::_find_include_tree( $term->children, $include_tree );
6455
  if ( false !== $result ) {
6456
  $new_tree = array_merge( $new_tree, $result );
6479
  foreach( $terms as $index => $term ) {
6480
  if ( in_array( $term->term_id, $exclude_tree ) ) {
6481
  unset( $terms[ $index ] );
6482
+ } elseif ( ! empty( $term->children ) ) {
6483
  self::_remove_exclude_tree( $term->children, $exclude_tree );
6484
  }
6485
  }
6587
  // Touch every ancestor's lookup row for each post in each term
6588
  foreach ( $term_ids as $term_id ) {
6589
  $child = $term_id;
6590
+ while ( ! empty( $terms_by_id[ $child] ) && $parent = $terms_by_id[ $child ]->parent ) {
6591
+ if ( ! empty( $term_items[ $term_id ] ) ) {
6592
  foreach ( $term_items[ $term_id ] as $item_id => $touches ) {
6593
  $term_items[ $parent ][ $item_id ] = isset( $term_items[ $parent ][ $item_id ] ) ? ++$term_items[ $parent ][ $item_id ]: 1;
6594
  }
index.php CHANGED
@@ -16,7 +16,7 @@ Description: Enhances the Media Library; powerful [mla_gallery] [mla_tag_cloud]
16
  Author: David Lingren
17
  Text Domain: media-library-assistant
18
  Domain Path: /languages
19
- Version: 2.83
20
  Author URI: http://davidlingren.com/
21
 
22
  Copyright 2011-2020 David Lingren
16
  Author: David Lingren
17
  Text Domain: media-library-assistant
18
  Domain Path: /languages
19
+ Version: 2.84
20
  Author URI: http://davidlingren.com/
21
 
22
  Copyright 2011-2020 David Lingren
js/mla-inline-edit-settings-scripts.js CHANGED
@@ -37,7 +37,7 @@ mlaInlineEditSettings = {
37
  });
38
 
39
  // add events
40
- $('a.editinline').live('click', function(){
41
  mlaInlineEditSettings.edit(this);
42
  return false;
43
  });
37
  });
38
 
39
  // add events
40
+ $( document ).on('click', 'a.editinline', function(){
41
  mlaInlineEditSettings.edit(this);
42
  return false;
43
  });
js/mla-inline-edit-settings-scripts.min.js CHANGED
@@ -1 +1 @@
1
- var ajaxurl,jQuery,mlaInlineEditSettings,mla,mla_inline_edit_settings_vars;(function(a){mlaInlineEditSettings={init:function(){var c=this,d=a("#inline-edit"),b=a("#bulk-edit");c.type=mla_inline_edit_settings_vars.tab;c.what="#"+mla_inline_edit_settings_vars.tab+"-";d.keyup(function(f){if(f.which==27){return mlaInlineEditSettings.revert()}});b.keyup(function(f){if(f.which==27){return mlaInlineEditSettings.revert()}});a("a.cancel",d).click(function(){return mlaInlineEditSettings.revert()});a("a.save",d).click(function(){return mlaInlineEditSettings.save(this)});a("td",d).keydown(function(f){if(f.which==13){return mlaInlineEditSettings.save(this)}});a("a.cancel",b).click(function(){return mlaInlineEditSettings.revert()});a("a.editinline").live("click",function(){mlaInlineEditSettings.edit(this);return false});a("#doaction, #doaction2").click(function(f){var g=a(this).attr("id").substr(2);if(a('select[name="'+g+'"]').val()=="edit"){f.preventDefault();c.setBulk()}else{if(a("form#posts-filter tr.inline-editor").length>0){c.revert()}}})},toggle:function(c){var b=this;if("none"==a(b.what+b.getId(c)).css("display")){b.revert()}else{b.edit(c)}},setBulk:function(){var b="",d=true;this.revert();a("#bulk-edit td").attr("colspan",a("th:visible, td:visible",".widefat:first thead").length);a("table.widefat tbody").prepend(a("#bulk-edit"));a("#bulk-edit").addClass("inline-editor").show();a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){d=false;var e=a(this).val(),c;c=a("#inline_"+e+" .slug").text()||mla_inline_edit_settings_vars.notitle;b+='<div id="ttle'+e+'"><a id="_'+e+'" class="ntdelbutton" title="'+mla_inline_edit_settings_vars.ntdeltitle+'">X</a>'+c+"</div>"}});if(d){return this.revert()}a("#bulk-titles").html(b);a("#bulk-titles a").click(function(){var c=a(this).attr("id").substr(1);a('table.widefat input[value="'+c+'"]').prop("checked",false);a("#ttle"+c).remove()});a("html, body").animate({scrollTop:0},"fast")},edit:function(i){var e=this,b,g,d,f,h,c;e.revert();if(typeof(i)=="object"){i=e.getId(i)}b=mla_inline_edit_settings_vars.fields;g=mla_inline_edit_settings_vars.checkboxes;d=a("#inline-edit").clone(true);a("td",d).attr("colspan",a("th:visible, td:visible",".widefat:first thead").length);if(a(e.what+i).hasClass("alternate")){a(d).addClass("alternate")}a(e.what+i).hide().after(d);f=a("#inline_"+i);for(h=0;h<b.length;h++){c=a("."+b[h],f).text();switch(b[h]){case"type":if("taxonomy"==c){a(".inline-taxonomy-group",d).show()}else{a(".inline-taxonomy-group",d).hide()}if("custom"==c){a(".inline-custom-group",d).show()}else{a(".inline-custom-group",d).hide()}break;case"parent_options":c=a("."+b[h],f).html();a(':input[name="parent"]',d).html(c);break;default:a(':input[name="'+b[h]+'"]',d).val(c);break}}for(h=0;h<g.length;h++){if("1"==a("."+g[h],f).text()){a(':input[name="'+g[h]+'"]',d).attr("checked","checked")}else{a(':input[name="'+g[h]+'"]',d).removeAttr("checked")}}a(d).attr("id","edit-"+i).addClass("inline-editor").show();a(".ptitle",d).focus();return false},save:function(d){var c,b;if(typeof(d)=="object"){d=this.getId(d)}if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").addClass("is-active")}else{a("table.widefat .spinner").show()}c={action:mla_inline_edit_settings_vars.ajax_action,mla_admin_nonce:mla_inline_edit_settings_vars.ajax_nonce,post_ID:d};b=a("#edit-"+d+" :input").serialize();c=b+"&"+a.param(c);a.post(ajaxurl,c,function(e){if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").removeClass("is-active")}else{a("table.widefat .spinner").hide()}if(e){if(-1!=e.indexOf("<tr")){a(mlaInlineEditSettings.what+d).remove();a("#edit-"+d).before(e).remove();a(mlaInlineEditSettings.what+d).hide().fadeIn();a(mlaInlineEditSettings.what+d+" a.execute").click(function(f){f.preventDefault();return mla.inlineMapAttachment.bulkMap(f.target.id,0)})}else{e=e.replace(/<.[^<>]*?>/g,"");a("#edit-"+d+" .inline-edit-save .error").html(e).show()}}else{a("#edit-"+d+" .inline-edit-save .error").html(mla_inline_edit_settings_vars.error).show()}},"html");return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .inline-edit-save .waiting").hide();if("bulk-edit"==b){a("table.widefat #bulk-edit").removeClass("inline-editor").hide();a("#bulk-titles").html("");a("#inlineedit").append(a("#bulk-edit"))}else{if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").removeClass("is-active")}else{a("table.widefat .spinner").hide()}a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}}return false},getId:function(c){var d=a(c).closest("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){mlaInlineEditSettings.init()})})(jQuery);
1
+ var ajaxurl,jQuery,mlaInlineEditSettings,mla,mla_inline_edit_settings_vars;(function(a){mlaInlineEditSettings={init:function(){var c=this,d=a("#inline-edit"),b=a("#bulk-edit");c.type=mla_inline_edit_settings_vars.tab;c.what="#"+mla_inline_edit_settings_vars.tab+"-";d.keyup(function(f){if(f.which==27){return mlaInlineEditSettings.revert()}});b.keyup(function(f){if(f.which==27){return mlaInlineEditSettings.revert()}});a("a.cancel",d).click(function(){return mlaInlineEditSettings.revert()});a("a.save",d).click(function(){return mlaInlineEditSettings.save(this)});a("td",d).keydown(function(f){if(f.which==13){return mlaInlineEditSettings.save(this)}});a("a.cancel",b).click(function(){return mlaInlineEditSettings.revert()});a(document).on("click","a.editinline",function(){mlaInlineEditSettings.edit(this);return false});a("#doaction, #doaction2").click(function(f){var g=a(this).attr("id").substr(2);if(a('select[name="'+g+'"]').val()=="edit"){f.preventDefault();c.setBulk()}else{if(a("form#posts-filter tr.inline-editor").length>0){c.revert()}}})},toggle:function(c){var b=this;if("none"==a(b.what+b.getId(c)).css("display")){b.revert()}else{b.edit(c)}},setBulk:function(){var b="",d=true;this.revert();a("#bulk-edit td").attr("colspan",a("th:visible, td:visible",".widefat:first thead").length);a("table.widefat tbody").prepend(a("#bulk-edit"));a("#bulk-edit").addClass("inline-editor").show();a('tbody th.check-column input[type="checkbox"]').each(function(){if(a(this).prop("checked")){d=false;var e=a(this).val(),c;c=a("#inline_"+e+" .slug").text()||mla_inline_edit_settings_vars.notitle;b+='<div id="ttle'+e+'"><a id="_'+e+'" class="ntdelbutton" title="'+mla_inline_edit_settings_vars.ntdeltitle+'">X</a>'+c+"</div>"}});if(d){return this.revert()}a("#bulk-titles").html(b);a("#bulk-titles a").click(function(){var c=a(this).attr("id").substr(1);a('table.widefat input[value="'+c+'"]').prop("checked",false);a("#ttle"+c).remove()});a("html, body").animate({scrollTop:0},"fast")},edit:function(i){var e=this,b,g,d,f,h,c;e.revert();if(typeof(i)=="object"){i=e.getId(i)}b=mla_inline_edit_settings_vars.fields;g=mla_inline_edit_settings_vars.checkboxes;d=a("#inline-edit").clone(true);a("td",d).attr("colspan",a("th:visible, td:visible",".widefat:first thead").length);if(a(e.what+i).hasClass("alternate")){a(d).addClass("alternate")}a(e.what+i).hide().after(d);f=a("#inline_"+i);for(h=0;h<b.length;h++){c=a("."+b[h],f).text();switch(b[h]){case"type":if("taxonomy"==c){a(".inline-taxonomy-group",d).show()}else{a(".inline-taxonomy-group",d).hide()}if("custom"==c){a(".inline-custom-group",d).show()}else{a(".inline-custom-group",d).hide()}break;case"parent_options":c=a("."+b[h],f).html();a(':input[name="parent"]',d).html(c);break;default:a(':input[name="'+b[h]+'"]',d).val(c);break}}for(h=0;h<g.length;h++){if("1"==a("."+g[h],f).text()){a(':input[name="'+g[h]+'"]',d).attr("checked","checked")}else{a(':input[name="'+g[h]+'"]',d).removeAttr("checked")}}a(d).attr("id","edit-"+i).addClass("inline-editor").show();a(".ptitle",d).focus();return false},save:function(d){var c,b;if(typeof(d)=="object"){d=this.getId(d)}if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").addClass("is-active")}else{a("table.widefat .spinner").show()}c={action:mla_inline_edit_settings_vars.ajax_action,mla_admin_nonce:mla_inline_edit_settings_vars.ajax_nonce,post_ID:d};b=a("#edit-"+d+" :input").serialize();c=b+"&"+a.param(c);a.post(ajaxurl,c,function(e){if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").removeClass("is-active")}else{a("table.widefat .spinner").hide()}if(e){if(-1!=e.indexOf("<tr")){a(mlaInlineEditSettings.what+d).remove();a("#edit-"+d).before(e).remove();a(mlaInlineEditSettings.what+d).hide().fadeIn();a(mlaInlineEditSettings.what+d+" a.execute").click(function(f){f.preventDefault();return mla.inlineMapAttachment.bulkMap(f.target.id,0)})}else{e=e.replace(/<.[^<>]*?>/g,"");a("#edit-"+d+" .inline-edit-save .error").html(e).show()}}else{a("#edit-"+d+" .inline-edit-save .error").html(mla_inline_edit_settings_vars.error).show()}},"html");return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .inline-edit-save .waiting").hide();if("bulk-edit"==b){a("table.widefat #bulk-edit").removeClass("inline-editor").hide();a("#bulk-titles").html("");a("#inlineedit").append(a("#bulk-edit"))}else{if(mla_inline_edit_settings_vars.useSpinnerClass){a("table.widefat .spinner").removeClass("is-active")}else{a("table.widefat .spinner").hide()}a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}}return false},getId:function(c){var d=a(c).closest("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){mlaInlineEditSettings.init()})})(jQuery);
languages/media-library-assistant-en_US - References.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
- "POT-Creation-Date: 2020-03-31 20:09-0700\n"
6
  "PO-Revision-Date: 2015-08-21 21:38-0800\n"
7
  "Last-Translator: David Lingren <david@fairtradejudaica.org>\n"
8
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
@@ -23,23 +23,23 @@ msgstr ""
23
  #: includes/class-mla-admin-columns-pro-support-423.php:178
24
  #: includes/class-mla-admin-columns-pro-support-44.php:175
25
  #: includes/class-mla-admin-columns-pro-support.php:193
26
- #: includes/class-mla-ajax.php:252 includes/class-mla-edit-media.php:986
27
- #: includes/class-mla-list-table.php:635
28
  msgid "Draft"
29
  msgstr ""
30
 
31
  #: includes/class-mla-admin-columns-pro-support-423.php:181
32
  #: includes/class-mla-admin-columns-pro-support-44.php:178
33
  #: includes/class-mla-admin-columns-pro-support.php:196
34
- #: includes/class-mla-ajax.php:246 includes/class-mla-edit-media.php:980
35
- #: includes/class-mla-list-table.php:638
36
  msgid "Scheduled"
37
  msgstr ""
38
 
39
  #: includes/class-mla-admin-columns-pro-support-423.php:184
40
  #: includes/class-mla-admin-columns-pro-support-44.php:181
41
  #: includes/class-mla-admin-columns-pro-support.php:199
42
- #: includes/class-mla-edit-media.php:983 includes/class-mla-list-table.php:641
43
  msgctxt "post state"
44
  msgid "Pending"
45
  msgstr ""
@@ -47,17 +47,17 @@ msgstr ""
47
  #: includes/class-mla-admin-columns-pro-support-423.php:187
48
  #: includes/class-mla-admin-columns-pro-support-44.php:184
49
  #: includes/class-mla-admin-columns-pro-support.php:202
50
- #: includes/class-mla-list-table.php:644
51
  #: includes/class-mla-thumbnail-generation.php:649
52
  msgid "Trash"
53
  msgstr ""
54
 
55
  #: includes/class-mla-admin-columns-pro-support-423.php:395
56
  #: includes/class-mla-admin-columns-pro-support-44.php:392
57
- #: includes/class-mla-admin-columns-pro-support.php:410
58
  #: includes/class-mla-data-references.php:310
59
  #: includes/class-mla-data-references.php:634
60
- #: includes/class-mla-list-table.php:1070
61
  msgid "NO REFERENCE TESTS"
62
  msgstr ""
63
 
@@ -69,18 +69,18 @@ msgstr ""
69
  #: includes/class-mla-admin-columns-pro-support-44.php:651
70
  #: includes/class-mla-admin-columns-pro-support-44.php:718
71
  #: includes/class-mla-admin-columns-pro-support-44.php:780
72
- #: includes/class-mla-admin-columns-pro-support.php:607
73
- #: includes/class-mla-admin-columns-pro-support.php:669
74
- #: includes/class-mla-admin-columns-pro-support.php:736
75
- #: includes/class-mla-admin-columns-pro-support.php:798
76
- #: includes/class-mla-core-options.php:447
77
- #: includes/class-mla-core-options.php:457
78
- #: includes/class-mla-core-options.php:467
79
- #: includes/class-mla-core-options.php:477
80
- #: includes/class-mla-list-table.php:1150
81
- #: includes/class-mla-list-table.php:1195
82
- #: includes/class-mla-list-table.php:1245
83
- #: includes/class-mla-list-table.php:1290
84
  msgid "Disabled"
85
  msgstr ""
86
 
@@ -92,118 +92,166 @@ msgstr ""
92
  #: includes/class-mla-admin-columns-pro-support-44.php:674
93
  #: includes/class-mla-admin-columns-pro-support-44.php:737
94
  #: includes/class-mla-admin-columns-pro-support-44.php:799
95
- #: includes/class-mla-admin-columns-pro-support.php:626
96
- #: includes/class-mla-admin-columns-pro-support.php:692
97
- #: includes/class-mla-admin-columns-pro-support.php:755
98
- #: includes/class-mla-admin-columns-pro-support.php:817
99
- #: includes/class-mla-edit-media.php:1068
100
- #: includes/class-mla-edit-media.php:1106
101
- #: includes/class-mla-edit-media.php:1142
102
- #: includes/class-mla-edit-media.php:1177
103
- #: includes/class-mla-list-table.php:1168
104
- #: includes/class-mla-list-table.php:1217
105
- #: includes/class-mla-list-table.php:1263
106
- #: includes/class-mla-list-table.php:1308
107
  msgid "PARENT"
108
  msgstr ""
109
 
110
  #: includes/class-mla-admin-columns-pro-support-423.php:1027
111
  #: includes/class-mla-admin-columns-pro-support-44.php:1024
112
- #: includes/class-mla-admin-columns-pro-support.php:1042
113
- #: includes/class-mla-core-options.php:606
114
- #: includes/class-mla-core-options.php:863
115
- #: includes/class-mla-core-options.php:894
116
- #: includes/class-mla-core-options.php:908
117
- #: includes/class-mla-list-table.php:493 includes/class-mla-list-table.php:1403
118
  #: includes/class-mla-settings-shortcodes-tab.php:629
119
  msgid "None"
120
  msgstr ""
121
 
122
  #: includes/class-mla-admin-columns-pro-support-423.php:1117
123
  #: includes/class-mla-admin-columns-pro-support-44.php:1114
124
- #: includes/class-mla-admin-columns-pro-support.php:1132
125
- #: includes/class-mla-list-table.php:1542
126
  msgid "(Private post)"
127
  msgstr ""
128
 
129
  #: includes/class-mla-admin-columns-pro-support-423.php:1121
130
  #: includes/class-mla-admin-columns-pro-support-44.php:1118
131
- #: includes/class-mla-admin-columns-pro-support.php:1136
132
- #: includes/class-mla-ajax.php:262 includes/class-mla-list-table.php:1453
133
- #: includes/class-mla-list-table.php:1482
134
- #: includes/class-mla-list-table.php:1546
135
  msgid "Y/m/d"
136
  msgstr ""
137
 
138
  #: includes/class-mla-admin-columns-pro-support-423.php:1134
139
  #: includes/class-mla-admin-columns-pro-support-44.php:1131
140
- #: includes/class-mla-admin-columns-pro-support.php:1149
141
- #: includes/class-mla-core-options.php:1310
142
- #: includes/class-mla-list-table.php:1559
143
  msgctxt "table_view_singular"
144
  msgid "Unattached"
145
  msgstr ""
146
 
147
  #: includes/class-mla-admin-columns-support-deprecated.php:33
148
  #: includes/class-mla-admin-columns-support.php:43
149
- #: includes/class-mla-core-options.php:556 includes/class-mla-settings.php:429
150
- #: includes/class-mla-settings.php:1452 includes/class-mla-settings.php:1468
151
  #: index.php:46
152
  msgid "Media Library Assistant"
153
  msgstr ""
154
 
155
  #: includes/class-mla-admin-columns-support-deprecated.php:34
156
  #: includes/class-mla-admin-columns-support.php:44
157
- #: includes/class-mla-core-options.php:565
158
  msgid "Assistant"
159
  msgstr ""
160
 
161
- #: includes/class-mla-ajax.php:233 includes/class-mla-core-options.php:1186
162
- #: includes/class-mla-data.php:4187 includes/class-mla-edit-media.php:478
163
- #: includes/class-mla-main.php:2038 includes/class-mla-main.php:2343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  #: includes/class-mla-objects.php:348 includes/class-mla-options.php:466
165
  #: includes/mla-main-search-box-template.php:47
166
  #: includes/mla-media-modal-js-template.php:57
167
  msgid "Title"
168
  msgstr ""
169
 
170
- #: includes/class-mla-ajax.php:233 includes/class-mla-main.php:2039
171
  #: includes/class-mla-thumbnail-generation.php:641
172
  msgid "Type"
173
  msgstr ""
174
 
175
- #: includes/class-mla-ajax.php:233 includes/class-mla-main.php:2040
176
  msgid "Date"
177
  msgstr ""
178
 
179
- #: includes/class-mla-ajax.php:233 includes/class-mla-main.php:2041
180
  #: includes/class-mla-settings-custom-fields-tab.php:503
181
  #: includes/class-mla-settings-custom-fields-tab.php:803
182
- #: includes/class-mla-settings-iptc-exif-tab.php:511
183
- #: includes/class-mla-settings-iptc-exif-tab.php:885
184
  #: includes/class-mla-settings-upload-tab.php:548
185
  msgid "Status"
186
  msgstr ""
187
 
188
- #: includes/class-mla-ajax.php:237 includes/class-mla-list-table.php:879
189
- #: includes/class-mla-list-table.php:1044 includes/class-mla-main.php:459
190
  #: includes/class-mla-polylang-support.php:374
191
  #: includes/class-mla-thumbnail-generation.php:97
192
  msgid "(no title)"
193
  msgstr ""
194
 
195
- #: includes/class-mla-ajax.php:243
196
  msgid "Published"
197
  msgstr ""
198
 
199
- #: includes/class-mla-ajax.php:249
200
  msgid "Pending Review"
201
  msgstr ""
202
 
203
- #: includes/class-mla-ajax.php:291 includes/class-mla-ajax.php:298
204
- #: includes/class-mla-ajax.php:307 includes/class-mla-core.php:846
205
- #: includes/class-mla-core.php:864 includes/class-mla-core.php:1289
206
- #: includes/class-mla-core.php:1295 includes/class-mla-core.php:1299
207
  #: includes/class-mla-data-office.php:54 includes/class-mla-data-office.php:64
208
  #: includes/class-mla-data-office.php:68 includes/class-mla-data-office.php:83
209
  #: includes/class-mla-data-office.php:88 includes/class-mla-data-pdf.php:216
@@ -211,52 +259,52 @@ msgstr ""
211
  #: includes/class-mla-data-pdf.php:565 includes/class-mla-data-pdf.php:749
212
  #: includes/class-mla-data-query.php:843 includes/class-mla-data.php:50
213
  #: includes/class-mla-data.php:109 includes/class-mla-data.php:193
214
- #: includes/class-mla-data.php:237 includes/class-mla-data.php:340
215
- #: includes/class-mla-data.php:495 includes/class-mla-data.php:558
216
- #: includes/class-mla-data.php:1511 includes/class-mla-data.php:1710
217
- #: includes/class-mla-data.php:1716 includes/class-mla-data.php:2066
218
- #: includes/class-mla-data.php:2070 includes/class-mla-data.php:3435
219
- #: includes/class-mla-data.php:3491 includes/class-mla-data.php:3535
220
- #: includes/class-mla-data.php:3915 includes/class-mla-data.php:3928
221
- #: includes/class-mla-data.php:3950 includes/class-mla-data.php:4164
222
- #: includes/class-mla-data.php:4210 includes/class-mla-data.php:4243
223
- #: includes/class-mla-data.php:4259 includes/class-mla-data.php:4512
224
- #: includes/class-mla-edit-media.php:319 includes/class-mla-edit-media.php:892
225
- #: includes/class-mla-edit-media.php:934 includes/class-mla-main.php:707
226
- #: includes/class-mla-main.php:830 includes/class-mla-main.php:832
227
- #: includes/class-mla-main.php:835 includes/class-mla-main.php:884
228
- #: includes/class-mla-main.php:918 includes/class-mla-main.php:927
229
- #: includes/class-mla-main.php:934 includes/class-mla-main.php:1318
230
- #: includes/class-mla-main.php:1374 includes/class-mla-main.php:1399
231
- #: includes/class-mla-main.php:1536 includes/class-mla-main.php:1586
232
- #: includes/class-mla-main.php:1689 includes/class-mla-main.php:1718
233
- #: includes/class-mla-main.php:1854 includes/class-mla-main.php:1861
234
- #: includes/class-mla-main.php:2024 includes/class-mla-main.php:2150
235
- #: includes/class-mla-main.php:2475 includes/class-mla-main.php:2483
236
- #: includes/class-mla-main.php:2507 includes/class-mla-main.php:2515
237
- #: includes/class-mla-main.php:2547 includes/class-mla-main.php:2555
238
- #: includes/class-mla-media-modal.php:617 includes/class-mla-mime-types.php:801
239
- #: includes/class-mla-mime-types.php:1193
240
- #: includes/class-mla-mime-types.php:1281
241
- #: includes/class-mla-mime-types.php:1427
242
- #: includes/class-mla-mime-types.php:1450
243
- #: includes/class-mla-mime-types.php:2251
244
- #: includes/class-mla-mime-types.php:2262
245
  #: includes/class-mla-mime-types.php:2275
246
- #: includes/class-mla-mime-types.php:2283
247
- #: includes/class-mla-mime-types.php:2288
248
- #: includes/class-mla-mime-types.php:2331
249
- #: includes/class-mla-mime-types.php:2350
250
- #: includes/class-mla-mime-types.php:2401
251
- #: includes/class-mla-mime-types.php:2435
252
- #: includes/class-mla-mime-types.php:2520
253
- #: includes/class-mla-mime-types.php:2599
254
- #: includes/class-mla-mime-types.php:2608
255
- #: includes/class-mla-mime-types.php:2640 includes/class-mla-objects.php:245
 
 
256
  #: includes/class-mla-options.php:218 includes/class-mla-options.php:434
257
  #: includes/class-mla-options.php:515 includes/class-mla-options.php:570
258
- #: includes/class-mla-options.php:1131 includes/class-mla-options.php:1981
259
- #: includes/class-mla-options.php:2207
260
  #: includes/class-mla-settings-custom-fields-tab.php:173
261
  #: includes/class-mla-settings-custom-fields-tab.php:238
262
  #: includes/class-mla-settings-custom-fields-tab.php:242
@@ -274,20 +322,20 @@ msgstr ""
274
  #: includes/class-mla-settings-documentation-tab.php:131
275
  #: includes/class-mla-settings-documentation-tab.php:323
276
  #: includes/class-mla-settings-documentation-tab.php:1301
277
- #: includes/class-mla-settings-iptc-exif-tab.php:175
 
278
  #: includes/class-mla-settings-iptc-exif-tab.php:241
279
- #: includes/class-mla-settings-iptc-exif-tab.php:245
280
- #: includes/class-mla-settings-iptc-exif-tab.php:280
281
  #: includes/class-mla-settings-iptc-exif-tab.php:308
282
- #: includes/class-mla-settings-iptc-exif-tab.php:312
283
- #: includes/class-mla-settings-iptc-exif-tab.php:346
284
- #: includes/class-mla-settings-iptc-exif-tab.php:422
285
- #: includes/class-mla-settings-iptc-exif-tab.php:631
286
- #: includes/class-mla-settings-iptc-exif-tab.php:799
287
- #: includes/class-mla-settings-iptc-exif-tab.php:1000
288
- #: includes/class-mla-settings-iptc-exif-tab.php:1004
289
- #: includes/class-mla-settings-iptc-exif-tab.php:1028
290
- #: includes/class-mla-settings-iptc-exif-tab.php:2265
291
  #: includes/class-mla-settings-shortcodes-tab.php:79
292
  #: includes/class-mla-settings-shortcodes-tab.php:90
293
  #: includes/class-mla-settings-shortcodes-tab.php:94
@@ -308,23 +356,23 @@ msgstr ""
308
  #: includes/class-mla-settings-view-tab.php:275
309
  #: includes/class-mla-settings-view-tab.php:433
310
  #: includes/class-mla-settings-view-tab.php:447
311
- #: includes/class-mla-settings.php:589 includes/class-mla-settings.php:727
312
- #: includes/class-mla-settings.php:764 includes/class-mla-settings.php:904
313
- #: includes/class-mla-settings.php:1313 includes/class-mla-settings.php:1364
314
- #: includes/class-mla-settings.php:1452 includes/class-mla-settings.php:1479
315
- #: includes/class-mla-settings.php:1482 includes/class-mla-settings.php:1486
316
- #: includes/class-mla-settings.php:1779 includes/class-mla-settings.php:1783
317
- #: includes/class-mla-settings.php:1794 includes/class-mla-settings.php:1801
318
- #: includes/class-mla-settings.php:1810 includes/class-mla-settings.php:1847
319
- #: includes/class-mla-settings.php:1855 includes/class-mla-settings.php:1864
320
- #: includes/class-mla-shortcode-support.php:2182
321
- #: includes/class-mla-shortcode-support.php:2271
322
- #: includes/class-mla-shortcode-support.php:3504
323
- #: includes/class-mla-shortcode-support.php:3631
324
- #: includes/class-mla-shortcode-support.php:3663
325
- #: includes/class-mla-shortcode-support.php:4790
326
- #: includes/class-mla-shortcode-support.php:5211
327
- #: includes/class-mla-shortcode-support.php:5256
328
  #: includes/class-mla-thumbnail-generation.php:434
329
  #: includes/class-mla-thumbnail-generation.php:446
330
  #: includes/class-mla-thumbnail-generation.php:458
@@ -332,114 +380,114 @@ msgstr ""
332
  msgid "ERROR"
333
  msgstr ""
334
 
335
- #: includes/class-mla-ajax.php:291 includes/class-mla-main.php:1854
336
  msgid "No post ID found"
337
  msgstr ""
338
 
339
- #: includes/class-mla-ajax.php:298 includes/class-mla-main.php:1861
340
  #: includes/class-mla-polylang-support.php:271
341
  msgid "You are not allowed to edit this Attachment."
342
  msgstr ""
343
 
344
- #: includes/class-mla-core-options.php:408 includes/class-mla-options.php:257
345
  msgid "Attachment Categories"
346
  msgstr ""
347
 
348
- #: includes/class-mla-core-options.php:412
349
  msgid "Check this option to add support for Attachment Categories."
350
  msgstr ""
351
 
352
- #: includes/class-mla-core-options.php:416 includes/class-mla-options.php:272
353
  msgid "Attachment Tags"
354
  msgstr ""
355
 
356
- #: includes/class-mla-core-options.php:420
357
  msgid "Check this option to add support for Attachment Tags."
358
  msgstr ""
359
 
360
- #: includes/class-mla-core-options.php:424 includes/class-mla-settings.php:1062
361
  msgid "Where-used Reporting"
362
  msgstr ""
363
 
364
- #: includes/class-mla-core-options.php:429
365
  msgid "Exclude Revisions"
366
  msgstr ""
367
 
368
- #: includes/class-mla-core-options.php:433
369
  msgid "Check this option to exclude revisions from where-used reporting."
370
  msgstr ""
371
 
372
- #: includes/class-mla-core-options.php:437
373
  msgid "Where-used database access tuning"
374
  msgstr ""
375
 
376
- #: includes/class-mla-core-options.php:442
377
- #: includes/class-mla-edit-media.php:827 includes/class-mla-edit-media.php:1079
378
  msgid "Featured in"
379
  msgstr ""
380
 
381
- #: includes/class-mla-core-options.php:447
382
- #: includes/class-mla-core-options.php:457
383
  msgid "Enabled"
384
  msgstr ""
385
 
386
- #: includes/class-mla-core-options.php:448
387
  msgid "Search database posts and pages for Featured Image attachments."
388
  msgstr ""
389
 
390
- #: includes/class-mla-core-options.php:452
391
- #: includes/class-mla-edit-media.php:831 includes/class-mla-edit-media.php:1118
392
  msgid "Inserted in"
393
  msgstr ""
394
 
395
- #: includes/class-mla-core-options.php:457
396
  msgid "Base"
397
  msgstr ""
398
 
399
- #: includes/class-mla-core-options.php:458
400
  msgid ""
401
  "Search database posts and pages for attachments embedded in content."
402
  "<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base "
403
  "name and extension only."
404
  msgstr ""
405
 
406
- #: includes/class-mla-core-options.php:462
407
- #: includes/class-mla-edit-media.php:835 includes/class-mla-edit-media.php:1153
408
- #: includes/class-mla-settings.php:1560
409
  msgid "Gallery in"
410
  msgstr ""
411
 
412
- #: includes/class-mla-core-options.php:467
413
- #: includes/class-mla-core-options.php:477
414
  msgid "Dynamic"
415
  msgstr ""
416
 
417
- #: includes/class-mla-core-options.php:467
418
- #: includes/class-mla-core-options.php:477 includes/class-mla-main.php:2378
419
  #: includes/class-mla-settings-custom-fields-tab.php:733
420
- #: includes/class-mla-settings-iptc-exif-tab.php:814
421
  msgid "Refresh"
422
  msgstr ""
423
 
424
- #: includes/class-mla-core-options.php:467
425
- #: includes/class-mla-core-options.php:477
426
  msgid "Cached"
427
  msgstr ""
428
 
429
- #: includes/class-mla-core-options.php:468
430
  msgid ""
431
  "Search database posts and pages for [ gallery ] shortcode results.<br>&nbsp;"
432
  "&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = "
433
  "never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached."
434
  msgstr ""
435
 
436
- #: includes/class-mla-core-options.php:472
437
- #: includes/class-mla-edit-media.php:839 includes/class-mla-edit-media.php:1188
438
- #: includes/class-mla-settings.php:1570
439
  msgid "MLA Gallery in"
440
  msgstr ""
441
 
442
- #: includes/class-mla-core-options.php:478
443
  msgid ""
444
  "Search database posts and pages for [mla_gallery] shortcode results."
445
  "<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, "
@@ -447,123 +495,123 @@ msgid ""
447
  "Cached."
448
  msgstr ""
449
 
450
- #: includes/class-mla-core-options.php:482 includes/class-mla-settings.php:1062
451
  msgid "Taxonomy Support"
452
  msgstr ""
453
 
454
- #: includes/class-mla-core-options.php:487
455
  msgid "Compute Attachments Column"
456
  msgstr ""
457
 
458
- #: includes/class-mla-core-options.php:491
459
  msgid ""
460
  "Check this option to calculate attachments per term in the Attachments "
461
  "Column."
462
  msgstr ""
463
 
464
- #: includes/class-mla-core-options.php:495
465
  msgid "Show Count Column"
466
  msgstr ""
467
 
468
- #: includes/class-mla-core-options.php:499
469
  msgid "Check this option to display the Count column on taxonomy edit screens."
470
  msgstr ""
471
 
472
- #: includes/class-mla-core-options.php:504
473
  msgid ""
474
  "Check the \"<strong>Support</strong>\" box to add the taxonomy to the "
475
  "Assistant and the Edit Media screen."
476
  msgstr ""
477
 
478
- #: includes/class-mla-core-options.php:505
479
  msgid ""
480
  "Check the \"<strong>Inline Edit</strong>\" box to display the taxonomy in "
481
  "the Quick Edit and Bulk Edit areas."
482
  msgstr ""
483
 
484
- #: includes/class-mla-core-options.php:506
485
  msgid ""
486
  "Check the \"<strong>Term Search</strong>\" box to add the taxonomy to the "
487
  "\"Search Media/Terms\" list."
488
  msgstr ""
489
 
490
- #: includes/class-mla-core-options.php:507
491
- #: includes/class-mla-core-options.php:745 includes/class-mla-settings.php:1088
492
- #: includes/class-mla-settings.php:1089 includes/class-mla-settings.php:1090
493
  msgid "For complete documentation"
494
  msgstr ""
495
 
496
- #: includes/class-mla-core-options.php:507
497
- #: includes/class-mla-core-options.php:745 includes/class-mla-settings.php:1088
498
- #: includes/class-mla-settings.php:1089 includes/class-mla-settings.php:1090
499
  msgid "click here"
500
  msgstr ""
501
 
502
- #: includes/class-mla-core-options.php:509
503
  msgid ""
504
  "Check the \"<strong>Checklist</strong>\" box to enable the checklist-style "
505
  "meta box for a flat taxonomy."
506
  msgstr ""
507
 
508
- #: includes/class-mla-core-options.php:510
509
  msgid ""
510
  "You must also check the <strong>\"Enable enhanced checklist taxonomies\"</"
511
  "strong> box below to enable this feature."
512
  msgstr ""
513
 
514
- #: includes/class-mla-core-options.php:511
515
  msgid ""
516
  "Check the \"<strong>Checked On Top</strong>\" box to move checked terms to "
517
  "the top of the checklist-style meta box."
518
  msgstr ""
519
 
520
- #: includes/class-mla-core-options.php:512
521
  msgid ""
522
  "Check the \"<strong>Inline Add Term</strong>\" box to support adding terms "
523
  "in the Quick Edit and Bulk Edit areas."
524
  msgstr ""
525
 
526
- #: includes/class-mla-core-options.php:513
527
  msgid ""
528
  "Use the \"<strong>List Filter</strong>\" option to select the taxonomy (or "
529
  "custom field) on which to filter the Assistant table listing."
530
  msgstr ""
531
 
532
- #: includes/class-mla-core-options.php:514
533
  msgid ""
534
  "To <strong>filter on a custom field</strong>, enter the field name and "
535
  "select ASC (Ascending) or DESC (Descending) order."
536
  msgstr ""
537
 
538
- #: includes/class-mla-core-options.php:543
539
  msgid "Media/Assistant Screen Options"
540
  msgstr ""
541
 
542
- #: includes/class-mla-core-options.php:548
543
  msgid "Admin Menu Options"
544
  msgstr ""
545
 
546
- #: includes/class-mla-core-options.php:553
547
  msgid "Page Title"
548
  msgstr ""
549
 
550
- #: includes/class-mla-core-options.php:558
551
  msgid "Enter the title for the Media/Assistant submenu page"
552
  msgstr ""
553
 
554
- #: includes/class-mla-core-options.php:562
555
  msgid "Menu Title"
556
  msgstr ""
557
 
558
- #: includes/class-mla-core-options.php:567
559
  msgid "Enter the title for the Media/Assistant submenu entry"
560
  msgstr ""
561
 
562
- #: includes/class-mla-core-options.php:571
563
  msgid "Submenu Order"
564
  msgstr ""
565
 
566
- #: includes/class-mla-core-options.php:576
567
  msgid ""
568
  "Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = "
569
  "natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;"
@@ -571,304 +619,304 @@ msgid ""
571
  "\""
572
  msgstr ""
573
 
574
- #: includes/class-mla-core-options.php:580
575
  msgid "Display Media/Library"
576
  msgstr ""
577
 
578
- #: includes/class-mla-core-options.php:584
579
  msgid ""
580
  "Check/uncheck this option to display/remove the WordPress Media/Library "
581
  "submenu entry."
582
  msgstr ""
583
 
584
- #: includes/class-mla-core-options.php:588
585
  msgid "Display Media/Assistant list/grid view switcher"
586
  msgstr ""
587
 
588
- #: includes/class-mla-core-options.php:592
589
  msgid ""
590
  "Check/uncheck this option to display/remove the \"list/grid\" view switcher "
591
  "on the Media/Assistant submenu."
592
  msgstr ""
593
 
594
- #: includes/class-mla-core-options.php:596
595
  msgid "Table Defaults"
596
  msgstr ""
597
 
598
- #: includes/class-mla-core-options.php:601
599
  msgid "Order By"
600
  msgstr ""
601
 
602
- #: includes/class-mla-core-options.php:606
603
  msgid "ID/Parent"
604
  msgstr ""
605
 
606
- #: includes/class-mla-core-options.php:607
607
  msgid "Select the column for the sort order of the Assistant table listing."
608
  msgstr ""
609
 
610
- #: includes/class-mla-core-options.php:611
611
  msgid "Order"
612
  msgstr ""
613
 
614
- #: includes/class-mla-core-options.php:616
615
  msgid "Ascending"
616
  msgstr ""
617
 
618
- #: includes/class-mla-core-options.php:616
619
  msgid "Descending"
620
  msgstr ""
621
 
622
- #: includes/class-mla-core-options.php:617
623
- #: includes/class-mla-core-options.php:873
624
  msgid "Choose the sort order."
625
  msgstr ""
626
 
627
- #: includes/class-mla-core-options.php:621 includes/class-mla-main.php:628
628
  msgid "Entries per page"
629
  msgstr ""
630
 
631
- #: includes/class-mla-core-options.php:625
632
  msgid "Enter the number of Media/Assistant submenu table items per page."
633
  msgstr ""
634
 
635
- #: includes/class-mla-core-options.php:634
636
  msgid "Views Width"
637
  msgstr ""
638
 
639
- #: includes/class-mla-core-options.php:639
640
  msgid "Enter the width for the views list, in pixels (px) or percent (%)"
641
  msgstr ""
642
 
643
- #: includes/class-mla-core-options.php:643
644
  msgid "Icon Size"
645
  msgstr ""
646
 
647
- #: includes/class-mla-core-options.php:648
648
  msgid "Enter the size of the thumbnail/icon images, in pixels"
649
  msgstr ""
650
 
651
- #: includes/class-mla-core-options.php:652
652
  msgid "Show Primary Column File Name"
653
  msgstr ""
654
 
655
- #: includes/class-mla-core-options.php:656
656
  msgid ""
657
  "Check/uncheck this option to show/omit the file name from the primary column."
658
  msgstr ""
659
 
660
- #: includes/class-mla-core-options.php:660
661
  msgid "QuickTags editor for bulk description"
662
  msgstr ""
663
 
664
- #: includes/class-mla-core-options.php:664
665
  msgid ""
666
  "Check this option to use the QuickTags editor for the Description field in "
667
  "the Bulk Edit area."
668
  msgstr ""
669
 
670
- #: includes/class-mla-core-options.php:668
671
  msgid "Bulk Chunk Size"
672
  msgstr ""
673
 
674
- #: includes/class-mla-core-options.php:673
675
  msgid "Enter the size of the Bulk Edit and Map All processing chunks"
676
  msgstr ""
677
 
678
- #: includes/class-mla-core-options.php:677
679
  msgid "Taxonomy Filter parameters"
680
  msgstr ""
681
 
682
- #: includes/class-mla-core-options.php:682
683
  msgid "Maximum Depth"
684
  msgstr ""
685
 
686
- #: includes/class-mla-core-options.php:687
687
  msgid ""
688
  "Enter the number of levels displayed for hierarchial taxonomies; enter zero "
689
  "for no limit."
690
  msgstr ""
691
 
692
- #: includes/class-mla-core-options.php:691
693
  msgid "Include Children"
694
  msgstr ""
695
 
696
- #: includes/class-mla-core-options.php:695
697
  msgid ""
698
  "Check/uncheck this option to include/exclude children for hierarchical "
699
  "taxonomies."
700
  msgstr ""
701
 
702
- #: includes/class-mla-core-options.php:699
703
  msgid "Search Media Defaults"
704
  msgstr ""
705
 
706
- #: includes/class-mla-core-options.php:704
707
  msgid "Display Search Controls"
708
  msgstr ""
709
 
710
- #: includes/class-mla-core-options.php:708
711
- #: includes/class-mla-core-options.php:834
712
  msgid ""
713
  "Check/uncheck this option to display/hide the and/or connector and search "
714
  "fields controls."
715
  msgstr ""
716
 
717
- #: includes/class-mla-core-options.php:712
718
  msgid ""
719
  "Use these controls to set defaults for the and/or connector and search "
720
  "fields controls.<br>These defaults will be used for the Search Media boxes "
721
  "on both the Media/Assistant submenu<br>and the Media Manager Modal Window."
722
  msgstr ""
723
 
724
- #: includes/class-mla-core-options.php:726
725
  msgid "Media/Edit Media Enhancements"
726
  msgstr ""
727
 
728
- #: includes/class-mla-core-options.php:731
729
  msgid "Enable &quot;enhanced checklist&quot; taxonomies"
730
  msgstr ""
731
 
732
- #: includes/class-mla-core-options.php:735
733
  msgid ""
734
  "Check this option to enable the \"? Search\" feature for hierarchical "
735
  "taxonomies, e.g., Att. Categories.<br>&nbsp;&nbsp;This option also enables "
736
  "the \"checklist-style\" support for flat taxonomies, e.g., Att. Tags."
737
  msgstr ""
738
 
739
- #: includes/class-mla-core-options.php:739
740
  msgid "Enable Edit Media additional meta boxes"
741
  msgstr ""
742
 
743
- #: includes/class-mla-core-options.php:743
744
  msgid ""
745
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
746
  "Metadata\" and four \"where-used\" meta boxes to the Edit Media screen."
747
  msgstr ""
748
 
749
- #: includes/class-mla-core-options.php:744
750
  msgid "You can also use Filters to customize the meta boxes."
751
  msgstr ""
752
 
753
- #: includes/class-mla-core-options.php:749
754
  msgid "Media/Add New Enhancements"
755
  msgstr ""
756
 
757
- #: includes/class-mla-core-options.php:754
758
  msgid "Enable &quot;bulk edit&quot; area"
759
  msgstr ""
760
 
761
- #: includes/class-mla-core-options.php:758
762
  msgid ""
763
  "Check this option to enable the \"Bulk Edit area\" feature on the Media/Add "
764
  "New screen."
765
  msgstr ""
766
 
767
- #: includes/class-mla-core-options.php:762
768
  msgid "&quot;bulk edit&quot; area on top"
769
  msgstr ""
770
 
771
- #: includes/class-mla-core-options.php:766
772
  msgid ""
773
  "Check this option to move the \"Bulk Edit area\" to the top of the Media/Add "
774
  "New screen."
775
  msgstr ""
776
 
777
- #: includes/class-mla-core-options.php:770
778
  msgid "&quot;bulk edit&quot; area initially open"
779
  msgstr ""
780
 
781
- #: includes/class-mla-core-options.php:773
782
  msgid ""
783
  "Check this option to automatically open the \"Bulk Edit area\" when the "
784
  "Media/Add New screen is displayed."
785
  msgstr ""
786
 
787
- #: includes/class-mla-core-options.php:777
788
  msgid "Media Manager/Media Grid Enhancements"
789
  msgstr ""
790
 
791
- #: includes/class-mla-core-options.php:782
792
  msgid "Enable Media Grid Enhancements"
793
  msgstr ""
794
 
795
- #: includes/class-mla-core-options.php:785
796
  msgid ""
797
  "Check/uncheck this option to enable/disable Media Library Grid View "
798
  "Enhancements."
799
  msgstr ""
800
 
801
- #: includes/class-mla-core-options.php:789
802
  msgid "Enable Media Manager Enhancements"
803
  msgstr ""
804
 
805
- #: includes/class-mla-core-options.php:792
806
  msgid ""
807
  "Check/uncheck this option to enable/disable Media Manager Modal Window "
808
  "Enhancements."
809
  msgstr ""
810
 
811
- #: includes/class-mla-core-options.php:796
812
  msgid "Media Manager Enhanced MIME Type filter"
813
  msgstr ""
814
 
815
- #: includes/class-mla-core-options.php:799
816
  msgid ""
817
  "Check this option to filter by more MIME Types, e.g., text, applications."
818
  msgstr ""
819
 
820
- #: includes/class-mla-core-options.php:803
821
  msgid "Media Manager Month and Year filter"
822
  msgstr ""
823
 
824
- #: includes/class-mla-core-options.php:806
825
  msgid "Check this option to filter by month and year uploaded."
826
  msgstr ""
827
 
828
- #: includes/class-mla-core-options.php:810
829
  msgid "Media Manager Category/Tag filter"
830
  msgstr ""
831
 
832
- #: includes/class-mla-core-options.php:813
833
  msgid "Check this option to filter by taxonomy terms."
834
  msgstr ""
835
 
836
- #: includes/class-mla-core-options.php:817
837
  msgid "Media Manager Terms Search popup"
838
  msgstr ""
839
 
840
- #: includes/class-mla-core-options.php:820
841
  msgid "Check this option to enable the \"Terms Search\" popup window."
842
  msgstr ""
843
 
844
- #: includes/class-mla-core-options.php:824
845
  msgid "Media Manager Enhanced Search Media box"
846
  msgstr ""
847
 
848
- #: includes/class-mla-core-options.php:827
849
  msgid "Check this option to enable search box enhancements."
850
  msgstr ""
851
 
852
- #: includes/class-mla-core-options.php:831
853
  msgid "Media Manager Enhanced Search Media Controls"
854
  msgstr ""
855
 
856
- #: includes/class-mla-core-options.php:838
857
  msgid "Media Manager Checklist meta boxes"
858
  msgstr ""
859
 
860
- #: includes/class-mla-core-options.php:841
861
  msgid ""
862
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
863
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for any taxonomy that uses a "
864
  "<strong>\"checklist-style\"</strong> meta box."
865
  msgstr ""
866
 
867
- #: includes/class-mla-core-options.php:845
868
  msgid "Media Manager Flat meta boxes"
869
  msgstr ""
870
 
871
- #: includes/class-mla-core-options.php:848
872
  msgid ""
873
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
874
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for <strong>flat taxonomies</"
@@ -876,211 +924,211 @@ msgid ""
876
  "style\" meta box."
877
  msgstr ""
878
 
879
- #: includes/class-mla-core-options.php:852
880
  msgid "Media Manager auto-fill meta boxes"
881
  msgstr ""
882
 
883
- #: includes/class-mla-core-options.php:855
884
  msgid ""
885
  "Check this option to automatically fill MLA-enhanced meta boxes in the "
886
  "\"ATTACHMENT DETAILS\" pane<br>&nbsp;&nbsp;when the item is selected."
887
  msgstr ""
888
 
889
- #: includes/class-mla-core-options.php:859
890
  msgid "Media Manager Order By"
891
  msgstr ""
892
 
893
- #: includes/class-mla-core-options.php:863
894
- #: includes/class-mla-core-options.php:872
895
- #: includes/class-mla-core-options.php:894
896
- #: includes/class-mla-core-options.php:908
897
- #: includes/class-mla-core-options.php:922 includes/class-mla-settings.php:1139
898
  msgid "Media Manager Default"
899
  msgstr ""
900
 
901
- #: includes/class-mla-core-options.php:863
902
  msgid "Title/Name"
903
  msgstr ""
904
 
905
- #: includes/class-mla-core-options.php:864
906
  msgid ""
907
  "If you want to override the Media Manager default,<br>&nbsp;&nbsp;select a "
908
  "column for the sort order of the Media Library listing."
909
  msgstr ""
910
 
911
- #: includes/class-mla-core-options.php:868
912
  msgid "Media Manager Order"
913
  msgstr ""
914
 
915
- #: includes/class-mla-core-options.php:877
916
  msgid "Attachment Display Settings"
917
  msgstr ""
918
 
919
- #: includes/class-mla-core-options.php:882
920
  msgid "Media Manager Apply Display Settings"
921
  msgstr ""
922
 
923
- #: includes/class-mla-core-options.php:885
924
  msgid ""
925
  "Check this option to always start with the Attachment Display Settings set "
926
  "here,<br>&nbsp;&nbsp;overriding browser-/cookie-based defaults."
927
  msgstr ""
928
 
929
- #: includes/class-mla-core-options.php:889
930
- #: includes/class-mla-core-options.php:891
931
  msgid "Alignment"
932
  msgstr ""
933
 
934
- #: includes/class-mla-core-options.php:891
935
- #: includes/class-mla-core-options.php:905
936
- #: includes/class-mla-core-options.php:919
937
  #, php-format
938
  msgid ""
939
  "Select a value for the default %1$s option in the Attachment Display "
940
  "Settings."
941
  msgstr ""
942
 
943
- #: includes/class-mla-core-options.php:894
944
  msgid "Left"
945
  msgstr ""
946
 
947
- #: includes/class-mla-core-options.php:894
948
  msgid "Center"
949
  msgstr ""
950
 
951
- #: includes/class-mla-core-options.php:894
952
  msgid "Right"
953
  msgstr ""
954
 
955
- #: includes/class-mla-core-options.php:903
956
- #: includes/class-mla-core-options.php:905
957
  msgid "Link To"
958
  msgstr ""
959
 
960
- #: includes/class-mla-core-options.php:908
961
  msgid "Media File"
962
  msgstr ""
963
 
964
- #: includes/class-mla-core-options.php:908
965
  msgid "Attachment Page"
966
  msgstr ""
967
 
968
- #: includes/class-mla-core-options.php:908
969
  msgid "Custom URL"
970
  msgstr ""
971
 
972
- #: includes/class-mla-core-options.php:917
973
- #: includes/class-mla-core-options.php:919
974
  msgid "Size"
975
  msgstr ""
976
 
977
- #: includes/class-mla-core-options.php:922
978
  #: includes/class-mla-thumbnail-generation.php:588
979
  #: includes/class-mla-thumbnail-generation.php:652
980
  msgid "Thumbnail"
981
  msgstr ""
982
 
983
- #: includes/class-mla-core-options.php:922
984
  msgid "Medium"
985
  msgstr ""
986
 
987
- #: includes/class-mla-core-options.php:922
988
  msgid "Large"
989
  msgstr ""
990
 
991
- #: includes/class-mla-core-options.php:922
992
  msgid "Full Size"
993
  msgstr ""
994
 
995
- #: includes/class-mla-core-options.php:931
996
  msgid "Uninstall (Delete) Plugin Settings"
997
  msgstr ""
998
 
999
- #: includes/class-mla-core-options.php:936
1000
  msgid "Delete Option Settings"
1001
  msgstr ""
1002
 
1003
- #: includes/class-mla-core-options.php:939
1004
  msgid ""
1005
  "Check this option to remove all MLA option settings from the database when "
1006
  "the plugin is deleted.<br>&nbsp;&nbsp;<strong>You can make a backup copy</"
1007
  "strong> of your settings below by clicking \""
1008
  msgstr ""
1009
 
1010
- #: includes/class-mla-core-options.php:939 includes/class-mla-settings.php:1064
1011
  msgid "Export ALL Settings"
1012
  msgstr ""
1013
 
1014
- #: includes/class-mla-core-options.php:943
1015
  msgid "Delete Option Settings Backups"
1016
  msgstr ""
1017
 
1018
- #: includes/class-mla-core-options.php:946
1019
  msgid ""
1020
  "Check this option to remove the <code>/wp-content/mla-backup</code> "
1021
  "directory and its contents when the plugin is deleted."
1022
  msgstr ""
1023
 
1024
- #: includes/class-mla-core-options.php:950
1025
  msgid "Default [mla_gallery] Templates and Settings"
1026
  msgstr ""
1027
 
1028
- #: includes/class-mla-core-options.php:955
1029
- #: includes/class-mla-core-options.php:961
1030
- #: includes/class-mla-core-options.php:999
1031
- #: includes/class-mla-core-options.php:1005
1032
  msgid "Style Template"
1033
  msgstr ""
1034
 
1035
- #: includes/class-mla-core-options.php:961
1036
- #: includes/class-mla-core-options.php:971
1037
- #: includes/class-mla-core-options.php:1005
1038
- #: includes/class-mla-core-options.php:1015
1039
  #, php-format
1040
  msgid "Select the default %1$s for your %2$s shortcodes."
1041
  msgstr ""
1042
 
1043
- #: includes/class-mla-core-options.php:965
1044
- #: includes/class-mla-core-options.php:1009
1045
  msgid "Markup Template"
1046
  msgstr ""
1047
 
1048
- #: includes/class-mla-core-options.php:971
1049
- #: includes/class-mla-core-options.php:1015
1050
  #: includes/class-mla-settings-shortcodes-tab.php:85
1051
  msgid "markup template"
1052
  msgstr ""
1053
 
1054
- #: includes/class-mla-core-options.php:975
1055
- #: includes/class-mla-core-options.php:1019
1056
  msgid "Default columns"
1057
  msgstr ""
1058
 
1059
- #: includes/class-mla-core-options.php:979
1060
  msgid ""
1061
  "Enter the number of [mla_tag_cloud] columns; must be a positive integer."
1062
  msgstr ""
1063
 
1064
- #: includes/class-mla-core-options.php:983
1065
- #: includes/class-mla-core-options.php:1027
1066
  msgid "Default mla_margin"
1067
  msgstr ""
1068
 
1069
- #: includes/class-mla-core-options.php:987
1070
- #: includes/class-mla-core-options.php:1031
1071
  msgid ""
1072
  "Enter the CSS \"margin\" property value, in length (px, em, pt, etc.), "
1073
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"none\" to "
1074
  "remove the property entirely."
1075
  msgstr ""
1076
 
1077
- #: includes/class-mla-core-options.php:991
1078
- #: includes/class-mla-core-options.php:1035
1079
  msgid "Default mla_itemwidth"
1080
  msgstr ""
1081
 
1082
- #: includes/class-mla-core-options.php:995
1083
- #: includes/class-mla-core-options.php:1039
1084
  msgid ""
1085
  "Enter the CSS \"width\" property value, in length (px, em, pt, etc.), "
1086
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"calculate"
@@ -1090,19 +1138,19 @@ msgid ""
1090
  "the property entirely."
1091
  msgstr ""
1092
 
1093
- #: includes/class-mla-core-options.php:1023
1094
  msgid "Enter the number of [mla_gallery] columns; must be a positive integer."
1095
  msgstr ""
1096
 
1097
- #: includes/class-mla-core-options.php:1043
1098
  msgid "Thumbnail Substitution Support, mla_viewer"
1099
  msgstr ""
1100
 
1101
- #: includes/class-mla-core-options.php:1048
1102
  msgid "Enable thumbnail substitution"
1103
  msgstr ""
1104
 
1105
- #: includes/class-mla-core-options.php:1051
1106
  msgid ""
1107
  "Check this option to allow the \"mla_viewer\" to generate thumbnail images "
1108
  "for PDF documents. Thumbnails are generated dynamically, each time the item "
@@ -1111,32 +1159,32 @@ msgid ""
1111
  "strong>"
1112
  msgstr ""
1113
 
1114
- #: includes/class-mla-core-options.php:1055
1115
  msgid "Enable Featured Images"
1116
  msgstr ""
1117
 
1118
- #: includes/class-mla-core-options.php:1058
1119
  msgid ""
1120
  "Check this option to extend Featured Image support to all Media Library "
1121
  "items. The Featured Image can be used as a thumbnail image for the item in "
1122
  "an [mla_gallery] display."
1123
  msgstr ""
1124
 
1125
- #: includes/class-mla-core-options.php:1062
1126
  msgid "Enable Featured Image Generation"
1127
  msgstr ""
1128
 
1129
- #: includes/class-mla-core-options.php:1065
1130
  msgid ""
1131
  "Check this option to enable the \"Thumbnail\" generation action in the Media/"
1132
  "Assistant submenu Bulk Actions dropdown."
1133
  msgstr ""
1134
 
1135
- #: includes/class-mla-core-options.php:1069
1136
  msgid "Enable explicit Ghostscript check"
1137
  msgstr ""
1138
 
1139
- #: includes/class-mla-core-options.php:1072
1140
  msgid ""
1141
  "Check this option to enable the explicit check for Ghostscript support "
1142
  "required for thumbnail generation. If your Ghostscript software is in a non-"
@@ -1145,37 +1193,37 @@ msgid ""
1145
  "leave this option checked unless you know it is safe to turn it off."
1146
  msgstr ""
1147
 
1148
- #: includes/class-mla-core-options.php:1076
1149
  msgid "Ghostscript path"
1150
  msgstr ""
1151
 
1152
- #: includes/class-mla-core-options.php:1080
1153
  msgid ""
1154
  "If your &ldquo;gs&rdquo; executable is in a non-standard location, enter the "
1155
  "full path and filename here, e.g., &ldquo;/usr/bin/gs&rdquo;. It will "
1156
  "override the search for Ghostscript in other places."
1157
  msgstr ""
1158
 
1159
- #: includes/class-mla-core-options.php:1100
1160
  msgid "Enable custom field mapping"
1161
  msgstr ""
1162
 
1163
- #: includes/class-mla-core-options.php:1103
1164
- #: includes/class-mla-core-options.php:1110
1165
- #: includes/class-mla-core-options.php:1117
1166
- #: includes/class-mla-core-options.php:1134
1167
  msgid "See Help menu."
1168
  msgstr ""
1169
 
1170
- #: includes/class-mla-core-options.php:1107
1171
  msgid "Enable custom field mapping when adding new media"
1172
  msgstr ""
1173
 
1174
- #: includes/class-mla-core-options.php:1114
1175
  msgid "Enable custom field mapping when updating media metadata"
1176
  msgstr ""
1177
 
1178
- #: includes/class-mla-core-options.php:1121
1179
  msgid ""
1180
  "Update the custom field mapping values above, then click Save Changes to "
1181
  "make the updates permanent.<br>You can also make temporary updates and click "
@@ -1183,33 +1231,33 @@ msgid ""
1183
  "saving any rule changes."
1184
  msgstr ""
1185
 
1186
- #: includes/class-mla-core-options.php:1131
1187
  msgid "Enable IPTC/EXIF Mapping"
1188
  msgstr ""
1189
 
1190
- #: includes/class-mla-core-options.php:1138
1191
  msgid "Enable IPTC/EXIF Mapping when adding new media"
1192
  msgstr ""
1193
 
1194
- #: includes/class-mla-core-options.php:1141
1195
  msgid ""
1196
  "Check this option to enable mapping when uploading new media (attachments)."
1197
  "<br>&nbsp;&nbsp;Does NOT affect the operation of the \"Map\" buttons on the "
1198
  "bulk edit, single edit and settings screens."
1199
  msgstr ""
1200
 
1201
- #: includes/class-mla-core-options.php:1145
1202
  msgid "Enable IPTC/EXIF Mapping when updating media metadata"
1203
  msgstr ""
1204
 
1205
- #: includes/class-mla-core-options.php:1148
1206
  msgid ""
1207
  "Check this option to enable mapping when media (attachments) metadata is "
1208
  "regenerated,<br>&nbsp;&nbsp;e.g., when the Media/Edit Media \"Edit Image\" "
1209
  "functions are used."
1210
  msgstr ""
1211
 
1212
- #: includes/class-mla-core-options.php:1152
1213
  msgid ""
1214
  "Update the standard field mapping values above, then click <strong>Save "
1215
  "Changes</strong> to make the updates permanent.<br>You can also make "
@@ -1218,13 +1266,13 @@ msgid ""
1218
  "changes."
1219
  msgstr ""
1220
 
1221
- #: includes/class-mla-core-options.php:1162
1222
  msgid ""
1223
  "Update the taxonomy term mapping values above, then click <strong>Save "
1224
  "Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>."
1225
  msgstr ""
1226
 
1227
- #: includes/class-mla-core-options.php:1172
1228
  msgid ""
1229
  "<strong>Update</strong> individual custom field mapping values above, or "
1230
  "make several updates and click <strong>Save Changes</strong> below to apply "
@@ -1235,33 +1283,33 @@ msgid ""
1235
  "changes."
1236
  msgstr ""
1237
 
1238
- #: includes/class-mla-core-options.php:1182
1239
  msgid "IPTC/EXIF Mapping help"
1240
  msgstr ""
1241
 
1242
- #: includes/class-mla-core-options.php:1193 includes/class-mla-data.php:4213
1243
- #: includes/class-mla-edit-media.php:479 includes/class-mla-main.php:2344
1244
  msgid "Name/Slug"
1245
  msgstr ""
1246
 
1247
- #: includes/class-mla-core-options.php:1200 includes/class-mla-data.php:4256
1248
- #: includes/class-mla-edit-media.php:482 includes/class-mla-list-table.php:1345
1249
- #: includes/class-mla-main.php:2348 includes/class-mla-options.php:472
1250
  #: includes/mla-main-search-box-template.php:51
1251
  #: includes/mla-media-modal-js-template.php:65
1252
  msgid "ALT Text"
1253
  msgstr ""
1254
 
1255
- #: includes/class-mla-core-options.php:1207 includes/class-mla-data.php:4269
1256
- #: includes/class-mla-edit-media.php:480 includes/class-mla-main.php:2345
1257
  #: includes/class-mla-options.php:475
1258
  #: includes/mla-main-search-box-template.php:53
1259
  #: includes/mla-media-modal-js-template.php:70
1260
  msgid "Caption"
1261
  msgstr ""
1262
 
1263
- #: includes/class-mla-core-options.php:1214 includes/class-mla-data.php:4278
1264
- #: includes/class-mla-edit-media.php:481 includes/class-mla-main.php:2346
1265
  #: includes/class-mla-options.php:478
1266
  #: includes/class-mla-settings-upload-tab.php:174
1267
  #: includes/class-mla-settings-upload-tab.php:538
@@ -1278,193 +1326,203 @@ msgstr ""
1278
  msgid "Description"
1279
  msgstr ""
1280
 
1281
- #: includes/class-mla-core-options.php:1221 includes/class-mla-data.php:4340
1282
- #: includes/class-mla-data.php:4349 includes/class-mla-edit-media.php:483
1283
- #: includes/class-mla-edit-media.php:677 includes/class-mla-main.php:2350
1284
  msgid "Uploaded on"
1285
  msgstr ""
1286
 
1287
- #: includes/class-mla-core-options.php:1241
1288
  msgid "Enable View and Post MIME Type Support"
1289
  msgstr ""
1290
 
1291
- #: includes/class-mla-core-options.php:1244
1292
  msgid ""
1293
  "Check/uncheck this option to enable/disable Post MIME Type Support, then "
1294
  "click <strong>Save Changes</strong> to record the new setting."
1295
  msgstr ""
1296
 
1297
- #: includes/class-mla-core-options.php:1253
1298
  msgid "Post MIME Types help."
1299
  msgstr ""
1300
 
1301
- #: includes/class-mla-core-options.php:1256
1302
- #: includes/class-mla-mime-types.php:1682
1303
  #: includes/class-mla-settings-custom-fields-tab.php:2460
1304
  #: includes/class-mla-settings-documentation-tab.php:1571
1305
- #: includes/class-mla-settings-iptc-exif-tab.php:2728
1306
  #: includes/class-mla-settings-shortcodes-tab.php:1973
1307
  msgctxt "table_view_singular"
1308
  msgid "All"
1309
  msgstr ""
1310
 
1311
- #: includes/class-mla-core-options.php:1257
1312
- #: includes/class-mla-mime-types.php:1683
1313
  #: includes/class-mla-settings-custom-fields-tab.php:2461
1314
  #: includes/class-mla-settings-documentation-tab.php:1572
1315
- #: includes/class-mla-settings-iptc-exif-tab.php:2729
1316
  #: includes/class-mla-settings-shortcodes-tab.php:1974
1317
  msgctxt "table_view_plural"
1318
  msgid "All"
1319
  msgstr ""
1320
 
1321
- #: includes/class-mla-core-options.php:1262
1322
- #: includes/class-mla-core-options.php:1316
1323
- #: includes/class-mla-core-options.php:1325
1324
- #: includes/class-mla-core-options.php:1334
1325
  msgctxt "post_mime_types_description"
1326
  msgid "Built-in view"
1327
  msgstr ""
1328
 
1329
- #: includes/class-mla-core-options.php:1265
1330
  msgctxt "table_view_singular"
1331
  msgid "Image"
1332
  msgstr ""
1333
 
1334
- #: includes/class-mla-core-options.php:1266
1335
  msgctxt "table_view_plural"
1336
  msgid "Images"
1337
  msgstr ""
1338
 
1339
- #: includes/class-mla-core-options.php:1271
1340
  msgctxt "post_mime_types_description"
1341
  msgid "All image subtypes"
1342
  msgstr ""
1343
 
1344
- #: includes/class-mla-core-options.php:1274
1345
  msgctxt "table_view_singular"
1346
  msgid "Audio"
1347
  msgstr ""
1348
 
1349
- #: includes/class-mla-core-options.php:1275
1350
  msgctxt "table_view_plural"
1351
  msgid "Audio"
1352
  msgstr ""
1353
 
1354
- #: includes/class-mla-core-options.php:1280
1355
  msgctxt "post_mime_types_description"
1356
  msgid "All audio subtypes"
1357
  msgstr ""
1358
 
1359
- #: includes/class-mla-core-options.php:1283
1360
  msgctxt "table_view_singular"
1361
  msgid "Video"
1362
  msgstr ""
1363
 
1364
- #: includes/class-mla-core-options.php:1284
1365
  msgctxt "table_view_plural"
1366
  msgid "Video"
1367
  msgstr ""
1368
 
1369
- #: includes/class-mla-core-options.php:1289
1370
  msgctxt "post_mime_types_description"
1371
  msgid "All video subtypes"
1372
  msgstr ""
1373
 
1374
- #: includes/class-mla-core-options.php:1292
1375
  msgctxt "table_view_singular"
1376
  msgid "Text"
1377
  msgstr ""
1378
 
1379
- #: includes/class-mla-core-options.php:1293
1380
  msgctxt "table_view_plural"
1381
  msgid "Text"
1382
  msgstr ""
1383
 
1384
- #: includes/class-mla-core-options.php:1298
1385
  msgctxt "post_mime_types_description"
1386
  msgid "All text subtypes"
1387
  msgstr ""
1388
 
1389
- #: includes/class-mla-core-options.php:1301
1390
  msgctxt "table_view_singular"
1391
  msgid "Application"
1392
  msgstr ""
1393
 
1394
- #: includes/class-mla-core-options.php:1302
1395
  msgctxt "table_view_plural"
1396
  msgid "Applications"
1397
  msgstr ""
1398
 
1399
- #: includes/class-mla-core-options.php:1307
1400
  msgctxt "post_mime_types_description"
1401
  msgid "All application subtypes"
1402
  msgstr ""
1403
 
1404
- #: includes/class-mla-core-options.php:1311
1405
  msgctxt "table_view_plural"
1406
  msgid "Unattached"
1407
  msgstr ""
1408
 
1409
- #: includes/class-mla-core-options.php:1319
1410
  msgctxt "table_view_singular"
1411
  msgid "Attached"
1412
  msgstr ""
1413
 
1414
- #: includes/class-mla-core-options.php:1320
1415
  msgctxt "table_view_plural"
1416
  msgid "Attached"
1417
  msgstr ""
1418
 
1419
- #: includes/class-mla-core-options.php:1328
1420
  msgctxt "table_view_singular"
1421
  msgid "Trash"
1422
  msgstr ""
1423
 
1424
- #: includes/class-mla-core-options.php:1329
1425
  msgctxt "table_view_plural"
1426
  msgid "Trash"
1427
  msgstr ""
1428
 
1429
- #: includes/class-mla-core-options.php:1340
1430
  msgid "Enable Upload MIME Type Support"
1431
  msgstr ""
1432
 
1433
- #: includes/class-mla-core-options.php:1343
1434
  msgid ""
1435
  "Check/uncheck this option to enable/disable Upload MIME Type Support, then "
1436
  "click <strong>Save Changes</strong> to record the new setting."
1437
  msgstr ""
1438
 
1439
- #: includes/class-mla-core-options.php:1352
1440
  msgid "Upload MIME Types help."
1441
  msgstr ""
1442
 
1443
- #: includes/class-mla-core-options.php:1357
1444
  msgid "Enable MLA File Type Icons Support"
1445
  msgstr ""
1446
 
1447
- #: includes/class-mla-core-options.php:1360
1448
  msgid ""
1449
  "Check/uncheck this option to enable/disable MLA File Type Icons Support, "
1450
  "then click <strong>Save Changes</strong> to record the new setting."
1451
  msgstr ""
1452
 
1453
- #: includes/class-mla-core-options.php:1364
 
 
 
 
 
 
 
 
 
 
1454
  msgid "Display Limit"
1455
  msgstr ""
1456
 
1457
- #: includes/class-mla-core-options.php:1368
1458
  msgid ""
1459
  "Enter the maximum number of debug log characters to display; enter zero or "
1460
  "leave blank for no limit."
1461
  msgstr ""
1462
 
1463
- #: includes/class-mla-core-options.php:1372
1464
  msgid "Debug File"
1465
  msgstr ""
1466
 
1467
- #: includes/class-mla-core-options.php:1376
1468
  msgid ""
1469
  "Enter the name of an alternate, MLA-specific debug log file; leave blank to "
1470
  "use the PHP error_log.<br>&nbsp;&nbsp;The WP_CONTENT_DIR value (below) will "
@@ -1472,75 +1530,75 @@ msgid ""
1472
  "\"."
1473
  msgstr ""
1474
 
1475
- #: includes/class-mla-core-options.php:1380
1476
  msgid "Replace PHP error_log file"
1477
  msgstr ""
1478
 
1479
- #: includes/class-mla-core-options.php:1383
1480
  msgid ""
1481
  "Check this option to replace the PHP error_log file with the MLA Debug File."
1482
  "<br>&nbsp;&nbsp;allows capture of PHP messages in the MLA Debug File."
1483
  msgstr ""
1484
 
1485
- #: includes/class-mla-core-options.php:1387
1486
  msgid "PHP Reporting"
1487
  msgstr ""
1488
 
1489
- #: includes/class-mla-core-options.php:1391
1490
  msgid ""
1491
  "Enter a numeric error_reporting value, e.g., 0x7FFF or 32767; leave blank to "
1492
  "use the existing PHP error_reporting value."
1493
  msgstr ""
1494
 
1495
- #: includes/class-mla-core-options.php:1395
1496
  msgid "MLA Reporting"
1497
  msgstr ""
1498
 
1499
- #: includes/class-mla-core-options.php:1399
1500
  msgid ""
1501
  "Enter a numeric MLA_DEBUG_LEVEL value, e.g., 0x0003 or 3; leave blank to use "
1502
  "the existing MLA_DEBUG_LEVEL value."
1503
  msgstr ""
1504
 
1505
- #: includes/class-mla-core.php:846
1506
  #, php-format
1507
  msgctxt "error_log"
1508
  msgid "%1$s: mla_load_template file \"%2$s\" not found."
1509
  msgstr ""
1510
 
1511
- #: includes/class-mla-core.php:864
1512
  #, php-format
1513
  msgctxt "error_log"
1514
  msgid "%1$s: mla_load_template file \"%2$s\" bad source type \"%3$s\"."
1515
  msgstr ""
1516
 
1517
- #: includes/class-mla-core.php:1289
1518
  #, php-format
1519
  msgid "%1$s: Bad specification part \"%2$s\""
1520
  msgstr ""
1521
 
1522
- #: includes/class-mla-core.php:1295
1523
  #, php-format
1524
  msgid "%1$s: Bad specification option \"%2$s\""
1525
  msgstr ""
1526
 
1527
- #: includes/class-mla-core.php:1299
1528
  #, php-format
1529
  msgid "%1$s: Bad specification prefix \"%2$s\""
1530
  msgstr ""
1531
 
1532
- #: includes/class-mla-core.php:1399
1533
  msgid "Most Used"
1534
  msgstr ""
1535
 
1536
- #: includes/class-mla-core.php:1428
1537
  #, php-format
1538
  msgid "+ %s"
1539
  msgstr ""
1540
 
1541
- #: includes/class-mla-core.php:1434 includes/class-mla-edit-media.php:360
1542
- #: includes/class-mla-edit-media.php:416 includes/class-mla-main.php:2030
1543
- #: includes/class-mla-main.php:2211 includes/class-mla-main.php:2275
1544
  #: includes/class-mla-media-modal.php:647
1545
  #: includes/mla-media-modal-js-template.php:45
1546
  #: includes/mla-media-modal-js-template.php:92
@@ -1622,7 +1680,7 @@ msgstr ""
1622
  #: includes/class-mla-data-query.php:294
1623
  #: includes/class-mla-settings-custom-fields-tab.php:1208
1624
  #: includes/class-mla-settings-documentation-tab.php:522
1625
- #: includes/class-mla-settings-iptc-exif-tab.php:1284
1626
  #: includes/class-mla-settings-shortcodes-tab.php:956
1627
  msgctxt "list_table_column"
1628
  msgid "Name"
@@ -1668,16 +1726,16 @@ msgctxt "list_table_column"
1668
  msgid "Caption"
1669
  msgstr ""
1670
 
1671
- #: includes/class-mla-data-query.php:303 includes/class-mla-mime-types.php:611
1672
- #: includes/class-mla-mime-types.php:684 includes/class-mla-mime-types.php:763
1673
  #: includes/class-mla-settings-documentation-tab.php:525
1674
  #: includes/class-mla-settings-shortcodes-tab.php:959
1675
  msgctxt "list_table_column"
1676
  msgid "Description"
1677
  msgstr ""
1678
 
1679
- #: includes/class-mla-data-query.php:304 includes/class-mla-mime-types.php:603
1680
- #: includes/class-mla-mime-types.php:681
1681
  msgctxt "list_table_column"
1682
  msgid "MIME Type"
1683
  msgstr ""
@@ -1713,18 +1771,18 @@ msgid "Attached to"
1713
  msgstr ""
1714
 
1715
  #: includes/class-mla-data-query.php:843 includes/class-mla-edit-media.php:319
1716
- #: includes/class-mla-main.php:2024 includes/class-mla-main.php:2150
1717
- #: includes/class-mla-media-modal.php:617 includes/class-mla-mime-types.php:801
1718
- #: includes/class-mla-mime-types.php:1450
1719
- #: includes/class-mla-mime-types.php:2640
1720
  #: includes/class-mla-settings-custom-fields-tab.php:552
1721
  #: includes/class-mla-settings-custom-fields-tab.php:718
1722
  #: includes/class-mla-settings-custom-fields-tab.php:2034
1723
  #: includes/class-mla-settings-documentation-tab.php:323
1724
  #: includes/class-mla-settings-documentation-tab.php:1301
1725
- #: includes/class-mla-settings-iptc-exif-tab.php:631
1726
- #: includes/class-mla-settings-iptc-exif-tab.php:799
1727
- #: includes/class-mla-settings-iptc-exif-tab.php:2265
1728
  #: includes/class-mla-settings-shortcodes-tab.php:503
1729
  #: includes/class-mla-settings-shortcodes-tab.php:1630
1730
  #: includes/class-mla-settings-upload-tab.php:301
@@ -1740,18 +1798,6 @@ msgctxt "error_log"
1740
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1741
  msgstr ""
1742
 
1743
- #: includes/class-mla-data-query.php:1333
1744
- #: includes/class-mla-data-query.php:1348
1745
- #: includes/class-mla-data-query.php:1350
1746
- #: includes/class-mla-data-query.php:1864
1747
- #: includes/class-mla-data-query.php:1943
1748
- #: includes/class-mla-data-query.php:2015
1749
- #: includes/class-mla-data-query.php:2112
1750
- #: includes/class-mla-data-query.php:2204
1751
- #: includes/class-mla-data-query.php:2223
1752
- msgid "DEBUG"
1753
- msgstr ""
1754
-
1755
  #: includes/class-mla-data-query.php:1348
1756
  #, php-format
1757
  msgctxt "error_log"
@@ -1770,31 +1816,31 @@ msgctxt "error_log"
1770
  msgid "%1$s: mla_query_posts_search_filter = \"%2$s\"."
1771
  msgstr ""
1772
 
1773
- #: includes/class-mla-data-query.php:1943
1774
  #, php-format
1775
  msgctxt "error_log"
1776
  msgid "%1$s: mla_query_posts_where_filter = \"%2$s\"."
1777
  msgstr ""
1778
 
1779
- #: includes/class-mla-data-query.php:2015
1780
  #, php-format
1781
  msgctxt "error_log"
1782
  msgid "%1$s: mla_query_posts_join_filter = \"%2$s\"."
1783
  msgstr ""
1784
 
1785
- #: includes/class-mla-data-query.php:2112
1786
  #, php-format
1787
  msgctxt "error_log"
1788
  msgid "%1$s: mla_query_posts_orderby_filter = \"%2$s\"."
1789
  msgstr ""
1790
 
1791
- #: includes/class-mla-data-query.php:2204
1792
  #, php-format
1793
  msgctxt "error_log"
1794
  msgid "%1$s: mla_query_posts_clauses_filter = \"%2$s\"."
1795
  msgstr ""
1796
 
1797
- #: includes/class-mla-data-query.php:2223
1798
  #, php-format
1799
  msgctxt "error_log"
1800
  msgid "%1$s: mla_query_posts_clauses_request_filter = \"%2$s\"."
@@ -1848,29 +1894,35 @@ msgctxt "error_log"
1848
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1849
  msgstr ""
1850
 
1851
- #: includes/class-mla-data.php:237
 
 
 
 
 
 
1852
  #, php-format
1853
  msgctxt "error_log"
1854
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
1855
  msgstr ""
1856
 
1857
- #: includes/class-mla-data.php:340
1858
  msgid "Test; no closing parenthesis "
1859
  msgstr ""
1860
 
1861
- #: includes/class-mla-data.php:495
1862
  #, php-format
1863
  msgctxt "error_log"
1864
  msgid "%1$s: _evaluate_template_array_node unknown type \"%2$s\"."
1865
  msgstr ""
1866
 
1867
- #: includes/class-mla-data.php:558
1868
  #, php-format
1869
  msgctxt "error_log"
1870
  msgid "%1$s: _evaluate_template_node unknown type \"%2$s\"."
1871
  msgstr ""
1872
 
1873
- #: includes/class-mla-data.php:1511
1874
  #, php-format
1875
  msgctxt "error_log"
1876
  msgid ""
@@ -1878,34 +1930,34 @@ msgid ""
1878
  "\"."
1879
  msgstr ""
1880
 
1881
- #: includes/class-mla-data.php:1710
1882
  #, php-format
1883
  msgctxt "error_log"
1884
  msgid "%1$s: mla_get_attachment_by_id(%2$d) not found."
1885
  msgstr ""
1886
 
1887
- #: includes/class-mla-data.php:1716
1888
  #, php-format
1889
  msgctxt "error_log"
1890
  msgid "%1$s: mla_get_attachment_by_id(%2$d) wrong post_type \"%3$s\"."
1891
  msgstr ""
1892
 
1893
- #: includes/class-mla-data.php:2066
1894
  msgctxt "error_log"
1895
  msgid "mla_parse_xml_string xml_parse_into_struct failed."
1896
  msgstr ""
1897
 
1898
- #: includes/class-mla-data.php:2070
1899
  msgctxt "error_log"
1900
  msgid "mla_parse_xml_string set option failed."
1901
  msgstr ""
1902
 
1903
- #: includes/class-mla-data.php:3662
1904
  #: includes/class-mla-settings-custom-fields-tab.php:810
1905
  #: includes/class-mla-settings-custom-fields-tab.php:1520
1906
- #: includes/class-mla-settings-iptc-exif-tab.php:893
1907
- #: includes/class-mla-settings-iptc-exif-tab.php:1626
1908
- #: includes/class-mla-settings-iptc-exif-tab.php:2439
1909
  #: includes/class-mla-settings-view-tab.php:398
1910
  #: includes/class-mla-settings-view-tab.php:796
1911
  #: includes/class-mla-settings-view-tab.php:812
@@ -1913,12 +1965,12 @@ msgstr ""
1913
  msgid "Yes"
1914
  msgstr ""
1915
 
1916
- #: includes/class-mla-data.php:3664
1917
  #: includes/class-mla-settings-custom-fields-tab.php:811
1918
  #: includes/class-mla-settings-custom-fields-tab.php:1522
1919
- #: includes/class-mla-settings-iptc-exif-tab.php:894
1920
- #: includes/class-mla-settings-iptc-exif-tab.php:1628
1921
- #: includes/class-mla-settings-iptc-exif-tab.php:2439
1922
  #: includes/class-mla-settings-view-tab.php:397
1923
  #: includes/class-mla-settings-view-tab.php:798
1924
  #: includes/class-mla-settings-view-tab.php:814
@@ -1926,172 +1978,172 @@ msgstr ""
1926
  msgid "No"
1927
  msgstr ""
1928
 
1929
- #: includes/class-mla-data.php:3912 includes/class-mla-data.php:4029
1930
  #, php-format
1931
  msgid "Deleting %1$s"
1932
  msgstr ""
1933
 
1934
- #: includes/class-mla-data.php:3915
1935
  #, php-format
1936
  msgid "%1$s: meta:%2$s not found"
1937
  msgstr ""
1938
 
1939
- #: includes/class-mla-data.php:3924 includes/class-mla-data.php:4040
1940
- #: includes/class-mla-data.php:4052
1941
  #, php-format
1942
  msgid "Adding %1$s = %2$s"
1943
  msgstr ""
1944
 
1945
- #: includes/class-mla-data.php:3928
1946
  #, php-format
1947
  msgid "%1$s: Adding meta:%2$s; not found"
1948
  msgstr ""
1949
 
1950
- #: includes/class-mla-data.php:3935
1951
  #, php-format
1952
  msgid "Deleting Null meta:%1$s"
1953
  msgstr ""
1954
 
1955
- #: includes/class-mla-data.php:3945 includes/class-mla-data.php:4121
1956
- #: includes/class-mla-data.php:4187 includes/class-mla-data.php:4213
1957
- #: includes/class-mla-data.php:4256 includes/class-mla-data.php:4269
1958
- #: includes/class-mla-data.php:4278 includes/class-mla-data.php:4289
1959
- #: includes/class-mla-data.php:4300 includes/class-mla-data.php:4313
1960
- #: includes/class-mla-data.php:4322 includes/class-mla-data.php:4331
1961
- #: includes/class-mla-data.php:4340 includes/class-mla-data.php:4349
1962
- #: includes/class-mla-mime-types.php:1284
1963
- #: includes/class-mla-mime-types.php:2404
1964
  #, php-format
1965
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\""
1966
  msgstr ""
1967
 
1968
- #: includes/class-mla-data.php:3950
1969
  #, php-format
1970
  msgid "%1$s: Changing meta:%2$s; not found"
1971
  msgstr ""
1972
 
1973
- #: includes/class-mla-data.php:4076
1974
  #, php-format
1975
  msgid "Deleting old %1$s values"
1976
  msgstr ""
1977
 
1978
- #: includes/class-mla-data.php:4106
1979
  #, php-format
1980
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\"; %4$d updates"
1981
  msgstr ""
1982
 
1983
- #: includes/class-mla-data.php:4164
1984
  msgid "Could not retrieve Attachment."
1985
  msgstr ""
1986
 
1987
- #: includes/class-mla-data.php:4210
1988
  #, php-format
1989
  msgid "%1$s: Could not change Name/Slug \"%2$s\"; name already exists"
1990
  msgstr ""
1991
 
1992
- #: includes/class-mla-data.php:4240
1993
  #, php-format
1994
  msgid "Deleting ALT Text, was \"%1$s\""
1995
  msgstr ""
1996
 
1997
- #: includes/class-mla-data.php:4243
1998
  #, php-format
1999
  msgid "%1$s: Could not delete ALT Text, remains \"%2$s\""
2000
  msgstr ""
2001
 
2002
- #: includes/class-mla-data.php:4259
2003
  #, php-format
2004
  msgid "%1$s: Could not change ALT Text from \"%2$s\" to \"%3$s\""
2005
  msgstr ""
2006
 
2007
- #: includes/class-mla-data.php:4289 includes/class-mla-list-table.php:1047
2008
- #: includes/class-mla-list-table.php:1050
2009
- #: includes/class-mla-list-table.php:1053
2010
- #: includes/class-mla-list-table.php:1121 includes/class-mla-options.php:2151
2011
- #: includes/class-mla-settings-iptc-exif-tab.php:484
2012
- #: includes/class-mla-settings-iptc-exif-tab.php:863
2013
  msgid "Parent"
2014
  msgstr ""
2015
 
2016
- #: includes/class-mla-data.php:4300 includes/class-mla-edit-media.php:816
2017
- #: includes/class-mla-edit-media.php:1021 includes/class-mla-main.php:2353
2018
  #: includes/class-mla-settings-view-tab.php:130
2019
  #: includes/class-mla-settings-view-tab.php:386
2020
  msgid "Menu Order"
2021
  msgstr ""
2022
 
2023
- #: includes/class-mla-data.php:4313 includes/class-mla-edit-media.php:447
2024
- #: includes/class-mla-list-table.php:1501
2025
- #: includes/class-mla-list-table.php:1504 includes/class-mla-main.php:2156
2026
- #: includes/class-mla-main.php:2312
2027
  msgid "Author"
2028
  msgstr ""
2029
 
2030
- #: includes/class-mla-data.php:4322 includes/class-mla-edit-media.php:472
2031
- #: includes/class-mla-main.php:2365
2032
  msgid "Comments"
2033
  msgstr ""
2034
 
2035
- #: includes/class-mla-data.php:4331 includes/class-mla-edit-media.php:473
2036
- #: includes/class-mla-main.php:2366
2037
  msgid "Pings"
2038
  msgstr ""
2039
 
2040
- #: includes/class-mla-data.php:4376
2041
  #, php-format
2042
  msgid "You cannot assign \"%1$s\" terms"
2043
  msgstr ""
2044
 
2045
- #: includes/class-mla-data.php:4388
2046
  msgctxt "tag delimiter"
2047
  msgid ","
2048
  msgstr ""
2049
 
2050
- #: includes/class-mla-data.php:4421
2051
  msgid "Adding"
2052
  msgstr ""
2053
 
2054
- #: includes/class-mla-data.php:4426
2055
  msgid "Removing"
2056
  msgstr ""
2057
 
2058
- #: includes/class-mla-data.php:4435
2059
  msgid "Replacing"
2060
  msgstr ""
2061
 
2062
- #: includes/class-mla-data.php:4443
2063
  msgid "Ignoring"
2064
  msgstr ""
2065
 
2066
- #: includes/class-mla-data.php:4456
2067
  #, php-format
2068
  msgid "%1$s \"%2$s\" terms"
2069
  msgstr ""
2070
 
2071
- #: includes/class-mla-data.php:4468 includes/class-mla-main.php:1384
2072
  #, php-format
2073
  msgid "Item %1$d, no changes detected."
2074
  msgstr ""
2075
 
2076
- #: includes/class-mla-data.php:4498
2077
  #, php-format
2078
  msgid "Item %1$d updated."
2079
  msgstr ""
2080
 
2081
- #: includes/class-mla-data.php:4512
2082
  #, php-format
2083
  msgid "%1$s: Item %2$d update failed."
2084
  msgstr ""
2085
 
2086
  #: includes/class-mla-edit-media.php:129 includes/class-mla-edit-media.php:183
2087
- #: includes/class-mla-edit-media.php:236 includes/class-mla-main.php:468
2088
- #: includes/class-mla-main.php:1139 includes/class-mla-main.php:1908
2089
- #: includes/class-mla-media-modal.php:268 includes/class-mla-options.php:1649
2090
  #: includes/class-mla-polylang-support.php:378
2091
  #: includes/class-mla-settings-custom-fields-tab.php:59
2092
  #: includes/class-mla-settings-custom-fields-tab.php:94
2093
- #: includes/class-mla-settings-iptc-exif-tab.php:59
2094
- #: includes/class-mla-settings-iptc-exif-tab.php:94
2095
  #: includes/class-mla-settings-upload-tab.php:48
2096
  #: includes/class-mla-settings-view-tab.php:48
2097
  #: includes/class-mla-thumbnail-generation.php:99
@@ -2112,61 +2164,61 @@ msgid "Close Bulk Edit area"
2112
  msgstr ""
2113
 
2114
  #: includes/class-mla-edit-media.php:184 includes/class-mla-edit-media.php:238
2115
- #: includes/class-mla-main.php:455
2116
  msgid "An ajax.fail error has occurred. Please reload the page and try again."
2117
  msgstr ""
2118
 
2119
  #: includes/class-mla-edit-media.php:185 includes/class-mla-edit-media.php:239
2120
- #: includes/class-mla-main.php:456
2121
  msgid "An ajax.done error has occurred. Please reload the page and try again."
2122
  msgstr ""
2123
 
2124
- #: includes/class-mla-edit-media.php:240 includes/class-mla-main.php:2110
2125
  #, php-format
2126
  msgid "Uploaded on: %s"
2127
  msgstr ""
2128
 
2129
- #: includes/class-mla-edit-media.php:241 includes/class-mla-edit-media.php:689
2130
  msgid "Last modified"
2131
  msgstr ""
2132
 
2133
  #: includes/class-mla-edit-media.php:339 includes/class-mla-edit-media.php:395
2134
- #: includes/class-mla-main.php:2190 includes/class-mla-main.php:2254
2135
  msgid "+&nbsp;Add&nbsp;New&nbsp;Term"
2136
  msgstr ""
2137
 
2138
  #: includes/class-mla-edit-media.php:340 includes/class-mla-edit-media.php:396
2139
- #: includes/class-mla-main.php:2191 includes/class-mla-main.php:2255
2140
  msgid "Add New"
2141
  msgstr ""
2142
 
2143
  #: includes/class-mla-edit-media.php:358 includes/class-mla-edit-media.php:414
2144
- #: includes/class-mla-main.php:2209 includes/class-mla-main.php:2273
2145
  msgid "?&nbsp;Search"
2146
  msgstr ""
2147
 
2148
  #: includes/class-mla-edit-media.php:361 includes/class-mla-edit-media.php:417
2149
- #: includes/class-mla-edit-media.php:426 includes/class-mla-main.php:2212
2150
- #: includes/class-mla-main.php:2276 includes/class-mla-main.php:2285
2151
  msgid "Add"
2152
  msgstr ""
2153
 
2154
  #: includes/class-mla-edit-media.php:362 includes/class-mla-edit-media.php:418
2155
- #: includes/class-mla-edit-media.php:427 includes/class-mla-main.php:2213
2156
- #: includes/class-mla-main.php:2277 includes/class-mla-main.php:2286
2157
  msgid "Remove"
2158
  msgstr ""
2159
 
2160
  #: includes/class-mla-edit-media.php:363 includes/class-mla-edit-media.php:419
2161
- #: includes/class-mla-edit-media.php:428 includes/class-mla-main.php:2214
2162
- #: includes/class-mla-main.php:2278 includes/class-mla-main.php:2287
2163
  #: includes/class-mla-settings-custom-fields-tab.php:481
2164
  #: includes/class-mla-settings-custom-fields-tab.php:781
2165
  #: includes/class-mla-settings-custom-fields-tab.php:1506
2166
- #: includes/class-mla-settings-iptc-exif-tab.php:478
2167
- #: includes/class-mla-settings-iptc-exif-tab.php:860
2168
- #: includes/class-mla-settings-iptc-exif-tab.php:1567
2169
- #: includes/class-mla-settings-iptc-exif-tab.php:2420
2170
  msgid "Replace"
2171
  msgstr ""
2172
 
@@ -2176,100 +2228,100 @@ msgid ""
2176
  "menu for more information."
2177
  msgstr ""
2178
 
2179
- #: includes/class-mla-edit-media.php:468 includes/class-mla-main.php:2359
2180
- #: includes/class-mla-settings.php:1397
2181
  msgid "Reset"
2182
  msgstr ""
2183
 
2184
- #: includes/class-mla-edit-media.php:474 includes/class-mla-main.php:2367
2185
- #: includes/class-mla-main.php:2423
2186
  #: includes/class-mla-settings-custom-fields-tab.php:809
2187
- #: includes/class-mla-settings-iptc-exif-tab.php:892
2188
  #: includes/class-mla-settings-upload-tab.php:122
2189
  #: includes/class-mla-settings-upload-tab.php:549
2190
  #: includes/class-mla-settings-view-tab.php:396
2191
  msgid "No Change"
2192
  msgstr ""
2193
 
2194
- #: includes/class-mla-edit-media.php:475 includes/class-mla-main.php:2368
2195
  msgid "Allow"
2196
  msgstr ""
2197
 
2198
- #: includes/class-mla-edit-media.php:476 includes/class-mla-main.php:2369
2199
  msgid "Do not allow"
2200
  msgstr ""
2201
 
2202
- #: includes/class-mla-edit-media.php:484 includes/class-mla-list-table.php:1047
2203
- #: includes/class-mla-list-table.php:1118 includes/class-mla-main.php:2351
2204
  msgid "Parent ID"
2205
  msgstr ""
2206
 
2207
- #: includes/class-mla-edit-media.php:485 includes/class-mla-edit-media.php:1001
2208
- #: includes/class-mla-main.php:2352
2209
  #: includes/class-mla-settings-upload-tab.php:1463
2210
  msgid "Select"
2211
  msgstr ""
2212
 
2213
- #: includes/class-mla-edit-media.php:578
2214
  msgid "Custom field mapping updated."
2215
  msgstr ""
2216
 
2217
- #: includes/class-mla-edit-media.php:579
2218
  msgid "IPTC/EXIF mapping updated."
2219
  msgstr ""
2220
 
2221
- #: includes/class-mla-edit-media.php:580
2222
  msgid "Custom field mapping is disabled."
2223
  msgstr ""
2224
 
2225
- #: includes/class-mla-edit-media.php:581
2226
  msgid "IPTC/EXIF mapping is disabled."
2227
  msgstr ""
2228
 
2229
- #: includes/class-mla-edit-media.php:616 includes/class-mla-main.php:2094
2230
  msgid "Month"
2231
  msgstr ""
2232
 
2233
- #: includes/class-mla-edit-media.php:622 includes/class-mla-main.php:2100
2234
  #, php-format
2235
  msgid "%1$s-%2$s"
2236
  msgstr ""
2237
 
2238
- #: includes/class-mla-edit-media.php:626 includes/class-mla-main.php:2104
2239
  msgid "Day"
2240
  msgstr ""
2241
 
2242
- #: includes/class-mla-edit-media.php:627 includes/class-mla-main.php:2105
2243
  msgid "Year"
2244
  msgstr ""
2245
 
2246
- #: includes/class-mla-edit-media.php:628 includes/class-mla-main.php:2106
2247
  msgid "Hour"
2248
  msgstr ""
2249
 
2250
- #: includes/class-mla-edit-media.php:629 includes/class-mla-main.php:2107
2251
  msgid "Minute"
2252
  msgstr ""
2253
 
2254
- #: includes/class-mla-edit-media.php:633 includes/class-mla-main.php:2112
2255
  #, php-format
2256
  msgid "%1$s %2$s, %3$s @ %4$s:%5$s"
2257
  msgstr ""
2258
 
2259
- #: includes/class-mla-edit-media.php:656
2260
  msgid "OK"
2261
  msgstr ""
2262
 
2263
- #: includes/class-mla-edit-media.php:657 includes/class-mla-main.php:2047
2264
- #: includes/class-mla-main.php:2358
2265
  #: includes/class-mla-polylang-support.php:2065
2266
  #: includes/class-mla-settings-custom-fields-tab.php:509
2267
  #: includes/class-mla-settings-custom-fields-tab.php:730
2268
  #: includes/class-mla-settings-custom-fields-tab.php:812
2269
  #: includes/class-mla-settings-documentation-tab.php:199
2270
- #: includes/class-mla-settings-iptc-exif-tab.php:517
2271
- #: includes/class-mla-settings-iptc-exif-tab.php:811
2272
- #: includes/class-mla-settings-iptc-exif-tab.php:895
2273
  #: includes/class-mla-settings-shortcodes-tab.php:405
2274
  #: includes/class-mla-settings-shortcodes-tab.php:476
2275
  #: includes/class-mla-settings-upload-tab.php:177
@@ -2281,23 +2333,23 @@ msgstr ""
2281
  msgid "Cancel"
2282
  msgstr ""
2283
 
2284
- #: includes/class-mla-edit-media.php:673
2285
  msgid "M j, Y @ H:i"
2286
  msgstr ""
2287
 
2288
- #: includes/class-mla-edit-media.php:679 includes/class-mla-list-table.php:619
2289
- #: includes/class-mla-list-table.php:747 includes/class-mla-list-table.php:1002
2290
- #: includes/class-mla-list-table.php:1173
2291
- #: includes/class-mla-list-table.php:1222
2292
- #: includes/class-mla-list-table.php:1268
2293
- #: includes/class-mla-list-table.php:1313
2294
- #: includes/class-mla-list-table.php:1535
2295
- #: includes/class-mla-list-table.php:1861
2296
  #: includes/class-mla-polylang-support.php:377
2297
  #: includes/class-mla-settings-custom-fields-tab.php:1349
2298
  #: includes/class-mla-settings-custom-fields-tab.php:1688
2299
- #: includes/class-mla-settings-iptc-exif-tab.php:1427
2300
- #: includes/class-mla-settings-iptc-exif-tab.php:1794
2301
  #: includes/class-mla-settings-shortcodes-tab.php:1074
2302
  #: includes/class-mla-settings-upload-tab.php:918
2303
  #: includes/class-mla-settings-upload-tab.php:1207
@@ -2306,91 +2358,91 @@ msgstr ""
2306
  msgid "Edit"
2307
  msgstr ""
2308
 
2309
- #: includes/class-mla-edit-media.php:680
2310
  msgid "Edit upload date and time"
2311
  msgstr ""
2312
 
2313
- #: includes/class-mla-edit-media.php:682
2314
  msgid "Upload Date and time"
2315
  msgstr ""
2316
 
2317
- #: includes/class-mla-edit-media.php:712
2318
  msgid "Map Custom Field metadata for this item"
2319
  msgstr ""
2320
 
2321
- #: includes/class-mla-edit-media.php:712 includes/class-mla-main.php:1822
2322
- #: includes/class-mla-main.php:2374
2323
  msgid "Map Custom Field metadata"
2324
  msgstr ""
2325
 
2326
- #: includes/class-mla-edit-media.php:716
2327
  msgid "Map IPTC/EXIF metadata for this item"
2328
  msgstr ""
2329
 
2330
- #: includes/class-mla-edit-media.php:716 includes/class-mla-main.php:1825
2331
- #: includes/class-mla-main.php:2372
2332
  msgid "Map IPTC/EXIF metadata"
2333
  msgstr ""
2334
 
2335
- #: includes/class-mla-edit-media.php:812 includes/class-mla-edit-media.php:1002
2336
  msgid "Parent Info"
2337
  msgstr ""
2338
 
2339
- #: includes/class-mla-edit-media.php:822 includes/class-mla-edit-media.php:1045
2340
  msgid "Attachment Metadata"
2341
  msgstr ""
2342
 
2343
- #: includes/class-mla-edit-media.php:892 includes/class-mla-edit-media.php:934
2344
- #: includes/class-mla-main.php:707 includes/class-mla-settings.php:589
2345
  #, php-format
2346
  msgctxt "error_log"
2347
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
2348
  msgstr ""
2349
 
2350
- #: includes/class-mla-edit-media.php:1000
2351
  msgid "Post Parent"
2352
  msgstr ""
2353
 
2354
- #: includes/class-mla-edit-media.php:1001 includes/class-mla-main.php:2029
2355
  msgid "Select Parent"
2356
  msgstr ""
2357
 
2358
- #: includes/class-mla-list-table.php:181 includes/class-mla-list-table.php:217
2359
  msgid "All"
2360
  msgstr ""
2361
 
2362
- #: includes/class-mla-list-table.php:218
2363
  msgctxt "show_option_none"
2364
  msgid "No"
2365
  msgstr ""
2366
 
2367
- #: includes/class-mla-list-table.php:432
2368
  #: includes/class-mla-settings-custom-fields-tab.php:997
2369
- #: includes/class-mla-settings-iptc-exif-tab.php:1069
2370
  #: includes/class-mla-settings-upload-tab.php:643
2371
  #: includes/class-mla-settings-view-tab.php:490
2372
  msgid "List View"
2373
  msgstr ""
2374
 
2375
- #: includes/class-mla-list-table.php:499 includes/class-mla-list-table.php:551
2376
- #: includes/class-mla-list-table.php:1047
2377
- #: includes/class-mla-list-table.php:1118
2378
- #: includes/class-mla-list-table.php:1341
2379
- #: includes/class-mla-list-table.php:1385
2380
- #: includes/class-mla-list-table.php:1417
2381
- #: includes/class-mla-list-table.php:1501
2382
  msgid "Filter by"
2383
  msgstr ""
2384
 
2385
- #: includes/class-mla-list-table.php:509
2386
  #: includes/class-mla-media-modal-ajax.php:511
2387
  msgid "Not Supported"
2388
  msgstr ""
2389
 
2390
- #: includes/class-mla-list-table.php:571
2391
  #: includes/class-mla-settings-custom-fields-tab.php:1297
2392
  #: includes/class-mla-settings-documentation-tab.php:607
2393
- #: includes/class-mla-settings-iptc-exif-tab.php:1375
2394
  #: includes/class-mla-settings-shortcodes-tab.php:1029
2395
  #: includes/class-mla-settings-upload-tab.php:854
2396
  #: includes/class-mla-settings-upload-tab.php:1411
@@ -2399,67 +2451,67 @@ msgstr ""
2399
  msgid "column_default: %1$s, %2$s"
2400
  msgstr ""
2401
 
2402
- #: includes/class-mla-list-table.php:734
2403
  msgid "Restore this item from the Trash"
2404
  msgstr ""
2405
 
2406
- #: includes/class-mla-list-table.php:734 includes/class-mla-list-table.php:1858
2407
  msgid "Restore"
2408
  msgstr ""
2409
 
2410
- #: includes/class-mla-list-table.php:747
2411
  #: includes/class-mla-settings-custom-fields-tab.php:1349
2412
- #: includes/class-mla-settings-iptc-exif-tab.php:1427
2413
  #: includes/class-mla-settings-shortcodes-tab.php:1074
2414
  #: includes/class-mla-settings-upload-tab.php:918
2415
  #: includes/class-mla-settings-view-tab.php:717
2416
  msgid "Edit this item"
2417
  msgstr ""
2418
 
2419
- #: includes/class-mla-list-table.php:748
2420
  #: includes/class-mla-settings-custom-fields-tab.php:1352
2421
- #: includes/class-mla-settings-iptc-exif-tab.php:1430
2422
  #: includes/class-mla-settings-upload-tab.php:920
2423
  #: includes/class-mla-settings-view-tab.php:719
2424
  msgid "Edit this item inline"
2425
  msgstr ""
2426
 
2427
- #: includes/class-mla-list-table.php:748 includes/class-mla-main.php:2342
2428
  #: includes/class-mla-options.php:1242
2429
  #: includes/class-mla-settings-custom-fields-tab.php:472
2430
  #: includes/class-mla-settings-custom-fields-tab.php:772
2431
  #: includes/class-mla-settings-custom-fields-tab.php:1352
2432
  #: includes/class-mla-settings-custom-fields-tab.php:1462
2433
- #: includes/class-mla-settings-iptc-exif-tab.php:839
2434
- #: includes/class-mla-settings-iptc-exif-tab.php:1430
2435
  #: includes/class-mla-settings-upload-tab.php:920
2436
  #: includes/class-mla-settings-view-tab.php:719
2437
  msgid "Quick Edit"
2438
  msgstr ""
2439
 
2440
- #: includes/class-mla-list-table.php:754
2441
  msgid "Move this item to the Trash"
2442
  msgstr ""
2443
 
2444
- #: includes/class-mla-list-table.php:754 includes/class-mla-list-table.php:1864
2445
  msgid "Move to Trash"
2446
  msgstr ""
2447
 
2448
- #: includes/class-mla-list-table.php:759
2449
  #: includes/class-mla-settings-custom-fields-tab.php:1360
2450
- #: includes/class-mla-settings-iptc-exif-tab.php:1440
2451
  #: includes/class-mla-settings-shortcodes-tab.php:1080
2452
  #: includes/class-mla-settings-upload-tab.php:924
2453
  #: includes/class-mla-settings-view-tab.php:725
2454
  msgid "Delete this item Permanently"
2455
  msgstr ""
2456
 
2457
- #: includes/class-mla-list-table.php:759 includes/class-mla-list-table.php:1859
2458
- #: includes/class-mla-list-table.php:1866
2459
  #: includes/class-mla-settings-custom-fields-tab.php:1360
2460
  #: includes/class-mla-settings-custom-fields-tab.php:1689
2461
- #: includes/class-mla-settings-iptc-exif-tab.php:1440
2462
- #: includes/class-mla-settings-iptc-exif-tab.php:1795
2463
  #: includes/class-mla-settings-shortcodes-tab.php:1080
2464
  #: includes/class-mla-settings-upload-tab.php:924
2465
  #: includes/class-mla-settings-view-tab.php:725
@@ -2467,199 +2519,199 @@ msgstr ""
2467
  msgid "Delete Permanently"
2468
  msgstr ""
2469
 
2470
- #: includes/class-mla-list-table.php:767 includes/class-mla-list-table.php:1871
2471
  #: includes/class-mla-settings-documentation-tab.php:688
2472
- #: includes/class-mla-settings.php:1387
2473
  msgid "Download"
2474
  msgstr ""
2475
 
2476
- #: includes/class-mla-list-table.php:769
2477
  #: includes/class-mla-settings-documentation-tab.php:691
2478
  #: includes/class-mla-settings-shortcodes-tab.php:1072
2479
  #: includes/class-mla-settings-view-tab.php:374
2480
  msgid "View"
2481
  msgstr ""
2482
 
2483
- #: includes/class-mla-list-table.php:1018
2484
  msgid "File name"
2485
  msgstr ""
2486
 
2487
- #: includes/class-mla-list-table.php:1115
2488
  msgid "(no title: bad ID)"
2489
  msgstr ""
2490
 
2491
- #: includes/class-mla-list-table.php:1388
2492
  #: includes/class-mla-settings-upload-tab.php:167
2493
  #: includes/class-mla-settings-upload-tab.php:532
2494
  msgid "MIME Type"
2495
  msgstr ""
2496
 
2497
- #: includes/class-mla-list-table.php:1421
2498
  msgid "Base File"
2499
  msgstr ""
2500
 
2501
- #: includes/class-mla-list-table.php:1437
2502
- #: includes/class-mla-list-table.php:1470
2503
  msgid "Unpublished"
2504
  msgstr ""
2505
 
2506
- #: includes/class-mla-list-table.php:1446
2507
- #: includes/class-mla-list-table.php:1477
2508
  #, php-format
2509
  msgid "%1$s from now"
2510
  msgstr ""
2511
 
2512
- #: includes/class-mla-list-table.php:1449
2513
- #: includes/class-mla-list-table.php:1479
2514
  #, php-format
2515
  msgid "%1$s ago"
2516
  msgstr ""
2517
 
2518
- #: includes/class-mla-list-table.php:1563
2519
  msgid "Set Parent"
2520
  msgstr ""
2521
 
2522
- #: includes/class-mla-list-table.php:1713
2523
  msgctxt "uploaded files"
2524
  msgid "All"
2525
  msgid_plural "All"
2526
  msgstr[0] ""
2527
  msgstr[1] ""
2528
 
2529
- #: includes/class-mla-list-table.php:1962
2530
  #: includes/class-mla-settings-custom-fields-tab.php:1754
2531
- #: includes/class-mla-settings-iptc-exif-tab.php:1860
2532
  #: includes/class-mla-settings-shortcodes-tab.php:1348
2533
  msgid "Filter"
2534
  msgstr ""
2535
 
2536
- #: includes/class-mla-list-table.php:1965
2537
  #: includes/mla-media-modal-js-template.php:89
2538
  msgid "Terms Search"
2539
  msgstr ""
2540
 
2541
- #: includes/class-mla-list-table.php:1970
2542
  #: includes/class-mla-polylang-support.php:2072
2543
  #: includes/class-mla-thumbnail-generation.php:654
2544
  msgid "Clear Filter-by"
2545
  msgstr ""
2546
 
2547
- #: includes/class-mla-list-table.php:1973
2548
  msgid "Empty Trash"
2549
  msgstr ""
2550
 
2551
- #: includes/class-mla-main.php:457
2552
  msgid "Error while saving the changes."
2553
  msgstr ""
2554
 
2555
- #: includes/class-mla-main.php:458
2556
  #: includes/class-mla-settings-custom-fields-tab.php:57
2557
  #: includes/class-mla-settings-custom-fields-tab.php:92
2558
- #: includes/class-mla-settings-iptc-exif-tab.php:57
2559
- #: includes/class-mla-settings-iptc-exif-tab.php:92
2560
  #: includes/class-mla-settings-upload-tab.php:46
2561
  #: includes/class-mla-settings-view-tab.php:46
2562
  msgid "Remove From Bulk Edit"
2563
  msgstr ""
2564
 
2565
- #: includes/class-mla-main.php:460
2566
  msgid "Bulk Edit items"
2567
  msgstr ""
2568
 
2569
- #: includes/class-mla-main.php:461 includes/class-mla-main.php:2375
2570
  #: includes/class-mla-settings-custom-fields-tab.php:63
2571
- #: includes/class-mla-settings-iptc-exif-tab.php:63
2572
  msgid "Waiting"
2573
  msgstr ""
2574
 
2575
- #: includes/class-mla-main.php:462 includes/class-mla-main.php:2377
2576
  #: includes/class-mla-settings-custom-fields-tab.php:65
2577
- #: includes/class-mla-settings-iptc-exif-tab.php:65
2578
  msgid "Complete"
2579
  msgstr ""
2580
 
2581
- #: includes/class-mla-main.php:463
2582
  #: includes/class-mla-settings-custom-fields-tab.php:66
2583
- #: includes/class-mla-settings-iptc-exif-tab.php:66
2584
  msgid "Unchanged"
2585
  msgstr ""
2586
 
2587
- #: includes/class-mla-main.php:464
2588
  #: includes/class-mla-settings-custom-fields-tab.php:67
2589
- #: includes/class-mla-settings-iptc-exif-tab.php:67
2590
  msgid "Succeeded"
2591
  msgstr ""
2592
 
2593
- #: includes/class-mla-main.php:465
2594
  #: includes/class-mla-settings-custom-fields-tab.php:68
2595
- #: includes/class-mla-settings-iptc-exif-tab.php:68
2596
  msgid "Failed"
2597
  msgstr ""
2598
 
2599
- #: includes/class-mla-main.php:466
2600
  msgid "CANCELED"
2601
  msgstr ""
2602
 
2603
- #: includes/class-mla-main.php:604
2604
  #, php-format
2605
  msgid "Item permanently deleted."
2606
  msgid_plural "%d items permanently deleted."
2607
  msgstr[0] ""
2608
  msgstr[1] ""
2609
 
2610
- #: includes/class-mla-main.php:609 includes/class-mla-main.php:2562
2611
  #, php-format
2612
  msgid "Item %1$d moved to Trash."
2613
  msgstr ""
2614
 
2615
- #: includes/class-mla-main.php:830
2616
  msgid "download path out of bounds."
2617
  msgstr ""
2618
 
2619
- #: includes/class-mla-main.php:832
2620
  msgid "download path invalid."
2621
  msgstr ""
2622
 
2623
- #: includes/class-mla-main.php:835
2624
  msgid "download argument(s) not set."
2625
  msgstr ""
2626
 
2627
- #: includes/class-mla-main.php:884
2628
  msgid "no ZipArchive support."
2629
  msgstr ""
2630
 
2631
- #: includes/class-mla-main.php:916
2632
  #, php-format
2633
  msgid "The ZIP archive ( %1$s ) could not be created."
2634
  msgstr ""
2635
 
2636
- #: includes/class-mla-main.php:926
2637
  #, php-format
2638
  msgid "The file ( %1$s ) could not be added to the ZIP archive."
2639
  msgstr ""
2640
 
2641
- #: includes/class-mla-main.php:933
2642
  #, php-format
2643
  msgid "The ZIP archive ( %1$s ) could not be closed."
2644
  msgstr ""
2645
 
2646
- #: includes/class-mla-main.php:1318
2647
  msgid "You are not allowed to edit Attachment: "
2648
  msgstr ""
2649
 
2650
- #: includes/class-mla-main.php:1374
2651
  #, php-format
2652
  msgid "%1$s: Unknown bulk action %2$s"
2653
  msgstr ""
2654
 
2655
- #: includes/class-mla-main.php:1396
2656
  msgid "no changes detected"
2657
  msgstr ""
2658
 
2659
- #: includes/class-mla-main.php:1443
2660
  #: includes/class-mla-settings-custom-fields-tab.php:607
2661
  #: includes/class-mla-settings-documentation-tab.php:275
2662
- #: includes/class-mla-settings-iptc-exif-tab.php:686
2663
  #: includes/class-mla-settings-shortcodes-tab.php:564
2664
  #: includes/class-mla-settings-upload-tab.php:407
2665
  #: includes/class-mla-settings-view-tab.php:254
@@ -2667,11 +2719,11 @@ msgstr ""
2667
  msgid "Bulk Action %1$s - no items selected."
2668
  msgstr ""
2669
 
2670
- #: includes/class-mla-main.php:1537
2671
  msgid "You do not have permission to manage attachments."
2672
  msgstr ""
2673
 
2674
- #: includes/class-mla-main.php:1595
2675
  #, php-format
2676
  msgctxt "deleted items"
2677
  msgid "%s item deleted."
@@ -2679,18 +2731,18 @@ msgid_plural "%s items deleted."
2679
  msgstr[0] ""
2680
  msgstr[1] ""
2681
 
2682
- #: includes/class-mla-main.php:1597
2683
  msgid "No items deleted."
2684
  msgstr ""
2685
 
2686
- #: includes/class-mla-main.php:1649
2687
  msgid "Empty Terms Search; ignored"
2688
  msgstr ""
2689
 
2690
- #: includes/class-mla-main.php:1661
2691
  #: includes/class-mla-settings-custom-fields-tab.php:634
2692
  #: includes/class-mla-settings-documentation-tab.php:307
2693
- #: includes/class-mla-settings-iptc-exif-tab.php:715
2694
  #: includes/class-mla-settings-shortcodes-tab.php:593
2695
  #: includes/class-mla-settings-upload-tab.php:446
2696
  #: includes/class-mla-settings-view-tab.php:291
@@ -2698,26 +2750,26 @@ msgstr ""
2698
  msgid "Unknown mla_admin_action - \"%1$s\""
2699
  msgstr ""
2700
 
2701
- #: includes/class-mla-main.php:1706
2702
  msgid "term search results for"
2703
  msgstr ""
2704
 
2705
- #: includes/class-mla-main.php:1709
2706
  msgid "post/parent results for"
2707
  msgstr ""
2708
 
2709
- #: includes/class-mla-main.php:1711
2710
  msgid "search results for"
2711
  msgstr ""
2712
 
2713
- #: includes/class-mla-main.php:1828 includes/class-mla-main.php:2051
2714
- #: includes/class-mla-main.php:2360
2715
  #: includes/class-mla-settings-custom-fields-tab.php:511
2716
  #: includes/class-mla-settings-custom-fields-tab.php:813
2717
  #: includes/class-mla-settings-documentation-tab.php:679
2718
  #: includes/class-mla-settings-documentation-tab.php:886
2719
- #: includes/class-mla-settings-iptc-exif-tab.php:519
2720
- #: includes/class-mla-settings-iptc-exif-tab.php:896
2721
  #: includes/class-mla-settings-shortcodes-tab.php:479
2722
  #: includes/class-mla-settings-upload-tab.php:176
2723
  #: includes/class-mla-settings-upload-tab.php:546
@@ -2726,66 +2778,66 @@ msgstr ""
2726
  msgid "Update"
2727
  msgstr ""
2728
 
2729
- #: includes/class-mla-main.php:1986
2730
  msgid "All Post Types"
2731
  msgstr ""
2732
 
2733
- #: includes/class-mla-main.php:2032
2734
  msgid "For"
2735
  msgstr ""
2736
 
2737
- #: includes/class-mla-main.php:2042
2738
- #: includes/class-mla-shortcode-support.php:1182
2739
  msgid "Unattached"
2740
  msgstr ""
2741
 
2742
- #: includes/class-mla-main.php:2361 includes/class-mla-options.php:1256
2743
  #: includes/class-mla-settings-custom-fields-tab.php:475
2744
  #: includes/class-mla-settings-custom-fields-tab.php:775
2745
  #: includes/class-mla-settings-custom-fields-tab.php:1466
2746
- #: includes/class-mla-settings-iptc-exif-tab.php:840
2747
  #: includes/class-mla-settings-upload-tab.php:547
2748
  #: includes/class-mla-settings-view-tab.php:395
2749
  msgid "Bulk Edit"
2750
  msgstr ""
2751
 
2752
- #: includes/class-mla-main.php:2376
2753
  msgid "In-process"
2754
  msgstr ""
2755
 
2756
- #: includes/class-mla-main.php:2475
2757
  msgid "You are not allowed to delete this item."
2758
  msgstr ""
2759
 
2760
- #: includes/class-mla-main.php:2483
2761
  #, php-format
2762
  msgid "%1$s: Item %2$d could NOT be deleted."
2763
  msgstr ""
2764
 
2765
- #: includes/class-mla-main.php:2490
2766
  #, php-format
2767
  msgid "Item %1$d permanently deleted."
2768
  msgstr ""
2769
 
2770
- #: includes/class-mla-main.php:2507
2771
  msgid "You are not allowed to move this item out of the Trash."
2772
  msgstr ""
2773
 
2774
- #: includes/class-mla-main.php:2515
2775
  #, php-format
2776
  msgid "%1$s: Item %2$d could NOT be restored from Trash."
2777
  msgstr ""
2778
 
2779
- #: includes/class-mla-main.php:2530
2780
  #, php-format
2781
  msgid "Item %1$d restored from Trash."
2782
  msgstr ""
2783
 
2784
- #: includes/class-mla-main.php:2547
2785
  msgid "You are not allowed to move this item to the Trash."
2786
  msgstr ""
2787
 
2788
- #: includes/class-mla-main.php:2555
2789
  #, php-format
2790
  msgid "%1$s: Item %2$d could NOT be moved to Trash."
2791
  msgstr ""
@@ -2869,284 +2921,284 @@ msgstr ""
2869
  msgid "Whole Word"
2870
  msgstr ""
2871
 
2872
- #: includes/class-mla-mime-types.php:445
2873
  msgctxt "post_mime_types"
2874
  msgid "Manage"
2875
  msgstr ""
2876
 
2877
- #: includes/class-mla-mime-types.php:602 includes/class-mla-mime-types.php:680
2878
  msgctxt "list_table_column"
2879
  msgid "Extension"
2880
  msgstr ""
2881
 
2882
- #: includes/class-mla-mime-types.php:604
2883
  msgctxt "list_table_column"
2884
  msgid "Icon Type"
2885
  msgstr ""
2886
 
2887
- #: includes/class-mla-mime-types.php:605
2888
  #: includes/class-mla-settings-custom-fields-tab.php:1210
2889
  msgctxt "list_table_column"
2890
  msgid "Source"
2891
  msgstr ""
2892
 
2893
- #: includes/class-mla-mime-types.php:606
2894
  #: includes/class-mla-settings-custom-fields-tab.php:1213
2895
- #: includes/class-mla-settings-iptc-exif-tab.php:1290
2896
  msgctxt "list_table_column"
2897
  msgid "Status"
2898
  msgstr ""
2899
 
2900
- #: includes/class-mla-mime-types.php:607 includes/class-mla-mime-types.php:682
2901
  msgctxt "list_table_column"
2902
  msgid "WordPress Type"
2903
  msgstr ""
2904
 
2905
- #: includes/class-mla-mime-types.php:608 includes/class-mla-mime-types.php:683
2906
  msgctxt "list_table_column"
2907
  msgid "MLA Type"
2908
  msgstr ""
2909
 
2910
- #: includes/class-mla-mime-types.php:609
2911
  msgctxt "list_table_column"
2912
  msgid "Std. Source"
2913
  msgstr ""
2914
 
2915
- #: includes/class-mla-mime-types.php:610
2916
  msgctxt "list_table_column"
2917
  msgid "Std. Icon Type"
2918
  msgstr ""
2919
 
2920
- #: includes/class-mla-mime-types.php:756
2921
  msgctxt "list_table_column"
2922
  msgid "Slug"
2923
  msgstr ""
2924
 
2925
- #: includes/class-mla-mime-types.php:757
2926
  msgctxt "list_table_column"
2927
  msgid "Specification"
2928
  msgstr ""
2929
 
2930
- #: includes/class-mla-mime-types.php:758
2931
  msgctxt "list_table_column"
2932
  msgid "Post Mime"
2933
  msgstr ""
2934
 
2935
- #: includes/class-mla-mime-types.php:759
2936
  msgctxt "list_table_column"
2937
  msgid "Table View"
2938
  msgstr ""
2939
 
2940
- #: includes/class-mla-mime-types.php:760
2941
  msgctxt "list_table_column"
2942
  msgid "Singular Name"
2943
  msgstr ""
2944
 
2945
- #: includes/class-mla-mime-types.php:761
2946
  msgctxt "list_table_column"
2947
  msgid "Plural Name"
2948
  msgstr ""
2949
 
2950
- #: includes/class-mla-mime-types.php:762
2951
  msgctxt "list_table_column"
2952
  msgid "Order"
2953
  msgstr ""
2954
 
2955
- #: includes/class-mla-mime-types.php:1078
2956
  msgctxt "post_mime_types_description"
2957
  msgid "Copied from previous filter/plugin"
2958
  msgstr ""
2959
 
2960
- #: includes/class-mla-mime-types.php:1179
2961
- #: includes/class-mla-mime-types.php:1296
2962
  msgid "Ignoring specification for Post MIME Type; using slug"
2963
  msgstr ""
2964
 
2965
- #: includes/class-mla-mime-types.php:1185
2966
- #: includes/class-mla-mime-types.php:2267
2967
  #, php-format
2968
  msgid "<br>Changing %1$s \"%2$s\" to valid value \"%3$s\""
2969
  msgstr ""
2970
 
2971
- #: includes/class-mla-mime-types.php:1185
2972
- #: includes/class-mla-mime-types.php:1273
2973
- #: includes/class-mla-mime-types.php:1284
2974
  #: includes/class-mla-settings-view-tab.php:119
2975
  #: includes/class-mla-settings-view-tab.php:375
2976
  msgid "Slug"
2977
  msgstr ""
2978
 
2979
- #: includes/class-mla-mime-types.php:1193
2980
- #: includes/class-mla-mime-types.php:1281
2981
  #, php-format
2982
  msgid "%1$s: Could not add Slug \"%2$s\"; value already exists"
2983
  msgstr ""
2984
 
2985
- #: includes/class-mla-mime-types.php:1228
2986
  #, php-format
2987
  msgid "Edit view \"%1$s\"; added"
2988
  msgstr ""
2989
 
2990
- #: includes/class-mla-mime-types.php:1273
2991
- #: includes/class-mla-mime-types.php:2393
2992
  #, php-format
2993
  msgid "<br>Changing new %1$s \"%2$s\" to valid value \"%3$s\""
2994
  msgstr ""
2995
 
2996
- #: includes/class-mla-mime-types.php:1326
2997
  #, php-format
2998
  msgid "Edit view \"%1$s\"; no changes detected"
2999
  msgstr ""
3000
 
3001
- #: includes/class-mla-mime-types.php:1340
3002
  #, php-format
3003
  msgid "Edit view \"%1$s\"; updated"
3004
  msgstr ""
3005
 
3006
- #: includes/class-mla-mime-types.php:1413
3007
  #, php-format
3008
  msgid "View \"%1$s\" reverted to standard"
3009
  msgstr ""
3010
 
3011
- #: includes/class-mla-mime-types.php:1419
3012
  #, php-format
3013
  msgid "View \"%1$s\" deleted"
3014
  msgstr ""
3015
 
3016
- #: includes/class-mla-mime-types.php:1427
3017
  #, php-format
3018
  msgid "%1$s: Did not find view \"%2$s\""
3019
  msgstr ""
3020
 
3021
- #: includes/class-mla-mime-types.php:1686
3022
  #: includes/class-mla-settings-documentation-tab.php:1579
3023
  msgctxt "table_view_singular"
3024
  msgid "Active"
3025
  msgstr ""
3026
 
3027
- #: includes/class-mla-mime-types.php:1687
3028
  #: includes/class-mla-settings-documentation-tab.php:1580
3029
  msgctxt "table_view_plural"
3030
  msgid "Active"
3031
  msgstr ""
3032
 
3033
- #: includes/class-mla-mime-types.php:1690
3034
  #: includes/class-mla-settings-documentation-tab.php:1583
3035
  msgctxt "table_view_singular"
3036
  msgid "Inactive"
3037
  msgstr ""
3038
 
3039
- #: includes/class-mla-mime-types.php:1691
3040
  #: includes/class-mla-settings-documentation-tab.php:1584
3041
  msgctxt "table_view_plural"
3042
  msgid "Inactive"
3043
  msgstr ""
3044
 
3045
- #: includes/class-mla-mime-types.php:1694
3046
  msgctxt "table_view_singular"
3047
  msgid "WordPress"
3048
  msgstr ""
3049
 
3050
- #: includes/class-mla-mime-types.php:1695
3051
  msgctxt "table_view_plural"
3052
  msgid "WordPress"
3053
  msgstr ""
3054
 
3055
- #: includes/class-mla-mime-types.php:1698
3056
  msgctxt "table_view_singular"
3057
  msgid "MLA"
3058
  msgstr ""
3059
 
3060
- #: includes/class-mla-mime-types.php:1699
3061
  msgctxt "table_view_plural"
3062
  msgid "MLA"
3063
  msgstr ""
3064
 
3065
- #: includes/class-mla-mime-types.php:1702
3066
- #: includes/class-mla-settings-iptc-exif-tab.php:2740
3067
  msgctxt "table_view_singular"
3068
  msgid "Custom"
3069
  msgstr ""
3070
 
3071
- #: includes/class-mla-mime-types.php:1703
3072
- #: includes/class-mla-settings-iptc-exif-tab.php:2741
3073
  msgctxt "table_view_plural"
3074
  msgid "Custom"
3075
  msgstr ""
3076
 
3077
- #: includes/class-mla-mime-types.php:1958
3078
  msgid "icon"
3079
  msgstr ""
3080
 
3081
- #: includes/class-mla-mime-types.php:2251
3082
- #: includes/class-mla-mime-types.php:2350
3083
  msgid "Cannot load Upload MIME Types"
3084
  msgstr ""
3085
 
3086
- #: includes/class-mla-mime-types.php:2262
3087
  msgid "Extension is required"
3088
  msgstr ""
3089
 
3090
- #: includes/class-mla-mime-types.php:2267
3091
- #: includes/class-mla-mime-types.php:2393
3092
- #: includes/class-mla-mime-types.php:2404
3093
  #: includes/class-mla-settings-upload-tab.php:165
3094
  #: includes/class-mla-settings-upload-tab.php:530
3095
  msgid "Extension"
3096
  msgstr ""
3097
 
3098
- #: includes/class-mla-mime-types.php:2275
3099
  #, php-format
3100
  msgid "%1$s: Could not add extension \"%2$s\"; value already exists"
3101
  msgstr ""
3102
 
3103
- #: includes/class-mla-mime-types.php:2283
3104
  msgid "MIME type is required"
3105
  msgstr ""
3106
 
3107
- #: includes/class-mla-mime-types.php:2288
3108
- #: includes/class-mla-mime-types.php:2435
3109
  #, php-format
3110
  msgid "%1$s: Bad MIME type; try \"%2$s\""
3111
  msgstr ""
3112
 
3113
- #: includes/class-mla-mime-types.php:2325
3114
  #, php-format
3115
  msgid "Upload MIME Type \"%1$s\"; added"
3116
  msgstr ""
3117
 
3118
- #: includes/class-mla-mime-types.php:2331
3119
- #: includes/class-mla-mime-types.php:2520
3120
- #: includes/class-mla-mime-types.php:2599
3121
  msgid "Cannot update Upload MIME Types"
3122
  msgstr ""
3123
 
3124
- #: includes/class-mla-mime-types.php:2401
3125
  #, php-format
3126
  msgid "%1$s: Could not add new extension \"%2$s\"; value already exists"
3127
  msgstr ""
3128
 
3129
- #: includes/class-mla-mime-types.php:2500
3130
  #, php-format
3131
  msgid "Edit type \"%1$s\"; no changes detected"
3132
  msgstr ""
3133
 
3134
- #: includes/class-mla-mime-types.php:2514
3135
  #, php-format
3136
  msgid "Edit type \"%1$s\"; updated"
3137
  msgstr ""
3138
 
3139
- #: includes/class-mla-mime-types.php:2587
3140
  #, php-format
3141
  msgid "Upload MIME Type \"%1$s\"; reverted to standard"
3142
  msgstr ""
3143
 
3144
- #: includes/class-mla-mime-types.php:2593
3145
  #, php-format
3146
  msgid "Upload MIME Type \"%1$s\"; deleted"
3147
  msgstr ""
3148
 
3149
- #: includes/class-mla-mime-types.php:2608
3150
  #, php-format
3151
  msgid "%1$s: Did not find Upload type \"%2$s\""
3152
  msgstr ""
@@ -3365,8 +3417,8 @@ msgstr ""
3365
  #: includes/class-mla-options.php:469
3366
  #: includes/class-mla-settings-custom-fields-tab.php:455
3367
  #: includes/class-mla-settings-custom-fields-tab.php:759
3368
- #: includes/class-mla-settings-iptc-exif-tab.php:455
3369
- #: includes/class-mla-settings-iptc-exif-tab.php:841
3370
  #: includes/class-mla-settings-shortcodes-tab.php:401
3371
  #: includes/class-mla-settings-shortcodes-tab.php:472
3372
  #: includes/mla-main-search-box-template.php:49
@@ -3387,8 +3439,8 @@ msgid "Terms"
3387
  msgstr ""
3388
 
3389
  #: includes/class-mla-options.php:999 includes/class-mla-options.php:1045
3390
- #: includes/class-mla-options.php:1889 includes/class-mla-options.php:1920
3391
- #: includes/class-mla-options.php:1925
3392
  #: includes/class-mla-settings-upload-tab.php:128
3393
  msgid "None (select a value)"
3394
  msgstr ""
@@ -3401,35 +3453,35 @@ msgstr ""
3401
  msgid "Template (see below)"
3402
  msgstr ""
3403
 
3404
- #: includes/class-mla-options.php:1131 includes/class-mla-options.php:2207
3405
  #, php-format
3406
  msgid "%1$s: New field %2$s already exists."
3407
  msgstr ""
3408
 
3409
- #: includes/class-mla-options.php:1136 includes/class-mla-options.php:2212
3410
  #, php-format
3411
  msgid "Adding new field %1$s."
3412
  msgstr ""
3413
 
3414
- #: includes/class-mla-options.php:1144 includes/class-mla-options.php:2220
3415
  #, php-format
3416
  msgid "Adding new rule for %1$s."
3417
  msgstr ""
3418
 
3419
- #: includes/class-mla-options.php:1170 includes/class-mla-options.php:2077
3420
- #: includes/class-mla-options.php:2246
3421
  #, php-format
3422
  msgid "Deleting rule for %1$s."
3423
  msgstr ""
3424
 
3425
  #: includes/class-mla-options.php:1193 includes/class-mla-options.php:1214
3426
  #: includes/class-mla-options.php:1264 includes/class-mla-options.php:1271
3427
- #: includes/class-mla-options.php:1993 includes/class-mla-options.php:2000
3428
- #: includes/class-mla-options.php:2007 includes/class-mla-options.php:2102
3429
- #: includes/class-mla-options.php:2109 includes/class-mla-options.php:2144
3430
- #: includes/class-mla-options.php:2151 includes/class-mla-options.php:2256
3431
- #: includes/class-mla-options.php:2263 includes/class-mla-options.php:2298
3432
- #: includes/class-mla-options.php:2305
3433
  #, php-format
3434
  msgid "%1$s changing %2$s from %3$s to %4$s."
3435
  msgstr ""
@@ -3440,52 +3492,52 @@ msgstr ""
3440
  msgid "Data Source"
3441
  msgstr ""
3442
 
3443
- #: includes/class-mla-options.php:1199 includes/class-mla-options.php:2027
3444
- #: includes/class-mla-options.php:2129 includes/class-mla-options.php:2283
3445
  msgid "Replace to Keep"
3446
  msgstr ""
3447
 
3448
- #: includes/class-mla-options.php:1202 includes/class-mla-options.php:2030
3449
- #: includes/class-mla-options.php:2132 includes/class-mla-options.php:2286
3450
  msgid "Keep to Replace"
3451
  msgstr ""
3452
 
3453
  #: includes/class-mla-options.php:1207 includes/class-mla-options.php:1228
3454
  #: includes/class-mla-options.php:1242 includes/class-mla-options.php:1256
3455
- #: includes/class-mla-options.php:1285 includes/class-mla-options.php:2021
3456
- #: includes/class-mla-options.php:2035 includes/class-mla-options.php:2123
3457
- #: includes/class-mla-options.php:2137 includes/class-mla-options.php:2277
3458
- #: includes/class-mla-options.php:2291 includes/class-mla-options.php:2319
3459
  #, php-format
3460
  msgid "%1$s changing %2$s value from %3$s."
3461
  msgstr ""
3462
 
3463
- #: includes/class-mla-options.php:1207 includes/class-mla-options.php:2035
3464
- #: includes/class-mla-options.php:2137 includes/class-mla-options.php:2291
3465
  #: includes/class-mla-settings-custom-fields-tab.php:477
3466
  #: includes/class-mla-settings-custom-fields-tab.php:777
3467
- #: includes/class-mla-settings-iptc-exif-tab.php:474
3468
- #: includes/class-mla-settings-iptc-exif-tab.php:856
3469
  msgid "Existing Text"
3470
  msgstr ""
3471
 
3472
- #: includes/class-mla-options.php:1214 includes/class-mla-options.php:2298
3473
  #: includes/class-mla-settings-custom-fields-tab.php:482
3474
  #: includes/class-mla-settings-custom-fields-tab.php:782
3475
- #: includes/class-mla-settings-iptc-exif-tab.php:489
3476
- #: includes/class-mla-settings-iptc-exif-tab.php:864
3477
  msgid "Format"
3478
  msgstr ""
3479
 
3480
  #: includes/class-mla-options.php:1220 includes/class-mla-options.php:1234
3481
  #: includes/class-mla-options.php:1248 includes/class-mla-options.php:1277
3482
- #: includes/class-mla-options.php:2311
3483
  msgid "unchecked to checked"
3484
  msgstr ""
3485
 
3486
  #: includes/class-mla-options.php:1223 includes/class-mla-options.php:1237
3487
  #: includes/class-mla-options.php:1251 includes/class-mla-options.php:1280
3488
- #: includes/class-mla-options.php:2314
3489
  msgid "checked to unchecked"
3490
  msgstr ""
3491
 
@@ -3500,58 +3552,58 @@ msgstr ""
3500
  msgid "Metavalue name"
3501
  msgstr ""
3502
 
3503
- #: includes/class-mla-options.php:1271 includes/class-mla-options.php:2305
3504
  #: includes/class-mla-settings-custom-fields-tab.php:489
3505
  #: includes/class-mla-settings-custom-fields-tab.php:789
3506
- #: includes/class-mla-settings-iptc-exif-tab.php:496
3507
- #: includes/class-mla-settings-iptc-exif-tab.php:871
3508
  msgid "Option"
3509
  msgstr ""
3510
 
3511
- #: includes/class-mla-options.php:1285 includes/class-mla-options.php:2319
3512
- #: includes/class-mla-settings-iptc-exif-tab.php:508
3513
  msgid "Delete NULL values"
3514
  msgstr ""
3515
 
3516
- #: includes/class-mla-options.php:1981
3517
  #, php-format
3518
  msgid "%1$s: No old values for %2$s."
3519
  msgstr ""
3520
 
3521
- #: includes/class-mla-options.php:1993
3522
  msgid "Field Title"
3523
  msgstr ""
3524
 
3525
- #: includes/class-mla-options.php:2000 includes/class-mla-options.php:2102
3526
- #: includes/class-mla-options.php:2256
3527
- #: includes/class-mla-settings-iptc-exif-tab.php:463
3528
- #: includes/class-mla-settings-iptc-exif-tab.php:845
3529
  msgid "IPTC Value"
3530
  msgstr ""
3531
 
3532
- #: includes/class-mla-options.php:2007 includes/class-mla-options.php:2109
3533
- #: includes/class-mla-options.php:2263
3534
  msgid "EXIF Value"
3535
  msgstr ""
3536
 
3537
- #: includes/class-mla-options.php:2013 includes/class-mla-options.php:2115
3538
- #: includes/class-mla-options.php:2269
3539
  msgid "EXIF to IPTC"
3540
  msgstr ""
3541
 
3542
- #: includes/class-mla-options.php:2016 includes/class-mla-options.php:2118
3543
- #: includes/class-mla-options.php:2272
3544
  msgid "IPTC to EXIF"
3545
  msgstr ""
3546
 
3547
- #: includes/class-mla-options.php:2021 includes/class-mla-options.php:2123
3548
- #: includes/class-mla-options.php:2277
3549
- #: includes/class-mla-settings-iptc-exif-tab.php:469
3550
- #: includes/class-mla-settings-iptc-exif-tab.php:851
3551
  msgid "Priority"
3552
  msgstr ""
3553
 
3554
- #: includes/class-mla-options.php:2144
3555
  msgid "Delimiter(s)"
3556
  msgstr ""
3557
 
@@ -3745,15 +3797,15 @@ msgstr ""
3745
  #: includes/class-mla-polylang-support.php:2586
3746
  #: includes/class-mla-settings-custom-fields-tab.php:657
3747
  #: includes/class-mla-settings-custom-fields-tab.php:756
3748
- #: includes/class-mla-settings-iptc-exif-tab.php:738
3749
- #: includes/class-mla-settings-iptc-exif-tab.php:836
3750
  #: includes/class-mla-settings-shortcodes-tab.php:713
3751
  #: includes/class-mla-settings-upload-tab.php:476
3752
  #: includes/class-mla-settings-upload-tab.php:526
3753
  #: includes/class-mla-settings-view-tab.php:320
3754
  #: includes/class-mla-settings-view-tab.php:372
3755
- #: includes/class-mla-settings.php:1063 includes/class-mla-settings.php:1432
3756
- #: includes/class-mla-settings.php:1434
3757
  #: includes/class-mla-wpml-support.php:1727
3758
  msgid "Save Changes"
3759
  msgstr ""
@@ -3764,7 +3816,7 @@ msgid "Delete Language options and restore default settings"
3764
  msgstr ""
3765
 
3766
  #: includes/class-mla-polylang-support.php:2590
3767
- #: includes/class-mla-settings.php:801 includes/class-mla-settings.php:1068
3768
  #: includes/class-mla-wpml-support.php:1731
3769
  msgid "Go to Top"
3770
  msgstr ""
@@ -3775,7 +3827,7 @@ msgid "Language settings saved."
3775
  msgstr ""
3776
 
3777
  #: includes/class-mla-polylang-support.php:2658
3778
- #: includes/class-mla-settings.php:1644
3779
  #: includes/class-mla-wpml-support.php:1799
3780
  #, php-format
3781
  msgctxt "message_list"
@@ -3789,8 +3841,8 @@ msgstr ""
3789
 
3790
  #: includes/class-mla-settings-custom-fields-tab.php:56
3791
  #: includes/class-mla-settings-custom-fields-tab.php:91
3792
- #: includes/class-mla-settings-iptc-exif-tab.php:56
3793
- #: includes/class-mla-settings-iptc-exif-tab.php:91
3794
  #: includes/class-mla-settings-upload-tab.php:45
3795
  #: includes/class-mla-settings-view-tab.php:45
3796
  msgid "Error while making the changes."
@@ -3798,30 +3850,30 @@ msgstr ""
3798
 
3799
  #: includes/class-mla-settings-custom-fields-tab.php:58
3800
  #: includes/class-mla-settings-custom-fields-tab.php:93
3801
- #: includes/class-mla-settings-iptc-exif-tab.php:58
3802
- #: includes/class-mla-settings-iptc-exif-tab.php:93
3803
  #: includes/class-mla-settings-upload-tab.php:47
3804
  #: includes/class-mla-settings-view-tab.php:47
3805
  msgid "no slug"
3806
  msgstr ""
3807
 
3808
  #: includes/class-mla-settings-custom-fields-tab.php:64
3809
- #: includes/class-mla-settings-iptc-exif-tab.php:64
3810
  msgid "Running"
3811
  msgstr ""
3812
 
3813
  #: includes/class-mla-settings-custom-fields-tab.php:69
3814
- #: includes/class-mla-settings-iptc-exif-tab.php:69
3815
  msgid "Skipped"
3816
  msgstr ""
3817
 
3818
  #: includes/class-mla-settings-custom-fields-tab.php:70
3819
- #: includes/class-mla-settings-iptc-exif-tab.php:70
3820
  msgid "Reprocessed"
3821
  msgstr ""
3822
 
3823
  #: includes/class-mla-settings-custom-fields-tab.php:71
3824
- #: includes/class-mla-settings-iptc-exif-tab.php:71
3825
  msgid "PAUSED"
3826
  msgstr ""
3827
 
@@ -3834,112 +3886,112 @@ msgid "Custom field no mapping changes detected."
3834
  msgstr ""
3835
 
3836
  #: includes/class-mla-settings-custom-fields-tab.php:173
3837
- #: includes/class-mla-settings-iptc-exif-tab.php:175
3838
  msgid "No custom field mapping rules to process."
3839
  msgstr ""
3840
 
3841
  #: includes/class-mla-settings-custom-fields-tab.php:206
3842
- #: includes/class-mla-settings-iptc-exif-tab.php:209
3843
  #, php-format
3844
  msgid "%1$s mapping completed; %2$d attachment(s) examined, %3$d updated."
3845
  msgstr ""
3846
 
3847
  #: includes/class-mla-settings-custom-fields-tab.php:206
3848
  #: includes/class-mla-settings-custom-fields-tab.php:209
3849
- #: includes/class-mla-settings-iptc-exif-tab.php:209
3850
- #: includes/class-mla-settings-iptc-exif-tab.php:212
3851
  msgid "Custom field"
3852
  msgstr ""
3853
 
3854
  #: includes/class-mla-settings-custom-fields-tab.php:209
3855
- #: includes/class-mla-settings-iptc-exif-tab.php:212
3856
  #, php-format
3857
  msgid ""
3858
  "%1$s mapping completed; %2$d attachment(s) examined, no changes detected."
3859
  msgstr ""
3860
 
3861
  #: includes/class-mla-settings-custom-fields-tab.php:238
3862
- #: includes/class-mla-settings-iptc-exif-tab.php:241
3863
  msgid ": No custom field name selected/entered"
3864
  msgstr ""
3865
 
3866
  #: includes/class-mla-settings-custom-fields-tab.php:242
3867
  #: includes/class-mla-settings-custom-fields-tab.php:304
3868
- #: includes/class-mla-settings-iptc-exif-tab.php:245
3869
- #: includes/class-mla-settings-iptc-exif-tab.php:308
3870
  msgid ": Rule already exists for the new name"
3871
  msgstr ""
3872
 
3873
  #: includes/class-mla-settings-custom-fields-tab.php:273
3874
- #: includes/class-mla-settings-iptc-exif-tab.php:277
3875
  msgid "Rule added"
3876
  msgstr ""
3877
 
3878
  #: includes/class-mla-settings-custom-fields-tab.php:276
3879
- #: includes/class-mla-settings-iptc-exif-tab.php:280
3880
  msgid ": Rule addition failed"
3881
  msgstr ""
3882
 
3883
  #: includes/class-mla-settings-custom-fields-tab.php:308
3884
- #: includes/class-mla-settings-iptc-exif-tab.php:312
3885
  msgid ": Invalid rule name must be changed"
3886
  msgstr ""
3887
 
3888
  #: includes/class-mla-settings-custom-fields-tab.php:341
3889
  #: includes/class-mla-settings-custom-fields-tab.php:425
3890
  #: includes/class-mla-settings-custom-fields-tab.php:956
3891
- #: includes/class-mla-settings-iptc-exif-tab.php:346
3892
- #: includes/class-mla-settings-iptc-exif-tab.php:422
3893
- #: includes/class-mla-settings-iptc-exif-tab.php:1028
3894
  msgid ": Rule update failed"
3895
  msgstr ""
3896
 
3897
  #: includes/class-mla-settings-custom-fields-tab.php:346
3898
  #: includes/class-mla-settings-custom-fields-tab.php:428
3899
- #: includes/class-mla-settings-iptc-exif-tab.php:351
3900
- #: includes/class-mla-settings-iptc-exif-tab.php:425
3901
  msgid "Rule updated"
3902
  msgstr ""
3903
 
3904
  #: includes/class-mla-settings-custom-fields-tab.php:370
3905
- #: includes/class-mla-settings-iptc-exif-tab.php:375
3906
  #, php-format
3907
  msgid "Custom Field Rule \"%1$s\" deleted."
3908
  msgstr ""
3909
 
3910
  #: includes/class-mla-settings-custom-fields-tab.php:449
3911
- #: includes/class-mla-settings-iptc-exif-tab.php:446
3912
  msgid "Edit Rule"
3913
  msgstr ""
3914
 
3915
  #: includes/class-mla-settings-custom-fields-tab.php:458
3916
- #: includes/class-mla-settings-iptc-exif-tab.php:458
3917
  msgid ""
3918
  "This is the name of the custom field to which the rule applies.<br>Only one "
3919
  "rule is allowed for each custom field."
3920
  msgstr ""
3921
 
3922
  #: includes/class-mla-settings-custom-fields-tab.php:459
3923
- #: includes/class-mla-settings-iptc-exif-tab.php:459
3924
  msgid "Change Name"
3925
  msgstr ""
3926
 
3927
  #: includes/class-mla-settings-custom-fields-tab.php:460
3928
- #: includes/class-mla-settings-iptc-exif-tab.php:460
3929
  msgid "Cancel Name Change"
3930
  msgstr ""
3931
 
3932
  #: includes/class-mla-settings-custom-fields-tab.php:461
3933
  #: includes/class-mla-settings-custom-fields-tab.php:761
3934
- #: includes/class-mla-settings-iptc-exif-tab.php:461
3935
- #: includes/class-mla-settings-iptc-exif-tab.php:843
3936
  msgid "Enter new field"
3937
  msgstr ""
3938
 
3939
  #: includes/class-mla-settings-custom-fields-tab.php:462
3940
  #: includes/class-mla-settings-custom-fields-tab.php:762
3941
- #: includes/class-mla-settings-iptc-exif-tab.php:462
3942
- #: includes/class-mla-settings-iptc-exif-tab.php:844
3943
  msgid "Cancel new field"
3944
  msgstr ""
3945
 
@@ -3971,80 +4023,80 @@ msgstr ""
3971
  #: includes/class-mla-settings-custom-fields-tab.php:479
3972
  #: includes/class-mla-settings-custom-fields-tab.php:779
3973
  #: includes/class-mla-settings-custom-fields-tab.php:1504
3974
- #: includes/class-mla-settings-iptc-exif-tab.php:476
3975
- #: includes/class-mla-settings-iptc-exif-tab.php:858
3976
- #: includes/class-mla-settings-iptc-exif-tab.php:1565
3977
- #: includes/class-mla-settings-iptc-exif-tab.php:2420
3978
  #: includes/class-mla-thumbnail-generation.php:647
3979
  msgid "Keep"
3980
  msgstr ""
3981
 
3982
  #: includes/class-mla-settings-custom-fields-tab.php:484
3983
  #: includes/class-mla-settings-custom-fields-tab.php:784
3984
- #: includes/class-mla-settings-iptc-exif-tab.php:491
3985
- #: includes/class-mla-settings-iptc-exif-tab.php:866
3986
  msgid "Native"
3987
  msgstr ""
3988
 
3989
  #: includes/class-mla-settings-custom-fields-tab.php:486
3990
  #: includes/class-mla-settings-custom-fields-tab.php:786
3991
- #: includes/class-mla-settings-iptc-exif-tab.php:493
3992
- #: includes/class-mla-settings-iptc-exif-tab.php:868
3993
  msgid "Commas"
3994
  msgstr ""
3995
 
3996
  #: includes/class-mla-settings-custom-fields-tab.php:488
3997
  #: includes/class-mla-settings-custom-fields-tab.php:788
3998
- #: includes/class-mla-settings-iptc-exif-tab.php:495
3999
- #: includes/class-mla-settings-iptc-exif-tab.php:870
4000
  msgid "Raw"
4001
  msgstr ""
4002
 
4003
  #: includes/class-mla-settings-custom-fields-tab.php:491
4004
  #: includes/class-mla-settings-custom-fields-tab.php:791
4005
- #: includes/class-mla-settings-iptc-exif-tab.php:498
4006
- #: includes/class-mla-settings-iptc-exif-tab.php:873
4007
  msgid "Text"
4008
  msgstr ""
4009
 
4010
  #: includes/class-mla-settings-custom-fields-tab.php:493
4011
  #: includes/class-mla-settings-custom-fields-tab.php:793
4012
- #: includes/class-mla-settings-iptc-exif-tab.php:500
4013
- #: includes/class-mla-settings-iptc-exif-tab.php:875
4014
  msgid "Single"
4015
  msgstr ""
4016
 
4017
  #: includes/class-mla-settings-custom-fields-tab.php:495
4018
  #: includes/class-mla-settings-custom-fields-tab.php:795
4019
- #: includes/class-mla-settings-iptc-exif-tab.php:502
4020
- #: includes/class-mla-settings-iptc-exif-tab.php:877
4021
  msgid "Export"
4022
  msgstr ""
4023
 
4024
  #: includes/class-mla-settings-custom-fields-tab.php:497
4025
  #: includes/class-mla-settings-custom-fields-tab.php:797
4026
- #: includes/class-mla-settings-iptc-exif-tab.php:504
4027
- #: includes/class-mla-settings-iptc-exif-tab.php:879
4028
  msgid "Array"
4029
  msgstr ""
4030
 
4031
  #: includes/class-mla-settings-custom-fields-tab.php:499
4032
  #: includes/class-mla-settings-custom-fields-tab.php:799
4033
- #: includes/class-mla-settings-iptc-exif-tab.php:506
4034
- #: includes/class-mla-settings-iptc-exif-tab.php:881
4035
  msgid "Multi"
4036
  msgstr ""
4037
 
4038
  #: includes/class-mla-settings-custom-fields-tab.php:501
4039
  #: includes/class-mla-settings-custom-fields-tab.php:801
4040
- #: includes/class-mla-settings-iptc-exif-tab.php:883
4041
  msgid "Delete NULL Values"
4042
  msgstr ""
4043
 
4044
  #: includes/class-mla-settings-custom-fields-tab.php:502
4045
  #: includes/class-mla-settings-custom-fields-tab.php:802
4046
- #: includes/class-mla-settings-iptc-exif-tab.php:509
4047
- #: includes/class-mla-settings-iptc-exif-tab.php:884
4048
  msgid "Do not store empty custom field values"
4049
  msgstr ""
4050
 
@@ -4053,11 +4105,11 @@ msgstr ""
4053
  #: includes/class-mla-settings-custom-fields-tab.php:1488
4054
  #: includes/class-mla-settings-custom-fields-tab.php:1711
4055
  #: includes/class-mla-settings-documentation-tab.php:1249
4056
- #: includes/class-mla-settings-iptc-exif-tab.php:513
4057
- #: includes/class-mla-settings-iptc-exif-tab.php:887
4058
- #: includes/class-mla-settings-iptc-exif-tab.php:1581
4059
- #: includes/class-mla-settings-iptc-exif-tab.php:1817
4060
- #: includes/class-mla-settings-iptc-exif-tab.php:2423
4061
  #: includes/class-mla-settings-upload-tab.php:550
4062
  #: includes/class-mla-settings-upload-tab.php:1031
4063
  msgid "Active"
@@ -4068,11 +4120,11 @@ msgstr ""
4068
  #: includes/class-mla-settings-custom-fields-tab.php:1490
4069
  #: includes/class-mla-settings-custom-fields-tab.php:1714
4070
  #: includes/class-mla-settings-documentation-tab.php:1251
4071
- #: includes/class-mla-settings-iptc-exif-tab.php:515
4072
- #: includes/class-mla-settings-iptc-exif-tab.php:889
4073
- #: includes/class-mla-settings-iptc-exif-tab.php:1583
4074
- #: includes/class-mla-settings-iptc-exif-tab.php:1820
4075
- #: includes/class-mla-settings-iptc-exif-tab.php:2423
4076
  #: includes/class-mla-settings-upload-tab.php:172
4077
  #: includes/class-mla-settings-upload-tab.php:536
4078
  #: includes/class-mla-settings-upload-tab.php:1029
@@ -4080,7 +4132,7 @@ msgid "Inactive"
4080
  msgstr ""
4081
 
4082
  #: includes/class-mla-settings-custom-fields-tab.php:534
4083
- #: includes/class-mla-settings-iptc-exif-tab.php:613
4084
  #, php-format
4085
  msgid "Custom Field Rule \"%1$s\": %2$s"
4086
  msgstr ""
@@ -4092,8 +4144,8 @@ msgstr ""
4092
  #: includes/class-mla-settings-custom-fields-tab.php:583
4093
  #: includes/class-mla-settings-custom-fields-tab.php:611
4094
  #: includes/class-mla-settings-documentation-tab.php:265
4095
- #: includes/class-mla-settings-iptc-exif-tab.php:662
4096
- #: includes/class-mla-settings-iptc-exif-tab.php:690
4097
  #: includes/class-mla-settings-shortcodes-tab.php:552
4098
  #: includes/class-mla-settings-upload-tab.php:396
4099
  #: includes/class-mla-settings-view-tab.php:244
@@ -4110,43 +4162,43 @@ msgid "Custom Field Mapping Progress"
4110
  msgstr ""
4111
 
4112
  #: includes/class-mla-settings-custom-fields-tab.php:724
4113
- #: includes/class-mla-settings-iptc-exif-tab.php:805
4114
  msgid "DO NOT DO THE FOLLOWING (they will cause mapping to fail)"
4115
  msgstr ""
4116
 
4117
  #: includes/class-mla-settings-custom-fields-tab.php:725
4118
- #: includes/class-mla-settings-iptc-exif-tab.php:806
4119
  msgid "Close the window"
4120
  msgstr ""
4121
 
4122
  #: includes/class-mla-settings-custom-fields-tab.php:726
4123
- #: includes/class-mla-settings-iptc-exif-tab.php:807
4124
  msgid "Reload the page"
4125
  msgstr ""
4126
 
4127
  #: includes/class-mla-settings-custom-fields-tab.php:727
4128
- #: includes/class-mla-settings-iptc-exif-tab.php:808
4129
  msgid "Click the browser&rsquo;s Stop, Back or forward buttons"
4130
  msgstr ""
4131
 
4132
  #: includes/class-mla-settings-custom-fields-tab.php:728
4133
- #: includes/class-mla-settings-iptc-exif-tab.php:809
4134
  msgid "Progress"
4135
  msgstr ""
4136
 
4137
  #: includes/class-mla-settings-custom-fields-tab.php:729
4138
- #: includes/class-mla-settings-iptc-exif-tab.php:810
4139
  msgid "Pause"
4140
  msgstr ""
4141
 
4142
  #: includes/class-mla-settings-custom-fields-tab.php:731
4143
- #: includes/class-mla-settings-iptc-exif-tab.php:812
4144
  msgid "Resume"
4145
  msgstr ""
4146
 
4147
  #: includes/class-mla-settings-custom-fields-tab.php:732
4148
  #: includes/class-mla-settings-documentation-tab.php:141
4149
- #: includes/class-mla-settings-iptc-exif-tab.php:813
4150
  #: includes/class-mla-settings-shortcodes-tab.php:476
4151
  #: includes/class-mla-template-support.php:160
4152
  #: includes/class-mla-template-support.php:166
@@ -4171,7 +4223,7 @@ msgid ""
4171
  msgstr ""
4172
 
4173
  #: includes/class-mla-settings-custom-fields-tab.php:745
4174
- #: includes/class-mla-settings-iptc-exif-tab.php:826
4175
  msgid ""
4176
  "You can find more information about using the controls in this tab to define "
4177
  "mapping rules and apply them by clicking the \"Help\" control in the upper-"
@@ -4179,54 +4231,54 @@ msgid ""
4179
  msgstr ""
4180
 
4181
  #: includes/class-mla-settings-custom-fields-tab.php:750
4182
- #: includes/class-mla-settings-iptc-exif-tab.php:831
4183
  #: includes/class-mla-settings-shortcodes-tab.php:711
4184
  msgid "Search results for"
4185
  msgstr ""
4186
 
4187
  #: includes/class-mla-settings-custom-fields-tab.php:752
4188
- #: includes/class-mla-settings-iptc-exif-tab.php:832
4189
  msgid "Search Rules Text"
4190
  msgstr ""
4191
 
4192
  #: includes/class-mla-settings-custom-fields-tab.php:754
4193
- #: includes/class-mla-settings-iptc-exif-tab.php:834
4194
  msgid "Search Rules"
4195
  msgstr ""
4196
 
4197
  #: includes/class-mla-settings-custom-fields-tab.php:757
4198
- #: includes/class-mla-settings-iptc-exif-tab.php:837
4199
  msgid "Execute All Rules"
4200
  msgstr ""
4201
 
4202
  #: includes/class-mla-settings-custom-fields-tab.php:758
4203
- #: includes/class-mla-settings-iptc-exif-tab.php:838
4204
  msgid "Add New Custom Field Rule"
4205
  msgstr ""
4206
 
4207
  #: includes/class-mla-settings-custom-fields-tab.php:808
4208
- #: includes/class-mla-settings-iptc-exif-tab.php:890
4209
  msgid "Add Rule"
4210
  msgstr ""
4211
 
4212
  #: includes/class-mla-settings-custom-fields-tab.php:872
4213
  #: includes/class-mla-settings-custom-fields-tab.php:894
4214
- #: includes/class-mla-settings-iptc-exif-tab.php:965
4215
  msgid "Nothing to execute"
4216
  msgstr ""
4217
 
4218
  #: includes/class-mla-settings-custom-fields-tab.php:928
4219
- #: includes/class-mla-settings-iptc-exif-tab.php:1000
4220
  msgid "Rule ID not found"
4221
  msgstr ""
4222
 
4223
  #: includes/class-mla-settings-custom-fields-tab.php:932
4224
- #: includes/class-mla-settings-iptc-exif-tab.php:1004
4225
  msgid "Rule not found"
4226
  msgstr ""
4227
 
4228
  #: includes/class-mla-settings-custom-fields-tab.php:1209
4229
- #: includes/class-mla-settings-iptc-exif-tab.php:1285
4230
  msgctxt "list_table_column"
4231
  msgid "Bad Name"
4232
  msgstr ""
@@ -4242,38 +4294,38 @@ msgid "Visibility"
4242
  msgstr ""
4243
 
4244
  #: includes/class-mla-settings-custom-fields-tab.php:1214
4245
- #: includes/class-mla-settings-iptc-exif-tab.php:1289
4246
  msgctxt "list_table_column"
4247
  msgid "Existing Text"
4248
  msgstr ""
4249
 
4250
  #: includes/class-mla-settings-custom-fields-tab.php:1215
4251
- #: includes/class-mla-settings-iptc-exif-tab.php:1293
4252
  msgctxt "list_table_column"
4253
  msgid "Delete NULL"
4254
  msgstr ""
4255
 
4256
  #: includes/class-mla-settings-custom-fields-tab.php:1216
4257
- #: includes/class-mla-settings-iptc-exif-tab.php:1294
4258
  msgctxt "list_table_column"
4259
  msgid "Format"
4260
  msgstr ""
4261
 
4262
  #: includes/class-mla-settings-custom-fields-tab.php:1217
4263
- #: includes/class-mla-settings-iptc-exif-tab.php:1295
4264
  msgctxt "list_table_column"
4265
  msgid "Option"
4266
  msgstr ""
4267
 
4268
  #: includes/class-mla-settings-custom-fields-tab.php:1355
4269
- #: includes/class-mla-settings-iptc-exif-tab.php:1433
4270
  msgid "Map All Attachments"
4271
  msgstr ""
4272
 
4273
  #: includes/class-mla-settings-custom-fields-tab.php:1355
4274
  #: includes/class-mla-settings-custom-fields-tab.php:1690
4275
- #: includes/class-mla-settings-iptc-exif-tab.php:1433
4276
- #: includes/class-mla-settings-iptc-exif-tab.php:1796
4277
  msgid "Execute"
4278
  msgstr ""
4279
 
@@ -4283,13 +4335,13 @@ msgstr ""
4283
 
4284
  #: includes/class-mla-settings-custom-fields-tab.php:1357
4285
  #: includes/class-mla-settings-custom-fields-tab.php:1691
4286
- #: includes/class-mla-settings-iptc-exif-tab.php:1436
4287
- #: includes/class-mla-settings-iptc-exif-tab.php:1797
4288
  msgid "Purge Values"
4289
  msgstr ""
4290
 
4291
  #: includes/class-mla-settings-custom-fields-tab.php:1708
4292
- #: includes/class-mla-settings-iptc-exif-tab.php:1814
4293
  #: includes/class-mla-settings-shortcodes-tab.php:1302
4294
  msgid "Any Status"
4295
  msgstr ""
@@ -4325,13 +4377,13 @@ msgid "Bulk Edit"
4325
  msgstr ""
4326
 
4327
  #: includes/class-mla-settings-custom-fields-tab.php:2476
4328
- #: includes/class-mla-settings-iptc-exif-tab.php:2744
4329
  msgctxt "table_view_singular"
4330
  msgid "Read Only"
4331
  msgstr ""
4332
 
4333
  #: includes/class-mla-settings-custom-fields-tab.php:2477
4334
- #: includes/class-mla-settings-iptc-exif-tab.php:2745
4335
  msgctxt "table_view_plural"
4336
  msgid "Read Only"
4337
  msgstr ""
@@ -4345,7 +4397,7 @@ msgid "Example plugin \"%1$s\" not found"
4345
  msgstr ""
4346
 
4347
  #: includes/class-mla-settings-documentation-tab.php:131
4348
- #: includes/class-mla-settings.php:1364
4349
  #, php-format
4350
  msgid "%1$s: Reading the %2$s file ( %3$s ) \"%4$s\"."
4351
  msgstr ""
@@ -4523,129 +4575,129 @@ msgctxt "table_view_plural"
4523
  msgid "Uninstalled"
4524
  msgstr ""
4525
 
4526
- #: includes/class-mla-settings-iptc-exif-tab.php:144
4527
  msgid "IPTC/EXIF mapping settings updated."
4528
  msgstr ""
4529
 
4530
- #: includes/class-mla-settings-iptc-exif-tab.php:146
4531
  msgid "IPTC/EXIF no mapping changes detected."
4532
  msgstr ""
4533
 
4534
- #: includes/class-mla-settings-iptc-exif-tab.php:200
4535
  msgid "updated."
4536
  msgstr ""
4537
 
4538
- #: includes/class-mla-settings-iptc-exif-tab.php:465
4539
- #: includes/class-mla-settings-iptc-exif-tab.php:847
4540
  msgid "EXIF/Template Value"
4541
  msgstr ""
4542
 
4543
- #: includes/class-mla-settings-iptc-exif-tab.php:468
4544
- #: includes/class-mla-settings-iptc-exif-tab.php:850
4545
  msgid "EXIF element name or Content Template"
4546
  msgstr ""
4547
 
4548
- #: includes/class-mla-settings-iptc-exif-tab.php:468
4549
  msgid " (starting with \"template:\")"
4550
  msgstr ""
4551
 
4552
- #: includes/class-mla-settings-iptc-exif-tab.php:471
4553
- #: includes/class-mla-settings-iptc-exif-tab.php:853
4554
- #: includes/class-mla-settings-iptc-exif-tab.php:1549
4555
  msgid "IPTC"
4556
  msgstr ""
4557
 
4558
- #: includes/class-mla-settings-iptc-exif-tab.php:473
4559
- #: includes/class-mla-settings-iptc-exif-tab.php:855
4560
- #: includes/class-mla-settings-iptc-exif-tab.php:1552
4561
  msgid "EXIF"
4562
  msgstr ""
4563
 
4564
- #: includes/class-mla-settings-iptc-exif-tab.php:481
4565
- #: includes/class-mla-settings-iptc-exif-tab.php:861
4566
  msgid "Delimiters"
4567
  msgstr ""
4568
 
4569
- #: includes/class-mla-settings-iptc-exif-tab.php:536
4570
  msgid "Standard field mapping"
4571
  msgstr ""
4572
 
4573
- #: includes/class-mla-settings-iptc-exif-tab.php:539
4574
  msgid "Taxonomy term mapping"
4575
  msgstr ""
4576
 
4577
- #: includes/class-mla-settings-iptc-exif-tab.php:554
4578
  msgid "Custom field mapping"
4579
  msgstr ""
4580
 
4581
- #: includes/class-mla-settings-iptc-exif-tab.php:649
4582
  msgid "Edit IPTC EXIF Rule cancelled."
4583
  msgstr ""
4584
 
4585
- #: includes/class-mla-settings-iptc-exif-tab.php:735
4586
  msgid "IPTC/EXIF Mapping Support is disabled"
4587
  msgstr ""
4588
 
4589
- #: includes/class-mla-settings-iptc-exif-tab.php:804
4590
  msgid "IPTC &amp; EXIF Mapping Progress"
4591
  msgstr ""
4592
 
4593
- #: includes/class-mla-settings-iptc-exif-tab.php:822
4594
  msgid "IPTC &amp; EXIF Processing Options"
4595
  msgstr ""
4596
 
4597
- #: includes/class-mla-settings-iptc-exif-tab.php:824
4598
  msgid ""
4599
  "In this tab you can define the rules for mapping IPTC (International Press "
4600
  "Telecommunications Council) and EXIF (EXchangeable Image File) metadata to "
4601
  "WordPress standard attachment fields, taxonomy terms and custom fields."
4602
  msgstr ""
4603
 
4604
- #: includes/class-mla-settings-iptc-exif-tab.php:1286
4605
  msgctxt "list_table_column"
4606
  msgid "IPTC Value"
4607
  msgstr ""
4608
 
4609
- #: includes/class-mla-settings-iptc-exif-tab.php:1287
4610
  msgctxt "list_table_column"
4611
  msgid "EXIF/Template Value"
4612
  msgstr ""
4613
 
4614
- #: includes/class-mla-settings-iptc-exif-tab.php:1288
4615
  msgctxt "list_table_column"
4616
  msgid "Priority "
4617
  msgstr ""
4618
 
4619
- #: includes/class-mla-settings-iptc-exif-tab.php:1291
4620
  msgctxt "list_table_column"
4621
  msgid "Delimiter(s)"
4622
  msgstr ""
4623
 
4624
- #: includes/class-mla-settings-iptc-exif-tab.php:1292
4625
  msgctxt "list_table_column"
4626
  msgid "Parent"
4627
  msgstr ""
4628
 
4629
- #: includes/class-mla-settings-iptc-exif-tab.php:1436
4630
  msgid "Purge IPTC EXIF values"
4631
  msgstr ""
4632
 
4633
- #: includes/class-mla-settings-iptc-exif-tab.php:2732
4634
  msgctxt "table_view_singular"
4635
  msgid "Standard"
4636
  msgstr ""
4637
 
4638
- #: includes/class-mla-settings-iptc-exif-tab.php:2733
4639
  msgctxt "table_view_plural"
4640
  msgid "Standard"
4641
  msgstr ""
4642
 
4643
- #: includes/class-mla-settings-iptc-exif-tab.php:2736
4644
  msgctxt "table_view_singular"
4645
  msgid "Taxonomy"
4646
  msgstr ""
4647
 
4648
- #: includes/class-mla-settings-iptc-exif-tab.php:2737
4649
  msgctxt "table_view_plural"
4650
  msgid "Taxonomy"
4651
  msgstr ""
@@ -4749,7 +4801,7 @@ msgstr ""
4749
 
4750
  #: includes/class-mla-settings-shortcodes-tab.php:319
4751
  #: includes/class-mla-settings-shortcodes-tab.php:322
4752
- #: includes/class-mla-settings.php:956
4753
  msgid "Shortcodes"
4754
  msgstr ""
4755
 
@@ -5242,83 +5294,83 @@ msgstr ""
5242
  msgid "No view slug found"
5243
  msgstr ""
5244
 
5245
- #: includes/class-mla-settings.php:429 includes/class-mla-settings.php:655
5246
- #: includes/class-mla-settings.php:1469
5247
  msgid "Settings"
5248
  msgstr ""
5249
 
5250
- #: includes/class-mla-settings.php:448
5251
  msgid "Views per page"
5252
  msgstr ""
5253
 
5254
- #: includes/class-mla-settings.php:459
5255
  msgid "Types per page"
5256
  msgstr ""
5257
 
5258
- #: includes/class-mla-settings.php:470
5259
  msgid "Upload types per page"
5260
  msgstr ""
5261
 
5262
- #: includes/class-mla-settings.php:481
5263
  msgid "Shortcode templates per page"
5264
  msgstr ""
5265
 
5266
- #: includes/class-mla-settings.php:492 includes/class-mla-settings.php:503
5267
  msgid "Rules per page"
5268
  msgstr ""
5269
 
5270
- #: includes/class-mla-settings.php:515
5271
  msgid "Plugins per page"
5272
  msgstr ""
5273
 
5274
- #: includes/class-mla-settings.php:653
5275
  msgid "Guide"
5276
  msgstr ""
5277
 
5278
- #: includes/class-mla-settings.php:727 includes/class-mla-settings.php:764
5279
- #: includes/class-mla-settings.php:904
5280
  #, php-format
5281
  msgctxt "error_log"
5282
  msgid "%1$s: %2$s unknown type = \"%3$s\""
5283
  msgstr ""
5284
 
5285
- #: includes/class-mla-settings.php:802 includes/class-mla-settings.php:1069
5286
  msgid "Go to Bottom"
5287
  msgstr ""
5288
 
5289
- #: includes/class-mla-settings.php:953
5290
  msgid "General"
5291
  msgstr ""
5292
 
5293
- #: includes/class-mla-settings.php:954
5294
  msgid "Views"
5295
  msgstr ""
5296
 
5297
- #: includes/class-mla-settings.php:955
5298
  msgid "Uploads"
5299
  msgstr ""
5300
 
5301
- #: includes/class-mla-settings.php:957
5302
  msgid "Custom Fields"
5303
  msgstr ""
5304
 
5305
- #: includes/class-mla-settings.php:958
5306
  msgid "IPTC/EXIF"
5307
  msgstr ""
5308
 
5309
- #: includes/class-mla-settings.php:959
5310
  msgid "Documentation"
5311
  msgstr ""
5312
 
5313
- #: includes/class-mla-settings.php:960
5314
  msgid "Debug"
5315
  msgstr ""
5316
 
5317
- #: includes/class-mla-settings.php:1060
5318
  msgid "General Processing Options"
5319
  msgstr ""
5320
 
5321
- #: includes/class-mla-settings.php:1062
5322
  #, php-format
5323
  msgid ""
5324
  "In this tab you can find a number of options for controlling the "
@@ -5327,369 +5379,369 @@ msgid ""
5327
  "any changes you make."
5328
  msgstr ""
5329
 
5330
- #: includes/class-mla-settings.php:1062
5331
  msgid "Media/Assistant Table Defaults"
5332
  msgstr ""
5333
 
5334
- #: includes/class-mla-settings.php:1062
5335
  msgid "Media Manager Enhancements"
5336
  msgstr ""
5337
 
5338
- #: includes/class-mla-settings.php:1065
5339
  msgid "Delete General options and restore default settings"
5340
  msgstr ""
5341
 
5342
- #: includes/class-mla-settings.php:1088
5343
  msgid "enhanced version of the WordPress [gallery] shortcode."
5344
  msgstr ""
5345
 
5346
- #: includes/class-mla-settings.php:1089
5347
  msgid "enhanced version of the WordPress Tag Cloud."
5348
  msgstr ""
5349
 
5350
- #: includes/class-mla-settings.php:1090
5351
  msgid ""
5352
  "provides flat or hierarchical lists, dropdown controls and checkbox lists of "
5353
  "taxonomy terms."
5354
  msgstr ""
5355
 
5356
- #: includes/class-mla-settings.php:1102
5357
  msgid "Shortcodes made available by this plugin"
5358
  msgstr ""
5359
 
5360
- #: includes/class-mla-settings.php:1217
5361
  msgid "Debug settings saved."
5362
  msgstr ""
5363
 
5364
- #: includes/class-mla-settings.php:1313
5365
  #, php-format
5366
  msgid "%1$s: Reseting the %2$s file ( %3$s ) \"%4$s\"."
5367
  msgstr ""
5368
 
5369
- #: includes/class-mla-settings.php:1313 includes/class-mla-settings.php:1364
5370
- #: includes/class-mla-settings.php:1387 includes/class-mla-settings.php:1397
5371
- #: includes/class-mla-settings.php:1423
5372
  msgid "Error Log"
5373
  msgstr ""
5374
 
5375
- #: includes/class-mla-settings.php:1374
5376
  #, php-format
5377
  msgid "Error log file (%1$s) not found; click Reset to create it."
5378
  msgstr ""
5379
 
5380
- #: includes/class-mla-settings.php:1418 includes/class-mla-settings.php:1434
5381
  msgid "Debug Options"
5382
  msgstr ""
5383
 
5384
- #: includes/class-mla-settings.php:1421
5385
  msgid "Debug Settings"
5386
  msgstr ""
5387
 
5388
- #: includes/class-mla-settings.php:1425
5389
  #, php-format
5390
  msgid ""
5391
  "You can find more information about the MLA Reporting/MLA_DEBUG_LEVEL values "
5392
  "in the %1$s section of the Documentation tab."
5393
  msgstr ""
5394
 
5395
- #: includes/class-mla-settings.php:1425
5396
  msgid "MLA Debug Tab documentation"
5397
  msgstr ""
5398
 
5399
- #: includes/class-mla-settings.php:1425
5400
  msgid "MLA Debug Tab"
5401
  msgstr ""
5402
 
5403
- #: includes/class-mla-settings.php:1434
5404
  #, php-format
5405
  msgid "Click %1$s to update the %2$s."
5406
  msgstr ""
5407
 
5408
- #: includes/class-mla-settings.php:1453
5409
  msgid "You do not have permission to manage plugin settings."
5410
  msgstr ""
5411
 
5412
- #: includes/class-mla-settings.php:1479
5413
  msgid "Cannot render content tab"
5414
  msgstr ""
5415
 
5416
- #: includes/class-mla-settings.php:1482
5417
  msgid "Unknown content tab"
5418
  msgstr ""
5419
 
5420
- #: includes/class-mla-settings.php:1498
5421
  msgid "Dismiss this notice"
5422
  msgstr ""
5423
 
5424
- #: includes/class-mla-settings.php:1525
5425
  #, php-format
5426
  msgid "%s attachment"
5427
  msgid_plural "%s attachments"
5428
  msgstr[0] ""
5429
  msgstr[1] ""
5430
 
5431
- #: includes/class-mla-settings.php:1527
5432
  #, php-format
5433
  msgid "Deleted custom field value from %1$s."
5434
  msgstr ""
5435
 
5436
- #: includes/class-mla-settings.php:1530
5437
  msgid "No attachments contained this custom field."
5438
  msgstr ""
5439
 
5440
- #: includes/class-mla-settings.php:1560 includes/class-mla-settings.php:1570
5441
  #, php-format
5442
  msgctxt "message_list"
5443
  msgid "%1$s - references updated."
5444
  msgstr ""
5445
 
5446
- #: includes/class-mla-settings.php:1613
5447
  msgid "General settings saved."
5448
  msgstr ""
5449
 
5450
- #: includes/class-mla-settings.php:1652
5451
  msgid "General settings reset to default values."
5452
  msgstr ""
5453
 
5454
- #: includes/class-mla-settings.php:1694
5455
  msgid "select settings"
5456
  msgstr ""
5457
 
5458
- #: includes/class-mla-settings.php:1714
5459
  msgid "Import ALL Settings"
5460
  msgstr ""
5461
 
5462
- #: includes/class-mla-settings.php:1743 includes/class-mla-settings.php:1759
5463
  msgctxt "message_list"
5464
  msgid "exported"
5465
  msgstr ""
5466
 
5467
- #: includes/class-mla-settings.php:1745 includes/class-mla-settings.php:1761
5468
  msgctxt "message_list"
5469
  msgid "skipped"
5470
  msgstr ""
5471
 
5472
- #: includes/class-mla-settings.php:1768
5473
  msgid "ALL settings exported."
5474
  msgstr ""
5475
 
5476
- #: includes/class-mla-settings.php:1779
5477
  #, php-format
5478
  msgid "%1$s: The settings directory ( %2$s ) cannot be created."
5479
  msgstr ""
5480
 
5481
- #: includes/class-mla-settings.php:1783
5482
  #, php-format
5483
  msgid "%1$s: The settings directory ( %2$s ) is not writable."
5484
  msgstr ""
5485
 
5486
- #: includes/class-mla-settings.php:1794
5487
  #, php-format
5488
  msgid "%1$s: The settings file ( %2$s ) could not be opened."
5489
  msgstr ""
5490
 
5491
- #: includes/class-mla-settings.php:1801
5492
  #, php-format
5493
  msgctxt "error_log"
5494
  msgid "%1$s: _export_settings $error_info = \"%2$s\"."
5495
  msgstr ""
5496
 
5497
- #: includes/class-mla-settings.php:1810
5498
  #, php-format
5499
  msgid "%1$s: Writing the settings file ( %2$s ) \"%3$s\"."
5500
  msgstr ""
5501
 
5502
- #: includes/class-mla-settings.php:1816
5503
  #, php-format
5504
  msgid "Settings exported; %1$s settings recorded."
5505
  msgstr ""
5506
 
5507
- #: includes/class-mla-settings.php:1834
5508
  msgid "No settings imported."
5509
  msgstr ""
5510
 
5511
- #: includes/class-mla-settings.php:1843
5512
  msgid "Please select an import settings file from the dropdown list."
5513
  msgstr ""
5514
 
5515
- #: includes/class-mla-settings.php:1847
5516
  msgid "The import settings dropdown selection is missing."
5517
  msgstr ""
5518
 
5519
- #: includes/class-mla-settings.php:1855
5520
  #, php-format
5521
  msgctxt "error_log"
5522
  msgid "%1$s: _import_settings $error_info = \"%2$s\"."
5523
  msgstr ""
5524
 
5525
- #: includes/class-mla-settings.php:1864
5526
  #, php-format
5527
  msgid "%1$s: Reading the settings file ( %2$s ) \"%3$s\"."
5528
  msgstr ""
5529
 
5530
- #: includes/class-mla-settings.php:1883 includes/class-mla-settings.php:1899
5531
  msgctxt "message_list"
5532
  msgid "updated"
5533
  msgstr ""
5534
 
5535
- #: includes/class-mla-settings.php:1886 includes/class-mla-settings.php:1902
5536
  msgctxt "message_list"
5537
  msgid "unchanged"
5538
  msgstr ""
5539
 
5540
- #: includes/class-mla-settings.php:1907
5541
  #, php-format
5542
  msgid "Settings imported; %1$s updated, %2$s unchanged."
5543
  msgstr ""
5544
 
5545
- #: includes/class-mla-shortcode-support.php:510
5546
- #: includes/class-mla-shortcode-support.php:1942
5547
- #: includes/class-mla-shortcode-support.php:3975
5548
- #: includes/class-mla-shortcode-support.php:4257
5549
  msgid "Previous"
5550
  msgstr ""
5551
 
5552
- #: includes/class-mla-shortcode-support.php:511
5553
- #: includes/class-mla-shortcode-support.php:1943
5554
- #: includes/class-mla-shortcode-support.php:4024
5555
- #: includes/class-mla-shortcode-support.php:4263
5556
  msgid "Next"
5557
  msgstr ""
5558
 
5559
- #: includes/class-mla-shortcode-support.php:582
5560
- #: includes/class-mla-shortcode-support.php:588
5561
- #: includes/class-mla-shortcode-support.php:2081
5562
- #: includes/class-mla-shortcode-support.php:2088
5563
- #: includes/class-mla-shortcode-support.php:3401
5564
- #: includes/class-mla-shortcode-support.php:3408
5565
  #: includes/class-mla-template-support.php:598
5566
  msgid "not found"
5567
  msgstr ""
5568
 
5569
- #: includes/class-mla-shortcode-support.php:612
5570
- #: includes/class-mla-shortcode-support.php:2073
5571
- #: includes/class-mla-shortcode-support.php:3393
5572
  msgid "mla_debug REQUEST"
5573
  msgstr ""
5574
 
5575
- #: includes/class-mla-shortcode-support.php:616
5576
  #: includes/class-mla-shortcode-support.php:618
 
5577
  msgid "mla_debug attributes_errors"
5578
  msgstr ""
5579
 
5580
- #: includes/class-mla-shortcode-support.php:624
5581
- #: includes/class-mla-shortcode-support.php:2074
5582
- #: includes/class-mla-shortcode-support.php:3394
5583
  msgid "mla_debug attributes"
5584
  msgstr ""
5585
 
5586
- #: includes/class-mla-shortcode-support.php:625
5587
- #: includes/class-mla-shortcode-support.php:2075
5588
- #: includes/class-mla-shortcode-support.php:3395
5589
  msgid "mla_debug arguments"
5590
  msgstr ""
5591
 
5592
- #: includes/class-mla-shortcode-support.php:717
5593
  msgid "mla_debug empty gallery"
5594
  msgstr ""
5595
 
5596
- #: includes/class-mla-shortcode-support.php:738
5597
  msgid ""
5598
  "<strong>Photonic-enhanced [mla_gallery]</strong> type must be "
5599
  "<strong>default</strong>, query = "
5600
  msgstr ""
5601
 
5602
- #: includes/class-mla-shortcode-support.php:1206
5603
  msgid "unknown"
5604
  msgstr ""
5605
 
5606
- #: includes/class-mla-shortcode-support.php:2206
5607
  msgid "mla_debug empty cloud"
5608
  msgstr ""
5609
 
5610
- #: includes/class-mla-shortcode-support.php:3529
5611
  msgid "mla_debug empty list"
5612
  msgstr ""
5613
 
5614
- #: includes/class-mla-shortcode-support.php:3552
5615
  msgid "no-terms"
5616
  msgstr ""
5617
 
5618
- #: includes/class-mla-shortcode-support.php:4790
5619
- #: includes/class-mla-shortcode-support.php:5211
5620
- #: includes/class-mla-shortcode-support.php:5256
5621
  msgid "Invalid mla_gallery"
5622
  msgstr ""
5623
 
5624
- #: includes/class-mla-shortcode-support.php:5537
5625
  msgid "mla_debug query"
5626
  msgstr ""
5627
 
5628
- #: includes/class-mla-shortcode-support.php:5538
5629
  msgid "mla_debug request"
5630
  msgstr ""
5631
 
5632
- #: includes/class-mla-shortcode-support.php:5539
5633
  msgid "mla_debug query_vars"
5634
  msgstr ""
5635
 
5636
- #: includes/class-mla-shortcode-support.php:5540
5637
  msgid "mla_debug post_count"
5638
  msgstr ""
5639
 
5640
- #: includes/class-mla-shortcode-support.php:5564
5641
  msgid "mla_debug JOIN filter"
5642
  msgstr ""
5643
 
5644
- #: includes/class-mla-shortcode-support.php:5604
5645
  msgid "mla_debug modified JOIN filter"
5646
  msgstr ""
5647
 
5648
- #: includes/class-mla-shortcode-support.php:5629
5649
  msgid "mla_debug WHERE filter"
5650
  msgstr ""
5651
 
5652
- #: includes/class-mla-shortcode-support.php:5653
5653
  msgid "mla_debug modified WHERE filter"
5654
  msgstr ""
5655
 
5656
- #: includes/class-mla-shortcode-support.php:5676
5657
  msgid "mla_debug ORDER BY filter, incoming"
5658
  msgstr ""
5659
 
5660
- #: includes/class-mla-shortcode-support.php:5676
5661
  msgid "Replacement ORDER BY clause"
5662
  msgstr ""
5663
 
5664
- #: includes/class-mla-shortcode-support.php:5699
5665
  msgid "mla_debug posts_clauses filter"
5666
  msgstr ""
5667
 
5668
- #: includes/class-mla-shortcode-support.php:5717
5669
  msgid "mla_debug posts_clauses_request filter"
5670
  msgstr ""
5671
 
5672
- #: includes/class-mla-shortcode-support.php:5931
5673
  msgid "Invalid taxonomy"
5674
  msgstr ""
5675
 
5676
- #: includes/class-mla-shortcode-support.php:6111
5677
  msgid "mla_debug query arguments"
5678
  msgstr ""
5679
 
5680
- #: includes/class-mla-shortcode-support.php:6112
5681
  msgid "mla_debug last_query"
5682
  msgstr ""
5683
 
5684
- #: includes/class-mla-shortcode-support.php:6113
5685
  msgid "mla_debug last_error"
5686
  msgstr ""
5687
 
5688
- #: includes/class-mla-shortcode-support.php:6114
5689
  msgid "mla_debug num_rows"
5690
  msgstr ""
5691
 
5692
- #: includes/class-mla-shortcode-support.php:6115
5693
  msgid "mla_debug found_rows"
5694
  msgstr ""
5695
 
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
+ "POT-Creation-Date: 2020-08-13 16:18-0700\n"
6
  "PO-Revision-Date: 2015-08-21 21:38-0800\n"
7
  "Last-Translator: David Lingren <david@fairtradejudaica.org>\n"
8
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
23
  #: includes/class-mla-admin-columns-pro-support-423.php:178
24
  #: includes/class-mla-admin-columns-pro-support-44.php:175
25
  #: includes/class-mla-admin-columns-pro-support.php:193
26
+ #: includes/class-mla-ajax.php:351 includes/class-mla-edit-media.php:987
27
+ #: includes/class-mla-list-table.php:671
28
  msgid "Draft"
29
  msgstr ""
30
 
31
  #: includes/class-mla-admin-columns-pro-support-423.php:181
32
  #: includes/class-mla-admin-columns-pro-support-44.php:178
33
  #: includes/class-mla-admin-columns-pro-support.php:196
34
+ #: includes/class-mla-ajax.php:345 includes/class-mla-edit-media.php:981
35
+ #: includes/class-mla-list-table.php:674
36
  msgid "Scheduled"
37
  msgstr ""
38
 
39
  #: includes/class-mla-admin-columns-pro-support-423.php:184
40
  #: includes/class-mla-admin-columns-pro-support-44.php:181
41
  #: includes/class-mla-admin-columns-pro-support.php:199
42
+ #: includes/class-mla-edit-media.php:984 includes/class-mla-list-table.php:677
43
  msgctxt "post state"
44
  msgid "Pending"
45
  msgstr ""
47
  #: includes/class-mla-admin-columns-pro-support-423.php:187
48
  #: includes/class-mla-admin-columns-pro-support-44.php:184
49
  #: includes/class-mla-admin-columns-pro-support.php:202
50
+ #: includes/class-mla-list-table.php:680
51
  #: includes/class-mla-thumbnail-generation.php:649
52
  msgid "Trash"
53
  msgstr ""
54
 
55
  #: includes/class-mla-admin-columns-pro-support-423.php:395
56
  #: includes/class-mla-admin-columns-pro-support-44.php:392
57
+ #: includes/class-mla-admin-columns-pro-support.php:433
58
  #: includes/class-mla-data-references.php:310
59
  #: includes/class-mla-data-references.php:634
60
+ #: includes/class-mla-list-table.php:1118
61
  msgid "NO REFERENCE TESTS"
62
  msgstr ""
63
 
69
  #: includes/class-mla-admin-columns-pro-support-44.php:651
70
  #: includes/class-mla-admin-columns-pro-support-44.php:718
71
  #: includes/class-mla-admin-columns-pro-support-44.php:780
72
+ #: includes/class-mla-admin-columns-pro-support.php:630
73
+ #: includes/class-mla-admin-columns-pro-support.php:692
74
+ #: includes/class-mla-admin-columns-pro-support.php:759
75
+ #: includes/class-mla-admin-columns-pro-support.php:821
76
+ #: includes/class-mla-core-options.php:452
77
+ #: includes/class-mla-core-options.php:462
78
+ #: includes/class-mla-core-options.php:472
79
+ #: includes/class-mla-core-options.php:482
80
+ #: includes/class-mla-list-table.php:1198
81
+ #: includes/class-mla-list-table.php:1243
82
+ #: includes/class-mla-list-table.php:1293
83
+ #: includes/class-mla-list-table.php:1338
84
  msgid "Disabled"
85
  msgstr ""
86
 
92
  #: includes/class-mla-admin-columns-pro-support-44.php:674
93
  #: includes/class-mla-admin-columns-pro-support-44.php:737
94
  #: includes/class-mla-admin-columns-pro-support-44.php:799
95
+ #: includes/class-mla-admin-columns-pro-support.php:649
96
+ #: includes/class-mla-admin-columns-pro-support.php:715
97
+ #: includes/class-mla-admin-columns-pro-support.php:778
98
+ #: includes/class-mla-admin-columns-pro-support.php:840
99
+ #: includes/class-mla-edit-media.php:1069
100
+ #: includes/class-mla-edit-media.php:1107
101
+ #: includes/class-mla-edit-media.php:1143
102
+ #: includes/class-mla-edit-media.php:1178
103
+ #: includes/class-mla-list-table.php:1216
104
+ #: includes/class-mla-list-table.php:1265
105
+ #: includes/class-mla-list-table.php:1311
106
+ #: includes/class-mla-list-table.php:1356
107
  msgid "PARENT"
108
  msgstr ""
109
 
110
  #: includes/class-mla-admin-columns-pro-support-423.php:1027
111
  #: includes/class-mla-admin-columns-pro-support-44.php:1024
112
+ #: includes/class-mla-admin-columns-pro-support.php:1065
113
+ #: includes/class-mla-core-options.php:611
114
+ #: includes/class-mla-core-options.php:868
115
+ #: includes/class-mla-core-options.php:899
116
+ #: includes/class-mla-core-options.php:913
117
+ #: includes/class-mla-list-table.php:528 includes/class-mla-list-table.php:1451
118
  #: includes/class-mla-settings-shortcodes-tab.php:629
119
  msgid "None"
120
  msgstr ""
121
 
122
  #: includes/class-mla-admin-columns-pro-support-423.php:1117
123
  #: includes/class-mla-admin-columns-pro-support-44.php:1114
124
+ #: includes/class-mla-admin-columns-pro-support.php:1155
125
+ #: includes/class-mla-list-table.php:1590
126
  msgid "(Private post)"
127
  msgstr ""
128
 
129
  #: includes/class-mla-admin-columns-pro-support-423.php:1121
130
  #: includes/class-mla-admin-columns-pro-support-44.php:1118
131
+ #: includes/class-mla-admin-columns-pro-support.php:1159
132
+ #: includes/class-mla-ajax.php:361 includes/class-mla-list-table.php:1501
133
+ #: includes/class-mla-list-table.php:1530
134
+ #: includes/class-mla-list-table.php:1594
135
  msgid "Y/m/d"
136
  msgstr ""
137
 
138
  #: includes/class-mla-admin-columns-pro-support-423.php:1134
139
  #: includes/class-mla-admin-columns-pro-support-44.php:1131
140
+ #: includes/class-mla-admin-columns-pro-support.php:1172
141
+ #: includes/class-mla-core-options.php:1315
142
+ #: includes/class-mla-list-table.php:1607
143
  msgctxt "table_view_singular"
144
  msgid "Unattached"
145
  msgstr ""
146
 
147
  #: includes/class-mla-admin-columns-support-deprecated.php:33
148
  #: includes/class-mla-admin-columns-support.php:43
149
+ #: includes/class-mla-core-options.php:561 includes/class-mla-settings.php:436
150
+ #: includes/class-mla-settings.php:1459 includes/class-mla-settings.php:1475
151
  #: index.php:46
152
  msgid "Media Library Assistant"
153
  msgstr ""
154
 
155
  #: includes/class-mla-admin-columns-support-deprecated.php:34
156
  #: includes/class-mla-admin-columns-support.php:44
157
+ #: includes/class-mla-core-options.php:570
158
  msgid "Assistant"
159
  msgstr ""
160
 
161
+ #: includes/class-mla-ajax.php:77
162
+ #, php-format
163
+ msgctxt "error_log"
164
+ msgid "%1$s: mla_mmmw_query_posts_clauses_filter = \"%2$s\"."
165
+ msgstr ""
166
+
167
+ #: includes/class-mla-ajax.php:77 includes/class-mla-ajax.php:94
168
+ #: includes/class-mla-ajax.php:111 includes/class-mla-ajax.php:129
169
+ #: includes/class-mla-ajax.php:148 includes/class-mla-data-query.php:1333
170
+ #: includes/class-mla-data-query.php:1348
171
+ #: includes/class-mla-data-query.php:1350
172
+ #: includes/class-mla-data-query.php:1864
173
+ #: includes/class-mla-data-query.php:1948
174
+ #: includes/class-mla-data-query.php:2020
175
+ #: includes/class-mla-data-query.php:2117
176
+ #: includes/class-mla-data-query.php:2209
177
+ #: includes/class-mla-data-query.php:2228
178
+ msgid "DEBUG"
179
+ msgstr ""
180
+
181
+ #: includes/class-mla-ajax.php:94
182
+ #, php-format
183
+ msgctxt "error_log"
184
+ msgid "%1$s: mla_mmmw_query_posts_clauses_request_filter = \"%2$s\"."
185
+ msgstr ""
186
+
187
+ #: includes/class-mla-ajax.php:111
188
+ #, php-format
189
+ msgctxt "error_log"
190
+ msgid "%1$s: mla_mmmw_query_posts_request_filter = \"%2$s\"."
191
+ msgstr ""
192
+
193
+ #: includes/class-mla-ajax.php:129
194
+ #, php-format
195
+ msgctxt "error_log"
196
+ msgid ""
197
+ "%1$s: mla_mmmw_query_posts_results_filter post_count = \"%2$d\", found_posts "
198
+ "= \"%3$d\" count = %4$d."
199
+ msgstr ""
200
+
201
+ #: includes/class-mla-ajax.php:148
202
+ #, php-format
203
+ msgctxt "error_log"
204
+ msgid ""
205
+ "%1$s: mla_mmmw_query_the_posts_filter post_count = \"%2$d\", found_posts = "
206
+ "\"%3$d\" count = %4$d."
207
+ msgstr ""
208
+
209
+ #: includes/class-mla-ajax.php:332 includes/class-mla-core-options.php:1191
210
+ #: includes/class-mla-data.php:4281 includes/class-mla-edit-media.php:478
211
+ #: includes/class-mla-main.php:2056 includes/class-mla-main.php:2361
212
  #: includes/class-mla-objects.php:348 includes/class-mla-options.php:466
213
  #: includes/mla-main-search-box-template.php:47
214
  #: includes/mla-media-modal-js-template.php:57
215
  msgid "Title"
216
  msgstr ""
217
 
218
+ #: includes/class-mla-ajax.php:332 includes/class-mla-main.php:2057
219
  #: includes/class-mla-thumbnail-generation.php:641
220
  msgid "Type"
221
  msgstr ""
222
 
223
+ #: includes/class-mla-ajax.php:332 includes/class-mla-main.php:2058
224
  msgid "Date"
225
  msgstr ""
226
 
227
+ #: includes/class-mla-ajax.php:332 includes/class-mla-main.php:2059
228
  #: includes/class-mla-settings-custom-fields-tab.php:503
229
  #: includes/class-mla-settings-custom-fields-tab.php:803
230
+ #: includes/class-mla-settings-iptc-exif-tab.php:515
231
+ #: includes/class-mla-settings-iptc-exif-tab.php:897
232
  #: includes/class-mla-settings-upload-tab.php:548
233
  msgid "Status"
234
  msgstr ""
235
 
236
+ #: includes/class-mla-ajax.php:336 includes/class-mla-list-table.php:927
237
+ #: includes/class-mla-list-table.php:1092 includes/class-mla-main.php:460
238
  #: includes/class-mla-polylang-support.php:374
239
  #: includes/class-mla-thumbnail-generation.php:97
240
  msgid "(no title)"
241
  msgstr ""
242
 
243
+ #: includes/class-mla-ajax.php:342
244
  msgid "Published"
245
  msgstr ""
246
 
247
+ #: includes/class-mla-ajax.php:348
248
  msgid "Pending Review"
249
  msgstr ""
250
 
251
+ #: includes/class-mla-ajax.php:390 includes/class-mla-ajax.php:397
252
+ #: includes/class-mla-ajax.php:406 includes/class-mla-core.php:863
253
+ #: includes/class-mla-core.php:881 includes/class-mla-core.php:1306
254
+ #: includes/class-mla-core.php:1312 includes/class-mla-core.php:1316
255
  #: includes/class-mla-data-office.php:54 includes/class-mla-data-office.php:64
256
  #: includes/class-mla-data-office.php:68 includes/class-mla-data-office.php:83
257
  #: includes/class-mla-data-office.php:88 includes/class-mla-data-pdf.php:216
259
  #: includes/class-mla-data-pdf.php:565 includes/class-mla-data-pdf.php:749
260
  #: includes/class-mla-data-query.php:843 includes/class-mla-data.php:50
261
  #: includes/class-mla-data.php:109 includes/class-mla-data.php:193
262
+ #: includes/class-mla-data.php:254 includes/class-mla-data.php:322
263
+ #: includes/class-mla-data.php:411 includes/class-mla-data.php:563
264
+ #: includes/class-mla-data.php:626 includes/class-mla-data.php:1579
265
+ #: includes/class-mla-data.php:1778 includes/class-mla-data.php:1784
266
+ #: includes/class-mla-data.php:2134 includes/class-mla-data.php:2138
267
+ #: includes/class-mla-data.php:3503 includes/class-mla-data.php:3564
268
+ #: includes/class-mla-data.php:3608 includes/class-mla-data.php:3988
269
+ #: includes/class-mla-data.php:4001 includes/class-mla-data.php:4023
270
+ #: includes/class-mla-data.php:4256 includes/class-mla-data.php:4302
271
+ #: includes/class-mla-data.php:4335 includes/class-mla-data.php:4351
272
+ #: includes/class-mla-data.php:4622 includes/class-mla-edit-media.php:319
273
+ #: includes/class-mla-edit-media.php:893 includes/class-mla-edit-media.php:935
274
+ #: includes/class-mla-main.php:708 includes/class-mla-main.php:836
275
+ #: includes/class-mla-main.php:838 includes/class-mla-main.php:841
276
+ #: includes/class-mla-main.php:901 includes/class-mla-main.php:935
277
+ #: includes/class-mla-main.php:944 includes/class-mla-main.php:951
278
+ #: includes/class-mla-main.php:1336 includes/class-mla-main.php:1392
279
+ #: includes/class-mla-main.php:1417 includes/class-mla-main.php:1554
280
+ #: includes/class-mla-main.php:1604 includes/class-mla-main.php:1707
281
+ #: includes/class-mla-main.php:1736 includes/class-mla-main.php:1872
282
+ #: includes/class-mla-main.php:1879 includes/class-mla-main.php:2042
283
+ #: includes/class-mla-main.php:2168 includes/class-mla-main.php:2493
284
+ #: includes/class-mla-main.php:2501 includes/class-mla-main.php:2525
285
+ #: includes/class-mla-main.php:2533 includes/class-mla-main.php:2565
286
+ #: includes/class-mla-main.php:2573 includes/class-mla-media-modal.php:617
287
+ #: includes/class-mla-mime-types.php:825 includes/class-mla-mime-types.php:1217
288
+ #: includes/class-mla-mime-types.php:1305
289
+ #: includes/class-mla-mime-types.php:1451
290
+ #: includes/class-mla-mime-types.php:1474
 
 
291
  #: includes/class-mla-mime-types.php:2275
292
+ #: includes/class-mla-mime-types.php:2286
293
+ #: includes/class-mla-mime-types.php:2299
294
+ #: includes/class-mla-mime-types.php:2307
295
+ #: includes/class-mla-mime-types.php:2312
296
+ #: includes/class-mla-mime-types.php:2355
297
+ #: includes/class-mla-mime-types.php:2374
298
+ #: includes/class-mla-mime-types.php:2425
299
+ #: includes/class-mla-mime-types.php:2459
300
+ #: includes/class-mla-mime-types.php:2544
301
+ #: includes/class-mla-mime-types.php:2623
302
+ #: includes/class-mla-mime-types.php:2632
303
+ #: includes/class-mla-mime-types.php:2664 includes/class-mla-objects.php:245
304
  #: includes/class-mla-options.php:218 includes/class-mla-options.php:434
305
  #: includes/class-mla-options.php:515 includes/class-mla-options.php:570
306
+ #: includes/class-mla-options.php:1131 includes/class-mla-options.php:1969
307
+ #: includes/class-mla-options.php:2195
308
  #: includes/class-mla-settings-custom-fields-tab.php:173
309
  #: includes/class-mla-settings-custom-fields-tab.php:238
310
  #: includes/class-mla-settings-custom-fields-tab.php:242
322
  #: includes/class-mla-settings-documentation-tab.php:131
323
  #: includes/class-mla-settings-documentation-tab.php:323
324
  #: includes/class-mla-settings-documentation-tab.php:1301
325
+ #: includes/class-mla-settings-iptc-exif-tab.php:171
326
+ #: includes/class-mla-settings-iptc-exif-tab.php:237
327
  #: includes/class-mla-settings-iptc-exif-tab.php:241
328
+ #: includes/class-mla-settings-iptc-exif-tab.php:276
329
+ #: includes/class-mla-settings-iptc-exif-tab.php:304
330
  #: includes/class-mla-settings-iptc-exif-tab.php:308
331
+ #: includes/class-mla-settings-iptc-exif-tab.php:342
332
+ #: includes/class-mla-settings-iptc-exif-tab.php:426
333
+ #: includes/class-mla-settings-iptc-exif-tab.php:643
334
+ #: includes/class-mla-settings-iptc-exif-tab.php:811
335
+ #: includes/class-mla-settings-iptc-exif-tab.php:1012
336
+ #: includes/class-mla-settings-iptc-exif-tab.php:1016
337
+ #: includes/class-mla-settings-iptc-exif-tab.php:1046
338
+ #: includes/class-mla-settings-iptc-exif-tab.php:2286
 
339
  #: includes/class-mla-settings-shortcodes-tab.php:79
340
  #: includes/class-mla-settings-shortcodes-tab.php:90
341
  #: includes/class-mla-settings-shortcodes-tab.php:94
356
  #: includes/class-mla-settings-view-tab.php:275
357
  #: includes/class-mla-settings-view-tab.php:433
358
  #: includes/class-mla-settings-view-tab.php:447
359
+ #: includes/class-mla-settings.php:596 includes/class-mla-settings.php:734
360
+ #: includes/class-mla-settings.php:771 includes/class-mla-settings.php:911
361
+ #: includes/class-mla-settings.php:1320 includes/class-mla-settings.php:1371
362
+ #: includes/class-mla-settings.php:1459 includes/class-mla-settings.php:1486
363
+ #: includes/class-mla-settings.php:1489 includes/class-mla-settings.php:1493
364
+ #: includes/class-mla-settings.php:1786 includes/class-mla-settings.php:1790
365
+ #: includes/class-mla-settings.php:1801 includes/class-mla-settings.php:1808
366
+ #: includes/class-mla-settings.php:1817 includes/class-mla-settings.php:1854
367
+ #: includes/class-mla-settings.php:1862 includes/class-mla-settings.php:1871
368
+ #: includes/class-mla-shortcode-support.php:2184
369
+ #: includes/class-mla-shortcode-support.php:2273
370
+ #: includes/class-mla-shortcode-support.php:3506
371
+ #: includes/class-mla-shortcode-support.php:3633
372
+ #: includes/class-mla-shortcode-support.php:3665
373
+ #: includes/class-mla-shortcode-support.php:4867
374
+ #: includes/class-mla-shortcode-support.php:5279
375
+ #: includes/class-mla-shortcode-support.php:5310
376
  #: includes/class-mla-thumbnail-generation.php:434
377
  #: includes/class-mla-thumbnail-generation.php:446
378
  #: includes/class-mla-thumbnail-generation.php:458
380
  msgid "ERROR"
381
  msgstr ""
382
 
383
+ #: includes/class-mla-ajax.php:390 includes/class-mla-main.php:1872
384
  msgid "No post ID found"
385
  msgstr ""
386
 
387
+ #: includes/class-mla-ajax.php:397 includes/class-mla-main.php:1879
388
  #: includes/class-mla-polylang-support.php:271
389
  msgid "You are not allowed to edit this Attachment."
390
  msgstr ""
391
 
392
+ #: includes/class-mla-core-options.php:413 includes/class-mla-options.php:257
393
  msgid "Attachment Categories"
394
  msgstr ""
395
 
396
+ #: includes/class-mla-core-options.php:417
397
  msgid "Check this option to add support for Attachment Categories."
398
  msgstr ""
399
 
400
+ #: includes/class-mla-core-options.php:421 includes/class-mla-options.php:272
401
  msgid "Attachment Tags"
402
  msgstr ""
403
 
404
+ #: includes/class-mla-core-options.php:425
405
  msgid "Check this option to add support for Attachment Tags."
406
  msgstr ""
407
 
408
+ #: includes/class-mla-core-options.php:429 includes/class-mla-settings.php:1069
409
  msgid "Where-used Reporting"
410
  msgstr ""
411
 
412
+ #: includes/class-mla-core-options.php:434
413
  msgid "Exclude Revisions"
414
  msgstr ""
415
 
416
+ #: includes/class-mla-core-options.php:438
417
  msgid "Check this option to exclude revisions from where-used reporting."
418
  msgstr ""
419
 
420
+ #: includes/class-mla-core-options.php:442
421
  msgid "Where-used database access tuning"
422
  msgstr ""
423
 
424
+ #: includes/class-mla-core-options.php:447
425
+ #: includes/class-mla-edit-media.php:828 includes/class-mla-edit-media.php:1080
426
  msgid "Featured in"
427
  msgstr ""
428
 
429
+ #: includes/class-mla-core-options.php:452
430
+ #: includes/class-mla-core-options.php:462
431
  msgid "Enabled"
432
  msgstr ""
433
 
434
+ #: includes/class-mla-core-options.php:453
435
  msgid "Search database posts and pages for Featured Image attachments."
436
  msgstr ""
437
 
438
+ #: includes/class-mla-core-options.php:457
439
+ #: includes/class-mla-edit-media.php:832 includes/class-mla-edit-media.php:1119
440
  msgid "Inserted in"
441
  msgstr ""
442
 
443
+ #: includes/class-mla-core-options.php:462
444
  msgid "Base"
445
  msgstr ""
446
 
447
+ #: includes/class-mla-core-options.php:463
448
  msgid ""
449
  "Search database posts and pages for attachments embedded in content."
450
  "<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base "
451
  "name and extension only."
452
  msgstr ""
453
 
454
+ #: includes/class-mla-core-options.php:467
455
+ #: includes/class-mla-edit-media.php:836 includes/class-mla-edit-media.php:1154
456
+ #: includes/class-mla-settings.php:1567
457
  msgid "Gallery in"
458
  msgstr ""
459
 
460
+ #: includes/class-mla-core-options.php:472
461
+ #: includes/class-mla-core-options.php:482
462
  msgid "Dynamic"
463
  msgstr ""
464
 
465
+ #: includes/class-mla-core-options.php:472
466
+ #: includes/class-mla-core-options.php:482 includes/class-mla-main.php:2396
467
  #: includes/class-mla-settings-custom-fields-tab.php:733
468
+ #: includes/class-mla-settings-iptc-exif-tab.php:826
469
  msgid "Refresh"
470
  msgstr ""
471
 
472
+ #: includes/class-mla-core-options.php:472
473
+ #: includes/class-mla-core-options.php:482
474
  msgid "Cached"
475
  msgstr ""
476
 
477
+ #: includes/class-mla-core-options.php:473
478
  msgid ""
479
  "Search database posts and pages for [ gallery ] shortcode results.<br>&nbsp;"
480
  "&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = "
481
  "never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached."
482
  msgstr ""
483
 
484
+ #: includes/class-mla-core-options.php:477
485
+ #: includes/class-mla-edit-media.php:840 includes/class-mla-edit-media.php:1189
486
+ #: includes/class-mla-settings.php:1577
487
  msgid "MLA Gallery in"
488
  msgstr ""
489
 
490
+ #: includes/class-mla-core-options.php:483
491
  msgid ""
492
  "Search database posts and pages for [mla_gallery] shortcode results."
493
  "<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, "
495
  "Cached."
496
  msgstr ""
497
 
498
+ #: includes/class-mla-core-options.php:487 includes/class-mla-settings.php:1069
499
  msgid "Taxonomy Support"
500
  msgstr ""
501
 
502
+ #: includes/class-mla-core-options.php:492
503
  msgid "Compute Attachments Column"
504
  msgstr ""
505
 
506
+ #: includes/class-mla-core-options.php:496
507
  msgid ""
508
  "Check this option to calculate attachments per term in the Attachments "
509
  "Column."
510
  msgstr ""
511
 
512
+ #: includes/class-mla-core-options.php:500
513
  msgid "Show Count Column"
514
  msgstr ""
515
 
516
+ #: includes/class-mla-core-options.php:504
517
  msgid "Check this option to display the Count column on taxonomy edit screens."
518
  msgstr ""
519
 
520
+ #: includes/class-mla-core-options.php:509
521
  msgid ""
522
  "Check the \"<strong>Support</strong>\" box to add the taxonomy to the "
523
  "Assistant and the Edit Media screen."
524
  msgstr ""
525
 
526
+ #: includes/class-mla-core-options.php:510
527
  msgid ""
528
  "Check the \"<strong>Inline Edit</strong>\" box to display the taxonomy in "
529
  "the Quick Edit and Bulk Edit areas."
530
  msgstr ""
531
 
532
+ #: includes/class-mla-core-options.php:511
533
  msgid ""
534
  "Check the \"<strong>Term Search</strong>\" box to add the taxonomy to the "
535
  "\"Search Media/Terms\" list."
536
  msgstr ""
537
 
538
+ #: includes/class-mla-core-options.php:512
539
+ #: includes/class-mla-core-options.php:750 includes/class-mla-settings.php:1095
540
+ #: includes/class-mla-settings.php:1096 includes/class-mla-settings.php:1097
541
  msgid "For complete documentation"
542
  msgstr ""
543
 
544
+ #: includes/class-mla-core-options.php:512
545
+ #: includes/class-mla-core-options.php:750 includes/class-mla-settings.php:1095
546
+ #: includes/class-mla-settings.php:1096 includes/class-mla-settings.php:1097
547
  msgid "click here"
548
  msgstr ""
549
 
550
+ #: includes/class-mla-core-options.php:514
551
  msgid ""
552
  "Check the \"<strong>Checklist</strong>\" box to enable the checklist-style "
553
  "meta box for a flat taxonomy."
554
  msgstr ""
555
 
556
+ #: includes/class-mla-core-options.php:515
557
  msgid ""
558
  "You must also check the <strong>\"Enable enhanced checklist taxonomies\"</"
559
  "strong> box below to enable this feature."
560
  msgstr ""
561
 
562
+ #: includes/class-mla-core-options.php:516
563
  msgid ""
564
  "Check the \"<strong>Checked On Top</strong>\" box to move checked terms to "
565
  "the top of the checklist-style meta box."
566
  msgstr ""
567
 
568
+ #: includes/class-mla-core-options.php:517
569
  msgid ""
570
  "Check the \"<strong>Inline Add Term</strong>\" box to support adding terms "
571
  "in the Quick Edit and Bulk Edit areas."
572
  msgstr ""
573
 
574
+ #: includes/class-mla-core-options.php:518
575
  msgid ""
576
  "Use the \"<strong>List Filter</strong>\" option to select the taxonomy (or "
577
  "custom field) on which to filter the Assistant table listing."
578
  msgstr ""
579
 
580
+ #: includes/class-mla-core-options.php:519
581
  msgid ""
582
  "To <strong>filter on a custom field</strong>, enter the field name and "
583
  "select ASC (Ascending) or DESC (Descending) order."
584
  msgstr ""
585
 
586
+ #: includes/class-mla-core-options.php:548
587
  msgid "Media/Assistant Screen Options"
588
  msgstr ""
589
 
590
+ #: includes/class-mla-core-options.php:553
591
  msgid "Admin Menu Options"
592
  msgstr ""
593
 
594
+ #: includes/class-mla-core-options.php:558
595
  msgid "Page Title"
596
  msgstr ""
597
 
598
+ #: includes/class-mla-core-options.php:563
599
  msgid "Enter the title for the Media/Assistant submenu page"
600
  msgstr ""
601
 
602
+ #: includes/class-mla-core-options.php:567
603
  msgid "Menu Title"
604
  msgstr ""
605
 
606
+ #: includes/class-mla-core-options.php:572
607
  msgid "Enter the title for the Media/Assistant submenu entry"
608
  msgstr ""
609
 
610
+ #: includes/class-mla-core-options.php:576
611
  msgid "Submenu Order"
612
  msgstr ""
613
 
614
+ #: includes/class-mla-core-options.php:581
615
  msgid ""
616
  "Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = "
617
  "natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;"
619
  "\""
620
  msgstr ""
621
 
622
+ #: includes/class-mla-core-options.php:585
623
  msgid "Display Media/Library"
624
  msgstr ""
625
 
626
+ #: includes/class-mla-core-options.php:589
627
  msgid ""
628
  "Check/uncheck this option to display/remove the WordPress Media/Library "
629
  "submenu entry."
630
  msgstr ""
631
 
632
+ #: includes/class-mla-core-options.php:593
633
  msgid "Display Media/Assistant list/grid view switcher"
634
  msgstr ""
635
 
636
+ #: includes/class-mla-core-options.php:597
637
  msgid ""
638
  "Check/uncheck this option to display/remove the \"list/grid\" view switcher "
639
  "on the Media/Assistant submenu."
640
  msgstr ""
641
 
642
+ #: includes/class-mla-core-options.php:601
643
  msgid "Table Defaults"
644
  msgstr ""
645
 
646
+ #: includes/class-mla-core-options.php:606
647
  msgid "Order By"
648
  msgstr ""
649
 
650
+ #: includes/class-mla-core-options.php:611
651
  msgid "ID/Parent"
652
  msgstr ""
653
 
654
+ #: includes/class-mla-core-options.php:612
655
  msgid "Select the column for the sort order of the Assistant table listing."
656
  msgstr ""
657
 
658
+ #: includes/class-mla-core-options.php:616
659
  msgid "Order"
660
  msgstr ""
661
 
662
+ #: includes/class-mla-core-options.php:621
663
  msgid "Ascending"
664
  msgstr ""
665
 
666
+ #: includes/class-mla-core-options.php:621
667
  msgid "Descending"
668
  msgstr ""
669
 
670
+ #: includes/class-mla-core-options.php:622
671
+ #: includes/class-mla-core-options.php:878
672
  msgid "Choose the sort order."
673
  msgstr ""
674
 
675
+ #: includes/class-mla-core-options.php:626 includes/class-mla-main.php:629
676
  msgid "Entries per page"
677
  msgstr ""
678
 
679
+ #: includes/class-mla-core-options.php:630
680
  msgid "Enter the number of Media/Assistant submenu table items per page."
681
  msgstr ""
682
 
683
+ #: includes/class-mla-core-options.php:639
684
  msgid "Views Width"
685
  msgstr ""
686
 
687
+ #: includes/class-mla-core-options.php:644
688
  msgid "Enter the width for the views list, in pixels (px) or percent (%)"
689
  msgstr ""
690
 
691
+ #: includes/class-mla-core-options.php:648
692
  msgid "Icon Size"
693
  msgstr ""
694
 
695
+ #: includes/class-mla-core-options.php:653
696
  msgid "Enter the size of the thumbnail/icon images, in pixels"
697
  msgstr ""
698
 
699
+ #: includes/class-mla-core-options.php:657
700
  msgid "Show Primary Column File Name"
701
  msgstr ""
702
 
703
+ #: includes/class-mla-core-options.php:661
704
  msgid ""
705
  "Check/uncheck this option to show/omit the file name from the primary column."
706
  msgstr ""
707
 
708
+ #: includes/class-mla-core-options.php:665
709
  msgid "QuickTags editor for bulk description"
710
  msgstr ""
711
 
712
+ #: includes/class-mla-core-options.php:669
713
  msgid ""
714
  "Check this option to use the QuickTags editor for the Description field in "
715
  "the Bulk Edit area."
716
  msgstr ""
717
 
718
+ #: includes/class-mla-core-options.php:673
719
  msgid "Bulk Chunk Size"
720
  msgstr ""
721
 
722
+ #: includes/class-mla-core-options.php:678
723
  msgid "Enter the size of the Bulk Edit and Map All processing chunks"
724
  msgstr ""
725
 
726
+ #: includes/class-mla-core-options.php:682
727
  msgid "Taxonomy Filter parameters"
728
  msgstr ""
729
 
730
+ #: includes/class-mla-core-options.php:687
731
  msgid "Maximum Depth"
732
  msgstr ""
733
 
734
+ #: includes/class-mla-core-options.php:692
735
  msgid ""
736
  "Enter the number of levels displayed for hierarchial taxonomies; enter zero "
737
  "for no limit."
738
  msgstr ""
739
 
740
+ #: includes/class-mla-core-options.php:696
741
  msgid "Include Children"
742
  msgstr ""
743
 
744
+ #: includes/class-mla-core-options.php:700
745
  msgid ""
746
  "Check/uncheck this option to include/exclude children for hierarchical "
747
  "taxonomies."
748
  msgstr ""
749
 
750
+ #: includes/class-mla-core-options.php:704
751
  msgid "Search Media Defaults"
752
  msgstr ""
753
 
754
+ #: includes/class-mla-core-options.php:709
755
  msgid "Display Search Controls"
756
  msgstr ""
757
 
758
+ #: includes/class-mla-core-options.php:713
759
+ #: includes/class-mla-core-options.php:839
760
  msgid ""
761
  "Check/uncheck this option to display/hide the and/or connector and search "
762
  "fields controls."
763
  msgstr ""
764
 
765
+ #: includes/class-mla-core-options.php:717
766
  msgid ""
767
  "Use these controls to set defaults for the and/or connector and search "
768
  "fields controls.<br>These defaults will be used for the Search Media boxes "
769
  "on both the Media/Assistant submenu<br>and the Media Manager Modal Window."
770
  msgstr ""
771
 
772
+ #: includes/class-mla-core-options.php:731
773
  msgid "Media/Edit Media Enhancements"
774
  msgstr ""
775
 
776
+ #: includes/class-mla-core-options.php:736
777
  msgid "Enable &quot;enhanced checklist&quot; taxonomies"
778
  msgstr ""
779
 
780
+ #: includes/class-mla-core-options.php:740
781
  msgid ""
782
  "Check this option to enable the \"? Search\" feature for hierarchical "
783
  "taxonomies, e.g., Att. Categories.<br>&nbsp;&nbsp;This option also enables "
784
  "the \"checklist-style\" support for flat taxonomies, e.g., Att. Tags."
785
  msgstr ""
786
 
787
+ #: includes/class-mla-core-options.php:744
788
  msgid "Enable Edit Media additional meta boxes"
789
  msgstr ""
790
 
791
+ #: includes/class-mla-core-options.php:748
792
  msgid ""
793
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
794
  "Metadata\" and four \"where-used\" meta boxes to the Edit Media screen."
795
  msgstr ""
796
 
797
+ #: includes/class-mla-core-options.php:749
798
  msgid "You can also use Filters to customize the meta boxes."
799
  msgstr ""
800
 
801
+ #: includes/class-mla-core-options.php:754
802
  msgid "Media/Add New Enhancements"
803
  msgstr ""
804
 
805
+ #: includes/class-mla-core-options.php:759
806
  msgid "Enable &quot;bulk edit&quot; area"
807
  msgstr ""
808
 
809
+ #: includes/class-mla-core-options.php:763
810
  msgid ""
811
  "Check this option to enable the \"Bulk Edit area\" feature on the Media/Add "
812
  "New screen."
813
  msgstr ""
814
 
815
+ #: includes/class-mla-core-options.php:767
816
  msgid "&quot;bulk edit&quot; area on top"
817
  msgstr ""
818
 
819
+ #: includes/class-mla-core-options.php:771
820
  msgid ""
821
  "Check this option to move the \"Bulk Edit area\" to the top of the Media/Add "
822
  "New screen."
823
  msgstr ""
824
 
825
+ #: includes/class-mla-core-options.php:775
826
  msgid "&quot;bulk edit&quot; area initially open"
827
  msgstr ""
828
 
829
+ #: includes/class-mla-core-options.php:778
830
  msgid ""
831
  "Check this option to automatically open the \"Bulk Edit area\" when the "
832
  "Media/Add New screen is displayed."
833
  msgstr ""
834
 
835
+ #: includes/class-mla-core-options.php:782
836
  msgid "Media Manager/Media Grid Enhancements"
837
  msgstr ""
838
 
839
+ #: includes/class-mla-core-options.php:787
840
  msgid "Enable Media Grid Enhancements"
841
  msgstr ""
842
 
843
+ #: includes/class-mla-core-options.php:790
844
  msgid ""
845
  "Check/uncheck this option to enable/disable Media Library Grid View "
846
  "Enhancements."
847
  msgstr ""
848
 
849
+ #: includes/class-mla-core-options.php:794
850
  msgid "Enable Media Manager Enhancements"
851
  msgstr ""
852
 
853
+ #: includes/class-mla-core-options.php:797
854
  msgid ""
855
  "Check/uncheck this option to enable/disable Media Manager Modal Window "
856
  "Enhancements."
857
  msgstr ""
858
 
859
+ #: includes/class-mla-core-options.php:801
860
  msgid "Media Manager Enhanced MIME Type filter"
861
  msgstr ""
862
 
863
+ #: includes/class-mla-core-options.php:804
864
  msgid ""
865
  "Check this option to filter by more MIME Types, e.g., text, applications."
866
  msgstr ""
867
 
868
+ #: includes/class-mla-core-options.php:808
869
  msgid "Media Manager Month and Year filter"
870
  msgstr ""
871
 
872
+ #: includes/class-mla-core-options.php:811
873
  msgid "Check this option to filter by month and year uploaded."
874
  msgstr ""
875
 
876
+ #: includes/class-mla-core-options.php:815
877
  msgid "Media Manager Category/Tag filter"
878
  msgstr ""
879
 
880
+ #: includes/class-mla-core-options.php:818
881
  msgid "Check this option to filter by taxonomy terms."
882
  msgstr ""
883
 
884
+ #: includes/class-mla-core-options.php:822
885
  msgid "Media Manager Terms Search popup"
886
  msgstr ""
887
 
888
+ #: includes/class-mla-core-options.php:825
889
  msgid "Check this option to enable the \"Terms Search\" popup window."
890
  msgstr ""
891
 
892
+ #: includes/class-mla-core-options.php:829
893
  msgid "Media Manager Enhanced Search Media box"
894
  msgstr ""
895
 
896
+ #: includes/class-mla-core-options.php:832
897
  msgid "Check this option to enable search box enhancements."
898
  msgstr ""
899
 
900
+ #: includes/class-mla-core-options.php:836
901
  msgid "Media Manager Enhanced Search Media Controls"
902
  msgstr ""
903
 
904
+ #: includes/class-mla-core-options.php:843
905
  msgid "Media Manager Checklist meta boxes"
906
  msgstr ""
907
 
908
+ #: includes/class-mla-core-options.php:846
909
  msgid ""
910
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
911
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for any taxonomy that uses a "
912
  "<strong>\"checklist-style\"</strong> meta box."
913
  msgstr ""
914
 
915
+ #: includes/class-mla-core-options.php:850
916
  msgid "Media Manager Flat meta boxes"
917
  msgstr ""
918
 
919
+ #: includes/class-mla-core-options.php:853
920
  msgid ""
921
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
922
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for <strong>flat taxonomies</"
924
  "style\" meta box."
925
  msgstr ""
926
 
927
+ #: includes/class-mla-core-options.php:857
928
  msgid "Media Manager auto-fill meta boxes"
929
  msgstr ""
930
 
931
+ #: includes/class-mla-core-options.php:860
932
  msgid ""
933
  "Check this option to automatically fill MLA-enhanced meta boxes in the "
934
  "\"ATTACHMENT DETAILS\" pane<br>&nbsp;&nbsp;when the item is selected."
935
  msgstr ""
936
 
937
+ #: includes/class-mla-core-options.php:864
938
  msgid "Media Manager Order By"
939
  msgstr ""
940
 
941
+ #: includes/class-mla-core-options.php:868
942
+ #: includes/class-mla-core-options.php:877
943
+ #: includes/class-mla-core-options.php:899
944
+ #: includes/class-mla-core-options.php:913
945
+ #: includes/class-mla-core-options.php:927 includes/class-mla-settings.php:1146
946
  msgid "Media Manager Default"
947
  msgstr ""
948
 
949
+ #: includes/class-mla-core-options.php:868
950
  msgid "Title/Name"
951
  msgstr ""
952
 
953
+ #: includes/class-mla-core-options.php:869
954
  msgid ""
955
  "If you want to override the Media Manager default,<br>&nbsp;&nbsp;select a "
956
  "column for the sort order of the Media Library listing."
957
  msgstr ""
958
 
959
+ #: includes/class-mla-core-options.php:873
960
  msgid "Media Manager Order"
961
  msgstr ""
962
 
963
+ #: includes/class-mla-core-options.php:882
964
  msgid "Attachment Display Settings"
965
  msgstr ""
966
 
967
+ #: includes/class-mla-core-options.php:887
968
  msgid "Media Manager Apply Display Settings"
969
  msgstr ""
970
 
971
+ #: includes/class-mla-core-options.php:890
972
  msgid ""
973
  "Check this option to always start with the Attachment Display Settings set "
974
  "here,<br>&nbsp;&nbsp;overriding browser-/cookie-based defaults."
975
  msgstr ""
976
 
977
+ #: includes/class-mla-core-options.php:894
978
+ #: includes/class-mla-core-options.php:896
979
  msgid "Alignment"
980
  msgstr ""
981
 
982
+ #: includes/class-mla-core-options.php:896
983
+ #: includes/class-mla-core-options.php:910
984
+ #: includes/class-mla-core-options.php:924
985
  #, php-format
986
  msgid ""
987
  "Select a value for the default %1$s option in the Attachment Display "
988
  "Settings."
989
  msgstr ""
990
 
991
+ #: includes/class-mla-core-options.php:899
992
  msgid "Left"
993
  msgstr ""
994
 
995
+ #: includes/class-mla-core-options.php:899
996
  msgid "Center"
997
  msgstr ""
998
 
999
+ #: includes/class-mla-core-options.php:899
1000
  msgid "Right"
1001
  msgstr ""
1002
 
1003
+ #: includes/class-mla-core-options.php:908
1004
+ #: includes/class-mla-core-options.php:910
1005
  msgid "Link To"
1006
  msgstr ""
1007
 
1008
+ #: includes/class-mla-core-options.php:913
1009
  msgid "Media File"
1010
  msgstr ""
1011
 
1012
+ #: includes/class-mla-core-options.php:913
1013
  msgid "Attachment Page"
1014
  msgstr ""
1015
 
1016
+ #: includes/class-mla-core-options.php:913
1017
  msgid "Custom URL"
1018
  msgstr ""
1019
 
1020
+ #: includes/class-mla-core-options.php:922
1021
+ #: includes/class-mla-core-options.php:924
1022
  msgid "Size"
1023
  msgstr ""
1024
 
1025
+ #: includes/class-mla-core-options.php:927
1026
  #: includes/class-mla-thumbnail-generation.php:588
1027
  #: includes/class-mla-thumbnail-generation.php:652
1028
  msgid "Thumbnail"
1029
  msgstr ""
1030
 
1031
+ #: includes/class-mla-core-options.php:927
1032
  msgid "Medium"
1033
  msgstr ""
1034
 
1035
+ #: includes/class-mla-core-options.php:927
1036
  msgid "Large"
1037
  msgstr ""
1038
 
1039
+ #: includes/class-mla-core-options.php:927
1040
  msgid "Full Size"
1041
  msgstr ""
1042
 
1043
+ #: includes/class-mla-core-options.php:936
1044
  msgid "Uninstall (Delete) Plugin Settings"
1045
  msgstr ""
1046
 
1047
+ #: includes/class-mla-core-options.php:941
1048
  msgid "Delete Option Settings"
1049
  msgstr ""
1050
 
1051
+ #: includes/class-mla-core-options.php:944
1052
  msgid ""
1053
  "Check this option to remove all MLA option settings from the database when "
1054
  "the plugin is deleted.<br>&nbsp;&nbsp;<strong>You can make a backup copy</"
1055
  "strong> of your settings below by clicking \""
1056
  msgstr ""
1057
 
1058
+ #: includes/class-mla-core-options.php:944 includes/class-mla-settings.php:1071
1059
  msgid "Export ALL Settings"
1060
  msgstr ""
1061
 
1062
+ #: includes/class-mla-core-options.php:948
1063
  msgid "Delete Option Settings Backups"
1064
  msgstr ""
1065
 
1066
+ #: includes/class-mla-core-options.php:951
1067
  msgid ""
1068
  "Check this option to remove the <code>/wp-content/mla-backup</code> "
1069
  "directory and its contents when the plugin is deleted."
1070
  msgstr ""
1071
 
1072
+ #: includes/class-mla-core-options.php:955
1073
  msgid "Default [mla_gallery] Templates and Settings"
1074
  msgstr ""
1075
 
1076
+ #: includes/class-mla-core-options.php:960
1077
+ #: includes/class-mla-core-options.php:966
1078
+ #: includes/class-mla-core-options.php:1004
1079
+ #: includes/class-mla-core-options.php:1010
1080
  msgid "Style Template"
1081
  msgstr ""
1082
 
1083
+ #: includes/class-mla-core-options.php:966
1084
+ #: includes/class-mla-core-options.php:976
1085
+ #: includes/class-mla-core-options.php:1010
1086
+ #: includes/class-mla-core-options.php:1020
1087
  #, php-format
1088
  msgid "Select the default %1$s for your %2$s shortcodes."
1089
  msgstr ""
1090
 
1091
+ #: includes/class-mla-core-options.php:970
1092
+ #: includes/class-mla-core-options.php:1014
1093
  msgid "Markup Template"
1094
  msgstr ""
1095
 
1096
+ #: includes/class-mla-core-options.php:976
1097
+ #: includes/class-mla-core-options.php:1020
1098
  #: includes/class-mla-settings-shortcodes-tab.php:85
1099
  msgid "markup template"
1100
  msgstr ""
1101
 
1102
+ #: includes/class-mla-core-options.php:980
1103
+ #: includes/class-mla-core-options.php:1024
1104
  msgid "Default columns"
1105
  msgstr ""
1106
 
1107
+ #: includes/class-mla-core-options.php:984
1108
  msgid ""
1109
  "Enter the number of [mla_tag_cloud] columns; must be a positive integer."
1110
  msgstr ""
1111
 
1112
+ #: includes/class-mla-core-options.php:988
1113
+ #: includes/class-mla-core-options.php:1032
1114
  msgid "Default mla_margin"
1115
  msgstr ""
1116
 
1117
+ #: includes/class-mla-core-options.php:992
1118
+ #: includes/class-mla-core-options.php:1036
1119
  msgid ""
1120
  "Enter the CSS \"margin\" property value, in length (px, em, pt, etc.), "
1121
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"none\" to "
1122
  "remove the property entirely."
1123
  msgstr ""
1124
 
1125
+ #: includes/class-mla-core-options.php:996
1126
+ #: includes/class-mla-core-options.php:1040
1127
  msgid "Default mla_itemwidth"
1128
  msgstr ""
1129
 
1130
+ #: includes/class-mla-core-options.php:1000
1131
+ #: includes/class-mla-core-options.php:1044
1132
  msgid ""
1133
  "Enter the CSS \"width\" property value, in length (px, em, pt, etc.), "
1134
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"calculate"
1138
  "the property entirely."
1139
  msgstr ""
1140
 
1141
+ #: includes/class-mla-core-options.php:1028
1142
  msgid "Enter the number of [mla_gallery] columns; must be a positive integer."
1143
  msgstr ""
1144
 
1145
+ #: includes/class-mla-core-options.php:1048
1146
  msgid "Thumbnail Substitution Support, mla_viewer"
1147
  msgstr ""
1148
 
1149
+ #: includes/class-mla-core-options.php:1053
1150
  msgid "Enable thumbnail substitution"
1151
  msgstr ""
1152
 
1153
+ #: includes/class-mla-core-options.php:1056
1154
  msgid ""
1155
  "Check this option to allow the \"mla_viewer\" to generate thumbnail images "
1156
  "for PDF documents. Thumbnails are generated dynamically, each time the item "
1159
  "strong>"
1160
  msgstr ""
1161
 
1162
+ #: includes/class-mla-core-options.php:1060
1163
  msgid "Enable Featured Images"
1164
  msgstr ""
1165
 
1166
+ #: includes/class-mla-core-options.php:1063
1167
  msgid ""
1168
  "Check this option to extend Featured Image support to all Media Library "
1169
  "items. The Featured Image can be used as a thumbnail image for the item in "
1170
  "an [mla_gallery] display."
1171
  msgstr ""
1172
 
1173
+ #: includes/class-mla-core-options.php:1067
1174
  msgid "Enable Featured Image Generation"
1175
  msgstr ""
1176
 
1177
+ #: includes/class-mla-core-options.php:1070
1178
  msgid ""
1179
  "Check this option to enable the \"Thumbnail\" generation action in the Media/"
1180
  "Assistant submenu Bulk Actions dropdown."
1181
  msgstr ""
1182
 
1183
+ #: includes/class-mla-core-options.php:1074
1184
  msgid "Enable explicit Ghostscript check"
1185
  msgstr ""
1186
 
1187
+ #: includes/class-mla-core-options.php:1077
1188
  msgid ""
1189
  "Check this option to enable the explicit check for Ghostscript support "
1190
  "required for thumbnail generation. If your Ghostscript software is in a non-"
1193
  "leave this option checked unless you know it is safe to turn it off."
1194
  msgstr ""
1195
 
1196
+ #: includes/class-mla-core-options.php:1081
1197
  msgid "Ghostscript path"
1198
  msgstr ""
1199
 
1200
+ #: includes/class-mla-core-options.php:1085
1201
  msgid ""
1202
  "If your &ldquo;gs&rdquo; executable is in a non-standard location, enter the "
1203
  "full path and filename here, e.g., &ldquo;/usr/bin/gs&rdquo;. It will "
1204
  "override the search for Ghostscript in other places."
1205
  msgstr ""
1206
 
1207
+ #: includes/class-mla-core-options.php:1105
1208
  msgid "Enable custom field mapping"
1209
  msgstr ""
1210
 
1211
+ #: includes/class-mla-core-options.php:1108
1212
+ #: includes/class-mla-core-options.php:1115
1213
+ #: includes/class-mla-core-options.php:1122
1214
+ #: includes/class-mla-core-options.php:1139
1215
  msgid "See Help menu."
1216
  msgstr ""
1217
 
1218
+ #: includes/class-mla-core-options.php:1112
1219
  msgid "Enable custom field mapping when adding new media"
1220
  msgstr ""
1221
 
1222
+ #: includes/class-mla-core-options.php:1119
1223
  msgid "Enable custom field mapping when updating media metadata"
1224
  msgstr ""
1225
 
1226
+ #: includes/class-mla-core-options.php:1126
1227
  msgid ""
1228
  "Update the custom field mapping values above, then click Save Changes to "
1229
  "make the updates permanent.<br>You can also make temporary updates and click "
1231
  "saving any rule changes."
1232
  msgstr ""
1233
 
1234
+ #: includes/class-mla-core-options.php:1136
1235
  msgid "Enable IPTC/EXIF Mapping"
1236
  msgstr ""
1237
 
1238
+ #: includes/class-mla-core-options.php:1143
1239
  msgid "Enable IPTC/EXIF Mapping when adding new media"
1240
  msgstr ""
1241
 
1242
+ #: includes/class-mla-core-options.php:1146
1243
  msgid ""
1244
  "Check this option to enable mapping when uploading new media (attachments)."
1245
  "<br>&nbsp;&nbsp;Does NOT affect the operation of the \"Map\" buttons on the "
1246
  "bulk edit, single edit and settings screens."
1247
  msgstr ""
1248
 
1249
+ #: includes/class-mla-core-options.php:1150
1250
  msgid "Enable IPTC/EXIF Mapping when updating media metadata"
1251
  msgstr ""
1252
 
1253
+ #: includes/class-mla-core-options.php:1153
1254
  msgid ""
1255
  "Check this option to enable mapping when media (attachments) metadata is "
1256
  "regenerated,<br>&nbsp;&nbsp;e.g., when the Media/Edit Media \"Edit Image\" "
1257
  "functions are used."
1258
  msgstr ""
1259
 
1260
+ #: includes/class-mla-core-options.php:1157
1261
  msgid ""
1262
  "Update the standard field mapping values above, then click <strong>Save "
1263
  "Changes</strong> to make the updates permanent.<br>You can also make "
1266
  "changes."
1267
  msgstr ""
1268
 
1269
+ #: includes/class-mla-core-options.php:1167
1270
  msgid ""
1271
  "Update the taxonomy term mapping values above, then click <strong>Save "
1272
  "Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>."
1273
  msgstr ""
1274
 
1275
+ #: includes/class-mla-core-options.php:1177
1276
  msgid ""
1277
  "<strong>Update</strong> individual custom field mapping values above, or "
1278
  "make several updates and click <strong>Save Changes</strong> below to apply "
1283
  "changes."
1284
  msgstr ""
1285
 
1286
+ #: includes/class-mla-core-options.php:1187
1287
  msgid "IPTC/EXIF Mapping help"
1288
  msgstr ""
1289
 
1290
+ #: includes/class-mla-core-options.php:1198 includes/class-mla-data.php:4305
1291
+ #: includes/class-mla-edit-media.php:479 includes/class-mla-main.php:2362
1292
  msgid "Name/Slug"
1293
  msgstr ""
1294
 
1295
+ #: includes/class-mla-core-options.php:1205 includes/class-mla-data.php:4348
1296
+ #: includes/class-mla-edit-media.php:482 includes/class-mla-list-table.php:1393
1297
+ #: includes/class-mla-main.php:2366 includes/class-mla-options.php:472
1298
  #: includes/mla-main-search-box-template.php:51
1299
  #: includes/mla-media-modal-js-template.php:65
1300
  msgid "ALT Text"
1301
  msgstr ""
1302
 
1303
+ #: includes/class-mla-core-options.php:1212 includes/class-mla-data.php:4361
1304
+ #: includes/class-mla-edit-media.php:480 includes/class-mla-main.php:2363
1305
  #: includes/class-mla-options.php:475
1306
  #: includes/mla-main-search-box-template.php:53
1307
  #: includes/mla-media-modal-js-template.php:70
1308
  msgid "Caption"
1309
  msgstr ""
1310
 
1311
+ #: includes/class-mla-core-options.php:1219 includes/class-mla-data.php:4370
1312
+ #: includes/class-mla-edit-media.php:481 includes/class-mla-main.php:2364
1313
  #: includes/class-mla-options.php:478
1314
  #: includes/class-mla-settings-upload-tab.php:174
1315
  #: includes/class-mla-settings-upload-tab.php:538
1326
  msgid "Description"
1327
  msgstr ""
1328
 
1329
+ #: includes/class-mla-core-options.php:1226 includes/class-mla-data.php:4432
1330
+ #: includes/class-mla-data.php:4441 includes/class-mla-edit-media.php:483
1331
+ #: includes/class-mla-edit-media.php:678 includes/class-mla-main.php:2368
1332
  msgid "Uploaded on"
1333
  msgstr ""
1334
 
1335
+ #: includes/class-mla-core-options.php:1246
1336
  msgid "Enable View and Post MIME Type Support"
1337
  msgstr ""
1338
 
1339
+ #: includes/class-mla-core-options.php:1249
1340
  msgid ""
1341
  "Check/uncheck this option to enable/disable Post MIME Type Support, then "
1342
  "click <strong>Save Changes</strong> to record the new setting."
1343
  msgstr ""
1344
 
1345
+ #: includes/class-mla-core-options.php:1258
1346
  msgid "Post MIME Types help."
1347
  msgstr ""
1348
 
1349
+ #: includes/class-mla-core-options.php:1261
1350
+ #: includes/class-mla-mime-types.php:1706
1351
  #: includes/class-mla-settings-custom-fields-tab.php:2460
1352
  #: includes/class-mla-settings-documentation-tab.php:1571
1353
+ #: includes/class-mla-settings-iptc-exif-tab.php:2749
1354
  #: includes/class-mla-settings-shortcodes-tab.php:1973
1355
  msgctxt "table_view_singular"
1356
  msgid "All"
1357
  msgstr ""
1358
 
1359
+ #: includes/class-mla-core-options.php:1262
1360
+ #: includes/class-mla-mime-types.php:1707
1361
  #: includes/class-mla-settings-custom-fields-tab.php:2461
1362
  #: includes/class-mla-settings-documentation-tab.php:1572
1363
+ #: includes/class-mla-settings-iptc-exif-tab.php:2750
1364
  #: includes/class-mla-settings-shortcodes-tab.php:1974
1365
  msgctxt "table_view_plural"
1366
  msgid "All"
1367
  msgstr ""
1368
 
1369
+ #: includes/class-mla-core-options.php:1267
1370
+ #: includes/class-mla-core-options.php:1321
1371
+ #: includes/class-mla-core-options.php:1330
1372
+ #: includes/class-mla-core-options.php:1339
1373
  msgctxt "post_mime_types_description"
1374
  msgid "Built-in view"
1375
  msgstr ""
1376
 
1377
+ #: includes/class-mla-core-options.php:1270
1378
  msgctxt "table_view_singular"
1379
  msgid "Image"
1380
  msgstr ""
1381
 
1382
+ #: includes/class-mla-core-options.php:1271
1383
  msgctxt "table_view_plural"
1384
  msgid "Images"
1385
  msgstr ""
1386
 
1387
+ #: includes/class-mla-core-options.php:1276
1388
  msgctxt "post_mime_types_description"
1389
  msgid "All image subtypes"
1390
  msgstr ""
1391
 
1392
+ #: includes/class-mla-core-options.php:1279
1393
  msgctxt "table_view_singular"
1394
  msgid "Audio"
1395
  msgstr ""
1396
 
1397
+ #: includes/class-mla-core-options.php:1280
1398
  msgctxt "table_view_plural"
1399
  msgid "Audio"
1400
  msgstr ""
1401
 
1402
+ #: includes/class-mla-core-options.php:1285
1403
  msgctxt "post_mime_types_description"
1404
  msgid "All audio subtypes"
1405
  msgstr ""
1406
 
1407
+ #: includes/class-mla-core-options.php:1288
1408
  msgctxt "table_view_singular"
1409
  msgid "Video"
1410
  msgstr ""
1411
 
1412
+ #: includes/class-mla-core-options.php:1289
1413
  msgctxt "table_view_plural"
1414
  msgid "Video"
1415
  msgstr ""
1416
 
1417
+ #: includes/class-mla-core-options.php:1294
1418
  msgctxt "post_mime_types_description"
1419
  msgid "All video subtypes"
1420
  msgstr ""
1421
 
1422
+ #: includes/class-mla-core-options.php:1297
1423
  msgctxt "table_view_singular"
1424
  msgid "Text"
1425
  msgstr ""
1426
 
1427
+ #: includes/class-mla-core-options.php:1298
1428
  msgctxt "table_view_plural"
1429
  msgid "Text"
1430
  msgstr ""
1431
 
1432
+ #: includes/class-mla-core-options.php:1303
1433
  msgctxt "post_mime_types_description"
1434
  msgid "All text subtypes"
1435
  msgstr ""
1436
 
1437
+ #: includes/class-mla-core-options.php:1306
1438
  msgctxt "table_view_singular"
1439
  msgid "Application"
1440
  msgstr ""
1441
 
1442
+ #: includes/class-mla-core-options.php:1307
1443
  msgctxt "table_view_plural"
1444
  msgid "Applications"
1445
  msgstr ""
1446
 
1447
+ #: includes/class-mla-core-options.php:1312
1448
  msgctxt "post_mime_types_description"
1449
  msgid "All application subtypes"
1450
  msgstr ""
1451
 
1452
+ #: includes/class-mla-core-options.php:1316
1453
  msgctxt "table_view_plural"
1454
  msgid "Unattached"
1455
  msgstr ""
1456
 
1457
+ #: includes/class-mla-core-options.php:1324
1458
  msgctxt "table_view_singular"
1459
  msgid "Attached"
1460
  msgstr ""
1461
 
1462
+ #: includes/class-mla-core-options.php:1325
1463
  msgctxt "table_view_plural"
1464
  msgid "Attached"
1465
  msgstr ""
1466
 
1467
+ #: includes/class-mla-core-options.php:1333
1468
  msgctxt "table_view_singular"
1469
  msgid "Trash"
1470
  msgstr ""
1471
 
1472
+ #: includes/class-mla-core-options.php:1334
1473
  msgctxt "table_view_plural"
1474
  msgid "Trash"
1475
  msgstr ""
1476
 
1477
+ #: includes/class-mla-core-options.php:1345
1478
  msgid "Enable Upload MIME Type Support"
1479
  msgstr ""
1480
 
1481
+ #: includes/class-mla-core-options.php:1348
1482
  msgid ""
1483
  "Check/uncheck this option to enable/disable Upload MIME Type Support, then "
1484
  "click <strong>Save Changes</strong> to record the new setting."
1485
  msgstr ""
1486
 
1487
+ #: includes/class-mla-core-options.php:1357
1488
  msgid "Upload MIME Types help."
1489
  msgstr ""
1490
 
1491
+ #: includes/class-mla-core-options.php:1362
1492
  msgid "Enable MLA File Type Icons Support"
1493
  msgstr ""
1494
 
1495
+ #: includes/class-mla-core-options.php:1365
1496
  msgid ""
1497
  "Check/uncheck this option to enable/disable MLA File Type Icons Support, "
1498
  "then click <strong>Save Changes</strong> to record the new setting."
1499
  msgstr ""
1500
 
1501
+ #: includes/class-mla-core-options.php:1369
1502
+ msgid "Always Use MLA MIME Type"
1503
+ msgstr ""
1504
+
1505
+ #: includes/class-mla-core-options.php:1372
1506
+ msgid ""
1507
+ "Check this option to override WordPress MIME Type security checks, then "
1508
+ "click <strong>Save Changes</strong> to record the new setting."
1509
+ msgstr ""
1510
+
1511
+ #: includes/class-mla-core-options.php:1376
1512
  msgid "Display Limit"
1513
  msgstr ""
1514
 
1515
+ #: includes/class-mla-core-options.php:1380
1516
  msgid ""
1517
  "Enter the maximum number of debug log characters to display; enter zero or "
1518
  "leave blank for no limit."
1519
  msgstr ""
1520
 
1521
+ #: includes/class-mla-core-options.php:1384
1522
  msgid "Debug File"
1523
  msgstr ""
1524
 
1525
+ #: includes/class-mla-core-options.php:1388
1526
  msgid ""
1527
  "Enter the name of an alternate, MLA-specific debug log file; leave blank to "
1528
  "use the PHP error_log.<br>&nbsp;&nbsp;The WP_CONTENT_DIR value (below) will "
1530
  "\"."
1531
  msgstr ""
1532
 
1533
+ #: includes/class-mla-core-options.php:1392
1534
  msgid "Replace PHP error_log file"
1535
  msgstr ""
1536
 
1537
+ #: includes/class-mla-core-options.php:1395
1538
  msgid ""
1539
  "Check this option to replace the PHP error_log file with the MLA Debug File."
1540
  "<br>&nbsp;&nbsp;allows capture of PHP messages in the MLA Debug File."
1541
  msgstr ""
1542
 
1543
+ #: includes/class-mla-core-options.php:1399
1544
  msgid "PHP Reporting"
1545
  msgstr ""
1546
 
1547
+ #: includes/class-mla-core-options.php:1403
1548
  msgid ""
1549
  "Enter a numeric error_reporting value, e.g., 0x7FFF or 32767; leave blank to "
1550
  "use the existing PHP error_reporting value."
1551
  msgstr ""
1552
 
1553
+ #: includes/class-mla-core-options.php:1407
1554
  msgid "MLA Reporting"
1555
  msgstr ""
1556
 
1557
+ #: includes/class-mla-core-options.php:1411
1558
  msgid ""
1559
  "Enter a numeric MLA_DEBUG_LEVEL value, e.g., 0x0003 or 3; leave blank to use "
1560
  "the existing MLA_DEBUG_LEVEL value."
1561
  msgstr ""
1562
 
1563
+ #: includes/class-mla-core.php:863
1564
  #, php-format
1565
  msgctxt "error_log"
1566
  msgid "%1$s: mla_load_template file \"%2$s\" not found."
1567
  msgstr ""
1568
 
1569
+ #: includes/class-mla-core.php:881
1570
  #, php-format
1571
  msgctxt "error_log"
1572
  msgid "%1$s: mla_load_template file \"%2$s\" bad source type \"%3$s\"."
1573
  msgstr ""
1574
 
1575
+ #: includes/class-mla-core.php:1306
1576
  #, php-format
1577
  msgid "%1$s: Bad specification part \"%2$s\""
1578
  msgstr ""
1579
 
1580
+ #: includes/class-mla-core.php:1312
1581
  #, php-format
1582
  msgid "%1$s: Bad specification option \"%2$s\""
1583
  msgstr ""
1584
 
1585
+ #: includes/class-mla-core.php:1316
1586
  #, php-format
1587
  msgid "%1$s: Bad specification prefix \"%2$s\""
1588
  msgstr ""
1589
 
1590
+ #: includes/class-mla-core.php:1416
1591
  msgid "Most Used"
1592
  msgstr ""
1593
 
1594
+ #: includes/class-mla-core.php:1445
1595
  #, php-format
1596
  msgid "+ %s"
1597
  msgstr ""
1598
 
1599
+ #: includes/class-mla-core.php:1451 includes/class-mla-edit-media.php:360
1600
+ #: includes/class-mla-edit-media.php:416 includes/class-mla-main.php:2048
1601
+ #: includes/class-mla-main.php:2229 includes/class-mla-main.php:2293
1602
  #: includes/class-mla-media-modal.php:647
1603
  #: includes/mla-media-modal-js-template.php:45
1604
  #: includes/mla-media-modal-js-template.php:92
1680
  #: includes/class-mla-data-query.php:294
1681
  #: includes/class-mla-settings-custom-fields-tab.php:1208
1682
  #: includes/class-mla-settings-documentation-tab.php:522
1683
+ #: includes/class-mla-settings-iptc-exif-tab.php:1302
1684
  #: includes/class-mla-settings-shortcodes-tab.php:956
1685
  msgctxt "list_table_column"
1686
  msgid "Name"
1726
  msgid "Caption"
1727
  msgstr ""
1728
 
1729
+ #: includes/class-mla-data-query.php:303 includes/class-mla-mime-types.php:635
1730
+ #: includes/class-mla-mime-types.php:708 includes/class-mla-mime-types.php:787
1731
  #: includes/class-mla-settings-documentation-tab.php:525
1732
  #: includes/class-mla-settings-shortcodes-tab.php:959
1733
  msgctxt "list_table_column"
1734
  msgid "Description"
1735
  msgstr ""
1736
 
1737
+ #: includes/class-mla-data-query.php:304 includes/class-mla-mime-types.php:627
1738
+ #: includes/class-mla-mime-types.php:705
1739
  msgctxt "list_table_column"
1740
  msgid "MIME Type"
1741
  msgstr ""
1771
  msgstr ""
1772
 
1773
  #: includes/class-mla-data-query.php:843 includes/class-mla-edit-media.php:319
1774
+ #: includes/class-mla-main.php:2042 includes/class-mla-main.php:2168
1775
+ #: includes/class-mla-media-modal.php:617 includes/class-mla-mime-types.php:825
1776
+ #: includes/class-mla-mime-types.php:1474
1777
+ #: includes/class-mla-mime-types.php:2664
1778
  #: includes/class-mla-settings-custom-fields-tab.php:552
1779
  #: includes/class-mla-settings-custom-fields-tab.php:718
1780
  #: includes/class-mla-settings-custom-fields-tab.php:2034
1781
  #: includes/class-mla-settings-documentation-tab.php:323
1782
  #: includes/class-mla-settings-documentation-tab.php:1301
1783
+ #: includes/class-mla-settings-iptc-exif-tab.php:643
1784
+ #: includes/class-mla-settings-iptc-exif-tab.php:811
1785
+ #: includes/class-mla-settings-iptc-exif-tab.php:2286
1786
  #: includes/class-mla-settings-shortcodes-tab.php:503
1787
  #: includes/class-mla-settings-shortcodes-tab.php:1630
1788
  #: includes/class-mla-settings-upload-tab.php:301
1798
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1799
  msgstr ""
1800
 
 
 
 
 
 
 
 
 
 
 
 
 
1801
  #: includes/class-mla-data-query.php:1348
1802
  #, php-format
1803
  msgctxt "error_log"
1816
  msgid "%1$s: mla_query_posts_search_filter = \"%2$s\"."
1817
  msgstr ""
1818
 
1819
+ #: includes/class-mla-data-query.php:1948
1820
  #, php-format
1821
  msgctxt "error_log"
1822
  msgid "%1$s: mla_query_posts_where_filter = \"%2$s\"."
1823
  msgstr ""
1824
 
1825
+ #: includes/class-mla-data-query.php:2020
1826
  #, php-format
1827
  msgctxt "error_log"
1828
  msgid "%1$s: mla_query_posts_join_filter = \"%2$s\"."
1829
  msgstr ""
1830
 
1831
+ #: includes/class-mla-data-query.php:2117
1832
  #, php-format
1833
  msgctxt "error_log"
1834
  msgid "%1$s: mla_query_posts_orderby_filter = \"%2$s\"."
1835
  msgstr ""
1836
 
1837
+ #: includes/class-mla-data-query.php:2209
1838
  #, php-format
1839
  msgctxt "error_log"
1840
  msgid "%1$s: mla_query_posts_clauses_filter = \"%2$s\"."
1841
  msgstr ""
1842
 
1843
+ #: includes/class-mla-data-query.php:2228
1844
  #, php-format
1845
  msgctxt "error_log"
1846
  msgid "%1$s: mla_query_posts_clauses_request_filter = \"%2$s\"."
1894
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1895
  msgstr ""
1896
 
1897
+ #: includes/class-mla-data.php:254
1898
+ #, php-format
1899
+ msgctxt "error_log"
1900
+ msgid "%1$s: _find_parameter no end delimiter, tail = \"%2$s\"."
1901
+ msgstr ""
1902
+
1903
+ #: includes/class-mla-data.php:322
1904
  #, php-format
1905
  msgctxt "error_log"
1906
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
1907
  msgstr ""
1908
 
1909
+ #: includes/class-mla-data.php:411
1910
  msgid "Test; no closing parenthesis "
1911
  msgstr ""
1912
 
1913
+ #: includes/class-mla-data.php:563
1914
  #, php-format
1915
  msgctxt "error_log"
1916
  msgid "%1$s: _evaluate_template_array_node unknown type \"%2$s\"."
1917
  msgstr ""
1918
 
1919
+ #: includes/class-mla-data.php:626
1920
  #, php-format
1921
  msgctxt "error_log"
1922
  msgid "%1$s: _evaluate_template_node unknown type \"%2$s\"."
1923
  msgstr ""
1924
 
1925
+ #: includes/class-mla-data.php:1579
1926
  #, php-format
1927
  msgctxt "error_log"
1928
  msgid ""
1930
  "\"."
1931
  msgstr ""
1932
 
1933
+ #: includes/class-mla-data.php:1778
1934
  #, php-format
1935
  msgctxt "error_log"
1936
  msgid "%1$s: mla_get_attachment_by_id(%2$d) not found."
1937
  msgstr ""
1938
 
1939
+ #: includes/class-mla-data.php:1784
1940
  #, php-format
1941
  msgctxt "error_log"
1942
  msgid "%1$s: mla_get_attachment_by_id(%2$d) wrong post_type \"%3$s\"."
1943
  msgstr ""
1944
 
1945
+ #: includes/class-mla-data.php:2134
1946
  msgctxt "error_log"
1947
  msgid "mla_parse_xml_string xml_parse_into_struct failed."
1948
  msgstr ""
1949
 
1950
+ #: includes/class-mla-data.php:2138
1951
  msgctxt "error_log"
1952
  msgid "mla_parse_xml_string set option failed."
1953
  msgstr ""
1954
 
1955
+ #: includes/class-mla-data.php:3735
1956
  #: includes/class-mla-settings-custom-fields-tab.php:810
1957
  #: includes/class-mla-settings-custom-fields-tab.php:1520
1958
+ #: includes/class-mla-settings-iptc-exif-tab.php:905
1959
+ #: includes/class-mla-settings-iptc-exif-tab.php:1645
1960
+ #: includes/class-mla-settings-iptc-exif-tab.php:2460
1961
  #: includes/class-mla-settings-view-tab.php:398
1962
  #: includes/class-mla-settings-view-tab.php:796
1963
  #: includes/class-mla-settings-view-tab.php:812
1965
  msgid "Yes"
1966
  msgstr ""
1967
 
1968
+ #: includes/class-mla-data.php:3737
1969
  #: includes/class-mla-settings-custom-fields-tab.php:811
1970
  #: includes/class-mla-settings-custom-fields-tab.php:1522
1971
+ #: includes/class-mla-settings-iptc-exif-tab.php:906
1972
+ #: includes/class-mla-settings-iptc-exif-tab.php:1647
1973
+ #: includes/class-mla-settings-iptc-exif-tab.php:2460
1974
  #: includes/class-mla-settings-view-tab.php:397
1975
  #: includes/class-mla-settings-view-tab.php:798
1976
  #: includes/class-mla-settings-view-tab.php:814
1978
  msgid "No"
1979
  msgstr ""
1980
 
1981
+ #: includes/class-mla-data.php:3985 includes/class-mla-data.php:4102
1982
  #, php-format
1983
  msgid "Deleting %1$s"
1984
  msgstr ""
1985
 
1986
+ #: includes/class-mla-data.php:3988
1987
  #, php-format
1988
  msgid "%1$s: meta:%2$s not found"
1989
  msgstr ""
1990
 
1991
+ #: includes/class-mla-data.php:3997 includes/class-mla-data.php:4113
1992
+ #: includes/class-mla-data.php:4125
1993
  #, php-format
1994
  msgid "Adding %1$s = %2$s"
1995
  msgstr ""
1996
 
1997
+ #: includes/class-mla-data.php:4001
1998
  #, php-format
1999
  msgid "%1$s: Adding meta:%2$s; not found"
2000
  msgstr ""
2001
 
2002
+ #: includes/class-mla-data.php:4008
2003
  #, php-format
2004
  msgid "Deleting Null meta:%1$s"
2005
  msgstr ""
2006
 
2007
+ #: includes/class-mla-data.php:4018 includes/class-mla-data.php:4194
2008
+ #: includes/class-mla-data.php:4281 includes/class-mla-data.php:4305
2009
+ #: includes/class-mla-data.php:4348 includes/class-mla-data.php:4361
2010
+ #: includes/class-mla-data.php:4370 includes/class-mla-data.php:4381
2011
+ #: includes/class-mla-data.php:4392 includes/class-mla-data.php:4405
2012
+ #: includes/class-mla-data.php:4414 includes/class-mla-data.php:4423
2013
+ #: includes/class-mla-data.php:4432 includes/class-mla-data.php:4441
2014
+ #: includes/class-mla-mime-types.php:1308
2015
+ #: includes/class-mla-mime-types.php:2428
2016
  #, php-format
2017
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\""
2018
  msgstr ""
2019
 
2020
+ #: includes/class-mla-data.php:4023
2021
  #, php-format
2022
  msgid "%1$s: Changing meta:%2$s; not found"
2023
  msgstr ""
2024
 
2025
+ #: includes/class-mla-data.php:4149
2026
  #, php-format
2027
  msgid "Deleting old %1$s values"
2028
  msgstr ""
2029
 
2030
+ #: includes/class-mla-data.php:4179
2031
  #, php-format
2032
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\"; %4$d updates"
2033
  msgstr ""
2034
 
2035
+ #: includes/class-mla-data.php:4256
2036
  msgid "Could not retrieve Attachment."
2037
  msgstr ""
2038
 
2039
+ #: includes/class-mla-data.php:4302
2040
  #, php-format
2041
  msgid "%1$s: Could not change Name/Slug \"%2$s\"; name already exists"
2042
  msgstr ""
2043
 
2044
+ #: includes/class-mla-data.php:4332
2045
  #, php-format
2046
  msgid "Deleting ALT Text, was \"%1$s\""
2047
  msgstr ""
2048
 
2049
+ #: includes/class-mla-data.php:4335
2050
  #, php-format
2051
  msgid "%1$s: Could not delete ALT Text, remains \"%2$s\""
2052
  msgstr ""
2053
 
2054
+ #: includes/class-mla-data.php:4351
2055
  #, php-format
2056
  msgid "%1$s: Could not change ALT Text from \"%2$s\" to \"%3$s\""
2057
  msgstr ""
2058
 
2059
+ #: includes/class-mla-data.php:4381 includes/class-mla-list-table.php:1095
2060
+ #: includes/class-mla-list-table.php:1098
2061
+ #: includes/class-mla-list-table.php:1101
2062
+ #: includes/class-mla-list-table.php:1169 includes/class-mla-options.php:2139
2063
+ #: includes/class-mla-settings-iptc-exif-tab.php:488
2064
+ #: includes/class-mla-settings-iptc-exif-tab.php:875
2065
  msgid "Parent"
2066
  msgstr ""
2067
 
2068
+ #: includes/class-mla-data.php:4392 includes/class-mla-edit-media.php:817
2069
+ #: includes/class-mla-edit-media.php:1022 includes/class-mla-main.php:2371
2070
  #: includes/class-mla-settings-view-tab.php:130
2071
  #: includes/class-mla-settings-view-tab.php:386
2072
  msgid "Menu Order"
2073
  msgstr ""
2074
 
2075
+ #: includes/class-mla-data.php:4405 includes/class-mla-edit-media.php:447
2076
+ #: includes/class-mla-list-table.php:1549
2077
+ #: includes/class-mla-list-table.php:1552 includes/class-mla-main.php:2174
2078
+ #: includes/class-mla-main.php:2330
2079
  msgid "Author"
2080
  msgstr ""
2081
 
2082
+ #: includes/class-mla-data.php:4414 includes/class-mla-edit-media.php:472
2083
+ #: includes/class-mla-main.php:2383
2084
  msgid "Comments"
2085
  msgstr ""
2086
 
2087
+ #: includes/class-mla-data.php:4423 includes/class-mla-edit-media.php:473
2088
+ #: includes/class-mla-main.php:2384
2089
  msgid "Pings"
2090
  msgstr ""
2091
 
2092
+ #: includes/class-mla-data.php:4471
2093
  #, php-format
2094
  msgid "You cannot assign \"%1$s\" terms"
2095
  msgstr ""
2096
 
2097
+ #: includes/class-mla-data.php:4484
2098
  msgctxt "tag delimiter"
2099
  msgid ","
2100
  msgstr ""
2101
 
2102
+ #: includes/class-mla-data.php:4523
2103
  msgid "Adding"
2104
  msgstr ""
2105
 
2106
+ #: includes/class-mla-data.php:4528
2107
  msgid "Removing"
2108
  msgstr ""
2109
 
2110
+ #: includes/class-mla-data.php:4537
2111
  msgid "Replacing"
2112
  msgstr ""
2113
 
2114
+ #: includes/class-mla-data.php:4545
2115
  msgid "Ignoring"
2116
  msgstr ""
2117
 
2118
+ #: includes/class-mla-data.php:4562
2119
  #, php-format
2120
  msgid "%1$s \"%2$s\" terms"
2121
  msgstr ""
2122
 
2123
+ #: includes/class-mla-data.php:4574 includes/class-mla-main.php:1402
2124
  #, php-format
2125
  msgid "Item %1$d, no changes detected."
2126
  msgstr ""
2127
 
2128
+ #: includes/class-mla-data.php:4604
2129
  #, php-format
2130
  msgid "Item %1$d updated."
2131
  msgstr ""
2132
 
2133
+ #: includes/class-mla-data.php:4622
2134
  #, php-format
2135
  msgid "%1$s: Item %2$d update failed."
2136
  msgstr ""
2137
 
2138
  #: includes/class-mla-edit-media.php:129 includes/class-mla-edit-media.php:183
2139
+ #: includes/class-mla-edit-media.php:236 includes/class-mla-main.php:469
2140
+ #: includes/class-mla-main.php:1157 includes/class-mla-main.php:1926
2141
+ #: includes/class-mla-media-modal.php:268 includes/class-mla-options.php:1647
2142
  #: includes/class-mla-polylang-support.php:378
2143
  #: includes/class-mla-settings-custom-fields-tab.php:59
2144
  #: includes/class-mla-settings-custom-fields-tab.php:94
2145
+ #: includes/class-mla-settings-iptc-exif-tab.php:57
2146
+ #: includes/class-mla-settings-iptc-exif-tab.php:90
2147
  #: includes/class-mla-settings-upload-tab.php:48
2148
  #: includes/class-mla-settings-view-tab.php:48
2149
  #: includes/class-mla-thumbnail-generation.php:99
2164
  msgstr ""
2165
 
2166
  #: includes/class-mla-edit-media.php:184 includes/class-mla-edit-media.php:238
2167
+ #: includes/class-mla-main.php:456
2168
  msgid "An ajax.fail error has occurred. Please reload the page and try again."
2169
  msgstr ""
2170
 
2171
  #: includes/class-mla-edit-media.php:185 includes/class-mla-edit-media.php:239
2172
+ #: includes/class-mla-main.php:457
2173
  msgid "An ajax.done error has occurred. Please reload the page and try again."
2174
  msgstr ""
2175
 
2176
+ #: includes/class-mla-edit-media.php:240 includes/class-mla-main.php:2128
2177
  #, php-format
2178
  msgid "Uploaded on: %s"
2179
  msgstr ""
2180
 
2181
+ #: includes/class-mla-edit-media.php:241 includes/class-mla-edit-media.php:690
2182
  msgid "Last modified"
2183
  msgstr ""
2184
 
2185
  #: includes/class-mla-edit-media.php:339 includes/class-mla-edit-media.php:395
2186
+ #: includes/class-mla-main.php:2208 includes/class-mla-main.php:2272
2187
  msgid "+&nbsp;Add&nbsp;New&nbsp;Term"
2188
  msgstr ""
2189
 
2190
  #: includes/class-mla-edit-media.php:340 includes/class-mla-edit-media.php:396
2191
+ #: includes/class-mla-main.php:2209 includes/class-mla-main.php:2273
2192
  msgid "Add New"
2193
  msgstr ""
2194
 
2195
  #: includes/class-mla-edit-media.php:358 includes/class-mla-edit-media.php:414
2196
+ #: includes/class-mla-main.php:2227 includes/class-mla-main.php:2291
2197
  msgid "?&nbsp;Search"
2198
  msgstr ""
2199
 
2200
  #: includes/class-mla-edit-media.php:361 includes/class-mla-edit-media.php:417
2201
+ #: includes/class-mla-edit-media.php:426 includes/class-mla-main.php:2230
2202
+ #: includes/class-mla-main.php:2294 includes/class-mla-main.php:2303
2203
  msgid "Add"
2204
  msgstr ""
2205
 
2206
  #: includes/class-mla-edit-media.php:362 includes/class-mla-edit-media.php:418
2207
+ #: includes/class-mla-edit-media.php:427 includes/class-mla-main.php:2231
2208
+ #: includes/class-mla-main.php:2295 includes/class-mla-main.php:2304
2209
  msgid "Remove"
2210
  msgstr ""
2211
 
2212
  #: includes/class-mla-edit-media.php:363 includes/class-mla-edit-media.php:419
2213
+ #: includes/class-mla-edit-media.php:428 includes/class-mla-main.php:2232
2214
+ #: includes/class-mla-main.php:2296 includes/class-mla-main.php:2305
2215
  #: includes/class-mla-settings-custom-fields-tab.php:481
2216
  #: includes/class-mla-settings-custom-fields-tab.php:781
2217
  #: includes/class-mla-settings-custom-fields-tab.php:1506
2218
+ #: includes/class-mla-settings-iptc-exif-tab.php:482
2219
+ #: includes/class-mla-settings-iptc-exif-tab.php:872
2220
+ #: includes/class-mla-settings-iptc-exif-tab.php:1586
2221
+ #: includes/class-mla-settings-iptc-exif-tab.php:2441
2222
  msgid "Replace"
2223
  msgstr ""
2224
 
2228
  "menu for more information."
2229
  msgstr ""
2230
 
2231
+ #: includes/class-mla-edit-media.php:468 includes/class-mla-main.php:2377
2232
+ #: includes/class-mla-settings.php:1404
2233
  msgid "Reset"
2234
  msgstr ""
2235
 
2236
+ #: includes/class-mla-edit-media.php:474 includes/class-mla-main.php:2385
2237
+ #: includes/class-mla-main.php:2441
2238
  #: includes/class-mla-settings-custom-fields-tab.php:809
2239
+ #: includes/class-mla-settings-iptc-exif-tab.php:904
2240
  #: includes/class-mla-settings-upload-tab.php:122
2241
  #: includes/class-mla-settings-upload-tab.php:549
2242
  #: includes/class-mla-settings-view-tab.php:396
2243
  msgid "No Change"
2244
  msgstr ""
2245
 
2246
+ #: includes/class-mla-edit-media.php:475 includes/class-mla-main.php:2386
2247
  msgid "Allow"
2248
  msgstr ""
2249
 
2250
+ #: includes/class-mla-edit-media.php:476 includes/class-mla-main.php:2387
2251
  msgid "Do not allow"
2252
  msgstr ""
2253
 
2254
+ #: includes/class-mla-edit-media.php:484 includes/class-mla-list-table.php:1095
2255
+ #: includes/class-mla-list-table.php:1166 includes/class-mla-main.php:2369
2256
  msgid "Parent ID"
2257
  msgstr ""
2258
 
2259
+ #: includes/class-mla-edit-media.php:485 includes/class-mla-edit-media.php:1002
2260
+ #: includes/class-mla-main.php:2370
2261
  #: includes/class-mla-settings-upload-tab.php:1463
2262
  msgid "Select"
2263
  msgstr ""
2264
 
2265
+ #: includes/class-mla-edit-media.php:579
2266
  msgid "Custom field mapping updated."
2267
  msgstr ""
2268
 
2269
+ #: includes/class-mla-edit-media.php:580
2270
  msgid "IPTC/EXIF mapping updated."
2271
  msgstr ""
2272
 
2273
+ #: includes/class-mla-edit-media.php:581
2274
  msgid "Custom field mapping is disabled."
2275
  msgstr ""
2276
 
2277
+ #: includes/class-mla-edit-media.php:582
2278
  msgid "IPTC/EXIF mapping is disabled."
2279
  msgstr ""
2280
 
2281
+ #: includes/class-mla-edit-media.php:617 includes/class-mla-main.php:2112
2282
  msgid "Month"
2283
  msgstr ""
2284
 
2285
+ #: includes/class-mla-edit-media.php:623 includes/class-mla-main.php:2118
2286
  #, php-format
2287
  msgid "%1$s-%2$s"
2288
  msgstr ""
2289
 
2290
+ #: includes/class-mla-edit-media.php:627 includes/class-mla-main.php:2122
2291
  msgid "Day"
2292
  msgstr ""
2293
 
2294
+ #: includes/class-mla-edit-media.php:628 includes/class-mla-main.php:2123
2295
  msgid "Year"
2296
  msgstr ""
2297
 
2298
+ #: includes/class-mla-edit-media.php:629 includes/class-mla-main.php:2124
2299
  msgid "Hour"
2300
  msgstr ""
2301
 
2302
+ #: includes/class-mla-edit-media.php:630 includes/class-mla-main.php:2125
2303
  msgid "Minute"
2304
  msgstr ""
2305
 
2306
+ #: includes/class-mla-edit-media.php:634 includes/class-mla-main.php:2130
2307
  #, php-format
2308
  msgid "%1$s %2$s, %3$s @ %4$s:%5$s"
2309
  msgstr ""
2310
 
2311
+ #: includes/class-mla-edit-media.php:657
2312
  msgid "OK"
2313
  msgstr ""
2314
 
2315
+ #: includes/class-mla-edit-media.php:658 includes/class-mla-main.php:2065
2316
+ #: includes/class-mla-main.php:2376
2317
  #: includes/class-mla-polylang-support.php:2065
2318
  #: includes/class-mla-settings-custom-fields-tab.php:509
2319
  #: includes/class-mla-settings-custom-fields-tab.php:730
2320
  #: includes/class-mla-settings-custom-fields-tab.php:812
2321
  #: includes/class-mla-settings-documentation-tab.php:199
2322
+ #: includes/class-mla-settings-iptc-exif-tab.php:521
2323
+ #: includes/class-mla-settings-iptc-exif-tab.php:823
2324
+ #: includes/class-mla-settings-iptc-exif-tab.php:907
2325
  #: includes/class-mla-settings-shortcodes-tab.php:405
2326
  #: includes/class-mla-settings-shortcodes-tab.php:476
2327
  #: includes/class-mla-settings-upload-tab.php:177
2333
  msgid "Cancel"
2334
  msgstr ""
2335
 
2336
+ #: includes/class-mla-edit-media.php:674
2337
  msgid "M j, Y @ H:i"
2338
  msgstr ""
2339
 
2340
+ #: includes/class-mla-edit-media.php:680 includes/class-mla-list-table.php:655
2341
+ #: includes/class-mla-list-table.php:783 includes/class-mla-list-table.php:1050
2342
+ #: includes/class-mla-list-table.php:1221
2343
+ #: includes/class-mla-list-table.php:1270
2344
+ #: includes/class-mla-list-table.php:1316
2345
+ #: includes/class-mla-list-table.php:1361
2346
+ #: includes/class-mla-list-table.php:1583
2347
+ #: includes/class-mla-list-table.php:1909
2348
  #: includes/class-mla-polylang-support.php:377
2349
  #: includes/class-mla-settings-custom-fields-tab.php:1349
2350
  #: includes/class-mla-settings-custom-fields-tab.php:1688
2351
+ #: includes/class-mla-settings-iptc-exif-tab.php:1445
2352
+ #: includes/class-mla-settings-iptc-exif-tab.php:1813
2353
  #: includes/class-mla-settings-shortcodes-tab.php:1074
2354
  #: includes/class-mla-settings-upload-tab.php:918
2355
  #: includes/class-mla-settings-upload-tab.php:1207
2358
  msgid "Edit"
2359
  msgstr ""
2360
 
2361
+ #: includes/class-mla-edit-media.php:681
2362
  msgid "Edit upload date and time"
2363
  msgstr ""
2364
 
2365
+ #: includes/class-mla-edit-media.php:683
2366
  msgid "Upload Date and time"
2367
  msgstr ""
2368
 
2369
+ #: includes/class-mla-edit-media.php:713
2370
  msgid "Map Custom Field metadata for this item"
2371
  msgstr ""
2372
 
2373
+ #: includes/class-mla-edit-media.php:713 includes/class-mla-main.php:1840
2374
+ #: includes/class-mla-main.php:2392
2375
  msgid "Map Custom Field metadata"
2376
  msgstr ""
2377
 
2378
+ #: includes/class-mla-edit-media.php:717
2379
  msgid "Map IPTC/EXIF metadata for this item"
2380
  msgstr ""
2381
 
2382
+ #: includes/class-mla-edit-media.php:717 includes/class-mla-main.php:1843
2383
+ #: includes/class-mla-main.php:2390
2384
  msgid "Map IPTC/EXIF metadata"
2385
  msgstr ""
2386
 
2387
+ #: includes/class-mla-edit-media.php:813 includes/class-mla-edit-media.php:1003
2388
  msgid "Parent Info"
2389
  msgstr ""
2390
 
2391
+ #: includes/class-mla-edit-media.php:823 includes/class-mla-edit-media.php:1046
2392
  msgid "Attachment Metadata"
2393
  msgstr ""
2394
 
2395
+ #: includes/class-mla-edit-media.php:893 includes/class-mla-edit-media.php:935
2396
+ #: includes/class-mla-main.php:708 includes/class-mla-settings.php:596
2397
  #, php-format
2398
  msgctxt "error_log"
2399
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
2400
  msgstr ""
2401
 
2402
+ #: includes/class-mla-edit-media.php:1001
2403
  msgid "Post Parent"
2404
  msgstr ""
2405
 
2406
+ #: includes/class-mla-edit-media.php:1002 includes/class-mla-main.php:2047
2407
  msgid "Select Parent"
2408
  msgstr ""
2409
 
2410
+ #: includes/class-mla-list-table.php:216 includes/class-mla-list-table.php:252
2411
  msgid "All"
2412
  msgstr ""
2413
 
2414
+ #: includes/class-mla-list-table.php:253
2415
  msgctxt "show_option_none"
2416
  msgid "No"
2417
  msgstr ""
2418
 
2419
+ #: includes/class-mla-list-table.php:467
2420
  #: includes/class-mla-settings-custom-fields-tab.php:997
2421
+ #: includes/class-mla-settings-iptc-exif-tab.php:1087
2422
  #: includes/class-mla-settings-upload-tab.php:643
2423
  #: includes/class-mla-settings-view-tab.php:490
2424
  msgid "List View"
2425
  msgstr ""
2426
 
2427
+ #: includes/class-mla-list-table.php:534 includes/class-mla-list-table.php:587
2428
+ #: includes/class-mla-list-table.php:1095
2429
+ #: includes/class-mla-list-table.php:1166
2430
+ #: includes/class-mla-list-table.php:1389
2431
+ #: includes/class-mla-list-table.php:1433
2432
+ #: includes/class-mla-list-table.php:1465
2433
+ #: includes/class-mla-list-table.php:1549
2434
  msgid "Filter by"
2435
  msgstr ""
2436
 
2437
+ #: includes/class-mla-list-table.php:544
2438
  #: includes/class-mla-media-modal-ajax.php:511
2439
  msgid "Not Supported"
2440
  msgstr ""
2441
 
2442
+ #: includes/class-mla-list-table.php:607
2443
  #: includes/class-mla-settings-custom-fields-tab.php:1297
2444
  #: includes/class-mla-settings-documentation-tab.php:607
2445
+ #: includes/class-mla-settings-iptc-exif-tab.php:1393
2446
  #: includes/class-mla-settings-shortcodes-tab.php:1029
2447
  #: includes/class-mla-settings-upload-tab.php:854
2448
  #: includes/class-mla-settings-upload-tab.php:1411
2451
  msgid "column_default: %1$s, %2$s"
2452
  msgstr ""
2453
 
2454
+ #: includes/class-mla-list-table.php:770
2455
  msgid "Restore this item from the Trash"
2456
  msgstr ""
2457
 
2458
+ #: includes/class-mla-list-table.php:770 includes/class-mla-list-table.php:1906
2459
  msgid "Restore"
2460
  msgstr ""
2461
 
2462
+ #: includes/class-mla-list-table.php:783
2463
  #: includes/class-mla-settings-custom-fields-tab.php:1349
2464
+ #: includes/class-mla-settings-iptc-exif-tab.php:1445
2465
  #: includes/class-mla-settings-shortcodes-tab.php:1074
2466
  #: includes/class-mla-settings-upload-tab.php:918
2467
  #: includes/class-mla-settings-view-tab.php:717
2468
  msgid "Edit this item"
2469
  msgstr ""
2470
 
2471
+ #: includes/class-mla-list-table.php:784
2472
  #: includes/class-mla-settings-custom-fields-tab.php:1352
2473
+ #: includes/class-mla-settings-iptc-exif-tab.php:1448
2474
  #: includes/class-mla-settings-upload-tab.php:920
2475
  #: includes/class-mla-settings-view-tab.php:719
2476
  msgid "Edit this item inline"
2477
  msgstr ""
2478
 
2479
+ #: includes/class-mla-list-table.php:784 includes/class-mla-main.php:2360
2480
  #: includes/class-mla-options.php:1242
2481
  #: includes/class-mla-settings-custom-fields-tab.php:472
2482
  #: includes/class-mla-settings-custom-fields-tab.php:772
2483
  #: includes/class-mla-settings-custom-fields-tab.php:1352
2484
  #: includes/class-mla-settings-custom-fields-tab.php:1462
2485
+ #: includes/class-mla-settings-iptc-exif-tab.php:851
2486
+ #: includes/class-mla-settings-iptc-exif-tab.php:1448
2487
  #: includes/class-mla-settings-upload-tab.php:920
2488
  #: includes/class-mla-settings-view-tab.php:719
2489
  msgid "Quick Edit"
2490
  msgstr ""
2491
 
2492
+ #: includes/class-mla-list-table.php:790
2493
  msgid "Move this item to the Trash"
2494
  msgstr ""
2495
 
2496
+ #: includes/class-mla-list-table.php:790 includes/class-mla-list-table.php:1912
2497
  msgid "Move to Trash"
2498
  msgstr ""
2499
 
2500
+ #: includes/class-mla-list-table.php:795
2501
  #: includes/class-mla-settings-custom-fields-tab.php:1360
2502
+ #: includes/class-mla-settings-iptc-exif-tab.php:1458
2503
  #: includes/class-mla-settings-shortcodes-tab.php:1080
2504
  #: includes/class-mla-settings-upload-tab.php:924
2505
  #: includes/class-mla-settings-view-tab.php:725
2506
  msgid "Delete this item Permanently"
2507
  msgstr ""
2508
 
2509
+ #: includes/class-mla-list-table.php:795 includes/class-mla-list-table.php:1907
2510
+ #: includes/class-mla-list-table.php:1914
2511
  #: includes/class-mla-settings-custom-fields-tab.php:1360
2512
  #: includes/class-mla-settings-custom-fields-tab.php:1689
2513
+ #: includes/class-mla-settings-iptc-exif-tab.php:1458
2514
+ #: includes/class-mla-settings-iptc-exif-tab.php:1814
2515
  #: includes/class-mla-settings-shortcodes-tab.php:1080
2516
  #: includes/class-mla-settings-upload-tab.php:924
2517
  #: includes/class-mla-settings-view-tab.php:725
2519
  msgid "Delete Permanently"
2520
  msgstr ""
2521
 
2522
+ #: includes/class-mla-list-table.php:803 includes/class-mla-list-table.php:1919
2523
  #: includes/class-mla-settings-documentation-tab.php:688
2524
+ #: includes/class-mla-settings.php:1394
2525
  msgid "Download"
2526
  msgstr ""
2527
 
2528
+ #: includes/class-mla-list-table.php:805
2529
  #: includes/class-mla-settings-documentation-tab.php:691
2530
  #: includes/class-mla-settings-shortcodes-tab.php:1072
2531
  #: includes/class-mla-settings-view-tab.php:374
2532
  msgid "View"
2533
  msgstr ""
2534
 
2535
+ #: includes/class-mla-list-table.php:1066
2536
  msgid "File name"
2537
  msgstr ""
2538
 
2539
+ #: includes/class-mla-list-table.php:1163
2540
  msgid "(no title: bad ID)"
2541
  msgstr ""
2542
 
2543
+ #: includes/class-mla-list-table.php:1436
2544
  #: includes/class-mla-settings-upload-tab.php:167
2545
  #: includes/class-mla-settings-upload-tab.php:532
2546
  msgid "MIME Type"
2547
  msgstr ""
2548
 
2549
+ #: includes/class-mla-list-table.php:1469
2550
  msgid "Base File"
2551
  msgstr ""
2552
 
2553
+ #: includes/class-mla-list-table.php:1485
2554
+ #: includes/class-mla-list-table.php:1518
2555
  msgid "Unpublished"
2556
  msgstr ""
2557
 
2558
+ #: includes/class-mla-list-table.php:1494
2559
+ #: includes/class-mla-list-table.php:1525
2560
  #, php-format
2561
  msgid "%1$s from now"
2562
  msgstr ""
2563
 
2564
+ #: includes/class-mla-list-table.php:1497
2565
+ #: includes/class-mla-list-table.php:1527
2566
  #, php-format
2567
  msgid "%1$s ago"
2568
  msgstr ""
2569
 
2570
+ #: includes/class-mla-list-table.php:1611
2571
  msgid "Set Parent"
2572
  msgstr ""
2573
 
2574
+ #: includes/class-mla-list-table.php:1761
2575
  msgctxt "uploaded files"
2576
  msgid "All"
2577
  msgid_plural "All"
2578
  msgstr[0] ""
2579
  msgstr[1] ""
2580
 
2581
+ #: includes/class-mla-list-table.php:2010
2582
  #: includes/class-mla-settings-custom-fields-tab.php:1754
2583
+ #: includes/class-mla-settings-iptc-exif-tab.php:1879
2584
  #: includes/class-mla-settings-shortcodes-tab.php:1348
2585
  msgid "Filter"
2586
  msgstr ""
2587
 
2588
+ #: includes/class-mla-list-table.php:2013
2589
  #: includes/mla-media-modal-js-template.php:89
2590
  msgid "Terms Search"
2591
  msgstr ""
2592
 
2593
+ #: includes/class-mla-list-table.php:2018
2594
  #: includes/class-mla-polylang-support.php:2072
2595
  #: includes/class-mla-thumbnail-generation.php:654
2596
  msgid "Clear Filter-by"
2597
  msgstr ""
2598
 
2599
+ #: includes/class-mla-list-table.php:2021
2600
  msgid "Empty Trash"
2601
  msgstr ""
2602
 
2603
+ #: includes/class-mla-main.php:458
2604
  msgid "Error while saving the changes."
2605
  msgstr ""
2606
 
2607
+ #: includes/class-mla-main.php:459
2608
  #: includes/class-mla-settings-custom-fields-tab.php:57
2609
  #: includes/class-mla-settings-custom-fields-tab.php:92
2610
+ #: includes/class-mla-settings-iptc-exif-tab.php:55
2611
+ #: includes/class-mla-settings-iptc-exif-tab.php:88
2612
  #: includes/class-mla-settings-upload-tab.php:46
2613
  #: includes/class-mla-settings-view-tab.php:46
2614
  msgid "Remove From Bulk Edit"
2615
  msgstr ""
2616
 
2617
+ #: includes/class-mla-main.php:461
2618
  msgid "Bulk Edit items"
2619
  msgstr ""
2620
 
2621
+ #: includes/class-mla-main.php:462 includes/class-mla-main.php:2393
2622
  #: includes/class-mla-settings-custom-fields-tab.php:63
2623
+ #: includes/class-mla-settings-iptc-exif-tab.php:61
2624
  msgid "Waiting"
2625
  msgstr ""
2626
 
2627
+ #: includes/class-mla-main.php:463 includes/class-mla-main.php:2395
2628
  #: includes/class-mla-settings-custom-fields-tab.php:65
2629
+ #: includes/class-mla-settings-iptc-exif-tab.php:63
2630
  msgid "Complete"
2631
  msgstr ""
2632
 
2633
+ #: includes/class-mla-main.php:464
2634
  #: includes/class-mla-settings-custom-fields-tab.php:66
2635
+ #: includes/class-mla-settings-iptc-exif-tab.php:64
2636
  msgid "Unchanged"
2637
  msgstr ""
2638
 
2639
+ #: includes/class-mla-main.php:465
2640
  #: includes/class-mla-settings-custom-fields-tab.php:67
2641
+ #: includes/class-mla-settings-iptc-exif-tab.php:65
2642
  msgid "Succeeded"
2643
  msgstr ""
2644
 
2645
+ #: includes/class-mla-main.php:466
2646
  #: includes/class-mla-settings-custom-fields-tab.php:68
2647
+ #: includes/class-mla-settings-iptc-exif-tab.php:66
2648
  msgid "Failed"
2649
  msgstr ""
2650
 
2651
+ #: includes/class-mla-main.php:467
2652
  msgid "CANCELED"
2653
  msgstr ""
2654
 
2655
+ #: includes/class-mla-main.php:605
2656
  #, php-format
2657
  msgid "Item permanently deleted."
2658
  msgid_plural "%d items permanently deleted."
2659
  msgstr[0] ""
2660
  msgstr[1] ""
2661
 
2662
+ #: includes/class-mla-main.php:610 includes/class-mla-main.php:2580
2663
  #, php-format
2664
  msgid "Item %1$d moved to Trash."
2665
  msgstr ""
2666
 
2667
+ #: includes/class-mla-main.php:836
2668
  msgid "download path out of bounds."
2669
  msgstr ""
2670
 
2671
+ #: includes/class-mla-main.php:838
2672
  msgid "download path invalid."
2673
  msgstr ""
2674
 
2675
+ #: includes/class-mla-main.php:841
2676
  msgid "download argument(s) not set."
2677
  msgstr ""
2678
 
2679
+ #: includes/class-mla-main.php:901
2680
  msgid "no ZipArchive support."
2681
  msgstr ""
2682
 
2683
+ #: includes/class-mla-main.php:933
2684
  #, php-format
2685
  msgid "The ZIP archive ( %1$s ) could not be created."
2686
  msgstr ""
2687
 
2688
+ #: includes/class-mla-main.php:943
2689
  #, php-format
2690
  msgid "The file ( %1$s ) could not be added to the ZIP archive."
2691
  msgstr ""
2692
 
2693
+ #: includes/class-mla-main.php:950
2694
  #, php-format
2695
  msgid "The ZIP archive ( %1$s ) could not be closed."
2696
  msgstr ""
2697
 
2698
+ #: includes/class-mla-main.php:1336
2699
  msgid "You are not allowed to edit Attachment: "
2700
  msgstr ""
2701
 
2702
+ #: includes/class-mla-main.php:1392
2703
  #, php-format
2704
  msgid "%1$s: Unknown bulk action %2$s"
2705
  msgstr ""
2706
 
2707
+ #: includes/class-mla-main.php:1414
2708
  msgid "no changes detected"
2709
  msgstr ""
2710
 
2711
+ #: includes/class-mla-main.php:1461
2712
  #: includes/class-mla-settings-custom-fields-tab.php:607
2713
  #: includes/class-mla-settings-documentation-tab.php:275
2714
+ #: includes/class-mla-settings-iptc-exif-tab.php:698
2715
  #: includes/class-mla-settings-shortcodes-tab.php:564
2716
  #: includes/class-mla-settings-upload-tab.php:407
2717
  #: includes/class-mla-settings-view-tab.php:254
2719
  msgid "Bulk Action %1$s - no items selected."
2720
  msgstr ""
2721
 
2722
+ #: includes/class-mla-main.php:1555
2723
  msgid "You do not have permission to manage attachments."
2724
  msgstr ""
2725
 
2726
+ #: includes/class-mla-main.php:1613
2727
  #, php-format
2728
  msgctxt "deleted items"
2729
  msgid "%s item deleted."
2731
  msgstr[0] ""
2732
  msgstr[1] ""
2733
 
2734
+ #: includes/class-mla-main.php:1615
2735
  msgid "No items deleted."
2736
  msgstr ""
2737
 
2738
+ #: includes/class-mla-main.php:1667
2739
  msgid "Empty Terms Search; ignored"
2740
  msgstr ""
2741
 
2742
+ #: includes/class-mla-main.php:1679
2743
  #: includes/class-mla-settings-custom-fields-tab.php:634
2744
  #: includes/class-mla-settings-documentation-tab.php:307
2745
+ #: includes/class-mla-settings-iptc-exif-tab.php:727
2746
  #: includes/class-mla-settings-shortcodes-tab.php:593
2747
  #: includes/class-mla-settings-upload-tab.php:446
2748
  #: includes/class-mla-settings-view-tab.php:291
2750
  msgid "Unknown mla_admin_action - \"%1$s\""
2751
  msgstr ""
2752
 
2753
+ #: includes/class-mla-main.php:1724
2754
  msgid "term search results for"
2755
  msgstr ""
2756
 
2757
+ #: includes/class-mla-main.php:1727
2758
  msgid "post/parent results for"
2759
  msgstr ""
2760
 
2761
+ #: includes/class-mla-main.php:1729
2762
  msgid "search results for"
2763
  msgstr ""
2764
 
2765
+ #: includes/class-mla-main.php:1846 includes/class-mla-main.php:2069
2766
+ #: includes/class-mla-main.php:2378
2767
  #: includes/class-mla-settings-custom-fields-tab.php:511
2768
  #: includes/class-mla-settings-custom-fields-tab.php:813
2769
  #: includes/class-mla-settings-documentation-tab.php:679
2770
  #: includes/class-mla-settings-documentation-tab.php:886
2771
+ #: includes/class-mla-settings-iptc-exif-tab.php:523
2772
+ #: includes/class-mla-settings-iptc-exif-tab.php:908
2773
  #: includes/class-mla-settings-shortcodes-tab.php:479
2774
  #: includes/class-mla-settings-upload-tab.php:176
2775
  #: includes/class-mla-settings-upload-tab.php:546
2778
  msgid "Update"
2779
  msgstr ""
2780
 
2781
+ #: includes/class-mla-main.php:2004
2782
  msgid "All Post Types"
2783
  msgstr ""
2784
 
2785
+ #: includes/class-mla-main.php:2050
2786
  msgid "For"
2787
  msgstr ""
2788
 
2789
+ #: includes/class-mla-main.php:2060
2790
+ #: includes/class-mla-shortcode-support.php:1184
2791
  msgid "Unattached"
2792
  msgstr ""
2793
 
2794
+ #: includes/class-mla-main.php:2379 includes/class-mla-options.php:1256
2795
  #: includes/class-mla-settings-custom-fields-tab.php:475
2796
  #: includes/class-mla-settings-custom-fields-tab.php:775
2797
  #: includes/class-mla-settings-custom-fields-tab.php:1466
2798
+ #: includes/class-mla-settings-iptc-exif-tab.php:852
2799
  #: includes/class-mla-settings-upload-tab.php:547
2800
  #: includes/class-mla-settings-view-tab.php:395
2801
  msgid "Bulk Edit"
2802
  msgstr ""
2803
 
2804
+ #: includes/class-mla-main.php:2394
2805
  msgid "In-process"
2806
  msgstr ""
2807
 
2808
+ #: includes/class-mla-main.php:2493
2809
  msgid "You are not allowed to delete this item."
2810
  msgstr ""
2811
 
2812
+ #: includes/class-mla-main.php:2501
2813
  #, php-format
2814
  msgid "%1$s: Item %2$d could NOT be deleted."
2815
  msgstr ""
2816
 
2817
+ #: includes/class-mla-main.php:2508
2818
  #, php-format
2819
  msgid "Item %1$d permanently deleted."
2820
  msgstr ""
2821
 
2822
+ #: includes/class-mla-main.php:2525
2823
  msgid "You are not allowed to move this item out of the Trash."
2824
  msgstr ""
2825
 
2826
+ #: includes/class-mla-main.php:2533
2827
  #, php-format
2828
  msgid "%1$s: Item %2$d could NOT be restored from Trash."
2829
  msgstr ""
2830
 
2831
+ #: includes/class-mla-main.php:2548
2832
  #, php-format
2833
  msgid "Item %1$d restored from Trash."
2834
  msgstr ""
2835
 
2836
+ #: includes/class-mla-main.php:2565
2837
  msgid "You are not allowed to move this item to the Trash."
2838
  msgstr ""
2839
 
2840
+ #: includes/class-mla-main.php:2573
2841
  #, php-format
2842
  msgid "%1$s: Item %2$d could NOT be moved to Trash."
2843
  msgstr ""
2921
  msgid "Whole Word"
2922
  msgstr ""
2923
 
2924
+ #: includes/class-mla-mime-types.php:469
2925
  msgctxt "post_mime_types"
2926
  msgid "Manage"
2927
  msgstr ""
2928
 
2929
+ #: includes/class-mla-mime-types.php:626 includes/class-mla-mime-types.php:704
2930
  msgctxt "list_table_column"
2931
  msgid "Extension"
2932
  msgstr ""
2933
 
2934
+ #: includes/class-mla-mime-types.php:628
2935
  msgctxt "list_table_column"
2936
  msgid "Icon Type"
2937
  msgstr ""
2938
 
2939
+ #: includes/class-mla-mime-types.php:629
2940
  #: includes/class-mla-settings-custom-fields-tab.php:1210
2941
  msgctxt "list_table_column"
2942
  msgid "Source"
2943
  msgstr ""
2944
 
2945
+ #: includes/class-mla-mime-types.php:630
2946
  #: includes/class-mla-settings-custom-fields-tab.php:1213
2947
+ #: includes/class-mla-settings-iptc-exif-tab.php:1308
2948
  msgctxt "list_table_column"
2949
  msgid "Status"
2950
  msgstr ""
2951
 
2952
+ #: includes/class-mla-mime-types.php:631 includes/class-mla-mime-types.php:706
2953
  msgctxt "list_table_column"
2954
  msgid "WordPress Type"
2955
  msgstr ""
2956
 
2957
+ #: includes/class-mla-mime-types.php:632 includes/class-mla-mime-types.php:707
2958
  msgctxt "list_table_column"
2959
  msgid "MLA Type"
2960
  msgstr ""
2961
 
2962
+ #: includes/class-mla-mime-types.php:633
2963
  msgctxt "list_table_column"
2964
  msgid "Std. Source"
2965
  msgstr ""
2966
 
2967
+ #: includes/class-mla-mime-types.php:634
2968
  msgctxt "list_table_column"
2969
  msgid "Std. Icon Type"
2970
  msgstr ""
2971
 
2972
+ #: includes/class-mla-mime-types.php:780
2973
  msgctxt "list_table_column"
2974
  msgid "Slug"
2975
  msgstr ""
2976
 
2977
+ #: includes/class-mla-mime-types.php:781
2978
  msgctxt "list_table_column"
2979
  msgid "Specification"
2980
  msgstr ""
2981
 
2982
+ #: includes/class-mla-mime-types.php:782
2983
  msgctxt "list_table_column"
2984
  msgid "Post Mime"
2985
  msgstr ""
2986
 
2987
+ #: includes/class-mla-mime-types.php:783
2988
  msgctxt "list_table_column"
2989
  msgid "Table View"
2990
  msgstr ""
2991
 
2992
+ #: includes/class-mla-mime-types.php:784
2993
  msgctxt "list_table_column"
2994
  msgid "Singular Name"
2995
  msgstr ""
2996
 
2997
+ #: includes/class-mla-mime-types.php:785
2998
  msgctxt "list_table_column"
2999
  msgid "Plural Name"
3000
  msgstr ""
3001
 
3002
+ #: includes/class-mla-mime-types.php:786
3003
  msgctxt "list_table_column"
3004
  msgid "Order"
3005
  msgstr ""
3006
 
3007
+ #: includes/class-mla-mime-types.php:1102
3008
  msgctxt "post_mime_types_description"
3009
  msgid "Copied from previous filter/plugin"
3010
  msgstr ""
3011
 
3012
+ #: includes/class-mla-mime-types.php:1203
3013
+ #: includes/class-mla-mime-types.php:1320
3014
  msgid "Ignoring specification for Post MIME Type; using slug"
3015
  msgstr ""
3016
 
3017
+ #: includes/class-mla-mime-types.php:1209
3018
+ #: includes/class-mla-mime-types.php:2291
3019
  #, php-format
3020
  msgid "<br>Changing %1$s \"%2$s\" to valid value \"%3$s\""
3021
  msgstr ""
3022
 
3023
+ #: includes/class-mla-mime-types.php:1209
3024
+ #: includes/class-mla-mime-types.php:1297
3025
+ #: includes/class-mla-mime-types.php:1308
3026
  #: includes/class-mla-settings-view-tab.php:119
3027
  #: includes/class-mla-settings-view-tab.php:375
3028
  msgid "Slug"
3029
  msgstr ""
3030
 
3031
+ #: includes/class-mla-mime-types.php:1217
3032
+ #: includes/class-mla-mime-types.php:1305
3033
  #, php-format
3034
  msgid "%1$s: Could not add Slug \"%2$s\"; value already exists"
3035
  msgstr ""
3036
 
3037
+ #: includes/class-mla-mime-types.php:1252
3038
  #, php-format
3039
  msgid "Edit view \"%1$s\"; added"
3040
  msgstr ""
3041
 
3042
+ #: includes/class-mla-mime-types.php:1297
3043
+ #: includes/class-mla-mime-types.php:2417
3044
  #, php-format
3045
  msgid "<br>Changing new %1$s \"%2$s\" to valid value \"%3$s\""
3046
  msgstr ""
3047
 
3048
+ #: includes/class-mla-mime-types.php:1350
3049
  #, php-format
3050
  msgid "Edit view \"%1$s\"; no changes detected"
3051
  msgstr ""
3052
 
3053
+ #: includes/class-mla-mime-types.php:1364
3054
  #, php-format
3055
  msgid "Edit view \"%1$s\"; updated"
3056
  msgstr ""
3057
 
3058
+ #: includes/class-mla-mime-types.php:1437
3059
  #, php-format
3060
  msgid "View \"%1$s\" reverted to standard"
3061
  msgstr ""
3062
 
3063
+ #: includes/class-mla-mime-types.php:1443
3064
  #, php-format
3065
  msgid "View \"%1$s\" deleted"
3066
  msgstr ""
3067
 
3068
+ #: includes/class-mla-mime-types.php:1451
3069
  #, php-format
3070
  msgid "%1$s: Did not find view \"%2$s\""
3071
  msgstr ""
3072
 
3073
+ #: includes/class-mla-mime-types.php:1710
3074
  #: includes/class-mla-settings-documentation-tab.php:1579
3075
  msgctxt "table_view_singular"
3076
  msgid "Active"
3077
  msgstr ""
3078
 
3079
+ #: includes/class-mla-mime-types.php:1711
3080
  #: includes/class-mla-settings-documentation-tab.php:1580
3081
  msgctxt "table_view_plural"
3082
  msgid "Active"
3083
  msgstr ""
3084
 
3085
+ #: includes/class-mla-mime-types.php:1714
3086
  #: includes/class-mla-settings-documentation-tab.php:1583
3087
  msgctxt "table_view_singular"
3088
  msgid "Inactive"
3089
  msgstr ""
3090
 
3091
+ #: includes/class-mla-mime-types.php:1715
3092
  #: includes/class-mla-settings-documentation-tab.php:1584
3093
  msgctxt "table_view_plural"
3094
  msgid "Inactive"
3095
  msgstr ""
3096
 
3097
+ #: includes/class-mla-mime-types.php:1718
3098
  msgctxt "table_view_singular"
3099
  msgid "WordPress"
3100
  msgstr ""
3101
 
3102
+ #: includes/class-mla-mime-types.php:1719
3103
  msgctxt "table_view_plural"
3104
  msgid "WordPress"
3105
  msgstr ""
3106
 
3107
+ #: includes/class-mla-mime-types.php:1722
3108
  msgctxt "table_view_singular"
3109
  msgid "MLA"
3110
  msgstr ""
3111
 
3112
+ #: includes/class-mla-mime-types.php:1723
3113
  msgctxt "table_view_plural"
3114
  msgid "MLA"
3115
  msgstr ""
3116
 
3117
+ #: includes/class-mla-mime-types.php:1726
3118
+ #: includes/class-mla-settings-iptc-exif-tab.php:2761
3119
  msgctxt "table_view_singular"
3120
  msgid "Custom"
3121
  msgstr ""
3122
 
3123
+ #: includes/class-mla-mime-types.php:1727
3124
+ #: includes/class-mla-settings-iptc-exif-tab.php:2762
3125
  msgctxt "table_view_plural"
3126
  msgid "Custom"
3127
  msgstr ""
3128
 
3129
+ #: includes/class-mla-mime-types.php:1982
3130
  msgid "icon"
3131
  msgstr ""
3132
 
3133
+ #: includes/class-mla-mime-types.php:2275
3134
+ #: includes/class-mla-mime-types.php:2374
3135
  msgid "Cannot load Upload MIME Types"
3136
  msgstr ""
3137
 
3138
+ #: includes/class-mla-mime-types.php:2286
3139
  msgid "Extension is required"
3140
  msgstr ""
3141
 
3142
+ #: includes/class-mla-mime-types.php:2291
3143
+ #: includes/class-mla-mime-types.php:2417
3144
+ #: includes/class-mla-mime-types.php:2428
3145
  #: includes/class-mla-settings-upload-tab.php:165
3146
  #: includes/class-mla-settings-upload-tab.php:530
3147
  msgid "Extension"
3148
  msgstr ""
3149
 
3150
+ #: includes/class-mla-mime-types.php:2299
3151
  #, php-format
3152
  msgid "%1$s: Could not add extension \"%2$s\"; value already exists"
3153
  msgstr ""
3154
 
3155
+ #: includes/class-mla-mime-types.php:2307
3156
  msgid "MIME type is required"
3157
  msgstr ""
3158
 
3159
+ #: includes/class-mla-mime-types.php:2312
3160
+ #: includes/class-mla-mime-types.php:2459
3161
  #, php-format
3162
  msgid "%1$s: Bad MIME type; try \"%2$s\""
3163
  msgstr ""
3164
 
3165
+ #: includes/class-mla-mime-types.php:2349
3166
  #, php-format
3167
  msgid "Upload MIME Type \"%1$s\"; added"
3168
  msgstr ""
3169
 
3170
+ #: includes/class-mla-mime-types.php:2355
3171
+ #: includes/class-mla-mime-types.php:2544
3172
+ #: includes/class-mla-mime-types.php:2623
3173
  msgid "Cannot update Upload MIME Types"
3174
  msgstr ""
3175
 
3176
+ #: includes/class-mla-mime-types.php:2425
3177
  #, php-format
3178
  msgid "%1$s: Could not add new extension \"%2$s\"; value already exists"
3179
  msgstr ""
3180
 
3181
+ #: includes/class-mla-mime-types.php:2524
3182
  #, php-format
3183
  msgid "Edit type \"%1$s\"; no changes detected"
3184
  msgstr ""
3185
 
3186
+ #: includes/class-mla-mime-types.php:2538
3187
  #, php-format
3188
  msgid "Edit type \"%1$s\"; updated"
3189
  msgstr ""
3190
 
3191
+ #: includes/class-mla-mime-types.php:2611
3192
  #, php-format
3193
  msgid "Upload MIME Type \"%1$s\"; reverted to standard"
3194
  msgstr ""
3195
 
3196
+ #: includes/class-mla-mime-types.php:2617
3197
  #, php-format
3198
  msgid "Upload MIME Type \"%1$s\"; deleted"
3199
  msgstr ""
3200
 
3201
+ #: includes/class-mla-mime-types.php:2632
3202
  #, php-format
3203
  msgid "%1$s: Did not find Upload type \"%2$s\""
3204
  msgstr ""
3417
  #: includes/class-mla-options.php:469
3418
  #: includes/class-mla-settings-custom-fields-tab.php:455
3419
  #: includes/class-mla-settings-custom-fields-tab.php:759
3420
+ #: includes/class-mla-settings-iptc-exif-tab.php:459
3421
+ #: includes/class-mla-settings-iptc-exif-tab.php:853
3422
  #: includes/class-mla-settings-shortcodes-tab.php:401
3423
  #: includes/class-mla-settings-shortcodes-tab.php:472
3424
  #: includes/mla-main-search-box-template.php:49
3439
  msgstr ""
3440
 
3441
  #: includes/class-mla-options.php:999 includes/class-mla-options.php:1045
3442
+ #: includes/class-mla-options.php:1877 includes/class-mla-options.php:1908
3443
+ #: includes/class-mla-options.php:1913
3444
  #: includes/class-mla-settings-upload-tab.php:128
3445
  msgid "None (select a value)"
3446
  msgstr ""
3453
  msgid "Template (see below)"
3454
  msgstr ""
3455
 
3456
+ #: includes/class-mla-options.php:1131 includes/class-mla-options.php:2195
3457
  #, php-format
3458
  msgid "%1$s: New field %2$s already exists."
3459
  msgstr ""
3460
 
3461
+ #: includes/class-mla-options.php:1136 includes/class-mla-options.php:2200
3462
  #, php-format
3463
  msgid "Adding new field %1$s."
3464
  msgstr ""
3465
 
3466
+ #: includes/class-mla-options.php:1144 includes/class-mla-options.php:2208
3467
  #, php-format
3468
  msgid "Adding new rule for %1$s."
3469
  msgstr ""
3470
 
3471
+ #: includes/class-mla-options.php:1170 includes/class-mla-options.php:2065
3472
+ #: includes/class-mla-options.php:2234
3473
  #, php-format
3474
  msgid "Deleting rule for %1$s."
3475
  msgstr ""
3476
 
3477
  #: includes/class-mla-options.php:1193 includes/class-mla-options.php:1214
3478
  #: includes/class-mla-options.php:1264 includes/class-mla-options.php:1271
3479
+ #: includes/class-mla-options.php:1981 includes/class-mla-options.php:1988
3480
+ #: includes/class-mla-options.php:1995 includes/class-mla-options.php:2090
3481
+ #: includes/class-mla-options.php:2097 includes/class-mla-options.php:2132
3482
+ #: includes/class-mla-options.php:2139 includes/class-mla-options.php:2244
3483
+ #: includes/class-mla-options.php:2251 includes/class-mla-options.php:2286
3484
+ #: includes/class-mla-options.php:2293
3485
  #, php-format
3486
  msgid "%1$s changing %2$s from %3$s to %4$s."
3487
  msgstr ""
3492
  msgid "Data Source"
3493
  msgstr ""
3494
 
3495
+ #: includes/class-mla-options.php:1199 includes/class-mla-options.php:2015
3496
+ #: includes/class-mla-options.php:2117 includes/class-mla-options.php:2271
3497
  msgid "Replace to Keep"
3498
  msgstr ""
3499
 
3500
+ #: includes/class-mla-options.php:1202 includes/class-mla-options.php:2018
3501
+ #: includes/class-mla-options.php:2120 includes/class-mla-options.php:2274
3502
  msgid "Keep to Replace"
3503
  msgstr ""
3504
 
3505
  #: includes/class-mla-options.php:1207 includes/class-mla-options.php:1228
3506
  #: includes/class-mla-options.php:1242 includes/class-mla-options.php:1256
3507
+ #: includes/class-mla-options.php:1285 includes/class-mla-options.php:2009
3508
+ #: includes/class-mla-options.php:2023 includes/class-mla-options.php:2111
3509
+ #: includes/class-mla-options.php:2125 includes/class-mla-options.php:2265
3510
+ #: includes/class-mla-options.php:2279 includes/class-mla-options.php:2307
3511
  #, php-format
3512
  msgid "%1$s changing %2$s value from %3$s."
3513
  msgstr ""
3514
 
3515
+ #: includes/class-mla-options.php:1207 includes/class-mla-options.php:2023
3516
+ #: includes/class-mla-options.php:2125 includes/class-mla-options.php:2279
3517
  #: includes/class-mla-settings-custom-fields-tab.php:477
3518
  #: includes/class-mla-settings-custom-fields-tab.php:777
3519
+ #: includes/class-mla-settings-iptc-exif-tab.php:478
3520
+ #: includes/class-mla-settings-iptc-exif-tab.php:868
3521
  msgid "Existing Text"
3522
  msgstr ""
3523
 
3524
+ #: includes/class-mla-options.php:1214 includes/class-mla-options.php:2286
3525
  #: includes/class-mla-settings-custom-fields-tab.php:482
3526
  #: includes/class-mla-settings-custom-fields-tab.php:782
3527
+ #: includes/class-mla-settings-iptc-exif-tab.php:493
3528
+ #: includes/class-mla-settings-iptc-exif-tab.php:876
3529
  msgid "Format"
3530
  msgstr ""
3531
 
3532
  #: includes/class-mla-options.php:1220 includes/class-mla-options.php:1234
3533
  #: includes/class-mla-options.php:1248 includes/class-mla-options.php:1277
3534
+ #: includes/class-mla-options.php:2299
3535
  msgid "unchecked to checked"
3536
  msgstr ""
3537
 
3538
  #: includes/class-mla-options.php:1223 includes/class-mla-options.php:1237
3539
  #: includes/class-mla-options.php:1251 includes/class-mla-options.php:1280
3540
+ #: includes/class-mla-options.php:2302
3541
  msgid "checked to unchecked"
3542
  msgstr ""
3543
 
3552
  msgid "Metavalue name"
3553
  msgstr ""
3554
 
3555
+ #: includes/class-mla-options.php:1271 includes/class-mla-options.php:2293
3556
  #: includes/class-mla-settings-custom-fields-tab.php:489
3557
  #: includes/class-mla-settings-custom-fields-tab.php:789
3558
+ #: includes/class-mla-settings-iptc-exif-tab.php:500
3559
+ #: includes/class-mla-settings-iptc-exif-tab.php:883
3560
  msgid "Option"
3561
  msgstr ""
3562
 
3563
+ #: includes/class-mla-options.php:1285 includes/class-mla-options.php:2307
3564
+ #: includes/class-mla-settings-iptc-exif-tab.php:512
3565
  msgid "Delete NULL values"
3566
  msgstr ""
3567
 
3568
+ #: includes/class-mla-options.php:1969
3569
  #, php-format
3570
  msgid "%1$s: No old values for %2$s."
3571
  msgstr ""
3572
 
3573
+ #: includes/class-mla-options.php:1981
3574
  msgid "Field Title"
3575
  msgstr ""
3576
 
3577
+ #: includes/class-mla-options.php:1988 includes/class-mla-options.php:2090
3578
+ #: includes/class-mla-options.php:2244
3579
+ #: includes/class-mla-settings-iptc-exif-tab.php:467
3580
+ #: includes/class-mla-settings-iptc-exif-tab.php:857
3581
  msgid "IPTC Value"
3582
  msgstr ""
3583
 
3584
+ #: includes/class-mla-options.php:1995 includes/class-mla-options.php:2097
3585
+ #: includes/class-mla-options.php:2251
3586
  msgid "EXIF Value"
3587
  msgstr ""
3588
 
3589
+ #: includes/class-mla-options.php:2001 includes/class-mla-options.php:2103
3590
+ #: includes/class-mla-options.php:2257
3591
  msgid "EXIF to IPTC"
3592
  msgstr ""
3593
 
3594
+ #: includes/class-mla-options.php:2004 includes/class-mla-options.php:2106
3595
+ #: includes/class-mla-options.php:2260
3596
  msgid "IPTC to EXIF"
3597
  msgstr ""
3598
 
3599
+ #: includes/class-mla-options.php:2009 includes/class-mla-options.php:2111
3600
+ #: includes/class-mla-options.php:2265
3601
+ #: includes/class-mla-settings-iptc-exif-tab.php:473
3602
+ #: includes/class-mla-settings-iptc-exif-tab.php:863
3603
  msgid "Priority"
3604
  msgstr ""
3605
 
3606
+ #: includes/class-mla-options.php:2132
3607
  msgid "Delimiter(s)"
3608
  msgstr ""
3609
 
3797
  #: includes/class-mla-polylang-support.php:2586
3798
  #: includes/class-mla-settings-custom-fields-tab.php:657
3799
  #: includes/class-mla-settings-custom-fields-tab.php:756
3800
+ #: includes/class-mla-settings-iptc-exif-tab.php:750
3801
+ #: includes/class-mla-settings-iptc-exif-tab.php:848
3802
  #: includes/class-mla-settings-shortcodes-tab.php:713
3803
  #: includes/class-mla-settings-upload-tab.php:476
3804
  #: includes/class-mla-settings-upload-tab.php:526
3805
  #: includes/class-mla-settings-view-tab.php:320
3806
  #: includes/class-mla-settings-view-tab.php:372
3807
+ #: includes/class-mla-settings.php:1070 includes/class-mla-settings.php:1439
3808
+ #: includes/class-mla-settings.php:1441
3809
  #: includes/class-mla-wpml-support.php:1727
3810
  msgid "Save Changes"
3811
  msgstr ""
3816
  msgstr ""
3817
 
3818
  #: includes/class-mla-polylang-support.php:2590
3819
+ #: includes/class-mla-settings.php:808 includes/class-mla-settings.php:1075
3820
  #: includes/class-mla-wpml-support.php:1731
3821
  msgid "Go to Top"
3822
  msgstr ""
3827
  msgstr ""
3828
 
3829
  #: includes/class-mla-polylang-support.php:2658
3830
+ #: includes/class-mla-settings.php:1651
3831
  #: includes/class-mla-wpml-support.php:1799
3832
  #, php-format
3833
  msgctxt "message_list"
3841
 
3842
  #: includes/class-mla-settings-custom-fields-tab.php:56
3843
  #: includes/class-mla-settings-custom-fields-tab.php:91
3844
+ #: includes/class-mla-settings-iptc-exif-tab.php:54
3845
+ #: includes/class-mla-settings-iptc-exif-tab.php:87
3846
  #: includes/class-mla-settings-upload-tab.php:45
3847
  #: includes/class-mla-settings-view-tab.php:45
3848
  msgid "Error while making the changes."
3850
 
3851
  #: includes/class-mla-settings-custom-fields-tab.php:58
3852
  #: includes/class-mla-settings-custom-fields-tab.php:93
3853
+ #: includes/class-mla-settings-iptc-exif-tab.php:56
3854
+ #: includes/class-mla-settings-iptc-exif-tab.php:89
3855
  #: includes/class-mla-settings-upload-tab.php:47
3856
  #: includes/class-mla-settings-view-tab.php:47
3857
  msgid "no slug"
3858
  msgstr ""
3859
 
3860
  #: includes/class-mla-settings-custom-fields-tab.php:64
3861
+ #: includes/class-mla-settings-iptc-exif-tab.php:62
3862
  msgid "Running"
3863
  msgstr ""
3864
 
3865
  #: includes/class-mla-settings-custom-fields-tab.php:69
3866
+ #: includes/class-mla-settings-iptc-exif-tab.php:67
3867
  msgid "Skipped"
3868
  msgstr ""
3869
 
3870
  #: includes/class-mla-settings-custom-fields-tab.php:70
3871
+ #: includes/class-mla-settings-iptc-exif-tab.php:68
3872
  msgid "Reprocessed"
3873
  msgstr ""
3874
 
3875
  #: includes/class-mla-settings-custom-fields-tab.php:71
3876
+ #: includes/class-mla-settings-iptc-exif-tab.php:69
3877
  msgid "PAUSED"
3878
  msgstr ""
3879
 
3886
  msgstr ""
3887
 
3888
  #: includes/class-mla-settings-custom-fields-tab.php:173
3889
+ #: includes/class-mla-settings-iptc-exif-tab.php:171
3890
  msgid "No custom field mapping rules to process."
3891
  msgstr ""
3892
 
3893
  #: includes/class-mla-settings-custom-fields-tab.php:206
3894
+ #: includes/class-mla-settings-iptc-exif-tab.php:205
3895
  #, php-format
3896
  msgid "%1$s mapping completed; %2$d attachment(s) examined, %3$d updated."
3897
  msgstr ""
3898
 
3899
  #: includes/class-mla-settings-custom-fields-tab.php:206
3900
  #: includes/class-mla-settings-custom-fields-tab.php:209
3901
+ #: includes/class-mla-settings-iptc-exif-tab.php:205
3902
+ #: includes/class-mla-settings-iptc-exif-tab.php:208
3903
  msgid "Custom field"
3904
  msgstr ""
3905
 
3906
  #: includes/class-mla-settings-custom-fields-tab.php:209
3907
+ #: includes/class-mla-settings-iptc-exif-tab.php:208
3908
  #, php-format
3909
  msgid ""
3910
  "%1$s mapping completed; %2$d attachment(s) examined, no changes detected."
3911
  msgstr ""
3912
 
3913
  #: includes/class-mla-settings-custom-fields-tab.php:238
3914
+ #: includes/class-mla-settings-iptc-exif-tab.php:237
3915
  msgid ": No custom field name selected/entered"
3916
  msgstr ""
3917
 
3918
  #: includes/class-mla-settings-custom-fields-tab.php:242
3919
  #: includes/class-mla-settings-custom-fields-tab.php:304
3920
+ #: includes/class-mla-settings-iptc-exif-tab.php:241
3921
+ #: includes/class-mla-settings-iptc-exif-tab.php:304
3922
  msgid ": Rule already exists for the new name"
3923
  msgstr ""
3924
 
3925
  #: includes/class-mla-settings-custom-fields-tab.php:273
3926
+ #: includes/class-mla-settings-iptc-exif-tab.php:273
3927
  msgid "Rule added"
3928
  msgstr ""
3929
 
3930
  #: includes/class-mla-settings-custom-fields-tab.php:276
3931
+ #: includes/class-mla-settings-iptc-exif-tab.php:276
3932
  msgid ": Rule addition failed"
3933
  msgstr ""
3934
 
3935
  #: includes/class-mla-settings-custom-fields-tab.php:308
3936
+ #: includes/class-mla-settings-iptc-exif-tab.php:308
3937
  msgid ": Invalid rule name must be changed"
3938
  msgstr ""
3939
 
3940
  #: includes/class-mla-settings-custom-fields-tab.php:341
3941
  #: includes/class-mla-settings-custom-fields-tab.php:425
3942
  #: includes/class-mla-settings-custom-fields-tab.php:956
3943
+ #: includes/class-mla-settings-iptc-exif-tab.php:342
3944
+ #: includes/class-mla-settings-iptc-exif-tab.php:426
3945
+ #: includes/class-mla-settings-iptc-exif-tab.php:1046
3946
  msgid ": Rule update failed"
3947
  msgstr ""
3948
 
3949
  #: includes/class-mla-settings-custom-fields-tab.php:346
3950
  #: includes/class-mla-settings-custom-fields-tab.php:428
3951
+ #: includes/class-mla-settings-iptc-exif-tab.php:347
3952
+ #: includes/class-mla-settings-iptc-exif-tab.php:429
3953
  msgid "Rule updated"
3954
  msgstr ""
3955
 
3956
  #: includes/class-mla-settings-custom-fields-tab.php:370
3957
+ #: includes/class-mla-settings-iptc-exif-tab.php:371
3958
  #, php-format
3959
  msgid "Custom Field Rule \"%1$s\" deleted."
3960
  msgstr ""
3961
 
3962
  #: includes/class-mla-settings-custom-fields-tab.php:449
3963
+ #: includes/class-mla-settings-iptc-exif-tab.php:450
3964
  msgid "Edit Rule"
3965
  msgstr ""
3966
 
3967
  #: includes/class-mla-settings-custom-fields-tab.php:458
3968
+ #: includes/class-mla-settings-iptc-exif-tab.php:462
3969
  msgid ""
3970
  "This is the name of the custom field to which the rule applies.<br>Only one "
3971
  "rule is allowed for each custom field."
3972
  msgstr ""
3973
 
3974
  #: includes/class-mla-settings-custom-fields-tab.php:459
3975
+ #: includes/class-mla-settings-iptc-exif-tab.php:463
3976
  msgid "Change Name"
3977
  msgstr ""
3978
 
3979
  #: includes/class-mla-settings-custom-fields-tab.php:460
3980
+ #: includes/class-mla-settings-iptc-exif-tab.php:464
3981
  msgid "Cancel Name Change"
3982
  msgstr ""
3983
 
3984
  #: includes/class-mla-settings-custom-fields-tab.php:461
3985
  #: includes/class-mla-settings-custom-fields-tab.php:761
3986
+ #: includes/class-mla-settings-iptc-exif-tab.php:465
3987
+ #: includes/class-mla-settings-iptc-exif-tab.php:855
3988
  msgid "Enter new field"
3989
  msgstr ""
3990
 
3991
  #: includes/class-mla-settings-custom-fields-tab.php:462
3992
  #: includes/class-mla-settings-custom-fields-tab.php:762
3993
+ #: includes/class-mla-settings-iptc-exif-tab.php:466
3994
+ #: includes/class-mla-settings-iptc-exif-tab.php:856
3995
  msgid "Cancel new field"
3996
  msgstr ""
3997
 
4023
  #: includes/class-mla-settings-custom-fields-tab.php:479
4024
  #: includes/class-mla-settings-custom-fields-tab.php:779
4025
  #: includes/class-mla-settings-custom-fields-tab.php:1504
4026
+ #: includes/class-mla-settings-iptc-exif-tab.php:480
4027
+ #: includes/class-mla-settings-iptc-exif-tab.php:870
4028
+ #: includes/class-mla-settings-iptc-exif-tab.php:1584
4029
+ #: includes/class-mla-settings-iptc-exif-tab.php:2441
4030
  #: includes/class-mla-thumbnail-generation.php:647
4031
  msgid "Keep"
4032
  msgstr ""
4033
 
4034
  #: includes/class-mla-settings-custom-fields-tab.php:484
4035
  #: includes/class-mla-settings-custom-fields-tab.php:784
4036
+ #: includes/class-mla-settings-iptc-exif-tab.php:495
4037
+ #: includes/class-mla-settings-iptc-exif-tab.php:878
4038
  msgid "Native"
4039
  msgstr ""
4040
 
4041
  #: includes/class-mla-settings-custom-fields-tab.php:486
4042
  #: includes/class-mla-settings-custom-fields-tab.php:786
4043
+ #: includes/class-mla-settings-iptc-exif-tab.php:497
4044
+ #: includes/class-mla-settings-iptc-exif-tab.php:880
4045
  msgid "Commas"
4046
  msgstr ""
4047
 
4048
  #: includes/class-mla-settings-custom-fields-tab.php:488
4049
  #: includes/class-mla-settings-custom-fields-tab.php:788
4050
+ #: includes/class-mla-settings-iptc-exif-tab.php:499
4051
+ #: includes/class-mla-settings-iptc-exif-tab.php:882
4052
  msgid "Raw"
4053
  msgstr ""
4054
 
4055
  #: includes/class-mla-settings-custom-fields-tab.php:491
4056
  #: includes/class-mla-settings-custom-fields-tab.php:791
4057
+ #: includes/class-mla-settings-iptc-exif-tab.php:502
4058
+ #: includes/class-mla-settings-iptc-exif-tab.php:885
4059
  msgid "Text"
4060
  msgstr ""
4061
 
4062
  #: includes/class-mla-settings-custom-fields-tab.php:493
4063
  #: includes/class-mla-settings-custom-fields-tab.php:793
4064
+ #: includes/class-mla-settings-iptc-exif-tab.php:504
4065
+ #: includes/class-mla-settings-iptc-exif-tab.php:887
4066
  msgid "Single"
4067
  msgstr ""
4068
 
4069
  #: includes/class-mla-settings-custom-fields-tab.php:495
4070
  #: includes/class-mla-settings-custom-fields-tab.php:795
4071
+ #: includes/class-mla-settings-iptc-exif-tab.php:506
4072
+ #: includes/class-mla-settings-iptc-exif-tab.php:889
4073
  msgid "Export"
4074
  msgstr ""
4075
 
4076
  #: includes/class-mla-settings-custom-fields-tab.php:497
4077
  #: includes/class-mla-settings-custom-fields-tab.php:797
4078
+ #: includes/class-mla-settings-iptc-exif-tab.php:508
4079
+ #: includes/class-mla-settings-iptc-exif-tab.php:891
4080
  msgid "Array"
4081
  msgstr ""
4082
 
4083
  #: includes/class-mla-settings-custom-fields-tab.php:499
4084
  #: includes/class-mla-settings-custom-fields-tab.php:799
4085
+ #: includes/class-mla-settings-iptc-exif-tab.php:510
4086
+ #: includes/class-mla-settings-iptc-exif-tab.php:893
4087
  msgid "Multi"
4088
  msgstr ""
4089
 
4090
  #: includes/class-mla-settings-custom-fields-tab.php:501
4091
  #: includes/class-mla-settings-custom-fields-tab.php:801
4092
+ #: includes/class-mla-settings-iptc-exif-tab.php:895
4093
  msgid "Delete NULL Values"
4094
  msgstr ""
4095
 
4096
  #: includes/class-mla-settings-custom-fields-tab.php:502
4097
  #: includes/class-mla-settings-custom-fields-tab.php:802
4098
+ #: includes/class-mla-settings-iptc-exif-tab.php:513
4099
+ #: includes/class-mla-settings-iptc-exif-tab.php:896
4100
  msgid "Do not store empty custom field values"
4101
  msgstr ""
4102
 
4105
  #: includes/class-mla-settings-custom-fields-tab.php:1488
4106
  #: includes/class-mla-settings-custom-fields-tab.php:1711
4107
  #: includes/class-mla-settings-documentation-tab.php:1249
4108
+ #: includes/class-mla-settings-iptc-exif-tab.php:517
4109
+ #: includes/class-mla-settings-iptc-exif-tab.php:899
4110
+ #: includes/class-mla-settings-iptc-exif-tab.php:1600
4111
+ #: includes/class-mla-settings-iptc-exif-tab.php:1836
4112
+ #: includes/class-mla-settings-iptc-exif-tab.php:2444
4113
  #: includes/class-mla-settings-upload-tab.php:550
4114
  #: includes/class-mla-settings-upload-tab.php:1031
4115
  msgid "Active"
4120
  #: includes/class-mla-settings-custom-fields-tab.php:1490
4121
  #: includes/class-mla-settings-custom-fields-tab.php:1714
4122
  #: includes/class-mla-settings-documentation-tab.php:1251
4123
+ #: includes/class-mla-settings-iptc-exif-tab.php:519
4124
+ #: includes/class-mla-settings-iptc-exif-tab.php:901
4125
+ #: includes/class-mla-settings-iptc-exif-tab.php:1602
4126
+ #: includes/class-mla-settings-iptc-exif-tab.php:1839
4127
+ #: includes/class-mla-settings-iptc-exif-tab.php:2444
4128
  #: includes/class-mla-settings-upload-tab.php:172
4129
  #: includes/class-mla-settings-upload-tab.php:536
4130
  #: includes/class-mla-settings-upload-tab.php:1029
4132
  msgstr ""
4133
 
4134
  #: includes/class-mla-settings-custom-fields-tab.php:534
4135
+ #: includes/class-mla-settings-iptc-exif-tab.php:625
4136
  #, php-format
4137
  msgid "Custom Field Rule \"%1$s\": %2$s"
4138
  msgstr ""
4144
  #: includes/class-mla-settings-custom-fields-tab.php:583
4145
  #: includes/class-mla-settings-custom-fields-tab.php:611
4146
  #: includes/class-mla-settings-documentation-tab.php:265
4147
+ #: includes/class-mla-settings-iptc-exif-tab.php:674
4148
+ #: includes/class-mla-settings-iptc-exif-tab.php:702
4149
  #: includes/class-mla-settings-shortcodes-tab.php:552
4150
  #: includes/class-mla-settings-upload-tab.php:396
4151
  #: includes/class-mla-settings-view-tab.php:244
4162
  msgstr ""
4163
 
4164
  #: includes/class-mla-settings-custom-fields-tab.php:724
4165
+ #: includes/class-mla-settings-iptc-exif-tab.php:817
4166
  msgid "DO NOT DO THE FOLLOWING (they will cause mapping to fail)"
4167
  msgstr ""
4168
 
4169
  #: includes/class-mla-settings-custom-fields-tab.php:725
4170
+ #: includes/class-mla-settings-iptc-exif-tab.php:818
4171
  msgid "Close the window"
4172
  msgstr ""
4173
 
4174
  #: includes/class-mla-settings-custom-fields-tab.php:726
4175
+ #: includes/class-mla-settings-iptc-exif-tab.php:819
4176
  msgid "Reload the page"
4177
  msgstr ""
4178
 
4179
  #: includes/class-mla-settings-custom-fields-tab.php:727
4180
+ #: includes/class-mla-settings-iptc-exif-tab.php:820
4181
  msgid "Click the browser&rsquo;s Stop, Back or forward buttons"
4182
  msgstr ""
4183
 
4184
  #: includes/class-mla-settings-custom-fields-tab.php:728
4185
+ #: includes/class-mla-settings-iptc-exif-tab.php:821
4186
  msgid "Progress"
4187
  msgstr ""
4188
 
4189
  #: includes/class-mla-settings-custom-fields-tab.php:729
4190
+ #: includes/class-mla-settings-iptc-exif-tab.php:822
4191
  msgid "Pause"
4192
  msgstr ""
4193
 
4194
  #: includes/class-mla-settings-custom-fields-tab.php:731
4195
+ #: includes/class-mla-settings-iptc-exif-tab.php:824
4196
  msgid "Resume"
4197
  msgstr ""
4198
 
4199
  #: includes/class-mla-settings-custom-fields-tab.php:732
4200
  #: includes/class-mla-settings-documentation-tab.php:141
4201
+ #: includes/class-mla-settings-iptc-exif-tab.php:825
4202
  #: includes/class-mla-settings-shortcodes-tab.php:476
4203
  #: includes/class-mla-template-support.php:160
4204
  #: includes/class-mla-template-support.php:166
4223
  msgstr ""
4224
 
4225
  #: includes/class-mla-settings-custom-fields-tab.php:745
4226
+ #: includes/class-mla-settings-iptc-exif-tab.php:838
4227
  msgid ""
4228
  "You can find more information about using the controls in this tab to define "
4229
  "mapping rules and apply them by clicking the \"Help\" control in the upper-"
4231
  msgstr ""
4232
 
4233
  #: includes/class-mla-settings-custom-fields-tab.php:750
4234
+ #: includes/class-mla-settings-iptc-exif-tab.php:843
4235
  #: includes/class-mla-settings-shortcodes-tab.php:711
4236
  msgid "Search results for"
4237
  msgstr ""
4238
 
4239
  #: includes/class-mla-settings-custom-fields-tab.php:752
4240
+ #: includes/class-mla-settings-iptc-exif-tab.php:844
4241
  msgid "Search Rules Text"
4242
  msgstr ""
4243
 
4244
  #: includes/class-mla-settings-custom-fields-tab.php:754
4245
+ #: includes/class-mla-settings-iptc-exif-tab.php:846
4246
  msgid "Search Rules"
4247
  msgstr ""
4248
 
4249
  #: includes/class-mla-settings-custom-fields-tab.php:757
4250
+ #: includes/class-mla-settings-iptc-exif-tab.php:849
4251
  msgid "Execute All Rules"
4252
  msgstr ""
4253
 
4254
  #: includes/class-mla-settings-custom-fields-tab.php:758
4255
+ #: includes/class-mla-settings-iptc-exif-tab.php:850
4256
  msgid "Add New Custom Field Rule"
4257
  msgstr ""
4258
 
4259
  #: includes/class-mla-settings-custom-fields-tab.php:808
4260
+ #: includes/class-mla-settings-iptc-exif-tab.php:902
4261
  msgid "Add Rule"
4262
  msgstr ""
4263
 
4264
  #: includes/class-mla-settings-custom-fields-tab.php:872
4265
  #: includes/class-mla-settings-custom-fields-tab.php:894
4266
+ #: includes/class-mla-settings-iptc-exif-tab.php:977
4267
  msgid "Nothing to execute"
4268
  msgstr ""
4269
 
4270
  #: includes/class-mla-settings-custom-fields-tab.php:928
4271
+ #: includes/class-mla-settings-iptc-exif-tab.php:1012
4272
  msgid "Rule ID not found"
4273
  msgstr ""
4274
 
4275
  #: includes/class-mla-settings-custom-fields-tab.php:932
4276
+ #: includes/class-mla-settings-iptc-exif-tab.php:1016
4277
  msgid "Rule not found"
4278
  msgstr ""
4279
 
4280
  #: includes/class-mla-settings-custom-fields-tab.php:1209
4281
+ #: includes/class-mla-settings-iptc-exif-tab.php:1303
4282
  msgctxt "list_table_column"
4283
  msgid "Bad Name"
4284
  msgstr ""
4294
  msgstr ""
4295
 
4296
  #: includes/class-mla-settings-custom-fields-tab.php:1214
4297
+ #: includes/class-mla-settings-iptc-exif-tab.php:1307
4298
  msgctxt "list_table_column"
4299
  msgid "Existing Text"
4300
  msgstr ""
4301
 
4302
  #: includes/class-mla-settings-custom-fields-tab.php:1215
4303
+ #: includes/class-mla-settings-iptc-exif-tab.php:1311
4304
  msgctxt "list_table_column"
4305
  msgid "Delete NULL"
4306
  msgstr ""
4307
 
4308
  #: includes/class-mla-settings-custom-fields-tab.php:1216
4309
+ #: includes/class-mla-settings-iptc-exif-tab.php:1312
4310
  msgctxt "list_table_column"
4311
  msgid "Format"
4312
  msgstr ""
4313
 
4314
  #: includes/class-mla-settings-custom-fields-tab.php:1217
4315
+ #: includes/class-mla-settings-iptc-exif-tab.php:1313
4316
  msgctxt "list_table_column"
4317
  msgid "Option"
4318
  msgstr ""
4319
 
4320
  #: includes/class-mla-settings-custom-fields-tab.php:1355
4321
+ #: includes/class-mla-settings-iptc-exif-tab.php:1451
4322
  msgid "Map All Attachments"
4323
  msgstr ""
4324
 
4325
  #: includes/class-mla-settings-custom-fields-tab.php:1355
4326
  #: includes/class-mla-settings-custom-fields-tab.php:1690
4327
+ #: includes/class-mla-settings-iptc-exif-tab.php:1451
4328
+ #: includes/class-mla-settings-iptc-exif-tab.php:1815
4329
  msgid "Execute"
4330
  msgstr ""
4331
 
4335
 
4336
  #: includes/class-mla-settings-custom-fields-tab.php:1357
4337
  #: includes/class-mla-settings-custom-fields-tab.php:1691
4338
+ #: includes/class-mla-settings-iptc-exif-tab.php:1454
4339
+ #: includes/class-mla-settings-iptc-exif-tab.php:1816
4340
  msgid "Purge Values"
4341
  msgstr ""
4342
 
4343
  #: includes/class-mla-settings-custom-fields-tab.php:1708
4344
+ #: includes/class-mla-settings-iptc-exif-tab.php:1833
4345
  #: includes/class-mla-settings-shortcodes-tab.php:1302
4346
  msgid "Any Status"
4347
  msgstr ""
4377
  msgstr ""
4378
 
4379
  #: includes/class-mla-settings-custom-fields-tab.php:2476
4380
+ #: includes/class-mla-settings-iptc-exif-tab.php:2765
4381
  msgctxt "table_view_singular"
4382
  msgid "Read Only"
4383
  msgstr ""
4384
 
4385
  #: includes/class-mla-settings-custom-fields-tab.php:2477
4386
+ #: includes/class-mla-settings-iptc-exif-tab.php:2766
4387
  msgctxt "table_view_plural"
4388
  msgid "Read Only"
4389
  msgstr ""
4397
  msgstr ""
4398
 
4399
  #: includes/class-mla-settings-documentation-tab.php:131
4400
+ #: includes/class-mla-settings.php:1371
4401
  #, php-format
4402
  msgid "%1$s: Reading the %2$s file ( %3$s ) \"%4$s\"."
4403
  msgstr ""
4575
  msgid "Uninstalled"
4576
  msgstr ""
4577
 
4578
+ #: includes/class-mla-settings-iptc-exif-tab.php:140
4579
  msgid "IPTC/EXIF mapping settings updated."
4580
  msgstr ""
4581
 
4582
+ #: includes/class-mla-settings-iptc-exif-tab.php:142
4583
  msgid "IPTC/EXIF no mapping changes detected."
4584
  msgstr ""
4585
 
4586
+ #: includes/class-mla-settings-iptc-exif-tab.php:196
4587
  msgid "updated."
4588
  msgstr ""
4589
 
4590
+ #: includes/class-mla-settings-iptc-exif-tab.php:469
4591
+ #: includes/class-mla-settings-iptc-exif-tab.php:859
4592
  msgid "EXIF/Template Value"
4593
  msgstr ""
4594
 
4595
+ #: includes/class-mla-settings-iptc-exif-tab.php:472
4596
+ #: includes/class-mla-settings-iptc-exif-tab.php:862
4597
  msgid "EXIF element name or Content Template"
4598
  msgstr ""
4599
 
4600
+ #: includes/class-mla-settings-iptc-exif-tab.php:472
4601
  msgid " (starting with \"template:\")"
4602
  msgstr ""
4603
 
4604
+ #: includes/class-mla-settings-iptc-exif-tab.php:475
4605
+ #: includes/class-mla-settings-iptc-exif-tab.php:865
4606
+ #: includes/class-mla-settings-iptc-exif-tab.php:1568
4607
  msgid "IPTC"
4608
  msgstr ""
4609
 
4610
+ #: includes/class-mla-settings-iptc-exif-tab.php:477
4611
+ #: includes/class-mla-settings-iptc-exif-tab.php:867
4612
+ #: includes/class-mla-settings-iptc-exif-tab.php:1571
4613
  msgid "EXIF"
4614
  msgstr ""
4615
 
4616
+ #: includes/class-mla-settings-iptc-exif-tab.php:485
4617
+ #: includes/class-mla-settings-iptc-exif-tab.php:873
4618
  msgid "Delimiters"
4619
  msgstr ""
4620
 
4621
+ #: includes/class-mla-settings-iptc-exif-tab.php:540
4622
  msgid "Standard field mapping"
4623
  msgstr ""
4624
 
4625
+ #: includes/class-mla-settings-iptc-exif-tab.php:543
4626
  msgid "Taxonomy term mapping"
4627
  msgstr ""
4628
 
4629
+ #: includes/class-mla-settings-iptc-exif-tab.php:566
4630
  msgid "Custom field mapping"
4631
  msgstr ""
4632
 
4633
+ #: includes/class-mla-settings-iptc-exif-tab.php:661
4634
  msgid "Edit IPTC EXIF Rule cancelled."
4635
  msgstr ""
4636
 
4637
+ #: includes/class-mla-settings-iptc-exif-tab.php:747
4638
  msgid "IPTC/EXIF Mapping Support is disabled"
4639
  msgstr ""
4640
 
4641
+ #: includes/class-mla-settings-iptc-exif-tab.php:816
4642
  msgid "IPTC &amp; EXIF Mapping Progress"
4643
  msgstr ""
4644
 
4645
+ #: includes/class-mla-settings-iptc-exif-tab.php:834
4646
  msgid "IPTC &amp; EXIF Processing Options"
4647
  msgstr ""
4648
 
4649
+ #: includes/class-mla-settings-iptc-exif-tab.php:836
4650
  msgid ""
4651
  "In this tab you can define the rules for mapping IPTC (International Press "
4652
  "Telecommunications Council) and EXIF (EXchangeable Image File) metadata to "
4653
  "WordPress standard attachment fields, taxonomy terms and custom fields."
4654
  msgstr ""
4655
 
4656
+ #: includes/class-mla-settings-iptc-exif-tab.php:1304
4657
  msgctxt "list_table_column"
4658
  msgid "IPTC Value"
4659
  msgstr ""
4660
 
4661
+ #: includes/class-mla-settings-iptc-exif-tab.php:1305
4662
  msgctxt "list_table_column"
4663
  msgid "EXIF/Template Value"
4664
  msgstr ""
4665
 
4666
+ #: includes/class-mla-settings-iptc-exif-tab.php:1306
4667
  msgctxt "list_table_column"
4668
  msgid "Priority "
4669
  msgstr ""
4670
 
4671
+ #: includes/class-mla-settings-iptc-exif-tab.php:1309
4672
  msgctxt "list_table_column"
4673
  msgid "Delimiter(s)"
4674
  msgstr ""
4675
 
4676
+ #: includes/class-mla-settings-iptc-exif-tab.php:1310
4677
  msgctxt "list_table_column"
4678
  msgid "Parent"
4679
  msgstr ""
4680
 
4681
+ #: includes/class-mla-settings-iptc-exif-tab.php:1454
4682
  msgid "Purge IPTC EXIF values"
4683
  msgstr ""
4684
 
4685
+ #: includes/class-mla-settings-iptc-exif-tab.php:2753
4686
  msgctxt "table_view_singular"
4687
  msgid "Standard"
4688
  msgstr ""
4689
 
4690
+ #: includes/class-mla-settings-iptc-exif-tab.php:2754
4691
  msgctxt "table_view_plural"
4692
  msgid "Standard"
4693
  msgstr ""
4694
 
4695
+ #: includes/class-mla-settings-iptc-exif-tab.php:2757
4696
  msgctxt "table_view_singular"
4697
  msgid "Taxonomy"
4698
  msgstr ""
4699
 
4700
+ #: includes/class-mla-settings-iptc-exif-tab.php:2758
4701
  msgctxt "table_view_plural"
4702
  msgid "Taxonomy"
4703
  msgstr ""
4801
 
4802
  #: includes/class-mla-settings-shortcodes-tab.php:319
4803
  #: includes/class-mla-settings-shortcodes-tab.php:322
4804
+ #: includes/class-mla-settings.php:963
4805
  msgid "Shortcodes"
4806
  msgstr ""
4807
 
5294
  msgid "No view slug found"
5295
  msgstr ""
5296
 
5297
+ #: includes/class-mla-settings.php:436 includes/class-mla-settings.php:662
5298
+ #: includes/class-mla-settings.php:1476
5299
  msgid "Settings"
5300
  msgstr ""
5301
 
5302
+ #: includes/class-mla-settings.php:455
5303
  msgid "Views per page"
5304
  msgstr ""
5305
 
5306
+ #: includes/class-mla-settings.php:466
5307
  msgid "Types per page"
5308
  msgstr ""
5309
 
5310
+ #: includes/class-mla-settings.php:477
5311
  msgid "Upload types per page"
5312
  msgstr ""
5313
 
5314
+ #: includes/class-mla-settings.php:488
5315
  msgid "Shortcode templates per page"
5316
  msgstr ""
5317
 
5318
+ #: includes/class-mla-settings.php:499 includes/class-mla-settings.php:510
5319
  msgid "Rules per page"
5320
  msgstr ""
5321
 
5322
+ #: includes/class-mla-settings.php:522
5323
  msgid "Plugins per page"
5324
  msgstr ""
5325
 
5326
+ #: includes/class-mla-settings.php:660
5327
  msgid "Guide"
5328
  msgstr ""
5329
 
5330
+ #: includes/class-mla-settings.php:734 includes/class-mla-settings.php:771
5331
+ #: includes/class-mla-settings.php:911
5332
  #, php-format
5333
  msgctxt "error_log"
5334
  msgid "%1$s: %2$s unknown type = \"%3$s\""
5335
  msgstr ""
5336
 
5337
+ #: includes/class-mla-settings.php:809 includes/class-mla-settings.php:1076
5338
  msgid "Go to Bottom"
5339
  msgstr ""
5340
 
5341
+ #: includes/class-mla-settings.php:960
5342
  msgid "General"
5343
  msgstr ""
5344
 
5345
+ #: includes/class-mla-settings.php:961
5346
  msgid "Views"
5347
  msgstr ""
5348
 
5349
+ #: includes/class-mla-settings.php:962
5350
  msgid "Uploads"
5351
  msgstr ""
5352
 
5353
+ #: includes/class-mla-settings.php:964
5354
  msgid "Custom Fields"
5355
  msgstr ""
5356
 
5357
+ #: includes/class-mla-settings.php:965
5358
  msgid "IPTC/EXIF"
5359
  msgstr ""
5360
 
5361
+ #: includes/class-mla-settings.php:966
5362
  msgid "Documentation"
5363
  msgstr ""
5364
 
5365
+ #: includes/class-mla-settings.php:967
5366
  msgid "Debug"
5367
  msgstr ""
5368
 
5369
+ #: includes/class-mla-settings.php:1067
5370
  msgid "General Processing Options"
5371
  msgstr ""
5372
 
5373
+ #: includes/class-mla-settings.php:1069
5374
  #, php-format
5375
  msgid ""
5376
  "In this tab you can find a number of options for controlling the "
5379
  "any changes you make."
5380
  msgstr ""
5381
 
5382
+ #: includes/class-mla-settings.php:1069
5383
  msgid "Media/Assistant Table Defaults"
5384
  msgstr ""
5385
 
5386
+ #: includes/class-mla-settings.php:1069
5387
  msgid "Media Manager Enhancements"
5388
  msgstr ""
5389
 
5390
+ #: includes/class-mla-settings.php:1072
5391
  msgid "Delete General options and restore default settings"
5392
  msgstr ""
5393
 
5394
+ #: includes/class-mla-settings.php:1095
5395
  msgid "enhanced version of the WordPress [gallery] shortcode."
5396
  msgstr ""
5397
 
5398
+ #: includes/class-mla-settings.php:1096
5399
  msgid "enhanced version of the WordPress Tag Cloud."
5400
  msgstr ""
5401
 
5402
+ #: includes/class-mla-settings.php:1097
5403
  msgid ""
5404
  "provides flat or hierarchical lists, dropdown controls and checkbox lists of "
5405
  "taxonomy terms."
5406
  msgstr ""
5407
 
5408
+ #: includes/class-mla-settings.php:1109
5409
  msgid "Shortcodes made available by this plugin"
5410
  msgstr ""
5411
 
5412
+ #: includes/class-mla-settings.php:1224
5413
  msgid "Debug settings saved."
5414
  msgstr ""
5415
 
5416
+ #: includes/class-mla-settings.php:1320
5417
  #, php-format
5418
  msgid "%1$s: Reseting the %2$s file ( %3$s ) \"%4$s\"."
5419
  msgstr ""
5420
 
5421
+ #: includes/class-mla-settings.php:1320 includes/class-mla-settings.php:1371
5422
+ #: includes/class-mla-settings.php:1394 includes/class-mla-settings.php:1404
5423
+ #: includes/class-mla-settings.php:1430
5424
  msgid "Error Log"
5425
  msgstr ""
5426
 
5427
+ #: includes/class-mla-settings.php:1381
5428
  #, php-format
5429
  msgid "Error log file (%1$s) not found; click Reset to create it."
5430
  msgstr ""
5431
 
5432
+ #: includes/class-mla-settings.php:1425 includes/class-mla-settings.php:1441
5433
  msgid "Debug Options"
5434
  msgstr ""
5435
 
5436
+ #: includes/class-mla-settings.php:1428
5437
  msgid "Debug Settings"
5438
  msgstr ""
5439
 
5440
+ #: includes/class-mla-settings.php:1432
5441
  #, php-format
5442
  msgid ""
5443
  "You can find more information about the MLA Reporting/MLA_DEBUG_LEVEL values "
5444
  "in the %1$s section of the Documentation tab."
5445
  msgstr ""
5446
 
5447
+ #: includes/class-mla-settings.php:1432
5448
  msgid "MLA Debug Tab documentation"
5449
  msgstr ""
5450
 
5451
+ #: includes/class-mla-settings.php:1432
5452
  msgid "MLA Debug Tab"
5453
  msgstr ""
5454
 
5455
+ #: includes/class-mla-settings.php:1441
5456
  #, php-format
5457
  msgid "Click %1$s to update the %2$s."
5458
  msgstr ""
5459
 
5460
+ #: includes/class-mla-settings.php:1460
5461
  msgid "You do not have permission to manage plugin settings."
5462
  msgstr ""
5463
 
5464
+ #: includes/class-mla-settings.php:1486
5465
  msgid "Cannot render content tab"
5466
  msgstr ""
5467
 
5468
+ #: includes/class-mla-settings.php:1489
5469
  msgid "Unknown content tab"
5470
  msgstr ""
5471
 
5472
+ #: includes/class-mla-settings.php:1505
5473
  msgid "Dismiss this notice"
5474
  msgstr ""
5475
 
5476
+ #: includes/class-mla-settings.php:1532
5477
  #, php-format
5478
  msgid "%s attachment"
5479
  msgid_plural "%s attachments"
5480
  msgstr[0] ""
5481
  msgstr[1] ""
5482
 
5483
+ #: includes/class-mla-settings.php:1534
5484
  #, php-format
5485
  msgid "Deleted custom field value from %1$s."
5486
  msgstr ""
5487
 
5488
+ #: includes/class-mla-settings.php:1537
5489
  msgid "No attachments contained this custom field."
5490
  msgstr ""
5491
 
5492
+ #: includes/class-mla-settings.php:1567 includes/class-mla-settings.php:1577
5493
  #, php-format
5494
  msgctxt "message_list"
5495
  msgid "%1$s - references updated."
5496
  msgstr ""
5497
 
5498
+ #: includes/class-mla-settings.php:1620
5499
  msgid "General settings saved."
5500
  msgstr ""
5501
 
5502
+ #: includes/class-mla-settings.php:1659
5503
  msgid "General settings reset to default values."
5504
  msgstr ""
5505
 
5506
+ #: includes/class-mla-settings.php:1701
5507
  msgid "select settings"
5508
  msgstr ""
5509
 
5510
+ #: includes/class-mla-settings.php:1721
5511
  msgid "Import ALL Settings"
5512
  msgstr ""
5513
 
5514
+ #: includes/class-mla-settings.php:1750 includes/class-mla-settings.php:1766
5515
  msgctxt "message_list"
5516
  msgid "exported"
5517
  msgstr ""
5518
 
5519
+ #: includes/class-mla-settings.php:1752 includes/class-mla-settings.php:1768
5520
  msgctxt "message_list"
5521
  msgid "skipped"
5522
  msgstr ""
5523
 
5524
+ #: includes/class-mla-settings.php:1775
5525
  msgid "ALL settings exported."
5526
  msgstr ""
5527
 
5528
+ #: includes/class-mla-settings.php:1786
5529
  #, php-format
5530
  msgid "%1$s: The settings directory ( %2$s ) cannot be created."
5531
  msgstr ""
5532
 
5533
+ #: includes/class-mla-settings.php:1790
5534
  #, php-format
5535
  msgid "%1$s: The settings directory ( %2$s ) is not writable."
5536
  msgstr ""
5537
 
5538
+ #: includes/class-mla-settings.php:1801
5539
  #, php-format
5540
  msgid "%1$s: The settings file ( %2$s ) could not be opened."
5541
  msgstr ""
5542
 
5543
+ #: includes/class-mla-settings.php:1808
5544
  #, php-format
5545
  msgctxt "error_log"
5546
  msgid "%1$s: _export_settings $error_info = \"%2$s\"."
5547
  msgstr ""
5548
 
5549
+ #: includes/class-mla-settings.php:1817
5550
  #, php-format
5551
  msgid "%1$s: Writing the settings file ( %2$s ) \"%3$s\"."
5552
  msgstr ""
5553
 
5554
+ #: includes/class-mla-settings.php:1823
5555
  #, php-format
5556
  msgid "Settings exported; %1$s settings recorded."
5557
  msgstr ""
5558
 
5559
+ #: includes/class-mla-settings.php:1841
5560
  msgid "No settings imported."
5561
  msgstr ""
5562
 
5563
+ #: includes/class-mla-settings.php:1850
5564
  msgid "Please select an import settings file from the dropdown list."
5565
  msgstr ""
5566
 
5567
+ #: includes/class-mla-settings.php:1854
5568
  msgid "The import settings dropdown selection is missing."
5569
  msgstr ""
5570
 
5571
+ #: includes/class-mla-settings.php:1862
5572
  #, php-format
5573
  msgctxt "error_log"
5574
  msgid "%1$s: _import_settings $error_info = \"%2$s\"."
5575
  msgstr ""
5576
 
5577
+ #: includes/class-mla-settings.php:1871
5578
  #, php-format
5579
  msgid "%1$s: Reading the settings file ( %2$s ) \"%3$s\"."
5580
  msgstr ""
5581
 
5582
+ #: includes/class-mla-settings.php:1890 includes/class-mla-settings.php:1906
5583
  msgctxt "message_list"
5584
  msgid "updated"
5585
  msgstr ""
5586
 
5587
+ #: includes/class-mla-settings.php:1893 includes/class-mla-settings.php:1909
5588
  msgctxt "message_list"
5589
  msgid "unchanged"
5590
  msgstr ""
5591
 
5592
+ #: includes/class-mla-settings.php:1914
5593
  #, php-format
5594
  msgid "Settings imported; %1$s updated, %2$s unchanged."
5595
  msgstr ""
5596
 
5597
+ #: includes/class-mla-shortcode-support.php:511
5598
+ #: includes/class-mla-shortcode-support.php:1944
5599
+ #: includes/class-mla-shortcode-support.php:4030
5600
+ #: includes/class-mla-shortcode-support.php:4330
5601
  msgid "Previous"
5602
  msgstr ""
5603
 
5604
+ #: includes/class-mla-shortcode-support.php:512
5605
+ #: includes/class-mla-shortcode-support.php:1945
5606
+ #: includes/class-mla-shortcode-support.php:4077
5607
+ #: includes/class-mla-shortcode-support.php:4336
5608
  msgid "Next"
5609
  msgstr ""
5610
 
5611
+ #: includes/class-mla-shortcode-support.php:584
5612
+ #: includes/class-mla-shortcode-support.php:590
5613
+ #: includes/class-mla-shortcode-support.php:2083
5614
+ #: includes/class-mla-shortcode-support.php:2090
5615
+ #: includes/class-mla-shortcode-support.php:3403
5616
+ #: includes/class-mla-shortcode-support.php:3410
5617
  #: includes/class-mla-template-support.php:598
5618
  msgid "not found"
5619
  msgstr ""
5620
 
5621
+ #: includes/class-mla-shortcode-support.php:614
5622
+ #: includes/class-mla-shortcode-support.php:2075
5623
+ #: includes/class-mla-shortcode-support.php:3395
5624
  msgid "mla_debug REQUEST"
5625
  msgstr ""
5626
 
 
5627
  #: includes/class-mla-shortcode-support.php:618
5628
+ #: includes/class-mla-shortcode-support.php:620
5629
  msgid "mla_debug attributes_errors"
5630
  msgstr ""
5631
 
5632
+ #: includes/class-mla-shortcode-support.php:626
5633
+ #: includes/class-mla-shortcode-support.php:2076
5634
+ #: includes/class-mla-shortcode-support.php:3396
5635
  msgid "mla_debug attributes"
5636
  msgstr ""
5637
 
5638
+ #: includes/class-mla-shortcode-support.php:627
5639
+ #: includes/class-mla-shortcode-support.php:2077
5640
+ #: includes/class-mla-shortcode-support.php:3397
5641
  msgid "mla_debug arguments"
5642
  msgstr ""
5643
 
5644
+ #: includes/class-mla-shortcode-support.php:719
5645
  msgid "mla_debug empty gallery"
5646
  msgstr ""
5647
 
5648
+ #: includes/class-mla-shortcode-support.php:740
5649
  msgid ""
5650
  "<strong>Photonic-enhanced [mla_gallery]</strong> type must be "
5651
  "<strong>default</strong>, query = "
5652
  msgstr ""
5653
 
5654
+ #: includes/class-mla-shortcode-support.php:1208
5655
  msgid "unknown"
5656
  msgstr ""
5657
 
5658
+ #: includes/class-mla-shortcode-support.php:2208
5659
  msgid "mla_debug empty cloud"
5660
  msgstr ""
5661
 
5662
+ #: includes/class-mla-shortcode-support.php:3531
5663
  msgid "mla_debug empty list"
5664
  msgstr ""
5665
 
5666
+ #: includes/class-mla-shortcode-support.php:3554
5667
  msgid "no-terms"
5668
  msgstr ""
5669
 
5670
+ #: includes/class-mla-shortcode-support.php:4867
5671
+ #: includes/class-mla-shortcode-support.php:5279
5672
+ #: includes/class-mla-shortcode-support.php:5310
5673
  msgid "Invalid mla_gallery"
5674
  msgstr ""
5675
 
5676
+ #: includes/class-mla-shortcode-support.php:5601
5677
  msgid "mla_debug query"
5678
  msgstr ""
5679
 
5680
+ #: includes/class-mla-shortcode-support.php:5602
5681
  msgid "mla_debug request"
5682
  msgstr ""
5683
 
5684
+ #: includes/class-mla-shortcode-support.php:5603
5685
  msgid "mla_debug query_vars"
5686
  msgstr ""
5687
 
5688
+ #: includes/class-mla-shortcode-support.php:5604
5689
  msgid "mla_debug post_count"
5690
  msgstr ""
5691
 
5692
+ #: includes/class-mla-shortcode-support.php:5628
5693
  msgid "mla_debug JOIN filter"
5694
  msgstr ""
5695
 
5696
+ #: includes/class-mla-shortcode-support.php:5668
5697
  msgid "mla_debug modified JOIN filter"
5698
  msgstr ""
5699
 
5700
+ #: includes/class-mla-shortcode-support.php:5693
5701
  msgid "mla_debug WHERE filter"
5702
  msgstr ""
5703
 
5704
+ #: includes/class-mla-shortcode-support.php:5722
5705
  msgid "mla_debug modified WHERE filter"
5706
  msgstr ""
5707
 
5708
+ #: includes/class-mla-shortcode-support.php:5745
5709
  msgid "mla_debug ORDER BY filter, incoming"
5710
  msgstr ""
5711
 
5712
+ #: includes/class-mla-shortcode-support.php:5745
5713
  msgid "Replacement ORDER BY clause"
5714
  msgstr ""
5715
 
5716
+ #: includes/class-mla-shortcode-support.php:5768
5717
  msgid "mla_debug posts_clauses filter"
5718
  msgstr ""
5719
 
5720
+ #: includes/class-mla-shortcode-support.php:5786
5721
  msgid "mla_debug posts_clauses_request filter"
5722
  msgstr ""
5723
 
5724
+ #: includes/class-mla-shortcode-support.php:6018
5725
  msgid "Invalid taxonomy"
5726
  msgstr ""
5727
 
5728
+ #: includes/class-mla-shortcode-support.php:6209
5729
  msgid "mla_debug query arguments"
5730
  msgstr ""
5731
 
5732
+ #: includes/class-mla-shortcode-support.php:6210
5733
  msgid "mla_debug last_query"
5734
  msgstr ""
5735
 
5736
+ #: includes/class-mla-shortcode-support.php:6211
5737
  msgid "mla_debug last_error"
5738
  msgstr ""
5739
 
5740
+ #: includes/class-mla-shortcode-support.php:6212
5741
  msgid "mla_debug num_rows"
5742
  msgstr ""
5743
 
5744
+ #: includes/class-mla-shortcode-support.php:6213
5745
  msgid "mla_debug found_rows"
5746
  msgstr ""
5747
 
languages/media-library-assistant-en_US.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Media Library Assistant\n"
4
- "POT-Creation-Date: 2020-03-31 20:12-0700\n"
5
- "PO-Revision-Date: 2020-03-31 20:12-0700\n"
6
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -60,6 +60,38 @@ msgstr ""
60
  msgid "Assistant"
61
  msgstr ""
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  msgid "Title"
64
  msgstr ""
65
 
@@ -901,6 +933,14 @@ msgid ""
901
  "then click <strong>Save Changes</strong> to record the new setting."
902
  msgstr ""
903
 
 
 
 
 
 
 
 
 
904
  msgid "Display Limit"
905
  msgstr ""
906
 
@@ -1112,9 +1152,6 @@ msgctxt "error_log"
1112
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1113
  msgstr ""
1114
 
1115
- msgid "DEBUG"
1116
- msgstr ""
1117
-
1118
  #, php-format
1119
  msgctxt "error_log"
1120
  msgid "%1$s: _execute_list_table_query WP_Query = \"%2$s\"."
@@ -1188,6 +1225,11 @@ msgctxt "error_log"
1188
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1189
  msgstr ""
1190
 
 
 
 
 
 
1191
  #, php-format
1192
  msgctxt "error_log"
1193
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Media Library Assistant\n"
4
+ "POT-Creation-Date: 2020-08-13 16:21-0700\n"
5
+ "PO-Revision-Date: 2020-08-13 16:21-0700\n"
6
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
60
  msgid "Assistant"
61
  msgstr ""
62
 
63
+ #, php-format
64
+ msgctxt "error_log"
65
+ msgid "%1$s: mla_mmmw_query_posts_clauses_filter = \"%2$s\"."
66
+ msgstr ""
67
+
68
+ msgid "DEBUG"
69
+ msgstr ""
70
+
71
+ #, php-format
72
+ msgctxt "error_log"
73
+ msgid "%1$s: mla_mmmw_query_posts_clauses_request_filter = \"%2$s\"."
74
+ msgstr ""
75
+
76
+ #, php-format
77
+ msgctxt "error_log"
78
+ msgid "%1$s: mla_mmmw_query_posts_request_filter = \"%2$s\"."
79
+ msgstr ""
80
+
81
+ #, php-format
82
+ msgctxt "error_log"
83
+ msgid ""
84
+ "%1$s: mla_mmmw_query_posts_results_filter post_count = \"%2$d\", found_posts "
85
+ "= \"%3$d\" count = %4$d."
86
+ msgstr ""
87
+
88
+ #, php-format
89
+ msgctxt "error_log"
90
+ msgid ""
91
+ "%1$s: mla_mmmw_query_the_posts_filter post_count = \"%2$d\", found_posts = "
92
+ "\"%3$d\" count = %4$d."
93
+ msgstr ""
94
+
95
  msgid "Title"
96
  msgstr ""
97
 
933
  "then click <strong>Save Changes</strong> to record the new setting."
934
  msgstr ""
935
 
936
+ msgid "Always Use MLA MIME Type"
937
+ msgstr ""
938
+
939
+ msgid ""
940
+ "Check this option to override WordPress MIME Type security checks, then "
941
+ "click <strong>Save Changes</strong> to record the new setting."
942
+ msgstr ""
943
+
944
  msgid "Display Limit"
945
  msgstr ""
946
 
1152
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1153
  msgstr ""
1154
 
 
 
 
1155
  #, php-format
1156
  msgctxt "error_log"
1157
  msgid "%1$s: _execute_list_table_query WP_Query = \"%2$s\"."
1225
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1226
  msgstr ""
1227
 
1228
+ #, php-format
1229
+ msgctxt "error_log"
1230
+ msgid "%1$s: _find_parameter no end delimiter, tail = \"%2$s\"."
1231
+ msgstr ""
1232
+
1233
  #, php-format
1234
  msgctxt "error_log"
1235
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
languages/media-library-assistant-en_US.pot CHANGED
@@ -2,7 +2,7 @@
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
- "POT-Creation-Date: 2020-03-31 20:11-0700\n"
6
  "PO-Revision-Date: 2015-08-21 21:38-0800\n"
7
  "Last-Translator: David Lingren <david@fairtradejudaica.org>\n"
8
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
@@ -61,6 +61,38 @@ msgstr ""
61
  msgid "Assistant"
62
  msgstr ""
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  msgid "Title"
65
  msgstr ""
66
 
@@ -902,6 +934,14 @@ msgid ""
902
  "then click <strong>Save Changes</strong> to record the new setting."
903
  msgstr ""
904
 
 
 
 
 
 
 
 
 
905
  msgid "Display Limit"
906
  msgstr ""
907
 
@@ -1113,9 +1153,6 @@ msgctxt "error_log"
1113
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1114
  msgstr ""
1115
 
1116
- msgid "DEBUG"
1117
- msgstr ""
1118
-
1119
  #, php-format
1120
  msgctxt "error_log"
1121
  msgid "%1$s: _execute_list_table_query WP_Query = \"%2$s\"."
@@ -1189,6 +1226,11 @@ msgctxt "error_log"
1189
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1190
  msgstr ""
1191
 
 
 
 
 
 
1192
  #, php-format
1193
  msgctxt "error_log"
1194
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
+ "POT-Creation-Date: 2020-08-13 16:20-0700\n"
6
  "PO-Revision-Date: 2015-08-21 21:38-0800\n"
7
  "Last-Translator: David Lingren <david@fairtradejudaica.org>\n"
8
  "Language-Team: David Lingren <david@fairtradejudaica.org>\n"
61
  msgid "Assistant"
62
  msgstr ""
63
 
64
+ #, php-format
65
+ msgctxt "error_log"
66
+ msgid "%1$s: mla_mmmw_query_posts_clauses_filter = \"%2$s\"."
67
+ msgstr ""
68
+
69
+ msgid "DEBUG"
70
+ msgstr ""
71
+
72
+ #, php-format
73
+ msgctxt "error_log"
74
+ msgid "%1$s: mla_mmmw_query_posts_clauses_request_filter = \"%2$s\"."
75
+ msgstr ""
76
+
77
+ #, php-format
78
+ msgctxt "error_log"
79
+ msgid "%1$s: mla_mmmw_query_posts_request_filter = \"%2$s\"."
80
+ msgstr ""
81
+
82
+ #, php-format
83
+ msgctxt "error_log"
84
+ msgid ""
85
+ "%1$s: mla_mmmw_query_posts_results_filter post_count = \"%2$d\", found_posts "
86
+ "= \"%3$d\" count = %4$d."
87
+ msgstr ""
88
+
89
+ #, php-format
90
+ msgctxt "error_log"
91
+ msgid ""
92
+ "%1$s: mla_mmmw_query_the_posts_filter post_count = \"%2$d\", found_posts = "
93
+ "\"%3$d\" count = %4$d."
94
+ msgstr ""
95
+
96
  msgid "Title"
97
  msgstr ""
98
 
934
  "then click <strong>Save Changes</strong> to record the new setting."
935
  msgstr ""
936
 
937
+ msgid "Always Use MLA MIME Type"
938
+ msgstr ""
939
+
940
+ msgid ""
941
+ "Check this option to override WordPress MIME Type security checks, then "
942
+ "click <strong>Save Changes</strong> to record the new setting."
943
+ msgstr ""
944
+
945
  msgid "Display Limit"
946
  msgstr ""
947
 
1153
  msgid "%1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1154
  msgstr ""
1155
 
 
 
 
1156
  #, php-format
1157
  msgctxt "error_log"
1158
  msgid "%1$s: _execute_list_table_query WP_Query = \"%2$s\"."
1226
  msgid "%1$s: mla_parse_template no end delimiter, tail = \"%2$s\"."
1227
  msgstr ""
1228
 
1229
+ #, php-format
1230
+ msgctxt "error_log"
1231
+ msgid "%1$s: _find_parameter no end delimiter, tail = \"%2$s\"."
1232
+ msgstr ""
1233
+
1234
  #, php-format
1235
  msgctxt "error_log"
1236
  msgid "%1$s: _find_delimited_substring no end delimiter, tail = \"%2$s\"."
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === Media Library Assistant ===
2
  Contributors: dglingren
3
  Donate link: http://davidlingren.com/#two
4
- Tags: attachments, gallery, images, media, media library, tags, categories, IPTC, EXIF, XMP, GPS, PDF, metadata, photos, photographs, photo albums, MIME, mime-type, icon, upload, file extensions, WPML, Polylang
5
  Requires at least: 3.5.0
6
- Tested up to: 5.4
7
  Requires PHP: 5.3
8
- Stable tag: 2.83
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -181,57 +181,38 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
181
 
182
  == Changelog ==
183
 
184
- = 2.83 =
185
- * Fix: For Admin Columns Pro v5.1+, correct "Fatal error: Class ACP_Addon_MLA_Export_Strategy..." problem.
186
- * Fix: For the Media Manager Modal (popup) Window, correct positioning of the attachments area below the toolbar.
187
-
188
- = 2.82 =
189
- * New: For the "MLA Insert Fixit" example plugin, new "Figure Caption" tools let you add or replace `<figcaption>` values for items and galleries in the body of a post/page.
190
- * New: For the "MLA Insert Fixit" example plugin, a new "Item fields to parent" tool lets you copy custom field values from attached items to their parent post/page.
191
- * New: For the "MLA Insert Fixit" example plugin, allow multiple taxonomy pairs for the "Item terms to parent" and "Parent terms to item" tools.
192
- * New: For the `[mla_gallery]` shortcode Taxonomy term keyword(s) search, a new `whole_word=true` parameter requires each entered word to match an entire word in the term name, e.g., entering "man" (without the quotes) will not match a portion of "woman" in the term name.
193
- * New: For the "MLA tax query Example" plugin, multiple taxonomies are allowed in `my_custom_sql` and a new `tax_operator` parameter within `my_custom_sql` supports "AND" to require a match on all of the terms in the taxonomy parameters..
194
- * New: For the "WooCommerce Fixit Tools" example plugin, new "Populate Product from Product Image" tool updates Product values from the Product Image.
195
- * New: For the "MLA Insert Fixit" example plugin, allow custom post types for the "Copy ALT Text between Media Library items and Post/Page inserts" tools.
196
- * Fix: For `[mla_gallery]`, when `mla_alt_ids_value` is used the style template, gallery open and row open HTML markup is no longer generated. Only the output of the alternate shortcode is echoed to the browser.
197
- * Fix: For the Media Manager Modal (popup) Window, toolbar controls no longer overflow into the Attachmenta area..
198
- * Fix: For the Media Manager Modal (popup) Window, "Filter media" selections, e.g., search box contents, persist for two or more "Media Library" invocations on a post/page.
199
- * Fix: Corrected Chrome & Firefox issue with "Search Box" checkbox control changes not being recorded.
200
- * Fix: Corrected PHP 7.4 issue with deprecated curly braces in `class-mla-data.php` and `class-mla-data-query.php`.
201
- * Fix: For "MLA Gallery in" (where-used) reporting, shortcodes using the enclosing shortcode syntax are now included in the results.
202
- * Fix: For "search" text boxes in all Settings/Media Library Assistant tabs, properly escape values to prevent Reflected Cross Site Scripting attacks.
203
- * Fix: For `[mla_gallery]` `link=download`, restrict downloads to the WordPress Uploads directory subtree to prevent Local File Disclosure attacks. The old file downloader has been replaced by an AJAX-based WordPress request.
204
- * Fix: For `[mla_gallery]`, validate content of `tax_query`, `meta_query` and `date_query` parameters to prevent Remote Code Execution attacks.
205
- * Fix: For the "MLA UI Elements Example" plugin, correct parameter handling defects in `[mla_term_list]` handler.
206
- * Fix: For WordPress 5.3+ "big image" handling, use the "original image" for sourcing IPTC/EXIF/XMP metadata, not the "scaled" image.
207
-
208
- = 2.81 =
209
- * New: For the "Field-level Substitution Parameters", a new "mso:" prefix gives access to the Document Properties embedded in Office Open XML file formats (e.g., docx, xlsx, pptx). More information is given in the "Prefix values" section of the Settings/Media Library Assistant Documentation tab.
210
- * New: For the Bulk Edit, a new `[+reverse_index+]` substitution parameter counts down from the number of selected items to one. More informatin is in the Help menu for the Media/Assistant admin screen.
211
- * New: For the "WooCommerce Fixit" example plugin, product category thumbnail information is added to the "Woo Used In" Media/Assistant table column.
212
- * Fix: IPTC/EXIF and Custom Field mapping logic updated for compatibility with WordPress 5.3.
213
- * Fix: Updated Media Manager Modal Window and Media/Library Grid view styles for compatibility with WordPress 5.3.
214
- * Fix: For the Settings/Media Library Assistant Example Plugins page, update the `MLA_Upgrader_Skin` code for compatibility with WordPress 5.3.
215
- * Fix: For the Settings/Media Library Assistant IPTC/EXIF tab, PHP Notices for invalid taxonomy rules have been resolved.
216
- * Fix: For the "replace()" option/format value, empty replacement values are now allowed.
217
- * Fix: For custom field mapping rules, "Option: Array" now works with multi-level nested subarrays.
218
- * Fix: For custom field mapping rules, "Delete NULL Values" now works with "Format: Raw".
219
- * Fix: For "WordPress-style" PDF thumbnail generation, occasional PHP "Illegal string offset 'sizes'" errors have been resolved.
220
-
221
- = 2.80 =
222
- * New: A new "MLA Phoenix Media Rename Example" plugin has been added to the "Examples" family in the Settings/Media Library Assistant Documentation tab. It adds support for the Phoenix Media Rename plugin's "Filename" column to the Media/Assistant submenu table.
223
- * Fix: For the Media/Assistant admin submenu screen, avoid "headers already sent" error with JoomUnited's WP Media Folders.
224
- * Fix: Improved error handling and debug logging for PDF thumbnail generation, especially "WordPress style" thumbnails.
225
- * Fix: Avoid Javascript "Uncaught Reference Error" in `mla-define-ajaxurl-scripts.js`, e.g., for Divi theme.
226
- * Fix: PHP 7.x compatibility error in `class-mla-settings-documentation-tab.php`, function `MLA_Upgrader_Skin->feedback()` has been resolved.
227
- * Fix: When the per-user "admin language" is set to "English (United States)", the untranslated MLA strings are restored in "back end" mode.
228
- * Fix: Improve handling of shortcode parameter/content errors, avoiding misleading "Invalid tax_query" messages. Improved error information in the `mla_debug` output as well.
229
- * Fix: For the "MLA Insert Fixit" example plugin, correct flaw in finding inserted images that have a relative path in the `src=` attribute of the IMG tag.
230
- * Fix: For the "MLA Insert Fixit" example plugin, correct flaw in finding inserted images that have other attributes preceding `src=` in the IMG tag.
231
- * Fix: For the `,extract(p,v)` option/format value, correct named subpattern and `matches:` prefix handling.
232
- * Fix: When Polylang is active, eliminate PHP messages and errors for some Media/Assistant Bulk Translate settings.
233
- * Fix: When decoding the `wp_filter` list for debug logging, unknown reference types no longer cause PHP errors.
234
- * Fix: Handles new synchronization protocol for WP/LR Sync version 5.0+
235
 
236
  = 2.70 - 2.79 =
237
  * 2.79 - [mla_gallery] keyword/term search "exclude" logic, [mla_tag_cloud] performance improvements, Media/Assistant Download bulk action. Nine enhancements in all, six fixes.
@@ -336,8 +317,8 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
336
 
337
  == Upgrade Notice ==
338
 
339
- = 2.83 =
340
- Avoid "Fatal error:" with Admin Columns Pro version 5.1+. Fix Attachments area positioning in the Media Manager Modal (popup) Window. Two fixes in all.
341
 
342
  == Other Notes ==
343
 
@@ -386,24 +367,6 @@ The `[mla_term_list]` shortcode has many parameters and some of them have a comp
386
 
387
  Many of the `[mla_term_list]` concepts and shortcode parameters are modeled after the [mla_gallery] and [mla_tag_cloud] shortcodes, so the learning curve is shorter. Differences and parameters unique to the list are given in the sections below.
388
 
389
- <h4>Argument Substitution Parameters for custom markup templates</h4>
390
-
391
- A markup template can include default values for any of the shortcode parameters and values you define for your own use, e.g., you can add <code>columns=1</code> to the arguments section to change the MLA default value whenever the template is used. The argument substitution parameter(s) you define in the markup template are treated as if you had added them to the shortcode that uses the template, but parameters you actually use in the shortcode will overide the default values you code in the arguments section. For example, if the arguments section of your "blue-table" markup template looks like:
392
-
393
- <code>columns=1 div-class=blue div-id=id3</code>
394
-
395
- and your shortcode is
396
-
397
- <code>[mla_gallery mla_markup=blue-table div-id=ID5]</code>
398
-
399
- the end result will be as if you had coded
400
-
401
- <code>[mla_gallery mla_markup=blue-table div-id=ID5 columns=1 div-class=blue]</code>
402
-
403
- The custom parameters you code in the arguments section become part of the shortcode parameters. To access them in your template or in other shortcode parameters you must use the 'query:' prefix, e.g., <code>[+query:div-class+]</code> in the template or <code>{+query:div-id+}</code> in another shortcode parameter.
404
-
405
- In the arguments section you can separate the parameters with one or more spaces or you can code them on separate lines. If your parameter value includes spaces you must enclose it in single or double quotes.
406
-
407
  <h4>Support for the "Admin Columns" Plugin</h4>
408
 
409
  The [Admin Columns plugin](https://wordpress.org/plugins/codepress-admin-columns/ "Admin Columns free version") allows you to customize columns on several admin-mode screens, including the MLA Media/Assistant submenu screen. All you have to do is install the plugin; MLA will detect its presence and automatically register the Media/Assistant submenu screen for support. With Admin Columns, you can:
@@ -420,28 +383,6 @@ You can find detailed configuration instructions at the [Admin Columns web site
420
 
421
  When you have completed your configuration changes, click "Update Media Library Assistant" in the Store Settings metabox at the top-right of the screen. You can also click "Restore Media Library Assistant columns" to remove your changes and go back to the MLA default settings. Click the "View" button at the right of the Media Library Assistant heading to return to the Media/Assistant submenu screen and see your changes.
422
 
423
- <h4>[mla_gallery] Post Type, Post Status support</h4>
424
-
425
- For compatibility with the WordPress <code>[gallery]</code> shortcode, these parameters default to <code>post_type=attachment</code>, <code>post_status=inherit</code>. You can override the defaults to, for example, display items in the trash (<code>post_status=trash</code>).
426
-
427
- You can change the <code>post_type</code> parameter to compose a "gallery" of WordPress objects such as posts, pages and custom post types. For example, to display a gallery of the published posts in a particular category you can code something like:
428
-
429
- <code>[mla_gallery category=some-term post_type=post post_status=publish post_mime_type=all]</code>
430
-
431
- Note that you must also change the <code>post_status</code> and <code>post_mime_type</code> because the default values for those parameters are set for Media Library image items.
432
-
433
- For posts, pages and custom post types some of the other data values are used in slightly different ways:
434
-
435
- * Title - Taken from the Title of the item.
436
- * Caption - Taken from the Excerpt of the item.
437
- * ALT Text - Not used.
438
- * Description - Taken from the Content of the item.
439
- * Thumbnail - Taken from the Featured Image of the item, if set. You can use the <code>size</code> parameter to display any of the available image sizes. If no Featured Image is set, the Title will be used instead.
440
- * Page Link (<code>link=page</code>) - Taken from the "guid", or "short form" of the link to the item.
441
- * File Link (<code>link=file</code>) - Taken from the permalink to the item.
442
-
443
- You can find all the parameter values and more examples in the WP_Query class reference Type Parameters and Status Parameters sections.
444
-
445
  <h4>WPML &amp; Polylang Multilingual Support; the MLA Language Tab</h4>
446
 
447
  Media Library Assistant provides integrates support for two popular "Multilanguage/ Multilingual/ Internationalization" plugins; [WPML](https://wpml.org/ "WPML - The WordPress Multilingual Plugin") and [Polylang](https://wordpress.org/plugins/polylang/ "Polylang - Making WordPress multilingual"). These plugins let you write posts and pages in multiple languages and make it easy for a visitor to select the language in which to view your site. MLA works with the plugins to make language-specific Media library items easy to create and manage.
1
  === Media Library Assistant ===
2
  Contributors: dglingren
3
  Donate link: http://davidlingren.com/#two
4
+ Tags: media, media library, gallery, images, categories, tags, attachments, IPTC, EXIF, XMP, GPS, PDF, metadata, photos, photographs, photo albums, MIME, mime-type, icon, upload, file extensions, WPML, Polylang
5
  Requires at least: 3.5.0
6
+ Tested up to: 5.5
7
  Requires PHP: 5.3
8
+ Stable tag: 2.84
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
181
 
182
  == Changelog ==
183
 
184
+ = 2.84 =
185
+ * New: For the "MLA Substitution Parameter Hooks Example" plugin, a new "ucwords" custom format value lets you uppercase the first letter in each word of a string.
186
+ * New: For the Media/Assistant submenu table, if a non-image item has a Featured Image, it will be displayed as the item thumbnail instead of the MIME Type icon.
187
+ * New: A new option, "Always Use MLA MIME Type", has been added to the Settings/Media Library Assistant Uploads tab. When checked, this option overrides WordPress validation logic that fails some uploads for "security purposes". For example, a CSV file that contains HTML tags on one or more cells. More information in the "Help" dropdown menu for the tab.
188
+ * New: Support for the PaidMembershipsPro plugin has been added. MLA will restrict access to attachments assigned to "members-only categories" in the `[mla_gallery]` shortcode.
189
+ * New: The "MLA Gallery Download Archive" example plugin implements a shortcode that lets you download the files attached to a "gallery" of Media library items as a ZIP archive file. Documentation is provided in comments at the start of the source code.
190
+ * New: The "MLA CSV Data Source Example" plugin allows you to access values in a CSV file as a custom Data Source for MLA Bulk Edit templates, mapping rules and shortcode parameters. Detailed instructions are provided in a Documentation tab.
191
+ * New: For the `[mla_tag_cloud]` and `[mla_term_list]` shortcodes, the `orderby=term_order` parameter supports the "drag and drop" ordering of taxonomy terms created by the <a href="https://wordpress.org/plugins/simple-custom-post-order/" target="_blank" rel="noopener noreferrer nofollow">Simple Custom Post Order</a> plugin.
192
+ * New: For the `[mla_tag_cloud]` and `[mla_term_list]` shortcodes, the `orderby=tax_position` parameter supports the "drag and drop" ordering of taxonomy terms created by the <a href="https://wordpress.org/plugins/simple-taxonomy-ordering/" target="_blank" rel="noopener noreferrer nofollow">Simple Taxonomy Ordering</a> plugin.
193
+ * New: For the Media/Assistant admin submenu and `[mla_gallery]` shortcode, support is added for the "Media Library" filter used in the <a href="https://wordpress.org/plugins/featured-image-from-url/" target="_blank" rel="noopener noreferrer nofollow">Featured Image from URL</a> plugin.
194
+ * New: For the "MLA Advanced Custom Fields Example" plugin, add "where used" information for the ACF "image" field type. See the first page of the plugin source code for details.
195
+ * New: A new `MLA_DEBUG_LEVEL` category allows logging of "query-attachments" requests and results for the Media Manager Modal Window.
196
+ * New: For IPTC/EXIF taxonomy mapping rules, the "text" option supports composing a term name from a Content Template with multiple data sources.
197
+ * New: Allow ALT Taxt values to be assigned to `application\*` MIME types, such as PDF documents, in the Media/Assistant Bulk Edit and Quick Edit areas. These will populate the `alt=` attributes of `<img>` tags in `[mla_gallery]` displays.
198
+ * Fix: Deprecated Jquery functions have been replaced for compatibility with WP 5.5+.
199
+ * Fix: Cross site scripting (reflected) and HTTP parameter pollution problems in `[mla_gallery]` pagination controls have been resolved.
200
+ * Fix: Some problems parsing Content Templates with nested "test" delimiters have been resolved.
201
+ * Fix: References to the `WP_Query` class documentation in the WordPress Code Reference have been updated.
202
+ * Fix: Accommodate WordPress 5.4.2 bug that prevents changing "items per screen",e.g., on the Media/Assistant submenu table.
203
+ * Fix: Correct parsing problems with embedded delimiter characters in Content Template choice elements.
204
+ * Fix: Allow mapping rule taxonomy term assignment for "not logged in" applications such as WP/LR Sync.
205
+ * Fix: Avoid PHP Notice messages for attempts to extract non-existent metadata from, for example, SVG images.
206
+ * Fix: For the `[mla_gallery]` shortcode, empty `tax_query` parameters are now accepted and ignored, matching the behavior of simple taxonomy parameters.
207
+ * Fix: For the Bulk Edit Area in the Media/Add New (Upload New Media) screen, content templates with backslash characters are now parsed and processed correctly.
208
+ * Fix: For Admin Columns v4.1+ and Pro v5.0+, correct "Deprecated: AC\AdminColumns::register_list_screen..." problem.
209
+ * Fix: For the "MLA Custom Feed Example" plugin, correct the handling of values containing quotes and special characters in the "Edit Feed" page.
210
+
211
+ = 2.80 - 2.83 =
212
+ * 2.83 - Avoid "Fatal error:" with Admin Columns Pro version 5.1+. Fix Attachments area positioning in the Media Manager Modal (popup) Window. Two fixes in all.
213
+ * 2.82 - Compatibility updates for WordPress 5.4. Security fixes to prevent three categories of attacks. New tools for "MLA Insert Fixit" and “WooCommerce Fixit Tools" example plugins. Fixes for `[mla_gallery]` and Media Manager Modal Window. Seven enhancements in all, eleven fixes.
214
+ * 2.81 - Compatibility updates for WordPress 5.3. New "mso:" prefix gives access to the Document Properties embedded in Office Open XML file formats (e.g., docx, xlsx, pptx). Three enhancements, eight fixes.
215
+ * 2.80 - A new "MLA Phoenix Media Rename Example" plugin supports the Phoenix Media Rename plugin. MLA Insert Fixit example plugin improvements, improved support for other plugins and themes. One enhancement, twelve fixes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
 
217
  = 2.70 - 2.79 =
218
  * 2.79 - [mla_gallery] keyword/term search "exclude" logic, [mla_tag_cloud] performance improvements, Media/Assistant Download bulk action. Nine enhancements in all, six fixes.
317
 
318
  == Upgrade Notice ==
319
 
320
+ = 2.84 =
321
+ WP 5.5 support, new Always Use MLA MIME Type option, CSV Data Source example plugin, Support for PaidMembershipsPro, Simple Taxonomy Ordering, Simple Custom Post Order, Featured Image from URL plugins. Thirteen enhancements in all, twelve fixes.
322
 
323
  == Other Notes ==
324
 
367
 
368
  Many of the `[mla_term_list]` concepts and shortcode parameters are modeled after the [mla_gallery] and [mla_tag_cloud] shortcodes, so the learning curve is shorter. Differences and parameters unique to the list are given in the sections below.
369
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  <h4>Support for the "Admin Columns" Plugin</h4>
371
 
372
  The [Admin Columns plugin](https://wordpress.org/plugins/codepress-admin-columns/ "Admin Columns free version") allows you to customize columns on several admin-mode screens, including the MLA Media/Assistant submenu screen. All you have to do is install the plugin; MLA will detect its presence and automatically register the Media/Assistant submenu screen for support. With Admin Columns, you can:
383
 
384
  When you have completed your configuration changes, click "Update Media Library Assistant" in the Store Settings metabox at the top-right of the screen. You can also click "Restore Media Library Assistant columns" to remove your changes and go back to the MLA default settings. Click the "View" button at the right of the Media Library Assistant heading to return to the Media/Assistant submenu screen and see your changes.
385
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
386
  <h4>WPML &amp; Polylang Multilingual Support; the MLA Language Tab</h4>
387
 
388
  Media Library Assistant provides integrates support for two popular "Multilanguage/ Multilingual/ Internationalization" plugins; [WPML](https://wpml.org/ "WPML - The WordPress Multilingual Plugin") and [Polylang](https://wordpress.org/plugins/polylang/ "Polylang - Making WordPress multilingual"). These plugins let you write posts and pages in multiple languages and make it easy for a visitor to select the language in which to view your site. MLA works with the plugins to make language-specific Media library items easy to create and manage.
tpls/admin-display-settings-custom-fields-tab.tpl CHANGED
@@ -421,7 +421,7 @@ href="#mla-new-custom-field">
421
  </span> <span class="checkbox-title">[+Delete NULL+]</span>
422
  </label>
423
  <label class="alignleft"> <span class="dropdown-title">[+Status+]</span> <span class="input-dropdown-wrap">
424
- <select name="status">
425
  <option value="1">[+Active+]</option>
426
  <option value="">[+Inactive+]</option>
427
  </select>
421
  </span> <span class="checkbox-title">[+Delete NULL+]</span>
422
  </label>
423
  <label class="alignleft"> <span class="dropdown-title">[+Status+]</span> <span class="input-dropdown-wrap">
424
+ <select name="active">
425
  <option value="1">[+Active+]</option>
426
  <option value="">[+Inactive+]</option>
427
  </select>
tpls/admin-display-settings-iptc-exif-tab.tpl CHANGED
@@ -84,6 +84,14 @@ href="#mla-new-iptc-exif"> [+Cancel Name Change+] </a>
84
  <option [+replace_selected+] value="">[+Replace+]</option>
85
  </select></td>
86
  </tr>
 
 
 
 
 
 
 
 
87
  <tr class="form-field iptc-exif-delimiters-wrap [+taxonomy_class+]">
88
  <th scope="row"> <label for="mla-iptc-exif-delimiters">[+Delimiters+]</label>
89
  </th>
@@ -344,6 +352,12 @@ href="#mla-new-iptc-exif"> [+Cancel new field+] </a></td>
344
  <option value="">[+Replace+]</option>
345
  </select>
346
  </span> </label>
 
 
 
 
 
 
347
  <label class="alignleft"> <span class="dropdown-title">[+Status+]</span> <span class="input-dropdown-wrap">
348
  <select name="active">
349
  <option value="1">[+Active+]</option>
84
  <option [+replace_selected+] value="">[+Replace+]</option>
85
  </select></td>
86
  </tr>
87
+ <tr class="form-field iptc-exif-option-wrap [+taxonomy_class+]">
88
+ <th scope="row"> <label for="mla-iptc-exif-tax-option">[+Option+]</label>
89
+ </th>
90
+ <td><select name="mla_iptc_exif_rule[tax_option]" id="mla-iptc-exif-tax-option">
91
+ <option [+array_option+] value="array">[+Array+]</option>
92
+ <option [+text_option+] value="text">[+Text+]</option>
93
+ </select></td>
94
+ </tr>
95
  <tr class="form-field iptc-exif-delimiters-wrap [+taxonomy_class+]">
96
  <th scope="row"> <label for="mla-iptc-exif-delimiters">[+Delimiters+]</label>
97
  </th>
352
  <option value="">[+Replace+]</option>
353
  </select>
354
  </span> </label>
355
+ <label class="alignleft"> <span class="dropdown-title">[+Option+]</span> <span class="input-dropdown-wrap">
356
+ <select name="tax_option">
357
+ <option value="array">[+Array+]</option>
358
+ <option value="text">[+Text+]</option>
359
+ </select>
360
+ </span> </label>
361
  <label class="alignleft"> <span class="dropdown-title">[+Status+]</span> <span class="input-dropdown-wrap">
362
  <select name="active">
363
  <option value="1">[+Active+]</option>
tpls/documentation-settings-tab.tpl CHANGED
@@ -226,7 +226,7 @@ The <code>[mla_gallery]</code> shortcode is used in a post, page or custom post
226
  If you're new to Media Library Assistant and the <code>[mla_gallery]</code> shortcode you should read through the material in the <a href="#gallery_examples">MLA Gallery Examples</a> section.
227
  </p>
228
  <p>
229
- All of the options/parameters documented for the <code>[gallery]</code> shortcode are supported by the <code>[mla_gallery]</code> shortcode; you can find them in the <a href="http://codex.wordpress.org/Gallery_Shortcode" title="WordPress Codex link" target="_blank">WordPress Codex</a>. Most of the parameters documented for the WP_Query class are also supported; see the <a href="http://codex.wordpress.org/Class_Reference/WP_Query" title="WordPress Codex link" target="_blank">Codex WP_Query class reference</a>. Because the <code>[mla_gallery]</code> shortcode is designed to work with Media Library items, there are some parameter differences and extensions; these are documented below.
230
  <a name="gallery_substitution"></a>
231
  </p>
232
  <h4>Substitution Parameters</h4>
@@ -436,7 +436,10 @@ Twelve <code>[mla_gallery]</code> parameters provide an easy way to control the
436
  </tr>
437
  </table>
438
  <p>
439
- All but the "mla_target" parameter support the <a href="#mla_markup_parameters">Markup</a>, <a href="#mla_attachment_parameters">Attachment-specific</a>, <a href="#mla_variable_parameters">Field-level</a> and <a href="#mla_template_parameters">Content Template</a> substitution parameters defined for Markup Templates. For example, if you code "<code>mla_rollover_text='{+date+} : {+description+}'</code>, the rollover text will contain the upload date, a colon, and the full description of each gallery item. Simply add "{+" before the substitution parameter name and add "+}" after the name. Note that the enclosing delimiters are different than those used in the templates, since the WordPress shortcode parser reserves square brackets ("[" and "]") for its own use.
 
 
 
440
  </p>
441
  <p>
442
  The "mla_link_href" parameter is a great way to change the destination your gallery item links to or add arguments to the link for later processing. For example, to make a gallery item link back to the page/post it is attached to, you can code: <code>mla_link_href='{+site_url+}/?page_id={+parent+}'</code>. You can also add arguments to the link, e.g., <code>mla_link_href='{+link_url+}?myarg1=myvalue1&amp;amp;myarg2=myvalue2'</code>. Note the use of the HTML entity name "&amp;amp;" to put an ampersand in the value; the WordPress "visual" post editor will replace "&amp;", "&lt;" and ">" with "&amp;amp;", "&amp;lt;" and "&amp;gt;" whether you like it not. The <strong>only</strong> markup parameter modified by this parameter is "link". Other markup parameters such as "pagelink", "filelink" and "link_url" are not modified.
@@ -445,7 +448,13 @@ The "mla_link_href" parameter is a great way to change the destination your gall
445
  The "mla_link_attributes" and "mla_image_attributes" parameters accept any value and adds it to the "&lt;a&gt;" or "&lt;img&gt;" tags for the gallery item. For example, you can create a Shadowbox JS (plugin) album by adding <code>mla_link_attributes='rel="shadowbox{sbalbum-{+instance+}};player=img"'</code> to your shortcode query (note the use of single quotes around the parameter value and the double quotes within the parameter). <strong>IMPORTANT:</strong> since the shortcode parser reserves square brackets ("[" and "]") for its own use, <strong>you must substitute curly braces for square brackets</strong> if your attributes require brackets (as this example does). In this case, the actual attribute added to the link will be <code>rel="shadowbox[sbalbum-1];player=img"</code>. If you must code a curly brace in your attribute value, preface it with <strong>two backslash characters</strong>, e.g., "\\{" or "\\}". If you code an attribute already present in the tag, your value will override the existing value.
446
  </p>
447
  <p>
448
- The "mla_target" parameter accepts any value and adds an HTML "target" attribute to the hyperlink with that value. For example, if you code <code>mla_target="_blank"</code> the item will open in a new window or tab. You can also use "_self", "_parent", "_top" or the "<em>framename</em>" of a named frame.
 
 
 
 
 
 
449
  <a name="thumbnail_substitution"></a>
450
  </p>
451
  <h4>Thumbnail Substitution Support, mla_viewer</h4>
@@ -530,7 +539,7 @@ If your Ghostscript software is in a non-standard location, enter the full path
530
  <a name="order_orderby"></a>&nbsp;
531
  <h4>Order, Orderby</h4>
532
  <p>
533
- The Orderby parameter specifies which database field(s) are used to sort the gallery. You can sort the gallery by one or more of these values (there is additional information on some of these values in the <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters" title="WordPress Codex link" target="_blank">Codex WP_Query class reference</a>):
534
  </p>
535
  <table>
536
  <tr>
@@ -790,7 +799,7 @@ The Category parameters search in the WordPress core &quot;Categories&quot; taxo
790
  </tr>
791
  </table>
792
  <p>
793
- More information and examples can be found on the <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters" title="WordPress Codex page" target="_blank">WordPress Codex WP_Query Class Reference</a> page.
794
  <a name="tag_parameters"></a>
795
  </p>
796
  <h4>Tag Parameters</h4>
@@ -798,13 +807,13 @@ More information and examples can be found on the <a href="http://codex.wordpres
798
  The Tag parameters search in the WordPress core &quot;Tags&quot; taxonomy. Remember to use <code>post_parent=current</code> if you want to restrict your query to items attached to the current post.
799
  </p>
800
  <p>
801
- More information and examples can be found on the <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Tag_Parameters" title="WordPress Codex page" target="_blank">WordPress Codex WP_Query Class Reference</a> page.
802
  Note that the "tag_id" parameter requires exactly one tag ID; multiple IDs are not allowed. You can use the "tag__in" parameter to query for multiple values.
803
  <a name="simple_taxonomy_parameters"></a>
804
  </p>
805
  <h4>Simple Taxonomy Parameters</h4>
806
  <p>
807
- The <code>[mla_gallery]</code> shortcode supports the simple "{tax} (string)" values (deprecated as of WordPress version 3.1) as well as the more powerful "<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters" title="WordPress Codex Documentation for tax_query" target="_blank">tax_query</a>" value. Use these queries for your custom taxonomies (and for the MLA attachment_category and attachment_tag taxonomies); use the above Category and Tag parameters for the WordPress-provided taxonomies. If you do use a tax_query for Categories and Tags, the slug values are "category" and "post_tag".
808
  </p>
809
  <p>
810
  For simple queries, enter the custom taxonomy name and the term(s) that must be matched, e.g.:
@@ -882,7 +891,7 @@ In the example, <code>animal.invalid-slug</code> is a taxonomy.term combination
882
  </p>
883
  <h4>Taxonomy Queries, the "tax_query"</h4>
884
  <p>
885
- More complex queries can be specified by using <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters" title="WordPress Codex Documentation for tax_query" target="_blank">WP_Query's "tax_query"</a>, e.g.:
886
  </p>
887
  <p><code>[mla_gallery]<br />
888
  tax_query="array(<br />
@@ -1080,10 +1089,10 @@ The task of dividing a large <code>[mla_gallery]</code> into two or more pages i
1080
  </p>
1081
  <h4>Date and Time Parameters, the "date query"</h4>
1082
  <p>
1083
- The <code>[mla_gallery]</code> shortcode supports the "<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters" title="WordPress Codex Documentation for date_query" target="_blank">date_query</a>" parameter introduced in WordPress Version 3.7. You can use a date_query to filter your gallery based on the 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', or 'comment_date_gmt' database columns (although the column names include "post", the same columns are used for attachments).
1084
  </p>
1085
  <p>
1086
- As the <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Date_Parameters" title="WordPress Codex Documentation for date_query" target="_blank">Codex date_query documentation</a> suggests, "before" and "after" values can use any of the <a href="http://php.net/strtotime" title="PHP Date and Time Formats">PHP strtotime()-compatible string values</a>, which are quite powerful. For example, you can use relative values such as <code>'after' => 'second tuesday of last month'</code>. Careful study of the PHP documentation can be most rewarding. You can use <code>mla_debug=true</code> to see how PHP and WordPress translate your query to specific date-time values.
1087
  </p>
1088
  <p>
1089
  When embedding the shortcode in the body of a post, be very careful when coding the date_query; it must be a valid PHP array specification. Read and follow the rules and guidelines in the "<a href="#complex_shortcodes">Entering Long/Complex Shortcodes</a>" Documentation section to get the results you want.
@@ -1122,7 +1131,7 @@ Remember to use <code>post_parent=current</code> if you want to restrict your qu
1122
  </p>
1123
  <h4>Custom Field Queries, the "meta_query"</h4>
1124
  <p>
1125
- The <code>[mla_gallery]</code> shortcode supports the more powerful <a href="http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters" title="WordPress Codex documentation for meta_query" target="_blank">"WP_Query meta_query"</a> parameters made available as of WordPress 3.1.
1126
  </p>
1127
  <p>
1128
  When embedding the shortcode in the body of a post, be very careful when coding the meta_query; it must be a valid PHP array specification. Read and follow the rules and guidelines in the "<a href="#complex_shortcodes">Entering Long/Complex Shortcodes</a>" Documentation section to get the results you want.
@@ -1627,11 +1636,16 @@ You can code "internal" to skip the explicit attachment-counting process and use
1627
  </tr>
1628
  <tr>
1629
  <td class="mla-doc-table-label">orderby</td>
1630
- <td>The final sort order of the retrieved terms. Can be one or more of "count", "id" (term_id), "name" (the default), "none", "random", or "slug". Coding "none" is equivalent to "orderby=count order=DESC" (the initial sort to qualify the most popular terms for the cloud).</td>
 
 
 
 
 
1631
  </tr>
1632
  <tr>
1633
  <td class="mla-doc-table-label">order</td>
1634
- <td>Can be "ASC" (ascending, the default) or "DESC" (descending).</td>
1635
  </tr>
1636
  <tr>
1637
  <td class="mla-doc-table-label">no_orderby</td>
@@ -2691,11 +2705,16 @@ You can code "internal" to skip the explicit attachment-counting process and use
2691
  </tr>
2692
  <tr>
2693
  <td class="mla-doc-table-label">orderby</td>
2694
- <td>The sort order of the retrieved terms. Can be one or more of "count", "id" (term_id), "name" (the default), "none", "random", or "slug".</td>
 
 
 
 
 
2695
  </tr>
2696
  <tr>
2697
  <td class="mla-doc-table-label">order</td>
2698
- <td>Can be "ASC" (ascending, the default) or "DESC" (descending).</td>
2699
  </tr>
2700
  <tr>
2701
  <td class="mla-doc-table-label">preserve_case</td>
@@ -4754,6 +4773,9 @@ Each Media Library attachment item has a row in the "posts" database table that
4754
  </p>
4755
  <h4>Field-level IPTC Identifiers and Friendly Names</h4>
4756
  <p>
 
 
 
4757
  The IPTC specification defines all of the allowed fields and organizes them into "Records" and "DataSets" (fields). When you use the "iptc:" prefix to source a field-level substitution parameter you can specify the field you want in either of two ways. First you can use the Record number and DataSet tag, such as "2#005" for Record 2, DataSet 005; this is the "Object Name" DataSet. Second, you can use the Friendly Name, such as "object-name". The MLA Friendly Name values differ in some cases from the names in the IPTC specification but the table below should be easy to follow.
4758
  </p>
4759
  <table>
@@ -6099,7 +6121,8 @@ The file extension/MIME Type associations are used by WordPress to decide what k
6099
  <p>
6100
  The first time it is invoked, MLA will retrieve the current list of extensions and MIME Types and use it to initialize the list. MLA will add any custom items it finds added to the list by other plugins and code. Once the list is initialized, MLA's list will be used and other plugins and code will have no effect. You can disable MLA handling of the list by clearing the <em><strong>Enable Upload MIME Type Support</strong></em> checkbox at the bottom of the screen and clicking "Save Changes".
6101
  </p>
6102
- <h4>Extension and MIME Type</h4>
 
6103
  <p>
6104
  The Extension is the file extension for this type, and unique key for the item. It must be all lowercase and contain only letters, numbers and hyphens (-). The MIME Type value must be all lowercase and contain only letters, numbers, periods (.), slashes (/) and hyphens (-). The MIME type specification must be a single, valid MIME specification, e.g., "image" or "image/jpeg". These two values are used to compose the list of valid extension/type associations for use within WordPress.
6105
  </p>
@@ -7033,6 +7056,10 @@ The MLA_DEBUG_LEVEL is also used to turn categories of debug messages on and off
7033
  <td class="mla-doc-table-label">128, or 0x0080</td>
7034
  <td>writes MLA-specific messages to the log for MIME Type processing.</td>
7035
  </tr>
 
 
 
 
7036
  </table>
7037
  <p>
7038
  You can pick the logging categories you want by adding the above values together. For example, to log only PHP messages you can use <code>define( 'MLA_DEBUG_LEVEL', 1 );</code> or <code>define( 'MLA_DEBUG_LEVEL', 0x0001 );</code>. To add the "AJAX" messages you can use <code>define( 'MLA_DEBUG_LEVEL', 3 );</code> or <code>define( 'MLA_DEBUG_LEVEL', 0x0003 );</code>. The hexadecimal notation ( 0x0003 ) can be easier to understand when several options are involved.
@@ -7255,6 +7282,9 @@ The Example plugins submenu lists all of the MLA example plugins and identifies
7255
  <li>the table can be sorted by any of the displayed columns</li>
7256
  </ul>
7257
  <p>
 
 
 
7258
  Once you have installed an example plugin you can use the WordPress Plugins/Editor submenu to view the source code and (with extreme caution) make small changes to the code. <strong>Be very careful if you choose to modify the code!</strong> Making changes to active plugins is not recommended. If your changes cause a fatal error, the plugin will be automatically deactivated. It is much safer to download the file(s) or use FTP access to your site to modify the code offline in a more robust HTML/PHP editor.
7259
  </p>
7260
  <p>
226
  If you're new to Media Library Assistant and the <code>[mla_gallery]</code> shortcode you should read through the material in the <a href="#gallery_examples">MLA Gallery Examples</a> section.
227
  </p>
228
  <p>
229
+ All of the options/parameters documented for the <code>[gallery]</code> shortcode are supported by the <code>[mla_gallery]</code> shortcode; you can find them in the <a href="http://codex.wordpress.org/Gallery_Shortcode" title="WordPress Codex link" target="_blank">WordPress Codex</a>. Most of the parameters documented for the WP_Query class are also supported; see the <a href="https://developer.wordpress.org/reference/classes/wp_query/" title="WordPress Codex link" target="_blank">Codex WP_Query class reference</a>. Because the <code>[mla_gallery]</code> shortcode is designed to work with Media Library items, there are some parameter differences and extensions; these are documented below.
230
  <a name="gallery_substitution"></a>
231
  </p>
232
  <h4>Substitution Parameters</h4>
436
  </tr>
437
  </table>
438
  <p>
439
+ The "mla_target" parameter accepts any value and adds an HTML "target" attribute to the hyperlink with that value. For example, if you code <code>mla_target="_blank"</code> the item will open in a new window or tab. You can also use "_self", "_parent", "_top" or the "<em>framename</em>" of a named frame.
440
+ </p>
441
+ <p>
442
+ All but the "mla_target" parameter support the <a href="#mla_markup_parameters">Markup</a>, <a href="#mla_attachment_parameters">Attachment-specific</a>, <a href="#mla_variable_parameters">Field-level</a> and <a href="#mla_template_parameters">Content Template</a> substitution parameters defined for Markup Templates. For example, if you code <code>mla_rollover_text='{+date+} : {+description+}'</code>, the rollover text will contain the upload date, a colon, and the full description of each gallery item. Simply add "{+" before the substitution parameter name and add "+}" after the name. Note that the enclosing delimiters are different than those used in the templates, since the WordPress shortcode parser reserves square brackets ("[" and "]") for its own use.
443
  </p>
444
  <p>
445
  The "mla_link_href" parameter is a great way to change the destination your gallery item links to or add arguments to the link for later processing. For example, to make a gallery item link back to the page/post it is attached to, you can code: <code>mla_link_href='{+site_url+}/?page_id={+parent+}'</code>. You can also add arguments to the link, e.g., <code>mla_link_href='{+link_url+}?myarg1=myvalue1&amp;amp;myarg2=myvalue2'</code>. Note the use of the HTML entity name "&amp;amp;" to put an ampersand in the value; the WordPress "visual" post editor will replace "&amp;", "&lt;" and ">" with "&amp;amp;", "&amp;lt;" and "&amp;gt;" whether you like it not. The <strong>only</strong> markup parameter modified by this parameter is "link". Other markup parameters such as "pagelink", "filelink" and "link_url" are not modified.
448
  The "mla_link_attributes" and "mla_image_attributes" parameters accept any value and adds it to the "&lt;a&gt;" or "&lt;img&gt;" tags for the gallery item. For example, you can create a Shadowbox JS (plugin) album by adding <code>mla_link_attributes='rel="shadowbox{sbalbum-{+instance+}};player=img"'</code> to your shortcode query (note the use of single quotes around the parameter value and the double quotes within the parameter). <strong>IMPORTANT:</strong> since the shortcode parser reserves square brackets ("[" and "]") for its own use, <strong>you must substitute curly braces for square brackets</strong> if your attributes require brackets (as this example does). In this case, the actual attribute added to the link will be <code>rel="shadowbox[sbalbum-1];player=img"</code>. If you must code a curly brace in your attribute value, preface it with <strong>two backslash characters</strong>, e.g., "\\{" or "\\}". If you code an attribute already present in the tag, your value will override the existing value.
449
  </p>
450
  <p>
451
+ The "mla_caption" parameter can be used, for example, to replace the default caption to a hyperlink containing the item's Title You can code something like this:<br />
452
+ &nbsp;<br />
453
+ <code>[mla_gallery size=icon post_mime_type=application/pdf post_parent=all link=file]<br />
454
+ mla_caption='&lt;a href="{+file_url+}" target="_blank"&gt;{+title+}&lt;/a&gt;'<br />
455
+ [/mla_gallery]</code><br />
456
+ &nbsp;<br />
457
+ Note the use of the alternative "enclosing shortcode" syntax in this example, which avoids the WordPress issues with including HTML markup in shortcode parameters.
458
  <a name="thumbnail_substitution"></a>
459
  </p>
460
  <h4>Thumbnail Substitution Support, mla_viewer</h4>
539
  <a name="order_orderby"></a>&nbsp;
540
  <h4>Order, Orderby</h4>
541
  <p>
542
+ The Orderby parameter specifies which database field(s) are used to sort the gallery. You can sort the gallery by one or more of these values (there is additional information on some of these values in the <a href="https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters" title="WordPress Codex link" target="_blank">Codex WP_Query class reference</a>):
543
  </p>
544
  <table>
545
  <tr>
799
  </tr>
800
  </table>
801
  <p>
802
+ More information and examples can be found on the <a href="https://developer.wordpress.org/reference/classes/wp_query/#category-parameters" title="WordPress Codex page" target="_blank">WordPress Codex WP_Query Class Reference</a> page.
803
  <a name="tag_parameters"></a>
804
  </p>
805
  <h4>Tag Parameters</h4>
807
  The Tag parameters search in the WordPress core &quot;Tags&quot; taxonomy. Remember to use <code>post_parent=current</code> if you want to restrict your query to items attached to the current post.
808
  </p>
809
  <p>
810
+ More information and examples can be found on the <a href="https://developer.wordpress.org/reference/classes/wp_query/#tag-parameters" title="WordPress Codex page" target="_blank">WordPress Codex WP_Query Class Reference</a> page.
811
  Note that the "tag_id" parameter requires exactly one tag ID; multiple IDs are not allowed. You can use the "tag__in" parameter to query for multiple values.
812
  <a name="simple_taxonomy_parameters"></a>
813
  </p>
814
  <h4>Simple Taxonomy Parameters</h4>
815
  <p>
816
+ The <code>[mla_gallery]</code> shortcode supports the simple "{tax} (string)" values (deprecated as of WordPress version 3.1) as well as the more powerful "<a href="https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters" title="WordPress Codex Documentation for tax_query" target="_blank">tax_query</a>" value. Use these queries for your custom taxonomies (and for the MLA attachment_category and attachment_tag taxonomies); use the above Category and Tag parameters for the WordPress-provided taxonomies. If you do use a tax_query for Categories and Tags, the slug values are "category" and "post_tag".
817
  </p>
818
  <p>
819
  For simple queries, enter the custom taxonomy name and the term(s) that must be matched, e.g.:
891
  </p>
892
  <h4>Taxonomy Queries, the "tax_query"</h4>
893
  <p>
894
+ More complex queries can be specified by using <a href="https://developer.wordpress.org/reference/classes/wp_query/#taxonomy-parameters" title="WordPress Codex Documentation for tax_query" target="_blank">WP_Query's "tax_query"</a>, e.g.:
895
  </p>
896
  <p><code>[mla_gallery]<br />
897
  tax_query="array(<br />
1089
  </p>
1090
  <h4>Date and Time Parameters, the "date query"</h4>
1091
  <p>
1092
+ The <code>[mla_gallery]</code> shortcode supports the "<a href="https://developer.wordpress.org/reference/classes/wp_query/#date-parameters" title="WordPress Codex Documentation for date_query" target="_blank">date_query</a>" parameter introduced in WordPress Version 3.7. You can use a date_query to filter your gallery based on the 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt', 'comment_date', or 'comment_date_gmt' database columns (although the column names include "post", the same columns are used for attachments).
1093
  </p>
1094
  <p>
1095
+ As the <a href="https://developer.wordpress.org/reference/classes/wp_query/#date-parameters" title="WordPress Codex Documentation for date_query" target="_blank">Codex date_query documentation</a> suggests, "before" and "after" values can use any of the <a href="http://php.net/strtotime" title="PHP Date and Time Formats">PHP strtotime()-compatible string values</a>, which are quite powerful. For example, you can use relative values such as <code>'after' => 'second tuesday of last month'</code>. Careful study of the PHP documentation can be most rewarding. You can use <code>mla_debug=true</code> to see how PHP and WordPress translate your query to specific date-time values.
1096
  </p>
1097
  <p>
1098
  When embedding the shortcode in the body of a post, be very careful when coding the date_query; it must be a valid PHP array specification. Read and follow the rules and guidelines in the "<a href="#complex_shortcodes">Entering Long/Complex Shortcodes</a>" Documentation section to get the results you want.
1131
  </p>
1132
  <h4>Custom Field Queries, the "meta_query"</h4>
1133
  <p>
1134
+ The <code>[mla_gallery]</code> shortcode supports the more powerful <a href="https://developer.wordpress.org/reference/classes/wp_query/#custom-field-post-meta-parameters" title="WordPress Codex documentation for meta_query" target="_blank">"WP_Query meta_query"</a> parameters made available as of WordPress 3.1.
1135
  </p>
1136
  <p>
1137
  When embedding the shortcode in the body of a post, be very careful when coding the meta_query; it must be a valid PHP array specification. Read and follow the rules and guidelines in the "<a href="#complex_shortcodes">Entering Long/Complex Shortcodes</a>" Documentation section to get the results you want.
1636
  </tr>
1637
  <tr>
1638
  <td class="mla-doc-table-label">orderby</td>
1639
+ <td>The final sort order of the retrieved terms. Can be one or more of "count", "id" (term_id), "name" (the default), "none", "random", or "slug". Coding "none" is equivalent to "orderby=count order=DESC" (the initial sort to qualify the most popular terms for the cloud).<br />
1640
+ &nbsp;<br />
1641
+ If you install and activate the <a href="https://wordpress.org/plugins/simple-custom-post-order/" target="_blank" rel="noopener noreferrer nofollow">Simple Custom Post Order</a> plugin you can code "term_order" to sort the cloud into the "drag and drop" order supported by that plugin.<br />
1642
+ &nbsp;<br />
1643
+ Or, if you install and activate the <a href="https://wordpress.org/plugins/simple-taxonomy-ordering/" target="_blank" rel="noopener noreferrer nofollow">Simple Taxonomy Ordering</a> plugin you can code "tax_position" to sort the cloud into the "drag and drop" order supported by that plugin.<br />
1644
+ &nbsp;</td>
1645
  </tr>
1646
  <tr>
1647
  <td class="mla-doc-table-label">order</td>
1648
+ <td>Can be "ASC" (ascending, the default) or "DESC" (descending). Note that DESC is not supported for <code>orderby=tax_position</code>.</td>
1649
  </tr>
1650
  <tr>
1651
  <td class="mla-doc-table-label">no_orderby</td>
2705
  </tr>
2706
  <tr>
2707
  <td class="mla-doc-table-label">orderby</td>
2708
+ <td>The sort order of the retrieved terms. Can be one or more of "count", "id" (term_id), "name" (the default), "none", "random", or "slug".<br />
2709
+ &nbsp;<br />
2710
+ If you install and activate the <a href="https://wordpress.org/plugins/simple-custom-post-order/" target="_blank" rel="noopener noreferrer nofollow">Simple Custom Post Order</a> plugin you can code "term_order" to sort the cloud into the "drag and drop" order supported by that plugin.<br />
2711
+ &nbsp;<br />
2712
+ Or, if you install and activate the <a href="https://wordpress.org/plugins/simple-taxonomy-ordering/" target="_blank" rel="noopener noreferrer nofollow">Simple Taxonomy Ordering</a> plugin you can code "tax_position" to sort the cloud into the "drag and drop" order supported by that plugin.<br />
2713
+ &nbsp;</td>
2714
  </tr>
2715
  <tr>
2716
  <td class="mla-doc-table-label">order</td>
2717
+ <td>Can be "ASC" (ascending, the default) or "DESC" (descending). Note that DESC is not supported for <code>orderby=tax_position</code>.</td>
2718
  </tr>
2719
  <tr>
2720
  <td class="mla-doc-table-label">preserve_case</td>
4773
  </p>
4774
  <h4>Field-level IPTC Identifiers and Friendly Names</h4>
4775
  <p>
4776
+ IPTC Photo Metadata provides data about photographs and the values can be processed by software. Each individual metadata entity is called a property and they are grouped into Administrative, Descriptive and Rights-related properties. IPTC Photo Metadata properties have photo specific definitions that are widely supported by imaging software. You can find complete documentation of IPTC properites at the <a href="https://www.iptc.org/std/photometadata/specification/IPTC-PhotoMetadata" title="IPTC Photo Metadata Standard 2019.1" target="_blank">IPTC Photo Metadata Standard 2019.1 web site.</a>
4777
+ </p>
4778
+ <p>
4779
  The IPTC specification defines all of the allowed fields and organizes them into "Records" and "DataSets" (fields). When you use the "iptc:" prefix to source a field-level substitution parameter you can specify the field you want in either of two ways. First you can use the Record number and DataSet tag, such as "2#005" for Record 2, DataSet 005; this is the "Object Name" DataSet. Second, you can use the Friendly Name, such as "object-name". The MLA Friendly Name values differ in some cases from the names in the IPTC specification but the table below should be easy to follow.
4780
  </p>
4781
  <table>
6121
  <p>
6122
  The first time it is invoked, MLA will retrieve the current list of extensions and MIME Types and use it to initialize the list. MLA will add any custom items it finds added to the list by other plugins and code. Once the list is initialized, MLA's list will be used and other plugins and code will have no effect. You can disable MLA handling of the list by clearing the <em><strong>Enable Upload MIME Type Support</strong></em> checkbox at the bottom of the screen and clicking "Save Changes".
6123
  </p>
6124
+ <p>WordPress examines the content of a file during upload to more carefully validate the file's MIME type. Sometimes this extra validation prevents valid files from being added to the Media Library. For example, a CSV or plain text file that contains some HTML tags will be classified as "text/html" instead of text/csv or text/plain. This causes the upload to fail for "security reasons".</p>
6125
+ <p>You can check the <em><strong>Always Use MLA MIME Type</strong></em> option to bypass this extra security and use the MIME Type defined here in all uploads. Consider using this option carefully, only when you are having trouble uploading a file or files you know to be valid.</p><h4>Extension and MIME Type</h4>
6126
  <p>
6127
  The Extension is the file extension for this type, and unique key for the item. It must be all lowercase and contain only letters, numbers and hyphens (-). The MIME Type value must be all lowercase and contain only letters, numbers, periods (.), slashes (/) and hyphens (-). The MIME type specification must be a single, valid MIME specification, e.g., "image" or "image/jpeg". These two values are used to compose the list of valid extension/type associations for use within WordPress.
6128
  </p>
7056
  <td class="mla-doc-table-label">128, or 0x0080</td>
7057
  <td>writes MLA-specific messages to the log for MIME Type processing.</td>
7058
  </tr>
7059
+ <tr>
7060
+ <td class="mla-doc-table-label">256, or 0x0100</td>
7061
+ <td>writes MLA-specific messages to the log for Media Manager Modal Window actions, e.g., "query_attachments".</td>
7062
+ </tr>
7063
  </table>
7064
  <p>
7065
  You can pick the logging categories you want by adding the above values together. For example, to log only PHP messages you can use <code>define( 'MLA_DEBUG_LEVEL', 1 );</code> or <code>define( 'MLA_DEBUG_LEVEL', 0x0001 );</code>. To add the "AJAX" messages you can use <code>define( 'MLA_DEBUG_LEVEL', 3 );</code> or <code>define( 'MLA_DEBUG_LEVEL', 0x0003 );</code>. The hexadecimal notation ( 0x0003 ) can be easier to understand when several options are involved.
7282
  <li>the table can be sorted by any of the displayed columns</li>
7283
  </ul>
7284
  <p>
7285
+ You can use the "View" rollover action to display the source code for an example plugin. Many of the plugins have documentation and use notes in a comment area at the top of the source file. They also have references to the Support Forum topics that inspired them, which can be an additional source of information.
7286
+ </p>
7287
+ <p>
7288
  Once you have installed an example plugin you can use the WordPress Plugins/Editor submenu to view the source code and (with extreme caution) make small changes to the code. <strong>Be very careful if you choose to modify the code!</strong> Making changes to active plugins is not recommended. If your changes cause a fatal error, the plugin will be automatically deactivated. It is much safer to download the file(s) or use FTP access to your site to modify the code offline in a more robust HTML/PHP editor.
7289
  </p>
7290
  <p>
tpls/help-for-settings_page_mla-settings-menu-upload.tpl CHANGED
@@ -13,6 +13,10 @@
13
  <p>You can change the icon image associated with any file extension by selecting a new value from the dropdown list on the Edit Upload MIME Type screen or in the Quick Edit area. You can change the icon image for several extensions at once using the Bulk Edit action.</p>
14
  <p>If you have some other plugin or mechanism for handling the Upload MIME Type items, you can disable MLA support entirely. Clear the checkbox at the bottom-left corner of the screen and click "Save Changes".</p>
15
  <!-- template="mla-source-status" -->
 
 
 
 
16
  <!-- title="Source and Status" order="30" -->
17
  <p>The "Source" of an Upload MIME Type reveals where the extension/MIME Type association comes from:</p>
18
  <ul>
13
  <p>You can change the icon image associated with any file extension by selecting a new value from the dropdown list on the Edit Upload MIME Type screen or in the Quick Edit area. You can change the icon image for several extensions at once using the Bulk Edit action.</p>
14
  <p>If you have some other plugin or mechanism for handling the Upload MIME Type items, you can disable MLA support entirely. Clear the checkbox at the bottom-left corner of the screen and click "Save Changes".</p>
15
  <!-- template="mla-source-status" -->
16
+ <!-- title="Force MLA MIME Type" order="25" -->
17
+ <p>WordPress examines the content of a file during upload to more carefully validate the file's MIME type. Sometimes this extra validation prevents valid files from being added to the Media Library. For example, a CSV or plain text file that contains some HTML tags will be classified as "text/html" instead of text/csv or text/plain. This causes the upload to fail for "security reasons".</p>
18
+ <p>You can check the "Always Use MLA MIME Type" option to bypass this extra security and use the MIME Type defined here in all uploads. Consider using this option carefully, only when you are having trouble uploading a file or files you know to be valid.</p>
19
+ <!-- template="mla-source-status" -->
20
  <!-- title="Source and Status" order="30" -->
21
  <p>The "Source" of an Upload MIME Type reveals where the extension/MIME Type association comes from:</p>
22
  <ul>