Media Library Assistant - Version 2.98

Version Description

  • New: A new "Attachment File Metadata" meta box on the Media/Edit Media screen displays IPTC, EXIF, XMP, ID3, PDF and/or MSO metadata embedded in the item's file. More information in the pull-down Help menu on that screen.
  • New: For [mla_gallery], a special mla_minimum parameter lets you display an empty gallery unless a minimum number of items is selected.
  • New: The "MLA Advanced Custom Fields Example" plugin now supports ACF "Select" fields, mapping between the field label and field value on the Media/Assistant submenu table and the Bulk and Quick Areas.
  • New: The new "MLA Filename Issues Example" plugin creates a custom data source to help identify items with duplicate file names for cleanup consideration.
  • New: The term Parent column has been added to the Settings/Media Library Assistant Debug tab "Add Tax. Columns" results.
  • Fix: Custom Field Rules with an "Inactive" status are now excluded from Media/Assistant submenu table columns and the Quick and Bulk Edit areas.
  • Fix: An inconsistency in counting attachments that caused the Settings/Media Library Assistant IPTC/EXIF tab "Execute" and "Execute All Rules" actions to fail has been corrected.
  • Fix: An XMP metadata parsing error for empty "rdf:Description" values has been corrected.
  • Fix: The "MLA Custom Field Search Example" plugin has been updated to use the latest plugin settings class file, so the class can be shared with other example plugins.
  • Fix: The old "MLA ACF Checkbox Example" plugin has been flagged as obsolete, replaced by the more useful "MLA Advanced Custom Fields Example" plugin.
  • Fix: For the Media/Assistant Quick Edit Area, users with the 'unfilitered_html' permission can add any HTML tag to a custom field value.
  • Fix: Incorrect display of counts for [mla_tag_cloud] and [mla_term_list] terms with more than 1,000 assigned items has been corrected.
  • Fix: Toolbar cropping in the "Add media" popup window for WordPress versions before 5.8 has been corrected.
  • Fix: Toolbar cropping in the "Add media" popup window when the Disable Gutenberg (by Jeff Starr) plugin is active has been corrected.
  • Fix: For the "gallery in" and "MLA Gallery in" reporting, PHP "trigger_error" Warning messages have been converted to MLA debug logging messages.
  • Fix: For the "MLA Insert Fixit" example plugin, a PHP 8.0+ Deprecation Error has been resolved.
Download this release

Release Info

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

Code changes from version 2.97 to 2.98

Files changed (34) hide show
  1. css/mla-edit-media-style.css +2 -1
  2. examples/plugins/mla-acf-checkbox-example.php +13 -236
  3. examples/plugins/mla-advanced-custom-fields-example.php +0 -815
  4. examples/plugins/mla-advanced-custom-fields-example/admin-settings-page.tpl +469 -0
  5. examples/plugins/{mla-custom-field-search-example/class-mla-example-plugin-settings.php → mla-advanced-custom-fields-example/class-mla-example-plugin-settings-101.php} +100 -22
  6. examples/plugins/mla-advanced-custom-fields-example/mla-advanced-custom-fields-example.php +1212 -0
  7. examples/plugins/mla-csv-data-source-example/class-mla-example-plugin-settings-101.php +10 -0
  8. examples/plugins/mla-custom-field-search-example/admin-settings-page.tpl +16 -2
  9. examples/plugins/mla-custom-field-search-example/class-mla-example-plugin-settings-101.php +569 -0
  10. examples/plugins/mla-custom-field-search-example/mla-custom-field-search-example.php +6 -6
  11. examples/plugins/mla-filename-issues-example.php +229 -0
  12. examples/plugins/mla-insert-fixit.php +4 -4
  13. examples/plugins/mla-metabox-hooks-example.php +47 -4
  14. examples/plugins/mla-ui-elements-example/class-mla-example-plugin-settings-101.php +10 -0
  15. includes/class-mla-core-options.php +16 -2
  16. includes/class-mla-core.php +5 -1
  17. includes/class-mla-data-query.php +4 -11
  18. includes/class-mla-data-references.php +2 -2
  19. includes/class-mla-data.php +186 -99
  20. includes/class-mla-edit-media.php +26 -1
  21. includes/class-mla-main.php +6 -2
  22. includes/class-mla-objects.php +18 -19
  23. includes/class-mla-options.php +6 -1
  24. includes/class-mla-settings-iptc-exif-tab.php +36 -4
  25. includes/class-mla-shortcode-support.php +52 -39
  26. index.php +2 -2
  27. js/mla-media-modal-scripts.js +37 -4
  28. js/mla-media-modal-scripts.min.js +1 -1
  29. languages/media-library-assistant-en_US - References.pot +815 -797
  30. languages/media-library-assistant-en_US.po +16 -4
  31. languages/media-library-assistant-en_US.pot +15 -3
  32. readme.txt +23 -4
  33. tpls/documentation-settings-tab.tpl +21 -3
  34. tpls/help-for-edit_attachment.tpl +12 -1
css/mla-edit-media-style.css CHANGED
@@ -9,7 +9,8 @@
9
  #mla_inserted_in,
10
  #mla_gallery_in,
11
  #mla_mla_gallery_in,
12
- #mla_image_metadata {
 
13
  width: 100%;
14
  }
15
 
9
  #mla_inserted_in,
10
  #mla_gallery_in,
11
  #mla_mla_gallery_in,
12
+ #mla_image_metadata,
13
+ #mla_file_metadata {
14
  width: 100%;
15
  }
16
 
examples/plugins/mla-acf-checkbox-example.php CHANGED
@@ -1,32 +1,20 @@
1
  <?php
2
  /**
3
- * Provides an example of hooking the filters provided by the MLA_List_Table class
4
- *
5
- * In this example, an Advanced Custom Fields "checkbox" custom field is added to the
6
- * Media/Assistant submenu table, Quick Edit and Bulk Edit areas.
7
- *
8
- * The custom field name is "acf_checkbox"; this is the ACF "Field Name", not the
9
- * "Field Label". You can support another field by changing all occurances of the name
10
- * to match the field you want.
11
- *
12
- * You must also define an MLA Custom Field mapping rule for the field. You can leave
13
- * the Data Source as "-- None (select a value) --" and the other defaults. Check the
14
- * three boxes for MLA Column, Quick Edit and Bulk Edit support.
15
- *
16
  *
17
  * @package MLA ACF Checkbox Example
18
- * @version 1.02
19
  */
20
 
21
  /*
22
  Plugin Name: MLA ACF Checkbox Example
23
  Plugin URI: http://davidlingren.com/
24
- Description: Provides an example of hooking the filters provided by the MLA_List_Table class
25
  Author: David Lingren
26
- Version: 1.02
27
  Author URI: http://davidlingren.com/
28
 
29
- Copyright 2014 - 2015 David Lingren
30
 
31
  This program is free software; you can redistribute it and/or modify
32
  it under the terms of the GNU General Public License as published by
@@ -60,171 +48,17 @@ class MLAACFCheckboxExample {
60
  * @return void
61
  */
62
  public static function initialize() {
63
- /*
64
- * The filters are only useful for the admin section; exit in the front-end posts/pages
65
- */
66
  if ( ! is_admin() )
67
  return;
68
 
69
- /*
70
- * add_filter parameters:
71
- * $tag - name of the hook you're filtering; defined by [mla_gallery]
72
- * $function_to_add - function to be called when [mla_gallery] applies the filter
73
- * $priority - default 10; lower runs earlier, higher runs later
74
- * $accepted_args - number of arguments your function accepts
75
- */
76
-
77
- /*
78
- * Defined in /media-library-assistant/includes/class-mla-main.php
79
- */
80
- add_filter( 'mla_list_table_inline_action', 'MLAACFCheckboxExample::mla_list_table_inline_action', 10, 2 ); //
81
- add_filter( 'mla_list_table_bulk_action_initial_request', 'MLAACFCheckboxExample::mla_list_table_bulk_action_initial_request', 10, 3 );
82
- add_filter( 'mla_list_table_bulk_action', 'MLAACFCheckboxExample::mla_list_table_bulk_action', 10, 3 ); //
83
- add_filter( 'mla_list_table_inline_values', 'MLAACFCheckboxExample::mla_list_table_inline_values', 10, 1 ); //
84
-
85
- /*
86
- * Defined in /media-library-assistant/includes/class-mla-list-table.php
87
- */
88
  add_filter( 'mla_list_table_get_columns', 'MLAACFCheckboxExample::mla_list_table_get_columns', 10, 1 ); //
89
  add_filter( 'mla_list_table_get_hidden_columns', 'MLAACFCheckboxExample::mla_list_table_get_hidden_columns', 10, 1 ); //
90
  add_filter( 'mla_list_table_get_sortable_columns', 'MLAACFCheckboxExample::mla_list_table_get_sortable_columns', 10, 1 ); //
91
  add_filter( 'mla_list_table_column_default', 'MLAACFCheckboxExample::mla_list_table_column_default', 10, 3 ); //
92
- add_filter( 'mla_list_table_build_inline_data', 'MLAACFCheckboxExample::mla_list_table_build_inline_data', 10, 2 );
93
  }
94
 
95
- /**
96
- * Records the list of active search fields
97
- *
98
- * @since 1.00
99
- *
100
- * @var array
101
- */
102
- private static $search_fields = array();
103
-
104
- /**
105
- * Process an MLA_List_Table inline action, i.e., Quick Edit
106
- *
107
- * This filter gives you an opportunity to pre-process an MLA_List_Table "Quick Edit"
108
- * action before the MLA handler.
109
- *
110
- * @since 1.00
111
- *
112
- * @param array $item_content NULL, to indicate no handler.
113
- * @param integer $post_id the affected attachment.
114
- *
115
- * @return object updated $item_content. NULL if no handler, otherwise
116
- * ( 'message' => error or status message(s), 'body' => '',
117
- * 'prevent_default' => true to bypass the MLA handler )
118
- */
119
- public static function mla_list_table_inline_action( $item_content, $post_id ) {
120
- /*
121
- * Convert the comma-delimited string of "checked" checkbox values back to
122
- * an ACF-compatible array
123
- */
124
- if ( isset( $_REQUEST['custom_updates'] ) && isset( $_REQUEST['custom_updates']['acf_checkbox'] ) ) {
125
- if ( ! empty( $_REQUEST['custom_updates']['acf_checkbox'] ) ) {
126
- $_REQUEST['custom_updates']['acf_checkbox'] = explode( ',', $_REQUEST['custom_updates']['acf_checkbox'] );
127
- }
128
- }
129
-
130
- return $item_content;
131
- } // mla_list_table_inline_action
132
-
133
- /**
134
- * Pre-filter MLA_List_Table bulk action request parameters
135
- *
136
- * This filter gives you an opportunity to pre-process the request parameters for a bulk action
137
- * before the action begins. DO NOT assume parameters come from the $_REQUEST super array!
138
- *
139
- * @since 1.01
140
- *
141
- * @param array $request bulk action request parameters, including ['mla_bulk_action_do_cleanup'].
142
- * @param string $bulk_action the requested action.
143
- * @param array $custom_field_map [ slug => field_name ]
144
- *
145
- * @return array updated bulk action request parameters
146
- */
147
- public static function mla_list_table_bulk_action_initial_request( $request, $bulk_action, $custom_field_map ) {
148
- /*
149
- * If the field is present, save the field value for our own update process and remove it
150
- * from the $request array to prevent MLA's default update processing.
151
- */
152
- if ( false !== $slug = array_search( 'acf_checkbox', $custom_field_map ) ) {
153
- if ( ! empty( $request[ $slug ] ) ) {
154
- self::$acf_checkbox_value = trim( $request[ $slug ] );
155
- $request[ $slug ] = '';
156
- }
157
- }
158
-
159
- return $request;
160
- } // mla_list_table_bulk_action_initial_request
161
-
162
- /**
163
- * Holds the new ACF checkbox value for the duration of a Bulk Edit action
164
- *
165
- * @since 1.01
166
- *
167
- * @var string
168
- */
169
- private static $acf_checkbox_value = NULL;
170
-
171
- /**
172
- * Process an MLA_List_Table bulk action
173
- *
174
- * This filter gives you an opportunity to pre-process an MLA_List_Table page-level
175
- * or single-item action, standard or custom, before the MLA handler.
176
- * The filter is called once for each of the items in $_REQUEST['cb_attachment'].
177
- *
178
- * @since 1.00
179
- *
180
- * @param array $item_content NULL, to indicate no handler.
181
- * @param string $bulk_action the requested action.
182
- * @param integer $post_id the affected attachment.
183
- *
184
- * @return object updated $item_content. NULL if no handler, otherwise
185
- * ( 'message' => error or status message(s), 'body' => '',
186
- * 'prevent_default' => true to bypass the MLA handler )
187
- */
188
- public static function mla_list_table_bulk_action( $item_content, $bulk_action, $post_id ) {
189
- /*
190
- * If the field is present, apply our own update process. Note the
191
- * special 'empty' value to bulk-delete the custom field entirely.
192
- */
193
- if ( ! empty( self::$acf_checkbox_value ) ) {
194
- if ( 'empty' == self::$acf_checkbox_value ) {
195
- delete_post_meta( $post_id, 'acf_checkbox' );
196
- $item_content = array( 'message' => sprintf( __( 'Deleting %1$s', 'media-library-assistant' ) . '<br>', 'acf_checkbox' ) );
197
- } else {
198
- update_post_meta( $post_id, 'acf_checkbox', explode( ',', self::$acf_checkbox_value ) );
199
- $item_content = array( 'message' => sprintf( __( 'Adding %1$s = %2$s', 'media-library-assistant' ) . '<br>', 'acf_checkbox', self::$acf_checkbox_value ) );
200
- }
201
- }
202
-
203
- return $item_content;
204
- } // mla_list_table_bulk_action
205
-
206
- /**
207
- * MLA_List_Table inline edit item values
208
- *
209
- * This filter gives you a chance to modify and extend the substitution values
210
- * for the Quick and Bulk Edit forms.
211
- *
212
- * @since 1.00
213
- *
214
- * @param array $item_values parameter_name => parameter_value pairs
215
- *
216
- * @return array updated substitution parameter name => value pairs
217
- */
218
- public static function mla_list_table_inline_values( $item_values ) {
219
- /*
220
- * Replace the ACF Field Name with a more friendly Field Label
221
- */
222
- $item_values['custom_fields'] = str_replace( '>acf_checkbox<', '>ACF Checkbox<', $item_values['custom_fields'] );
223
- $item_values['bulk_custom_fields'] = str_replace( '>acf_checkbox<', '>ACF Checkbox<', $item_values['bulk_custom_fields'] );
224
-
225
- return $item_values;
226
- } // mla_list_table_inline_values
227
-
228
  /**
229
  * Holds the ISC custom field name to column "slug" mapping values
230
  *
@@ -261,7 +95,7 @@ class MLAACFCheckboxExample {
261
  $new_columns = array();
262
 
263
  foreach ( $columns as $key => $value ) {
264
- if ( $key == $slug ) {
265
  $new_columns['acf_checkbox'] = 'acf_checkbox';
266
  } else {
267
  $new_columns[ $key ] = $value;
@@ -317,9 +151,7 @@ class MLAACFCheckboxExample {
317
  * @return array updated array of columns.
318
  */
319
  public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
320
- /*
321
- * Replace the slug for the column we've captured, preserving its place in the list
322
- */
323
  if ( isset( self::$field_slugs['acf_checkbox'] ) ) {
324
  $slug = self::$field_slugs['acf_checkbox'];
325
  if ( isset( $sortable_columns[ $slug ] ) ) {
@@ -353,70 +185,15 @@ class MLAACFCheckboxExample {
353
  * @return string Text or HTML to be placed inside the column
354
  */
355
  public static function mla_list_table_column_default( $content, $item, $column_name ) {
356
- /*
357
- * Convert the ACF-compatible array to a comma-delimited list of
358
- * "checked" checkbox values.
359
- */
360
- if ( 'acf_checkbox' == $column_name ) {
361
- $values = isset( $item->mla_item_acf_checkbox ) ? $item->mla_item_acf_checkbox : '';
362
- if ( empty( $values ) ) {
363
- return '';
364
- } elseif ( is_array( $values ) ) {
365
- return '[' . implode( '],[', $values ) . ']';
366
- } else {
367
- return $values;
368
- }
369
  }
370
 
371
  return $content;
372
  } // mla_list_table_column_default_filter
373
-
374
- /**
375
- * Filter the data for inline (Quick and Bulk) editing
376
- *
377
- * This filter gives you an opportunity to filter the data passed to the
378
- * JavaScript functions for Quick and Bulk editing.
379
- *
380
- * @since 1.00
381
- *
382
- * @param string $inline_data The HTML markup for inline data.
383
- * @param object $item The current Media Library item.
384
- *
385
- * @return string updated HTML markup for inline data.
386
- */
387
- public static function mla_list_table_build_inline_data( $inline_data, $item ) {
388
- /*
389
- * See if the field is present
390
- */
391
- if ( ! isset( self::$field_slugs['acf_checkbox'] ) ) {
392
- return $inline_data;
393
- }
394
-
395
- /*
396
- * Convert the ACF-compatible array to a comma-delimited list of
397
- * "checked" checkbox values.
398
- */
399
- $match_count = preg_match_all( '/\<div class="' . self::$field_slugs['acf_checkbox'] . '"\>(.*)\<\/div\>/', $inline_data, $matches, PREG_OFFSET_CAPTURE );
400
- if ( ( $match_count == false ) || ( $match_count == 0 ) ) {
401
- return $inline_data;
402
- }
403
-
404
- if ( isset( $item->mla_item_acf_checkbox ) ) {
405
- $value = $item->mla_item_acf_checkbox;
406
- if ( is_array( $value ) ) {
407
- $head = substr( $inline_data, 0, $matches[1][0][1] );
408
- $value = esc_html( implode( ',', $value ) );
409
- $tail = substr( $inline_data, ( $matches[1][0][1] + strlen( $matches[1][0][0] ) ) );
410
- $inline_data = $head . $value . $tail;
411
- }
412
- }
413
-
414
- return $inline_data;
415
- } // mla_list_table_build_inline_data_filter
416
  } // Class MLAACFCheckboxExample
417
 
418
- /*
419
- * Install the filters at an early opportunity
420
- */
421
  add_action('init', 'MLAACFCheckboxExample::initialize');
422
  ?>
1
  <?php
2
  /**
3
+ * THIS PLUGIN IS OBSOLETE! PLEASE USE "MLA Advanced Custom Fields Example" INSTEAD.
 
 
 
 
 
 
 
 
 
 
 
 
4
  *
5
  * @package MLA ACF Checkbox Example
6
+ * @version 1.03
7
  */
8
 
9
  /*
10
  Plugin Name: MLA ACF Checkbox Example
11
  Plugin URI: http://davidlingren.com/
12
+ Description: THIS PLUGIN IS OBSOLETE! PLEASE USE "MLA Advanced Custom Fields Example" INSTEAD.
13
  Author: David Lingren
14
+ Version: 1.03
15
  Author URI: http://davidlingren.com/
16
 
17
+ Copyright 2021 David Lingren
18
 
19
  This program is free software; you can redistribute it and/or modify
20
  it under the terms of the GNU General Public License as published by
48
  * @return void
49
  */
50
  public static function initialize() {
51
+ // The filters are only useful for the admin section; exit in the front-end posts/pages
 
 
52
  if ( ! is_admin() )
53
  return;
54
 
55
+ // Defined in /media-library-assistant/includes/class-mla-list-table.php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  add_filter( 'mla_list_table_get_columns', 'MLAACFCheckboxExample::mla_list_table_get_columns', 10, 1 ); //
57
  add_filter( 'mla_list_table_get_hidden_columns', 'MLAACFCheckboxExample::mla_list_table_get_hidden_columns', 10, 1 ); //
58
  add_filter( 'mla_list_table_get_sortable_columns', 'MLAACFCheckboxExample::mla_list_table_get_sortable_columns', 10, 1 ); //
59
  add_filter( 'mla_list_table_column_default', 'MLAACFCheckboxExample::mla_list_table_column_default', 10, 3 ); //
 
60
  }
61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62
  /**
63
  * Holds the ISC custom field name to column "slug" mapping values
64
  *
95
  $new_columns = array();
96
 
97
  foreach ( $columns as $key => $value ) {
98
+ if ( $key === $slug ) {
99
  $new_columns['acf_checkbox'] = 'acf_checkbox';
100
  } else {
101
  $new_columns[ $key ] = $value;
151
  * @return array updated array of columns.
152
  */
153
  public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
154
+ // Replace the slug for the column we've captured, preserving its place in the list
 
 
155
  if ( isset( self::$field_slugs['acf_checkbox'] ) ) {
156
  $slug = self::$field_slugs['acf_checkbox'];
157
  if ( isset( $sortable_columns[ $slug ] ) ) {
185
  * @return string Text or HTML to be placed inside the column
186
  */
187
  public static function mla_list_table_column_default( $content, $item, $column_name ) {
188
+ // Display the notice.
189
+ if ( 'acf_checkbox' === $column_name ) {
190
+ return 'THIS PLUGIN IS OBSOLETE! PLEASE USE "MLA Advanced Custom Fields Example" INSTEAD.';
 
 
 
 
 
 
 
 
 
 
191
  }
192
 
193
  return $content;
194
  } // mla_list_table_column_default_filter
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  } // Class MLAACFCheckboxExample
196
 
197
+ // Install the filters at an early opportunity
 
 
198
  add_action('init', 'MLAACFCheckboxExample::initialize');
199
  ?>
examples/plugins/mla-advanced-custom-fields-example.php DELETED
@@ -1,815 +0,0 @@
1
- <?php
2
- /**
3
- * Provides an example of hooking the filters provided by the MLA_List_Table class
4
- *
5
- * In this example:
6
- *
7
- * 1. an Advanced Custom Fields "checkbox" custom field is added to the
8
- * Media/Assistant submenu table, Quick Edit and Bulk Edit areas.
9
- *
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
50
- the Free Software Foundation; either version 2 of the License, or
51
- (at your option) any later version.
52
-
53
- This program is distributed in the hope that it will be useful,
54
- but WITHOUT ANY WARRANTY; without even the implied warranty of
55
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
56
- GNU General Public License for more details.
57
-
58
- You can get a copy of the GNU General Public License by writing to the
59
- Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
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.
67
- *
68
- * @package MLA Advanced Custom Fields Example
69
- * @since 1.00
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
83
- *
84
- * @since 1.02
85
- *
86
- * @var string
87
- */
88
- const ACF_CHECKBOX_FIELD = 'acf_checkbox';
89
-
90
- /**
91
- * Field Label of the checkbox field
92
- *
93
- * @since 1.02
94
- *
95
- * @var string
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
- *
111
- * @since 1.02
112
- *
113
- * @var string
114
- */
115
- const ACF_REPEATER_FIELD = 'photos_alt';
116
-
117
- /**
118
- * Field Label of the "parent" repeater field
119
- *
120
- * @since 1.02
121
- *
122
- * @var string
123
- */
124
- const ACF_REPEATER_TITLE = 'Photos Alt';
125
-
126
- /**
127
- * Field name of the "child" image sub field
128
- *
129
- * @since 1.02
130
- *
131
- * @var string
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
- *
295
- * This filter gives you an opportunity to pre-process an MLA_List_Table "Quick Edit"
296
- * action before the MLA handler.
297
- *
298
- * @since 1.00
299
- *
300
- * @param array $item_content NULL, to indicate no handler.
301
- * @param integer $post_id the affected attachment.
302
- *
303
- * @return object updated $item_content. NULL if no handler, otherwise
304
- * ( 'message' => error or status message(s), 'body' => '',
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 ] );
312
- }
313
- }
314
-
315
- return $item_content;
316
- } // mla_list_table_inline_action
317
-
318
- /**
319
- * Pre-filter MLA_List_Table bulk action request parameters
320
- *
321
- * This filter gives you an opportunity to pre-process the request parameters for a bulk action
322
- * before the action begins. DO NOT assume parameters come from the $_REQUEST super array!
323
- *
324
- * @since 1.01
325
- *
326
- * @param array $request bulk action request parameters, including ['mla_bulk_action_do_cleanup'].
327
- * @param string $bulk_action the requested action.
328
- * @param array $custom_field_map [ slug => field_name ]
329
- *
330
- * @return array updated bulk action request parameters
331
- */
332
- public static function mla_list_table_bulk_action_initial_request( $request, $bulk_action, $custom_field_map ) {
333
- /*
334
- * If the field is present, save the field value for our own update process and remove it
335
- * from the $request array to prevent MLA's default update processing.
336
- */
337
- if ( false !== $slug = array_search( self::ACF_CHECKBOX_FIELD, $custom_field_map ) ) {
338
- if ( ! empty( $request[ $slug ] ) ) {
339
- self::$acf_checkbox_value = trim( $request[ $slug ] );
340
- $request[ $slug ] = '';
341
- }
342
- }
343
-
344
- return $request;
345
- } // mla_list_table_bulk_action_initial_request
346
-
347
- /**
348
- * Holds the new ACF checkbox value for the duration of a Bulk Edit action
349
- *
350
- * @since 1.01
351
- *
352
- * @var string
353
- */
354
- private static $acf_checkbox_value = NULL;
355
-
356
- /**
357
- * Process an MLA_List_Table bulk action
358
- *
359
- * This filter gives you an opportunity to pre-process an MLA_List_Table page-level
360
- * or single-item action, standard or custom, before the MLA handler.
361
- * The filter is called once for each of the items in $_REQUEST['cb_attachment'].
362
- *
363
- * @since 1.00
364
- *
365
- * @param array $item_content NULL, to indicate no handler.
366
- * @param string $bulk_action the requested action.
367
- * @param integer $post_id the affected attachment.
368
- *
369
- * @return object updated $item_content. NULL if no handler, otherwise
370
- * ( 'message' => error or status message(s), 'body' => '',
371
- * 'prevent_default' => true to bypass the MLA handler )
372
- */
373
- public static function mla_list_table_bulk_action( $item_content, $bulk_action, $post_id ) {
374
- /*
375
- * If the field is present, apply our own update process. Note the
376
- * special 'empty' value to bulk-delete the custom field entirely.
377
- */
378
- if ( ! empty( self::$acf_checkbox_value ) ) {
379
- if ( 'empty' == self::$acf_checkbox_value ) {
380
- delete_post_meta( $post_id, self::ACF_CHECKBOX_FIELD );
381
- $item_content = array( 'message' => sprintf( __( 'Deleting %1$s', 'media-library-assistant' ) . '<br>', self::ACF_CHECKBOX_FIELD ) );
382
- } else {
383
- update_post_meta( $post_id, self::ACF_CHECKBOX_FIELD, explode( ',', self::$acf_checkbox_value ) );
384
- $item_content = array( 'message' => sprintf( __( 'Adding %1$s = %2$s', 'media-library-assistant' ) . '<br>', self::ACF_CHECKBOX_FIELD, self::$acf_checkbox_value ) );
385
- }
386
- }
387
-
388
- return $item_content;
389
- } // mla_list_table_bulk_action
390
-
391
- /**
392
- * MLA_List_Table inline edit item values
393
- *
394
- * This filter gives you a chance to modify and extend the substitution values
395
- * for the Quick and Bulk Edit forms.
396
- *
397
- * @since 1.00
398
- *
399
- * @param array $item_values parameter_name => parameter_value pairs
400
- *
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
-
408
- return $item_values;
409
- } // mla_list_table_inline_values
410
-
411
- /**
412
- * Holds the ISC custom field name to column "slug" mapping values
413
- *
414
- * @since 1.01
415
- *
416
- * @var array
417
- */
418
- private static $field_slugs = array();
419
-
420
- /**
421
- * Filter the MLA_List_Table columns
422
- *
423
- * This MLA-specific filter gives you an opportunity to filter the list table columns.
424
- *
425
- * @since 1.00
426
- *
427
- * @param array $columns An array of columns.
428
- * format: column_slug => Column Label
429
- *
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
-
480
- /**
481
- * Filter the MLA_List_Table hidden columns
482
- *
483
- * This MLA-specific filter gives you an opportunity to filter the hidden list table columns.
484
- *
485
- * @since 1.00
486
- *
487
- * @param array $hidden_columns An array of columns.
488
- * format: index => column_slug
489
- *
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 ) {
497
- $hidden_columns[ $index ] = self::ACF_CHECKBOX_FIELD;
498
- }
499
- }
500
-
501
- return $hidden_columns;
502
- } // mla_list_table_get_hidden_columns
503
-
504
- /**
505
- * Filter the MLA_List_Table sortable columns
506
- *
507
- * This MLA-specific filter gives you an opportunity to filter the sortable list table
508
- * columns; a good alternative to the 'manage_media_page_mla_menu_sortable_columns' filter.
509
- *
510
- * @since 1.00
511
- *
512
- * @param array $sortable_columns An array of columns.
513
- * Format: 'column_slug' => 'orderby'
514
- * or 'column_slug' => array( 'orderby', true )
515
- *
516
- * The second format will make the initial sorting order be descending.
517
- *
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 ] ) ) {
525
- $new_columns = array();
526
-
527
- foreach ( $sortable_columns as $key => $value ) {
528
- if ( $key == $slug ) {
529
- $new_columns[ self::ACF_CHECKBOX_FIELD ] = $value;
530
- } else {
531
- $new_columns[ $key ] = $value;
532
- }
533
- } // foreach column
534
-
535
- $sortable_columns = $new_columns;
536
- } // slug found
537
- } // slug exists
538
-
539
- return $sortable_columns;
540
- } // mla_list_table_get_sortable_columns
541
-
542
- /**
543
- * Translate post_status 'future', 'pending', 'draft' and 'trash' to label
544
- *
545
- * @since 1.02
546
- *
547
- * @param string post_status
548
- *
549
- * @return string Status label or empty string
550
- */
551
- protected static function _format_post_status( $post_status ) {
552
- $flag = ',<br>';
553
- switch ( $post_status ) {
554
- case 'draft' :
555
- $flag .= __('Draft');
556
- break;
557
- case 'future' :
558
- $flag .= __('Scheduled');
559
- break;
560
- case 'pending' :
561
- $flag .= _x('Pending', 'post state');
562
- break;
563
- case 'trash' :
564
- $flag .= __('Trash');
565
- break;
566
- default:
567
- $flag = '';
568
- }
569
-
570
- return $flag;
571
- }
572
-
573
- /**
574
- * Supply a column value if no column-specific function has been defined
575
- *
576
- * Called when the MLA_List_Table can't find a value for a given column.
577
- *
578
- * @since 1.00
579
- *
580
- * @param string NULL, indicating no default content
581
- * @param array A singular item (one full row's worth of data)
582
- * @param array The name/slug of the column to be processed
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
-
602
- $where_clause = self::ACF_REPEATER_FIELD . '_%_' . self::ACF_SUB_FIELD;
603
- $references = $wpdb->get_results(
604
- "
605
- SELECT *
606
- FROM {$wpdb->postmeta}
607
- WHERE meta_key LIKE '{$where_clause}' AND meta_value = {$item->ID}
608
- "
609
- );
610
-
611
- $content = '';
612
- if ( ! empty( $references ) ) {
613
- $parents = array();
614
- foreach ( $references as $reference ) {
615
- // key on post_id to remove duplicates
616
- $parents[ $reference->post_id ] = $reference->post_id;
617
- }
618
-
619
- $parents = implode( ',', $parents );
620
- $references = $wpdb->get_results(
621
- "
622
- SELECT ID, post_type, post_status, post_title
623
- FROM {$wpdb->posts}
624
- WHERE ( post_type <> 'revision' ) AND ( ID IN ({$parents}) )
625
- "
626
- );
627
-
628
- foreach ( $references as $reference ) {
629
- $status = self::_format_post_status( $reference->post_status );
630
-
631
- if ( $reference->ID == $item->post_parent ) {
632
- $parent = ',<br>' . __( 'PARENT', 'media-library-assistant' );
633
- } else {
634
- $parent = '';
635
- }
636
-
637
- $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), ',
638
- /*%1$s*/ esc_url( add_query_arg( array('post' => $reference->ID, 'action' => 'edit'), 'post.php' ) ),
639
- /*%2$s*/ esc_attr( $reference->post_title ),
640
- /*%3$s*/ esc_attr( $reference->post_type ),
641
- /*%4$s*/ $reference->ID,
642
- /*%5$s*/ $status,
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
-
681
- /**
682
- * Filter the data for inline (Quick and Bulk) editing
683
- *
684
- * This filter gives you an opportunity to filter the data passed to the
685
- * JavaScript functions for Quick and Bulk editing.
686
- *
687
- * @since 1.00
688
- *
689
- * @param string $inline_data The HTML markup for inline data.
690
- * @param object $item The current Media Library item.
691
- *
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;
704
- }
705
-
706
- if ( isset( $item->mla_item_acf_checkbox ) ) {
707
- $value = $item->mla_item_acf_checkbox;
708
- if ( is_array( $value ) ) {
709
- $head = substr( $inline_data, 0, $matches[1][0][1] );
710
- $value = esc_html( implode( ',', $value ) );
711
- $tail = substr( $inline_data, ( $matches[1][0][1] + strlen( $matches[1][0][0] ) ) );
712
- $inline_data = $head . $value . $tail;
713
- }
714
- }
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-advanced-custom-fields-example/admin-settings-page.tpl ADDED
@@ -0,0 +1,469 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- template="page" -->
2
+ <a name="backtotop"></a>
3
+ &nbsp;
4
+ <div class="wrap">
5
+ <h1 class="wp-heading-inline">[+plugin_title+] [+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
+ </div>
24
+
25
+ <!-- template="page-level-options" -->
26
+ <tr valign="top">
27
+ <td class="textright">
28
+ <input name="[+slug_prefix+]_options[acf_checkbox_enabled]" id="[+slug_prefix+]_options_acf_checkbox_enabled" type="checkbox" [+acf_checkbox_enabled_checked+] value="1" />
29
+ </td>
30
+ <td>
31
+ &nbsp;<strong>Enable Checkbox Field</strong>
32
+ <div class="mla-settings-help">&nbsp;&nbsp;Check this option to activate support for one ACF Checkbox field.</div>
33
+ </td>
34
+ </tr>
35
+ <tr valign="top">
36
+ <td class="textright">
37
+ <strong>Checkbox Field</strong>
38
+ </td>
39
+ <td>
40
+ <input name="[+slug_prefix+]_options[acf_checkbox_fields]" id="[+slug_prefix+]_options_acf_checkbox_fields" type="text" size="30" maxlength="30" value="[+acf_checkbox_fields+]" />
41
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one (and only one) checkbox field name (not label).</div>
42
+ </td>
43
+ </tr>
44
+ <tr valign="top">
45
+ <td class="textright">
46
+ <strong>Checkbox Titles</strong>
47
+ </td>
48
+ <td>
49
+ <input name="[+slug_prefix+]_options[acf_checkbox_titles]" id="[+slug_prefix+]_options_acf_checkbox_titles" type="text" size="30" maxlength="30" value="[+acf_checkbox_titles+]" />
50
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one (and only one) checkbox field title.</div>
51
+ </td>
52
+ </tr>
53
+
54
+ <tr valign="top">
55
+ <td class="textright">
56
+ <input name="[+slug_prefix+]_options[acf_select_enabled]" id="[+slug_prefix+]_options_acf_select_enabled" type="checkbox" [+acf_select_enabled_checked+] value="1" />
57
+ </td>
58
+ <td>
59
+ &nbsp;<strong>Enable Select Fields</strong>
60
+ <div class="mla-settings-help">&nbsp;&nbsp;Check this option to activate support for one or more ACF Select fields.</div>
61
+ </td>
62
+ </tr>
63
+ <tr valign="top">
64
+ <td class="textright">
65
+ <strong>Select Fields</strong>
66
+ </td>
67
+ <td>
68
+ <input name="[+slug_prefix+]_options[acf_select_fields]" id="[+slug_prefix+]_options_acf_select_fields" type="text" size="80" maxlength="80" value="[+acf_select_fields+]" />
69
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one or more select field names (not labels) separated by commas.</div>
70
+ </td>
71
+ </tr>
72
+ <tr valign="top">
73
+ <td class="textright">
74
+ <strong>Select Titles</strong>
75
+ </td>
76
+ <td>
77
+ <input name="[+slug_prefix+]_options[acf_select_titles]" id="[+slug_prefix+]_options_acf_select_titles" type="text" size="80" maxlength="80" value="[+acf_select_titles+]" />
78
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one or more optional select field titles separated by commas. An empty value will be replaced by the corresponding ACF Label.</div>
79
+ </td>
80
+ </tr>
81
+
82
+ <tr valign="top">
83
+ <td class="textright">
84
+ <input name="[+slug_prefix+]_options[acf_repeater_enabled]" id="[+slug_prefix+]_options_acf_repeater_enabled" type="checkbox" [+acf_repeater_enabled_checked+] value="1" />
85
+ </td>
86
+ <td>
87
+ &nbsp;<strong>Enable Repeater Field</strong>
88
+ <div class="mla-settings-help">&nbsp;&nbsp;Check this option to activate support for "where used" analysis of one ACF Repeater field.</div>
89
+ </td>
90
+ </tr>
91
+ <tr valign="top">
92
+ <td class="textright">
93
+ <strong>Repeater Field</strong>
94
+ </td>
95
+ <td>
96
+ <input name="[+slug_prefix+]_options[acf_repeater_fields]" id="[+slug_prefix+]_options_acf_repeater_fields" type="text" size="30" maxlength="30" value="[+acf_repeater_fields+]" />
97
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one (and only one) repeater field name (not label).</div>
98
+ </td>
99
+ </tr>
100
+ <tr valign="top">
101
+ <td class="textright">
102
+ <strong>Repeater Subfield</strong>
103
+ </td>
104
+ <td>
105
+ <input name="[+slug_prefix+]_options[acf_repeater_subfields]" id="[+slug_prefix+]_options_acf_repeater_subfields" type="text" size="30" maxlength="30" value="[+acf_repeater_subfields+]" />
106
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one (and only one) repeater field subfield name (not label).</div>
107
+ </td>
108
+ </tr>
109
+ <tr valign="top">
110
+ <td class="textright">
111
+ <strong>Repeater Title</strong>
112
+ </td>
113
+ <td>
114
+ <input name="[+slug_prefix+]_options[acf_repeater_titles]" id="[+slug_prefix+]_options_acf_repeater_titles" type="text" size="30" maxlength="30" value="[+acf_repeater_titles+]" />
115
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one (and only one) repeater field title.</div>
116
+ </td>
117
+ </tr>
118
+
119
+ <tr valign="top">
120
+ <td class="textright">
121
+ <input name="[+slug_prefix+]_options[acf_image_enabled]" id="[+slug_prefix+]_options_acf_image_enabled" type="checkbox" [+acf_image_enabled_checked+] value="1" />
122
+ </td>
123
+ <td>
124
+ &nbsp;<strong>Enable Image Fields</strong>
125
+ <div class="mla-settings-help">&nbsp;&nbsp;Check this option to activate support for "where used" analysis of one or more ACF Image fields.</div>
126
+ </td>
127
+ </tr>
128
+ <tr valign="top">
129
+ <td class="textright">
130
+ <strong>Image Fields</strong>
131
+ </td>
132
+ <td>
133
+ <input name="[+slug_prefix+]_options[acf_image_fields]" id="[+slug_prefix+]_options_acf_image_fields" type="text" size="80" maxlength="80" value="[+acf_image_fields+]" />
134
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one or more image field names (not labels) separated by commas.</div>
135
+ </td>
136
+ </tr>
137
+ <tr valign="top">
138
+ <td class="textright">
139
+ <strong>Image Titles</strong>
140
+ </td>
141
+ <td>
142
+ <input name="[+slug_prefix+]_options[acf_image_titles]" id="[+slug_prefix+]_options_acf_image_titles" type="text" size="80" maxlength="80" value="[+acf_image_titles+]" />
143
+ <div class="mla-settings-help">&nbsp;&nbsp;Enter one or more optional image field titles separated by commas. An empty value will be replaced by the corresponding ACF Label.</div>
144
+ </td>
145
+ </tr>
146
+
147
+
148
+ <!-- template="general-tab" -->
149
+ <style type='text/css'>
150
+ .mla-settings-help {
151
+ font-size: 8pt;
152
+ padding-bottom: 5px
153
+ }
154
+
155
+ .mla-page-level-options-form {
156
+ margin-left: 0px;
157
+ margin-top: 10px;
158
+ padding-bottom: 10px;
159
+ border-bottom:thin solid #888888;
160
+ }
161
+
162
+ span.submit.mla-settings-submit,
163
+ p.submit.mla-settings-submit {
164
+ padding-bottom: 0px
165
+ }
166
+ </style>
167
+ <h2>Plugin Options</h2>
168
+ <div style="max-width:700px">
169
+ <p>In this tab you can enable any of four types of enhanced support for the popular Advanced Custom Fields (ACF) plugin.</p>
170
+ <ol>
171
+ <li>An ACF "checkbox" custom field is added to the Media/Assistant submenu table, Quick Edit and Bulk Edit areas.</li>
172
+ <li>ACF "select" custom fields are made available in the Media/Assistant submenu table as columns that display the ACF label (Vs the value) ssigned to each choice. You can edit the fields by changing the label; the plugin will convert this to the corresponding value and update the field appropriately.</li>
173
+ <li>An ACF "repeater" custom field is analyzed to display "where used" information in the Media/Assistant submenu table.</li>
174
+ <li>ACF "image" custom fields are analyzed to display "where used" information in the Media/Assistant submenu table. Some "image" custom field(s) values are made available as custom data substitution parameters, using the prefix "acf:"</li>
175
+ </ol>
176
+ <p>You can find more information about using all of the features of this plugin in the Documentation tab on this page.</p>
177
+ </div>
178
+ <div class="mla-page-level-options-form">
179
+ <form action="[+form_url+]" method="post" class="mla-display-settings-page" id="[+slug_prefix+]_options_general_tab">
180
+ <table class="optiontable">
181
+ <tbody>
182
+ [+options_list+]
183
+ </tbody>
184
+ </table>
185
+ <span class="submit mla-settings-submit">
186
+ <input name="[+slug_prefix+]_options_save" class="button-primary" id="[+slug_prefix+]_options_save" type="submit" value="Save Changes" />
187
+ <input name="[+slug_prefix+]_options_reset" class="button-primary alignright" id="[+slug_prefix+]_options_reset" type="submit" value="Delete Settings, Restore Defaults" />
188
+ </span>
189
+ [+_wpnonce+]
190
+ </form>
191
+ </div>
192
+
193
+ <!-- template="documentation-tab" -->
194
+ <style type='text/css'>
195
+ .mla-doc-toc-list {
196
+ list-style-position:inside;
197
+ list-style:disc;
198
+ line-height: 15px;
199
+ padding-left: 20px
200
+ }
201
+
202
+ .mla-doc-hook-label {
203
+ text-align: right;
204
+ padding: 0 1em 2em 0;
205
+ vertical-align: top;
206
+ font-weight:bold
207
+ }
208
+
209
+ .mla-doc-hook-definition {
210
+ vertical-align: top;
211
+ }
212
+
213
+ .mla-doc-table-label {
214
+ text-align: right;
215
+ padding-right: 10px;
216
+ vertical-align: top;
217
+ font-weight:bold
218
+ }
219
+
220
+ .mla-doc-table-sublabel {
221
+ padding-right: 10px;
222
+ vertical-align: top
223
+ }
224
+
225
+ .mla-doc-table-reverse {
226
+ text-align: right;
227
+ padding-right: 10px;
228
+ vertical-align:top
229
+ }
230
+
231
+ .mla-doc-table-definition {
232
+ vertical-align: top;
233
+ }
234
+
235
+ .mla-doc-bold-link {
236
+ font-size:14px;
237
+ font-weight:bold
238
+ }
239
+ </style>
240
+ <h2>Plugin Documentation</h2>
241
+ <p>In this tab, jump to:</p>
242
+ <div class="mla-display-settings-page" id="[+slug_prefix+]_options_documentation_tab" style="width:700px">
243
+ <ul class="mla-doc-toc-list">
244
+ <li><a href="#introduction"><strong>Introduction</strong></a></li>
245
+ <li><a href="#processing"><strong>How the Plugin Works</strong></a></li>
246
+ <li><a href="#checkbox"><strong>Checkbox Field</strong></a></li>
247
+ <li><a href="#select"><strong>Select Fields</strong></a></li>
248
+ <li><a href="#repeater"><strong>Repeater Field "Where Used" Analysis</strong></a></li>
249
+ <li><a href="#image"><strong>Image Fields "Where Used" Analysis</strong></a></li>
250
+ <li><a href="#debugging"><strong>Debugging and Troubleshooting</strong></a></li>
251
+ </ul>
252
+ <p>
253
+ &nbsp;
254
+ <a name="introduction"></a>
255
+ </p>
256
+ <p>
257
+ <a href="#backtotop">Go to Top</a>
258
+ </p>
259
+ <h3>Introduction</h3>
260
+ <p>
261
+ The <a href="https://wordpress.org/plugins/advanced-custom-fields/" title="ACF, by Delicious Brains" target="_blank">Advanced Custom Fields</a> plugin allows you to quickly and easily add fields of many types to WP edit screens. The MLA Advanced Custom Fields Example plugin makes some types of ACF fields available in the Media/Assistant submenu table and the quick and bulk edit areas. It allows you to do "where-used" anaysis to see where Media Library items are used in ACF Image and Repeater fields. The example plugin was originally developed (as the "MLA ACF Checkbox Example" plugin) in response to this MLA support topic:
262
+ </p>
263
+ <ul class="mla-doc-toc-list">
264
+ <li><a href="https://wordpress.org/support/topic/bulk-edit-a-custom-field-value/#post-4428935" title="View the topic" target="_blank">Bulk edit a custom field value</a></li>
265
+ </ul>
266
+ <p>
267
+ The Select Field support was added in response to this MLA support topic:
268
+ </p>
269
+ <ul class="mla-doc-toc-list">
270
+ <li><a href="https://wordpress.org/support/topic/bulk-edit-acf-custom-field/" title="View the topic" target="_blank">Bulk edit ACF custom field</a></li>
271
+ </ul>
272
+ <p>
273
+ The Repeater Field support was added in response to this MLA support topic:
274
+ </p>
275
+ <ul class="mla-doc-toc-list">
276
+ <li><a href="https://wordpress.org/support/topic/advanced-custom-fields-repeater/" title="View the topic" target="_blank">Advanced Custom Fields repeater</a></li>
277
+ </ul>
278
+ <p>
279
+ The Image Field support was added in response to this MLA support topic:
280
+ </p>
281
+ <ul class="mla-doc-toc-list">
282
+ <li><a href="https://wordpress.org/support/topic/finding-where-used-in-custom-field/" title="View the topic" target="_blank">finding "where used" in custom field</a></li>
283
+ </ul>
284
+ <p>
285
+ To use the plugin you must configure the options on the General tab for the field type(s) you want to add to MLA. Each type has an "Enable" checkbox so you can turn it on or off easily, without deleting any of the other values you enter. For each of the types you must enter the Field Name(s) of the ACF fields you want to use. These names are all lowercase and may have underscores. You can also enter "Titles" to identify the fields in the MLA User Interface.
286
+ </p>
287
+ <p>
288
+ More details on the features available for each field type are in the sections of this Documentation page.
289
+ </p>
290
+ <p>
291
+ You might also be interested in the "MLA Parent Custom Field Mapping" example plugin, which allows IPTC/EXIF and Custom Field mapping rules to update custom fields in the item’s parent post/page rather than the items’s own fields. Support for Advanced Custom Fields and WP/LR Sync is included. That plugin was developed in response to this MLA support topic:
292
+ </p>
293
+ <ul class="mla-doc-toc-list">
294
+ <li><a href="https://wordpress.org/support/topic/iptc-exif-mapping-on-picture-upload-to-parent-posts-custom-fields/" title="View the topic" target="_blank">IPTC/EXIF Mapping on picture upload to parent post’s custom fields</a></li>
295
+ </ul>
296
+ <p>
297
+ &nbsp;
298
+ <a name="processing"></a>
299
+ </p>
300
+ <p>
301
+ <a href="#backtotop">Go to Top</a>
302
+ </p>
303
+ <h3>How the Plugin Works</h3>
304
+ <p>
305
+ The example plugin makes no changes or additions to the MLA core code; it uses (or "hooks" - verb) some of the many actions and filters MLA provides. When the post/page is loaded this plugin is initialized, setting thirteen MLA "hooks" (noun) that may be called to perform the plugin&rsquo;s processing. There are three groups of action/filter functions that implement the features of this example plugin. Within each group the "Enable" option settings are examined to see if the corresponding ACF field type is to be processed. The outline that follows is somewhat technical, but should give you an idea of the sequence of events and actions that allow the plugin to do its work.
306
+ </p>
307
+ <p>
308
+ To support adding columns to the Media/Assistant admin submenu table five hooks are set:
309
+ </p>
310
+ <ul class="mla-doc-toc-list">
311
+ <li><strong>mla_list_table_get_columns</strong> - called at the start of composing the Media/Assistant submenu page. Column definitions for the fields defined on the General tab are added to the list.</li>
312
+ <li><strong>mla_list_table_get_hidden_columns</strong> - called when the submenu table navigation elements are composed. Definitions for this plugin&rsquo;s columns are added..</li>
313
+ <li><strong>mla_list_table_get_sortable_columns</strong> - called when the submenu table navigation elements are composed. Definitions for this plugin&rsquo;s columns are added.</li>
314
+ <li><strong>mla_list_table_column_default</strong> - Called when the MLA_List_Table can't find a value for a given column. This example plugin will look for a match with the fields defined on the General tab and supply the field&rsquo;s value if matched.</li>
315
+ <li><strong>mla_list_table_query_final_terms</strong> - called just before the database is queried to find items for the submenu table display. If a sort specification for a select column is present it is added to the query arguments.</li>
316
+ </ul>
317
+ <p>
318
+ All five of the above hooks are defined and called ("applied") in <code>/media-library-assistant/includes/class-mla-list-table.php</code>.
319
+ </p>
320
+ <p>
321
+ To support editing the ACF field values in the Media/Assistant Bulk and Quick Edit areas six hooks are set:
322
+ </p>
323
+ <ul class="mla-doc-toc-list">
324
+ <li><strong>mla_list_table_build_inline_data</strong> - called for each item as it is added to the table display. Current values for this plugin&rsquo;s fields are added.</li>
325
+ <li><strong>mla_list_table_inline_fields</strong> - called as the Quick and Bulk Edit areas are set up. This plugin&rsquo;s fields are added to the list of fields eligible for Quick and Bulk editing.</li>
326
+ <li><strong>mla_list_table_inline_action</strong> - called just before the Quick Edit updates are processed. This plugin&rsquo;s checkbox and select field values are converted from the values used in the User Interface to the values stored in the database.</li>
327
+ <li><strong>mla_list_table_bulk_action_initial_request</strong> - called at the start of the AJAX request that will apply Bulk Edit updates. This plugin&rsquo;s checkbox and select field values are saved for later processing and removed from the request to prevent MLA's default processing.</li>
328
+ <li><strong>mla_list_table_bulk_action</strong> - called just before the Bulk Edit updates are processed. This plugin&rsquo;s checkbox and select field values are converted from the values used in the User Interface to the values stored in the database.</li>
329
+ <li><strong>mla_list_table_inline_values</strong> - called as the Quick and Bulk Edit areas are set up. This plugin&rsquo;s fields are added to the HTML markup for the areas.</li>
330
+ </ul>
331
+ <p>
332
+ The build inline data hook is defined and called ("applied") in <code>/media-library-assistant/includes/class-mla-list-table.php</code>. The other five hooks are defined and called ("applied") in <code>/media-library-assistant/includes/class-mla-main.php</code>.
333
+ </p>
334
+ <p>
335
+ To support adding columns to the Media/Assistant admin submenu table one hook is set:
336
+ </p>
337
+ <ul class="mla-doc-toc-list">
338
+ <li><strong>mla_expand_custom_prefix</strong> - called when a substitution parameter's prefix value is not recognized by MLA. In this plugin the <code>acf:</code> custom prefix lowers the risk that the plugin&rsquo;s data-source name(s) will conflict with other plugins or future MLA versions.</li>
339
+ </ul>
340
+ <p>
341
+ The above hook is defined and called ("applied") in <code>/media-library-assistant/includes/class-mla-data.php</code>. It is the only plugin feature that must be available in the "front end" of the site, where it can be used with the MLA shortcodes to display galleries.
342
+ <a name="checkbox"></a>
343
+ </p>
344
+ <p>
345
+ <a href="#backtotop">Go to Top</a>
346
+ </p>
347
+ <h3>Checkbox Field</h3>
348
+ <p>
349
+ An ACF "Checkbox" field has one or more HTML checkbox elements, each with a value and a label. The value is stored in the database and the label is shown to the user. Each element can have just a label, in which case the label and value are identical, or a separate value and label. Each element is shown to the user as an HTML checkbox, and the value is stored in the database only if the box is checked.
350
+ </p>
351
+ <p>
352
+ This example plugin supports one ACF Checkbox field. The title displayed in the Media/Assistant admin submenu is set in the General tab. The "MLA value" for the field shows only the elements whose box is checked; the value is shown as a simple string if just one box is checked or as a comma-separated list if more than one box is checked. This plugin manages the values associated with the field, but you must also create an MLA Custom Field mapping rule to add the field to the UI. To create the ruls:
353
+ </p>
354
+ <ol>
355
+ <li>Navigate to the Settings/Media Library Assistant "Custom Fields" tab.</li></li>
356
+ <li>Scroll down to the "Add New Custom Field Rule" section on the left-hand side of the page.</li>
357
+ <li>Select the ACF field name in the "Name" dropdown. If you don't see it in the list, click "Enter new field" and enter the name of the field.</li>
358
+ <li>Leave the default Data Source dropdown, "– None (select a value) –". You don't want this rule to overwrite the ACF values.</li>
359
+ <li>Leave the Meta/Template text box empty.</li>
360
+ <li>Check the "MLA Column" box if you want to display the field as a column in the Media/Assistant submenu table.</li>
361
+ <li>Check the "Quick Edit" box to enable changing the field value(s) in the Media/Assistant Quick Edit area.</li>
362
+ <li>Check the "Bulk Edit" box to enable changing the field value(s) in the Media/Assistant Bulk Edit area.</li>
363
+ <li>Select "Keep" for "Existing Text".</li>
364
+ <li>Select "Native" for "Format".</li>
365
+ <li>Select "Text" for "Option".</li>
366
+ <li>Check the "Delete NULL Values" box to avoid storing empty values.</li>
367
+ <li>Leave the default "Status", "Active".</li>
368
+ <li>Click "Add Rule" to create the new rule.</li>
369
+ </ol>
370
+ <p>
371
+ Once the rule is in place this plugin will "capture" the custom field and apply its logic:
372
+ </p>
373
+ <ul class="mla-doc-toc-list">
374
+ <li>If the "MLA Column" box is checked the corresponding Media/Assistant table column will have the Title entered in the General tab and will display field values as a comma-separated list.</li>
375
+ <li>If the "Quick Edit" box is checked the field will appear in the Quick Edit Area. You can enter one or more comma-separated field values in the text box and they will be converted to an array for storage in the database.</li>
376
+ <li>If the "Bulk Edit" box is checked the field will appear in the Bulk Edit Area. You can enter one or more comma-separated field values in the text box and they will be converted to an array for storage in the database. You can also enter the special value "empty" to delete/uncheck all of the boxes in the field.</li>
377
+ </ul>
378
+ <p>
379
+ You can always define the custom field rule without naming it as the Checkbox field in this plugin. If the field has exactly one checkbox element you can enter the field value directly. However, if the field has more than one checkbox element the values will be shown as an array and the Quick and Bulk edit functions will not work..
380
+ </p>
381
+ <p>
382
+ <strong>NOTE:</strong> Although commas are allowed in the ACF field value, they are not supported in this plugin because the comma is used here to separate one value from another. If that's a problem, open a support topic and I will consider enhancing this plugin.
383
+ <a name="select"></a>
384
+ </p>
385
+ <p>
386
+ <a href="#backtotop">Go to Top</a>
387
+ </p>
388
+ <h3>Select Fields</h3>
389
+ <p>
390
+ An ACF "Select" field creates an HTML dropdown control with one or more choices, each with a value and a label. The value is stored in the database and the label is shown to the user. Each element can have just a label, in which case the label and value are identical, or a separate value and label. The choices shown to the user as an HTML dropdown control, and the selected value is stored in the database.
391
+ </p>
392
+ <p>
393
+ This example plugin supports one or more Select fields. The title displayed in the Media/Assistant admin submenu is set in the General tab. The "MLA value" for the field shows the label. To change the choice recorded in the database you can enter the label of the choice you want in the Quick or Bulk Edit areas. This plugin translates the label entered to the corresponding value and stores that in the database. You can sort the submenu table by clicking the column header. The sort order will be the field value, not the label, so the results might appear to be out of order.
394
+ </p>
395
+ <p>
396
+ If your ACF field definition allows "Select multiple values", the label(s) will be presented as a comma separated list. You can enter multiple comma separated labels in the Quick and Bulk Area text boxes. You can also enter the special value "empty" in the Bulk Edit text box to delete all choices.
397
+ </p>
398
+ <p>
399
+ You do not have to define an MLA Custom Field mapping rule for your select field(s). This plugin will automatically add the fields specified on the General tab to the Media/Assistant submenu table and the Quick and Bulk Edit areas. If you do define an MLA rule for the field it will be shown in addition to the field defined by this plugin. The MLA field will show and use the ACF values, not the labels, for its content.
400
+ </p>
401
+ <p>
402
+ &nbsp;
403
+ <a name="repeater"></a>
404
+ </p>
405
+ <p>
406
+ <a href="#backtotop">Go to Top</a>
407
+ </p>
408
+ <h3>Repeater Field "Where Used" Analysis</h3>
409
+ <p>
410
+ An ACF "Repeater" field provides a solution for repeating content. This field type acts as a parent to a set of sub fields which can be repeated again and again. Any kind of field can be used within a Repeater, and there are no limits to the number of repeats. If one of a Repeater's sub fields is an ACF "Image" field, this plugin can show you where each Media Library item is used in that sub field.
411
+ </p>
412
+ <p>
413
+ This example plugin analyzes one Image sub field in one Repeater field; the results are shown in a Media/Assistant submenu table column. For each item used in the Repeater/Image sub field the column will show the title, type (post, page, etc.) and ID of the using entity. You can click on the title to go to the Edit page for the entity.
414
+ &nbsp;
415
+ <a name="image"></a>
416
+ </p>
417
+ <p>
418
+ <a href="#backtotop">Go to Top</a>
419
+ </p>
420
+ <h3>Image Fields "Where Used" Analysis</h3>
421
+ <p>
422
+ An ACF "Image" field allows an image to be uploaded and selected by using the native WordPress media modal. The ID of the Media Library item containing the image is stored in the database.
423
+ </p>
424
+ <p>
425
+ This example plugin analyzes one or Image field(s); the results for each field are shown in a Media/Assistant submenu table column. For each item used in each Image field the column will show the title, type (post, page, etc.) and ID of the using entity. You can click on the title to go to the Edit page for the entity.
426
+ <a name="debugging"></a>
427
+ </p>
428
+ <p>
429
+ <a href="#backtotop">Go to Top</a>
430
+ </p>
431
+ <h3>Debugging and Troubleshooting</h3>
432
+ <p>
433
+ If you are not getting the results you expect from the plugin carefully inspecting the results of its operations can be a valuable exercise. You can activate some MLA debug logging to add information to the site error log that details what the plugin is doing.
434
+ </p>
435
+ <p>
436
+ The most common cause of unexpected results is mispelling the ACF field name or trying to use the field label instead of the name. For the Quick and Bulk edit areas, make sure you enter the exact checkbox value or select option label without leading or trailing spaces. These values are case sensitive; "Yes" is different from "yes".</p>
437
+ </p>
438
+ <p>
439
+ If a problem persists you can activate additional MLA debug logging, run a test and inspect the log file for more information about what's going on. To activate MLA&rsquo;s debug logging:
440
+ </p>
441
+ <ol>
442
+ <li>Navigate to the Settings/Media Library Assistant Debug tab.</li>
443
+ <li>Scroll down to the &ldquo;MLA Reporting&rdquo; text box and enter &ldquo;0x8003&rdquo;. This will turn on MLA debug logging for the example plugin and AJAX operations (such as Quick and Bulk updates).</li>
444
+ <li>Click the Save Changes button to record your new setting.</li>
445
+ <li>Optionally, scroll to the bottom of the screen and click &ldquo;Reset&rdquo; to clear the error log. You may not want to do this depending on how you manage your error log.</li>
446
+ </ol>
447
+ <p>
448
+ Once that&rsquo;s done you can run a test. The debug log can be very detailed, so restricting the test as best you can will be very helpful. If you are working with the Media/Assistant admin submenu table try reducing the "Entries per page" to a small number, e.g., 1. When you&rsquo;ve finished testing, go back to the Debug screen and:
449
+ </p>
450
+ <ol>
451
+ <li>Enter &ldquo;0&rdquo; in the MLA Reporting text box to turn debug logging off.</li>
452
+ <li>Click the Save Changes button to record your new setting.</li>
453
+ <li>Scroll to the bottom and click &ldquo;Download&rdquo; to get the log content in a text file.</li>
454
+ <li>Optionally, scroll to the bottom of the screen and click &ldquo;Reset&rdquo; to clear the error log.</li>
455
+ </ol>
456
+ <p>
457
+ There may be a lot of messages written to the log, so limit the amount of activity during the logging period. You should see messages in the log like these:
458
+ </p>
459
+ <blockquote>
460
+ [07-Oct-2021 23:51:09 UTC] 187 MLAACFExample::initialize plugin_settings = array (<br />
461
+ 'acf_checkbox_enabled' => true,<br />
462
+ ...<br />
463
+ )<br />
464
+ [07-Oct-2021 23:51:14 UTC] 640 MLACore::mla_plugins_loaded_action() MLA 2.97 (20210930) mla_debug_level 0x8003
465
+ </blockquote>
466
+ <p>
467
+ Of course, the details will be different. If you discover a defect in the plugin (or in MLA) you can <a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">open a support topic</a> or <a href="http://davidlingren.com/#two" target="_blank">contact me at my web site</a> so it can be investigated further. I may ask for a copy of the log file from your tests.
468
+ </p>
469
+ </div>
examples/plugins/{mla-custom-field-search-example/class-mla-example-plugin-settings.php → mla-advanced-custom-fields-example/class-mla-example-plugin-settings-101.php} RENAMED
@@ -4,12 +4,12 @@
4
  *
5
  * This file might be shared among multiple example plugins, so load it with:
6
  *
7
- * if ( ! class_exists( 'MLAExamplePluginSettings' ) ) {
8
- * require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings.php' );
9
  * }
10
  *
11
  * @package Media Library Assistant
12
- * @since 1.00
13
  */
14
 
15
  /**
@@ -18,7 +18,7 @@
18
  * @package MLA Example Settings Menu
19
  * @since 1.00
20
  */
21
- class MLAExamplePluginSettings {
22
  /**
23
  * Default values for the __construct function
24
  *
@@ -55,6 +55,7 @@ class MLAExamplePluginSettings {
55
  * @param array $attr Option definitions and settings
56
  */
57
  public function __construct( $attr ) {
 
58
  // Make sure $attr is an array, even if it's empty
59
  if ( empty( $attr ) ) {
60
  $attr = array();
@@ -71,6 +72,17 @@ class MLAExamplePluginSettings {
71
  }
72
 
73
  if ( is_admin() ) {
 
 
 
 
 
 
 
 
 
 
 
74
  // Add submenu page in the "Settings" section
75
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
76
  }
@@ -296,10 +308,10 @@ class MLAExamplePluginSettings {
296
  if ( 'checkbox' === $option['type'] ) {
297
  $page_values[ $slug . '_checked' ] = $this->get_plugin_option( $slug ) ? 'checked="checked" ' : '';
298
  } else {
299
- $page_values[ $slug ] = $this->get_plugin_option( $slug );
300
  }
301
  }
302
- //error_log( __LINE__ . ' MLAExamplePluginSettings::_compose_general_tab page_values = ' . var_export( $page_values, true ), 0 );
303
 
304
  $options_list = MLAData::mla_parse_template( $this->page_template_array['page-level-options'], $page_values );
305
 
@@ -345,17 +357,20 @@ class MLAExamplePluginSettings {
345
  $page_content = array( 'message' => 'Settings unchanged.', 'body' => '' );
346
 
347
  $changed = false;
 
348
  foreach ( $this->current_arguments['options'] as $slug => $option ) {
349
  if ( 'checkbox' === $option['type'] ) {
350
- $changed |= $this->_update_plugin_option( $slug, isset( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ][ $slug ] ) );
351
  } else {
352
- if ( isset( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ][ $slug ] ) ) {
353
- $changed |= $this->_update_plugin_option( $slug, $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ][ $slug ] );
354
  } else {
355
  $changed |= $this->_update_plugin_option( $slug, $option['default'] );
356
  }
357
  }
358
  } // foreach option
 
 
359
 
360
  if ( $changed ) {
361
  // No reason to save defaults in the database
@@ -410,6 +425,7 @@ class MLAExamplePluginSettings {
410
 
411
  // Update the plugin options from the wp_options table or set defaults
412
  $this->current_settings = get_option( $this->current_arguments['slug_prefix'] . '-settings' );
 
413
  if ( !is_array( $this->current_settings ) ) {
414
  $this->current_settings = $this->default_settings;
415
  }
@@ -421,9 +437,19 @@ class MLAExamplePluginSettings {
421
  }
422
  }
423
 
 
424
  return true;
425
  }
426
 
 
 
 
 
 
 
 
 
 
427
  /**
428
  * In-memory representation of the option settings
429
  *
@@ -442,6 +468,31 @@ class MLAExamplePluginSettings {
442
  */
443
  private $default_settings = array();
444
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
445
  /**
446
  * Get a plugin option setting
447
  *
@@ -456,36 +507,63 @@ class MLAExamplePluginSettings {
456
  return NULL;
457
  }
458
 
459
- if ( !isset( $this->current_settings[ $name ] ) ) {
460
- return NULL;
 
 
 
 
 
461
  }
462
 
463
- return $this->current_settings[ $name ];
 
 
 
 
 
 
 
 
 
 
464
  }
465
 
466
  /**
467
- * Update a plugin option setting
468
  *
469
- * @since 1.00
470
  *
471
- * @param string $name Option name
472
- * @param mixed $new_value Option value
473
  *
474
- * @return mixed True if option value changed, false if value unchanged, NULL if failure
475
  */
476
- private function _update_plugin_option( $name, $new_value ) {
477
- if ( !$this->_get_plugin_settings() ) {
478
  return NULL;
479
  }
480
 
481
- $old_value = isset( $this->current_settings[ $name ] ) ? $this->current_settings[ $name ] : NULL;
 
 
 
 
 
 
 
 
 
 
 
 
 
482
 
483
  if ( $new_value === $old_value ) {
484
  return false;
485
  }
486
 
487
- $this->current_settings[ $name ] = $new_value;
488
  return true;
489
  }
490
- } // Class MLAExamplePluginSettings
491
  ?>
4
  *
5
  * This file might be shared among multiple example plugins, so load it with:
6
  *
7
+ * if ( ! class_exists( 'MLAExamplePluginSettings101' ) ) {
8
+ * require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings-101.php' );
9
  * }
10
  *
11
  * @package Media Library Assistant
12
+ * @version 1.01
13
  */
14
 
15
  /**
18
  * @package MLA Example Settings Menu
19
  * @since 1.00
20
  */
21
+ class MLAExamplePluginSettings101 {
22
  /**
23
  * Default values for the __construct function
24
  *
55
  * @param array $attr Option definitions and settings
56
  */
57
  public function __construct( $attr ) {
58
+ //error_log( __LINE__ . " MLAExamplePluginSettings101::__construct() _REQUEST = " . var_export( $_REQUEST, true ), 0 );
59
  // Make sure $attr is an array, even if it's empty
60
  if ( empty( $attr ) ) {
61
  $attr = array();
72
  }
73
 
74
  if ( is_admin() ) {
75
+ // Record new settings if they're being updated
76
+ $this->request_settings = array();
77
+ if ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_save'] ) ) {
78
+ if ( isset( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ] ) ) {
79
+ $this->request_settings = wp_unslash( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ] );
80
+ }
81
+ } elseif ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_reset'] ) ) {
82
+ $this->request_settings = $this->default_settings;
83
+ }
84
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::__construct request_settings = ' . var_export( $this->request_settings, true ), 0 );
85
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::__construct mla_hex_dump( exports ) = ' . var_export( MLAData::mla_hex_dump( $this->request_settings['exports'] ), true ), 0 );
86
  // Add submenu page in the "Settings" section
87
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
88
  }
308
  if ( 'checkbox' === $option['type'] ) {
309
  $page_values[ $slug . '_checked' ] = $this->get_plugin_option( $slug ) ? 'checked="checked" ' : '';
310
  } else {
311
+ $page_values[ $slug ] = esc_attr( $this->get_plugin_option( $slug ) );
312
  }
313
  }
314
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_compose_general_tab page_values = ' . var_export( $page_values, true ), 0 );
315
 
316
  $options_list = MLAData::mla_parse_template( $this->page_template_array['page-level-options'], $page_values );
317
 
357
  $page_content = array( 'message' => 'Settings unchanged.', 'body' => '' );
358
 
359
  $changed = false;
360
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_save_setting_changes current_arguments[options] = ' . var_export( $this->current_arguments['options'], true ), 0 );
361
  foreach ( $this->current_arguments['options'] as $slug => $option ) {
362
  if ( 'checkbox' === $option['type'] ) {
363
+ $changed |= $this->_update_plugin_option( $slug, isset( $this->request_settings[ $slug ] ) );
364
  } else {
365
+ if ( isset( $this->request_settings[ $slug ] ) ) {
366
+ $changed |= $this->_update_plugin_option( $slug, $this->request_settings[ $slug ] );
367
  } else {
368
  $changed |= $this->_update_plugin_option( $slug, $option['default'] );
369
  }
370
  }
371
  } // foreach option
372
+ $this->request_settings = array();
373
+ //error_log( __LINE__ . " MLAExamplePluginSettings101::_save_setting_changes( {$changed} ) final current_settings = " . var_export( $this->current_settings, true ), 0 );
374
 
375
  if ( $changed ) {
376
  // No reason to save defaults in the database
425
 
426
  // Update the plugin options from the wp_options table or set defaults
427
  $this->current_settings = get_option( $this->current_arguments['slug_prefix'] . '-settings' );
428
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_get_plugin_settings stored current_settings = ' . var_export( $this->current_settings, true ), 0 );
429
  if ( !is_array( $this->current_settings ) ) {
430
  $this->current_settings = $this->default_settings;
431
  }
437
  }
438
  }
439
 
440
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_get_plugin_settings final current_settings = ' . var_export( $this->current_settings, true ), 0 );
441
  return true;
442
  }
443
 
444
+ /**
445
+ * Updated option settings from the $_REQUEST array
446
+ *
447
+ * @since 1.01
448
+ *
449
+ * @var array
450
+ */
451
+ private $request_settings = array();
452
+
453
  /**
454
  * In-memory representation of the option settings
455
  *
468
  */
469
  private $default_settings = array();
470
 
471
+ /**
472
+ * Update a plugin option setting
473
+ *
474
+ * @since 1.00
475
+ *
476
+ * @param string $name Option name
477
+ * @param mixed $new_value Option value
478
+ *
479
+ * @return mixed True if option value changed, false if value unchanged, NULL if failure
480
+ */
481
+ private function _update_plugin_option( $name, $new_value ) {
482
+ if ( !$this->_get_plugin_settings() ) {
483
+ return NULL;
484
+ }
485
+
486
+ $old_value = isset( $this->current_settings[ $name ] ) ? $this->current_settings[ $name ] : NULL;
487
+
488
+ if ( $new_value === $old_value ) {
489
+ return false;
490
+ }
491
+
492
+ $this->current_settings[ $name ] = $new_value;
493
+ return true;
494
+ }
495
+
496
  /**
497
  * Get a plugin option setting
498
  *
507
  return NULL;
508
  }
509
 
510
+ // See if the setting is being updated
511
+ if ( isset( $this->request_settings[ $name ] ) ) {
512
+ return $this->request_settings[ $name ];
513
+ }
514
+
515
+ if ( isset( $this->current_settings[ $name ] ) ) {
516
+ return $this->current_settings[ $name ];
517
  }
518
 
519
+ // Special names for debug logging
520
+ switch ( $name ) {
521
+ case 'request_settings':
522
+ return $this->request_settings;
523
+ case 'current_settings':
524
+ return $this->current_settings;
525
+ case 'default_settings':
526
+ return $this->default_settings;
527
+ }
528
+
529
+ return NULL;
530
  }
531
 
532
  /**
533
+ * Get a plugin argument setting
534
  *
535
+ * @since 1.01
536
  *
537
+ * @param string $name Argument name
 
538
  *
539
+ * @return mixed Argument value, if it exists else NULL
540
  */
541
+ public function get_plugin_argument( $name ) {
542
+ if ( !isset( $this->current_arguments[ $name ] ) ) {
543
  return NULL;
544
  }
545
 
546
+ return $this->current_arguments[ $name ];
547
+ }
548
+
549
+ /**
550
+ * Update a plugin argument setting
551
+ *
552
+ * @since 1.01
553
+ *
554
+ * @param string $name Argument name
555
+ *
556
+ * @return boolean True if argument value changed, false if value unchanged
557
+ */
558
+ public function update_plugin_argument( $name, $new_value ) {
559
+ $old_value = isset( $this->current_arguments[ $name ] ) ? $this->current_arguments[ $name ] : NULL;
560
 
561
  if ( $new_value === $old_value ) {
562
  return false;
563
  }
564
 
565
+ $this->current_arguments[ $name ] = $new_value;
566
  return true;
567
  }
568
+ } // Class MLAExamplePluginSettings101
569
  ?>
examples/plugins/mla-advanced-custom-fields-example/mla-advanced-custom-fields-example.php ADDED
@@ -0,0 +1,1212 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Supports an ACF checkbox, "where-used" in an ACF repeater, one or more ACF "image" fields and one or more ACF "select" fields
4
+ *
5
+ * In this example:
6
+ *
7
+ * 1. an Advanced Custom Fields "checkbox" custom field is added to the
8
+ * Media/Assistant submenu table, Quick Edit and Bulk Edit areas.
9
+ *
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
+ * 5. Advanced Custom Fields "select" custom field(s) are made available in the Media/Assistant submenu
24
+ * table as columns that display the ACF label (Vs the value) ssigned to each choice. You can edit
25
+ * the fields by changing the label; the plugin will convert this to the corresponding value and
26
+ * update the field appropriately.
27
+ *
28
+ * You can turn each of the four field types on or off by setting the corresponding "Enable" option on the
29
+ * Settings/MLA AC Fields "General" tab. You can change the field names and titles/labels by editing the
30
+ * corresponding options.
31
+ *
32
+ * Much more information is in the Settings/MLA AC Fields "Documentation" tab.
33
+ *
34
+ * Created (ACF Checkbox Field) as the "MLA ACF Checkbox Example" plugin for support topic "Bulk edit a custom field value"
35
+ * opened on 12/18/2013 by "saqwild"
36
+ * https://wordpress.org/support/topic/bulk-edit-a-custom-field-value/#post-4428935
37
+ *
38
+ * Enhanced (ACF Repeater Field) for support topic "Advanced Custom Fields repeater"
39
+ * opened on 3/1/2015 by "ncj"
40
+ * https://wordpress.org/support/topic/advanced-custom-fields-repeater/
41
+ *
42
+ * Enhanced (ACF Image Fields) for support topic "finding “where used” in custom field"
43
+ * opened on 4/19/2020 by "maven1129"
44
+ * https://wordpress.org/support/topic/finding-where-used-in-custom-field/
45
+ *
46
+ * Enhanced (ACF Select Fields) for support topic "Bulk edit ACF custom field"
47
+ * opened on 6/15/2021 by "andreatkc"
48
+ * https://wordpress.org/support/topic/bulk-edit-acf-custom-field/
49
+ *
50
+ * @package MLA Advanced Custom Fields Example
51
+ * @version 1.07
52
+ */
53
+
54
+ /*
55
+ Plugin Name: MLA Advanced Custom Fields Example
56
+ Plugin URI: http://davidlingren.com/
57
+ Description: Supports an ACF checkbox, "where-used" in an ACF repeater, one or more ACF "image" fields and one or more ACF "select" fields.
58
+ Author: David Lingren
59
+ Version: 1.07
60
+ Author URI: http://davidlingren.com/
61
+
62
+ Copyright 2014 - 2021 David Lingren
63
+
64
+ This program is free software; you can redistribute it and/or modify
65
+ it under the terms of the GNU General Public License as published by
66
+ the Free Software Foundation; either version 2 of the License, or
67
+ (at your option) any later version.
68
+
69
+ This program is distributed in the hope that it will be useful,
70
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
71
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
72
+ GNU General Public License for more details.
73
+
74
+ You can get a copy of the GNU General Public License by writing to the
75
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
76
+ */
77
+
78
+ /**
79
+ * Class MLA Advanced Custom Fields Example hooks some of the filters provided by the MLA_List_Table and MLAData classes
80
+ *
81
+ * Call it anything you want, but give it an unlikely and hopefully unique name. Hiding everything
82
+ * else inside a class means this is the only name you have to worry about.
83
+ *
84
+ * @package MLA Advanced Custom Fields Example
85
+ * @since 1.00
86
+ */
87
+ class MLAACFExample {
88
+ /**
89
+ * Plugin version number for debug logging
90
+ *
91
+ * @since 1.01
92
+ *
93
+ * @var integer
94
+ */
95
+ const PLUGIN_VERSION = '1.07';
96
+
97
+ /**
98
+ * Constant to log this plugin's debug activity
99
+ *
100
+ * @since 1.06
101
+ *
102
+ * @var integer
103
+ */
104
+ const MLA_DEBUG_CATEGORY = 0x00008000;
105
+
106
+ /**
107
+ * Slug prefix for registering and enqueueing submenu pages, style sheets, scripts and settings
108
+ *
109
+ * @since 1.06
110
+ *
111
+ * @var string
112
+ */
113
+ const SLUG_PREFIX = 'mlaacfexample';
114
+
115
+ /**
116
+ * Configuration values for the Settings Management object
117
+ *
118
+ * @since 1.06
119
+ *
120
+ * @var array
121
+ */
122
+ private static $settings_arguments = array(
123
+ 'slug_prefix' => self::SLUG_PREFIX,
124
+ 'plugin_title' => 'MLA Advanced Custom Fields Example',
125
+ 'menu_title' => 'MLA AC Fields',
126
+ 'plugin_file_name_only' => 'mla-advanced-custom-fields-example',
127
+ 'plugin_version' => self::PLUGIN_VERSION,
128
+ 'template_file' => '/admin-settings-page.tpl', // Add the path at runtime, in initialize()
129
+ 'options' => array( // 'slug' => array( 'type' => 'text|checkbox', 'default' => 'text|boolean' )
130
+ 'acf_checkbox_enabled' =>array( 'type' => 'checkbox', 'default' => false ),
131
+ 'acf_checkbox_fields' =>array( 'type' => 'text', 'default' => '' ),
132
+ 'acf_checkbox_titles' =>array( 'type' => 'text', 'default' => '' ),
133
+ 'acf_repeater_enabled' =>array( 'type' => 'checkbox', 'default' => false ),
134
+ 'acf_repeater_fields' =>array( 'type' => 'text', 'default' => '' ),
135
+ 'acf_repeater_titles' =>array( 'type' => 'text', 'default' => '' ),
136
+ 'acf_repeater_subfields' =>array( 'type' => 'text', 'default' => '' ),
137
+ 'acf_image_enabled' =>array( 'type' => 'checkbox', 'default' => false ),
138
+ 'acf_image_fields' =>array( 'type' => 'text', 'default' => '' ),
139
+ 'acf_image_titles' =>array( 'type' => 'text', 'default' => '' ),
140
+ 'acf_select_enabled' =>array( 'type' => 'checkbox', 'default' => false ),
141
+ 'acf_select_fields' =>array( 'type' => 'text', 'default' => '' ),
142
+ 'acf_select_titles' =>array( 'type' => 'text', 'default' => '' ),
143
+ ),
144
+ 'general_tab_values' => array(), // additional page_values for 'page-level-options' template
145
+ 'documentation_tab_values' => array(
146
+ 'plugin_title' => 'MLA Advanced Custom Fields Example',
147
+ ), // page_values for 'documentation-tab' template
148
+ );
149
+
150
+ /**
151
+ * Settings Management object
152
+ *
153
+ * @since 1.06
154
+ *
155
+ * @var array
156
+ */
157
+ private static $plugin_settings = NULL;
158
+
159
+ /**
160
+ * Initialization function, similar to __construct()
161
+ *
162
+ * @since 1.00
163
+ *
164
+ * @return void
165
+ */
166
+ public static function initialize() {
167
+ // This plugin requires MLA
168
+ if ( ! class_exists( 'MLACore', false ) ) {
169
+ return;
170
+ }
171
+
172
+ // This plugin requires ACF to be active
173
+ if ( !function_exists('acf_get_field') ) {
174
+ return;
175
+ }
176
+
177
+ // The plugin settings class is shared with other MLA example plugins
178
+ if ( ! class_exists( 'MLAExamplePluginSettings101' ) ) {
179
+ require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings-101.php' );
180
+ }
181
+
182
+ // Add the run-time values to the arguments
183
+ self::$settings_arguments['template_file'] = dirname( __FILE__ ) . self::$settings_arguments['template_file'];
184
+
185
+ // Create our own settings object
186
+ self::$plugin_settings = new MLAExamplePluginSettings101( self::$settings_arguments );
187
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::initialize plugin_settings = ' . var_export( self::$plugin_settings->get_plugin_option( 'current_settings' ), true ), self::MLA_DEBUG_CATEGORY );
188
+
189
+ // Defined in /media-library-assistant/includes/class-mla-data.php
190
+ add_filter( 'mla_expand_custom_prefix', 'MLAACFExample::mla_expand_custom_prefix', 10, 8 );
191
+
192
+ // The remaining filters are only useful for the admin section; exit in the front-end posts/pages
193
+ if ( ! is_admin() )
194
+ return;
195
+
196
+ // Build a cache of ACF select field "objects" (actually arrays)
197
+ self::_build_select_field_objects();
198
+
199
+ // Defined in /media-library-assistant/includes/class-mla-main.php
200
+ add_filter( 'mla_list_table_inline_fields', 'MLAACFExample::mla_list_table_inline_fields', 10, 1 );
201
+ add_filter( 'mla_list_table_inline_action', 'MLAACFExample::mla_list_table_inline_action', 10, 2 );
202
+ add_filter( 'mla_list_table_bulk_action_initial_request', 'MLAACFExample::mla_list_table_bulk_action_initial_request', 10, 3 );
203
+ add_filter( 'mla_list_table_bulk_action', 'MLAACFExample::mla_list_table_bulk_action', 10, 3 );
204
+ add_filter( 'mla_list_table_inline_values', 'MLAACFExample::mla_list_table_inline_values', 10, 1 );
205
+
206
+ // Defined in /media-library-assistant/includes/class-mla-list-table.php
207
+ add_filter( 'mla_list_table_get_columns', 'MLAACFExample::mla_list_table_get_columns', 10, 1 );
208
+ add_filter( 'mla_list_table_get_hidden_columns', 'MLAACFExample::mla_list_table_get_hidden_columns', 10, 1 );
209
+ add_filter( 'mla_list_table_get_sortable_columns', 'MLAACFExample::mla_list_table_get_sortable_columns', 10, 1 );
210
+ add_filter( 'mla_list_table_column_default', 'MLAACFExample::mla_list_table_column_default', 10, 3 );
211
+ add_filter( 'mla_list_table_query_final_terms', 'MLAACFExample::mla_list_table_query_final_terms', 10, 1 );
212
+
213
+ add_filter( 'mla_list_table_build_inline_data', 'MLAACFExample::mla_list_table_build_inline_data', 10, 2 );
214
+ }
215
+
216
+ /**
217
+ * Process an MLA_List_Table inline action, i.e., Quick Edit
218
+ *
219
+ * This filter gives you an opportunity to pre-process an MLA_List_Table "Quick Edit"
220
+ * action before the MLA handler.
221
+ *
222
+ * @since 1.00
223
+ *
224
+ * @param array $fields slug(s) of Quick/Bulk Edit eligible fields.
225
+ */
226
+ public static function mla_list_table_inline_fields( $fields ) {
227
+ // Add columns of our own for the select information
228
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
229
+ foreach( self::$field_objects as $field_name => $field_object ) {
230
+ $fields[] = 'acf_' . $field_name;
231
+ }
232
+ } // acf_select_enabled
233
+
234
+ return $fields;
235
+ } // mla_list_table_inline_action
236
+
237
+ /**
238
+ * Convert an ACF select field label to its field value
239
+ *
240
+ * @since 1.06
241
+ *
242
+ * @param string $field_name ACF field name
243
+ * @param string $field_label ACF field name (candidate)
244
+ *
245
+ * @return string ACF field value, if valid else empty.
246
+ */
247
+ private static function _convert_acf_label_to_value( $field_name, $field_label ) {
248
+ if ( isset( self::$field_objects[ $field_name ] ) ) {
249
+ // choices -> array( value => label )
250
+ $choices = self::$field_objects[ $field_name ]['choices'];
251
+
252
+ // Multi-select dropdowns are allowed, returning an array of choices
253
+ if ( self::$field_objects[ $field_name ]['multiple'] ) {
254
+ $values = array();
255
+ foreach ( explode( ',', $field_label ) as $label ) {
256
+ $value = array_search( $label, $choices );
257
+
258
+ if ( false !== $value ) {
259
+ $values[] = $value;
260
+ }
261
+ }
262
+
263
+ return $values;
264
+ } else {
265
+ $value = array_search( $field_label, $choices );
266
+
267
+ if ( false !== $value ) {
268
+ return $value;
269
+ }
270
+ }
271
+ }
272
+
273
+ return '';
274
+ } // _convert_acf_label_to_value
275
+
276
+ /**
277
+ * Process an MLA_List_Table inline action, i.e., Quick Edit
278
+ *
279
+ * This filter gives you an opportunity to pre-process an MLA_List_Table "Quick Edit"
280
+ * action before the MLA handler.
281
+ *
282
+ * @since 1.00
283
+ *
284
+ * @param array $item_content NULL, to indicate no handler.
285
+ * @param integer $post_id the affected attachment.
286
+ *
287
+ * @return object updated $item_content. NULL if no handler, otherwise
288
+ * ( 'message' => error or status message(s), 'body' => '',
289
+ * 'prevent_default' => true to bypass the MLA handler )
290
+ */
291
+ public static function mla_list_table_inline_action( $item_content, $post_id ) {
292
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
293
+ $field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
294
+ // Convert the comma-delimited string of "checked" checkbox values back to an ACF-compatible array
295
+ if ( isset( $_REQUEST['custom_updates'] ) && isset( $_REQUEST['custom_updates'][ $field ] ) ) {
296
+ if ( ! empty( $_REQUEST['custom_updates'][ $field ] ) ) {
297
+ $_REQUEST['custom_updates'][ $field ] = explode( ',', $_REQUEST['custom_updates'][ $field ] );
298
+ }
299
+ }
300
+ } // acf_checkbox_enabled
301
+
302
+ // Convert select field updates from label to value, move to 'custom_updates'
303
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
304
+ $select_updates = array();
305
+
306
+ foreach( self::$field_objects as $field_name => $field_object ) {
307
+ $acf_field = 'acf_' . $field_name;
308
+ if ( isset( $_REQUEST[ $acf_field ] ) ) {
309
+ $new_value = self::_convert_acf_label_to_value( $field_name, $_REQUEST[ $acf_field ] );
310
+
311
+ if ( !empty( $new_value ) ) {
312
+ $select_updates[ $field_name ] = $new_value;
313
+ }
314
+
315
+ unset( $_REQUEST[ $acf_field ] );
316
+ }
317
+ }
318
+
319
+ if ( !empty( $select_updates ) ) {
320
+ if ( isset( $_REQUEST['custom_updates'] ) ) {
321
+ $_REQUEST['custom_updates'] = array_merge( $_REQUEST['custom_updates'], $select_updates );
322
+ } else {
323
+ $_REQUEST['custom_updates'] = $select_updates;
324
+ }
325
+ }
326
+ } // acf_select_enabled
327
+
328
+ if ( isset( $_REQUEST['custom_updates'] ) ) {
329
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_inline_action custom_updates = ' . var_export( $_REQUEST['custom_updates'], true ), self::MLA_DEBUG_CATEGORY );
330
+ } else {
331
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_inline_action NO custom_updates', self::MLA_DEBUG_CATEGORY );
332
+ }
333
+
334
+ return $item_content;
335
+ } // mla_list_table_inline_action
336
+
337
+ /**
338
+ * Pre-filter MLA_List_Table bulk action request parameters
339
+ *
340
+ * This filter gives you an opportunity to pre-process the request parameters for a bulk action
341
+ * before the action begins. DO NOT assume parameters come from the $_REQUEST super array!
342
+ *
343
+ * @since 1.01
344
+ *
345
+ * @param array $request bulk action request parameters, including ['mla_bulk_action_do_cleanup'].
346
+ * @param string $bulk_action the requested action.
347
+ * @param array $custom_field_map [ slug => field_name ]
348
+ *
349
+ * @return array updated bulk action request parameters
350
+ */
351
+ public static function mla_list_table_bulk_action_initial_request( $request, $bulk_action, $custom_field_map ) {
352
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_bulk_action_initial_request request = ' . var_export( $request, true ), self::MLA_DEBUG_CATEGORY );
353
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_bulk_action_initial_request custom_field_map = ' . var_export( $custom_field_map, true ), self::MLA_DEBUG_CATEGORY );
354
+
355
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
356
+ /*
357
+ * If the field is present, save the field value for our own update process and remove it
358
+ * from the $request array to prevent MLA's default update processing.
359
+ */
360
+ $acf_checkbox_field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
361
+ foreach( $custom_field_map as $slug => $custom_field ) {
362
+ if ( $acf_checkbox_field === $custom_field['name'] ) {
363
+ if ( ! empty( $request[ $slug ] ) ) {
364
+ // Convert the comma-delimited string of "checked" checkbox values back to an ACF-compatible array
365
+ self::$acf_checkbox_value = explode( ',', trim( $request[ $slug ] ) );
366
+ $request[ $slug ] = '';
367
+ }
368
+
369
+ break;
370
+ }
371
+ }
372
+
373
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_bulk_action_initial_request self::$acf_checkbox_value = ' . var_export( self::$acf_checkbox_value, true ), self::MLA_DEBUG_CATEGORY );
374
+ } // acf_checkbox_enabled
375
+
376
+ // Save select field values
377
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
378
+ self::$field_objects['MLAACFExample_bulk_edit_values'] = array();
379
+ foreach( self::$field_objects as $field_name => $field_object ) {
380
+ if ( !empty( $request[ 'acf_' . $field_name ] ) ) {
381
+ self::$field_objects['MLAACFExample_bulk_edit_values'][ $field_name ] = $request[ 'acf_' . $field_name ];
382
+ }
383
+
384
+ unset( $request[ 'acf_' . $field_name ] );
385
+ }
386
+
387
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_bulk_action_initial_request bulk_edit_values = ' . var_export( self::$field_objects['MLAACFExample_bulk_edit_values'], true ), self::MLA_DEBUG_CATEGORY );
388
+ } // acf_select_enabled
389
+
390
+ return $request;
391
+ } // mla_list_table_bulk_action_initial_request
392
+
393
+ /**
394
+ * Holds the new ACF checkbox value for the duration of a Bulk Edit action
395
+ *
396
+ * @since 1.01
397
+ *
398
+ * @var string
399
+ */
400
+ private static $acf_checkbox_value = NULL;
401
+
402
+ /**
403
+ * Process an MLA_List_Table bulk action
404
+ *
405
+ * This filter gives you an opportunity to pre-process an MLA_List_Table page-level
406
+ * or single-item action, standard or custom, before the MLA handler.
407
+ * The filter is called once for each of the items in $_REQUEST['cb_attachment'].
408
+ *
409
+ * @since 1.00
410
+ *
411
+ * @param array $item_content NULL, to indicate no handler.
412
+ * @param string $bulk_action the requested action.
413
+ * @param integer $post_id the affected attachment.
414
+ *
415
+ * @return object updated $item_content. NULL if no handler, otherwise
416
+ * ( 'message' => error or status message(s), 'body' => '',
417
+ * 'prevent_default' => true to bypass the MLA handler )
418
+ */
419
+ public static function mla_list_table_bulk_action( $item_content, $bulk_action, $post_id ) {
420
+ // Accumulate multiple messages
421
+ $messages = '';
422
+
423
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
424
+ /*
425
+ * If the field is present, apply our own update process. Note the
426
+ * special 'empty' value to bulk-delete the custom field entirely.
427
+ */
428
+ if ( ! empty( self::$acf_checkbox_value ) ) {
429
+ $field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
430
+ if ( 'empty' === self::$acf_checkbox_value ) {
431
+ delete_post_meta( $post_id, $field );
432
+ $messages .= sprintf( __( 'Deleting %1$s', 'media-library-assistant' ) . '<br>', $field );
433
+ } else {
434
+ update_post_meta( $post_id, $field, self::$acf_checkbox_value );
435
+ $messages .= sprintf( __( 'Adding %1$s = %2$s', 'media-library-assistant' ) . '<br>', $field, implode( ',', self::$acf_checkbox_value ) );
436
+ }
437
+ }
438
+ } // acf_checkbox_enabled
439
+
440
+ // Apply select field values
441
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
442
+ foreach( self::$field_objects['MLAACFExample_bulk_edit_values'] as $field_name => $new_label ) {
443
+ if ( 'empty' === $new_label ) {
444
+ delete_post_meta( $post_id, $field_name );
445
+ $messages .= sprintf( __( 'Deleting %1$s', 'media-library-assistant' ) . '<br>', $field_name );
446
+ } else {
447
+ $new_value = self::_convert_acf_label_to_value( $field_name, $new_label );
448
+
449
+ if ( !empty( $new_value ) ) {
450
+ update_post_meta( $post_id, $field_name, $new_value );
451
+ $messages .= sprintf( __( 'Adding %1$s = %2$s', 'media-library-assistant' ) . '<br>', $field_name, $new_value );
452
+ }
453
+ }
454
+ }
455
+
456
+ self::$field_objects['MLAACFExample_bulk_edit_values'] = array();
457
+ } // acf_select_enabled
458
+
459
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_bulk_action message = ' . var_export( $messages, true ), self::MLA_DEBUG_CATEGORY );
460
+ if ( !empty( $messages ) ) {
461
+ $item_content = array( 'message' => $messages );
462
+ }
463
+
464
+ return $item_content;
465
+ } // mla_list_table_bulk_action
466
+
467
+ /**
468
+ * MLA_List_Table inline edit item values
469
+ *
470
+ * This filter gives you a chance to modify and extend the substitution values
471
+ * for the Quick and Bulk Edit forms.
472
+ *
473
+ * @since 1.00
474
+ *
475
+ * @param array $item_values parameter_name => parameter_value pairs
476
+ *
477
+ * @return array updated substitution parameter name => value pairs
478
+ */
479
+ public static function mla_list_table_inline_values( $item_values ) {
480
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
481
+ $title = self::$plugin_settings->get_plugin_option( 'acf_checkbox_titles' );
482
+ // Replace the ACF Field Name with a more friendly Field Label
483
+ $item_values['custom_fields'] = str_replace( '>acf_checkbox<', '>' . $title . '<', $item_values['custom_fields'] );
484
+ $item_values['bulk_custom_fields'] = str_replace( '>acf_checkbox<', '>' . $title . '<', $item_values['bulk_custom_fields'] );
485
+ } // acf_checkbox_enabled
486
+
487
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
488
+ // Append the ACF Select Field(s) to the Quick and Bulk lists
489
+ foreach( self::$field_objects as $field_name => $field_object ) {
490
+ $custom_fields_item = ' <label class="inline-edit-acf_' . $field_name . '" style="clear:both"> ';
491
+ $custom_fields_item .= '<span class="title">' . $field_object['mla_field_label'] . '</span> ';
492
+ $custom_fields_item .= '<span class="input-text-wrap">' . "\n";
493
+ $custom_fields_item .= ' <input type="text" name="acf_' . $field_name . '" value="" />' . "\n";
494
+ $custom_fields_item .= ' </span> </label>' . "\n";
495
+ $item_values['custom_fields'] .= $custom_fields_item;
496
+ $item_values['bulk_custom_fields'] .= $custom_fields_item;
497
+ }
498
+ } // acf_select_enabled
499
+
500
+ return $item_values;
501
+ } // mla_list_table_inline_values
502
+
503
+ /**
504
+ * Holds the ISC custom field name to column "slug" mapping values
505
+ *
506
+ * @since 1.01
507
+ *
508
+ * @var array
509
+ */
510
+ private static $field_slugs = array();
511
+
512
+ /**
513
+ * Caches the ACF field definitions
514
+ *
515
+ * @since 1.06
516
+ *
517
+ * @var array ( field_name => field_object_array )
518
+ */
519
+ private static $field_objects = NULL;
520
+
521
+ /**
522
+ * Populate the select fields array
523
+ *
524
+ * @since 1.06
525
+ */
526
+ private static function _build_select_field_objects() {
527
+ // Build a cache of ACF select field "objects" (actually arrays)
528
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) && is_null( self::$field_objects ) ) {
529
+ self::$field_objects = array();
530
+ $select_fields = explode( ',', self::$plugin_settings->get_plugin_option( 'acf_select_fields' ) );
531
+ $select_titles = explode( ',', self::$plugin_settings->get_plugin_option( 'acf_select_titles' ) );
532
+
533
+ if ( count( $select_fields ) ) {
534
+ foreach( $select_fields as $index => $field_name ) {
535
+ $field_object = acf_get_field( $field_name );
536
+ if ( false === $field_object ) {
537
+ continue;
538
+ }
539
+
540
+ if ( isset( $select_titles[ $index ] ) && !empty( $select_titles[ $index ] ) ) {
541
+ $field_object[ 'mla_field_label' ] = $select_titles[ $index ];
542
+ } else {
543
+ $field_object[ 'mla_field_label' ] = $field_object['label'];
544
+ }
545
+
546
+ self::$field_objects[ $field_name ] = $field_object;
547
+ }
548
+ }
549
+ } // acf_select_enabled
550
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::_build_select_field_objects field_objects = ' . var_export( self::$field_objects, true ), self::MLA_DEBUG_CATEGORY );
551
+ } // _build_select_field_objects
552
+
553
+ /**
554
+ * Holds the select column sort specification
555
+ *
556
+ * @since 2.98
557
+ *
558
+ * @var array
559
+ */
560
+ private static $acf_sort_specification = array();
561
+
562
+ /**
563
+ * Filter the MLA_List_Table columns
564
+ *
565
+ * This MLA-specific filter gives you an opportunity to filter the list table columns.
566
+ *
567
+ * @since 1.00
568
+ *
569
+ * @param array $columns An array of columns.
570
+ * format: column_slug => Column Label
571
+ *
572
+ * @return array updated array of columns.
573
+ */
574
+ public static function mla_list_table_get_columns( $columns ) {
575
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
576
+ /*
577
+ * The Quick and Bulk Edit forms substitute arbitrary "slugs" for the
578
+ * custom field names. Remember them for table column and bulk update processing.
579
+ */
580
+ if ( false !== $slug = array_search( self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' ), $columns ) ) {
581
+ self::$field_slugs[ self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' ) ] = $slug;
582
+
583
+ /*
584
+ * Change the column slug so we can provide our own friendly content.
585
+ * Replace the entry for the column we're capturing, preserving its place in the list
586
+ */
587
+ $new_columns = array();
588
+
589
+ foreach ( $columns as $key => $value ) {
590
+ if ( $key === $slug ) {
591
+ $new_columns[ self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' ) ] = self::$plugin_settings->get_plugin_option( 'acf_checkbox_titles' );
592
+ } else {
593
+ $new_columns[ $key ] = $value;
594
+ }
595
+ } // foreach column
596
+
597
+ $columns = $new_columns;
598
+ }
599
+ } // acf_checkbox_enabled
600
+
601
+ // Add a column of our own for the repeater "where-used" information
602
+ if ( self::$plugin_settings->get_plugin_option( 'acf_repeater_enabled' ) ) {
603
+ $columns[ 'acf_' . self::$plugin_settings->get_plugin_option( 'acf_repeater_fields' ) ] = self::$plugin_settings->get_plugin_option( 'acf_repeater_titles' );
604
+ }
605
+
606
+ // Add columns of our own for the image "where-used" information
607
+ if ( self::$plugin_settings->get_plugin_option( 'acf_image_enabled' ) ) {
608
+ $image_fields = explode( ',', self::$plugin_settings->get_plugin_option( 'acf_image_fields' ) );
609
+ $image_titles = explode( ',', self::$plugin_settings->get_plugin_option( 'acf_image_titles' ) );
610
+
611
+ if ( count( $image_fields ) ) {
612
+ foreach( $image_fields as $index => $field_name ) {
613
+ $field_object = acf_get_field( $field_name );
614
+ if ( false === $field_object ) {
615
+ continue;
616
+ }
617
+
618
+ if ( isset( $image_titles[ $index ] ) && !empty( $image_titles[ $index ] ) ) {
619
+ $field_label = $image_titles[ $index ];
620
+ } else {
621
+ $field_label = $field_object['label'];
622
+ }
623
+
624
+ self::$field_slugs[ 'acf_' . $field_name ] = $field_name;
625
+ $columns[ 'acf_' . $field_name ] = $field_label;
626
+ }
627
+ }
628
+ } // acf_image_enabled
629
+
630
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
631
+ self::$acf_sort_specification = array();
632
+ foreach( self::$field_objects as $field_name => $field_object ) {
633
+ $acf_field_name = 'acf_' . $field_name;
634
+ // Add columns of our own for the select information
635
+ self::$field_slugs[ $acf_field_name ] = $field_name;
636
+ $columns[ $acf_field_name ] = $field_object['mla_field_label'];
637
+
638
+ // Reformat Media/Assistant submenu table sort specificaion for final terms filter
639
+ if ( isset( $_REQUEST['orderby'] ) && ( $field_name === $_REQUEST['orderby'] ) ) {
640
+ self::$acf_sort_specification[MLAQuery::MLA_ORDERBY_SUBQUERY] = true;
641
+ self::$acf_sort_specification['orderby'] = 'c_' . $field_name;
642
+ self::$acf_sort_specification['orderby_key'] = $field_name;
643
+ unset($_REQUEST['orderby']);
644
+ }
645
+ }
646
+ } // acf_select_enabled
647
+
648
+ return $columns;
649
+ } // mla_list_table_get_columns
650
+
651
+ /**
652
+ * Filter the MLA_List_Table hidden columns
653
+ *
654
+ * This MLA-specific filter gives you an opportunity to filter the hidden list table columns.
655
+ *
656
+ * @since 1.00
657
+ *
658
+ * @param array $hidden_columns An array of columns.
659
+ * format: index => column_slug
660
+ *
661
+ * @return array updated array of columns.
662
+ */
663
+ public static function mla_list_table_get_hidden_columns( $hidden_columns ) {
664
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
665
+ $field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
666
+ // Replace the MLA custom field slug with our own slug value
667
+ if ( isset( self::$field_slugs[ $field ] ) ) {
668
+ $index = array_search( self::$field_slugs[ $field ], $hidden_columns );
669
+ if ( false !== $index ) {
670
+ $hidden_columns[ $index ] = $field;
671
+ }
672
+ }
673
+ } // acf_checkbox_enabled
674
+
675
+ return $hidden_columns;
676
+ } // mla_list_table_get_hidden_columns
677
+
678
+ /**
679
+ * Filter the MLA_List_Table sortable columns
680
+ *
681
+ * This MLA-specific filter gives you an opportunity to filter the sortable list table
682
+ * columns; a good alternative to the 'manage_media_page_mla_menu_sortable_columns' filter.
683
+ *
684
+ * @since 1.00
685
+ *
686
+ * @param array $sortable_columns An array of columns.
687
+ * Format: 'column_slug' => 'orderby'
688
+ * or 'column_slug' => array( 'orderby', true )
689
+ *
690
+ * The second format will make the initial sorting order be descending.
691
+ *
692
+ * @return array updated array of columns.
693
+ */
694
+ public static function mla_list_table_get_sortable_columns( $sortable_columns ) {
695
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
696
+ $field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
697
+ // Replace the slug for the column we've captured, preserving its place in the list
698
+ if ( isset( self::$field_slugs[ $field ] ) ) {
699
+ $slug = self::$field_slugs[ $field ];
700
+ if ( isset( $sortable_columns[ $slug ] ) ) {
701
+ $new_columns = array();
702
+
703
+ foreach ( $sortable_columns as $key => $value ) {
704
+ if ( $key == $slug ) {
705
+ $new_columns[ $field ] = $value;
706
+ } else {
707
+ $new_columns[ $key ] = $value;
708
+ }
709
+ } // foreach column
710
+
711
+ $sortable_columns = $new_columns;
712
+ } // slug found
713
+ } // slug exists
714
+ } // acf_checkbox_enabled
715
+
716
+ // Add columns of our own for the select information
717
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
718
+ foreach( self::$field_objects as $field_name => $field_object ) {
719
+ $sortable_columns[ 'acf_' . $field_name ] = array( $field_name, true );
720
+ }
721
+ } // acf_select_enabled
722
+
723
+ return $sortable_columns;
724
+ } // mla_list_table_get_sortable_columns
725
+
726
+ /**
727
+ * Translate post_status 'future', 'pending', 'draft' and 'trash' to label
728
+ *
729
+ * @since 1.02
730
+ *
731
+ * @param string post_status
732
+ *
733
+ * @return string Status label or empty string
734
+ */
735
+ protected static function _format_post_status( $post_status ) {
736
+ $flag = ',<br>';
737
+ switch ( $post_status ) {
738
+ case 'draft' :
739
+ $flag .= __('Draft');
740
+ break;
741
+ case 'future' :
742
+ $flag .= __('Scheduled');
743
+ break;
744
+ case 'pending' :
745
+ $flag .= _x('Pending', 'post state');
746
+ break;
747
+ case 'trash' :
748
+ $flag .= __('Trash');
749
+ break;
750
+ default:
751
+ $flag = '';
752
+ }
753
+
754
+ return $flag;
755
+ }
756
+
757
+ /**
758
+ * Supply a column value if no column-specific function has been defined
759
+ *
760
+ * Called when the MLA_List_Table can't find a value for a given column.
761
+ *
762
+ * @since 1.00
763
+ *
764
+ * @param string NULL, indicating no default content
765
+ * @param array A singular item (one full row's worth of data)
766
+ * @param array The name/slug of the column to be processed
767
+ * @return string Text or HTML to be placed inside the column
768
+ */
769
+ public static function mla_list_table_column_default( $content, $item, $column_name ) {
770
+
771
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
772
+ if ( 0 === strpos( $column_name, 'acf_' ) ) {
773
+ $acf_name = substr( $column_name, 4 );
774
+ if ( isset( self::$field_objects[ $acf_name ] ) ) {
775
+ $acf_field_value = get_field( $acf_name, $item->ID, false );
776
+ if ( !empty( $acf_field_value ) ) {
777
+ // choices -> array( value => label )
778
+ $acf_choices = self::$field_objects[ $acf_name ]['choices'];
779
+
780
+ // Multi-select dropdowns are allowed, returning an array of choices
781
+ $inline_value = array();
782
+ foreach ( (array) $acf_field_value as $choice ) {
783
+ if ( isset( $acf_choices[ $choice ] ) ) {
784
+ $inline_value[] = $acf_choices[ $choice ];
785
+ } else {
786
+ $inline_value[] = $choice;
787
+ }
788
+ }
789
+ return implode( ',', $inline_value );
790
+ }
791
+
792
+ return '';
793
+ } // found field_object
794
+ } // found acf_ column
795
+ } // acf_select_enabled
796
+
797
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
798
+ // Convert the ACF-compatible array to a comma-delimited list of "checked" checkbox values.
799
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' ) == $column_name ) {
800
+ $mla_name = 'mla_item_' . $column_name;
801
+ $values = isset( $item->$mla_name ) ? $item->$mla_name : '';
802
+ if ( empty( $values ) ) {
803
+ return '';
804
+ } elseif ( is_array( $values ) ) {
805
+ // return '[' . implode( '],[', $values ) . ']';
806
+ return implode( ',', $values );
807
+ }
808
+
809
+ return $values;
810
+ }
811
+ } // acf_checkbox_enabled
812
+
813
+ if ( self::$plugin_settings->get_plugin_option( 'acf_repeater_enabled' ) ) {
814
+ $field = self::$plugin_settings->get_plugin_option( 'acf_repeater_fields' );
815
+ // Retrieve and format the repeater field "where-used" information
816
+ if ( ( 'acf_' . $field ) == $column_name ) {
817
+ global $wpdb;
818
+
819
+ $where_clause = $field . '_%_' . self::$plugin_settings->get_plugin_option( 'acf_repeater_subfields' );
820
+ $references = $wpdb->get_results(
821
+ "
822
+ SELECT *
823
+ FROM {$wpdb->postmeta}
824
+ WHERE meta_key LIKE '{$where_clause}' AND meta_value = {$item->ID}
825
+ "
826
+ );
827
+
828
+ $content = '';
829
+ if ( ! empty( $references ) ) {
830
+ $parents = array();
831
+ foreach ( $references as $reference ) {
832
+ // key on post_id to remove duplicates
833
+ $parents[ $reference->post_id ] = $reference->post_id;
834
+ }
835
+
836
+ $parents = implode( ',', $parents );
837
+ $references = $wpdb->get_results(
838
+ "
839
+ SELECT ID, post_type, post_status, post_title
840
+ FROM {$wpdb->posts}
841
+ WHERE ( post_type <> 'revision' ) AND ( ID IN ({$parents}) )
842
+ "
843
+ );
844
+
845
+ foreach ( $references as $reference ) {
846
+ $status = self::_format_post_status( $reference->post_status );
847
+
848
+ if ( $reference->ID == $item->post_parent ) {
849
+ $parent = ',<br>' . __( 'PARENT', 'media-library-assistant' );
850
+ } else {
851
+ $parent = '';
852
+ }
853
+
854
+ $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), ',
855
+ /*%1$s*/ esc_url( add_query_arg( array('post' => $reference->ID, 'action' => 'edit'), 'post.php' ) ),
856
+ /*%2$s*/ esc_attr( $reference->post_title ),
857
+ /*%3$s*/ esc_attr( $reference->post_type ),
858
+ /*%4$s*/ $reference->ID,
859
+ /*%5$s*/ $status,
860
+ /*%6$s*/ $parent ) . "<br>\r\n";
861
+ } // foreach $reference
862
+ } // found $references
863
+
864
+ return $content;
865
+ } // found repeater column
866
+ } // acf_repeater_enabled
867
+
868
+ if ( self::$plugin_settings->get_plugin_option( 'acf_image_enabled' ) ) {
869
+ // Retrieve and format the image field(s) "where-used" information
870
+ if ( array_key_exists( $column_name, self::$field_slugs ) ) {
871
+ $content = '';
872
+
873
+ $posts = self::_find_field_references( self::$field_slugs[ $column_name ], $item->ID );
874
+ foreach ( $posts as $post_id => $post ) {
875
+ $reference = self::$field_parents[ $post ];
876
+ $status = self::_format_post_status( $reference->post_status );
877
+
878
+ if ( $post_id == $item->post_parent ) {
879
+ $parent = ',<br>' . __( 'PARENT', 'media-library-assistant' );
880
+ } else {
881
+ $parent = '';
882
+ }
883
+
884
+ $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), ',
885
+ /*%1$s*/ esc_url( add_query_arg( array('post' => $post_id, 'action' => 'edit'), 'post.php' ) ),
886
+ /*%2$s*/ esc_attr( $reference->post_title ),
887
+ /*%3$s*/ esc_attr( $reference->post_type ),
888
+ /*%4$s*/ $post_id,
889
+ /*%5$s*/ $status,
890
+ /*%6$s*/ $parent ) . "<br>\r\n";
891
+ } // foreach $reference
892
+
893
+ return $content;
894
+ } // found image column
895
+ } // acf_image_enabled
896
+
897
+ return $content;
898
+ } // mla_list_table_column_default
899
+
900
+ /**
901
+ * Filter the data for inline (Quick and Bulk) editing
902
+ *
903
+ * This filter gives you an opportunity to filter the data passed to the
904
+ * JavaScript functions for Quick and Bulk editing.
905
+ *
906
+ * @since 1.00
907
+ *
908
+ * @param string $inline_data The HTML markup for inline data.
909
+ * @param object $item The current Media Library item.
910
+ *
911
+ * @return string updated HTML markup for inline data.
912
+ */
913
+ public static function mla_list_table_build_inline_data( $inline_data, $item ) {
914
+
915
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
916
+ foreach ( self::$field_objects as $acf_name => $acf_field_object ) {
917
+ $inline_value = '';
918
+ $acf_field_value = get_field( $acf_name, $item->ID, false );
919
+ //error_log( __LINE__ . ' mla_list_table_build_inline_data acf_field_object = ' . var_export( $acf_field_object, true ), 0 );
920
+ //error_log( __LINE__ . ' mla_list_table_build_inline_data acf_field_value = ' . var_export( $acf_field_value, true ), 0 );
921
+
922
+ if ( !empty( $acf_field_value ) ) {
923
+ // choices -> array( value => label )
924
+ $acf_choices = $acf_field_object['choices'];
925
+
926
+ // Multi-select dropdowns are allowed, returning an array of choices
927
+ $inline_value = array();
928
+ foreach ( (array) $acf_field_value as $choice ) {
929
+ if ( isset( $acf_choices[ $choice ] ) ) {
930
+ $inline_value[] = $acf_choices[ $choice ];
931
+ } else {
932
+ $inline_value[] = $choice;
933
+ }
934
+ }
935
+ $inline_value = implode( ',', $inline_value );
936
+ }
937
+
938
+ $inline_data .= ' <div class="acf_' . $acf_name . '">' . esc_html( $inline_value ) . "</div>\r\n";
939
+ } // foreach acf field
940
+ } // acf_select_enabled
941
+
942
+ if ( self::$plugin_settings->get_plugin_option( 'acf_checkbox_enabled' ) ) {
943
+ $acf_checkbox_field = self::$plugin_settings->get_plugin_option( 'acf_checkbox_fields' );
944
+ // See if the field is present
945
+ if ( ! isset( self::$field_slugs[ $acf_checkbox_field ] ) ) {
946
+ return $inline_data;
947
+ }
948
+
949
+ // Convert the ACF-compatible array to a comma-delimited list of "checked" checkbox values.
950
+ $match_count = preg_match_all( '/\<div class="' . self::$field_slugs[ $acf_checkbox_field ] . '"\>(.*)\<\/div\>/', $inline_data, $matches, PREG_OFFSET_CAPTURE );
951
+ if ( ( $match_count == false ) || ( $match_count == 0 ) ) {
952
+ return $inline_data;
953
+ }
954
+
955
+ $mla_checkbox_field = 'mla_item_' . $acf_checkbox_field;
956
+ if ( isset( $item->$mla_checkbox_field ) ) {
957
+ $value = $item->$mla_checkbox_field;
958
+ if ( is_array( $value ) ) {
959
+ $head = substr( $inline_data, 0, $matches[1][0][1] );
960
+ $value = esc_html( implode( ',', $value ) );
961
+ $tail = substr( $inline_data, ( $matches[1][0][1] + strlen( $matches[1][0][0] ) ) );
962
+ $inline_data = $head . $value . $tail;
963
+ }
964
+ }
965
+ } // acf_checkbox_enabled
966
+
967
+ MLACore::mla_debug_add( __LINE__ . ' MLAACFExample::mla_list_table_build_inline_data inline_data = ' . var_export( $inline_data, true ), self::MLA_DEBUG_CATEGORY );
968
+ return $inline_data;
969
+ } // mla_list_table_build_inline_data
970
+
971
+ /**
972
+ * MLA List Table Query Final Terms Filter
973
+ *
974
+ * Gives you an opportunity to modify the query just before it is executed.
975
+ *
976
+ * @since 1.06
977
+ *
978
+ * @param array WP_Query parameters
979
+ */
980
+ public static function mla_list_table_query_final_terms( $request ) {
981
+
982
+ // Set in self::mla_list_table_get_columns()
983
+ if ( !empty( self::$acf_sort_specification ) ) {
984
+ MLAQuery::$query_parameters = array_merge( MLAQuery::$query_parameters, self::$acf_sort_specification );
985
+ unset( $request['orderby'] );
986
+ unset( $request['order'] );
987
+ }
988
+
989
+ return $request;
990
+ } // mla_list_table_query_final_terms
991
+
992
+ /**
993
+ * MLA Expand Custom Prefix Filter
994
+ *
995
+ * Gives you an opportunity to generate your custom data value when a parameter's prefix value is not recognized.
996
+ *
997
+ * @since 1.00
998
+ *
999
+ * @param string NULL, indicating that by default, no custom value is available
1000
+ * @param string the data-source name
1001
+ * @param array data-source components; prefix (empty), value, option, format and args (if present)
1002
+ * @param array values from the query, if any, e.g. shortcode parameters
1003
+ * @param array item-level markup template values, if any
1004
+ * @param integer attachment ID for attachment-specific values
1005
+ * @param boolean for option 'multi', retain existing values
1006
+ * @param string default option value
1007
+ */
1008
+ public static function mla_expand_custom_prefix( $custom_value, $key, $value, $query, $markup_values, $post_id, $keep_existing, $default_option ) {
1009
+ if ( 'acf' !== strtolower( $value['prefix'] ) ) {
1010
+ return $custom_value;
1011
+ }
1012
+
1013
+ // Parse the original text to separate out the qualifier
1014
+ $value = MLAData::mla_parse_substitution_parameter( $key, $default_option );
1015
+ $field = $value['value'];
1016
+ $qualifier = $value['qualifier'];
1017
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id}, {$keep_existing}, {$default_option} ) value = " . var_export( $value, true ), 0 );
1018
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) query = " . var_export( $query, true ), 0 );
1019
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) markup_values = " . var_export( $markup_values, true ), 0 );
1020
+
1021
+ // Set debug mode
1022
+ $debug_active = isset( $query['mla_debug'] ) && ( 'false' !== trim( strtolower( $query['mla_debug'] ) ) );
1023
+ if ( $debug_active ) {
1024
+ $old_mode = MLACore::mla_debug_mode( 'log' );
1025
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id}, {$keep_existing}, {$default_option} ) \$_REQUEST = " . var_export( $_REQUEST, true ) );
1026
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix() \$value = " . var_export( $value, true ) );
1027
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix() \$query = " . var_export( $query, true ) );
1028
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix() \$markup_values = " . var_export( $markup_values, true ) );
1029
+ }
1030
+
1031
+ if ( self::$plugin_settings->get_plugin_option( 'acf_image_enabled' ) ) {
1032
+ $posts = self::_find_field_references( $field, $post_id );
1033
+ //error_log( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) posts = " . var_export( $posts, true ), 0 );
1034
+ if ( !empty( $posts ) ) {
1035
+ switch ( $qualifier ) {
1036
+ case 'count':
1037
+ $custom_value = count( $posts );
1038
+ break;
1039
+ case 'present':
1040
+ $custom_value = ( count( $posts ) ) ? 1 : 0;
1041
+ break;
1042
+ default:
1043
+ $low_bound = absint( $qualifier );
1044
+ if ( $low_bound ) {
1045
+ $custom_value = count( $posts );
1046
+ if ( $low_bound > $custom_value ) {
1047
+ $custom_value = NULL;
1048
+ }
1049
+
1050
+ break;
1051
+ }
1052
+
1053
+ $custom_value = '';
1054
+ $item = get_post( $post_id );
1055
+
1056
+ foreach ( $posts as $post_id => $post ) {
1057
+ $reference = self::$field_parents[ $post ];
1058
+ $status = self::_format_post_status( $reference->post_status );
1059
+
1060
+ if ( $post_id == $item->post_parent ) {
1061
+ $parent = ', ' . __( 'PARENT', 'media-library-assistant' );
1062
+ } else {
1063
+ $parent = '';
1064
+ }
1065
+
1066
+ $custom_value .= sprintf( '%1$s (%2$s %3$s%4$s%5$s), ',
1067
+ /*%1$s*/ esc_attr( $reference->post_title ),
1068
+ /*%2$s*/ esc_attr( $reference->post_type ),
1069
+ /*%3$s*/ $post_id,
1070
+ /*%4$s*/ $status,
1071
+ /*%5$s*/ $parent );
1072
+ } // foreach $reference
1073
+ }
1074
+ }
1075
+ } // acf_image_enabled
1076
+
1077
+ if ( self::$plugin_settings->get_plugin_option( 'acf_select_enabled' ) ) {
1078
+ // Build a cache of ACF select field "objects" (actually arrays)
1079
+ self::_build_select_field_objects();
1080
+
1081
+ if ( isset( self::$field_objects[ $field ] ) ) {
1082
+ $acf_field_object = self::$field_objects[ $field ];
1083
+ $acf_field_value = get_field( $field, $post_id, false );
1084
+
1085
+ if ( empty( $acf_field_value ) ) {
1086
+ $acf_field_value = '';
1087
+ }
1088
+
1089
+ // choices -> array( value => label )
1090
+ $acf_choices = $acf_field_object['choices'];
1091
+
1092
+ switch ( $qualifier ) {
1093
+ case 'choices':
1094
+ $custom_value = $acf_field_object['choices'];
1095
+ break;
1096
+ case 'value':
1097
+ $custom_value = $acf_field_value;
1098
+ break;
1099
+ case 'label':
1100
+ if ( isset( $acf_choices[ $acf_field_value ] ) ) {
1101
+ $custom_value = $acf_choices[ $acf_field_value ];
1102
+ } else {
1103
+ $custom_value = $acf_field_value;
1104
+ }
1105
+ break;
1106
+ case 'mla_field_label':
1107
+ $custom_value = $acf_field_object['mla_field_label'];
1108
+ break;
1109
+ }
1110
+
1111
+ $custom_value = MLAData::mla_apply_field_level_format( $custom_value, $value );
1112
+ } // found select field
1113
+ } // acf_select_enabled
1114
+
1115
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::mla_expand_custom_prefix( {$key}, {$post_id} ) custom_value = " . var_export( $custom_value, true ) );
1116
+ return $custom_value;
1117
+ } // mla_expand_custom_prefix
1118
+
1119
+ /**
1120
+ * Cached values for the ACF Image fields
1121
+ *
1122
+ * @since 1.05
1123
+ *
1124
+ * @var array( field_slug => array( item_ID => array( reference_ID => reference_ID ) ) )
1125
+ */
1126
+ private static $field_instances = array();
1127
+
1128
+ /**
1129
+ * Cached "parent post" values for the ACF Image fields
1130
+ *
1131
+ * @since 1.05
1132
+ *
1133
+ * @var array( post_ID => array( post_type, post_status, post_title ) )
1134
+ */
1135
+ private static $field_parents = array();
1136
+
1137
+ /**
1138
+ * Find references to Media Library items in ACF Image fields
1139
+ *
1140
+ * @since 1.00
1141
+ *
1142
+ * @param string $field_slug ACF Image variable slug.
1143
+ * @param integer $item_ID Media Library item ID.
1144
+ *
1145
+ * @return array post_id values referencing the item.
1146
+ */
1147
+ private static function _find_field_references( $field_slug, $item_ID ) {
1148
+ global $wpdb;
1149
+
1150
+ if ( !isset( self::$field_instances[ $field_slug ] ) ) {
1151
+ $references = $wpdb->get_results(
1152
+ "
1153
+ SELECT post_id, meta_value
1154
+ FROM {$wpdb->postmeta}
1155
+ WHERE meta_key LIKE '{$field_slug}'
1156
+ "
1157
+ );
1158
+
1159
+ $post_ids = array();
1160
+ foreach ( $references as $reference ) {
1161
+ $post_id = (int) $reference->post_id;
1162
+ $meta_value = (int) $reference->meta_value;
1163
+ self::$field_instances[ $field_slug ][ $meta_value ][ $post_id ] = $post_id;
1164
+ $post_ids[ $post_id ] = $post_id;
1165
+ }
1166
+
1167
+ // Find the post information, excluding revisions
1168
+ $parents = implode( ',', $post_ids );
1169
+ $references = $wpdb->get_results(
1170
+ "
1171
+ SELECT ID, post_type, post_status, post_title
1172
+ FROM {$wpdb->posts}
1173
+ WHERE ( post_type <> 'revision' ) AND ( ID IN ({$parents}) )
1174
+ "
1175
+ );
1176
+
1177
+ foreach ( $references as $reference ) {
1178
+ $post_id = (int) $reference->ID;
1179
+ unset( $reference->ID );
1180
+ self::$field_parents[ $post_id ] = $reference;
1181
+ }
1182
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::_find_field_references( {$field_slug} ) field_parents = " . var_export( self::$field_parents, true ) );
1183
+
1184
+ // Remove the revisions from the field references
1185
+ foreach ( self::$field_instances[ $field_slug ] as $meta_value => $post_ids ) {
1186
+ $references = array();
1187
+ foreach ( $post_ids as $post_id ) {
1188
+ if ( array_key_exists( $post_id, self::$field_parents ) ) {
1189
+ $references[ $post_id ] = $post_id;
1190
+ }
1191
+ }
1192
+
1193
+ if ( count( $references ) ) {
1194
+ self::$field_instances[ $field_slug ][ $meta_value ] = $references;
1195
+ } else {
1196
+ unset( self::$field_instances[ $field_slug ][ $meta_value ] );
1197
+ }
1198
+ }
1199
+ MLACore::mla_debug_add( __LINE__ . " MLAACFExample::_find_field_references( {$field_slug} ) field_instances = " . var_export( self::$field_instances, true ) );
1200
+ } // !isset( self::$field_instances[ $field_slug ] )
1201
+
1202
+ if ( isset( self::$field_instances[ $field_slug ][ $item_ID ] ) ) {
1203
+ return self::$field_instances[ $field_slug ][ $item_ID ];
1204
+ }
1205
+
1206
+ return array();
1207
+ } // _find_field_references
1208
+ } // Class MLAACFExample
1209
+
1210
+ // Install the filters at an early opportunity
1211
+ add_action('init', 'MLAACFExample::initialize');
1212
+ ?>
examples/plugins/mla-csv-data-source-example/class-mla-example-plugin-settings-101.php CHANGED
@@ -516,6 +516,16 @@ class MLAExamplePluginSettings101 {
516
  return $this->current_settings[ $name ];
517
  }
518
 
 
 
 
 
 
 
 
 
 
 
519
  return NULL;
520
  }
521
 
516
  return $this->current_settings[ $name ];
517
  }
518
 
519
+ // Special names for debug logging
520
+ switch ( $name ) {
521
+ case 'request_settings':
522
+ return $this->request_settings;
523
+ case 'current_settings':
524
+ return $this->current_settings;
525
+ case 'default_settings':
526
+ return $this->default_settings;
527
+ }
528
+
529
  return NULL;
530
  }
531
 
examples/plugins/mla-custom-field-search-example/admin-settings-page.tpl CHANGED
@@ -239,7 +239,7 @@ A custom field query has four parts:
239
  </p>
240
  <ol>
241
  <li>A prefix, "custom:" by default, or whatever you set on the General tab.</li>
242
- <li>A comma-separated list of one or more custom field names.</li>
243
  <li>An equals sign ("="), to divide the field names from the values</li>
244
  <li>A comma-separated list of one or more values</li>
245
  </ol>
@@ -250,6 +250,12 @@ So, for example, if you have a custom field named "Kingdom" with values of "Anim
250
  <li><code>custom:Kingdom=Animal</code></li>
251
  </ul>
252
  <p>
 
 
 
 
 
 
253
  It is important to note that custom field values are somewhat different from the keywords and phrases used in the standard Search Media searches. There is no "and/or" option or matching on one of the words you enter. If you enter "this example", the search will not match "this" or "example".
254
  &nbsp;
255
  <a name="multiple_values"></a>
@@ -273,13 +279,13 @@ If you want to search for more than one value, simply separate each value you wa
273
  </p>
274
  <h3>Searching Partial Values; Wildcards</h3>
275
  <p>Wildcard specifications are also supported; for example:
 
276
  <ul class="mla-doc-toc-list">
277
  <li><code>custom:Kingdom=*al</code> to match anything ending in "al", e.g., "Animal" and "Mineral"</li>
278
  <li><code>custom:Kingdom=*get*</code> to match "Vegetable".</li>
279
  <li><code>custom:Headline=*this*,*example*</code> will match values containing "this" or "example".</li>
280
  <li>As explained below, a value of <code>custom:Kingdom=*</code> will match any non-NULL value for a custom field.</li>
281
  </ul>
282
- </p>
283
  <p>
284
  &nbsp;
285
  <a name="multiple_fields"></a>
@@ -288,6 +294,7 @@ If you want to search for more than one value, simply separate each value you wa
288
  <a href="#backtotop">Go to Top</a>
289
  </p>
290
  <h3>Searching in Multiple Fields or All Fields</h3>
 
291
  If you want to search for the same value(s) in more than one custom field, simply separate each field name you want to search in by a comma, such as:
292
  </p>
293
  <ul class="mla-doc-toc-list">
@@ -295,6 +302,13 @@ If you want to search for the same value(s) in more than one custom field, simpl
295
  <li><code>custom:Artist,Patron=smith,jones</code></li>
296
  </ul>
297
  <p>
 
 
 
 
 
 
 
298
  &nbsp;
299
  <a name="non_null_searches"></a>
300
  </p>
239
  </p>
240
  <ol>
241
  <li>A prefix, "custom:" by default, or whatever you set on the General tab.</li>
242
+ <li>A comma-separated list of one or more custom field names. If you omit this the "Default Field(s): set on the General tab will be substituted.</li>
243
  <li>An equals sign ("="), to divide the field names from the values</li>
244
  <li>A comma-separated list of one or more values</li>
245
  </ol>
250
  <li><code>custom:Kingdom=Animal</code></li>
251
  </ul>
252
  <p>
253
+ If you have set "Kingdom" as the Default Field you can compose a search like:
254
+ </p>
255
+ <ul class="mla-doc-toc-list">
256
+ <li><code>custom:=Animal</code></li>
257
+ </ul>
258
+ <p>
259
  It is important to note that custom field values are somewhat different from the keywords and phrases used in the standard Search Media searches. There is no "and/or" option or matching on one of the words you enter. If you enter "this example", the search will not match "this" or "example".
260
  &nbsp;
261
  <a name="multiple_values"></a>
279
  </p>
280
  <h3>Searching Partial Values; Wildcards</h3>
281
  <p>Wildcard specifications are also supported; for example:
282
+ </p>
283
  <ul class="mla-doc-toc-list">
284
  <li><code>custom:Kingdom=*al</code> to match anything ending in "al", e.g., "Animal" and "Mineral"</li>
285
  <li><code>custom:Kingdom=*get*</code> to match "Vegetable".</li>
286
  <li><code>custom:Headline=*this*,*example*</code> will match values containing "this" or "example".</li>
287
  <li>As explained below, a value of <code>custom:Kingdom=*</code> will match any non-NULL value for a custom field.</li>
288
  </ul>
 
289
  <p>
290
  &nbsp;
291
  <a name="multiple_fields"></a>
294
  <a href="#backtotop">Go to Top</a>
295
  </p>
296
  <h3>Searching in Multiple Fields or All Fields</h3>
297
+ <p>
298
  If you want to search for the same value(s) in more than one custom field, simply separate each field name you want to search in by a comma, such as:
299
  </p>
300
  <ul class="mla-doc-toc-list">
302
  <li><code>custom:Artist,Patron=smith,jones</code></li>
303
  </ul>
304
  <p>
305
+ If you want to search for the same value(s) in all of your custom field, check the "Enable All Fields name substitution" box and enter your "All Fields Name" (default "*"), such as:
306
+ </p>
307
+ <ul class="mla-doc-toc-list">
308
+ <li><code>custom:*=smith</code></li>
309
+ <li><code>custom:*=smith,jones</code></li>
310
+ </ul>
311
+ <p>
312
  &nbsp;
313
  <a name="non_null_searches"></a>
314
  </p>
examples/plugins/mla-custom-field-search-example/class-mla-example-plugin-settings-101.php ADDED
@@ -0,0 +1,569 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Provides option management and Settings/ General and Documentation submenu pages
4
+ *
5
+ * This file might be shared among multiple example plugins, so load it with:
6
+ *
7
+ * if ( ! class_exists( 'MLAExamplePluginSettings101' ) ) {
8
+ * require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings-101.php' );
9
+ * }
10
+ *
11
+ * @package Media Library Assistant
12
+ * @version 1.01
13
+ */
14
+
15
+ /**
16
+ * Class MLA Example Settings Menu adds Settings/ General and Documentation submenu pages to an example plugin
17
+ *
18
+ * @package MLA Example Settings Menu
19
+ * @since 1.00
20
+ */
21
+ class MLAExamplePluginSettings101 {
22
+ /**
23
+ * Default values for the __construct function
24
+ *
25
+ * @since 1.00
26
+ *
27
+ * @var array
28
+ */
29
+ private static $default_arguments = array(
30
+ 'slug_prefix' => 'example-plugin',
31
+ 'plugin_title' => 'The Example Plugin',
32
+ 'menu_title' => 'Example Plugin',
33
+ 'plugin_file_name_only' => 'the-example-plugin',
34
+ 'plugin_version' => '1.00',
35
+ 'template_file' => 'absolute path to the template file', // e.g., dirname( __FILE__ ) . '/admin-settings-page.tpl'
36
+ 'options' => array( 'slug' => array( 'type' => 'text|checkbox', 'default' => 'text|boolean' ) ),
37
+ 'general_tab_values' => array(), // additional page_values for 'page-level-options' template
38
+ 'documentation_tab_values' => array(), // page_values for 'documentation-tab' template
39
+ );
40
+
41
+ /**
42
+ * Current values for this object instance
43
+ *
44
+ * @since 1.00
45
+ *
46
+ * @var array
47
+ */
48
+ private $current_arguments = array();
49
+
50
+ /**
51
+ * This function sets option definitions and installs filters.
52
+ *
53
+ * @since 1.00
54
+ *
55
+ * @param array $attr Option definitions and settings
56
+ */
57
+ public function __construct( $attr ) {
58
+ //error_log( __LINE__ . " MLAExamplePluginSettings101::__construct() _REQUEST = " . var_export( $_REQUEST, true ), 0 );
59
+ // Make sure $attr is an array, even if it's empty
60
+ if ( empty( $attr ) ) {
61
+ $attr = array();
62
+ } elseif ( is_string( $attr ) ) {
63
+ $attr = shortcode_parse_atts( $attr );
64
+ }
65
+
66
+ // Accept only the attributes we need and supply defaults
67
+ $this->current_arguments = shortcode_atts( self::$default_arguments, $attr );
68
+
69
+ // Compile the default settings
70
+ foreach ( $this->current_arguments['options'] as $slug => $option ) {
71
+ $this->default_settings[ $slug ] = $option['default'];
72
+ }
73
+
74
+ if ( is_admin() ) {
75
+ // Record new settings if they're being updated
76
+ $this->request_settings = array();
77
+ if ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_save'] ) ) {
78
+ if ( isset( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ] ) ) {
79
+ $this->request_settings = wp_unslash( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options' ] );
80
+ }
81
+ } elseif ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_reset'] ) ) {
82
+ $this->request_settings = $this->default_settings;
83
+ }
84
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::__construct request_settings = ' . var_export( $this->request_settings, true ), 0 );
85
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::__construct mla_hex_dump( exports ) = ' . var_export( MLAData::mla_hex_dump( $this->request_settings['exports'] ), true ), 0 );
86
+ // Add submenu page in the "Settings" section
87
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Add submenu page in the "Settings" section
93
+ *
94
+ * @since 1.00
95
+ */
96
+ public function admin_menu() {
97
+ /*
98
+ * We need a tab-specific page ID to manage the screen options on the General tab.
99
+ * Use the URL suffix, if present. If the URL doesn't have a tab suffix, use '-general'.
100
+ * This hack is required to pass the WordPress "referer" validation.
101
+ */
102
+ if ( isset( $_REQUEST['page'] ) && is_string( $_REQUEST['page'] ) && ( $this->current_arguments['slug_prefix'] . '-settings-' == substr( $_REQUEST['page'], 0, strlen( $this->current_arguments['slug_prefix'] . '-settings-' ) ) ) ) {
103
+ $tab = substr( $_REQUEST['page'], strlen( $this->current_arguments['slug_prefix'] . '-settings-' ) );
104
+ } else {
105
+ $tab = 'general';
106
+ }
107
+
108
+ $tab = $this->_get_options_tablist( $tab ) ? '-' . $tab : '-general';
109
+ add_submenu_page( 'options-general.php', $this->current_arguments['plugin_title'], $this->current_arguments['menu_title'], 'manage_options', $this->current_arguments['slug_prefix'] . '-settings' . $tab, array( $this, 'add_submenu_page' ) );
110
+ add_filter( 'plugin_action_links', array( $this, 'plugin_action_links' ), 10, 2 );
111
+ }
112
+
113
+ /**
114
+ * Add the "Settings" and "Guide" links to the Plugins section entry
115
+ *
116
+ * @since 1.00
117
+ *
118
+ * @param array array of links for the Plugin, e.g., "Activate"
119
+ * @param string Directory and name of the plugin Index file
120
+ *
121
+ * @return array Updated array of links for the Plugin
122
+ */
123
+ public function plugin_action_links( $links, $file ) {
124
+ if ( $file == $this->current_arguments['plugin_file_name_only'] . '/' . $this->current_arguments['plugin_file_name_only'] . '.php' ) {
125
+ $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=' . $this->current_arguments['slug_prefix'] . '-settings-documentation&mla_tab=documentation' ), 'Guide' );
126
+ array_unshift( $links, $settings_link );
127
+ $settings_link = sprintf( '<a href="%s">%s</a>', admin_url( 'options-general.php?page=' . $this->current_arguments['slug_prefix'] . '-settings-general' ), 'Settings' );
128
+ array_unshift( $links, $settings_link );
129
+ }
130
+
131
+ return $links;
132
+ }
133
+
134
+ /**
135
+ * Render (echo) the example plugin's submenu in the Settings section
136
+ *
137
+ * @since 1.00
138
+ *
139
+ * @return void Echoes HTML markup for the submenu page
140
+ */
141
+ public function add_submenu_page() {
142
+ if ( !current_user_can( 'manage_options' ) ) {
143
+ echo '<h2>' . $this->current_arguments['plugin_title'] . " - Error</h2>\n";
144
+ wp_die( 'You do not have permission to manage plugin settings.' );
145
+ }
146
+
147
+ // Load template array and initialize page-level values.
148
+ $this->page_template_array = MLACore::mla_load_template( $this->current_arguments['template_file'], 'path' );
149
+ $current_tab_slug = isset( $_REQUEST['mla_tab'] ) ? $_REQUEST['mla_tab']: 'general';
150
+ $current_tab = $this->_get_options_tablist( $current_tab_slug );
151
+ $page_values = array(
152
+ 'plugin_title' => $this->current_arguments['plugin_title'],
153
+ 'version' => 'v' . $this->current_arguments['plugin_version'],
154
+ 'messages' => '',
155
+ 'tablist' => $this->_compose_settings_tabs( $current_tab_slug ),
156
+ 'tab_content' => '',
157
+ );
158
+
159
+ // Compose tab content
160
+ if ( $current_tab ) {
161
+ if ( isset( $current_tab['render'] ) ) {
162
+ $handler = $current_tab['render'];
163
+ $page_content = call_user_func( array( $this, $handler ) );
164
+ } else {
165
+ $page_content = array( 'message' => "ERROR: Cannot render content tab {$current_tab_slug}", 'body' => '' );
166
+ }
167
+ } else {
168
+ $page_content = array( 'message' => "ERROR: Unknown content tab {$current_tab_slug}", 'body' => '' );
169
+ }
170
+
171
+ if ( ! empty( $page_content['message'] ) ) {
172
+ if ( false !== strpos( $page_content['message'], 'ERROR' ) ) {
173
+ $messages_class = 'updated error';
174
+ } else {
175
+ $messages_class = 'updated notice is-dismissible';
176
+ }
177
+
178
+ $page_values['messages'] = MLAData::mla_parse_template( $this->page_template_array['messages'], array(
179
+ 'mla_messages_class' => $messages_class ,
180
+ 'messages' => $page_content['message'],
181
+ ) );
182
+ }
183
+
184
+ $page_values['tab_content'] = $page_content['body'];
185
+
186
+ echo MLAData::mla_parse_template( $this->page_template_array['page'], $page_values );
187
+ }
188
+
189
+ /**
190
+ * Template file for the Settings page(s) and parts
191
+ *
192
+ * This array contains all of the template parts for the Settings page(s). The array is built once
193
+ * each page load and cached for subsequent use.
194
+ *
195
+ * @since 1.00
196
+ *
197
+ * @var array
198
+ */
199
+ private $page_template_array = NULL;
200
+
201
+ /**
202
+ * Definitions for Settings page tab ids, titles and handlers
203
+ * Each tab is defined by an array with the following elements:
204
+ *
205
+ * array key => HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)
206
+ *
207
+ * title => tab label / heading text
208
+ * render => rendering function for tab messages and content. Usage:
209
+ * $tab_content = ['render']();
210
+ *
211
+ * @since 1.00
212
+ *
213
+ * @var array
214
+ */
215
+ private $mla_tablist = array(
216
+ 'general' => array( 'title' => 'General', 'render' => '_compose_general_tab' ),
217
+ 'documentation' => array( 'title' => 'Documentation', 'render' => '_compose_documentation_tab' ),
218
+ );
219
+
220
+ /**
221
+ * Retrieve the list of options tabs or a specific tab value
222
+ *
223
+ * @since 1.00
224
+ *
225
+ * @param string Tab slug, to retrieve a single entry
226
+ *
227
+ * @return array|false The entire tablist ( $tab = NULL ), a single tab entry or false if not found/not allowed
228
+ */
229
+ private function _get_options_tablist( $tab = NULL ) {
230
+ if ( is_string( $tab ) ) {
231
+ if ( isset( $this->mla_tablist[ $tab ] ) ) {
232
+ $results = $this->mla_tablist[ $tab ];
233
+ } else {
234
+ $results = false;
235
+ }
236
+ } else {
237
+ $results = $this->mla_tablist;
238
+ }
239
+
240
+ return $results;
241
+ }
242
+
243
+ /**
244
+ * Compose the navigation tabs for the Settings subpage
245
+ *
246
+ * @since 1.00
247
+ * @uses $page_template_array contains tablist and tablist-item templates
248
+ *
249
+ * @param string Optional data-tab-id value for the active tab, default 'general'
250
+ *
251
+ * @return string HTML markup for the Settings subpage navigation tabs
252
+ */
253
+ private function _compose_settings_tabs( $active_tab = 'general' ) {
254
+ $tablist_item = $this->page_template_array['tablist-item'];
255
+ $tabs = '';
256
+ foreach ( $this->_get_options_tablist() as $key => $item ) {
257
+ $item_values = array(
258
+ 'data-tab-id' => $key,
259
+ 'nav-tab-active' => ( $active_tab == $key ) ? 'nav-tab-active' : '',
260
+ 'settings-page' => $this->current_arguments['slug_prefix'] . '-settings-' . $key,
261
+ 'title' => $item['title']
262
+ );
263
+
264
+ $tabs .= MLAData::mla_parse_template( $tablist_item, $item_values );
265
+ } // foreach $item
266
+
267
+ $tablist_values = array( 'tablist' => $tabs );
268
+ return MLAData::mla_parse_template( $this->page_template_array['tablist'], $tablist_values );
269
+ }
270
+
271
+ /**
272
+ * Compose the General tab content for the Settings subpage
273
+ *
274
+ * @since 1.00
275
+ * @uses $page_template_array contains tab content template(s)
276
+ *
277
+ * @return array 'message' => status/error messages, 'body' => tab content
278
+ */
279
+ private function _compose_general_tab() {
280
+ $page_content = array( 'message' => '', 'body' => '' );
281
+
282
+ // Check for page-level Save Changes, Restore Defaults
283
+ if ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_save'] ) ) {
284
+ check_admin_referer( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME );
285
+ $page_content = $this->_save_setting_changes();
286
+ } elseif ( !empty( $_REQUEST[ $this->current_arguments['slug_prefix'] . '_options_reset'] ) ) {
287
+ check_admin_referer( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME );
288
+ $page_content = $this->_restore_setting_defaults();
289
+ }
290
+
291
+ if ( !empty( $page_content['body'] ) ) {
292
+ return $page_content;
293
+ }
294
+
295
+ // Display the General tab
296
+ $_SERVER['REQUEST_URI'] = remove_query_arg( array(
297
+ $this->current_arguments['slug_prefix'] . '_options',
298
+ '_wpnonce',
299
+ '_wp_http_referer',
300
+ $this->current_arguments['slug_prefix'] . '_options_save',
301
+ $this->current_arguments['slug_prefix'] . '_options_reset',
302
+ ), $_SERVER['REQUEST_URI'] );
303
+
304
+ // Compose page-level options
305
+ $page_values = $this->current_arguments['general_tab_values'];
306
+
307
+ foreach ( $this->current_arguments['options'] as $slug => $option ) {
308
+ if ( 'checkbox' === $option['type'] ) {
309
+ $page_values[ $slug . '_checked' ] = $this->get_plugin_option( $slug ) ? 'checked="checked" ' : '';
310
+ } else {
311
+ $page_values[ $slug ] = esc_attr( $this->get_plugin_option( $slug ) );
312
+ }
313
+ }
314
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_compose_general_tab page_values = ' . var_export( $page_values, true ), 0 );
315
+
316
+ $options_list = MLAData::mla_parse_template( $this->page_template_array['page-level-options'], $page_values );
317
+
318
+ $form_arguments = '?page=' . $this->current_arguments['slug_prefix'] . '-settings-general&mla_tab=general';
319
+
320
+ $page_values = array(
321
+ 'form_url' => admin_url( 'options-general.php' ) . $form_arguments,
322
+ '_wpnonce' => wp_nonce_field( MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME, true, false ),
323
+ 'options_list' => $options_list,
324
+ 'slug_prefix' => $this->current_arguments['slug_prefix'],
325
+ );
326
+
327
+ $page_content['body'] .= MLAData::mla_parse_template( $this->page_template_array['general-tab'], $page_values );
328
+
329
+ return $page_content;
330
+ }
331
+
332
+ /**
333
+ * Compose the Documentation tab content for the Settings subpage
334
+ *
335
+ * @since 1.00
336
+ * @uses $page_template_array contains tab content template(s)
337
+ *
338
+ * @return array 'message' => status/error messages, 'body' => tab content
339
+ */
340
+ private function _compose_documentation_tab() {
341
+ $page_content = array( 'message' => '', 'body' => '' );
342
+ $page_values = array(
343
+ );
344
+
345
+ $page_content['body'] = MLAData::mla_parse_template( $this->page_template_array['documentation-tab'], $this->current_arguments['documentation_tab_values'] );
346
+ return $page_content;
347
+ }
348
+
349
+ /**
350
+ * Save settings as a WordPress wp_options entry
351
+ *
352
+ * @since 1.00
353
+ *
354
+ * @return array 'message' => status/error messages, 'body' => tab content
355
+ */
356
+ private function _save_setting_changes() {
357
+ $page_content = array( 'message' => 'Settings unchanged.', 'body' => '' );
358
+
359
+ $changed = false;
360
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_save_setting_changes current_arguments[options] = ' . var_export( $this->current_arguments['options'], true ), 0 );
361
+ foreach ( $this->current_arguments['options'] as $slug => $option ) {
362
+ if ( 'checkbox' === $option['type'] ) {
363
+ $changed |= $this->_update_plugin_option( $slug, isset( $this->request_settings[ $slug ] ) );
364
+ } else {
365
+ if ( isset( $this->request_settings[ $slug ] ) ) {
366
+ $changed |= $this->_update_plugin_option( $slug, $this->request_settings[ $slug ] );
367
+ } else {
368
+ $changed |= $this->_update_plugin_option( $slug, $option['default'] );
369
+ }
370
+ }
371
+ } // foreach option
372
+ $this->request_settings = array();
373
+ //error_log( __LINE__ . " MLAExamplePluginSettings101::_save_setting_changes( {$changed} ) final current_settings = " . var_export( $this->current_settings, true ), 0 );
374
+
375
+ if ( $changed ) {
376
+ // No reason to save defaults in the database
377
+ if ( $this->current_settings === $this->default_settings ) {
378
+ delete_option( $this->current_arguments['slug_prefix'] . '-settings' );
379
+ } else {
380
+ $changed = update_option( $this->current_arguments['slug_prefix'] . '-settings', $this->current_settings, false );
381
+ }
382
+
383
+ if ( $changed ) {
384
+ $page_content['message'] = "Settings have been updated.";
385
+ } else {
386
+ $page_content['message'] = "Settings updated failed.";
387
+ }
388
+ }
389
+
390
+ return $page_content;
391
+ } // _save_setting_changes
392
+
393
+ /**
394
+ * Delete the plugin's WordPress wp_options entry, restoring the default settings
395
+ *
396
+ * @since 1.00
397
+ *
398
+ * @return array 'message' => status/error messages, 'body' => tab content
399
+ */
400
+ private function _restore_setting_defaults() {
401
+ $page_content = array( 'message' => 'Settings unchanged.', 'body' => '' );
402
+ $this->current_settings = $this->default_settings;
403
+ $changed = delete_option( $this->current_arguments['slug_prefix'] . '-settings' );
404
+
405
+ if ( $changed ) {
406
+ $page_content['message'] = "Settings have been updated.";
407
+ }
408
+
409
+ return $page_content;
410
+ } // _restore_setting_defaults
411
+
412
+ /**
413
+ * Assemble the in-memory representation of the plugin settings
414
+ *
415
+ * @since 1.00
416
+ *
417
+ * @param boolean $force_refresh Optional. Force a reload of rules. Default false.
418
+ *
419
+ * @return boolean Success (true) or failure (false) of the operation
420
+ */
421
+ private function _get_plugin_settings( $force_refresh = false ) {
422
+ if ( false == $force_refresh && NULL != $this->current_settings ) {
423
+ return true;
424
+ }
425
+
426
+ // Update the plugin options from the wp_options table or set defaults
427
+ $this->current_settings = get_option( $this->current_arguments['slug_prefix'] . '-settings' );
428
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_get_plugin_settings stored current_settings = ' . var_export( $this->current_settings, true ), 0 );
429
+ if ( !is_array( $this->current_settings ) ) {
430
+ $this->current_settings = $this->default_settings;
431
+ }
432
+
433
+ // Initialize any new setting(s) from the default settings
434
+ foreach ( $this->current_arguments['options'] as $slug => $option ) {
435
+ if ( !isset( $this->current_settings[ $slug ] ) ) {
436
+ $this->current_settings[ $slug ] = $option['default'];
437
+ }
438
+ }
439
+
440
+ //error_log( __LINE__ . ' MLAExamplePluginSettings101::_get_plugin_settings final current_settings = ' . var_export( $this->current_settings, true ), 0 );
441
+ return true;
442
+ }
443
+
444
+ /**
445
+ * Updated option settings from the $_REQUEST array
446
+ *
447
+ * @since 1.01
448
+ *
449
+ * @var array
450
+ */
451
+ private $request_settings = array();
452
+
453
+ /**
454
+ * In-memory representation of the option settings
455
+ *
456
+ * @since 1.00
457
+ *
458
+ * @var array
459
+ */
460
+ private $current_settings = NULL;
461
+
462
+ /**
463
+ * Default processing options
464
+ *
465
+ * @since 1.00
466
+ *
467
+ * @var array
468
+ */
469
+ private $default_settings = array();
470
+
471
+ /**
472
+ * Update a plugin option setting
473
+ *
474
+ * @since 1.00
475
+ *
476
+ * @param string $name Option name
477
+ * @param mixed $new_value Option value
478
+ *
479
+ * @return mixed True if option value changed, false if value unchanged, NULL if failure
480
+ */
481
+ private function _update_plugin_option( $name, $new_value ) {
482
+ if ( !$this->_get_plugin_settings() ) {
483
+ return NULL;
484
+ }
485
+
486
+ $old_value = isset( $this->current_settings[ $name ] ) ? $this->current_settings[ $name ] : NULL;
487
+
488
+ if ( $new_value === $old_value ) {
489
+ return false;
490
+ }
491
+
492
+ $this->current_settings[ $name ] = $new_value;
493
+ return true;
494
+ }
495
+
496
+ /**
497
+ * Get a plugin option setting
498
+ *
499
+ * @since 1.00
500
+ *
501
+ * @param string $name Option name
502
+ *
503
+ * @return mixed Option value, if it exists else NULL
504
+ */
505
+ public function get_plugin_option( $name ) {
506
+ if ( !$this->_get_plugin_settings() ) {
507
+ return NULL;
508
+ }
509
+
510
+ // See if the setting is being updated
511
+ if ( isset( $this->request_settings[ $name ] ) ) {
512
+ return $this->request_settings[ $name ];
513
+ }
514
+
515
+ if ( isset( $this->current_settings[ $name ] ) ) {
516
+ return $this->current_settings[ $name ];
517
+ }
518
+
519
+ // Special names for debug logging
520
+ switch ( $name ) {
521
+ case 'request_settings':
522
+ return $this->request_settings;
523
+ case 'current_settings':
524
+ return $this->current_settings;
525
+ case 'default_settings':
526
+ return $this->default_settings;
527
+ }
528
+
529
+ return NULL;
530
+ }
531
+
532
+ /**
533
+ * Get a plugin argument setting
534
+ *
535
+ * @since 1.01
536
+ *
537
+ * @param string $name Argument name
538
+ *
539
+ * @return mixed Argument value, if it exists else NULL
540
+ */
541
+ public function get_plugin_argument( $name ) {
542
+ if ( !isset( $this->current_arguments[ $name ] ) ) {
543
+ return NULL;
544
+ }
545
+
546
+ return $this->current_arguments[ $name ];
547
+ }
548
+
549
+ /**
550
+ * Update a plugin argument setting
551
+ *
552
+ * @since 1.01
553
+ *
554
+ * @param string $name Argument name
555
+ *
556
+ * @return boolean True if argument value changed, false if value unchanged
557
+ */
558
+ public function update_plugin_argument( $name, $new_value ) {
559
+ $old_value = isset( $this->current_arguments[ $name ] ) ? $this->current_arguments[ $name ] : NULL;
560
+
561
+ if ( $new_value === $old_value ) {
562
+ return false;
563
+ }
564
+
565
+ $this->current_arguments[ $name ] = $new_value;
566
+ return true;
567
+ }
568
+ } // Class MLAExamplePluginSettings101
569
+ ?>
examples/plugins/mla-custom-field-search-example/mla-custom-field-search-example.php CHANGED
@@ -28,7 +28,7 @@
28
  * https://wordpress.org/support/topic/search-media-by-custom-field/
29
  *
30
  * @package MLA Custom Field Search Example
31
- * @version 1.06
32
  */
33
 
34
  /*
@@ -36,7 +36,7 @@ Plugin Name: MLA Custom Field Search Example
36
  Plugin URI: http://davidlingren.com/
37
  Description: Extends the Media/Assistant "Search Media" box to custom field values
38
  Author: David Lingren
39
- Version: 1.06
40
  Author URI: http://davidlingren.com/
41
 
42
  Copyright 2014 - 2020 David Lingren
@@ -70,7 +70,7 @@ class MLACustomFieldSearchExample {
70
  *
71
  * @var integer
72
  */
73
- const PLUGIN_VERSION = '1.06';
74
 
75
  /**
76
  * Constant to log this plugin's debug activity
@@ -146,15 +146,15 @@ class MLACustomFieldSearchExample {
146
  }
147
 
148
  // The plugin settings class is shared with other MLA example plugins
149
- if ( ! class_exists( 'MLAExamplePluginSettings' ) ) {
150
- require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings.php' );
151
  }
152
 
153
  // Add the run-time values to the arguments
154
  self::$settings_arguments['template_file'] = dirname( __FILE__ ) . self::$settings_arguments['template_file'];
155
 
156
  // Create our own settings object
157
- self::$plugin_settings = new MLAExamplePluginSettings( self::$settings_arguments );
158
 
159
  if ( self::$plugin_settings->get_plugin_option( 'media_assistant_support' ) ) {
160
  // Defined in /media-library-assistant/includes/class-mla-main.php
28
  * https://wordpress.org/support/topic/search-media-by-custom-field/
29
  *
30
  * @package MLA Custom Field Search Example
31
+ * @version 1.07
32
  */
33
 
34
  /*
36
  Plugin URI: http://davidlingren.com/
37
  Description: Extends the Media/Assistant "Search Media" box to custom field values
38
  Author: David Lingren
39
+ Version: 1.07
40
  Author URI: http://davidlingren.com/
41
 
42
  Copyright 2014 - 2020 David Lingren
70
  *
71
  * @var integer
72
  */
73
+ const PLUGIN_VERSION = '1.07';
74
 
75
  /**
76
  * Constant to log this plugin's debug activity
146
  }
147
 
148
  // The plugin settings class is shared with other MLA example plugins
149
+ if ( ! class_exists( 'MLAExamplePluginSettings101' ) ) {
150
+ require_once( pathinfo( __FILE__, PATHINFO_DIRNAME ) . '/class-mla-example-plugin-settings-101.php' );
151
  }
152
 
153
  // Add the run-time values to the arguments
154
  self::$settings_arguments['template_file'] = dirname( __FILE__ ) . self::$settings_arguments['template_file'];
155
 
156
  // Create our own settings object
157
+ self::$plugin_settings = new MLAExamplePluginSettings101( self::$settings_arguments );
158
 
159
  if ( self::$plugin_settings->get_plugin_option( 'media_assistant_support' ) ) {
160
  // Defined in /media-library-assistant/includes/class-mla-main.php
examples/plugins/mla-filename-issues-example.php ADDED
@@ -0,0 +1,229 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Implements a "filename_issues" custom data source to identify potential duplicate files/Media Library items
4
+ *
5
+ * Created for support topic "Find media duplicates based on file name"
6
+ * opened on 9/7/2020 by "bkwineper":
7
+ * https://wordpress.org/support/topic/find-media-duplicates-based-on-file-name/
8
+ *
9
+ * @package MLA Filename Issues Example
10
+ * @version 1.00
11
+ */
12
+
13
+ /*
14
+ Plugin Name: MLA Filename Issues Example
15
+ Plugin URI: http://davidlingren.com/
16
+ Description: Implements a "filename_issues" custom data source to identify potential duplicate files/Media Library items
17
+ Author: David Lingren
18
+ Version: 1.00
19
+ Author URI: http://davidlingren.com/
20
+
21
+ Copyright 2021 David Lingren
22
+
23
+ This program is free software; you can redistribute it and/or modify
24
+ it under the terms of the GNU General Public License as published by
25
+ the Free Software Foundation; either version 2 of the License, or
26
+ (at your option) any later version.
27
+
28
+ This program is distributed in the hope that it will be useful,
29
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
30
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
31
+ GNU General Public License for more details.
32
+
33
+ You can get a copy of the GNU General Public License by writing to the
34
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
35
+ */
36
+
37
+ /**
38
+ * Class MLA Filename Issues Example hooks four of the filters provided
39
+ * by the "Field-level substitution parameter filters (Hooks)"
40
+ *
41
+ * Call it anything you want, but give it an unlikely and hopefully unique name. Hiding
42
+ * everything else inside a class means this is the only name you have to worry about.
43
+ *
44
+ * @package MLA Filename Issues Example
45
+ * @since 1.00
46
+ */
47
+ class MLAFilenameIssuesExample {
48
+ /**
49
+ * Initialization function, similar to __construct()
50
+ *
51
+ * Installs filters and actions that handle the MLA hooks for the
52
+ * "Field-level substitution parameters"
53
+ *
54
+ * @since 1.00
55
+ *
56
+ * @return void
57
+ */
58
+ public static function initialize() {
59
+ // Defined in /media-library-assistant/includes/class-mla-data.php
60
+ add_filter( 'mla_expand_custom_data_source', 'MLAFilenameIssuesExample::mla_expand_custom_data_source', 10, 9 );
61
+ add_filter( 'mla_evaluate_custom_data_source', 'MLAFilenameIssuesExample::mla_evaluate_custom_data_source', 10, 5 );
62
+ } // initialize
63
+
64
+ /**
65
+ * Cache root names and counts of items having that root name
66
+ *
67
+ * @since 1.00
68
+ *
69
+ * @var array Item counts for the root name ( rootname => count )
70
+ */
71
+ private static $rootname_counts = NULL;
72
+
73
+ /**
74
+ * Create root name cache
75
+ *
76
+ * @since 1.00
77
+ *
78
+ * @param boolean $force_refresh True to ignore & refresh the cache
79
+ */
80
+ private static function _evaluate_root_names( $force_refresh = false ) {
81
+ global $wpdb;
82
+
83
+ if ( false === $force_refresh && is_array( self::$rootname_counts ) ) {
84
+ return;
85
+ }
86
+
87
+ $results = $wpdb->get_results( "SELECT post_id, meta_value FROM {$wpdb->postmeta} WHERE {$wpdb->postmeta}.meta_key = '_wp_attached_file'" );
88
+
89
+ self::$rootname_counts = array();
90
+ foreach( $results as $result ) {
91
+ $rootname = self::_find_root_name( $result->meta_value );
92
+
93
+ if ( isset( self::$rootname_counts[ $rootname ] ) ) {
94
+ self::$rootname_counts[ $rootname ]++;
95
+ } else {
96
+ self::$rootname_counts[ $rootname ] = 1;
97
+ }
98
+ }
99
+
100
+ foreach( self::$rootname_counts as $rootname => $count ) {
101
+ if ( 1 === $count ) {
102
+ unset( self::$rootname_counts[ $rootname ] );
103
+ }
104
+ }
105
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::_evaluate_root_names rootnames = " . var_export( self::$rootname_counts, true ), 0 );
106
+ }
107
+
108
+ /**
109
+ * Evaluate filename issues
110
+ *
111
+ * @since 1.00
112
+ *
113
+ * @param integer $post_id ID of the Media Library item
114
+ *
115
+ * @return string Root name and count if ( count > 1 ) else empty string
116
+ */
117
+ private static function _evaluate_filename_issues( $post_id ) {
118
+ $attached_file = get_post_meta( $post_id, '_wp_attached_file', true );
119
+
120
+ if ( false === $attached_file ) {
121
+ return 'INVALID ID';
122
+ } elseif ( empty( $attached_file ) ) {
123
+ return 'NO ATTACHED FILE';
124
+ }
125
+
126
+ $rootname = self::_find_root_name( $attached_file );
127
+
128
+ if ( isset( self::$rootname_counts[ $rootname ] ) ) {
129
+ return $rootname . ' (' . self::$rootname_counts[ $rootname ] . ')';
130
+ }
131
+
132
+ return '';
133
+ }
134
+
135
+ /**
136
+ * Find the root portion of a file name
137
+ *
138
+ * @since 1.00
139
+ *
140
+ * @param string $filename Path and file name
141
+ *
142
+ * @return string Root portion of $filename
143
+ */
144
+ private static function _find_root_name( $filename ) {
145
+ $rootname = strtolower( pathinfo( $filename, PATHINFO_FILENAME ) );
146
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::_find_root_name( {$filename} ) rootname = " . var_export( $rootname, true ), 0 );
147
+
148
+ // Remove abc-scaled suffix
149
+ $scaled_pos = strpos( $rootname, '-scaled' );
150
+ if ( $scaled_pos === ( strlen( $rootname ) - 7 ) ) {
151
+ $rootname = substr( $rootname, 0, $scaled_pos );
152
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::_find_root_name rootname = " . var_export( $rootname, true ), 0 );
153
+ }
154
+
155
+ // Remove -digit(s) suffix
156
+ $rootname = preg_replace( '/-[0-9]+$/', '', $rootname );
157
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::_find_root_name rootname = " . var_export( $rootname, true ), 0 );
158
+
159
+ // Remove (single) digit suffix (old WordPress convention; won't handle 10+ duplicates)
160
+ $rootname = preg_replace( '/[0-9]$/', '', $rootname );
161
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::_find_root_name rootname = " . var_export( $rootname, true ), 0 );
162
+
163
+ return $rootname;
164
+ }
165
+
166
+ /**
167
+ * MLA Expand Custom Data Source Filter
168
+ *
169
+ * For shortcode and Content Template processing, gives you an opportunity to generate a custom data value.
170
+ *
171
+ * @since 1.00
172
+ *
173
+ * @param string NULL, indicating that by default, no custom value is available
174
+ * @param string the entire data-source text including option/format and any arguments
175
+ * @param string the data-source name
176
+ * @param array data-source components; prefix (empty), value, option, format and args (if present)
177
+ * @param array values from the query, if any, e.g. shortcode parameters
178
+ * @param array item-level markup template values, if any
179
+ * @param integer attachment ID for attachment-specific values
180
+ * @param boolean for option 'multi', retain existing values
181
+ * @param string default option value
182
+ */
183
+ public static function mla_expand_custom_data_source( $custom_value, $key, $candidate, $value, $query, $markup_values, $post_id, $keep_existing, $default_option ) {
184
+ // Uncomment the error_log statements in any of the filters to see what's passed in
185
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::mla_expand_custom_data_source( {$key}, {$candidate}, {$post_id}, {$keep_existing}, {$default_option} ) value = " . var_export( $value, true ), 0 );
186
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::mla_expand_custom_data_source( {$candidate}, {$post_id} ) query = " . var_export( $query, true ), 0 );
187
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::mla_expand_custom_data_source( {$candidate}, {$post_id} ) markup_values = " . var_export( $markup_values, true ), 0 );
188
+
189
+ if ( 'filename_issues' !== $key ) {
190
+ return $custom_value;
191
+ }
192
+
193
+ self::_evaluate_root_names();
194
+
195
+ return self::_evaluate_filename_issues( $post_id );
196
+ } // mla_expand_custom_data_source
197
+
198
+ /**
199
+ * MLA Evaluate Custom Data Source Filter
200
+ *
201
+ * For metadata mapping rules, gives you an opportunity to generate a custom data value.
202
+ *
203
+ * @since 1.00
204
+ *
205
+ * @param string NULL, indicating that by default, no custom value is available
206
+ * @param integer attachment ID for attachment-specific values
207
+ * @param string category/scope to evaluate against: custom_field_mapping or single_attachment_mapping
208
+ * @param array data source specification ( name, *data_source, *keep_existing, *format, mla_column, quick_edit, bulk_edit, *meta_name, *option, no_null )
209
+ * @param array _wp_attachment_metadata, default NULL (use current postmeta database value)
210
+ */
211
+ public static function mla_evaluate_custom_data_source( $custom_value, $post_id, $category, $data_value, $attachment_metadata ) {
212
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::mla_expand_custom_data_source( {$post_id}, {$category} ) data_value = " . var_export( $data_value, true ), 0 );
213
+ //error_log( __LINE__ . " MLAFilenameIssuesExample::mla_expand_custom_data_source( {$post_id}, {$category} ) attachment_metadata = " . var_export( $attachment_metadata, true ), 0 );
214
+
215
+ if ( 'filename_issues' !== $data_value['data_source'] ) {
216
+ return $custom_value;
217
+ }
218
+
219
+ self::_evaluate_root_names();
220
+
221
+ return self::_evaluate_filename_issues( $post_id );
222
+ } // mla_evaluate_custom_data_source
223
+ } //MLAFilenameIssuesExample
224
+
225
+ /*
226
+ * Install the filters at an early opportunity
227
+ */
228
+ add_action('init', 'MLAFilenameIssuesExample::initialize');
229
+ ?>
examples/plugins/mla-insert-fixit.php CHANGED
@@ -53,7 +53,7 @@
53
  * https://wordpress.org/support/topic/post-parent-link-images/
54
  *
55
  * @package Insert Fixit
56
- * @version 1.21
57
  */
58
 
59
  /*
@@ -61,7 +61,7 @@ Plugin Name: MLA Insert Fixit
61
  Plugin URI: http://davidlingren.com/
62
  Description: Synchronizes Media Library values to and from post/page inserted/featured/attached images
63
  Author: David Lingren
64
- Version: 1.21
65
  Author URI: http://davidlingren.com/
66
 
67
  Copyright 2015-2021 David Lingren
@@ -94,7 +94,7 @@ class Insert_Fixit {
94
  *
95
  * @var string
96
  */
97
- const CURRENT_VERSION = '1.21';
98
 
99
  /**
100
  * Constant to log this plugin's debug activity
@@ -887,7 +887,7 @@ class Insert_Fixit {
887
  *
888
  * @return string Cache or rebuild results
889
  */
890
- private static function _build_featured_objects_cache( $use_cache = false, $unattached_only = false, $reverse_sort ) {
891
  global $wpdb;
892
 
893
  if ( $use_cache ) {
53
  * https://wordpress.org/support/topic/post-parent-link-images/
54
  *
55
  * @package Insert Fixit
56
+ * @version 1.22
57
  */
58
 
59
  /*
61
  Plugin URI: http://davidlingren.com/
62
  Description: Synchronizes Media Library values to and from post/page inserted/featured/attached images
63
  Author: David Lingren
64
+ Version: 1.22
65
  Author URI: http://davidlingren.com/
66
 
67
  Copyright 2015-2021 David Lingren
94
  *
95
  * @var string
96
  */
97
+ const CURRENT_VERSION = '1.22';
98
 
99
  /**
100
  * Constant to log this plugin's debug activity
887
  *
888
  * @return string Cache or rebuild results
889
  */
890
+ private static function _build_featured_objects_cache( $use_cache = false, $unattached_only = false, $reverse_sort = false ) {
891
  global $wpdb;
892
 
893
  if ( $use_cache ) {
examples/plugins/mla-metabox-hooks-example.php CHANGED
@@ -6,7 +6,7 @@
6
  * All of the action takes place in the "mla_inserted_in_meta_box" filter.
7
  *
8
  * @package MLA Meta Box Hooks Example
9
- * @version 1.01
10
  */
11
 
12
  /*
@@ -14,10 +14,10 @@ Plugin Name: MLA Meta Box Hooks Example
14
  Plugin URI: http://davidlingren.com/
15
  Description: Provides an example of the filters provided by the "Edit Media additional meta boxes" feature
16
  Author: David Lingren
17
- Version: 1.01
18
  Author URI: http://davidlingren.com/
19
 
20
- Copyright 2014 David Lingren
21
 
22
  This program is free software; you can redistribute it and/or modify
23
  it under the terms of the GNU General Public License as published by
@@ -77,6 +77,9 @@ class MLAMetaboxHooksExample {
77
  add_filter( 'mla_image_metadata_meta_box', 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter', 10, 3 );
78
  add_filter( 'mla_image_metadata_meta_box_html', 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_html_filter', 10, 4 );
79
 
 
 
 
80
  add_filter( 'mla_featured_in_meta_box', 'MLAMetaboxHooksExample::mla_featured_in_meta_box_filter', 10, 3 );
81
  add_filter( 'mla_featured_in_meta_box_html', 'MLAMetaboxHooksExample::mla_featured_in_meta_box_html_filter', 10, 4 );
82
 
@@ -207,7 +210,7 @@ class MLAMetaboxHooksExample {
207
  * $metadata['mla_wp_attachment_metadata']
208
  * @param object the current post
209
  *
210
- * @return array updated parent information
211
  */
212
  public static function mla_image_metadata_meta_box_filter( $value, $metadata, $post ) {
213
  //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter $value = ' . var_export( $value, true ), 0 );
@@ -241,6 +244,46 @@ class MLAMetaboxHooksExample {
241
  return $html;
242
  } // mla_image_metadata_meta_box_html_filter
243
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
244
  /**
245
  * MLA Featured in Meta Box Filter
246
  *
6
  * All of the action takes place in the "mla_inserted_in_meta_box" filter.
7
  *
8
  * @package MLA Meta Box Hooks Example
9
+ * @version 1.02
10
  */
11
 
12
  /*
14
  Plugin URI: http://davidlingren.com/
15
  Description: Provides an example of the filters provided by the "Edit Media additional meta boxes" feature
16
  Author: David Lingren
17
+ Version: 1.02
18
  Author URI: http://davidlingren.com/
19
 
20
+ Copyright 2014-2021 David Lingren
21
 
22
  This program is free software; you can redistribute it and/or modify
23
  it under the terms of the GNU General Public License as published by
77
  add_filter( 'mla_image_metadata_meta_box', 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter', 10, 3 );
78
  add_filter( 'mla_image_metadata_meta_box_html', 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_html_filter', 10, 4 );
79
 
80
+ add_filter( 'mla_file_metadata_meta_box', 'MLAMetaboxHooksExample::mla_file_metadata_meta_box_filter', 10, 2 );
81
+ add_filter( 'mla_file_metadata_meta_box_html', 'MLAMetaboxHooksExample::mla_file_metadata_meta_box_html_filter', 10, 3 );
82
+
83
  add_filter( 'mla_featured_in_meta_box', 'MLAMetaboxHooksExample::mla_featured_in_meta_box_filter', 10, 3 );
84
  add_filter( 'mla_featured_in_meta_box_html', 'MLAMetaboxHooksExample::mla_featured_in_meta_box_html_filter', 10, 4 );
85
 
210
  * $metadata['mla_wp_attachment_metadata']
211
  * @param object the current post
212
  *
213
+ * @return array updated metadata information
214
  */
215
  public static function mla_image_metadata_meta_box_filter( $value, $metadata, $post ) {
216
  //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter $value = ' . var_export( $value, true ), 0 );
244
  return $html;
245
  } // mla_image_metadata_meta_box_html_filter
246
 
247
+ /**
248
+ * MLA Attachment File Metadata Meta Box Filter
249
+ *
250
+ * This filter gives you an opportunity to modify the "Attachment File Metadata" meta box.
251
+ *
252
+ * @since 1.02
253
+ *
254
+ * @param array ( [value] => default text, [rows] => textbox rows, [cols] => textbox columns )
255
+ * @param object the current post
256
+ *
257
+ * @return array updated metadata information
258
+ */
259
+ public static function mla_file_metadata_meta_box_filter( $value, $post ) {
260
+ //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter $value = ' . var_export( $value, true ), 0 );
261
+ //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_filter $post = ' . var_export( $post, true ), 0 );
262
+
263
+ return $value;
264
+ } // mla_file_metadata_meta_box_filter
265
+
266
+ /**
267
+ * MLA Attachment File Metadata Meta Box HTML Filter
268
+ *
269
+ * This filter gives you an opportunity to modify the "Attachment File Metadata" meta box HTML content.
270
+ *
271
+ * @since 1.02
272
+ *
273
+ * @param string Meta box contents markup
274
+ * @param array ( [value] => default text, [rows] => textbox rows, [cols] => textbox columns )
275
+ * @param object the current post
276
+ *
277
+ * @return array updated meta box contents markup
278
+ */
279
+ public static function mla_file_metadata_meta_box_html_filter( $html, $value, $post ) {
280
+ //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_html_filter $html = ' . var_export( $html, true ), 0 );
281
+ //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_html_filter $value = ' . var_export( $value, true ), 0 );
282
+ //error_log( 'MLAMetaboxHooksExample::mla_image_metadata_meta_box_html_filter $post = ' . var_export( $post, true ), 0 );
283
+
284
+ return $html;
285
+ } // mla_file_metadata_meta_box_html_filter
286
+
287
  /**
288
  * MLA Featured in Meta Box Filter
289
  *
examples/plugins/mla-ui-elements-example/class-mla-example-plugin-settings-101.php CHANGED
@@ -516,6 +516,16 @@ class MLAExamplePluginSettings101 {
516
  return $this->current_settings[ $name ];
517
  }
518
 
 
 
 
 
 
 
 
 
 
 
519
  return NULL;
520
  }
521
 
516
  return $this->current_settings[ $name ];
517
  }
518
 
519
+ // Special names for debug logging
520
+ switch ( $name ) {
521
+ case 'request_settings':
522
+ return $this->request_settings;
523
+ case 'current_settings':
524
+ return $this->current_settings;
525
+ case 'default_settings':
526
+ return $this->default_settings;
527
+ }
528
+
529
  return NULL;
530
  }
531
 
includes/class-mla-core-options.php CHANGED
@@ -188,6 +188,11 @@ class MLACoreOptions {
188
  */
189
  const MLA_EDIT_MEDIA_META_BOXES = 'edit_media_meta_boxes';
190
 
 
 
 
 
 
191
  /**
192
  * Provides a unique name for the Media/Add New bulk edit option
193
  */
@@ -750,10 +755,19 @@ class MLACoreOptions {
750
  'type' => 'checkbox',
751
  'autoload' => true,
752
  'std' => 'checked',
753
- 'help' => __( 'Check this option to add "Parent Info", "Menu Order", "Attachment Metadata" and four "where-used" meta boxes to the Edit Media screen.', 'media-library-assistant' ) . '<br>&nbsp;&nbsp;' .
754
  __( 'You can also use Filters to customize the meta boxes.', 'media-library-assistant' ) .
755
  sprintf( ' %1$s <a href="%2$s">%3$s</a>.', __( 'For complete documentation', 'media-library-assistant' ), admin_url( 'options-general.php?page=' . self::MLA_SETTINGS_SLUG . '-documentation&amp;mla_tab=documentation#mla_edit_meta_boxes' ), __( 'click here', 'media-library-assistant' ) ) ),
756
 
 
 
 
 
 
 
 
 
 
757
  'media_add_new_header' =>
758
  array('tab' => 'general',
759
  'name' => __( 'Media/Add New Enhancements', 'media-library-assistant' ),
@@ -1429,7 +1443,7 @@ class MLACoreOptions {
1429
  'name' => __( 'Add Tax. Columns', 'media-library-assistant' ),
1430
  'type' => 'checkbox',
1431
  'std' => '',
1432
- 'help' => __( 'Check this option to add Term ID and Term-Taxonomy ID columns to the taxonomy edit admin submenu tables.', 'media-library-assistant' )),
1433
 
1434
  /* Here are examples of the other option types
1435
  'textarea' =>
188
  */
189
  const MLA_EDIT_MEDIA_META_BOXES = 'edit_media_meta_boxes';
190
 
191
+ /**
192
+ * Provides a unique name for the Edit Media Attachment File Metadata meta box option
193
+ */
194
+ const MLA_FILE_METADATA_META_BOX = 'edit_media_file_metadata_meta_box';
195
+
196
  /**
197
  * Provides a unique name for the Media/Add New bulk edit option
198
  */
755
  'type' => 'checkbox',
756
  'autoload' => true,
757
  'std' => 'checked',
758
+ 'help' => __( 'Check this option to add "Parent Info", "Menu Order", "Attachment Metadata", "Attachment File Metadata" and four "where-used" meta boxes to the Edit Media screen.', 'media-library-assistant' ) . '<br>&nbsp;&nbsp;' .
759
  __( 'You can also use Filters to customize the meta boxes.', 'media-library-assistant' ) .
760
  sprintf( ' %1$s <a href="%2$s">%3$s</a>.', __( 'For complete documentation', 'media-library-assistant' ), admin_url( 'options-general.php?page=' . self::MLA_SETTINGS_SLUG . '-documentation&amp;mla_tab=documentation#mla_edit_meta_boxes' ), __( 'click here', 'media-library-assistant' ) ) ),
761
 
762
+ self::MLA_FILE_METADATA_META_BOX =>
763
+ array('tab' => 'general',
764
+ 'name' => __( 'Enable File Attachment Metadata meta box', 'media-library-assistant' ),
765
+ 'type' => 'checkbox',
766
+ 'autoload' => true,
767
+ 'std' => 'checked',
768
+ 'help' => __( 'Check this option to enable the "Attachment File Metadata" meta box on the Edit Media screen.', 'media-library-assistant' ) . '<br>&nbsp;&nbsp;' .
769
+ sprintf( ' %1$s <a href="%2$s">%3$s</a>.', __( 'For complete documentation', 'media-library-assistant' ), admin_url( 'options-general.php?page=' . self::MLA_SETTINGS_SLUG . '-documentation&amp;mla_tab=documentation#mla_edit_meta_boxes' ), __( 'click here', 'media-library-assistant' ) ) ),
770
+
771
  'media_add_new_header' =>
772
  array('tab' => 'general',
773
  'name' => __( 'Media/Add New Enhancements', 'media-library-assistant' ),
1443
  'name' => __( 'Add Tax. Columns', 'media-library-assistant' ),
1444
  'type' => 'checkbox',
1445
  'std' => '',
1446
+ 'help' => __( 'Check this option to add Parent, Term ID and Term-Taxonomy ID columns to the taxonomy edit admin submenu tables.', 'media-library-assistant' )),
1447
 
1448
  /* Here are examples of the other option types
1449
  'textarea' =>
includes/class-mla-core.php CHANGED
@@ -21,7 +21,7 @@ class MLACore {
21
  *
22
  * @var string
23
  */
24
- const CURRENT_MLA_VERSION = '2.97';
25
 
26
  /**
27
  * Slug for registering and enqueueing plugin style sheets (moved from class-mla-main.php)
@@ -1181,6 +1181,10 @@ class MLACore {
1181
  $index = 0;
1182
 
1183
  foreach ( $option_values as $key => $value ) {
 
 
 
 
1184
  $slug = 'c_' . $index++; // sanitize_title( $key ); Didn't handle HTML in name, e.g., "R><B"
1185
  //error_log( __LINE__ . " mla_custom_field_support( {$key}, {$slug} ) value = " . var_export( $value, true ), 0 );
1186
 
21
  *
22
  * @var string
23
  */
24
+ const CURRENT_MLA_VERSION = '2.98';
25
 
26
  /**
27
  * Slug for registering and enqueueing plugin style sheets (moved from class-mla-main.php)
1181
  $index = 0;
1182
 
1183
  foreach ( $option_values as $key => $value ) {
1184
+ if ( false === $value['active'] ) {
1185
+ continue;
1186
+ }
1187
+
1188
  $slug = 'c_' . $index++; // sanitize_title( $key ); Didn't handle HTML in name, e.g., "R><B"
1189
  //error_log( __LINE__ . " mla_custom_field_support( {$key}, {$slug} ) value = " . var_export( $value, true ), 0 );
1190
 
includes/class-mla-data-query.php CHANGED
@@ -1180,15 +1180,8 @@ class MLAQuery {
1180
  case '_wp_attachment_image_alt':
1181
  self::$query_parameters[self::MLA_ORDERBY_SUBQUERY] = true;
1182
  self::$query_parameters['orderby_key'] = '_wp_attachment_image_alt';
1183
-
1184
- if ( isset($clean_request['orderby']) ) {
1185
- unset($clean_request['orderby']);
1186
- }
1187
-
1188
- if ( isset($clean_request['order']) ) {
1189
- unset($clean_request['order']);
1190
- }
1191
-
1192
  break;
1193
  case '_wp_attached_file':
1194
  $clean_request['meta_key'] = '_wp_attached_file';
@@ -2128,7 +2121,7 @@ class MLAQuery {
2128
  }
2129
 
2130
  if ( isset( self::$query_parameters['orderby'] ) ) {
2131
- if ( 'c_' == substr( self::$query_parameters['orderby'], 0, 2 ) ) {
2132
  $orderby = self::MLA_ORDERBY_SUBQUERY . '.meta_value';
2133
  } /* custom field sort */ else {
2134
  switch ( self::$query_parameters['orderby'] ) {
@@ -2156,7 +2149,7 @@ class MLAQuery {
2156
  break;
2157
  /*
2158
  * The _wp_attachment_image_alt value is only present for images, so we have to
2159
- * use the view we prepared to get attachments with no meta data value
2160
  */
2161
  case '_wp_attachment_image_alt':
2162
  $orderby = self::MLA_ORDERBY_SUBQUERY . '.meta_value';
1180
  case '_wp_attachment_image_alt':
1181
  self::$query_parameters[self::MLA_ORDERBY_SUBQUERY] = true;
1182
  self::$query_parameters['orderby_key'] = '_wp_attachment_image_alt';
1183
+ unset($clean_request['orderby']);
1184
+ unset($clean_request['order']);
 
 
 
 
 
 
 
1185
  break;
1186
  case '_wp_attached_file':
1187
  $clean_request['meta_key'] = '_wp_attached_file';
2121
  }
2122
 
2123
  if ( isset( self::$query_parameters['orderby'] ) ) {
2124
+ if ( 'c_' === substr( self::$query_parameters['orderby'], 0, 2 ) ) {
2125
  $orderby = self::MLA_ORDERBY_SUBQUERY . '.meta_value';
2126
  } /* custom field sort */ else {
2127
  switch ( self::$query_parameters['orderby'] ) {
2149
  break;
2150
  /*
2151
  * The _wp_attachment_image_alt value is only present for images, so we have to
2152
+ * use the subquery to get attachments with no meta data value
2153
  */
2154
  case '_wp_attachment_image_alt':
2155
  $orderby = self::MLA_ORDERBY_SUBQUERY . '.meta_value';
includes/class-mla-data-references.php CHANGED
@@ -823,9 +823,9 @@ class MLAReferences {
823
  //error_log( __LINE__ . " MLAReferences::_build_mla_galleries( $result_id, $count ) attachments = " . var_export( $attachments, true ), 0 );
824
 
825
  if ( is_string( $attachments ) ) {
826
- //error_log( __LINE__ . " MLAReferences::_build_mla_galleries( $result_id, $index ) query = " . var_export( $galleries_array[ $result_id ]['galleries'][ $instance ]['query'] . ' cache_results=false update_post_meta_cache=false update_post_term_cache=false where_used_query=this-is-a-where-used-query', true ), 0 );
827
  /* translators: 1: post_type, 2: post_title, 3: post ID, 4: query string, 5: error message */
828
- trigger_error( esc_html( sprintf( __( '(%1$s) %2$s (ID %3$d) query "%4$s" failed, returning "%5$s"', 'media-library-assistant' ), $result->post_type, $result->post_title, $result->ID, $galleries_array[ $result_id ]['galleries'][ $instance ]['query'], $attachments) ), E_USER_WARNING );
829
  } elseif ( ! empty( $attachments ) ) {
830
  foreach ( $attachments as $attachment ) {
831
  $galleries_array[ $result_id ]['results'][ $attachment->ID ] = $attachment->ID;
823
  //error_log( __LINE__ . " MLAReferences::_build_mla_galleries( $result_id, $count ) attachments = " . var_export( $attachments, true ), 0 );
824
 
825
  if ( is_string( $attachments ) ) {
826
+ //error_log( __LINE__ . " MLAReferences::_build_mla_galleries( $result_id, $index ) attr = " . var_export( $attr, true ), 0 );
827
  /* translators: 1: post_type, 2: post_title, 3: post ID, 4: query string, 5: error message */
828
+ MLACore::mla_debug_add( __LINE__ . ' MLAReferences::_build_mla_galleries ' . sprintf( __( '(%1$s) %2$s (ID %3$d) query "%4$s" failed, returning "%5$s"', 'media-library-assistant' ), $result->post_type, $result->post_title, $result->ID, var_export( $galleries_array[ $result_id ]['galleries'][ $instance ]['query'], true ), $attachments), MLACore::MLA_DEBUG_CATEGORY_WHERE_USED );
829
  } elseif ( ! empty( $attachments ) ) {
830
  foreach ( $attachments as $attachment ) {
831
  $galleries_array[ $result_id ]['results'][ $attachment->ID ] = $attachment->ID;
includes/class-mla-data.php CHANGED
@@ -878,6 +878,84 @@ class MLAData {
878
  return true;
879
  }
880
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
881
  /**
882
  * Apply field-level format options to field-level content
883
  *
@@ -909,11 +987,11 @@ class MLAData {
909
  }
910
  break;
911
  case 'kbmb':
 
912
  if ( is_numeric( $value ) ) {
913
  $number = (string) $value;
914
- } else {
915
  $index = 0;
916
- $number = '';
917
  while ( $index < strlen( $value ) ) {
918
  if ( ctype_digit( $value[ $index ] ) || ( '.' == $value[ $index ] ) ) {
919
  $number .= $value[ $index ];
@@ -1628,60 +1706,8 @@ class MLAData {
1628
 
1629
  foreach ( $matches[0] as $match ) {
1630
  $key = substr( $match, 2, (strlen( $match ) - 4 ) );
1631
- $result = array( 'prefix' => '', 'value' => '', 'option' => $default_option, 'format' => 'native' );
1632
- $match_count = preg_match( '/\[\+([^,:]+):(.+)\+\]/', $match, $matches );
1633
- if ( 1 == $match_count ) {
1634
- $result['prefix'] = $matches[1];
1635
- $tail = $matches[2];
1636
- } else {
1637
- $tail = $key;
1638
- }
1639
-
1640
- if ( false !== strpos( $tail, ',' ) ) {
1641
- $match_count = preg_match( '/([^,]+)(,(text|single|export|unpack|array|multi|commas|raw|attr|url|kbmb|timestamp|date|fraction|substr|str_replace|match|extract|replace))(\((.*)\)$)*/', $tail, $matches );
1642
- if ( 1 == $match_count ) {
1643
- $result['value'] = $matches[1];
1644
- if ( ! empty( $matches[5] ) ) {
1645
- $args = self::_parse_arguments( $matches[5] );
1646
-
1647
- if ( 1 == count( $args ) ) {
1648
- $args = $args[0];
1649
- }
1650
- } else {
1651
- $args = '';
1652
- }
1653
-
1654
- if ( in_array( $matches[3], array( 'commas', 'raw', 'attr', 'url', 'kbmb', 'timestamp', 'date', 'fraction', 'substr', 'str_replace', 'match', 'extract', 'replace' ) ) ) {
1655
- $result['option'] = 'text';
1656
- $result['format'] = $matches[3];
1657
- $result['args'] = $args;
1658
- } else {
1659
- $result['option'] = $matches[3];
1660
- }
1661
- } else {
1662
- $match_count = preg_match( '/([^,]+),([^(]+)(\(([^)]+)\))*/', $tail, $matches );
1663
- if ( 1 == $match_count ) {
1664
- $result['value'] = $matches[1];
1665
- $result['format'] = $matches[2];
1666
-
1667
- if ( ! empty( $matches[4] ) ) {
1668
- $args = self::_parse_arguments( $matches[4] );
1669
-
1670
- if ( 1 == count( $args ) ) {
1671
- $args = $args[0];
1672
- }
1673
- $result['args'] = $args;
1674
- }
1675
- } else {
1676
- $result['value'] = $tail;
1677
- }
1678
- }
1679
- } else {
1680
- $result['value'] = $tail;
1681
- }
1682
-
1683
- $results[ $key ] = $result;
1684
- } // foreach
1685
 
1686
  return $results;
1687
  }
@@ -2277,35 +2303,37 @@ class MLAData {
2277
  $namespace_arrays = array();
2278
  $metadata_source = '';
2279
  if ( isset( $levels[1] ) && isset( $levels[1]['values'] ) ) {
2280
- if ( isset( $levels[1]['values']['rdf:RDF'] ) && isset( $levels[1]['values']['rdf:RDF']['rdf:Description'] ) ) {
2281
- /*
2282
- * XMP parsing
2283
- * NOTE: The string "XAP" or "xap" appears in some namespaces, keywords,
2284
- * and related names in stored XMP data. It reflects an early internal
2285
- * code name for XMP; the names have been preserved for compatibility purposes.
2286
- */
2287
- $metadata_source = 'xmp';
2288
- foreach ( $levels[1]['values']['rdf:RDF']['rdf:Description'] as $key => $value ) {
2289
- if ( is_string( $value ) ) {
2290
- $value = self::_parse_iso8601_date( self::mla_parse_pdf_date( $value ) );
2291
- } elseif ( is_array( $value ) ) {
2292
- $value = self::_parse_xmp_array( $value );
2293
- }
2294
-
2295
- if ( false !== ($colon = strpos( $key, ':' ) ) ) {
2296
- $array_name = substr( $key, 0, $colon );
2297
- $array_index = substr( $key, $colon + 1 );
2298
- $namespace_arrays[ $array_name ][ $array_index ] = $value;
2299
-
2300
- if ( ! isset( $results[ $array_index ] ) && in_array( $array_name, array( 'xmp', 'xmpMM', 'xmpRights', 'xap', 'xapMM', 'dc', 'pdf', 'pdfx', 'mwg-rs' ) ) ) {
2301
- if ( is_array( $value ) && 1 == count( $value ) && isset( $value[0] ) ) {
2302
- $results[ $array_index ] = $value[0];
2303
- } else {
2304
- $results[ $array_index ] = $value;
2305
- }
2306
  }
2307
- } // found namespace
2308
- } // foreach Description
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2309
  } else {
2310
  /*
2311
  * Microsoft Office parsing
@@ -3404,7 +3432,7 @@ class MLAData {
3404
  static $id3 = NULL;
3405
 
3406
  if ( 0 != $post_id ) {
3407
- $path = get_attached_file($post_id);
3408
  }
3409
 
3410
  if ( ! empty( $path ) ) {
@@ -3485,14 +3513,77 @@ class MLAData {
3485
  }
3486
 
3487
  /**
3488
- * Fetch and filter IPTC and EXIF, XMP or PDF metadata for an image attachment
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3489
  *
3490
  * @since 0.90
3491
  *
3492
  * @param int post ID of attachment
3493
  * @param string optional; if $post_id is zero, path to the image file.
3494
  *
3495
- * @return array Meta data variables, IPTC and EXIF or PDF
3496
  */
3497
  public static function mla_fetch_attachment_image_metadata( $post_id, $path = '' ) {
3498
  $results = array(
@@ -3531,7 +3622,7 @@ class MLAData {
3531
  $pdf_metadata = MLAPDF::mla_extract_pdf_metadata( $path );
3532
  $results['mla_xmp_metadata'] = $pdf_metadata['xmp'];
3533
  $results['mla_pdf_metadata'] = $pdf_metadata['pdf'];
3534
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata results = ' . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3535
  return $results;
3536
  }
3537
 
@@ -3543,18 +3634,13 @@ class MLAData {
3543
 
3544
  $mso_metadata = MLAOffice::mla_extract_office_metadata( $path );
3545
  $results['mla_mso_metadata'] = $mso_metadata['mso'];
3546
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata results = ' . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3547
  return $results;
3548
  }
3549
 
3550
  $size = getimagesize( $path, $info );
3551
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize returns ' . var_export( $size, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3552
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata getimagesize info keys = ' . var_export( array_keys( $info ), true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3553
-
3554
- /*/ SVG and some other types don't have metadata: removed v2.90
3555
- if ( false === $size ) {
3556
- return $results;
3557
- } // */
3558
 
3559
  if ( is_callable( 'iptcparse' ) ) {
3560
  if ( ! empty( $info['APP13'] ) ) {
@@ -3571,7 +3657,7 @@ class MLAData {
3571
  }
3572
  restore_error_handler();
3573
 
3574
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata iptc_values = ' . var_export( $iptc_values, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3575
 
3576
  if ( ! empty( $exception ) ) {
3577
  MLAData::$mla_IPTC_EXIF_errors[] = sprintf( '(%1$s) %2$s', $exception->getCode(), $exception->getMessage() );
@@ -3615,7 +3701,7 @@ class MLAData {
3615
  }
3616
  restore_error_handler();
3617
 
3618
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata (PHP ' . phpversion() . ') exif_data = ' . var_export( $exif_data, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3619
 
3620
  if ( ! empty( $exception ) ) {
3621
  MLAData::$mla_IPTC_EXIF_errors[] = sprintf( '(%1$s) %2$s', $exception->getCode(), $exception->getMessage() );
@@ -3973,7 +4059,8 @@ class MLAData {
3973
  $results['mla_exif_metadata']['GPS'] = $new_data;
3974
  }
3975
 
3976
- MLACore::mla_debug_add( __LINE__ . ' mla_fetch_attachment_image_metadata results = ' . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
 
3977
  return $results;
3978
  }
3979
 
878
  return true;
879
  }
880
 
881
+ /**
882
+ * Parse a field-level substitution parameter (not a template) into its component parts
883
+ *
884
+ * @since 2.98
885
+ *
886
+ * @param string Field-level parameter, with or without enclosing '[+' and '+]'
887
+ * @param string Default format/option value
888
+ *
889
+ * @return array Parameter components: prefix, value, qualifier, option, format, args
890
+ */
891
+ public static function mla_parse_substitution_parameter( $parameter, $default_option = 'text' ) {
892
+ // Strip optional enclosing delimiters
893
+ if ( 0 === strpos( $parameter, '[+' ) ) {
894
+ $parameter = substr( $parameter, 2, (strlen( $parameter ) - 4 ) );
895
+ }
896
+
897
+ $result = array( 'prefix' => '', 'value' => '', 'qualifier' => '', 'option' => $default_option, 'format' => 'native', 'args' => '' );
898
+ $match_count = preg_match( '/([^,:]+):(.+)/', $parameter, $matches );
899
+ if ( 1 == $match_count ) {
900
+ $result['prefix'] = $matches[1];
901
+ $tail = $matches[2];
902
+ } else {
903
+ $tail = $parameter;
904
+ }
905
+
906
+ if ( false !== strpos( $tail, ',' ) ) {
907
+ $match_count = preg_match( '/([^,]+)(,(text|single|export|unpack|array|multi|commas|raw|attr|url|kbmb|timestamp|date|fraction|substr|str_replace|match|extract|replace))(\((.*)\)$)*/', $tail, $matches );
908
+ if ( 1 == $match_count ) {
909
+ $result['value'] = $matches[1];
910
+ if ( ! empty( $matches[5] ) ) {
911
+ $args = self::_parse_arguments( $matches[5] );
912
+
913
+ if ( 1 == count( $args ) ) {
914
+ $args = $args[0];
915
+ }
916
+ } else {
917
+ $args = '';
918
+ }
919
+
920
+ if ( in_array( $matches[3], array( 'commas', 'raw', 'attr', 'url', 'kbmb', 'timestamp', 'date', 'fraction', 'substr', 'str_replace', 'match', 'extract', 'replace' ) ) ) {
921
+ $result['option'] = 'text';
922
+ $result['format'] = $matches[3];
923
+ $result['args'] = $args;
924
+ } else {
925
+ $result['option'] = $matches[3];
926
+ }
927
+ } else {
928
+ $match_count = preg_match( '/([^,]+),([^(]+)(\(([^)]+)\))*/', $tail, $matches );
929
+ if ( 1 == $match_count ) {
930
+ $result['value'] = $matches[1];
931
+ $result['format'] = $matches[2];
932
+
933
+ if ( ! empty( $matches[4] ) ) {
934
+ $args = self::_parse_arguments( $matches[4] );
935
+
936
+ if ( 1 == count( $args ) ) {
937
+ $args = $args[0];
938
+ }
939
+ $result['args'] = $args;
940
+ }
941
+ } else {
942
+ $result['value'] = $tail;
943
+ }
944
+ }
945
+ } else {
946
+ $result['value'] = $tail;
947
+ }
948
+
949
+ // Look for field/value qualifier
950
+ $match_count = preg_match( '/^(.+)\((.+)\)/', $result['value'], $matches );
951
+ if ( $match_count ) {
952
+ $result['value'] = $matches[1];
953
+ $result['qualifier'] = $matches[2];
954
+ }
955
+
956
+ return $result;
957
+ }
958
+
959
  /**
960
  * Apply field-level format options to field-level content
961
  *
987
  }
988
  break;
989
  case 'kbmb':
990
+ $number = '';
991
  if ( is_numeric( $value ) ) {
992
  $number = (string) $value;
993
+ } elseif ( is_string( $value ) ) {
994
  $index = 0;
 
995
  while ( $index < strlen( $value ) ) {
996
  if ( ctype_digit( $value[ $index ] ) || ( '.' == $value[ $index ] ) ) {
997
  $number .= $value[ $index ];
1706
 
1707
  foreach ( $matches[0] as $match ) {
1708
  $key = substr( $match, 2, (strlen( $match ) - 4 ) );
1709
+ $results[ $key ] = self::mla_parse_substitution_parameter( $key, $default_option );
1710
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1711
 
1712
  return $results;
1713
  }
2303
  $namespace_arrays = array();
2304
  $metadata_source = '';
2305
  if ( isset( $levels[1] ) && isset( $levels[1]['values'] ) ) {
2306
+ if ( isset( $levels[1]['values']['rdf:RDF'] ) && !empty( $levels[1]['values']['rdf:RDF']['rdf:Description'] ) ) {
2307
+ if ( is_array( $levels[1]['values']['rdf:RDF']['rdf:Description'] ) ) {
2308
+ /*
2309
+ * XMP parsing
2310
+ * NOTE: The string "XAP" or "xap" appears in some namespaces, keywords,
2311
+ * and related names in stored XMP data. It reflects an early internal
2312
+ * code name for XMP; the names have been preserved for compatibility purposes.
2313
+ */
2314
+ $metadata_source = 'xmp';
2315
+ foreach ( $levels[1]['values']['rdf:RDF']['rdf:Description'] as $key => $value ) {
2316
+ if ( is_string( $value ) ) {
2317
+ $value = self::_parse_iso8601_date( self::mla_parse_pdf_date( $value ) );
2318
+ } elseif ( is_array( $value ) ) {
2319
+ $value = self::_parse_xmp_array( $value );
 
 
 
 
 
 
 
 
 
 
 
 
2320
  }
2321
+
2322
+ if ( false !== ($colon = strpos( $key, ':' ) ) ) {
2323
+ $array_name = substr( $key, 0, $colon );
2324
+ $array_index = substr( $key, $colon + 1 );
2325
+ $namespace_arrays[ $array_name ][ $array_index ] = $value;
2326
+
2327
+ if ( ! isset( $results[ $array_index ] ) && in_array( $array_name, array( 'xmp', 'xmpMM', 'xmpRights', 'xap', 'xapMM', 'dc', 'pdf', 'pdfx', 'mwg-rs' ) ) ) {
2328
+ if ( is_array( $value ) && 1 == count( $value ) && isset( $value[0] ) ) {
2329
+ $results[ $array_index ] = $value[0];
2330
+ } else {
2331
+ $results[ $array_index ] = $value;
2332
+ }
2333
+ }
2334
+ } // found namespace
2335
+ } // foreach Description
2336
+ } // is_array
2337
  } else {
2338
  /*
2339
  * Microsoft Office parsing
3432
  static $id3 = NULL;
3433
 
3434
  if ( 0 != $post_id ) {
3435
+ $path = get_attached_file( $post_id );
3436
  }
3437
 
3438
  if ( ! empty( $path ) ) {
3513
  }
3514
 
3515
  /**
3516
+ * Format and return IPTC and EXIF, XMP or PDF metadata,
3517
+ * in substitution parameter syntax with prefixes.
3518
+ *
3519
+ * @since 2.98
3520
+ *
3521
+ * @param array $value Array of metadata elements
3522
+ * @param string $prefix Element ancestor(s)
3523
+ * @param string $separator Optional. Delimiter between prefix and element name
3524
+ *
3525
+ * @return string Metadata text representation in "var_export" format
3526
+ */
3527
+ private static function _compose_metadata_array( $value, $prefix, $separator = '.' ) {
3528
+ $text = '';
3529
+ foreach ( $value as $key => $element ) {
3530
+ if ( is_array( $element ) && ( 1 === count( $element ) ) && isset( $element[0] ) ) {
3531
+ $element = $element[0];
3532
+ }
3533
+
3534
+ if ( is_scalar( $element ) ) {
3535
+ $text .= $prefix . $separator . $key . ' => ' . (string) $element . "\r\n";
3536
+ } elseif ( is_array( $element ) ) {
3537
+ $text .= self::_compose_metadata_array( $element, $prefix . $separator . $key );
3538
+ }
3539
+ }
3540
+
3541
+ return $text;
3542
+ }
3543
+
3544
+ /**
3545
+ * Format and return IPTC and EXIF, XMP or PDF metadata,
3546
+ * in substitution parameter syntax with prefixes.
3547
+ *
3548
+ * @since 2.98
3549
+ *
3550
+ * @param int post ID of attachment
3551
+ * @param string optional; if $post_id is zero, path to the image file.
3552
+ *
3553
+ * @return string Text representation of the IPTC, EXIF, XMP, PDF and/or MSO metadata
3554
+ */
3555
+ public static function mla_compose_attachment_metadata( $post_id, $path = '' ) {
3556
+ $metadata = self::mla_fetch_attachment_image_metadata( $post_id, $path );
3557
+
3558
+ $text = '';
3559
+ foreach ( $metadata as $key => $value ) {
3560
+ $match_count = preg_match( '/mla_(.+)_metadata/', $key, $matches );
3561
+ if ( $match_count ) {
3562
+ $text .= self::_compose_metadata_array( $value, $matches[1], ':' );
3563
+ } elseif ( is_scalar( $value ) ) {
3564
+ $text .= $key . ' => ' . (string) $value . "\r\n";
3565
+ } elseif ( is_array( $value ) ) {
3566
+ $text .= self::_compose_metadata_array( $value, $key );
3567
+ }
3568
+ }
3569
+
3570
+ $id3_metadata = self::mla_fetch_attachment_id3_metadata( $post_id );
3571
+ if ( !empty( $id3_metadata ) && !isset( $id3_metadata['error'] ) ) {
3572
+ $text .= self::_compose_metadata_array( $id3_metadata, 'id3', ':' );
3573
+ }
3574
+
3575
+ return $text; // var_export( $metadata, true );
3576
+ }
3577
+
3578
+ /**
3579
+ * Fetch and filter IPTC, EXIF, XMP, PDF and/or MSO metadata for an attachment
3580
  *
3581
  * @since 0.90
3582
  *
3583
  * @param int post ID of attachment
3584
  * @param string optional; if $post_id is zero, path to the image file.
3585
  *
3586
+ * @return array Meta data variables, IPTC, EXIF, XMP, PDF and/or MSO
3587
  */
3588
  public static function mla_fetch_attachment_image_metadata( $post_id, $path = '' ) {
3589
  $results = array(
3622
  $pdf_metadata = MLAPDF::mla_extract_pdf_metadata( $path );
3623
  $results['mla_xmp_metadata'] = $pdf_metadata['xmp'];
3624
  $results['mla_pdf_metadata'] = $pdf_metadata['pdf'];
3625
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_fetch_attachment_image_metadata( {$post_id}, {$path} ) results = " . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3626
  return $results;
3627
  }
3628
 
3634
 
3635
  $mso_metadata = MLAOffice::mla_extract_office_metadata( $path );
3636
  $results['mla_mso_metadata'] = $mso_metadata['mso'];
3637
+ MLACore::mla_debug_add( __LINE__ . " MLAData::mla_fetch_attachment_image_metadata( {$post_id}, {$path} ) results = " . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3638
  return $results;
3639
  }
3640
 
3641
  $size = getimagesize( $path, $info );
3642
+ MLACore::mla_debug_add( __LINE__ . ' MLAData::mla_fetch_attachment_image_metadata getimagesize returns ' . var_export( $size, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3643
+ MLACore::mla_debug_add( __LINE__ . ' MLAData::mla_fetch_attachment_image_metadata getimagesize info keys = ' . var_export( array_keys( $info ), true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
 
 
 
 
 
3644
 
3645
  if ( is_callable( 'iptcparse' ) ) {
3646
  if ( ! empty( $info['APP13'] ) ) {
3657
  }
3658
  restore_error_handler();
3659
 
3660
+ // MLACore::mla_debug_add( __LINE__ . ' MLAData::mla_fetch_attachment_image_metadata iptc_values = ' . var_export( $iptc_values, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3661
 
3662
  if ( ! empty( $exception ) ) {
3663
  MLAData::$mla_IPTC_EXIF_errors[] = sprintf( '(%1$s) %2$s', $exception->getCode(), $exception->getMessage() );
3701
  }
3702
  restore_error_handler();
3703
 
3704
+ // MLACore::mla_debug_add( __LINE__ . ' MLAData::mla_fetch_attachment_image_metadata (PHP ' . phpversion() . ') exif_data = ' . var_export( $exif_data, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
3705
 
3706
  if ( ! empty( $exception ) ) {
3707
  MLAData::$mla_IPTC_EXIF_errors[] = sprintf( '(%1$s) %2$s', $exception->getCode(), $exception->getMessage() );
4059
  $results['mla_exif_metadata']['GPS'] = $new_data;
4060
  }
4061
 
4062
+ MLACore::mla_debug_add( __LINE__ . ' MLAData::mla_fetch_attachment_image_metadata( PHP ' . phpversion() . ", {$post_id}, {$path} ) results = " . var_export( $results, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
4063
+
4064
  return $results;
4065
  }
4066
 
includes/class-mla-edit-media.php CHANGED
@@ -879,7 +879,7 @@ class MLAEdit {
879
 
880
  if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_EDIT_MEDIA_META_BOXES ) ) {
881
  $active_boxes = apply_filters( 'mla_edit_media_meta_boxes', array(
882
- 'mla-parent-info' => 'mla-parent-info', 'mla-menu-order' => 'mla-menu-order', 'mla-image-metadata' => 'mla-image-metadata', 'mla-featured-in' => 'mla-featured-in', 'mla-inserted-in' => 'mla-inserted-in', 'mla-gallery-in' => 'mla-gallery-in', 'mla-mla-gallery-in' => 'mla-mla-gallery-in' ) );
883
 
884
  if ( isset( $active_boxes['mla-parent-info'] ) ) {
885
  add_meta_box( 'mla-parent-info', __( 'Parent Info', 'media-library-assistant' ), 'MLAEdit::mla_parent_info_handler', 'attachment', 'normal', 'core' );
@@ -896,6 +896,12 @@ class MLAEdit {
896
  }
897
  }
898
 
 
 
 
 
 
 
899
  if ( isset( $active_boxes['mla-featured-in'] ) && MLACore::$process_featured_in ) {
900
  add_meta_box( 'mla-featured-in', __( 'Featured in', 'media-library-assistant' ), 'MLAEdit::mla_featured_in_handler', 'attachment', 'normal', 'core' );
901
  }
@@ -1119,6 +1125,25 @@ class MLAEdit {
1119
  echo apply_filters( 'mla_image_metadata_meta_box_html', $html, $value, $metadata, $post ); // phpcs:ignore
1120
  }
1121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1122
  /**
1123
  * Renders the Featured in meta box on the Edit Media page.
1124
  * Declared public because it is a callback function.
879
 
880
  if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_EDIT_MEDIA_META_BOXES ) ) {
881
  $active_boxes = apply_filters( 'mla_edit_media_meta_boxes', array(
882
+ 'mla-parent-info' => 'mla-parent-info', 'mla-menu-order' => 'mla-menu-order', 'mla-image-metadata' => 'mla-image-metadata', 'mla-file-metadata' => 'mla-file-metadata', 'mla-featured-in' => 'mla-featured-in', 'mla-inserted-in' => 'mla-inserted-in', 'mla-gallery-in' => 'mla-gallery-in', 'mla-mla-gallery-in' => 'mla-mla-gallery-in' ) );
883
 
884
  if ( isset( $active_boxes['mla-parent-info'] ) ) {
885
  add_meta_box( 'mla-parent-info', __( 'Parent Info', 'media-library-assistant' ), 'MLAEdit::mla_parent_info_handler', 'attachment', 'normal', 'core' );
896
  }
897
  }
898
 
899
+ if ( 'checked' == MLACore::mla_get_option( MLACoreOptions::MLA_FILE_METADATA_META_BOX ) ) {
900
+ if ( isset( $active_boxes['mla-file-metadata'] ) ) {
901
+ add_meta_box( 'mla-file-metadata', __( 'Attachment File Metadata', 'media-library-assistant' ), 'MLAEdit::mla_file_metadata_handler', 'attachment', 'normal', 'core' );
902
+ }
903
+ }
904
+
905
  if ( isset( $active_boxes['mla-featured-in'] ) && MLACore::$process_featured_in ) {
906
  add_meta_box( 'mla-featured-in', __( 'Featured in', 'media-library-assistant' ), 'MLAEdit::mla_featured_in_handler', 'attachment', 'normal', 'core' );
907
  }
1125
  echo apply_filters( 'mla_image_metadata_meta_box_html', $html, $value, $metadata, $post ); // phpcs:ignore
1126
  }
1127
 
1128
+ /**
1129
+ * Renders the IPTC, EXIF, XMP, PDF and/or MSO Metadata meta box on the Edit Media page.
1130
+ * Declared public because it is a callback function.
1131
+ *
1132
+ * @since 0.80
1133
+ *
1134
+ * @param object current post
1135
+ *
1136
+ * @return void echoes the HTML markup for the meta box content
1137
+ */
1138
+ public static function mla_file_metadata_handler( $post ) {
1139
+ $value = MLAData::mla_compose_attachment_metadata( $post->ID );
1140
+
1141
+ $value = apply_filters( 'mla_file_metadata_meta_box', array( 'value' => $value, 'rows' => 5, 'cols' => 80 ), $post );
1142
+
1143
+ $html = '<label class="screen-reader-text" for="mla_file_metadata">' . __( 'Attachment File Metadata', 'media-library-assistant' ) . '</label><textarea class="readonly" id="mla_file_metadata" rows="' . absint( $value['rows'] ) . '" cols="' . absint( $value['cols'] ) . '" readonly="readonly" name="mla_file_metadata" >' . esc_textarea( $value['value'] ) . "</textarea>\n";
1144
+ echo apply_filters( 'mla_file_metadata_meta_box_html', $html, $value, $post ); // phpcs:ignore
1145
+ }
1146
+
1147
  /**
1148
  * Renders the Featured in meta box on the Edit Media page.
1149
  * Declared public because it is a callback function.
includes/class-mla-main.php CHANGED
@@ -20,7 +20,7 @@ if ( !function_exists( 'post_categories_meta_box' ) ) {
20
  */
21
  class MLA {
22
  /**
23
- * Current date for Development Version, empty for production versions
24
  *
25
  * @since 2.10
26
  *
@@ -1898,7 +1898,11 @@ class MLA {
1898
  $custom_fields = array();
1899
  foreach ( MLACore::mla_custom_field_support( 'quick_edit' ) as $slug => $details ) {
1900
  if ( isset( $_REQUEST[ $slug ] ) ) {
1901
- $value = trim( wp_kses( wp_unslash( $_REQUEST[ $slug ] ), 'post' ) );
 
 
 
 
1902
  unset ( $_REQUEST[ $slug ] );
1903
 
1904
  // '(Array)' indicates an existing array value in the field, which we preserve
20
  */
21
  class MLA {
22
  /**
23
+ * Current date for Development Versions, empty for production versions
24
  *
25
  * @since 2.10
26
  *
1898
  $custom_fields = array();
1899
  foreach ( MLACore::mla_custom_field_support( 'quick_edit' ) as $slug => $details ) {
1900
  if ( isset( $_REQUEST[ $slug ] ) ) {
1901
+ if ( current_user_can( 'unfiltered_html' ) ) {
1902
+ $value = trim( wp_unslash( $_REQUEST[ $slug ] ) ); // phpcs:ignore
1903
+ } else {
1904
+ $value = trim( wp_kses( wp_unslash( $_REQUEST[ $slug ] ), 'post' ) );
1905
+ }
1906
  unset ( $_REQUEST[ $slug ] );
1907
 
1908
  // '(Array)' indicates an existing array value in the field, which we preserve
includes/class-mla-objects.php CHANGED
@@ -155,6 +155,7 @@ class MLAObjects {
155
  $columns[ 'attachments' ] = __( 'Attachments', 'media-library-assistant' );
156
 
157
  if ( 'checked' === MLACore::mla_get_option( MLACoreOptions::MLA_DEBUG_ADD_TAXONOMY_COLUMNS ) ) {
 
158
  $columns[ 'termid' ] = __( 'Term ID', 'media-library-assistant' );
159
  $columns[ 'ttid' ] = __( 'Term-Tax ID', 'media-library-assistant' );
160
  }
@@ -195,28 +196,26 @@ class MLAObjects {
195
  return $filter_content;
196
  }
197
 
198
- $term = get_term( $term_id, $taxonomy );
199
-
200
- if ( 'termid' === $column_name ) {
201
- return (string) $term_id;
202
- }
203
-
204
- if ( 'ttid' === $column_name ) {
205
- if ( isset( $terms[ $term_id ] ) ) {
206
- $term = $terms[ $term_id ];
207
- } else {
208
- $term = get_term( $term_id, $taxonomy );
209
- }
210
-
211
- return (string) $term->term_taxonomy_id;
212
  }
213
-
214
 
215
- if ( 'attachments' !== $column_name ) {
216
- return $current_value;
 
 
217
  }
218
 
219
- // Do setup tasks once per page load
 
 
 
 
 
 
 
 
 
220
  if ( NULL == $tax_object ) {
221
  // Adding or inline-editing a tag is done with AJAX, and there's no current screen object
222
  if ( defined('DOING_AJAX') && DOING_AJAX ) {
@@ -240,7 +239,7 @@ class MLAObjects {
240
 
241
  $cloud = MLAShortcodes::mla_get_terms( array(
242
  'taxonomy' => $taxonomy,
243
- 'fields' => 't.term_id, tt.term_taxonomy_id, t.name, t.slug, COUNT(p.ID) AS `count`',
244
  'number' => 0,
245
  'no_orderby' => true
246
  ) );
155
  $columns[ 'attachments' ] = __( 'Attachments', 'media-library-assistant' );
156
 
157
  if ( 'checked' === MLACore::mla_get_option( MLACoreOptions::MLA_DEBUG_ADD_TAXONOMY_COLUMNS ) ) {
158
+ $columns[ 'parent' ] = __( 'Parent', 'media-library-assistant' );
159
  $columns[ 'termid' ] = __( 'Term ID', 'media-library-assistant' );
160
  $columns[ 'ttid' ] = __( 'Term-Tax ID', 'media-library-assistant' );
161
  }
196
  return $filter_content;
197
  }
198
 
199
+ if ( !in_array( $column_name, array( 'attachments', 'parent', 'termid', 'ttid' ) ) ) {
200
+ return $current_value;
 
 
 
 
 
 
 
 
 
 
 
 
201
  }
 
202
 
203
+ if ( isset( $terms[ $term_id ] ) ) {
204
+ $term = $terms[ $term_id ];
205
+ } else {
206
+ $term = $terms[ $term_id ] = get_term( $term_id, $taxonomy );
207
  }
208
 
209
+ switch ( $column_name ) {
210
+ case 'parent':
211
+ return (string) $term->parent;
212
+ case 'termid':
213
+ return (string) $term_id;
214
+ case 'ttid':
215
+ return (string) $term->term_taxonomy_id;
216
+ }
217
+
218
+ // Do "attachments" setup tasks once per page load
219
  if ( NULL == $tax_object ) {
220
  // Adding or inline-editing a tag is done with AJAX, and there's no current screen object
221
  if ( defined('DOING_AJAX') && DOING_AJAX ) {
239
 
240
  $cloud = MLAShortcodes::mla_get_terms( array(
241
  'taxonomy' => $taxonomy,
242
+ 'fields' => 't.term_id, tt.term_taxonomy_id, t.name, t.slug, tt.parent, COUNT(p.ID) AS `count`',
243
  'number' => 0,
244
  'no_orderby' => true
245
  ) );
includes/class-mla-options.php CHANGED
@@ -1419,6 +1419,8 @@ class MLAOptions {
1419
  * @return array Updates suitable for MLAData::mla_update_single_item, if any
1420
  */
1421
  public static function mla_evaluate_iptc_exif_mapping( $post, $category, $settings = NULL, $attachment_metadata = NULL, $is_upload = false ) {
 
 
1422
  if ( 'checked' != MLACore::mla_get_option( MLACoreOptions::MLA_ALLOW_IPTC_EXIF_MAPPING ) ) {
1423
  return array();
1424
  }
@@ -1444,7 +1446,10 @@ class MLAOptions {
1444
 
1445
  $settings = apply_filters( 'mla_mapping_settings', $settings, $post->ID, $category, $attachment_metadata );
1446
 
1447
- MLACore::mla_debug_add( __LINE__ . " MLAOptions::mla_evaluate_iptc_exif_mapping( {$post->ID}, {$category}, {$data_source_category} ) \$settings = " . var_export( $settings, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
 
 
 
1448
 
1449
  if ( $update_all || ( 'iptc_exif_standard_mapping' == $category ) ) {
1450
  foreach ( $settings['standard'] as $setting_key => $setting_value ) {
1419
  * @return array Updates suitable for MLAData::mla_update_single_item, if any
1420
  */
1421
  public static function mla_evaluate_iptc_exif_mapping( $post, $category, $settings = NULL, $attachment_metadata = NULL, $is_upload = false ) {
1422
+ static $log_settings = true;
1423
+
1424
  if ( 'checked' != MLACore::mla_get_option( MLACoreOptions::MLA_ALLOW_IPTC_EXIF_MAPPING ) ) {
1425
  return array();
1426
  }
1446
 
1447
  $settings = apply_filters( 'mla_mapping_settings', $settings, $post->ID, $category, $attachment_metadata );
1448
 
1449
+ if ( $log_settings ) {
1450
+ MLACore::mla_debug_add( __LINE__ . " MLAOptions::mla_evaluate_iptc_exif_mapping( {$post->ID}, {$category}, {$data_source_category} ) \$settings = " . var_export( $settings, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
1451
+ $log_settings = false; // once per page load
1452
+ }
1453
 
1454
  if ( $update_all || ( 'iptc_exif_standard_mapping' == $category ) ) {
1455
  foreach ( $settings['standard'] as $setting_key => $setting_value ) {
includes/class-mla-settings-iptc-exif-tab.php CHANGED
@@ -49,6 +49,29 @@ class MLASettings_IPTCEXIF {
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' ),
@@ -72,8 +95,9 @@ class MLASettings_IPTCEXIF {
72
  'screen' => 'settings_page_mla-settings-menu-iptc_exif',
73
  'ajax_action' => MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
74
  'fieldsId' => '#mla-display-settings-iptc-exif-tab',
75
- 'totalItems' => $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->posts} WHERE `post_type` = 'attachment' AND ( `post_mime_type` LIKE 'image/%' OR `post_mime_type` LIKE 'application/%pdf%' )" )
76
  );
 
77
 
78
  wp_enqueue_script( MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
79
  MLA_PLUGIN_URL . "js/mla-inline-mapping-scripts{$suffix}.js",
@@ -176,13 +200,21 @@ class MLASettings_IPTCEXIF {
176
  );
177
  }
178
 
179
- $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
 
 
 
 
 
 
 
180
 
181
  if ( $length > 0 ) {
182
  $query['numberposts'] = $length;
183
  $query['offset'] = $offset;
184
  }
185
 
 
186
  do_action( 'mla_begin_mapping', $source, NULL );
187
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
188
 
@@ -974,7 +1006,7 @@ class MLASettings_IPTCEXIF {
974
  * @return void echo json response object, then die()
975
  */
976
  public static function mla_inline_mapping_iptc_exif_action() {
977
- MLACore::mla_debug_add( 'MLASettings_IPTCEXIF::mla_inline_mapping_custom_action $_REQUEST = ' . var_export( $_REQUEST, true ), MLACore::MLA_DEBUG_CATEGORY_AJAX );
978
  if ( isset( $_REQUEST['screen'] ) ) {
979
  set_current_screen( sanitize_text_field( wp_unslash( $_REQUEST['screen'] ) ) );
980
  }
@@ -1038,7 +1070,7 @@ class MLASettings_IPTCEXIF {
1038
  'refresh' => isset( $page_content['refresh'] ) && true == $page_content['refresh'],
1039
  );
1040
 
1041
- MLACore::mla_debug_add( 'MLASettings::mla_inline_mapping_custom_action $chunk_results = ' . var_export( $chunk_results, true ), MLACore::MLA_DEBUG_CATEGORY_AJAX );
1042
  wp_send_json_success( $chunk_results );
1043
  } // mla_inline_mapping_iptc_exif_action
1044
 
49
  $use_spinner_class = version_compare( get_bloginfo( 'version' ), '4.2', '>=' );
50
  $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
51
 
52
+ // Compute totalItems that will match the mapping query
53
+ $query = array (
54
+ 'orderby' => 'none',
55
+ 'post_parent' => 'all',
56
+ 'post_mime_type' => 'image,application/*pdf*',
57
+ 'cache_results' => false,
58
+ 'update_post_meta_cache' => false,
59
+ 'update_post_term_cache' => false,
60
+ 'post_type' => 'attachment',
61
+ 'post_status' => 'inherit',
62
+ 'posts_per_page' => 1,
63
+ 'fields' => 'ids',
64
+ );
65
+
66
+ $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query, true );
67
+ MLACore::mla_debug_add( __LINE__ . " MLASettings_IPTCEXIF::mla_admin_enqueue_scripts \$posts = " . var_export( $posts, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
68
+
69
+ if ( isset( $posts['found_rows'] ) ) {
70
+ $total_items = $posts['found_rows'];
71
+ } else {
72
+ $total_items = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->posts} WHERE `post_type` = 'attachment' AND `post_status` = 'inherit' AND ( `post_mime_type` LIKE 'image/%' OR `post_mime_type` LIKE 'application/%pdf%' )" );
73
+ }
74
+
75
  // Initialize variables for mapping scripts
76
  $script_variables = array(
77
  'error' => __( 'Error while making the changes.', 'media-library-assistant' ),
95
  'screen' => 'settings_page_mla-settings-menu-iptc_exif',
96
  'ajax_action' => MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
97
  'fieldsId' => '#mla-display-settings-iptc-exif-tab',
98
+ 'totalItems' => $total_items,
99
  );
100
+ MLACore::mla_debug_add( __LINE__ . " MLASettings_IPTCEXIF::mla_admin_enqueue_scripts \$script_variables = " . var_export( $script_variables, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
101
 
102
  wp_enqueue_script( MLASettings::JAVASCRIPT_INLINE_MAPPING_IPTC_EXIF_SLUG,
103
  MLA_PLUGIN_URL . "js/mla-inline-mapping-scripts{$suffix}.js",
200
  );
201
  }
202
 
203
+ $query = array(
204
+ 'orderby' => 'none',
205
+ 'post_parent' => 'all',
206
+ 'post_mime_type' => 'image,application/*pdf*',
207
+ 'cache_results' => false,
208
+ 'update_post_meta_cache' => false,
209
+ 'update_post_term_cache' => false,
210
+ );
211
 
212
  if ( $length > 0 ) {
213
  $query['numberposts'] = $length;
214
  $query['offset'] = $offset;
215
  }
216
 
217
+ MLACore::mla_debug_add( __LINE__ . " MLASettings_IPTCEXIF::_process_iptc_exif_mapping \$query = " . var_export( $query, true ), MLACore::MLA_DEBUG_CATEGORY_METADATA );
218
  do_action( 'mla_begin_mapping', $source, NULL );
219
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
220
 
1006
  * @return void echo json response object, then die()
1007
  */
1008
  public static function mla_inline_mapping_iptc_exif_action() {
1009
+ // MLACore::mla_debug_add( __LINE__ . ' MLASettings_IPTCEXIF::mla_inline_mapping_custom_action $_REQUEST = ' . var_export( $_REQUEST, true ), MLACore::MLA_DEBUG_CATEGORY_AJAX );
1010
  if ( isset( $_REQUEST['screen'] ) ) {
1011
  set_current_screen( sanitize_text_field( wp_unslash( $_REQUEST['screen'] ) ) );
1012
  }
1070
  'refresh' => isset( $page_content['refresh'] ) && true == $page_content['refresh'],
1071
  );
1072
 
1073
+ MLACore::mla_debug_add( __LINE__ . ' MLASettings::mla_inline_mapping_custom_action $chunk_results = ' . var_export( $chunk_results, true ), MLACore::MLA_DEBUG_CATEGORY_AJAX );
1074
  wp_send_json_success( $chunk_results );
1075
  } // mla_inline_mapping_iptc_exif_action
1076
 
includes/class-mla-shortcode-support.php CHANGED
@@ -212,11 +212,11 @@ class MLAShortcode_Support {
212
  if ( $src = wp_mime_type_icon( $attachment_id ) ) {
213
  /** This filter is documented in wp-includes/post.php */
214
  $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );
215
-
216
  $src_file = $icon_dir . '/' . wp_basename( $src );
217
  @list( $width, $height ) = getimagesize( $src_file );
218
  }
219
-
220
  if ( $src && $width && $height ) {
221
  $image = array( $src, $width, $height );
222
  }
@@ -251,7 +251,7 @@ class MLAShortcode_Support {
251
  if ( is_string( $attr ) ) {
252
  $attr = shortcode_parse_atts( $attr );
253
  }
254
-
255
  if ( empty( $attr ) ) {
256
  $attr = array();
257
  }
@@ -481,6 +481,7 @@ class MLAShortcode_Support {
481
 
482
  // These arguments must not be passed on to alternate gallery shortcodes
483
  $mla_arguments = array_merge( array(
 
484
  'mla_output' => 'gallery',
485
  'mla_style' => MLACore::mla_get_option('default_style'),
486
  'mla_markup' => MLACore::mla_get_option('default_markup'),
@@ -736,6 +737,17 @@ class MLAShortcode_Support {
736
  $found_rows = $current_rows;
737
  }
738
 
 
 
 
 
 
 
 
 
 
 
 
739
  if ( ( $is_gallery && empty($attachments) ) || ( $is_pagination && empty( $found_rows ) ) ) {
740
  if ( self::$mla_debug ) {
741
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug empty gallery', 'media-library-assistant' ) . '</strong>, query = ' . var_export( $attr, true ) );
@@ -1378,12 +1390,12 @@ class MLAShortcode_Support {
1378
  }
1379
  } else {
1380
  $thumbnail_content = $attachment->post_title;
1381
-
1382
  if ( ( 'none' !== $arguments['size'] ) && ( 'checked' == MLACore::mla_get_option( 'enable_featured_image' ) ) ) {
1383
  // Look for the "Featured Image" as an alternate thumbnail for PDFs, etc.
1384
  $thumb = get_the_post_thumbnail( $attachment->ID, $size, array( 'class' => 'attachment-thumbnail' ) );
1385
  $thumb = apply_filters( 'mla_gallery_featured_image', $thumb, $attachment, $size, $item_values );
1386
-
1387
  if ( ! empty( $thumb ) ) {
1388
  $thumbnail_content = $thumb;
1389
  }
@@ -1665,7 +1677,7 @@ class MLAShortcode_Support {
1665
  $item_values['thumbnail_width'] = '';
1666
  $item_values['thumbnail_height'] = '';
1667
  $item_values['thumbnail_url'] = '';
1668
-
1669
  /* Replaced by logic in _get_attachment_image_src v2.90
1670
  if ( ( 'none' !== $arguments['size'] ) && ( 'checked' == MLACore::mla_get_option( 'enable_featured_image' ) ) ) {
1671
  // Look for the "Featured Image" as an alternate thumbnail for PDFs, etc.
@@ -1976,8 +1988,8 @@ class MLAShortcode_Support {
1976
  'default_size' => 12,
1977
  'unit' => 'pt',
1978
  'separator' => "\n",
1979
- 'single_text' => '%d item',
1980
- 'multiple_text' => '%d items',
1981
 
1982
  'echo' => false,
1983
  'link' => 'view',
@@ -2756,7 +2768,8 @@ class MLAShortcode_Support {
2756
  $item_values['taxonomy'] = $tag->taxonomy;
2757
  $item_values['description'] = wptexturize( $tag->description );
2758
  $item_values['parent'] = $tag->parent;
2759
- $item_values['count'] = isset ( $tag->count ) ? $tag->count : 0;
 
2760
  $item_values['scaled_count'] = $tag->scaled_count;
2761
 
2762
  if ( in_array( $tag->slug, array( 'ignore.terms.assigned', 'no.terms.assigned', 'any.terms.assigned' ) ) ) {
@@ -3133,7 +3146,8 @@ class MLAShortcode_Support {
3133
  $item_values['taxonomy'] = $term->taxonomy;
3134
  $item_values['description'] = wptexturize( $term->description );
3135
  $item_values['parent'] = $term->parent;
3136
- $item_values['count'] = isset ( $term->count ) ? 0 + $term->count : 0;
 
3137
  $item_values['link_url'] = $term->link;
3138
  $item_values['currentlink_url'] = sprintf( '%1$s%2$scurrent_item=%3$d', $item_values['page_url'], $current_item_delimiter, $item_values['term_id'] );
3139
  $item_values['editlink_url'] = $term->edit_link;
@@ -3221,9 +3235,11 @@ class MLAShortcode_Support {
3221
  // Ignore option- all,any_terms,no_terms
3222
  if ( -1 !== $item_values['count'] ) {
3223
  $item_values['rollover_text'] = sprintf( _n( $item_values['single_text'], $item_values['multiple_text'], $item_values['count'], 'media-library-assistant' ), number_format_i18n( $item_values['count'] ) );
3224
- if ( ! empty( $arguments['mla_rollover_text'] ) ) {
3225
- $item_values['rollover_text'] = esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $item_values ) );
3226
- }
 
 
3227
  }
3228
 
3229
  if ( ! empty( $arguments['mla_link_href'] ) ) {
@@ -3440,8 +3456,8 @@ class MLAShortcode_Support {
3440
  'hierarchical' => 'true',
3441
 
3442
  'separator' => "\n",
3443
- 'single_text' => '%d item',
3444
- 'multiple_text' => '%d items',
3445
  'link' => 'current',
3446
  'current_item' => '',
3447
  'active_item_class' => 'mla_active_item',
@@ -4624,7 +4640,7 @@ class MLAShortcode_Support {
4624
  // Validate the query arguments to prevent cross-site scripting (reflection) attacks
4625
  $test_query = array();
4626
  parse_str( strval( $uri_query ), $test_query );
4627
-
4628
  $clean_query = array();
4629
  foreach ( $test_query as $test_key => $test_value ) {
4630
  // Query argument names cannot have URL special characters
@@ -5281,7 +5297,7 @@ class MLAShortcode_Support {
5281
  if ( empty( $terms ) || ( $terms === '-3' ) || ( is_array( $terms ) && in_array( '-3', $terms ) ) ) {
5282
  $terms = 'ignore.terms.assigned';
5283
  }
5284
-
5285
  if ( ( $terms === 'ignore.terms.assigned' ) || ( is_array( $terms ) && in_array( 'ignore.terms.assigned', $terms ) ) ) {
5286
  unset( $tax_query[ $tax_query_key ] );
5287
  continue;
@@ -5290,26 +5306,26 @@ class MLAShortcode_Support {
5290
  if ( ( $terms === '-1' ) || ( is_array( $terms ) && in_array( '-1', $terms ) ) ) {
5291
  $terms = 'no.terms.assigned';
5292
  }
5293
-
5294
  if ( ( $terms === 'no.terms.assigned' ) || ( is_array( $terms ) && in_array( 'no.terms.assigned', $terms ) ) ) {
5295
  $tax_query[ $tax_query_key ] = array(
5296
  'taxonomy' => $tax_query_taxonomy,
5297
  'operator' => 'NOT EXISTS',
5298
  );
5299
-
5300
  continue;
5301
  }
5302
 
5303
  if ( ( $terms === '-2' ) || ( is_array( $terms ) && in_array( '-2', $terms ) ) ) {
5304
  $terms = 'any.terms.assigned';
5305
  }
5306
-
5307
  if ( ( $terms === 'any.terms.assigned' ) || ( is_array( $terms ) && in_array( 'any.terms.assigned', $terms ) ) ) {
5308
  $tax_query[ $tax_query_key ] = array(
5309
  'taxonomy' => $tax_query_taxonomy,
5310
  'operator' => 'EXISTS',
5311
  );
5312
-
5313
  continue;
5314
  }
5315
  } // isset( terms )
@@ -5344,7 +5360,7 @@ class MLAShortcode_Support {
5344
  if ( is_string( $value ) ) {
5345
  $value = explode( ',', $value );
5346
  }
5347
-
5348
  $simple_tax_queries[ $key ] = implode(',', array_filter( array_map( 'trim', $value ) ) );
5349
  if ( in_array( $simple_tax_queries[ $key ], array( 'ignore.terms.assigned', '-3', 'no.terms.assigned', '-1', 'any.terms.assigned', '-2' ) ) ) {
5350
  $terms_assigned_query = true;
@@ -5355,7 +5371,7 @@ class MLAShortcode_Support {
5355
  if ( is_string( $value ) ) {
5356
  $value = explode( ',', $value );
5357
  }
5358
-
5359
  $simple_tax_queries[ $key ] = implode(',', array_filter( array_map( 'trim', $value ) ) );
5360
  if ( in_array( $simple_tax_queries[ $key ], array( 'ignore.terms.assigned', '-3', 'no.terms.assigned', '-1', 'any.terms.assigned', '-2' ) ) ) {
5361
  $terms_assigned_query = true;
@@ -6091,7 +6107,7 @@ class MLAShortcode_Support {
6091
  // Suppress WordPress WP_Query LEFT JOIN on post_parent, etc.
6092
  $query_arguments['post_type'] = 'mladisabletaxjoin';
6093
  }
6094
-
6095
  if ( defined('RML_FILE') ) {
6096
  if ( $arguments['mla_allow_rml'] ) {
6097
  add_filter( 'posts_clauses', 'MLAShortcode_Support::mla_shortcode_query_posts_clauses_rml_filter', 9, 2 );
@@ -6484,14 +6500,16 @@ class MLAShortcode_Support {
6484
  $clause[] = $wpdb->prepare( 'AND p.post_status IN ( ' . join( ',', $placeholders ) . ' )', $clause_parameters );
6485
 
6486
  // Add optional post_mime_type constraint
6487
- if ( 'all' !== strtolower( $arguments['post_mime_type'] ) ) {
 
 
6488
  $post_mimes = wp_post_mime_type_where( $arguments['post_mime_type'], 'p' );
6489
  $clause[] = str_replace( '%', '%%', $post_mimes );
6490
  }
6491
 
6492
  $query = join(' ', $clause);
6493
  $results = $wpdb->get_results( $query );
6494
-
6495
  if ( is_wp_error( $results ) ) {
6496
  $results = array(
6497
  'ignore.terms.assigned' => 0,
@@ -6801,7 +6819,9 @@ class MLAShortcode_Support {
6801
  $clause[] = "AND tt.parent = '{$parent}'";
6802
  }
6803
 
6804
- if ( 'all' !== strtolower( $arguments['post_mime_type'] ) ) {
 
 
6805
  $post_mimes = wp_post_mime_type_where( $arguments['post_mime_type'], 'p' );
6806
  $where = str_replace( '%', '%%', $post_mimes );
6807
 
@@ -7275,22 +7295,14 @@ class MLAShortcode_Support {
7275
  return;
7276
  }
7277
 
7278
- /*/ WordPress "private" function, in /wp-includes/taxonomy.php array( term_id => array( child_ids ) )
7279
- $term_hier = _get_term_hierarchy( $taxonomy );
7280
-
7281
- if ( empty( $term_hier ) ) {
7282
- return;
7283
- } // */
7284
-
7285
  $terms_by_id = array(); // key term_id, value = reference to term object
7286
  $term_ids = array(); // key term_taxonomy_id, value = term_id
7287
- $term_items = array(); // key term_id
7288
 
7289
- // foreach ( (array) $terms as $key => $term ) {
7290
  foreach ( $terms as $key => $term ) {
7291
  if ( is_integer( $key ) ) {
7292
- $terms_by_id[$term->term_id] = & $terms[$key];
7293
- $term_ids[$term->term_taxonomy_id] = $term->term_id;
7294
  }
7295
  }
7296
 
@@ -7328,9 +7340,10 @@ class MLAShortcode_Support {
7328
  }
7329
  }
7330
 
7331
- // Transfer the touched cells
7332
  foreach ( (array) $term_items as $id => $items ) {
7333
  if ( isset( $terms_by_id[ $id ] ) ) {
 
7334
  $terms_by_id[ $id ]->count = count( $items );
7335
  }
7336
  }
212
  if ( $src = wp_mime_type_icon( $attachment_id ) ) {
213
  /** This filter is documented in wp-includes/post.php */
214
  $icon_dir = apply_filters( 'icon_dir', ABSPATH . WPINC . '/images/media' );
215
+
216
  $src_file = $icon_dir . '/' . wp_basename( $src );
217
  @list( $width, $height ) = getimagesize( $src_file );
218
  }
219
+
220
  if ( $src && $width && $height ) {
221
  $image = array( $src, $width, $height );
222
  }
251
  if ( is_string( $attr ) ) {
252
  $attr = shortcode_parse_atts( $attr );
253
  }
254
+
255
  if ( empty( $attr ) ) {
256
  $attr = array();
257
  }
481
 
482
  // These arguments must not be passed on to alternate gallery shortcodes
483
  $mla_arguments = array_merge( array(
484
+ 'mla_minimum' => '0',
485
  'mla_output' => 'gallery',
486
  'mla_style' => MLACore::mla_get_option('default_style'),
487
  'mla_markup' => MLACore::mla_get_option('default_markup'),
737
  $found_rows = $current_rows;
738
  }
739
 
740
+ $mla_minimum = absint( $arguments['mla_minimum'] );
741
+ if ( 0 < $mla_minimum ) {
742
+ if ( $is_gallery && ( empty($attachments) || count($attachments) < $mla_minimum ) ) {
743
+ $attachments = array();
744
+ }
745
+
746
+ if ( $is_pagination && empty( $found_rows ) || $found_rows < $mla_minimum ) {
747
+ $found_rows = 0;
748
+ }
749
+ }
750
+
751
  if ( ( $is_gallery && empty($attachments) ) || ( $is_pagination && empty( $found_rows ) ) ) {
752
  if ( self::$mla_debug ) {
753
  MLACore::mla_debug_add( __LINE__ . ' <strong>' . __( 'mla_debug empty gallery', 'media-library-assistant' ) . '</strong>, query = ' . var_export( $attr, true ) );
1390
  }
1391
  } else {
1392
  $thumbnail_content = $attachment->post_title;
1393
+
1394
  if ( ( 'none' !== $arguments['size'] ) && ( 'checked' == MLACore::mla_get_option( 'enable_featured_image' ) ) ) {
1395
  // Look for the "Featured Image" as an alternate thumbnail for PDFs, etc.
1396
  $thumb = get_the_post_thumbnail( $attachment->ID, $size, array( 'class' => 'attachment-thumbnail' ) );
1397
  $thumb = apply_filters( 'mla_gallery_featured_image', $thumb, $attachment, $size, $item_values );
1398
+
1399
  if ( ! empty( $thumb ) ) {
1400
  $thumbnail_content = $thumb;
1401
  }
1677
  $item_values['thumbnail_width'] = '';
1678
  $item_values['thumbnail_height'] = '';
1679
  $item_values['thumbnail_url'] = '';
1680
+
1681
  /* Replaced by logic in _get_attachment_image_src v2.90
1682
  if ( ( 'none' !== $arguments['size'] ) && ( 'checked' == MLACore::mla_get_option( 'enable_featured_image' ) ) ) {
1683
  // Look for the "Featured Image" as an alternate thumbnail for PDFs, etc.
1988
  'default_size' => 12,
1989
  'unit' => 'pt',
1990
  'separator' => "\n",
1991
+ 'single_text' => '%s item',
1992
+ 'multiple_text' => '%s items',
1993
 
1994
  'echo' => false,
1995
  'link' => 'view',
2768
  $item_values['taxonomy'] = $tag->taxonomy;
2769
  $item_values['description'] = wptexturize( $tag->description );
2770
  $item_values['parent'] = $tag->parent;
2771
+ $item_values['count'] = isset ( $tag->count ) ? (integer) $tag->count : 0;
2772
+ $item_values['term_count'] = isset ( $tag->term_count ) ? (integer) $tag->term_count : 0;
2773
  $item_values['scaled_count'] = $tag->scaled_count;
2774
 
2775
  if ( in_array( $tag->slug, array( 'ignore.terms.assigned', 'no.terms.assigned', 'any.terms.assigned' ) ) ) {
3146
  $item_values['taxonomy'] = $term->taxonomy;
3147
  $item_values['description'] = wptexturize( $term->description );
3148
  $item_values['parent'] = $term->parent;
3149
+ $item_values['count'] = isset ( $term->count ) ? (integer) $term->count : 0;
3150
+ $item_values['term_count'] = isset ( $term->term_count ) ? (integer) $term->term_count : 0;
3151
  $item_values['link_url'] = $term->link;
3152
  $item_values['currentlink_url'] = sprintf( '%1$s%2$scurrent_item=%3$d', $item_values['page_url'], $current_item_delimiter, $item_values['term_id'] );
3153
  $item_values['editlink_url'] = $term->edit_link;
3235
  // Ignore option- all,any_terms,no_terms
3236
  if ( -1 !== $item_values['count'] ) {
3237
  $item_values['rollover_text'] = sprintf( _n( $item_values['single_text'], $item_values['multiple_text'], $item_values['count'], 'media-library-assistant' ), number_format_i18n( $item_values['count'] ) );
3238
+
3239
+ }
3240
+
3241
+ if ( ! empty( $arguments['mla_rollover_text'] ) ) {
3242
+ $item_values['rollover_text'] = esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $item_values ) );
3243
  }
3244
 
3245
  if ( ! empty( $arguments['mla_link_href'] ) ) {
3456
  'hierarchical' => 'true',
3457
 
3458
  'separator' => "\n",
3459
+ 'single_text' => '%s item',
3460
+ 'multiple_text' => '%s items',
3461
  'link' => 'current',
3462
  'current_item' => '',
3463
  'active_item_class' => 'mla_active_item',
4640
  // Validate the query arguments to prevent cross-site scripting (reflection) attacks
4641
  $test_query = array();
4642
  parse_str( strval( $uri_query ), $test_query );
4643
+
4644
  $clean_query = array();
4645
  foreach ( $test_query as $test_key => $test_value ) {
4646
  // Query argument names cannot have URL special characters
5297
  if ( empty( $terms ) || ( $terms === '-3' ) || ( is_array( $terms ) && in_array( '-3', $terms ) ) ) {
5298
  $terms = 'ignore.terms.assigned';
5299
  }
5300
+
5301
  if ( ( $terms === 'ignore.terms.assigned' ) || ( is_array( $terms ) && in_array( 'ignore.terms.assigned', $terms ) ) ) {
5302
  unset( $tax_query[ $tax_query_key ] );
5303
  continue;
5306
  if ( ( $terms === '-1' ) || ( is_array( $terms ) && in_array( '-1', $terms ) ) ) {
5307
  $terms = 'no.terms.assigned';
5308
  }
5309
+
5310
  if ( ( $terms === 'no.terms.assigned' ) || ( is_array( $terms ) && in_array( 'no.terms.assigned', $terms ) ) ) {
5311
  $tax_query[ $tax_query_key ] = array(
5312
  'taxonomy' => $tax_query_taxonomy,
5313
  'operator' => 'NOT EXISTS',
5314
  );
5315
+
5316
  continue;
5317
  }
5318
 
5319
  if ( ( $terms === '-2' ) || ( is_array( $terms ) && in_array( '-2', $terms ) ) ) {
5320
  $terms = 'any.terms.assigned';
5321
  }
5322
+
5323
  if ( ( $terms === 'any.terms.assigned' ) || ( is_array( $terms ) && in_array( 'any.terms.assigned', $terms ) ) ) {
5324
  $tax_query[ $tax_query_key ] = array(
5325
  'taxonomy' => $tax_query_taxonomy,
5326
  'operator' => 'EXISTS',
5327
  );
5328
+
5329
  continue;
5330
  }
5331
  } // isset( terms )
5360
  if ( is_string( $value ) ) {
5361
  $value = explode( ',', $value );
5362
  }
5363
+
5364
  $simple_tax_queries[ $key ] = implode(',', array_filter( array_map( 'trim', $value ) ) );
5365
  if ( in_array( $simple_tax_queries[ $key ], array( 'ignore.terms.assigned', '-3', 'no.terms.assigned', '-1', 'any.terms.assigned', '-2' ) ) ) {
5366
  $terms_assigned_query = true;
5371
  if ( is_string( $value ) ) {
5372
  $value = explode( ',', $value );
5373
  }
5374
+
5375
  $simple_tax_queries[ $key ] = implode(',', array_filter( array_map( 'trim', $value ) ) );
5376
  if ( in_array( $simple_tax_queries[ $key ], array( 'ignore.terms.assigned', '-3', 'no.terms.assigned', '-1', 'any.terms.assigned', '-2' ) ) ) {
5377
  $terms_assigned_query = true;
6107
  // Suppress WordPress WP_Query LEFT JOIN on post_parent, etc.
6108
  $query_arguments['post_type'] = 'mladisabletaxjoin';
6109
  }
6110
+
6111
  if ( defined('RML_FILE') ) {
6112
  if ( $arguments['mla_allow_rml'] ) {
6113
  add_filter( 'posts_clauses', 'MLAShortcode_Support::mla_shortcode_query_posts_clauses_rml_filter', 9, 2 );
6500
  $clause[] = $wpdb->prepare( 'AND p.post_status IN ( ' . join( ',', $placeholders ) . ' )', $clause_parameters );
6501
 
6502
  // Add optional post_mime_type constraint
6503
+ if ( 'all' === strtolower( $arguments['post_mime_type'] ) ) {
6504
+ $post_mimes = '';
6505
+ } else {
6506
  $post_mimes = wp_post_mime_type_where( $arguments['post_mime_type'], 'p' );
6507
  $clause[] = str_replace( '%', '%%', $post_mimes );
6508
  }
6509
 
6510
  $query = join(' ', $clause);
6511
  $results = $wpdb->get_results( $query );
6512
+
6513
  if ( is_wp_error( $results ) ) {
6514
  $results = array(
6515
  'ignore.terms.assigned' => 0,
6819
  $clause[] = "AND tt.parent = '{$parent}'";
6820
  }
6821
 
6822
+ if ( 'all' === strtolower( $arguments['post_mime_type'] ) ) {
6823
+ $post_mimes = '';
6824
+ } else {
6825
  $post_mimes = wp_post_mime_type_where( $arguments['post_mime_type'], 'p' );
6826
  $where = str_replace( '%', '%%', $post_mimes );
6827
 
7295
  return;
7296
  }
7297
 
 
 
 
 
 
 
 
7298
  $terms_by_id = array(); // key term_id, value = reference to term object
7299
  $term_ids = array(); // key term_taxonomy_id, value = term_id
7300
+ $term_items = array(); // key term_id, value = array( object_id => reference_count )
7301
 
 
7302
  foreach ( $terms as $key => $term ) {
7303
  if ( is_integer( $key ) ) {
7304
+ $terms_by_id[ $term->term_id ] = & $terms[ $key ];
7305
+ $term_ids[ $term->term_taxonomy_id ] = $term->term_id;
7306
  }
7307
  }
7308
 
7340
  }
7341
  }
7342
 
7343
+ // Transfer the touched cells, updating $terms by reference
7344
  foreach ( (array) $term_items as $id => $items ) {
7345
  if ( isset( $terms_by_id[ $id ] ) ) {
7346
+ $terms_by_id[ $id ]->term_count = (integer) $terms_by_id[ $id ]->count;
7347
  $terms_by_id[ $id ]->count = count( $items );
7348
  }
7349
  }
index.php CHANGED
@@ -6,7 +6,7 @@
6
  * will the rest of the plugin be loaded and run.
7
  *
8
  * @package Media Library Assistant
9
- * @version 2.97
10
  */
11
 
12
  /*
@@ -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.97
20
  Author URI: http://davidlingren.com/
21
 
22
  Copyright 2011-2021 David Lingren
6
  * will the rest of the plugin be loaded and run.
7
  *
8
  * @package Media Library Assistant
9
+ * @version 2.98
10
  */
11
 
12
  /*
16
  Author: David Lingren
17
  Text Domain: media-library-assistant
18
  Domain Path: /languages
19
+ Version: 2.98
20
  Author URI: http://davidlingren.com/
21
 
22
  Copyright 2011-2021 David Lingren
js/mla-media-modal-scripts.js CHANGED
@@ -822,15 +822,30 @@ var wp, wpAjax, ajaxurl, jQuery, _,
822
  initialize: function() {
823
  mlaAttachmentsBrowser.prototype.initialize.apply( this, arguments );
824
 
825
- if ( ( 'object' === typeof this.attachmentsWrapper ) && ( 'undefined' === typeof window.eml ) ) {
 
 
 
 
 
 
 
826
  mlaModal.settings.oldHeight = 0;
827
- this.on( 'ready', this.adjustBrowser, this );
828
  this.$window = $( window );
829
- this.$window.on( 'resize', _.debounce( _.bind( this.adjustBrowser, this ), 15 ) );
 
 
 
 
 
 
 
 
 
830
  }
831
  },
832
 
833
- adjustBrowser: function() {
834
  var wrapper = this.attachmentsWrapper, toolbar = this.toolbar, toolbarHeight, primaryHeight, secondaryHeight;
835
 
836
  primaryHeight = toolbar.primary.$el.height();
@@ -848,6 +863,24 @@ var wp, wpAjax, ajaxurl, jQuery, _,
848
  }
849
  },
850
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
851
  createToolbar: function() {
852
  var filters, state = this.controller._state;
853
 
822
  initialize: function() {
823
  mlaAttachmentsBrowser.prototype.initialize.apply( this, arguments );
824
 
825
+ if ( 'undefined' === typeof window.eml ) {
826
+ // Accomodate Disable Gutenberg plugin
827
+ if ( 'grid' === mlaModal.settings.screen ) {
828
+ $('body').addClass('mla-media-grid');
829
+ } else {
830
+ $('body').addClass('mla-media-modal');
831
+ }
832
+
833
  mlaModal.settings.oldHeight = 0;
 
834
  this.$window = $( window );
835
+
836
+ if ( 'object' === typeof this.attachmentsWrapper ) {
837
+ this.on( 'ready', this.adjustBrowser58, this );
838
+ this.$window.on( 'resize', _.debounce( _.bind( this.adjustBrowser58, this ), 15 ) );
839
+ } else {
840
+ if ( 'object' === typeof this.attachments ) {
841
+ this.on( 'ready', this.adjustBrowser57, this );
842
+ this.$window.on( 'resize', _.debounce( _.bind( this.adjustBrowser57, this ), 15 ) );
843
+ }
844
+ }
845
  }
846
  },
847
 
848
+ adjustBrowser58: function() {
849
  var wrapper = this.attachmentsWrapper, toolbar = this.toolbar, toolbarHeight, primaryHeight, secondaryHeight;
850
 
851
  primaryHeight = toolbar.primary.$el.height();
863
  }
864
  },
865
 
866
+ adjustBrowser57: function() {
867
+ var attachments = this.attachments, toolbar = this.toolbar, toolbarHeight, primaryHeight, secondaryHeight;
868
+
869
+ primaryHeight = toolbar.primary.$el.height();
870
+ secondaryHeight = toolbar.secondary.$el.height();
871
+
872
+ if ( primaryHeight > secondaryHeight ) {
873
+ toolbarHeight = primaryHeight;
874
+ } else {
875
+ toolbarHeight = secondaryHeight;
876
+ }
877
+
878
+ if ( ( 0 < toolbarHeight ) && ( toolbarHeight !== mlaModal.settings.oldHeight ) ) {
879
+ attachments.$el.css( 'top', toolbarHeight + 10 + 'px' );
880
+ mlaModal.settings.oldHeight = toolbarHeight;
881
+ }
882
+ },
883
+
884
  createToolbar: function() {
885
  var filters, state = this.controller._state;
886
 
js/mla-media-modal-scripts.min.js CHANGED
@@ -1 +1 @@
1
- var wp,wpAjax,ajaxurl,jQuery,_,getUserSetting,setUserSetting,deleteUserSetting,mlaTaxonomy,mlaModal={strings:{},settings:{},initialHTML:{},uploading:false,cid:null,utility:{originalMediaAjax:null,mlaAttachmentsBrowser:null,parseTermsOptions:null,arrayCleanup:null,parseTaxonomyId:null,hookCompatTaxonomies:null,fillCompatTaxonomies:null,supportCompatTaxonomies:null},tagBox:null};(function(d){var c=wp.media.view.AttachmentsBrowser,b=wp.media.view.AttachmentCompat,a=wp.media.model.Selection;mlaModal.strings=typeof wp.media.view.l10n.mla_strings==="undefined"?{}:wp.media.view.l10n.mla_strings;delete wp.media.view.l10n.mla_strings;mlaModal.settings=typeof wp.media.view.settings.mla_settings==="undefined"?{screen:"unknown",enableMediaGrid:false,enableMediaModal:false}:wp.media.view.settings.mla_settings;delete wp.media.view.settings.mla_settings;if(!(mlaModal.settings.enableMediaGrid||mlaModal.settings.enableMediaModal)){return}if("grid"===mlaModal.settings.screen){if(false===mlaModal.settings.enableMediaGrid){return}d("body").addClass("mla-media-grid")}if("modal"===mlaModal.settings.screen){if(false===mlaModal.settings.enableMediaModal){return}d("body").addClass("mla-media-modal")}mlaModal.settings.pagenow=typeof pagenow==="undefined"?"unknown":pagenow;if(mlaModal.settings.pagenow==="toolset_page_views-editor"){return}mlaModal.utility.originalMediaAjax=wp.media.ajax;wp.media.ajax=function(k,g){var j=mlaModal.settings.state,i,f,h,e,l;if(_.isObject(k)){g=k}else{g=g||{};g.data=_.extend(g.data||{},{action:k})}if("query-attachments"==g.data.action){i=g.data.query;f=typeof i.s;if("object"==f){h=i.s}else{if("string"==f){h={mla_search_value:i.s}}else{h={mla_search_value:""}}}if("undefined"!=typeof i.post_mime_type){mlaModal.settings.query[j].filterMime=i.post_mime_type}else{mlaModal.settings.query[j].filterMime="all"}if("undefined"!=typeof h.mla_filter_month){mlaModal.settings.query[j].filterMonth=h.mla_filter_month}else{if("undefined"!=typeof i.year){mlaModal.settings.query[j].filterMonth=(100*i.year)+(1*i.monthnum)}else{}}if("undefined"!=typeof h.mla_filter_term){mlaModal.settings.query[j].filterTerm=h.mla_filter_term}if("undefined"!=typeof h.mla_search_value){mlaModal.settings.query[j].searchValue=h.mla_search_value}e={mla_filter_month:mlaModal.settings.query[j].filterMonth,mla_filter_term:mlaModal.settings.query[j].filterTerm,mla_terms_search:mlaModal.settings.query[j].termsSearch,mla_search_clicks:mlaModal.settings.query[j].searchClicks,mla_search_value:mlaModal.settings.query[j].searchValue,mla_search_fields:mlaModal.settings.query[j].searchFields,mla_search_connector:mlaModal.settings.query[j].searchConnector};mlaModal.settings.query[j].termsSearch="";d("#mla-terms-search-input").html("").val("");g.data.query.s=e;if(d(document.activeElement).hasClass("acf-button")){l=d(document.activeElement).parentsUntil("div.acf-fields");if(l.length){g.data.query._acfuploader=d(l[l.length-1]).attr("data-key")}}}return mlaModal.utility.originalMediaAjax.call(this,g)};if(mlaModal.settings.enableMimeTypes){wp.media.view.AttachmentFilters.Mla=wp.media.view.AttachmentFilters.extend({createFilters:function(){var f=this.controller._state,e={};_.each(mlaModal.settings.allMimeTypes||{},function(h,g){if(("grid"===mlaModal.settings.screen)||("trash"!==g)){e[g]={text:h,props:{type:g,uploadedTo:null,orderby:"date",order:"DESC"}}}});e.all={text:wp.media.view.l10n.allMediaItems,props:{type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10};if(wp.media.view.settings.post.id){e.uploaded={text:wp.media.view.l10n.uploadedToThisPost,props:{type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}this.filters=e;if("undefined"===typeof e[mlaModal.settings.query[f].filterMime]){mlaModal.settings.query[f].filterMime="all"}if(mlaModal.settings.query[f].filterMime!="all"){this.model.set(e[mlaModal.settings.query[f].filterMime].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMime,f=e.toJSON();if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}_.find(this.filters,function(j,k){var i=_.all(j.props,function(m,l){return m===(_.isUndefined(f[l])?null:f[l])});if(i){return g=k}});this.$el.val(g)},change:function(){var f=d(this.el).closest("div.media-toolbar"),e=this.filters[this.el.value];if(e){this.model.set(e.props,{silent:true});d("#mla-search-submit",f).trigger("click")}}});wp.media.view.AttachmentFilters.MlaUploaded=wp.media.view.AttachmentFilters.extend({createFilters:function(){var f=this.model.get("type"),e=wp.media.view.settings.mimeTypes,i,h=this.controller._state,g={};if(e&&f){i=e[f]}_.each(mlaModal.settings.uploadMimeTypes||{},function(k,j){if(("grid"===mlaModal.settings.screen)||("trash"!==j)){g[j]={text:k,props:{type:j,uploadedTo:null,orderby:"date",order:"DESC"}}}});g.all={text:i||wp.media.view.l10n.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10};g.uploaded={text:wp.media.view.l10n.uploadedToThisPost,props:{type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20};g.unattached={text:wp.media.view.l10n.unattached,props:{uploadedTo:0,orderby:"menuOrder",order:"ASC"},priority:50};this.filters=g;if("undefined"===typeof g[mlaModal.settings.query[h].filterUploaded]){mlaModal.settings.query[h].filterUploaded="all"}if(mlaModal.settings.query[h].filterUploaded!="all"){this.model.set(g[mlaModal.settings.query[h].filterUploaded].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMime,f=e.toJSON();if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}_.find(this.filters,function(j,k){var i=_.all(j.props,function(m,l){return m===(_.isUndefined(f[l])?null:f[l])});if(i){return g=k}});this.$el.val(g)},change:function(){var f=d(this.el).closest("div.media-toolbar"),e=this.filters[this.el.value];if(e){this.model.set(e.props,{silent:true});d("#mla-search-submit",f).trigger("click")}}})}if(mlaModal.settings.enableMonthsDropdown){wp.media.view.AttachmentFilters.MlaMonths=wp.media.view.AttachmentFilters.extend({className:"attachment-filters",id:"media-attachment-date-filters",createFilters:function(){var f=this.controller._state,e={};_.each(mlaModal.settings.months||{},function(h,g){e[g]={text:h,props:{s:{mla_filter_month:g}}}});this.filters=e;if("undefined"===typeof e[mlaModal.settings.query[f].filterMonth]){mlaModal.settings.query[f].filterMonth=0}if(mlaModal.settings.query[f].filterMonth>0){this.model.set(e[mlaModal.settings.query[f].filterMonth].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMonth,f=e.toJSON();if(_.isUndefined(f.s)){f.s={}}if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}if(_.isUndefined(f.s.mla_filter_month)){f.s.mla_filter_month=mlaModal.settings.query[h].filterMonth}else{mlaModal.settings.query[h].filterMonth=f.s.mla_filter_month}_.find(this.filters,function(j,k){var i=_.all(j.props,function(l){return l.mla_filter_month==mlaModal.settings.query[h].filterMonth});if(i){return g=k}});this.$el.val(g)},change:function(){var e=this.filters[this.el.value],f;if(e){f={s:{mla_filter_month:e.props.s.mla_filter_month}};this.model.set(f)}}})}if(mlaModal.settings.enableTermsDropdown){wp.media.view.AttachmentFilters.MlaTerms=wp.media.view.AttachmentFilters.extend({className:"attachment-filters",id:"media-attachment-term-filters",createFilters:function(){var h=this.controller._state,e,f,g={};_.each(mlaModal.settings.termsText||{},function(j,i){if(mlaModal.settings.termsCustom){f=mlaModal.settings.termsValue[i]}else{f=parseInt(mlaModal.settings.termsValue[i])}g[i]={text:j,props:{s:{mla_filter_term:f}}}});this.filters=g;e=_.indexOf(mlaModal.settings.termsValue,mlaModal.settings.query[h].filterTerm);if(e>0){this.model.set(g[e].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterTerm,f=e.toJSON();if(_.isUndefined(f.s)){f.s={}}if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}if(_.isUndefined(f.s.mla_filter_term)){f.s.mla_filter_term=mlaModal.settings.query[h].filterTerm}else{mlaModal.settings.query[h].filterTerm=f.s.mla_filter_term}_.find(this.filters,function(j,k){var i=_.all(j.props,function(l){return l.mla_filter_term==mlaModal.settings.query[h].filterTerm});if(i){return g=k}});this.$el.val(g)},change:function(){var e=this.filters[this.el.value],f;if(e){f={s:{mla_filter_term:e.props.s.mla_filter_term}};this.model.set(f)}}})}if(mlaModal.settings.enableTermsSearch){wp.media.view.MlaTermsSearch=wp.media.View.extend({tagName:"span",className:"mla-terms-search",template:wp.media.template("mla-terms-search-button"),attributes:{type:"mla-terms-search-button"},events:{change:"termsSearchOpen",click:"termsSearchOpen"},render:function(){this.$el.html(this.template(mlaModal.strings));return this},termsSearchOpen:function(f){var e=d(this.el).closest("div.media-toolbar");if(("click"==f.type)&&("mla_terms_search"===f.target.name)){mlaTaxonomy.termsSearch.open();d("#mla-terms-search-form").off("submit");d("#mla-terms-search-form").submit(function(j){var g,i,h={phrases:"",taxonomies:[]};j.preventDefault();g=d("#mla-terms-search-form").serializeArray();for(i=0;i<g.length;i++){switch(g[i].name){case"mla_terms_search[phrases]":h.phrases=g[i].value;break;case"mla_terms_search[radio_phrases]":h.radio_phrases=g[i].value;break;case"mla_terms_search[radio_terms]":h.radio_terms=g[i].value;break;case"mla_terms_search[taxonomies][]":h.taxonomies[h.taxonomies.length]=g[i].value;break}}mlaModal.settings.query[mlaModal.settings.state].termsSearch=h;d("#mla-search-submit",e).trigger("click");return false});d("#mla-terms-search-input").on("keypress",function(g){if(13==g.which){g.preventDefault();d("#mla-terms-search-submit").trigger("click")}})}}})}if(mlaModal.settings.enableSearchBox){wp.media.view.MlaSearch=wp.media.View.extend({tagName:"div",className:"mla-search-box",template:wp.media.template("mla-search-box"),attributes:{type:"mla-search-box"},events:{input:"search",change:"search",click:"search",search:"search",MlaSearch:"search"},initialize:function(){var e=this.controller._state;if("undefined"===typeof mlaModal.settings.query[e]){mlaModal.settings.query[e]=_.clone(mlaModal.settings.query.initial);mlaModal.settings.query[e].searchFields=_.clone(mlaModal.settings.query.initial.searchFields)}},render:function(){var f=this.controller._state,e=_.extend(mlaModal.strings,mlaModal.settings.query[f]);searchValues={mla_filter_month:mlaModal.settings.query[f].filterMonth,mla_filter_term:mlaModal.settings.query[f].filterTerm,mla_terms_search:mlaModal.settings.query[f].termsSearch,mla_search_clicks:mlaModal.settings.query[f].searchClicks++,mla_search_value:mlaModal.settings.query[f].searchValue,mla_search_fields:mlaModal.settings.query[f].searchFields,mla_search_connector:mlaModal.settings.query[f].searchConnector};this.model.set({s:searchValues});this.$el.html(this.template(e));return this},search:function(g){var h=this.controller._state,e,f;if(("input"==g.type)&&("s[mla_search_value]"==g.target.name)){mlaModal.settings.query[h].searchValue=g.target.value;return}if(("click"==g.type)&&("mla_search_submit"!=g.target.name)){return}switch(g.target.name){case"s[mla_search_value]":mlaModal.settings.query[h].searchValue=g.target.value;break;case"mla_search_submit":e={mla_filter_month:mlaModal.settings.query[h].filterMonth,mla_filter_term:mlaModal.settings.query[h].filterTerm,mla_terms_search:mlaModal.settings.query[h].termsSearch,mla_search_clicks:mlaModal.settings.query[h].searchClicks++,mla_search_value:mlaModal.settings.query[h].searchValue,mla_search_fields:mlaModal.settings.query[h].searchFields,mla_search_connector:mlaModal.settings.query[h].searchConnector};this.model.set({s:e});break;case"s[mla_search_connector]":mlaModal.settings.query[h].searchConnector=g.target.value;break;case"s[mla_search_title]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("title");if(-1==f){mlaModal.settings.query[h].searchFields.push("title")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_name]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("name");if(-1==f){mlaModal.settings.query[h].searchFields.push("name")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_alt_text]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("alt-text");if(-1==f){mlaModal.settings.query[h].searchFields.push("alt-text")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_excerpt]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("excerpt");if(-1==f){mlaModal.settings.query[h].searchFields.push("excerpt")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_content]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("content");if(-1==f){mlaModal.settings.query[h].searchFields.push("content")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_file]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("file");if(-1==f){mlaModal.settings.query[h].searchFields.push("file")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_terms]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("terms");if(-1==f){mlaModal.settings.query[h].searchFields.push("terms")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break}}})}else{wp.media.view.MlaSearch=wp.media.View.extend({tagName:"span",className:"mla-simulate-search-button",template:wp.media.template("mla-simulate-search-button"),attributes:{type:"mla-simulate-search-button"},events:{click:"simulateSearch"},render:function(){this.$el.html(this.template(mlaModal.strings));return this},simulateSearch:function(){var f=this.controller._state,e={mla_filter_month:mlaModal.settings.query[f].filterMonth,mla_filter_term:mlaModal.settings.query[f].filterTerm,mla_terms_search:mlaModal.settings.query[f].termsSearch,mla_search_clicks:mlaModal.settings.query[f].searchClicks++,mla_search_value:mlaModal.settings.query[f].searchValue,mla_search_fields:mlaModal.settings.query[f].searchFields,mla_search_connector:mlaModal.settings.query[f].searchConnector};this.model.set({s:e})}})}if(mlaModal.settings.enableMimeTypes||mlaModal.settings.enableMonthsDropdown||mlaModal.settings.enableTermsDropdown||mlaModal.settings.enableTermsSearch||mlaModal.settings.enableSearchBox){wp.media.view.AttachmentsBrowser=wp.media.view.AttachmentsBrowser.extend({initialize:function(){c.prototype.initialize.apply(this,arguments);if(("object"===typeof this.attachmentsWrapper)&&("undefined"===typeof window.eml)){mlaModal.settings.oldHeight=0;this.on("ready",this.adjustBrowser,this);this.$window=d(window);this.$window.on("resize",_.debounce(_.bind(this.adjustBrowser,this),15))}},adjustBrowser:function(){var i=this.attachmentsWrapper,f=this.toolbar,h,e,g;e=f.primary.$el.height();g=f.secondary.$el.height();if(e>g){h=e}else{h=g}if((0<h)&&(h!==mlaModal.settings.oldHeight)){i.$el.css("top",h+10+"px");mlaModal.settings.oldHeight=h}},createToolbar:function(){var e,f=this.controller._state;mlaModal.settings.state=f;mlaModal.settings.$el=this.controller.$el;if("undefined"===typeof mlaModal.settings.query[f]){mlaModal.settings.query[f]=_.clone(mlaModal.settings.query.initial);mlaModal.settings.query[f].searchFields=_.clone(mlaModal.settings.query.initial.searchFields)}c.prototype.createToolbar.apply(this,arguments);mlaModal.utility.mlaAttachmentsBrowser=this;e=this.options.filters;d(".media-attachments-filter-heading",this.$el).css("display","none");if(("all"===e)&&mlaModal.settings.enableMimeTypes){this.toolbar.unset("filters",{silent:true});this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Mla({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(("uploaded"===e)&&mlaModal.settings.enableMimeTypes){this.toolbar.unset("filters",{silent:true});this.toolbar.set("filters",new wp.media.view.AttachmentFilters.MlaUploaded({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(this.options.search&&mlaModal.settings.enableMonthsDropdown){this.toolbar.unset("dateFilter",{silent:true});this.toolbar.set("dateFilter",new wp.media.view.AttachmentFilters.MlaMonths({controller:this.controller,model:this.collection.props,priority:-75}).render())}if(this.options.search&&mlaModal.settings.enableTermsDropdown){this.toolbar.set("terms",new wp.media.view.AttachmentFilters.MlaTerms({controller:this.controller,model:this.collection.props,priority:-50}).render())}if(this.options.search&&mlaModal.settings.enableTermsSearch){this.toolbar.set("termsSearch",new wp.media.view.MlaTermsSearch({controller:this.controller,model:this.collection.props,priority:-50}).render())}if(this.options.search){if(mlaModal.settings.enableSearchBox){this.controller.on("content:activate",this.hideDefaultSearch);this.controller.on("edit:activate",this.hideDefaultSearch);this.controller.on("router:render",this.hideDefaultSearch);this.controller.on("uploader:ready",this.hideDefaultSearch);this.toolbar.set("MlaSearch",new wp.media.view.MlaSearch({controller:this.controller,model:this.collection.props,priority:-40}).render())}else{this.toolbar.set("MlaSearch",new wp.media.view.MlaSearch({controller:this.controller,model:this.collection.props,priority:70}).render())}}},hideDefaultSearch:function(){var e=d("#media-search-input",mlaModal.settings.$el),f=d(".media-search-input-label",mlaModal.settings.$el);if(0===e.length){e=d("div.media-toolbar-primary > input.search",mlaModal.settings.$el)}e.hide();f.hide()},updateFilters:function(e,f){var g={};if(this.options.search&&mlaModal.settings.enableTermsDropdown&&mlaModal.settings.termsTaxonomy==e){g=mlaModal.utility.parseTermsOptions(f);mlaModal.settings.termsClass=g.termsClass;mlaModal.settings.termsText=g.termsText;mlaModal.settings.termsValue=g.termsValue;this.toolbar.unset("terms",{silent:true});this.toolbar.set("terms",new wp.media.view.AttachmentFilters.MlaTerms({controller:this.controller,model:this.collection.props,priority:-80}).render())}}})}mlaModal.utility.parseTermsOptions=function(k){var j={termsClass:[mlaModal.settings.termsClass[0],mlaModal.settings.termsClass[1]],termsText:[mlaModal.settings.termsText[0],mlaModal.settings.termsText[1]],termsValue:[mlaModal.settings.termsValue[0],mlaModal.settings.termsValue[1]]},g=2,e,f,i=/\<option(( class=\"([^\"]+)\" )|( ))value=((\'([^\']+)\')|(\"([^\"]+)\"))([^\>]*)\>([^\<]*)\<.*/g,h=[];if("object"===typeof k){g=mlaModal.settings.termsValue.length;for(e=2;e<g;e++){h[e]={termsClass:mlaModal.settings.termsClass[e],termsText:mlaModal.settings.termsText[e],termsValue:mlaModal.settings.termsValue[e]};if("undefined"!==typeof k[mlaModal.settings.termsValue[e]]){delete k[mlaModal.settings.termsValue[e]]}}for(f in k){h[e++]={termsClass:"level-0",termsText:k[f],termsValue:f.toString()}}if(g===e){return{termsClass:mlaModal.settings.termsClass,termsText:mlaModal.settings.termsText,termsValue:mlaModal.settings.termsValue}}h.sort(function(m,l){if(m.termsText>l.termsText){return 1}else{if(m.termsText<l.termsText){return -1}else{return 0}}});e=2;for(f in h){j.termsClass[e]=h[f].termsClass;j.termsText[e]=h[f].termsText;j.termsValue[e++]=h[f].termsValue}return j}h=i.exec(k);while(null!==(h=i.exec(k))){j.termsClass[g]=h[3];j.termsValue[g]=("undefined"===typeof h[6])?h[9]:h[7];j.termsText[g++]=h[11].replace("&nbsp;",mlaModal.settings.termsIndent)}return j};mlaModal.utility.arrayCleanup=function(g){var f=[],e=("string"===typeof g);if(e){g=g.split(mlaModal.settings.comma)}jQuery.each(g,function(h,i){i=jQuery.trim(i);if(i&&jQuery.inArray(i,f)==-1){f.push(i)}});f.sort();if(e){f=f.join(mlaModal.settings.comma)}return f};mlaModal.utility.parseTaxonomyId=function(f){var e=f.split("-");e.shift();e.shift();return e.join("-")};mlaModal.tagBox={cleanTags:function(f){var e=mlaModal.settings.comma;if(","!==e){f=f.replace(new RegExp(e,"g"),",")}f=f.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"");if(","!==e){f=f.replace(/,/g,e)}return f},parseTags:function(h){var l=h.id,f=l.split("-check-num-")[1],i=d(h).closest(".tagsdiv"),k=i.find(".the-tags"),e=mlaModal.settings.comma,g=k.val().split(e),j=[];delete g[f];d.each(g,function(m,n){n=d.trim(n);if(n){j.push(n)}});k.val(this.cleanTags(j.join(e)));this.quickClicks(i);return false},quickClicks:function(g){var j=d(".the-tags",g),h=d(".tagchecklist",g),i=d(g).attr("id"),e,f;if(!j.length){return}f=j.prop("disabled");e=j.val().split(mlaModal.settings.comma);h.empty();d.each(e,function(m,n){var l,k;n=d.trim(n);if(!n){return}if(mlaModal.settings.generateTagUl){l=d("<li />").text(n)}else{l=d("<span />").text(n)}if(!f){if(mlaModal.settings.generateTagButtons){k=d('<button class="ntdelbutton" id="'+i+"-check-num-"+m+'" type="button"><span class="remove-tag-icon" aria-hidden="true"></span><span class="screen-reader-text">'+mlaModal.settings.removeTerm+": "+n+"</span></button>")}else{k=d('<a id="'+i+"-check-num-"+m+'" class="ntdelbutton">X</a>')}k.on("click",function(){mlaModal.tagBox.parseTags(this)});l.prepend("&nbsp;").prepend(k)}h.append(l)})},flushTags:function(k,h,g){var m,e,i,n=d(".the-tags",k),j=d("input.newtag",k),l=mlaModal.settings.comma;h=h||false;i=h?d(h).text():j.val();m=n.val();e=m?m+l+i:i;e=mlaModal.utility.arrayCleanup(this.cleanTags(e));n.val(e);this.quickClicks(k);if(!h){j.val("")}if("undefined"==typeof(g)){j.focus()}return false},getCloud:function(f,e){d.post(ajaxurl,{action:"get-tagcloud",tax:e},function(h,g){if(0===h||"success"!=g){h=wpAjax.broken}h=d('<p id="tagcloud-'+e+'" class="the-tagcloud">'+h+"</p>");d("a",h).on("click",function(){mlaModal.tagBox.flushTags(d(this).closest(".mla-taxonomy-field").children(".tagsdiv"),this);return false});d("#"+f).after(h)})},init:function(i,e,g){var h,f;h=d("#mla-taxonomy-"+e,g);f=d("div.ajaxtag",h);mlaModal.tagBox.quickClicks(h);d("input.tagadd",f).on("click",function(){mlaModal.tagBox.flushTags(d(this).closest(".tagsdiv"))});d("input.newtag",f).on("keyup",function(j){if(13==j.which){mlaModal.tagBox.flushTags(h);return false}}).on("keypress",function(j){if(13==j.which){j.preventDefault();return false}}).each(function(){d(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{delay:500,resultsClass:"mla_ac_results",selectClass:"mla_ac_over",matchClass:"mla_ac_match",minchars:2,multiple:true,multipleSep:mlaModal.settings.comma+" "})});h.siblings(":first").on("click",function(){mlaModal.tagBox.getCloud(d("a",this).attr("id"),e);d("a",this).unbind().on("click",function(){d(this).siblings(".the-tagcloud").toggle();return false});return false});d(".compat-field-"+e+" td",g).on("mouseleave",function(){var m,k=this,j=mlaModal.utility.arrayCleanup(d(".server-tags",k).val()),l=mlaModal.utility.arrayCleanup(d(".the-tags",k).val());if(j===l){return}d(k).css("opacity","0.5");m={id:i};m[e]=l;wp.media.post(mlaModal.settings.ajaxUpdateCompatAction,m).done(function(o){var p,n,q;for(n in o){if("object"===typeof(o[n]["object-terms"])){if(null!==mlaModal.utility.mlaAttachmentsBrowser){mlaModal.utility.mlaAttachmentsBrowser.updateFilters(n,o[n]["object-terms"])}delete o[n]["object-terms"]}for(q in o[n]){d("#"+q,k).replaceWith(o[n][q])}p=d("#mla-taxonomy-"+n,k);mlaModal.tagBox.quickClicks(p)}d(k).css("opacity","1.0")})});h.on("change",function(j){j.stopPropagation();return false});d(".the-tags, .server-tags .newtag",h).on("change",function(j){j.stopPropagation();return false})}};if(mlaModal.settings.enableDetailsCategory||mlaModal.settings.enableDetailsTag){wp.media.view.AttachmentCompat=wp.media.view.AttachmentCompat.extend({initialize:function(){b.prototype.initialize.apply(this,arguments);this.on("ready",function(){mlaModal.utility.hookCompatTaxonomies(this.model.get("id"),this.el)})}})}if(mlaModal.settings.enableDetailsCategory||mlaModal.settings.enableDetailsTag){wp.media.model.Selection=wp.media.model.Selection.extend({initialize:function(){a.prototype.initialize.apply(this,arguments);this.on("selection:reset",function(){mlaModal.cid=null});this.on("selection:unsingle",function(){mlaModal.cid=null});this.on("selection:single",function(e){mlaModal.cid=e.cid});this.on("change:uploading",function(){mlaModal.uploading=true});this.on("change",function(e){var f=false,g;if(mlaModal.uploading&&mlaModal.cid===e.cid){mlaModal.uploading=false;f=true}else{if(false===e.attributes.uploading){g=_.clone(e.changed);delete g.title;delete g.caption;delete g.alt;delete g.description;if(!_.isEmpty(g)){f=true}}}if(true===f){mlaModal.utility.hookCompatTaxonomies(e.get("id"),mlaModal.settings.$el)}})}})}mlaModal.utility.hookCompatTaxonomies=function(h,f){var e,g=null;d(".mla-taxonomy-field .categorydiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));if(-1!=mlaModal.settings.enhancedTaxonomies.indexOf(e)){d(".compat-field-"+e+" th",f).on("click",{id:h,currentTaxonomy:e,el:f},function(i){mlaModal.utility.fillCompatTaxonomies(i.data)});d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).show()}else{d(this).remove()}});if(null===g){g=e}}else{d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).remove()}})}});d(".mla-taxonomy-field .tagsdiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));if(-1!=mlaModal.settings.enhancedTaxonomies.indexOf(e)){d(".compat-field-"+e+" th",f).on("click",{id:h,currentTaxonomy:e,el:f},function(i){mlaModal.utility.fillCompatTaxonomies(i.data)});d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).show()}else{d(this).remove()}});if(null===g){g=e}}else{d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).remove()}})}});if(mlaModal.settings.enableTermsAutofill&&null!==g){d(".compat-field-"+g+" th",f).trigger("click")}};mlaModal.utility.fillCompatTaxonomies=function(i){var f=i.el,h=[],e,g;d(".mla-taxonomy-field .categorydiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));h[h.length]=e;g=".compat-field-"+e;if("undefined"===typeof(mlaModal.initialHTML[e])){mlaModal.initialHTML[e]=d(g,f).html()}else{d(g,f).html(mlaModal.initialHTML[e])}d(g+" .categorydiv",f).html(mlaModal.strings.loadingText)});d(".mla-taxonomy-field .tagsdiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));h[h.length]=e;g=".compat-field-"+e;if("undefined"===typeof(mlaModal.initialHTML[e])){mlaModal.initialHTML[e]=d(g,f).html()}else{d(g,f).html(mlaModal.initialHTML[e])}d(g+" .tagsdiv",f).html(mlaModal.strings.loadingText)});if(h.length){wp.media.post(mlaModal.settings.ajaxFillCompatAction,{id:i.id,query:h}).done(function(k){var j,l;for(j in k){l=".compat-field-"+j;d(l,f).html(k[j])}mlaModal.utility.supportCompatTaxonomies(i);d(".compat-field-"+i.currentTaxonomy+" td",f).show()})}};mlaModal.utility.supportCompatTaxonomies=function(g){var f=g.id,e=g.el;if(mlaModal.settings.enableDetailsCategory){d(".mla-taxonomy-field .categorydiv",e).each(function(){var j=d(this),h,k,i,n,l,p,o,m;i=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));n=i+"_tab";l="#mla-"+i;p="#mla-new-"+i;o="#mla-search-"+i;m="#mla-attachments-"+f+"-"+i;if(i=="category"){n="cats"}j.find(".category-tabs").show();d(".compat-field-"+i+" th",e).on("click",function(){d(this).siblings("td").slideToggle()});j.on("mouseleave",function(){var t,q,s=[],r=j.find(l+"-checklist input:checked");r.each(function(){s[s.length]=d(this).val()});s.sort(function(v,u){return v-u});s=s.join(",");q=j.siblings(m).val();if(q===s){return}j.siblings(m).val(s);j.prop("disabled",true);t={id:f};t[i]=s;wp.media.post(mlaModal.settings.ajaxUpdateCompatAction,t).done(function(v){var u,w;for(u in v){for(w in v[u]){j.find("#"+w).html(v[u][w])}}j.find(o).val("");j.find(l+"-searcher").addClass("mla-hidden-children");j.prop("disabled",false)})});j.on('change input[type="checkbox"]',function(q){q.stopPropagation();return false});j.find(l+"-tabs a").on("click",function(){var q=d(this).attr("href");d(this).parent().addClass("tabs").siblings("li").removeClass("tabs");j.find(l+"-tabs").siblings(".tabs-panel").hide();j.find(q).show();d(this).focus();if("#mla-"+i+"-all"==q){deleteUserSetting(n)}else{setUserSetting(n,"pop")}return false});if(getUserSetting(n)){j.find(l+'-tabs a[href="#mla-'+i+'-pop"]').trigger("click")}j.find(l+"-add-toggle").on("click",function(){j.find(l+"-searcher").addClass("mla-hidden-children");j.find(l+"-adder").toggleClass("mla-hidden-children");j.find(l+'-tabs a[href="#mla-'+i+'-all"]').trigger("click");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();if(false===j.find(l+"-adder").hasClass("mla-hidden-children")){j.find(p).val("").removeClass("form-input-tip");j.find(p).focus()}return false});j.find(p).on("keypress",function(q){if(13===q.keyCode){q.preventDefault();j.find(l+"-add-submit").trigger("click")}});j.find(l+"-add-submit").on("click",function(){j.find(p).focus()});h=function(q){if(!j.find(p).val()){return false}q.data+="&"+j.find(l+"-checklist :checked").serialize();j.prop("disabled",true);return q};k=function(v,u){var t,q=j.find("#new"+i+"_parent");j.prop("disabled",false);if("undefined"!=u.parsed.responses[0]&&(t=u.parsed.responses[0].supplemental.newcat_parent)){q.before(t);q.remove();if(null!==mlaModal.utility.mlaAttachmentsBrowser){mlaModal.utility.mlaAttachmentsBrowser.updateFilters(i,t)}}};j.find(l+"-checklist").wpList({alt:"",response:"mla-"+i+"-ajax-response",addBefore:h,addAfter:k});j.find(l+"-checklist, "+l+"-checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var q=d(this),s=q.is(":checked"),r=q.val();if(r&&q.parents("#mla-taxonomy-"+i).length){d("#in-"+i+"-"+r+", #in-popular-"+i+"-"+r,"#mla-taxonomy-"+i).prop("checked",s)}});d.extend(d.expr.pseudos||d.expr[":"],{matchTerms:function(s,r,q,t){return(s.textContent||s.innerText||"").toLowerCase().indexOf((q[3]||"").toLowerCase())>=0}});j.find(o).on("keypress",function(q){if(13===q.keyCode){q.preventDefault();j.find(o).val("");j.find(l+"-searcher").addClass("mla-hidden-children");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();return}});j.find(o).on("keyup",function(s){var u,t,v,r,q;if(13===s.keyCode){s.preventDefault();j.find(l+"-search-toggle").focus();return}u=j.find(o).val();t=j.find(l+"-checklist li");v=j.find(l+"-checklist-pop li");if(0<u.length){t.hide();v.hide()}else{t.show();v.show()}r=j.find(l+"-checklist label:matchTerms('"+u+"')");r.closest("li").find("li").andSelf().show();r.parents(l+"-checklist li").show();q=j.find(l+"-checklist-pop label:matchTerms('"+u+"')");q.closest("li").find("li").andSelf().show();q.parents(l+"-checklist li").show()});j.find(l+"-search-toggle").on("click",function(){j.find(l+"-adder ").addClass("mla-hidden-children");j.find(l+"-searcher").toggleClass("mla-hidden-children");j.find(l+'-tabs a[href="#mla-'+i+'-all"]').trigger("click");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();if(false===j.find(l+"-searcher").hasClass("mla-hidden-children")){j.find(o).val("").removeClass("form-input-tip");j.find(o).focus()}return false})})}if(mlaModal.settings.enableDetailsTag){d(".mla-taxonomy-field .tagsdiv",e).each(function(){var h=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));d(".compat-field-"+h+" th",e).on("click",function(){d(this).siblings("td").slideToggle()});mlaModal.tagBox.init(f,h,e)})}}}(jQuery));
1
+ var wp,wpAjax,ajaxurl,jQuery,_,getUserSetting,setUserSetting,deleteUserSetting,mlaTaxonomy,mlaModal={strings:{},settings:{},initialHTML:{},uploading:false,cid:null,utility:{originalMediaAjax:null,mlaAttachmentsBrowser:null,parseTermsOptions:null,arrayCleanup:null,parseTaxonomyId:null,hookCompatTaxonomies:null,fillCompatTaxonomies:null,supportCompatTaxonomies:null},tagBox:null};(function(d){var c=wp.media.view.AttachmentsBrowser,b=wp.media.view.AttachmentCompat,a=wp.media.model.Selection;mlaModal.strings=typeof wp.media.view.l10n.mla_strings==="undefined"?{}:wp.media.view.l10n.mla_strings;delete wp.media.view.l10n.mla_strings;mlaModal.settings=typeof wp.media.view.settings.mla_settings==="undefined"?{screen:"unknown",enableMediaGrid:false,enableMediaModal:false}:wp.media.view.settings.mla_settings;delete wp.media.view.settings.mla_settings;if(!(mlaModal.settings.enableMediaGrid||mlaModal.settings.enableMediaModal)){return}if("grid"===mlaModal.settings.screen){if(false===mlaModal.settings.enableMediaGrid){return}d("body").addClass("mla-media-grid")}if("modal"===mlaModal.settings.screen){if(false===mlaModal.settings.enableMediaModal){return}d("body").addClass("mla-media-modal")}mlaModal.settings.pagenow=typeof pagenow==="undefined"?"unknown":pagenow;if(mlaModal.settings.pagenow==="toolset_page_views-editor"){return}mlaModal.utility.originalMediaAjax=wp.media.ajax;wp.media.ajax=function(k,g){var j=mlaModal.settings.state,i,f,h,e,l;if(_.isObject(k)){g=k}else{g=g||{};g.data=_.extend(g.data||{},{action:k})}if("query-attachments"==g.data.action){i=g.data.query;f=typeof i.s;if("object"==f){h=i.s}else{if("string"==f){h={mla_search_value:i.s}}else{h={mla_search_value:""}}}if("undefined"!=typeof i.post_mime_type){mlaModal.settings.query[j].filterMime=i.post_mime_type}else{mlaModal.settings.query[j].filterMime="all"}if("undefined"!=typeof h.mla_filter_month){mlaModal.settings.query[j].filterMonth=h.mla_filter_month}else{if("undefined"!=typeof i.year){mlaModal.settings.query[j].filterMonth=(100*i.year)+(1*i.monthnum)}else{}}if("undefined"!=typeof h.mla_filter_term){mlaModal.settings.query[j].filterTerm=h.mla_filter_term}if("undefined"!=typeof h.mla_search_value){mlaModal.settings.query[j].searchValue=h.mla_search_value}e={mla_filter_month:mlaModal.settings.query[j].filterMonth,mla_filter_term:mlaModal.settings.query[j].filterTerm,mla_terms_search:mlaModal.settings.query[j].termsSearch,mla_search_clicks:mlaModal.settings.query[j].searchClicks,mla_search_value:mlaModal.settings.query[j].searchValue,mla_search_fields:mlaModal.settings.query[j].searchFields,mla_search_connector:mlaModal.settings.query[j].searchConnector};mlaModal.settings.query[j].termsSearch="";d("#mla-terms-search-input").html("").val("");g.data.query.s=e;if(d(document.activeElement).hasClass("acf-button")){l=d(document.activeElement).parentsUntil("div.acf-fields");if(l.length){g.data.query._acfuploader=d(l[l.length-1]).attr("data-key")}}}return mlaModal.utility.originalMediaAjax.call(this,g)};if(mlaModal.settings.enableMimeTypes){wp.media.view.AttachmentFilters.Mla=wp.media.view.AttachmentFilters.extend({createFilters:function(){var f=this.controller._state,e={};_.each(mlaModal.settings.allMimeTypes||{},function(h,g){if(("grid"===mlaModal.settings.screen)||("trash"!==g)){e[g]={text:h,props:{type:g,uploadedTo:null,orderby:"date",order:"DESC"}}}});e.all={text:wp.media.view.l10n.allMediaItems,props:{type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10};if(wp.media.view.settings.post.id){e.uploaded={text:wp.media.view.l10n.uploadedToThisPost,props:{type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}this.filters=e;if("undefined"===typeof e[mlaModal.settings.query[f].filterMime]){mlaModal.settings.query[f].filterMime="all"}if(mlaModal.settings.query[f].filterMime!="all"){this.model.set(e[mlaModal.settings.query[f].filterMime].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMime,f=e.toJSON();if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}_.find(this.filters,function(j,k){var i=_.all(j.props,function(m,l){return m===(_.isUndefined(f[l])?null:f[l])});if(i){return g=k}});this.$el.val(g)},change:function(){var f=d(this.el).closest("div.media-toolbar"),e=this.filters[this.el.value];if(e){this.model.set(e.props,{silent:true});d("#mla-search-submit",f).trigger("click")}}});wp.media.view.AttachmentFilters.MlaUploaded=wp.media.view.AttachmentFilters.extend({createFilters:function(){var f=this.model.get("type"),e=wp.media.view.settings.mimeTypes,i,h=this.controller._state,g={};if(e&&f){i=e[f]}_.each(mlaModal.settings.uploadMimeTypes||{},function(k,j){if(("grid"===mlaModal.settings.screen)||("trash"!==j)){g[j]={text:k,props:{type:j,uploadedTo:null,orderby:"date",order:"DESC"}}}});g.all={text:i||wp.media.view.l10n.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10};g.uploaded={text:wp.media.view.l10n.uploadedToThisPost,props:{type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20};g.unattached={text:wp.media.view.l10n.unattached,props:{uploadedTo:0,orderby:"menuOrder",order:"ASC"},priority:50};this.filters=g;if("undefined"===typeof g[mlaModal.settings.query[h].filterUploaded]){mlaModal.settings.query[h].filterUploaded="all"}if(mlaModal.settings.query[h].filterUploaded!="all"){this.model.set(g[mlaModal.settings.query[h].filterUploaded].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMime,f=e.toJSON();if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}_.find(this.filters,function(j,k){var i=_.all(j.props,function(m,l){return m===(_.isUndefined(f[l])?null:f[l])});if(i){return g=k}});this.$el.val(g)},change:function(){var f=d(this.el).closest("div.media-toolbar"),e=this.filters[this.el.value];if(e){this.model.set(e.props,{silent:true});d("#mla-search-submit",f).trigger("click")}}})}if(mlaModal.settings.enableMonthsDropdown){wp.media.view.AttachmentFilters.MlaMonths=wp.media.view.AttachmentFilters.extend({className:"attachment-filters",id:"media-attachment-date-filters",createFilters:function(){var f=this.controller._state,e={};_.each(mlaModal.settings.months||{},function(h,g){e[g]={text:h,props:{s:{mla_filter_month:g}}}});this.filters=e;if("undefined"===typeof e[mlaModal.settings.query[f].filterMonth]){mlaModal.settings.query[f].filterMonth=0}if(mlaModal.settings.query[f].filterMonth>0){this.model.set(e[mlaModal.settings.query[f].filterMonth].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterMonth,f=e.toJSON();if(_.isUndefined(f.s)){f.s={}}if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}if(_.isUndefined(f.s.mla_filter_month)){f.s.mla_filter_month=mlaModal.settings.query[h].filterMonth}else{mlaModal.settings.query[h].filterMonth=f.s.mla_filter_month}_.find(this.filters,function(j,k){var i=_.all(j.props,function(l){return l.mla_filter_month==mlaModal.settings.query[h].filterMonth});if(i){return g=k}});this.$el.val(g)},change:function(){var e=this.filters[this.el.value],f;if(e){f={s:{mla_filter_month:e.props.s.mla_filter_month}};this.model.set(f)}}})}if(mlaModal.settings.enableTermsDropdown){wp.media.view.AttachmentFilters.MlaTerms=wp.media.view.AttachmentFilters.extend({className:"attachment-filters",id:"media-attachment-term-filters",createFilters:function(){var h=this.controller._state,e,f,g={};_.each(mlaModal.settings.termsText||{},function(j,i){if(mlaModal.settings.termsCustom){f=mlaModal.settings.termsValue[i]}else{f=parseInt(mlaModal.settings.termsValue[i])}g[i]={text:j,props:{s:{mla_filter_term:f}}}});this.filters=g;e=_.indexOf(mlaModal.settings.termsValue,mlaModal.settings.query[h].filterTerm);if(e>0){this.model.set(g[e].props,{silent:false})}},select:function(){var h=this.controller._state,e=this.model,g=mlaModal.settings.query[h].filterTerm,f=e.toJSON();if(_.isUndefined(f.s)){f.s={}}if(false===mlaModal.settings.enableSearchBox){if("string"==typeof f.search){mlaModal.settings.query[h].searchValue=f.search}else{mlaModal.settings.query[h].searchValue=""}}if(_.isUndefined(f.s.mla_filter_term)){f.s.mla_filter_term=mlaModal.settings.query[h].filterTerm}else{mlaModal.settings.query[h].filterTerm=f.s.mla_filter_term}_.find(this.filters,function(j,k){var i=_.all(j.props,function(l){return l.mla_filter_term==mlaModal.settings.query[h].filterTerm});if(i){return g=k}});this.$el.val(g)},change:function(){var e=this.filters[this.el.value],f;if(e){f={s:{mla_filter_term:e.props.s.mla_filter_term}};this.model.set(f)}}})}if(mlaModal.settings.enableTermsSearch){wp.media.view.MlaTermsSearch=wp.media.View.extend({tagName:"span",className:"mla-terms-search",template:wp.media.template("mla-terms-search-button"),attributes:{type:"mla-terms-search-button"},events:{change:"termsSearchOpen",click:"termsSearchOpen"},render:function(){this.$el.html(this.template(mlaModal.strings));return this},termsSearchOpen:function(f){var e=d(this.el).closest("div.media-toolbar");if(("click"==f.type)&&("mla_terms_search"===f.target.name)){mlaTaxonomy.termsSearch.open();d("#mla-terms-search-form").off("submit");d("#mla-terms-search-form").submit(function(j){var g,i,h={phrases:"",taxonomies:[]};j.preventDefault();g=d("#mla-terms-search-form").serializeArray();for(i=0;i<g.length;i++){switch(g[i].name){case"mla_terms_search[phrases]":h.phrases=g[i].value;break;case"mla_terms_search[radio_phrases]":h.radio_phrases=g[i].value;break;case"mla_terms_search[radio_terms]":h.radio_terms=g[i].value;break;case"mla_terms_search[taxonomies][]":h.taxonomies[h.taxonomies.length]=g[i].value;break}}mlaModal.settings.query[mlaModal.settings.state].termsSearch=h;d("#mla-search-submit",e).trigger("click");return false});d("#mla-terms-search-input").on("keypress",function(g){if(13==g.which){g.preventDefault();d("#mla-terms-search-submit").trigger("click")}})}}})}if(mlaModal.settings.enableSearchBox){wp.media.view.MlaSearch=wp.media.View.extend({tagName:"div",className:"mla-search-box",template:wp.media.template("mla-search-box"),attributes:{type:"mla-search-box"},events:{input:"search",change:"search",click:"search",search:"search",MlaSearch:"search"},initialize:function(){var e=this.controller._state;if("undefined"===typeof mlaModal.settings.query[e]){mlaModal.settings.query[e]=_.clone(mlaModal.settings.query.initial);mlaModal.settings.query[e].searchFields=_.clone(mlaModal.settings.query.initial.searchFields)}},render:function(){var f=this.controller._state,e=_.extend(mlaModal.strings,mlaModal.settings.query[f]);searchValues={mla_filter_month:mlaModal.settings.query[f].filterMonth,mla_filter_term:mlaModal.settings.query[f].filterTerm,mla_terms_search:mlaModal.settings.query[f].termsSearch,mla_search_clicks:mlaModal.settings.query[f].searchClicks++,mla_search_value:mlaModal.settings.query[f].searchValue,mla_search_fields:mlaModal.settings.query[f].searchFields,mla_search_connector:mlaModal.settings.query[f].searchConnector};this.model.set({s:searchValues});this.$el.html(this.template(e));return this},search:function(g){var h=this.controller._state,e,f;if(("input"==g.type)&&("s[mla_search_value]"==g.target.name)){mlaModal.settings.query[h].searchValue=g.target.value;return}if(("click"==g.type)&&("mla_search_submit"!=g.target.name)){return}switch(g.target.name){case"s[mla_search_value]":mlaModal.settings.query[h].searchValue=g.target.value;break;case"mla_search_submit":e={mla_filter_month:mlaModal.settings.query[h].filterMonth,mla_filter_term:mlaModal.settings.query[h].filterTerm,mla_terms_search:mlaModal.settings.query[h].termsSearch,mla_search_clicks:mlaModal.settings.query[h].searchClicks++,mla_search_value:mlaModal.settings.query[h].searchValue,mla_search_fields:mlaModal.settings.query[h].searchFields,mla_search_connector:mlaModal.settings.query[h].searchConnector};this.model.set({s:e});break;case"s[mla_search_connector]":mlaModal.settings.query[h].searchConnector=g.target.value;break;case"s[mla_search_title]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("title");if(-1==f){mlaModal.settings.query[h].searchFields.push("title")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_name]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("name");if(-1==f){mlaModal.settings.query[h].searchFields.push("name")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_alt_text]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("alt-text");if(-1==f){mlaModal.settings.query[h].searchFields.push("alt-text")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_excerpt]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("excerpt");if(-1==f){mlaModal.settings.query[h].searchFields.push("excerpt")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_content]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("content");if(-1==f){mlaModal.settings.query[h].searchFields.push("content")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_file]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("file");if(-1==f){mlaModal.settings.query[h].searchFields.push("file")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break;case"s[mla_search_terms]":if("change"!=g.type){break}f=mlaModal.settings.query[h].searchFields.indexOf("terms");if(-1==f){mlaModal.settings.query[h].searchFields.push("terms")}else{mlaModal.settings.query[h].searchFields.splice(f,1)}break}}})}else{wp.media.view.MlaSearch=wp.media.View.extend({tagName:"span",className:"mla-simulate-search-button",template:wp.media.template("mla-simulate-search-button"),attributes:{type:"mla-simulate-search-button"},events:{click:"simulateSearch"},render:function(){this.$el.html(this.template(mlaModal.strings));return this},simulateSearch:function(){var f=this.controller._state,e={mla_filter_month:mlaModal.settings.query[f].filterMonth,mla_filter_term:mlaModal.settings.query[f].filterTerm,mla_terms_search:mlaModal.settings.query[f].termsSearch,mla_search_clicks:mlaModal.settings.query[f].searchClicks++,mla_search_value:mlaModal.settings.query[f].searchValue,mla_search_fields:mlaModal.settings.query[f].searchFields,mla_search_connector:mlaModal.settings.query[f].searchConnector};this.model.set({s:e})}})}if(mlaModal.settings.enableMimeTypes||mlaModal.settings.enableMonthsDropdown||mlaModal.settings.enableTermsDropdown||mlaModal.settings.enableTermsSearch||mlaModal.settings.enableSearchBox){wp.media.view.AttachmentsBrowser=wp.media.view.AttachmentsBrowser.extend({initialize:function(){c.prototype.initialize.apply(this,arguments);if("undefined"===typeof window.eml){if("grid"===mlaModal.settings.screen){d("body").addClass("mla-media-grid")}else{d("body").addClass("mla-media-modal")}mlaModal.settings.oldHeight=0;this.$window=d(window);if("object"===typeof this.attachmentsWrapper){this.on("ready",this.adjustBrowser58,this);this.$window.on("resize",_.debounce(_.bind(this.adjustBrowser58,this),15))}else{if("object"===typeof this.attachments){this.on("ready",this.adjustBrowser57,this);this.$window.on("resize",_.debounce(_.bind(this.adjustBrowser57,this),15))}}}},adjustBrowser58:function(){var i=this.attachmentsWrapper,f=this.toolbar,h,e,g;e=f.primary.$el.height();g=f.secondary.$el.height();if(e>g){h=e}else{h=g}if((0<h)&&(h!==mlaModal.settings.oldHeight)){i.$el.css("top",h+10+"px");mlaModal.settings.oldHeight=h}},adjustBrowser57:function(){var f=this.attachments,g=this.toolbar,i,e,h;e=g.primary.$el.height();h=g.secondary.$el.height();if(e>h){i=e}else{i=h}if((0<i)&&(i!==mlaModal.settings.oldHeight)){f.$el.css("top",i+10+"px");mlaModal.settings.oldHeight=i}},createToolbar:function(){var e,f=this.controller._state;mlaModal.settings.state=f;mlaModal.settings.$el=this.controller.$el;if("undefined"===typeof mlaModal.settings.query[f]){mlaModal.settings.query[f]=_.clone(mlaModal.settings.query.initial);mlaModal.settings.query[f].searchFields=_.clone(mlaModal.settings.query.initial.searchFields)}c.prototype.createToolbar.apply(this,arguments);mlaModal.utility.mlaAttachmentsBrowser=this;e=this.options.filters;d(".media-attachments-filter-heading",this.$el).css("display","none");if(("all"===e)&&mlaModal.settings.enableMimeTypes){this.toolbar.unset("filters",{silent:true});this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Mla({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(("uploaded"===e)&&mlaModal.settings.enableMimeTypes){this.toolbar.unset("filters",{silent:true});this.toolbar.set("filters",new wp.media.view.AttachmentFilters.MlaUploaded({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(this.options.search&&mlaModal.settings.enableMonthsDropdown){this.toolbar.unset("dateFilter",{silent:true});this.toolbar.set("dateFilter",new wp.media.view.AttachmentFilters.MlaMonths({controller:this.controller,model:this.collection.props,priority:-75}).render())}if(this.options.search&&mlaModal.settings.enableTermsDropdown){this.toolbar.set("terms",new wp.media.view.AttachmentFilters.MlaTerms({controller:this.controller,model:this.collection.props,priority:-50}).render())}if(this.options.search&&mlaModal.settings.enableTermsSearch){this.toolbar.set("termsSearch",new wp.media.view.MlaTermsSearch({controller:this.controller,model:this.collection.props,priority:-50}).render())}if(this.options.search){if(mlaModal.settings.enableSearchBox){this.controller.on("content:activate",this.hideDefaultSearch);this.controller.on("edit:activate",this.hideDefaultSearch);this.controller.on("router:render",this.hideDefaultSearch);this.controller.on("uploader:ready",this.hideDefaultSearch);this.toolbar.set("MlaSearch",new wp.media.view.MlaSearch({controller:this.controller,model:this.collection.props,priority:-40}).render())}else{this.toolbar.set("MlaSearch",new wp.media.view.MlaSearch({controller:this.controller,model:this.collection.props,priority:70}).render())}}},hideDefaultSearch:function(){var e=d("#media-search-input",mlaModal.settings.$el),f=d(".media-search-input-label",mlaModal.settings.$el);if(0===e.length){e=d("div.media-toolbar-primary > input.search",mlaModal.settings.$el)}e.hide();f.hide()},updateFilters:function(e,f){var g={};if(this.options.search&&mlaModal.settings.enableTermsDropdown&&mlaModal.settings.termsTaxonomy==e){g=mlaModal.utility.parseTermsOptions(f);mlaModal.settings.termsClass=g.termsClass;mlaModal.settings.termsText=g.termsText;mlaModal.settings.termsValue=g.termsValue;this.toolbar.unset("terms",{silent:true});this.toolbar.set("terms",new wp.media.view.AttachmentFilters.MlaTerms({controller:this.controller,model:this.collection.props,priority:-80}).render())}}})}mlaModal.utility.parseTermsOptions=function(k){var j={termsClass:[mlaModal.settings.termsClass[0],mlaModal.settings.termsClass[1]],termsText:[mlaModal.settings.termsText[0],mlaModal.settings.termsText[1]],termsValue:[mlaModal.settings.termsValue[0],mlaModal.settings.termsValue[1]]},g=2,e,f,i=/\<option(( class=\"([^\"]+)\" )|( ))value=((\'([^\']+)\')|(\"([^\"]+)\"))([^\>]*)\>([^\<]*)\<.*/g,h=[];if("object"===typeof k){g=mlaModal.settings.termsValue.length;for(e=2;e<g;e++){h[e]={termsClass:mlaModal.settings.termsClass[e],termsText:mlaModal.settings.termsText[e],termsValue:mlaModal.settings.termsValue[e]};if("undefined"!==typeof k[mlaModal.settings.termsValue[e]]){delete k[mlaModal.settings.termsValue[e]]}}for(f in k){h[e++]={termsClass:"level-0",termsText:k[f],termsValue:f.toString()}}if(g===e){return{termsClass:mlaModal.settings.termsClass,termsText:mlaModal.settings.termsText,termsValue:mlaModal.settings.termsValue}}h.sort(function(m,l){if(m.termsText>l.termsText){return 1}else{if(m.termsText<l.termsText){return -1}else{return 0}}});e=2;for(f in h){j.termsClass[e]=h[f].termsClass;j.termsText[e]=h[f].termsText;j.termsValue[e++]=h[f].termsValue}return j}h=i.exec(k);while(null!==(h=i.exec(k))){j.termsClass[g]=h[3];j.termsValue[g]=("undefined"===typeof h[6])?h[9]:h[7];j.termsText[g++]=h[11].replace("&nbsp;",mlaModal.settings.termsIndent)}return j};mlaModal.utility.arrayCleanup=function(g){var f=[],e=("string"===typeof g);if(e){g=g.split(mlaModal.settings.comma)}jQuery.each(g,function(h,i){i=jQuery.trim(i);if(i&&jQuery.inArray(i,f)==-1){f.push(i)}});f.sort();if(e){f=f.join(mlaModal.settings.comma)}return f};mlaModal.utility.parseTaxonomyId=function(f){var e=f.split("-");e.shift();e.shift();return e.join("-")};mlaModal.tagBox={cleanTags:function(f){var e=mlaModal.settings.comma;if(","!==e){f=f.replace(new RegExp(e,"g"),",")}f=f.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"");if(","!==e){f=f.replace(/,/g,e)}return f},parseTags:function(h){var l=h.id,f=l.split("-check-num-")[1],i=d(h).closest(".tagsdiv"),k=i.find(".the-tags"),e=mlaModal.settings.comma,g=k.val().split(e),j=[];delete g[f];d.each(g,function(m,n){n=d.trim(n);if(n){j.push(n)}});k.val(this.cleanTags(j.join(e)));this.quickClicks(i);return false},quickClicks:function(g){var j=d(".the-tags",g),h=d(".tagchecklist",g),i=d(g).attr("id"),e,f;if(!j.length){return}f=j.prop("disabled");e=j.val().split(mlaModal.settings.comma);h.empty();d.each(e,function(m,n){var l,k;n=d.trim(n);if(!n){return}if(mlaModal.settings.generateTagUl){l=d("<li />").text(n)}else{l=d("<span />").text(n)}if(!f){if(mlaModal.settings.generateTagButtons){k=d('<button class="ntdelbutton" id="'+i+"-check-num-"+m+'" type="button"><span class="remove-tag-icon" aria-hidden="true"></span><span class="screen-reader-text">'+mlaModal.settings.removeTerm+": "+n+"</span></button>")}else{k=d('<a id="'+i+"-check-num-"+m+'" class="ntdelbutton">X</a>')}k.on("click",function(){mlaModal.tagBox.parseTags(this)});l.prepend("&nbsp;").prepend(k)}h.append(l)})},flushTags:function(k,h,g){var m,e,i,n=d(".the-tags",k),j=d("input.newtag",k),l=mlaModal.settings.comma;h=h||false;i=h?d(h).text():j.val();m=n.val();e=m?m+l+i:i;e=mlaModal.utility.arrayCleanup(this.cleanTags(e));n.val(e);this.quickClicks(k);if(!h){j.val("")}if("undefined"==typeof(g)){j.focus()}return false},getCloud:function(f,e){d.post(ajaxurl,{action:"get-tagcloud",tax:e},function(h,g){if(0===h||"success"!=g){h=wpAjax.broken}h=d('<p id="tagcloud-'+e+'" class="the-tagcloud">'+h+"</p>");d("a",h).on("click",function(){mlaModal.tagBox.flushTags(d(this).closest(".mla-taxonomy-field").children(".tagsdiv"),this);return false});d("#"+f).after(h)})},init:function(i,e,g){var h,f;h=d("#mla-taxonomy-"+e,g);f=d("div.ajaxtag",h);mlaModal.tagBox.quickClicks(h);d("input.tagadd",f).on("click",function(){mlaModal.tagBox.flushTags(d(this).closest(".tagsdiv"))});d("input.newtag",f).on("keyup",function(j){if(13==j.which){mlaModal.tagBox.flushTags(h);return false}}).on("keypress",function(j){if(13==j.which){j.preventDefault();return false}}).each(function(){d(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+e,{delay:500,resultsClass:"mla_ac_results",selectClass:"mla_ac_over",matchClass:"mla_ac_match",minchars:2,multiple:true,multipleSep:mlaModal.settings.comma+" "})});h.siblings(":first").on("click",function(){mlaModal.tagBox.getCloud(d("a",this).attr("id"),e);d("a",this).unbind().on("click",function(){d(this).siblings(".the-tagcloud").toggle();return false});return false});d(".compat-field-"+e+" td",g).on("mouseleave",function(){var m,k=this,j=mlaModal.utility.arrayCleanup(d(".server-tags",k).val()),l=mlaModal.utility.arrayCleanup(d(".the-tags",k).val());if(j===l){return}d(k).css("opacity","0.5");m={id:i};m[e]=l;wp.media.post(mlaModal.settings.ajaxUpdateCompatAction,m).done(function(o){var p,n,q;for(n in o){if("object"===typeof(o[n]["object-terms"])){if(null!==mlaModal.utility.mlaAttachmentsBrowser){mlaModal.utility.mlaAttachmentsBrowser.updateFilters(n,o[n]["object-terms"])}delete o[n]["object-terms"]}for(q in o[n]){d("#"+q,k).replaceWith(o[n][q])}p=d("#mla-taxonomy-"+n,k);mlaModal.tagBox.quickClicks(p)}d(k).css("opacity","1.0")})});h.on("change",function(j){j.stopPropagation();return false});d(".the-tags, .server-tags .newtag",h).on("change",function(j){j.stopPropagation();return false})}};if(mlaModal.settings.enableDetailsCategory||mlaModal.settings.enableDetailsTag){wp.media.view.AttachmentCompat=wp.media.view.AttachmentCompat.extend({initialize:function(){b.prototype.initialize.apply(this,arguments);this.on("ready",function(){mlaModal.utility.hookCompatTaxonomies(this.model.get("id"),this.el)})}})}if(mlaModal.settings.enableDetailsCategory||mlaModal.settings.enableDetailsTag){wp.media.model.Selection=wp.media.model.Selection.extend({initialize:function(){a.prototype.initialize.apply(this,arguments);this.on("selection:reset",function(){mlaModal.cid=null});this.on("selection:unsingle",function(){mlaModal.cid=null});this.on("selection:single",function(e){mlaModal.cid=e.cid});this.on("change:uploading",function(){mlaModal.uploading=true});this.on("change",function(e){var f=false,g;if(mlaModal.uploading&&mlaModal.cid===e.cid){mlaModal.uploading=false;f=true}else{if(false===e.attributes.uploading){g=_.clone(e.changed);delete g.title;delete g.caption;delete g.alt;delete g.description;if(!_.isEmpty(g)){f=true}}}if(true===f){mlaModal.utility.hookCompatTaxonomies(e.get("id"),mlaModal.settings.$el)}})}})}mlaModal.utility.hookCompatTaxonomies=function(h,f){var e,g=null;d(".mla-taxonomy-field .categorydiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));if(-1!=mlaModal.settings.enhancedTaxonomies.indexOf(e)){d(".compat-field-"+e+" th",f).on("click",{id:h,currentTaxonomy:e,el:f},function(i){mlaModal.utility.fillCompatTaxonomies(i.data)});d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).show()}else{d(this).remove()}});if(null===g){g=e}}else{d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).remove()}})}});d(".mla-taxonomy-field .tagsdiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));if(-1!=mlaModal.settings.enhancedTaxonomies.indexOf(e)){d(".compat-field-"+e+" th",f).on("click",{id:h,currentTaxonomy:e,el:f},function(i){mlaModal.utility.fillCompatTaxonomies(i.data)});d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).show()}else{d(this).remove()}});if(null===g){g=e}}else{d("tr.compat-field-"+e,f).each(function(){if(d(this).hasClass("mla-taxonomy-row")){d(this).remove()}})}});if(mlaModal.settings.enableTermsAutofill&&null!==g){d(".compat-field-"+g+" th",f).trigger("click")}};mlaModal.utility.fillCompatTaxonomies=function(i){var f=i.el,h=[],e,g;d(".mla-taxonomy-field .categorydiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));h[h.length]=e;g=".compat-field-"+e;if("undefined"===typeof(mlaModal.initialHTML[e])){mlaModal.initialHTML[e]=d(g,f).html()}else{d(g,f).html(mlaModal.initialHTML[e])}d(g+" .categorydiv",f).html(mlaModal.strings.loadingText)});d(".mla-taxonomy-field .tagsdiv",f).each(function(){e=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));h[h.length]=e;g=".compat-field-"+e;if("undefined"===typeof(mlaModal.initialHTML[e])){mlaModal.initialHTML[e]=d(g,f).html()}else{d(g,f).html(mlaModal.initialHTML[e])}d(g+" .tagsdiv",f).html(mlaModal.strings.loadingText)});if(h.length){wp.media.post(mlaModal.settings.ajaxFillCompatAction,{id:i.id,query:h}).done(function(k){var j,l;for(j in k){l=".compat-field-"+j;d(l,f).html(k[j])}mlaModal.utility.supportCompatTaxonomies(i);d(".compat-field-"+i.currentTaxonomy+" td",f).show()})}};mlaModal.utility.supportCompatTaxonomies=function(g){var f=g.id,e=g.el;if(mlaModal.settings.enableDetailsCategory){d(".mla-taxonomy-field .categorydiv",e).each(function(){var j=d(this),h,k,i,n,l,p,o,m;i=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));n=i+"_tab";l="#mla-"+i;p="#mla-new-"+i;o="#mla-search-"+i;m="#mla-attachments-"+f+"-"+i;if(i=="category"){n="cats"}j.find(".category-tabs").show();d(".compat-field-"+i+" th",e).on("click",function(){d(this).siblings("td").slideToggle()});j.on("mouseleave",function(){var t,q,s=[],r=j.find(l+"-checklist input:checked");r.each(function(){s[s.length]=d(this).val()});s.sort(function(v,u){return v-u});s=s.join(",");q=j.siblings(m).val();if(q===s){return}j.siblings(m).val(s);j.prop("disabled",true);t={id:f};t[i]=s;wp.media.post(mlaModal.settings.ajaxUpdateCompatAction,t).done(function(v){var u,w;for(u in v){for(w in v[u]){j.find("#"+w).html(v[u][w])}}j.find(o).val("");j.find(l+"-searcher").addClass("mla-hidden-children");j.prop("disabled",false)})});j.on('change input[type="checkbox"]',function(q){q.stopPropagation();return false});j.find(l+"-tabs a").on("click",function(){var q=d(this).attr("href");d(this).parent().addClass("tabs").siblings("li").removeClass("tabs");j.find(l+"-tabs").siblings(".tabs-panel").hide();j.find(q).show();d(this).focus();if("#mla-"+i+"-all"==q){deleteUserSetting(n)}else{setUserSetting(n,"pop")}return false});if(getUserSetting(n)){j.find(l+'-tabs a[href="#mla-'+i+'-pop"]').trigger("click")}j.find(l+"-add-toggle").on("click",function(){j.find(l+"-searcher").addClass("mla-hidden-children");j.find(l+"-adder").toggleClass("mla-hidden-children");j.find(l+'-tabs a[href="#mla-'+i+'-all"]').trigger("click");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();if(false===j.find(l+"-adder").hasClass("mla-hidden-children")){j.find(p).val("").removeClass("form-input-tip");j.find(p).focus()}return false});j.find(p).on("keypress",function(q){if(13===q.keyCode){q.preventDefault();j.find(l+"-add-submit").trigger("click")}});j.find(l+"-add-submit").on("click",function(){j.find(p).focus()});h=function(q){if(!j.find(p).val()){return false}q.data+="&"+j.find(l+"-checklist :checked").serialize();j.prop("disabled",true);return q};k=function(v,u){var t,q=j.find("#new"+i+"_parent");j.prop("disabled",false);if("undefined"!=u.parsed.responses[0]&&(t=u.parsed.responses[0].supplemental.newcat_parent)){q.before(t);q.remove();if(null!==mlaModal.utility.mlaAttachmentsBrowser){mlaModal.utility.mlaAttachmentsBrowser.updateFilters(i,t)}}};j.find(l+"-checklist").wpList({alt:"",response:"mla-"+i+"-ajax-response",addBefore:h,addAfter:k});j.find(l+"-checklist, "+l+"-checklist-pop").on("click",'li.popular-category > label input[type="checkbox"]',function(){var q=d(this),s=q.is(":checked"),r=q.val();if(r&&q.parents("#mla-taxonomy-"+i).length){d("#in-"+i+"-"+r+", #in-popular-"+i+"-"+r,"#mla-taxonomy-"+i).prop("checked",s)}});d.extend(d.expr.pseudos||d.expr[":"],{matchTerms:function(s,r,q,t){return(s.textContent||s.innerText||"").toLowerCase().indexOf((q[3]||"").toLowerCase())>=0}});j.find(o).on("keypress",function(q){if(13===q.keyCode){q.preventDefault();j.find(o).val("");j.find(l+"-searcher").addClass("mla-hidden-children");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();return}});j.find(o).on("keyup",function(s){var u,t,v,r,q;if(13===s.keyCode){s.preventDefault();j.find(l+"-search-toggle").focus();return}u=j.find(o).val();t=j.find(l+"-checklist li");v=j.find(l+"-checklist-pop li");if(0<u.length){t.hide();v.hide()}else{t.show();v.show()}r=j.find(l+"-checklist label:matchTerms('"+u+"')");r.closest("li").find("li").andSelf().show();r.parents(l+"-checklist li").show();q=j.find(l+"-checklist-pop label:matchTerms('"+u+"')");q.closest("li").find("li").andSelf().show();q.parents(l+"-checklist li").show()});j.find(l+"-search-toggle").on("click",function(){j.find(l+"-adder ").addClass("mla-hidden-children");j.find(l+"-searcher").toggleClass("mla-hidden-children");j.find(l+'-tabs a[href="#mla-'+i+'-all"]').trigger("click");j.find(l+"-checklist li").show();j.find(l+"-checklist-pop li").show();if(false===j.find(l+"-searcher").hasClass("mla-hidden-children")){j.find(o).val("").removeClass("form-input-tip");j.find(o).focus()}return false})})}if(mlaModal.settings.enableDetailsTag){d(".mla-taxonomy-field .tagsdiv",e).each(function(){var h=mlaModal.utility.parseTaxonomyId(d(this).attr("id"));d(".compat-field-"+h+" th",e).on("click",function(){d(this).siblings("td").slideToggle()});mlaModal.tagBox.init(f,h,e)})}}}(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: 2021-08-10 17:47-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@davidlingren.com>\n"
@@ -24,7 +24,7 @@ msgstr ""
24
  #: includes/class-mla-admin-columns-pro-support-423.php:178
25
  #: includes/class-mla-admin-columns-pro-support-44.php:175
26
  #: includes/class-mla-admin-columns-pro-support.php:193
27
- #: includes/class-mla-ajax.php:356 includes/class-mla-edit-media.php:1059
28
  #: includes/class-mla-list-table.php:712
29
  msgid "Draft"
30
  msgstr ""
@@ -32,7 +32,7 @@ msgstr ""
32
  #: includes/class-mla-admin-columns-pro-support-423.php:181
33
  #: includes/class-mla-admin-columns-pro-support-44.php:178
34
  #: includes/class-mla-admin-columns-pro-support.php:196
35
- #: includes/class-mla-ajax.php:350 includes/class-mla-edit-media.php:1053
36
  #: includes/class-mla-list-table.php:715
37
  msgid "Scheduled"
38
  msgstr ""
@@ -40,7 +40,7 @@ msgstr ""
40
  #: includes/class-mla-admin-columns-pro-support-423.php:184
41
  #: includes/class-mla-admin-columns-pro-support-44.php:181
42
  #: includes/class-mla-admin-columns-pro-support.php:199
43
- #: includes/class-mla-edit-media.php:1056 includes/class-mla-list-table.php:718
44
  msgctxt "post state"
45
  msgid "Pending"
46
  msgstr ""
@@ -74,10 +74,10 @@ msgstr ""
74
  #: includes/class-mla-admin-columns-pro-support.php:692
75
  #: includes/class-mla-admin-columns-pro-support.php:759
76
  #: includes/class-mla-admin-columns-pro-support.php:821
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-core-options.php:487
81
  #: includes/class-mla-list-table.php:1234
82
  #: includes/class-mla-list-table.php:1279
83
  #: includes/class-mla-list-table.php:1329
@@ -97,10 +97,10 @@ msgstr ""
97
  #: includes/class-mla-admin-columns-pro-support.php:715
98
  #: includes/class-mla-admin-columns-pro-support.php:778
99
  #: includes/class-mla-admin-columns-pro-support.php:840
100
- #: includes/class-mla-edit-media.php:1141
101
- #: includes/class-mla-edit-media.php:1178
102
- #: includes/class-mla-edit-media.php:1213
103
- #: includes/class-mla-edit-media.php:1247
104
  #: includes/class-mla-list-table.php:1252
105
  #: includes/class-mla-list-table.php:1301
106
  #: includes/class-mla-list-table.php:1347
@@ -111,10 +111,10 @@ msgstr ""
111
  #: includes/class-mla-admin-columns-pro-support-423.php:1027
112
  #: includes/class-mla-admin-columns-pro-support-44.php:1024
113
  #: includes/class-mla-admin-columns-pro-support.php:1065
114
- #: includes/class-mla-core-options.php:616
115
- #: includes/class-mla-core-options.php:873
116
- #: includes/class-mla-core-options.php:904
117
  #: includes/class-mla-core-options.php:918
 
118
  #: includes/class-mla-list-table.php:561 includes/class-mla-list-table.php:1487
119
  #: includes/class-mla-settings-shortcodes-tab.php:649
120
  msgid "None"
@@ -139,7 +139,7 @@ msgstr ""
139
  #: includes/class-mla-admin-columns-pro-support-423.php:1134
140
  #: includes/class-mla-admin-columns-pro-support-44.php:1131
141
  #: includes/class-mla-admin-columns-pro-support.php:1172
142
- #: includes/class-mla-core-options.php:1320
143
  #: includes/class-mla-list-table.php:1643
144
  msgctxt "table_view_singular"
145
  msgid "Unattached"
@@ -147,7 +147,7 @@ msgstr ""
147
 
148
  #: includes/class-mla-admin-columns-support-deprecated.php:33
149
  #: includes/class-mla-admin-columns-support.php:43
150
- #: includes/class-mla-core-options.php:566 includes/class-mla-settings.php:426
151
  #: includes/class-mla-settings.php:1446 includes/class-mla-settings.php:1464
152
  #: index.php:46
153
  msgid "Media Library Assistant"
@@ -155,7 +155,7 @@ msgstr ""
155
 
156
  #: includes/class-mla-admin-columns-support-deprecated.php:34
157
  #: includes/class-mla-admin-columns-support.php:44
158
- #: includes/class-mla-core-options.php:575
159
  msgid "Assistant"
160
  msgstr ""
161
 
@@ -167,15 +167,15 @@ msgstr ""
167
 
168
  #: includes/class-mla-ajax.php:77 includes/class-mla-ajax.php:94
169
  #: includes/class-mla-ajax.php:111 includes/class-mla-ajax.php:129
170
- #: includes/class-mla-ajax.php:148 includes/class-mla-data-query.php:1388
171
- #: includes/class-mla-data-query.php:1404
172
- #: includes/class-mla-data-query.php:1406
173
- #: includes/class-mla-data-query.php:1920
174
- #: includes/class-mla-data-query.php:2011
175
- #: includes/class-mla-data-query.php:2083
176
- #: includes/class-mla-data-query.php:2178
177
- #: includes/class-mla-data-query.php:2264
178
- #: includes/class-mla-data-query.php:2283
179
  msgid "DEBUG"
180
  msgstr ""
181
 
@@ -207,29 +207,29 @@ msgid ""
207
  "\"%3$d\" count = %4$d."
208
  msgstr ""
209
 
210
- #: includes/class-mla-ajax.php:337 includes/class-mla-core-options.php:1196
211
- #: includes/class-mla-data.php:4321 includes/class-mla-edit-media.php:480
212
- #: includes/class-mla-main.php:2081 includes/class-mla-main.php:2403
213
- #: includes/class-mla-objects.php:370 includes/class-mla-options.php:466
214
  #: includes/mla-main-search-box-template.php:47
215
  #: includes/mla-media-modal-js-template.php:38
216
  msgid "Title"
217
  msgstr ""
218
 
219
- #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2082
220
  #: includes/class-mla-thumbnail-generation.php:644
221
  msgid "Type"
222
  msgstr ""
223
 
224
- #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2083
225
  msgid "Date"
226
  msgstr ""
227
 
228
- #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2084
229
  #: includes/class-mla-settings-custom-fields-tab.php:524
230
  #: includes/class-mla-settings-custom-fields-tab.php:834
231
- #: includes/class-mla-settings-iptc-exif-tab.php:553
232
- #: includes/class-mla-settings-iptc-exif-tab.php:941
233
  #: includes/class-mla-settings-upload-tab.php:553
234
  msgid "Status"
235
  msgstr ""
@@ -251,8 +251,8 @@ msgstr ""
251
 
252
  #: includes/class-mla-ajax.php:395 includes/class-mla-ajax.php:402
253
  #: includes/class-mla-ajax.php:411 includes/class-mla-core.php:893
254
- #: includes/class-mla-core.php:911 includes/class-mla-core.php:1367
255
- #: includes/class-mla-core.php:1373 includes/class-mla-core.php:1377
256
  #: includes/class-mla-data-office.php:35 includes/class-mla-data-office.php:40
257
  #: includes/class-mla-data-office.php:50 includes/class-mla-data-office.php:54
258
  #: includes/class-mla-data-office.php:69 includes/class-mla-data-office.php:74
@@ -263,16 +263,16 @@ msgstr ""
263
  #: includes/class-mla-data.php:196 includes/class-mla-data.php:257
264
  #: includes/class-mla-data.php:325 includes/class-mla-data.php:414
265
  #: includes/class-mla-data.php:566 includes/class-mla-data.php:629
266
- #: includes/class-mla-data.php:1598 includes/class-mla-data.php:1797
267
- #: includes/class-mla-data.php:1803 includes/class-mla-data.php:2153
268
- #: includes/class-mla-data.php:2157 includes/class-mla-data.php:3522
269
- #: includes/class-mla-data.php:3583 includes/class-mla-data.php:3627
270
- #: includes/class-mla-data.php:4021 includes/class-mla-data.php:4034
271
- #: includes/class-mla-data.php:4056 includes/class-mla-data.php:4296
272
- #: includes/class-mla-data.php:4342 includes/class-mla-data.php:4375
273
- #: includes/class-mla-data.php:4391 includes/class-mla-data.php:4665
274
- #: includes/class-mla-edit-media.php:321 includes/class-mla-edit-media.php:965
275
- #: includes/class-mla-edit-media.php:1007 includes/class-mla-main.php:709
276
  #: includes/class-mla-main.php:837 includes/class-mla-main.php:839
277
  #: includes/class-mla-main.php:842 includes/class-mla-main.php:902
278
  #: includes/class-mla-main.php:936 includes/class-mla-main.php:945
@@ -281,10 +281,10 @@ msgstr ""
281
  #: includes/class-mla-main.php:1556 includes/class-mla-main.php:1606
282
  #: includes/class-mla-main.php:1716 includes/class-mla-main.php:1745
283
  #: includes/class-mla-main.php:1887 includes/class-mla-main.php:1894
284
- #: includes/class-mla-main.php:2067 includes/class-mla-main.php:2206
285
- #: includes/class-mla-main.php:2535 includes/class-mla-main.php:2543
286
- #: includes/class-mla-main.php:2567 includes/class-mla-main.php:2575
287
- #: includes/class-mla-main.php:2607 includes/class-mla-main.php:2615
288
  #: includes/class-mla-media-modal.php:618 includes/class-mla-mime-types.php:825
289
  #: includes/class-mla-mime-types.php:1209
290
  #: includes/class-mla-mime-types.php:1297
@@ -302,11 +302,11 @@ msgstr ""
302
  #: includes/class-mla-mime-types.php:2525
303
  #: includes/class-mla-mime-types.php:2604
304
  #: includes/class-mla-mime-types.php:2613
305
- #: includes/class-mla-mime-types.php:2645 includes/class-mla-objects.php:267
306
  #: includes/class-mla-options.php:218 includes/class-mla-options.php:434
307
  #: includes/class-mla-options.php:515 includes/class-mla-options.php:570
308
- #: includes/class-mla-options.php:1133 includes/class-mla-options.php:1973
309
- #: includes/class-mla-options.php:2199
310
  #: includes/class-mla-settings-custom-fields-tab.php:169
311
  #: includes/class-mla-settings-custom-fields-tab.php:252
312
  #: includes/class-mla-settings-custom-fields-tab.php:256
@@ -324,21 +324,21 @@ msgstr ""
324
  #: includes/class-mla-settings-documentation-tab.php:142
325
  #: includes/class-mla-settings-documentation-tab.php:337
326
  #: includes/class-mla-settings-documentation-tab.php:1278
327
- #: includes/class-mla-settings-iptc-exif-tab.php:171
328
- #: includes/class-mla-settings-iptc-exif-tab.php:258
329
- #: includes/class-mla-settings-iptc-exif-tab.php:262
330
- #: includes/class-mla-settings-iptc-exif-tab.php:282
331
- #: includes/class-mla-settings-iptc-exif-tab.php:331
332
- #: includes/class-mla-settings-iptc-exif-tab.php:335
333
- #: includes/class-mla-settings-iptc-exif-tab.php:365
334
- #: includes/class-mla-settings-iptc-exif-tab.php:370
335
- #: includes/class-mla-settings-iptc-exif-tab.php:460
336
- #: includes/class-mla-settings-iptc-exif-tab.php:686
337
- #: includes/class-mla-settings-iptc-exif-tab.php:855
338
- #: includes/class-mla-settings-iptc-exif-tab.php:1063
339
- #: includes/class-mla-settings-iptc-exif-tab.php:1067
340
- #: includes/class-mla-settings-iptc-exif-tab.php:1097
341
- #: includes/class-mla-settings-iptc-exif-tab.php:2354
342
  #: includes/class-mla-settings-shortcodes-tab.php:102
343
  #: includes/class-mla-settings-shortcodes-tab.php:113
344
  #: includes/class-mla-settings-shortcodes-tab.php:117
@@ -368,17 +368,17 @@ msgstr ""
368
  #: includes/class-mla-settings.php:1792 includes/class-mla-settings.php:1799
369
  #: includes/class-mla-settings.php:1808 includes/class-mla-settings.php:1845
370
  #: includes/class-mla-settings.php:1853 includes/class-mla-settings.php:1862
371
- #: includes/class-mla-shortcode-support.php:2260
372
- #: includes/class-mla-shortcode-support.php:2355
373
- #: includes/class-mla-shortcode-support.php:3739
374
- #: includes/class-mla-shortcode-support.php:3903
375
- #: includes/class-mla-shortcode-support.php:3935
376
- #: includes/class-mla-shortcode-support.php:5253
377
- #: includes/class-mla-shortcode-support.php:5323
378
- #: includes/class-mla-shortcode-support.php:5788
379
  #: includes/class-mla-shortcode-support.php:5804
380
- #: includes/class-mla-shortcode-support.php:5827
381
  #: includes/class-mla-shortcode-support.php:5843
 
382
  #: includes/class-mla-thumbnail-generation.php:437
383
  #: includes/class-mla-thumbnail-generation.php:449
384
  #: includes/class-mla-thumbnail-generation.php:461
@@ -395,105 +395,105 @@ msgstr ""
395
  msgid "You are not allowed to edit this Attachment."
396
  msgstr ""
397
 
398
- #: includes/class-mla-core-options.php:418 includes/class-mla-options.php:257
399
  msgid "Attachment Categories"
400
  msgstr ""
401
 
402
- #: includes/class-mla-core-options.php:422
403
  msgid "Check this option to add support for Attachment Categories."
404
  msgstr ""
405
 
406
- #: includes/class-mla-core-options.php:426 includes/class-mla-options.php:272
407
  msgid "Attachment Tags"
408
  msgstr ""
409
 
410
- #: includes/class-mla-core-options.php:430
411
  msgid "Check this option to add support for Attachment Tags."
412
  msgstr ""
413
 
414
- #: includes/class-mla-core-options.php:434 includes/class-mla-settings.php:1060
415
  msgid "Where-used Reporting"
416
  msgstr ""
417
 
418
- #: includes/class-mla-core-options.php:439
419
  msgid "Exclude Revisions"
420
  msgstr ""
421
 
422
- #: includes/class-mla-core-options.php:443
423
  msgid "Check this option to exclude revisions from where-used reporting."
424
  msgstr ""
425
 
426
- #: includes/class-mla-core-options.php:447
427
  msgid "Where-used database access tuning"
428
  msgstr ""
429
 
430
- #: includes/class-mla-core-options.php:452
431
- #: includes/class-mla-edit-media.php:900 includes/class-mla-edit-media.php:1152
432
  msgid "Featured in"
433
  msgstr ""
434
 
435
- #: includes/class-mla-core-options.php:457
436
- #: includes/class-mla-core-options.php:467
437
  msgid "Enabled"
438
  msgstr ""
439
 
440
- #: includes/class-mla-core-options.php:458
441
  msgid "Search database posts and pages for Featured Image attachments."
442
  msgstr ""
443
 
444
- #: includes/class-mla-core-options.php:462
445
- #: includes/class-mla-edit-media.php:904 includes/class-mla-edit-media.php:1190
446
  msgid "Inserted in"
447
  msgstr ""
448
 
449
- #: includes/class-mla-core-options.php:467
450
  msgid "Base"
451
  msgstr ""
452
 
453
- #: includes/class-mla-core-options.php:468
454
  msgid ""
455
  "Search database posts and pages for attachments embedded in content."
456
  "<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base "
457
  "name and extension only."
458
  msgstr ""
459
 
460
- #: includes/class-mla-core-options.php:472
461
- #: includes/class-mla-edit-media.php:908 includes/class-mla-edit-media.php:1224
462
  #: includes/class-mla-settings.php:1558
463
  msgid "Gallery in"
464
  msgstr ""
465
 
466
- #: includes/class-mla-core-options.php:477
467
- #: includes/class-mla-core-options.php:487
468
  msgid "Dynamic"
469
  msgstr ""
470
 
471
- #: includes/class-mla-core-options.php:477
472
- #: includes/class-mla-core-options.php:487 includes/class-mla-main.php:2438
473
  #: includes/class-mla-settings-custom-fields-tab.php:764
474
- #: includes/class-mla-settings-iptc-exif-tab.php:870
475
  msgid "Refresh"
476
  msgstr ""
477
 
478
- #: includes/class-mla-core-options.php:477
479
- #: includes/class-mla-core-options.php:487
480
  msgid "Cached"
481
  msgstr ""
482
 
483
- #: includes/class-mla-core-options.php:478
484
  msgid ""
485
  "Search database posts and pages for [ gallery ] shortcode results.<br>&nbsp;"
486
  "&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = "
487
  "never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached."
488
  msgstr ""
489
 
490
- #: includes/class-mla-core-options.php:482
491
- #: includes/class-mla-edit-media.php:912 includes/class-mla-edit-media.php:1258
492
  #: includes/class-mla-settings.php:1568
493
  msgid "MLA Gallery in"
494
  msgstr ""
495
 
496
- #: includes/class-mla-core-options.php:488
497
  msgid ""
498
  "Search database posts and pages for [mla_gallery] shortcode results."
499
  "<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, "
@@ -501,123 +501,125 @@ msgid ""
501
  "Cached."
502
  msgstr ""
503
 
504
- #: includes/class-mla-core-options.php:492 includes/class-mla-settings.php:1060
505
  msgid "Taxonomy Support"
506
  msgstr ""
507
 
508
- #: includes/class-mla-core-options.php:497
509
  msgid "Compute Attachments Column"
510
  msgstr ""
511
 
512
- #: includes/class-mla-core-options.php:501
513
  msgid ""
514
  "Check this option to calculate attachments per term in the Attachments "
515
  "Column."
516
  msgstr ""
517
 
518
- #: includes/class-mla-core-options.php:505
519
  msgid "Show Count Column"
520
  msgstr ""
521
 
522
- #: includes/class-mla-core-options.php:509
523
  msgid "Check this option to display the Count column on taxonomy edit screens."
524
  msgstr ""
525
 
526
- #: includes/class-mla-core-options.php:514
527
  msgid ""
528
  "Check the \"<strong>Support</strong>\" box to add the taxonomy to the "
529
  "Assistant and the Edit Media screen."
530
  msgstr ""
531
 
532
- #: includes/class-mla-core-options.php:515
533
  msgid ""
534
  "Check the \"<strong>Inline Edit</strong>\" box to display the taxonomy in "
535
  "the Quick Edit and Bulk Edit areas."
536
  msgstr ""
537
 
538
- #: includes/class-mla-core-options.php:516
539
  msgid ""
540
  "Check the \"<strong>Term Search</strong>\" box to add the taxonomy to the "
541
  "\"Search Media/Terms\" list."
542
  msgstr ""
543
 
544
- #: includes/class-mla-core-options.php:517
545
- #: includes/class-mla-core-options.php:755 includes/class-mla-settings.php:1093
 
546
  #: includes/class-mla-settings.php:1094 includes/class-mla-settings.php:1095
547
  msgid "For complete documentation"
548
  msgstr ""
549
 
550
- #: includes/class-mla-core-options.php:517
551
- #: includes/class-mla-core-options.php:755 includes/class-mla-settings.php:1093
 
552
  #: includes/class-mla-settings.php:1094 includes/class-mla-settings.php:1095
553
  msgid "click here"
554
  msgstr ""
555
 
556
- #: includes/class-mla-core-options.php:519
557
  msgid ""
558
  "Check the \"<strong>Checklist</strong>\" box to enable the checklist-style "
559
  "meta box for a flat taxonomy."
560
  msgstr ""
561
 
562
- #: includes/class-mla-core-options.php:520
563
  msgid ""
564
  "You must also check the <strong>\"Enable enhanced checklist taxonomies\"</"
565
  "strong> box below to enable this feature."
566
  msgstr ""
567
 
568
- #: includes/class-mla-core-options.php:521
569
  msgid ""
570
  "Check the \"<strong>Checked On Top</strong>\" box to move checked terms to "
571
  "the top of the checklist-style meta box."
572
  msgstr ""
573
 
574
- #: includes/class-mla-core-options.php:522
575
  msgid ""
576
  "Check the \"<strong>Inline Add Term</strong>\" box to support adding terms "
577
  "in the Quick Edit and Bulk Edit areas."
578
  msgstr ""
579
 
580
- #: includes/class-mla-core-options.php:523
581
  msgid ""
582
  "Use the \"<strong>List Filter</strong>\" option to select the taxonomy (or "
583
  "custom field) on which to filter the Assistant table listing."
584
  msgstr ""
585
 
586
- #: includes/class-mla-core-options.php:524
587
  msgid ""
588
  "To <strong>filter on a custom field</strong>, enter the field name and "
589
  "select ASC (Ascending) or DESC (Descending) order."
590
  msgstr ""
591
 
592
- #: includes/class-mla-core-options.php:553
593
  msgid "Media/Assistant Screen Options"
594
  msgstr ""
595
 
596
- #: includes/class-mla-core-options.php:558
597
  msgid "Admin Menu Options"
598
  msgstr ""
599
 
600
- #: includes/class-mla-core-options.php:563
601
  msgid "Page Title"
602
  msgstr ""
603
 
604
- #: includes/class-mla-core-options.php:568
605
  msgid "Enter the title for the Media/Assistant submenu page"
606
  msgstr ""
607
 
608
- #: includes/class-mla-core-options.php:572
609
  msgid "Menu Title"
610
  msgstr ""
611
 
612
- #: includes/class-mla-core-options.php:577
613
  msgid "Enter the title for the Media/Assistant submenu entry"
614
  msgstr ""
615
 
616
- #: includes/class-mla-core-options.php:581
617
  msgid "Submenu Order"
618
  msgstr ""
619
 
620
- #: includes/class-mla-core-options.php:586
621
  msgid ""
622
  "Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = "
623
  "natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;"
@@ -625,304 +627,315 @@ msgid ""
625
  "\""
626
  msgstr ""
627
 
628
- #: includes/class-mla-core-options.php:590
629
  msgid "Display Media/Library"
630
  msgstr ""
631
 
632
- #: includes/class-mla-core-options.php:594
633
  msgid ""
634
  "Check/uncheck this option to display/remove the WordPress Media/Library "
635
  "submenu entry."
636
  msgstr ""
637
 
638
- #: includes/class-mla-core-options.php:598
639
  msgid "Display Media/Assistant list/grid view switcher"
640
  msgstr ""
641
 
642
- #: includes/class-mla-core-options.php:602
643
  msgid ""
644
  "Check/uncheck this option to display/remove the \"list/grid\" view switcher "
645
  "on the Media/Assistant submenu."
646
  msgstr ""
647
 
648
- #: includes/class-mla-core-options.php:606
649
  msgid "Table Defaults"
650
  msgstr ""
651
 
652
- #: includes/class-mla-core-options.php:611
653
  msgid "Order By"
654
  msgstr ""
655
 
656
- #: includes/class-mla-core-options.php:616
657
  msgid "ID/Parent"
658
  msgstr ""
659
 
660
- #: includes/class-mla-core-options.php:617
661
  msgid "Select the column for the sort order of the Assistant table listing."
662
  msgstr ""
663
 
664
- #: includes/class-mla-core-options.php:621
665
  msgid "Order"
666
  msgstr ""
667
 
668
- #: includes/class-mla-core-options.php:626
669
  msgid "Ascending"
670
  msgstr ""
671
 
672
- #: includes/class-mla-core-options.php:626
673
  msgid "Descending"
674
  msgstr ""
675
 
676
- #: includes/class-mla-core-options.php:627
677
- #: includes/class-mla-core-options.php:883
678
  msgid "Choose the sort order."
679
  msgstr ""
680
 
681
- #: includes/class-mla-core-options.php:631 includes/class-mla-main.php:630
682
  msgid "Entries per page"
683
  msgstr ""
684
 
685
- #: includes/class-mla-core-options.php:635
686
  msgid "Enter the number of Media/Assistant submenu table items per page."
687
  msgstr ""
688
 
689
- #: includes/class-mla-core-options.php:644
690
  msgid "Views Width"
691
  msgstr ""
692
 
693
- #: includes/class-mla-core-options.php:649
694
  msgid "Enter the width for the views list, in pixels (px) or percent (%)"
695
  msgstr ""
696
 
697
- #: includes/class-mla-core-options.php:653
698
  msgid "Icon Size"
699
  msgstr ""
700
 
701
- #: includes/class-mla-core-options.php:658
702
  msgid "Enter the size of the thumbnail/icon images, in pixels"
703
  msgstr ""
704
 
705
- #: includes/class-mla-core-options.php:662
706
  msgid "Show Primary Column File Name"
707
  msgstr ""
708
 
709
- #: includes/class-mla-core-options.php:666
710
  msgid ""
711
  "Check/uncheck this option to show/omit the file name from the primary column."
712
  msgstr ""
713
 
714
- #: includes/class-mla-core-options.php:670
715
  msgid "QuickTags editor for bulk description"
716
  msgstr ""
717
 
718
- #: includes/class-mla-core-options.php:674
719
  msgid ""
720
  "Check this option to use the QuickTags editor for the Description field in "
721
  "the Bulk Edit area."
722
  msgstr ""
723
 
724
- #: includes/class-mla-core-options.php:678
725
  msgid "Bulk Chunk Size"
726
  msgstr ""
727
 
728
- #: includes/class-mla-core-options.php:683
729
  msgid "Enter the size of the Bulk Edit and Map All processing chunks"
730
  msgstr ""
731
 
732
- #: includes/class-mla-core-options.php:687
733
  msgid "Taxonomy Filter parameters"
734
  msgstr ""
735
 
736
- #: includes/class-mla-core-options.php:692
737
  msgid "Maximum Depth"
738
  msgstr ""
739
 
740
- #: includes/class-mla-core-options.php:697
741
  msgid ""
742
  "Enter the number of levels displayed for hierarchial taxonomies; enter zero "
743
  "for no limit."
744
  msgstr ""
745
 
746
- #: includes/class-mla-core-options.php:701
747
  msgid "Include Children"
748
  msgstr ""
749
 
750
- #: includes/class-mla-core-options.php:705
751
  msgid ""
752
  "Check/uncheck this option to include/exclude children for hierarchical "
753
  "taxonomies."
754
  msgstr ""
755
 
756
- #: includes/class-mla-core-options.php:709
757
  msgid "Search Media Defaults"
758
  msgstr ""
759
 
760
- #: includes/class-mla-core-options.php:714
761
  msgid "Display Search Controls"
762
  msgstr ""
763
 
764
- #: includes/class-mla-core-options.php:718
765
- #: includes/class-mla-core-options.php:844
766
  msgid ""
767
  "Check/uncheck this option to display/hide the and/or connector and search "
768
  "fields controls."
769
  msgstr ""
770
 
771
- #: includes/class-mla-core-options.php:722
772
  msgid ""
773
  "Use these controls to set defaults for the and/or connector and search "
774
  "fields controls.<br>These defaults will be used for the Search Media boxes "
775
  "on both the Media/Assistant submenu<br>and the Media Manager Modal Window."
776
  msgstr ""
777
 
778
- #: includes/class-mla-core-options.php:736
779
  msgid "Media/Edit Media Enhancements"
780
  msgstr ""
781
 
782
- #: includes/class-mla-core-options.php:741
783
  msgid "Enable &quot;enhanced checklist&quot; taxonomies"
784
  msgstr ""
785
 
786
- #: includes/class-mla-core-options.php:745
787
  msgid ""
788
  "Check this option to enable the \"? Search\" feature for hierarchical "
789
  "taxonomies, e.g., Att. Categories.<br>&nbsp;&nbsp;This option also enables "
790
  "the \"checklist-style\" support for flat taxonomies, e.g., Att. Tags."
791
  msgstr ""
792
 
793
- #: includes/class-mla-core-options.php:749
794
  msgid "Enable Edit Media additional meta boxes"
795
  msgstr ""
796
 
797
- #: includes/class-mla-core-options.php:753
798
  msgid ""
799
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
800
- "Metadata\" and four \"where-used\" meta boxes to the Edit Media screen."
 
801
  msgstr ""
802
 
803
- #: includes/class-mla-core-options.php:754
804
  msgid "You can also use Filters to customize the meta boxes."
805
  msgstr ""
806
 
807
- #: includes/class-mla-core-options.php:759
 
 
 
 
 
 
 
 
 
 
808
  msgid "Media/Add New Enhancements"
809
  msgstr ""
810
 
811
- #: includes/class-mla-core-options.php:764
812
  msgid "Enable &quot;bulk edit&quot; area"
813
  msgstr ""
814
 
815
- #: includes/class-mla-core-options.php:768
816
  msgid ""
817
  "Check this option to enable the \"Bulk Edit area\" feature on the Media/Add "
818
  "New screen."
819
  msgstr ""
820
 
821
- #: includes/class-mla-core-options.php:772
822
  msgid "&quot;bulk edit&quot; area on top"
823
  msgstr ""
824
 
825
- #: includes/class-mla-core-options.php:776
826
  msgid ""
827
  "Check this option to move the \"Bulk Edit area\" to the top of the Media/Add "
828
  "New screen."
829
  msgstr ""
830
 
831
- #: includes/class-mla-core-options.php:780
832
  msgid "&quot;bulk edit&quot; area initially open"
833
  msgstr ""
834
 
835
- #: includes/class-mla-core-options.php:783
836
  msgid ""
837
  "Check this option to automatically open the \"Bulk Edit area\" when the "
838
  "Media/Add New screen is displayed."
839
  msgstr ""
840
 
841
- #: includes/class-mla-core-options.php:787
842
  msgid "Media Manager/Media Grid Enhancements"
843
  msgstr ""
844
 
845
- #: includes/class-mla-core-options.php:792
846
  msgid "Enable Media Grid Enhancements"
847
  msgstr ""
848
 
849
- #: includes/class-mla-core-options.php:795
850
  msgid ""
851
  "Check/uncheck this option to enable/disable Media Library Grid View "
852
  "Enhancements."
853
  msgstr ""
854
 
855
- #: includes/class-mla-core-options.php:799
856
  msgid "Enable Media Manager Enhancements"
857
  msgstr ""
858
 
859
- #: includes/class-mla-core-options.php:802
860
  msgid ""
861
  "Check/uncheck this option to enable/disable Media Manager Modal Window "
862
  "Enhancements."
863
  msgstr ""
864
 
865
- #: includes/class-mla-core-options.php:806
866
  msgid "Media Manager Enhanced MIME Type filter"
867
  msgstr ""
868
 
869
- #: includes/class-mla-core-options.php:809
870
  msgid ""
871
  "Check this option to filter by more MIME Types, e.g., text, applications."
872
  msgstr ""
873
 
874
- #: includes/class-mla-core-options.php:813
875
  msgid "Media Manager Month and Year filter"
876
  msgstr ""
877
 
878
- #: includes/class-mla-core-options.php:816
879
  msgid "Check this option to filter by month and year uploaded."
880
  msgstr ""
881
 
882
- #: includes/class-mla-core-options.php:820
883
  msgid "Media Manager Category/Tag filter"
884
  msgstr ""
885
 
886
- #: includes/class-mla-core-options.php:823
887
  msgid "Check this option to filter by taxonomy terms."
888
  msgstr ""
889
 
890
- #: includes/class-mla-core-options.php:827
891
  msgid "Media Manager Terms Search popup"
892
  msgstr ""
893
 
894
- #: includes/class-mla-core-options.php:830
895
  msgid "Check this option to enable the \"Terms Search\" popup window."
896
  msgstr ""
897
 
898
- #: includes/class-mla-core-options.php:834
899
  msgid "Media Manager Enhanced Search Media box"
900
  msgstr ""
901
 
902
- #: includes/class-mla-core-options.php:837
903
  msgid "Check this option to enable search box enhancements."
904
  msgstr ""
905
 
906
- #: includes/class-mla-core-options.php:841
907
  msgid "Media Manager Enhanced Search Media Controls"
908
  msgstr ""
909
 
910
- #: includes/class-mla-core-options.php:848
911
  msgid "Media Manager Checklist meta boxes"
912
  msgstr ""
913
 
914
- #: includes/class-mla-core-options.php:851
915
  msgid ""
916
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
917
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for any taxonomy that uses a "
918
  "<strong>\"checklist-style\"</strong> meta box."
919
  msgstr ""
920
 
921
- #: includes/class-mla-core-options.php:855
922
  msgid "Media Manager Flat meta boxes"
923
  msgstr ""
924
 
925
- #: includes/class-mla-core-options.php:858
926
  msgid ""
927
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
928
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for <strong>flat taxonomies</"
@@ -930,211 +943,211 @@ msgid ""
930
  "style\" meta box."
931
  msgstr ""
932
 
933
- #: includes/class-mla-core-options.php:862
934
  msgid "Media Manager auto-fill meta boxes"
935
  msgstr ""
936
 
937
- #: includes/class-mla-core-options.php:865
938
  msgid ""
939
  "Check this option to automatically fill MLA-enhanced meta boxes in the "
940
  "\"ATTACHMENT DETAILS\" pane<br>&nbsp;&nbsp;when the item is selected."
941
  msgstr ""
942
 
943
- #: includes/class-mla-core-options.php:869
944
  msgid "Media Manager Order By"
945
  msgstr ""
946
 
947
- #: includes/class-mla-core-options.php:873
948
- #: includes/class-mla-core-options.php:882
949
- #: includes/class-mla-core-options.php:904
950
  #: includes/class-mla-core-options.php:918
951
- #: includes/class-mla-core-options.php:932 includes/class-mla-settings.php:1144
 
952
  msgid "Media Manager Default"
953
  msgstr ""
954
 
955
- #: includes/class-mla-core-options.php:873
956
  msgid "Title/Name"
957
  msgstr ""
958
 
959
- #: includes/class-mla-core-options.php:874
960
  msgid ""
961
  "If you want to override the Media Manager default,<br>&nbsp;&nbsp;select a "
962
  "column for the sort order of the Media Library listing."
963
  msgstr ""
964
 
965
- #: includes/class-mla-core-options.php:878
966
  msgid "Media Manager Order"
967
  msgstr ""
968
 
969
- #: includes/class-mla-core-options.php:887
970
  msgid "Attachment Display Settings"
971
  msgstr ""
972
 
973
- #: includes/class-mla-core-options.php:892
974
  msgid "Media Manager Apply Display Settings"
975
  msgstr ""
976
 
977
- #: includes/class-mla-core-options.php:895
978
  msgid ""
979
  "Check this option to always start with the Attachment Display Settings set "
980
  "here,<br>&nbsp;&nbsp;overriding browser-/cookie-based defaults."
981
  msgstr ""
982
 
983
- #: includes/class-mla-core-options.php:899
984
- #: includes/class-mla-core-options.php:901
985
  msgid "Alignment"
986
  msgstr ""
987
 
988
- #: includes/class-mla-core-options.php:901
989
  #: includes/class-mla-core-options.php:915
990
  #: includes/class-mla-core-options.php:929
 
991
  #, php-format
992
  msgid ""
993
  "Select a value for the default %1$s option in the Attachment Display "
994
  "Settings."
995
  msgstr ""
996
 
997
- #: includes/class-mla-core-options.php:904
998
  msgid "Left"
999
  msgstr ""
1000
 
1001
- #: includes/class-mla-core-options.php:904
1002
  msgid "Center"
1003
  msgstr ""
1004
 
1005
- #: includes/class-mla-core-options.php:904
1006
  msgid "Right"
1007
  msgstr ""
1008
 
1009
- #: includes/class-mla-core-options.php:913
1010
- #: includes/class-mla-core-options.php:915
1011
  msgid "Link To"
1012
  msgstr ""
1013
 
1014
- #: includes/class-mla-core-options.php:918
1015
  msgid "Media File"
1016
  msgstr ""
1017
 
1018
- #: includes/class-mla-core-options.php:918
1019
  msgid "Attachment Page"
1020
  msgstr ""
1021
 
1022
- #: includes/class-mla-core-options.php:918
1023
  msgid "Custom URL"
1024
  msgstr ""
1025
 
1026
- #: includes/class-mla-core-options.php:927
1027
- #: includes/class-mla-core-options.php:929
1028
  msgid "Size"
1029
  msgstr ""
1030
 
1031
- #: includes/class-mla-core-options.php:932
1032
  #: includes/class-mla-thumbnail-generation.php:591
1033
  #: includes/class-mla-thumbnail-generation.php:655
1034
  msgid "Thumbnail"
1035
  msgstr ""
1036
 
1037
- #: includes/class-mla-core-options.php:932
1038
  msgid "Medium"
1039
  msgstr ""
1040
 
1041
- #: includes/class-mla-core-options.php:932
1042
  msgid "Large"
1043
  msgstr ""
1044
 
1045
- #: includes/class-mla-core-options.php:932
1046
  msgid "Full Size"
1047
  msgstr ""
1048
 
1049
- #: includes/class-mla-core-options.php:941
1050
  msgid "Uninstall (Delete) Plugin Settings"
1051
  msgstr ""
1052
 
1053
- #: includes/class-mla-core-options.php:946
1054
  msgid "Delete Option Settings"
1055
  msgstr ""
1056
 
1057
- #: includes/class-mla-core-options.php:949
1058
  msgid ""
1059
  "Check this option to remove all MLA option settings from the database when "
1060
  "the plugin is deleted.<br>&nbsp;&nbsp;<strong>You can make a backup copy</"
1061
  "strong> of your settings below by clicking \""
1062
  msgstr ""
1063
 
1064
- #: includes/class-mla-core-options.php:949 includes/class-mla-settings.php:1062
1065
  msgid "Export ALL Settings"
1066
  msgstr ""
1067
 
1068
- #: includes/class-mla-core-options.php:953
1069
  msgid "Delete Option Settings Backups"
1070
  msgstr ""
1071
 
1072
- #: includes/class-mla-core-options.php:956
1073
  msgid ""
1074
  "Check this option to remove the <code>/wp-content/mla-backup</code> "
1075
  "directory and its contents when the plugin is deleted."
1076
  msgstr ""
1077
 
1078
- #: includes/class-mla-core-options.php:960
1079
  msgid "Default [mla_gallery] Templates and Settings"
1080
  msgstr ""
1081
 
1082
- #: includes/class-mla-core-options.php:965
1083
- #: includes/class-mla-core-options.php:971
1084
- #: includes/class-mla-core-options.php:1009
1085
- #: includes/class-mla-core-options.php:1015
1086
  msgid "Style Template"
1087
  msgstr ""
1088
 
1089
- #: includes/class-mla-core-options.php:971
1090
- #: includes/class-mla-core-options.php:981
1091
- #: includes/class-mla-core-options.php:1015
1092
- #: includes/class-mla-core-options.php:1025
1093
  #, php-format
1094
  msgid "Select the default %1$s for your %2$s shortcodes."
1095
  msgstr ""
1096
 
1097
- #: includes/class-mla-core-options.php:975
1098
- #: includes/class-mla-core-options.php:1019
1099
  msgid "Markup Template"
1100
  msgstr ""
1101
 
1102
- #: includes/class-mla-core-options.php:981
1103
- #: includes/class-mla-core-options.php:1025
1104
  #: includes/class-mla-settings-shortcodes-tab.php:108
1105
  msgid "markup template"
1106
  msgstr ""
1107
 
1108
- #: includes/class-mla-core-options.php:985
1109
- #: includes/class-mla-core-options.php:1029
1110
  msgid "Default columns"
1111
  msgstr ""
1112
 
1113
- #: includes/class-mla-core-options.php:989
1114
  msgid ""
1115
  "Enter the number of [mla_tag_cloud] columns; must be a positive integer."
1116
  msgstr ""
1117
 
1118
- #: includes/class-mla-core-options.php:993
1119
- #: includes/class-mla-core-options.php:1037
1120
  msgid "Default mla_margin"
1121
  msgstr ""
1122
 
1123
- #: includes/class-mla-core-options.php:997
1124
- #: includes/class-mla-core-options.php:1041
1125
  msgid ""
1126
  "Enter the CSS \"margin\" property value, in length (px, em, pt, etc.), "
1127
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"none\" to "
1128
  "remove the property entirely."
1129
  msgstr ""
1130
 
1131
- #: includes/class-mla-core-options.php:1001
1132
- #: includes/class-mla-core-options.php:1045
1133
  msgid "Default mla_itemwidth"
1134
  msgstr ""
1135
 
1136
- #: includes/class-mla-core-options.php:1005
1137
- #: includes/class-mla-core-options.php:1049
1138
  msgid ""
1139
  "Enter the CSS \"width\" property value, in length (px, em, pt, etc.), "
1140
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"calculate"
@@ -1144,19 +1157,19 @@ msgid ""
1144
  "the property entirely."
1145
  msgstr ""
1146
 
1147
- #: includes/class-mla-core-options.php:1033
1148
  msgid "Enter the number of [mla_gallery] columns; must be a positive integer."
1149
  msgstr ""
1150
 
1151
- #: includes/class-mla-core-options.php:1053
1152
  msgid "Thumbnail Substitution Support, mla_viewer"
1153
  msgstr ""
1154
 
1155
- #: includes/class-mla-core-options.php:1058
1156
  msgid "Enable thumbnail substitution"
1157
  msgstr ""
1158
 
1159
- #: includes/class-mla-core-options.php:1061
1160
  msgid ""
1161
  "Check this option to allow the \"mla_viewer\" to generate thumbnail images "
1162
  "for PDF documents. Thumbnails are generated dynamically, each time the item "
@@ -1165,32 +1178,32 @@ msgid ""
1165
  "strong>"
1166
  msgstr ""
1167
 
1168
- #: includes/class-mla-core-options.php:1065
1169
  msgid "Enable Featured Images"
1170
  msgstr ""
1171
 
1172
- #: includes/class-mla-core-options.php:1068
1173
  msgid ""
1174
  "Check this option to extend Featured Image support to all Media Library "
1175
  "items. The Featured Image can be used as a thumbnail image for the item in "
1176
  "an [mla_gallery] display."
1177
  msgstr ""
1178
 
1179
- #: includes/class-mla-core-options.php:1072
1180
  msgid "Enable Featured Image Generation"
1181
  msgstr ""
1182
 
1183
- #: includes/class-mla-core-options.php:1075
1184
  msgid ""
1185
  "Check this option to enable the \"Thumbnail\" generation action in the Media/"
1186
  "Assistant submenu Bulk Actions dropdown."
1187
  msgstr ""
1188
 
1189
- #: includes/class-mla-core-options.php:1079
1190
  msgid "Enable explicit Ghostscript check"
1191
  msgstr ""
1192
 
1193
- #: includes/class-mla-core-options.php:1082
1194
  msgid ""
1195
  "Check this option to enable the explicit check for Ghostscript support "
1196
  "required for thumbnail generation. If your Ghostscript software is in a non-"
@@ -1199,37 +1212,37 @@ msgid ""
1199
  "leave this option checked unless you know it is safe to turn it off."
1200
  msgstr ""
1201
 
1202
- #: includes/class-mla-core-options.php:1086
1203
  msgid "Ghostscript path"
1204
  msgstr ""
1205
 
1206
- #: includes/class-mla-core-options.php:1090
1207
  msgid ""
1208
  "If your &ldquo;gs&rdquo; executable is in a non-standard location, enter the "
1209
  "full path and filename here, e.g., &ldquo;/usr/bin/gs&rdquo;. It will "
1210
  "override the search for Ghostscript in other places."
1211
  msgstr ""
1212
 
1213
- #: includes/class-mla-core-options.php:1110
1214
  msgid "Enable custom field mapping"
1215
  msgstr ""
1216
 
1217
- #: includes/class-mla-core-options.php:1113
1218
- #: includes/class-mla-core-options.php:1120
1219
  #: includes/class-mla-core-options.php:1127
1220
- #: includes/class-mla-core-options.php:1144
 
 
1221
  msgid "See Help menu."
1222
  msgstr ""
1223
 
1224
- #: includes/class-mla-core-options.php:1117
1225
  msgid "Enable custom field mapping when adding new media"
1226
  msgstr ""
1227
 
1228
- #: includes/class-mla-core-options.php:1124
1229
  msgid "Enable custom field mapping when updating media metadata"
1230
  msgstr ""
1231
 
1232
- #: includes/class-mla-core-options.php:1131
1233
  msgid ""
1234
  "Update the custom field mapping values above, then click Save Changes to "
1235
  "make the updates permanent.<br>You can also make temporary updates and click "
@@ -1237,33 +1250,33 @@ msgid ""
1237
  "saving any rule changes."
1238
  msgstr ""
1239
 
1240
- #: includes/class-mla-core-options.php:1141
1241
  msgid "Enable IPTC/EXIF Mapping"
1242
  msgstr ""
1243
 
1244
- #: includes/class-mla-core-options.php:1148
1245
  msgid "Enable IPTC/EXIF Mapping when adding new media"
1246
  msgstr ""
1247
 
1248
- #: includes/class-mla-core-options.php:1151
1249
  msgid ""
1250
  "Check this option to enable mapping when uploading new media (attachments)."
1251
  "<br>&nbsp;&nbsp;Does NOT affect the operation of the \"Map\" buttons on the "
1252
  "bulk edit, single edit and settings screens."
1253
  msgstr ""
1254
 
1255
- #: includes/class-mla-core-options.php:1155
1256
  msgid "Enable IPTC/EXIF Mapping when updating media metadata"
1257
  msgstr ""
1258
 
1259
- #: includes/class-mla-core-options.php:1158
1260
  msgid ""
1261
  "Check this option to enable mapping when media (attachments) metadata is "
1262
  "regenerated,<br>&nbsp;&nbsp;e.g., when the Media/Edit Media \"Edit Image\" "
1263
  "functions are used."
1264
  msgstr ""
1265
 
1266
- #: includes/class-mla-core-options.php:1162
1267
  msgid ""
1268
  "Update the standard field mapping values above, then click <strong>Save "
1269
  "Changes</strong> to make the updates permanent.<br>You can also make "
@@ -1272,13 +1285,13 @@ msgid ""
1272
  "changes."
1273
  msgstr ""
1274
 
1275
- #: includes/class-mla-core-options.php:1172
1276
  msgid ""
1277
  "Update the taxonomy term mapping values above, then click <strong>Save "
1278
  "Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>."
1279
  msgstr ""
1280
 
1281
- #: includes/class-mla-core-options.php:1182
1282
  msgid ""
1283
  "<strong>Update</strong> individual custom field mapping values above, or "
1284
  "make several updates and click <strong>Save Changes</strong> below to apply "
@@ -1289,36 +1302,36 @@ msgid ""
1289
  "changes."
1290
  msgstr ""
1291
 
1292
- #: includes/class-mla-core-options.php:1192
1293
  msgid "IPTC/EXIF Mapping help"
1294
  msgstr ""
1295
 
1296
- #: includes/class-mla-core-options.php:1203 includes/class-mla-data.php:4345
1297
- #: includes/class-mla-edit-media.php:481 includes/class-mla-main.php:2404
1298
  msgid "Name/Slug"
1299
  msgstr ""
1300
 
1301
- #: includes/class-mla-core-options.php:1210 includes/class-mla-data.php:4388
1302
  #: includes/class-mla-edit-media.php:484 includes/class-mla-list-table.php:1429
1303
- #: includes/class-mla-main.php:2408 includes/class-mla-options.php:472
1304
  #: includes/mla-main-search-box-template.php:51
1305
  #: includes/mla-media-modal-js-template.php:46
1306
  msgid "ALT Text"
1307
  msgstr ""
1308
 
1309
- #: includes/class-mla-core-options.php:1217 includes/class-mla-data.php:4401
1310
- #: includes/class-mla-edit-media.php:482 includes/class-mla-main.php:2405
1311
  #: includes/class-mla-options.php:475
1312
  #: includes/mla-main-search-box-template.php:53
1313
  #: includes/mla-media-modal-js-template.php:51
1314
  msgid "Caption"
1315
  msgstr ""
1316
 
1317
- #: includes/class-mla-core-options.php:1224 includes/class-mla-data.php:4410
1318
- #: includes/class-mla-edit-media.php:483 includes/class-mla-main.php:2406
1319
  #: includes/class-mla-options.php:478
1320
  #: includes/class-mla-settings-custom-fields-tab.php:480
1321
- #: includes/class-mla-settings-iptc-exif-tab.php:501
1322
  #: includes/class-mla-settings-upload-tab.php:199
1323
  #: includes/class-mla-settings-upload-tab.php:543
1324
  #: includes/class-mla-settings-view-tab.php:128
@@ -1334,214 +1347,214 @@ msgstr ""
1334
  msgid "Description"
1335
  msgstr ""
1336
 
1337
- #: includes/class-mla-core-options.php:1231 includes/class-mla-data.php:4472
1338
- #: includes/class-mla-data.php:4481 includes/class-mla-edit-media.php:485
1339
- #: includes/class-mla-edit-media.php:749 includes/class-mla-main.php:2410
1340
  msgid "Uploaded on"
1341
  msgstr ""
1342
 
1343
- #: includes/class-mla-core-options.php:1251
1344
  msgid "Enable View and Post MIME Type Support"
1345
  msgstr ""
1346
 
1347
- #: includes/class-mla-core-options.php:1254
1348
  msgid ""
1349
  "Check/uncheck this option to enable/disable Post MIME Type Support, then "
1350
  "click <strong>Save Changes</strong> to record the new setting."
1351
  msgstr ""
1352
 
1353
- #: includes/class-mla-core-options.php:1263
1354
  msgid "Post MIME Types help."
1355
  msgstr ""
1356
 
1357
- #: includes/class-mla-core-options.php:1266
1358
  #: includes/class-mla-mime-types.php:1696
1359
  #: includes/class-mla-settings-custom-fields-tab.php:2501
1360
  #: includes/class-mla-settings-documentation-tab.php:1545
1361
- #: includes/class-mla-settings-iptc-exif-tab.php:2813
1362
  #: includes/class-mla-settings-shortcodes-tab.php:1984
1363
  msgctxt "table_view_singular"
1364
  msgid "All"
1365
  msgstr ""
1366
 
1367
- #: includes/class-mla-core-options.php:1267
1368
  #: includes/class-mla-mime-types.php:1697
1369
  #: includes/class-mla-settings-custom-fields-tab.php:2502
1370
  #: includes/class-mla-settings-documentation-tab.php:1546
1371
- #: includes/class-mla-settings-iptc-exif-tab.php:2814
1372
  #: includes/class-mla-settings-shortcodes-tab.php:1985
1373
  msgctxt "table_view_plural"
1374
  msgid "All"
1375
  msgstr ""
1376
 
1377
- #: includes/class-mla-core-options.php:1272
1378
- #: includes/class-mla-core-options.php:1326
1379
- #: includes/class-mla-core-options.php:1335
1380
- #: includes/class-mla-core-options.php:1344
1381
- #: includes/class-mla-core-options.php:1353
1382
  msgctxt "post_mime_types_description"
1383
  msgid "Built-in view"
1384
  msgstr ""
1385
 
1386
- #: includes/class-mla-core-options.php:1275
1387
  msgctxt "table_view_singular"
1388
  msgid "Image"
1389
  msgstr ""
1390
 
1391
- #: includes/class-mla-core-options.php:1276
1392
  msgctxt "table_view_plural"
1393
  msgid "Images"
1394
  msgstr ""
1395
 
1396
- #: includes/class-mla-core-options.php:1281
1397
  msgctxt "post_mime_types_description"
1398
  msgid "All image subtypes"
1399
  msgstr ""
1400
 
1401
- #: includes/class-mla-core-options.php:1284
1402
  msgctxt "table_view_singular"
1403
  msgid "Audio"
1404
  msgstr ""
1405
 
1406
- #: includes/class-mla-core-options.php:1285
1407
  msgctxt "table_view_plural"
1408
  msgid "Audio"
1409
  msgstr ""
1410
 
1411
- #: includes/class-mla-core-options.php:1290
1412
  msgctxt "post_mime_types_description"
1413
  msgid "All audio subtypes"
1414
  msgstr ""
1415
 
1416
- #: includes/class-mla-core-options.php:1293
1417
  msgctxt "table_view_singular"
1418
  msgid "Video"
1419
  msgstr ""
1420
 
1421
- #: includes/class-mla-core-options.php:1294
1422
  msgctxt "table_view_plural"
1423
  msgid "Video"
1424
  msgstr ""
1425
 
1426
- #: includes/class-mla-core-options.php:1299
1427
  msgctxt "post_mime_types_description"
1428
  msgid "All video subtypes"
1429
  msgstr ""
1430
 
1431
- #: includes/class-mla-core-options.php:1302
1432
  msgctxt "table_view_singular"
1433
  msgid "Text"
1434
  msgstr ""
1435
 
1436
- #: includes/class-mla-core-options.php:1303
1437
  msgctxt "table_view_plural"
1438
  msgid "Text"
1439
  msgstr ""
1440
 
1441
- #: includes/class-mla-core-options.php:1308
1442
  msgctxt "post_mime_types_description"
1443
  msgid "All text subtypes"
1444
  msgstr ""
1445
 
1446
- #: includes/class-mla-core-options.php:1311
1447
  msgctxt "table_view_singular"
1448
  msgid "Application"
1449
  msgstr ""
1450
 
1451
- #: includes/class-mla-core-options.php:1312
1452
  msgctxt "table_view_plural"
1453
  msgid "Applications"
1454
  msgstr ""
1455
 
1456
- #: includes/class-mla-core-options.php:1317
1457
  msgctxt "post_mime_types_description"
1458
  msgid "All application subtypes"
1459
  msgstr ""
1460
 
1461
- #: includes/class-mla-core-options.php:1321
1462
  msgctxt "table_view_plural"
1463
  msgid "Unattached"
1464
  msgstr ""
1465
 
1466
- #: includes/class-mla-core-options.php:1329
1467
  msgctxt "table_view_singular"
1468
  msgid "Attached"
1469
  msgstr ""
1470
 
1471
- #: includes/class-mla-core-options.php:1330
1472
  msgctxt "table_view_plural"
1473
  msgid "Attached"
1474
  msgstr ""
1475
 
1476
- #: includes/class-mla-core-options.php:1338
1477
  msgctxt "table_view_singular"
1478
  msgid "Mine"
1479
  msgstr ""
1480
 
1481
- #: includes/class-mla-core-options.php:1339
1482
  msgctxt "table_view_plural"
1483
  msgid "Mine"
1484
  msgstr ""
1485
 
1486
- #: includes/class-mla-core-options.php:1347
1487
  msgctxt "table_view_singular"
1488
  msgid "Trash"
1489
  msgstr ""
1490
 
1491
- #: includes/class-mla-core-options.php:1348
1492
  msgctxt "table_view_plural"
1493
  msgid "Trash"
1494
  msgstr ""
1495
 
1496
- #: includes/class-mla-core-options.php:1359
1497
  msgid "Enable Upload MIME Type Support"
1498
  msgstr ""
1499
 
1500
- #: includes/class-mla-core-options.php:1362
1501
  msgid ""
1502
  "Check/uncheck this option to enable/disable Upload MIME Type Support, then "
1503
  "click <strong>Save Changes</strong> to record the new setting."
1504
  msgstr ""
1505
 
1506
- #: includes/class-mla-core-options.php:1371
1507
  msgid "Upload MIME Types help."
1508
  msgstr ""
1509
 
1510
- #: includes/class-mla-core-options.php:1376
1511
  msgid "Enable MLA File Type Icons Support"
1512
  msgstr ""
1513
 
1514
- #: includes/class-mla-core-options.php:1379
1515
  msgid ""
1516
  "Check/uncheck this option to enable/disable MLA File Type Icons Support, "
1517
  "then click <strong>Save Changes</strong> to record the new setting."
1518
  msgstr ""
1519
 
1520
- #: includes/class-mla-core-options.php:1383
1521
  msgid "Always Use MLA MIME Type"
1522
  msgstr ""
1523
 
1524
- #: includes/class-mla-core-options.php:1386
1525
  msgid ""
1526
  "Check this option to override WordPress MIME Type security checks, then "
1527
  "click <strong>Save Changes</strong> to record the new setting."
1528
  msgstr ""
1529
 
1530
- #: includes/class-mla-core-options.php:1390
1531
  msgid "Display Limit"
1532
  msgstr ""
1533
 
1534
- #: includes/class-mla-core-options.php:1394
1535
  msgid ""
1536
  "Enter the maximum number of debug log characters to display; enter zero or "
1537
  "leave blank for no limit."
1538
  msgstr ""
1539
 
1540
- #: includes/class-mla-core-options.php:1398
1541
  msgid "Debug File"
1542
  msgstr ""
1543
 
1544
- #: includes/class-mla-core-options.php:1402
1545
  msgid ""
1546
  "Enter the name of an alternate, MLA-specific debug log file; leave blank to "
1547
  "use the PHP error_log.<br>&nbsp;&nbsp;The WP_CONTENT_DIR value (below) will "
@@ -1549,43 +1562,43 @@ msgid ""
1549
  "\"."
1550
  msgstr ""
1551
 
1552
- #: includes/class-mla-core-options.php:1406
1553
  msgid "Replace PHP error_log file"
1554
  msgstr ""
1555
 
1556
- #: includes/class-mla-core-options.php:1409
1557
  msgid ""
1558
  "Check this option to replace the PHP error_log file with the MLA Debug File."
1559
  "<br>&nbsp;&nbsp;allows capture of PHP messages in the MLA Debug File."
1560
  msgstr ""
1561
 
1562
- #: includes/class-mla-core-options.php:1413
1563
  msgid "PHP Reporting"
1564
  msgstr ""
1565
 
1566
- #: includes/class-mla-core-options.php:1417
1567
  msgid ""
1568
  "Enter a numeric error_reporting value, e.g., 0x7FFF or 32767; leave blank to "
1569
  "use the existing PHP error_reporting value."
1570
  msgstr ""
1571
 
1572
- #: includes/class-mla-core-options.php:1421
1573
  msgid "MLA Reporting"
1574
  msgstr ""
1575
 
1576
- #: includes/class-mla-core-options.php:1425
1577
  msgid ""
1578
  "Enter a numeric MLA_DEBUG_LEVEL value, e.g., 0x0003 or 3; leave blank to use "
1579
  "the existing MLA_DEBUG_LEVEL value."
1580
  msgstr ""
1581
 
1582
- #: includes/class-mla-core-options.php:1429
1583
  msgid "Add Tax. Columns"
1584
  msgstr ""
1585
 
1586
- #: includes/class-mla-core-options.php:1432
1587
  msgid ""
1588
- "Check this option to add Term ID and Term-Taxonomy ID columns to the "
1589
  "taxonomy edit admin submenu tables."
1590
  msgstr ""
1591
 
@@ -1601,33 +1614,33 @@ msgctxt "error_log"
1601
  msgid "%1$s: mla_load_template file \"%2$s\" bad source type \"%3$s\"."
1602
  msgstr ""
1603
 
1604
- #: includes/class-mla-core.php:1367
1605
  #, php-format
1606
  msgid "%1$s: Bad specification part \"%2$s\""
1607
  msgstr ""
1608
 
1609
- #: includes/class-mla-core.php:1373
1610
  #, php-format
1611
  msgid "%1$s: Bad specification option \"%2$s\""
1612
  msgstr ""
1613
 
1614
- #: includes/class-mla-core.php:1377
1615
  #, php-format
1616
  msgid "%1$s: Bad specification prefix \"%2$s\""
1617
  msgstr ""
1618
 
1619
- #: includes/class-mla-core.php:1478
1620
  msgid "Most Used"
1621
  msgstr ""
1622
 
1623
- #: includes/class-mla-core.php:1507
1624
  #, php-format
1625
  msgid "+ %s"
1626
  msgstr ""
1627
 
1628
- #: includes/class-mla-core.php:1513 includes/class-mla-edit-media.php:362
1629
- #: includes/class-mla-edit-media.php:418 includes/class-mla-main.php:2073
1630
- #: includes/class-mla-main.php:2269 includes/class-mla-main.php:2335
1631
  #: includes/class-mla-media-modal.php:648
1632
  #: includes/mla-media-modal-js-template.php:26
1633
  #: includes/mla-media-modal-js-template.php:73
@@ -1714,7 +1727,7 @@ msgstr ""
1714
  #: includes/class-mla-data-query.php:294
1715
  #: includes/class-mla-settings-custom-fields-tab.php:1250
1716
  #: includes/class-mla-settings-documentation-tab.php:536
1717
- #: includes/class-mla-settings-iptc-exif-tab.php:1353
1718
  #: includes/class-mla-settings-shortcodes-tab.php:978
1719
  msgctxt "list_table_column"
1720
  msgid "Name"
@@ -1764,7 +1777,7 @@ msgstr ""
1764
  #: includes/class-mla-mime-types.php:708 includes/class-mla-mime-types.php:787
1765
  #: includes/class-mla-settings-custom-fields-tab.php:1260
1766
  #: includes/class-mla-settings-documentation-tab.php:539
1767
- #: includes/class-mla-settings-iptc-exif-tab.php:1365
1768
  #: includes/class-mla-settings-shortcodes-tab.php:981
1769
  msgctxt "list_table_column"
1770
  msgid "Description"
@@ -1812,55 +1825,55 @@ msgctxt "error_log"
1812
  msgid " %1$s: %2$s non-array \"%3$s\""
1813
  msgstr ""
1814
 
1815
- #: includes/class-mla-data-query.php:1388
1816
  #, php-format
1817
  msgctxt "error_log"
1818
  msgid " %1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1819
  msgstr ""
1820
 
1821
- #: includes/class-mla-data-query.php:1404
1822
  #, php-format
1823
  msgctxt "error_log"
1824
  msgid " %1$s: _execute_list_table_query WP_Query = \"%2$s\"."
1825
  msgstr ""
1826
 
1827
- #: includes/class-mla-data-query.php:1406
1828
  #, php-format
1829
  msgctxt "error_log"
1830
  msgid " %1$s: _execute_list_table_query SQL_request = \"%2$s\"."
1831
  msgstr ""
1832
 
1833
- #: includes/class-mla-data-query.php:1920
1834
  #, php-format
1835
  msgctxt "error_log"
1836
  msgid " %1$s: mla_query_posts_search_filter = \"%2$s\"."
1837
  msgstr ""
1838
 
1839
- #: includes/class-mla-data-query.php:2011
1840
  #, php-format
1841
  msgctxt "error_log"
1842
  msgid " %1$s: mla_query_posts_where_filter = \"%2$s\"."
1843
  msgstr ""
1844
 
1845
- #: includes/class-mla-data-query.php:2083
1846
  #, php-format
1847
  msgctxt "error_log"
1848
  msgid " %1$s: mla_query_posts_join_filter = \"%2$s\"."
1849
  msgstr ""
1850
 
1851
- #: includes/class-mla-data-query.php:2178
1852
  #, php-format
1853
  msgctxt "error_log"
1854
  msgid " %1$s: mla_query_posts_orderby_filter = \"%2$s\"."
1855
  msgstr ""
1856
 
1857
- #: includes/class-mla-data-query.php:2264
1858
  #, php-format
1859
  msgctxt "error_log"
1860
  msgid " %1$s: mla_query_posts_clauses_filter = \"%2$s\"."
1861
  msgstr ""
1862
 
1863
- #: includes/class-mla-data-query.php:2283
1864
  #, php-format
1865
  msgctxt "error_log"
1866
  msgid " %1$s: mla_query_posts_clauses_request_filter = \"%2$s\"."
@@ -1942,7 +1955,7 @@ msgctxt "error_log"
1942
  msgid "%1$s: _evaluate_template_node unknown type \"%2$s\"."
1943
  msgstr ""
1944
 
1945
- #: includes/class-mla-data.php:1598
1946
  #, php-format
1947
  msgctxt "error_log"
1948
  msgid ""
@@ -1950,50 +1963,50 @@ msgid ""
1950
  "\"."
1951
  msgstr ""
1952
 
1953
- #: includes/class-mla-data.php:1797
1954
  #, php-format
1955
  msgctxt "error_log"
1956
  msgid "%1$s: mla_get_attachment_by_id(%2$d) not found."
1957
  msgstr ""
1958
 
1959
- #: includes/class-mla-data.php:1803
1960
  #, php-format
1961
  msgctxt "error_log"
1962
  msgid "%1$s: mla_get_attachment_by_id(%2$d) wrong post_type \"%3$s\"."
1963
  msgstr ""
1964
 
1965
- #: includes/class-mla-data.php:2153
1966
  msgctxt "error_log"
1967
  msgid "mla_parse_xml_string xml_parse_into_struct failed."
1968
  msgstr ""
1969
 
1970
- #: includes/class-mla-data.php:2157
1971
  msgctxt "error_log"
1972
  msgid "mla_parse_xml_string set option failed."
1973
  msgstr ""
1974
 
1975
- #: includes/class-mla-data.php:3754
1976
  msgid "Auto"
1977
  msgstr ""
1978
 
1979
- #: includes/class-mla-data.php:3757
1980
  msgid "Manual"
1981
  msgstr ""
1982
 
1983
- #: includes/class-mla-data.php:3760
1984
  msgid "Bracket"
1985
  msgstr ""
1986
 
1987
- #: includes/class-mla-data.php:3763
1988
  msgid "Other"
1989
  msgstr ""
1990
 
1991
- #: includes/class-mla-data.php:3770
1992
  #: includes/class-mla-settings-custom-fields-tab.php:841
1993
  #: includes/class-mla-settings-custom-fields-tab.php:1563
1994
- #: includes/class-mla-settings-iptc-exif-tab.php:949
1995
- #: includes/class-mla-settings-iptc-exif-tab.php:1697
1996
- #: includes/class-mla-settings-iptc-exif-tab.php:2523
1997
  #: includes/class-mla-settings-view-tab.php:401
1998
  #: includes/class-mla-settings-view-tab.php:802
1999
  #: includes/class-mla-settings-view-tab.php:818
@@ -2001,12 +2014,12 @@ msgstr ""
2001
  msgid "Yes"
2002
  msgstr ""
2003
 
2004
- #: includes/class-mla-data.php:3772
2005
  #: includes/class-mla-settings-custom-fields-tab.php:842
2006
  #: includes/class-mla-settings-custom-fields-tab.php:1565
2007
- #: includes/class-mla-settings-iptc-exif-tab.php:950
2008
- #: includes/class-mla-settings-iptc-exif-tab.php:1699
2009
- #: includes/class-mla-settings-iptc-exif-tab.php:2523
2010
  #: includes/class-mla-settings-view-tab.php:400
2011
  #: includes/class-mla-settings-view-tab.php:804
2012
  #: includes/class-mla-settings-view-tab.php:820
@@ -2014,172 +2027,173 @@ msgstr ""
2014
  msgid "No"
2015
  msgstr ""
2016
 
2017
- #: includes/class-mla-data.php:4018 includes/class-mla-data.php:4142
2018
  #, php-format
2019
  msgid "Deleting %1$s"
2020
  msgstr ""
2021
 
2022
- #: includes/class-mla-data.php:4021
2023
  #, php-format
2024
  msgid "%1$s: meta:%2$s not found"
2025
  msgstr ""
2026
 
2027
- #: includes/class-mla-data.php:4030 includes/class-mla-data.php:4153
2028
- #: includes/class-mla-data.php:4165
2029
  #, php-format
2030
  msgid "Adding %1$s = %2$s"
2031
  msgstr ""
2032
 
2033
- #: includes/class-mla-data.php:4034
2034
  #, php-format
2035
  msgid "%1$s: Adding meta:%2$s; not found"
2036
  msgstr ""
2037
 
2038
- #: includes/class-mla-data.php:4041
2039
  #, php-format
2040
  msgid "Deleting Null meta:%1$s"
2041
  msgstr ""
2042
 
2043
- #: includes/class-mla-data.php:4051 includes/class-mla-data.php:4234
2044
- #: includes/class-mla-data.php:4321 includes/class-mla-data.php:4345
2045
- #: includes/class-mla-data.php:4388 includes/class-mla-data.php:4401
2046
- #: includes/class-mla-data.php:4410 includes/class-mla-data.php:4421
2047
- #: includes/class-mla-data.php:4432 includes/class-mla-data.php:4445
2048
- #: includes/class-mla-data.php:4454 includes/class-mla-data.php:4463
2049
- #: includes/class-mla-data.php:4472 includes/class-mla-data.php:4481
2050
  #: includes/class-mla-mime-types.php:1300
2051
  #: includes/class-mla-mime-types.php:2412
2052
  #, php-format
2053
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\""
2054
  msgstr ""
2055
 
2056
- #: includes/class-mla-data.php:4056
2057
  #, php-format
2058
  msgid "%1$s: Changing meta:%2$s; not found"
2059
  msgstr ""
2060
 
2061
- #: includes/class-mla-data.php:4189
2062
  #, php-format
2063
  msgid "Deleting old %1$s values"
2064
  msgstr ""
2065
 
2066
- #: includes/class-mla-data.php:4219
2067
  #, php-format
2068
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\"; %4$d updates"
2069
  msgstr ""
2070
 
2071
- #: includes/class-mla-data.php:4296
2072
  msgid "Could not retrieve Attachment."
2073
  msgstr ""
2074
 
2075
- #: includes/class-mla-data.php:4342
2076
  #, php-format
2077
  msgid "%1$s: Could not change Name/Slug \"%2$s\"; name already exists"
2078
  msgstr ""
2079
 
2080
- #: includes/class-mla-data.php:4372
2081
  #, php-format
2082
  msgid "Deleting ALT Text, was \"%1$s\""
2083
  msgstr ""
2084
 
2085
- #: includes/class-mla-data.php:4375
2086
  #, php-format
2087
  msgid "%1$s: Could not delete ALT Text, remains \"%2$s\""
2088
  msgstr ""
2089
 
2090
- #: includes/class-mla-data.php:4391
2091
  #, php-format
2092
  msgid "%1$s: Could not change ALT Text from \"%2$s\" to \"%3$s\""
2093
  msgstr ""
2094
 
2095
- #: includes/class-mla-data.php:4421 includes/class-mla-list-table.php:1131
2096
  #: includes/class-mla-list-table.php:1134
2097
  #: includes/class-mla-list-table.php:1137
2098
- #: includes/class-mla-list-table.php:1205 includes/class-mla-options.php:2143
2099
- #: includes/class-mla-settings-iptc-exif-tab.php:526
2100
- #: includes/class-mla-settings-iptc-exif-tab.php:919
 
2101
  msgid "Parent"
2102
  msgstr ""
2103
 
2104
- #: includes/class-mla-data.php:4432 includes/class-mla-edit-media.php:889
2105
- #: includes/class-mla-edit-media.php:1094 includes/class-mla-main.php:2413
2106
  #: includes/class-mla-settings-view-tab.php:126
2107
  #: includes/class-mla-settings-view-tab.php:389
2108
  msgid "Menu Order"
2109
  msgstr ""
2110
 
2111
- #: includes/class-mla-data.php:4445 includes/class-mla-edit-media.php:449
2112
  #: includes/class-mla-list-table.php:1585
2113
- #: includes/class-mla-list-table.php:1588 includes/class-mla-main.php:2212
2114
- #: includes/class-mla-main.php:2372
2115
  msgid "Author"
2116
  msgstr ""
2117
 
2118
- #: includes/class-mla-data.php:4454 includes/class-mla-edit-media.php:474
2119
- #: includes/class-mla-main.php:2425
2120
  msgid "Comments"
2121
  msgstr ""
2122
 
2123
- #: includes/class-mla-data.php:4463 includes/class-mla-edit-media.php:475
2124
- #: includes/class-mla-main.php:2426
2125
  msgid "Pings"
2126
  msgstr ""
2127
 
2128
- #: includes/class-mla-data.php:4511
2129
  #, php-format
2130
  msgid "You cannot assign \"%1$s\" terms"
2131
  msgstr ""
2132
 
2133
- #: includes/class-mla-data.php:4524
2134
  msgctxt "tag delimiter"
2135
  msgid ","
2136
  msgstr ""
2137
 
2138
- #: includes/class-mla-data.php:4563
2139
  msgid "Adding"
2140
  msgstr ""
2141
 
2142
- #: includes/class-mla-data.php:4568
2143
  msgid "Removing"
2144
  msgstr ""
2145
 
2146
- #: includes/class-mla-data.php:4577
2147
  msgid "Replacing"
2148
  msgstr ""
2149
 
2150
- #: includes/class-mla-data.php:4585
2151
  msgid "Ignoring"
2152
  msgstr ""
2153
 
2154
- #: includes/class-mla-data.php:4602
2155
  #, php-format
2156
  msgid "%1$s \"%2$s\" terms"
2157
  msgstr ""
2158
 
2159
- #: includes/class-mla-data.php:4614 includes/class-mla-main.php:1403
2160
  #, php-format
2161
  msgid "Item %1$d, no changes detected."
2162
  msgstr ""
2163
 
2164
- #: includes/class-mla-data.php:4647
2165
  #, php-format
2166
  msgid "Item %1$d updated."
2167
  msgstr ""
2168
 
2169
- #: includes/class-mla-data.php:4665
2170
  #, php-format
2171
  msgid "%1$s: Item %2$d update failed."
2172
  msgstr ""
2173
 
2174
  #: includes/class-mla-edit-media.php:131 includes/class-mla-edit-media.php:185
2175
  #: includes/class-mla-edit-media.php:238 includes/class-mla-main.php:470
2176
- #: includes/class-mla-main.php:1158 includes/class-mla-main.php:1944
2177
- #: includes/class-mla-media-modal.php:268 includes/class-mla-options.php:1649
2178
  #: includes/class-mla-polylang-support.php:379
2179
  #: includes/class-mla-settings-custom-fields-tab.php:57
2180
  #: includes/class-mla-settings-custom-fields-tab.php:90
2181
- #: includes/class-mla-settings-iptc-exif-tab.php:57
2182
- #: includes/class-mla-settings-iptc-exif-tab.php:90
2183
  #: includes/class-mla-settings-upload-tab.php:46
2184
  #: includes/class-mla-settings-view-tab.php:46
2185
  #: includes/class-mla-thumbnail-generation.php:99
@@ -2209,7 +2223,7 @@ msgstr ""
2209
  msgid "An ajax.done error has occurred. Please reload the page and try again."
2210
  msgstr ""
2211
 
2212
- #: includes/class-mla-edit-media.php:242 includes/class-mla-main.php:2153
2213
  #, php-format
2214
  msgid "Uploaded on: %s"
2215
  msgstr ""
@@ -2218,8 +2232,8 @@ msgstr ""
2218
  msgid "Last modified"
2219
  msgstr ""
2220
 
2221
- #: includes/class-mla-edit-media.php:321 includes/class-mla-main.php:2067
2222
- #: includes/class-mla-main.php:2206 includes/class-mla-media-modal.php:618
2223
  #: includes/class-mla-mime-types.php:825 includes/class-mla-mime-types.php:1466
2224
  #: includes/class-mla-mime-types.php:2645
2225
  #: includes/class-mla-settings-custom-fields-tab.php:578
@@ -2227,9 +2241,9 @@ msgstr ""
2227
  #: includes/class-mla-settings-custom-fields-tab.php:2079
2228
  #: includes/class-mla-settings-documentation-tab.php:337
2229
  #: includes/class-mla-settings-documentation-tab.php:1278
2230
- #: includes/class-mla-settings-iptc-exif-tab.php:686
2231
- #: includes/class-mla-settings-iptc-exif-tab.php:855
2232
- #: includes/class-mla-settings-iptc-exif-tab.php:2354
2233
  #: includes/class-mla-settings-shortcodes-tab.php:524
2234
  #: includes/class-mla-settings-shortcodes-tab.php:1643
2235
  #: includes/class-mla-settings-upload-tab.php:322
@@ -2240,42 +2254,42 @@ msgid "%1$s: %2$s non-array \"%3$s\""
2240
  msgstr ""
2241
 
2242
  #: includes/class-mla-edit-media.php:341 includes/class-mla-edit-media.php:397
2243
- #: includes/class-mla-main.php:2248 includes/class-mla-main.php:2314
2244
  msgid "+&nbsp;Add&nbsp;New&nbsp;Term"
2245
  msgstr ""
2246
 
2247
  #: includes/class-mla-edit-media.php:342 includes/class-mla-edit-media.php:398
2248
- #: includes/class-mla-main.php:2249 includes/class-mla-main.php:2315
2249
  msgid "Add New"
2250
  msgstr ""
2251
 
2252
  #: includes/class-mla-edit-media.php:360 includes/class-mla-edit-media.php:416
2253
- #: includes/class-mla-main.php:2267 includes/class-mla-main.php:2333
2254
  msgid "?&nbsp;Search"
2255
  msgstr ""
2256
 
2257
  #: includes/class-mla-edit-media.php:363 includes/class-mla-edit-media.php:419
2258
- #: includes/class-mla-edit-media.php:428 includes/class-mla-main.php:2270
2259
- #: includes/class-mla-main.php:2336 includes/class-mla-main.php:2345
2260
  msgid "Add"
2261
  msgstr ""
2262
 
2263
  #: includes/class-mla-edit-media.php:364 includes/class-mla-edit-media.php:420
2264
- #: includes/class-mla-edit-media.php:429 includes/class-mla-main.php:2271
2265
- #: includes/class-mla-main.php:2337 includes/class-mla-main.php:2346
2266
  msgid "Remove"
2267
  msgstr ""
2268
 
2269
  #: includes/class-mla-edit-media.php:365 includes/class-mla-edit-media.php:421
2270
- #: includes/class-mla-edit-media.php:430 includes/class-mla-main.php:2272
2271
- #: includes/class-mla-main.php:2338 includes/class-mla-main.php:2347
2272
  #: includes/class-mla-settings-custom-fields-tab.php:502
2273
  #: includes/class-mla-settings-custom-fields-tab.php:812
2274
  #: includes/class-mla-settings-custom-fields-tab.php:1549
2275
- #: includes/class-mla-settings-iptc-exif-tab.php:520
2276
- #: includes/class-mla-settings-iptc-exif-tab.php:916
2277
- #: includes/class-mla-settings-iptc-exif-tab.php:1638
2278
- #: includes/class-mla-settings-iptc-exif-tab.php:2504
2279
  msgid "Replace"
2280
  msgstr ""
2281
 
@@ -2285,36 +2299,36 @@ msgid ""
2285
  "menu for more information."
2286
  msgstr ""
2287
 
2288
- #: includes/class-mla-edit-media.php:470 includes/class-mla-main.php:2419
2289
  #: includes/class-mla-settings.php:1391
2290
  msgid "Reset"
2291
  msgstr ""
2292
 
2293
- #: includes/class-mla-edit-media.php:476 includes/class-mla-main.php:2427
2294
- #: includes/class-mla-main.php:2483
2295
  #: includes/class-mla-settings-custom-fields-tab.php:840
2296
- #: includes/class-mla-settings-iptc-exif-tab.php:948
2297
  #: includes/class-mla-settings-upload-tab.php:120
2298
  #: includes/class-mla-settings-upload-tab.php:554
2299
  #: includes/class-mla-settings-view-tab.php:399
2300
  msgid "No Change"
2301
  msgstr ""
2302
 
2303
- #: includes/class-mla-edit-media.php:477 includes/class-mla-main.php:2428
2304
  msgid "Allow"
2305
  msgstr ""
2306
 
2307
- #: includes/class-mla-edit-media.php:478 includes/class-mla-main.php:2429
2308
  msgid "Do not allow"
2309
  msgstr ""
2310
 
2311
  #: includes/class-mla-edit-media.php:486 includes/class-mla-list-table.php:1131
2312
- #: includes/class-mla-list-table.php:1202 includes/class-mla-main.php:2411
2313
  msgid "Parent ID"
2314
  msgstr ""
2315
 
2316
- #: includes/class-mla-edit-media.php:487 includes/class-mla-edit-media.php:1074
2317
- #: includes/class-mla-main.php:2412
2318
  #: includes/class-mla-settings-upload-tab.php:1469
2319
  msgid "Select"
2320
  msgstr ""
@@ -2335,32 +2349,32 @@ msgstr ""
2335
  msgid "IPTC/EXIF mapping is disabled."
2336
  msgstr ""
2337
 
2338
- #: includes/class-mla-edit-media.php:688 includes/class-mla-main.php:2137
2339
  msgid "Month"
2340
  msgstr ""
2341
 
2342
- #: includes/class-mla-edit-media.php:694 includes/class-mla-main.php:2143
2343
  #, php-format
2344
  msgid "%1$s-%2$s"
2345
  msgstr ""
2346
 
2347
- #: includes/class-mla-edit-media.php:698 includes/class-mla-main.php:2147
2348
  msgid "Day"
2349
  msgstr ""
2350
 
2351
- #: includes/class-mla-edit-media.php:699 includes/class-mla-main.php:2148
2352
  msgid "Year"
2353
  msgstr ""
2354
 
2355
- #: includes/class-mla-edit-media.php:700 includes/class-mla-main.php:2149
2356
  msgid "Hour"
2357
  msgstr ""
2358
 
2359
- #: includes/class-mla-edit-media.php:701 includes/class-mla-main.php:2150
2360
  msgid "Minute"
2361
  msgstr ""
2362
 
2363
- #: includes/class-mla-edit-media.php:705 includes/class-mla-main.php:2155
2364
  #, php-format
2365
  msgid "%1$s %2$s, %3$s @ %4$s:%5$s"
2366
  msgstr ""
@@ -2369,16 +2383,16 @@ msgstr ""
2369
  msgid "OK"
2370
  msgstr ""
2371
 
2372
- #: includes/class-mla-edit-media.php:729 includes/class-mla-main.php:2090
2373
- #: includes/class-mla-main.php:2418
2374
  #: includes/class-mla-polylang-support.php:2083
2375
  #: includes/class-mla-settings-custom-fields-tab.php:530
2376
  #: includes/class-mla-settings-custom-fields-tab.php:761
2377
  #: includes/class-mla-settings-custom-fields-tab.php:843
2378
  #: includes/class-mla-settings-documentation-tab.php:210
2379
- #: includes/class-mla-settings-iptc-exif-tab.php:559
2380
- #: includes/class-mla-settings-iptc-exif-tab.php:867
2381
- #: includes/class-mla-settings-iptc-exif-tab.php:951
2382
  #: includes/class-mla-settings-shortcodes-tab.php:426
2383
  #: includes/class-mla-settings-shortcodes-tab.php:497
2384
  #: includes/class-mla-settings-upload-tab.php:202
@@ -2405,8 +2419,8 @@ msgstr ""
2405
  #: includes/class-mla-polylang-support.php:378
2406
  #: includes/class-mla-settings-custom-fields-tab.php:1392
2407
  #: includes/class-mla-settings-custom-fields-tab.php:1739
2408
- #: includes/class-mla-settings-iptc-exif-tab.php:1497
2409
- #: includes/class-mla-settings-iptc-exif-tab.php:1873
2410
  #: includes/class-mla-settings-shortcodes-tab.php:1096
2411
  #: includes/class-mla-settings-upload-tab.php:928
2412
  #: includes/class-mla-settings-upload-tab.php:1213
@@ -2428,7 +2442,7 @@ msgid "Map Custom Field metadata for this item"
2428
  msgstr ""
2429
 
2430
  #: includes/class-mla-edit-media.php:785 includes/class-mla-main.php:1852
2431
- #: includes/class-mla-main.php:2434
2432
  msgid "Map Custom Field metadata"
2433
  msgstr ""
2434
 
@@ -2437,30 +2451,34 @@ msgid "Map IPTC/EXIF metadata for this item"
2437
  msgstr ""
2438
 
2439
  #: includes/class-mla-edit-media.php:789 includes/class-mla-main.php:1855
2440
- #: includes/class-mla-main.php:2432
2441
  msgid "Map IPTC/EXIF metadata"
2442
  msgstr ""
2443
 
2444
- #: includes/class-mla-edit-media.php:885 includes/class-mla-edit-media.php:1075
2445
  msgid "Parent Info"
2446
  msgstr ""
2447
 
2448
- #: includes/class-mla-edit-media.php:895 includes/class-mla-edit-media.php:1118
2449
  msgid "Attachment Metadata"
2450
  msgstr ""
2451
 
2452
- #: includes/class-mla-edit-media.php:965 includes/class-mla-edit-media.php:1007
 
 
 
 
2453
  #: includes/class-mla-main.php:709 includes/class-mla-settings.php:586
2454
  #, php-format
2455
  msgctxt "error_log"
2456
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
2457
  msgstr ""
2458
 
2459
- #: includes/class-mla-edit-media.php:1073
2460
  msgid "Post Parent"
2461
  msgstr ""
2462
 
2463
- #: includes/class-mla-edit-media.php:1074 includes/class-mla-main.php:2072
2464
  msgid "Select Parent"
2465
  msgstr ""
2466
 
@@ -2475,7 +2493,7 @@ msgstr ""
2475
 
2476
  #: includes/class-mla-list-table.php:500
2477
  #: includes/class-mla-settings-custom-fields-tab.php:1037
2478
- #: includes/class-mla-settings-iptc-exif-tab.php:1136
2479
  #: includes/class-mla-settings-upload-tab.php:653
2480
  #: includes/class-mla-settings-view-tab.php:496
2481
  msgid "List View"
@@ -2499,7 +2517,7 @@ msgstr ""
2499
  #: includes/class-mla-list-table.php:648
2500
  #: includes/class-mla-settings-custom-fields-tab.php:1340
2501
  #: includes/class-mla-settings-documentation-tab.php:620
2502
- #: includes/class-mla-settings-iptc-exif-tab.php:1445
2503
  #: includes/class-mla-settings-shortcodes-tab.php:1051
2504
  #: includes/class-mla-settings-upload-tab.php:864
2505
  #: includes/class-mla-settings-upload-tab.php:1417
@@ -2518,7 +2536,7 @@ msgstr ""
2518
 
2519
  #: includes/class-mla-list-table.php:820
2520
  #: includes/class-mla-settings-custom-fields-tab.php:1392
2521
- #: includes/class-mla-settings-iptc-exif-tab.php:1497
2522
  #: includes/class-mla-settings-shortcodes-tab.php:1096
2523
  #: includes/class-mla-settings-upload-tab.php:928
2524
  #: includes/class-mla-settings-view-tab.php:723
@@ -2527,20 +2545,20 @@ msgstr ""
2527
 
2528
  #: includes/class-mla-list-table.php:821
2529
  #: includes/class-mla-settings-custom-fields-tab.php:1395
2530
- #: includes/class-mla-settings-iptc-exif-tab.php:1500
2531
  #: includes/class-mla-settings-upload-tab.php:930
2532
  #: includes/class-mla-settings-view-tab.php:725
2533
  msgid "Edit this item inline"
2534
  msgstr ""
2535
 
2536
- #: includes/class-mla-list-table.php:821 includes/class-mla-main.php:2402
2537
  #: includes/class-mla-options.php:1244
2538
  #: includes/class-mla-settings-custom-fields-tab.php:493
2539
  #: includes/class-mla-settings-custom-fields-tab.php:803
2540
  #: includes/class-mla-settings-custom-fields-tab.php:1395
2541
  #: includes/class-mla-settings-custom-fields-tab.php:1505
2542
- #: includes/class-mla-settings-iptc-exif-tab.php:895
2543
- #: includes/class-mla-settings-iptc-exif-tab.php:1500
2544
  #: includes/class-mla-settings-upload-tab.php:930
2545
  #: includes/class-mla-settings-view-tab.php:725
2546
  msgid "Quick Edit"
@@ -2556,7 +2574,7 @@ msgstr ""
2556
 
2557
  #: includes/class-mla-list-table.php:832
2558
  #: includes/class-mla-settings-custom-fields-tab.php:1403
2559
- #: includes/class-mla-settings-iptc-exif-tab.php:1510
2560
  #: includes/class-mla-settings-shortcodes-tab.php:1102
2561
  #: includes/class-mla-settings-upload-tab.php:934
2562
  #: includes/class-mla-settings-view-tab.php:731
@@ -2567,8 +2585,8 @@ msgstr ""
2567
  #: includes/class-mla-list-table.php:1977
2568
  #: includes/class-mla-settings-custom-fields-tab.php:1403
2569
  #: includes/class-mla-settings-custom-fields-tab.php:1740
2570
- #: includes/class-mla-settings-iptc-exif-tab.php:1510
2571
- #: includes/class-mla-settings-iptc-exif-tab.php:1874
2572
  #: includes/class-mla-settings-shortcodes-tab.php:1102
2573
  #: includes/class-mla-settings-upload-tab.php:934
2574
  #: includes/class-mla-settings-view-tab.php:731
@@ -2637,7 +2655,7 @@ msgstr[1] ""
2637
 
2638
  #: includes/class-mla-list-table.php:2071
2639
  #: includes/class-mla-settings-custom-fields-tab.php:1803
2640
- #: includes/class-mla-settings-iptc-exif-tab.php:1937
2641
  #: includes/class-mla-settings-shortcodes-tab.php:1361
2642
  msgid "Filter"
2643
  msgstr ""
@@ -2664,8 +2682,8 @@ msgstr ""
2664
  #: includes/class-mla-main.php:460
2665
  #: includes/class-mla-settings-custom-fields-tab.php:55
2666
  #: includes/class-mla-settings-custom-fields-tab.php:88
2667
- #: includes/class-mla-settings-iptc-exif-tab.php:55
2668
- #: includes/class-mla-settings-iptc-exif-tab.php:88
2669
  #: includes/class-mla-settings-upload-tab.php:44
2670
  #: includes/class-mla-settings-view-tab.php:44
2671
  msgid "Remove From Bulk Edit"
@@ -2675,33 +2693,33 @@ msgstr ""
2675
  msgid "Bulk Edit items"
2676
  msgstr ""
2677
 
2678
- #: includes/class-mla-main.php:463 includes/class-mla-main.php:2435
2679
  #: includes/class-mla-settings-custom-fields-tab.php:61
2680
- #: includes/class-mla-settings-iptc-exif-tab.php:61
2681
  msgid "Waiting"
2682
  msgstr ""
2683
 
2684
- #: includes/class-mla-main.php:464 includes/class-mla-main.php:2437
2685
  #: includes/class-mla-settings-custom-fields-tab.php:63
2686
- #: includes/class-mla-settings-iptc-exif-tab.php:63
2687
  msgid "Complete"
2688
  msgstr ""
2689
 
2690
  #: includes/class-mla-main.php:465
2691
  #: includes/class-mla-settings-custom-fields-tab.php:64
2692
- #: includes/class-mla-settings-iptc-exif-tab.php:64
2693
  msgid "Unchanged"
2694
  msgstr ""
2695
 
2696
  #: includes/class-mla-main.php:466
2697
  #: includes/class-mla-settings-custom-fields-tab.php:65
2698
- #: includes/class-mla-settings-iptc-exif-tab.php:65
2699
  msgid "Succeeded"
2700
  msgstr ""
2701
 
2702
  #: includes/class-mla-main.php:467
2703
  #: includes/class-mla-settings-custom-fields-tab.php:66
2704
- #: includes/class-mla-settings-iptc-exif-tab.php:66
2705
  msgid "Failed"
2706
  msgstr ""
2707
 
@@ -2716,7 +2734,7 @@ msgid_plural "%d items permanently deleted."
2716
  msgstr[0] ""
2717
  msgstr[1] ""
2718
 
2719
- #: includes/class-mla-main.php:611 includes/class-mla-main.php:2622
2720
  #, php-format
2721
  msgid "Item %1$d moved to Trash."
2722
  msgstr ""
@@ -2768,7 +2786,7 @@ msgstr ""
2768
  #: includes/class-mla-main.php:1462
2769
  #: includes/class-mla-settings-custom-fields-tab.php:635
2770
  #: includes/class-mla-settings-documentation-tab.php:287
2771
- #: includes/class-mla-settings-iptc-exif-tab.php:743
2772
  #: includes/class-mla-settings-shortcodes-tab.php:586
2773
  #: includes/class-mla-settings-upload-tab.php:421
2774
  #: includes/class-mla-settings-view-tab.php:267
@@ -2804,7 +2822,7 @@ msgstr ""
2804
  #: includes/class-mla-main.php:1688
2805
  #: includes/class-mla-settings-custom-fields-tab.php:663
2806
  #: includes/class-mla-settings-documentation-tab.php:321
2807
- #: includes/class-mla-settings-iptc-exif-tab.php:771
2808
  #: includes/class-mla-settings-shortcodes-tab.php:613
2809
  #: includes/class-mla-settings-upload-tab.php:459
2810
  #: includes/class-mla-settings-view-tab.php:304
@@ -2824,14 +2842,14 @@ msgstr ""
2824
  msgid "search results for"
2825
  msgstr ""
2826
 
2827
- #: includes/class-mla-main.php:1858 includes/class-mla-main.php:2094
2828
- #: includes/class-mla-main.php:2420
2829
  #: includes/class-mla-settings-custom-fields-tab.php:532
2830
  #: includes/class-mla-settings-custom-fields-tab.php:844
2831
  #: includes/class-mla-settings-documentation-tab.php:664
2832
  #: includes/class-mla-settings-documentation-tab.php:863
2833
- #: includes/class-mla-settings-iptc-exif-tab.php:561
2834
- #: includes/class-mla-settings-iptc-exif-tab.php:952
2835
  #: includes/class-mla-settings-shortcodes-tab.php:500
2836
  #: includes/class-mla-settings-upload-tab.php:201
2837
  #: includes/class-mla-settings-upload-tab.php:551
@@ -2840,66 +2858,66 @@ msgstr ""
2840
  msgid "Update"
2841
  msgstr ""
2842
 
2843
- #: includes/class-mla-main.php:2029
2844
  msgid "All Post Types"
2845
  msgstr ""
2846
 
2847
- #: includes/class-mla-main.php:2075
2848
  msgid "For"
2849
  msgstr ""
2850
 
2851
- #: includes/class-mla-main.php:2085
2852
- #: includes/class-mla-shortcode-support.php:1232
2853
  msgid "Unattached"
2854
  msgstr ""
2855
 
2856
- #: includes/class-mla-main.php:2421 includes/class-mla-options.php:1258
2857
  #: includes/class-mla-settings-custom-fields-tab.php:496
2858
  #: includes/class-mla-settings-custom-fields-tab.php:806
2859
  #: includes/class-mla-settings-custom-fields-tab.php:1509
2860
- #: includes/class-mla-settings-iptc-exif-tab.php:896
2861
  #: includes/class-mla-settings-upload-tab.php:552
2862
  #: includes/class-mla-settings-view-tab.php:398
2863
  msgid "Bulk Edit"
2864
  msgstr ""
2865
 
2866
- #: includes/class-mla-main.php:2436
2867
  msgid "In-process"
2868
  msgstr ""
2869
 
2870
- #: includes/class-mla-main.php:2535
2871
  msgid "You are not allowed to delete this item."
2872
  msgstr ""
2873
 
2874
- #: includes/class-mla-main.php:2543
2875
  #, php-format
2876
  msgid "%1$s: Item %2$d could NOT be deleted."
2877
  msgstr ""
2878
 
2879
- #: includes/class-mla-main.php:2550
2880
  #, php-format
2881
  msgid "Item %1$d permanently deleted."
2882
  msgstr ""
2883
 
2884
- #: includes/class-mla-main.php:2567
2885
  msgid "You are not allowed to move this item out of the Trash."
2886
  msgstr ""
2887
 
2888
- #: includes/class-mla-main.php:2575
2889
  #, php-format
2890
  msgid "%1$s: Item %2$d could NOT be restored from Trash."
2891
  msgstr ""
2892
 
2893
- #: includes/class-mla-main.php:2590
2894
  #, php-format
2895
  msgid "Item %1$d restored from Trash."
2896
  msgstr ""
2897
 
2898
- #: includes/class-mla-main.php:2607
2899
  msgid "You are not allowed to move this item to the Trash."
2900
  msgstr ""
2901
 
2902
- #: includes/class-mla-main.php:2615
2903
  #, php-format
2904
  msgid "%1$s: Item %2$d could NOT be moved to Trash."
2905
  msgstr ""
@@ -3006,7 +3024,7 @@ msgstr ""
3006
 
3007
  #: includes/class-mla-mime-types.php:630
3008
  #: includes/class-mla-settings-custom-fields-tab.php:1255
3009
- #: includes/class-mla-settings-iptc-exif-tab.php:1359
3010
  msgctxt "list_table_column"
3011
  msgid "Status"
3012
  msgstr ""
@@ -3177,13 +3195,13 @@ msgid "MLA"
3177
  msgstr ""
3178
 
3179
  #: includes/class-mla-mime-types.php:1716
3180
- #: includes/class-mla-settings-iptc-exif-tab.php:2825
3181
  msgctxt "table_view_singular"
3182
  msgid "Custom"
3183
  msgstr ""
3184
 
3185
  #: includes/class-mla-mime-types.php:1717
3186
- #: includes/class-mla-settings-iptc-exif-tab.php:2826
3187
  msgctxt "table_view_plural"
3188
  msgid "Custom"
3189
  msgstr ""
@@ -3345,38 +3363,38 @@ msgstr ""
3345
  msgid "Attachments"
3346
  msgstr ""
3347
 
3348
- #: includes/class-mla-objects.php:158
3349
  msgid "Term ID"
3350
  msgstr ""
3351
 
3352
- #: includes/class-mla-objects.php:159
3353
  msgid "Term-Tax ID"
3354
  msgstr ""
3355
 
3356
- #: includes/class-mla-objects.php:267
3357
  #, php-format
3358
  msgctxt "error_log"
3359
  msgid ""
3360
  "%1$s: mla_taxonomy_column_filter( \"%2$s\" ) - get_term failed: \"%3$s\""
3361
  msgstr ""
3362
 
3363
- #: includes/class-mla-objects.php:291
3364
  msgid "click to search"
3365
  msgstr ""
3366
 
3367
- #: includes/class-mla-objects.php:323
3368
  msgid "Shortcode(s), HTML and/or Plain Text"
3369
  msgstr ""
3370
 
3371
- #: includes/class-mla-objects.php:331
3372
  msgid "MLA Text"
3373
  msgstr ""
3374
 
3375
- #: includes/class-mla-objects.php:375
3376
  msgid "Automatically add paragraphs"
3377
  msgstr ""
3378
 
3379
- #: includes/class-mla-objects.php:376
3380
  msgid "Add .textwidget div tags"
3381
  msgstr ""
3382
 
@@ -3487,8 +3505,8 @@ msgstr ""
3487
  #: includes/class-mla-options.php:469
3488
  #: includes/class-mla-settings-custom-fields-tab.php:472
3489
  #: includes/class-mla-settings-custom-fields-tab.php:790
3490
- #: includes/class-mla-settings-iptc-exif-tab.php:493
3491
- #: includes/class-mla-settings-iptc-exif-tab.php:897
3492
  #: includes/class-mla-settings-shortcodes-tab.php:422
3493
  #: includes/class-mla-settings-shortcodes-tab.php:493
3494
  #: includes/mla-main-search-box-template.php:49
@@ -3509,8 +3527,8 @@ msgid "Terms"
3509
  msgstr ""
3510
 
3511
  #: includes/class-mla-options.php:1001 includes/class-mla-options.php:1047
3512
- #: includes/class-mla-options.php:1881 includes/class-mla-options.php:1912
3513
- #: includes/class-mla-options.php:1917
3514
  #: includes/class-mla-settings-upload-tab.php:126
3515
  msgid "None (select a value)"
3516
  msgstr ""
@@ -3523,35 +3541,35 @@ msgstr ""
3523
  msgid "Template (see below)"
3524
  msgstr ""
3525
 
3526
- #: includes/class-mla-options.php:1133 includes/class-mla-options.php:2199
3527
  #, php-format
3528
  msgid "%1$s: New field %2$s already exists."
3529
  msgstr ""
3530
 
3531
- #: includes/class-mla-options.php:1138 includes/class-mla-options.php:2204
3532
  #, php-format
3533
  msgid "Adding new field %1$s."
3534
  msgstr ""
3535
 
3536
- #: includes/class-mla-options.php:1146 includes/class-mla-options.php:2212
3537
  #, php-format
3538
  msgid "Adding new rule for %1$s."
3539
  msgstr ""
3540
 
3541
- #: includes/class-mla-options.php:1172 includes/class-mla-options.php:2069
3542
- #: includes/class-mla-options.php:2238
3543
  #, php-format
3544
  msgid "Deleting rule for %1$s."
3545
  msgstr ""
3546
 
3547
  #: includes/class-mla-options.php:1195 includes/class-mla-options.php:1216
3548
  #: includes/class-mla-options.php:1266 includes/class-mla-options.php:1273
3549
- #: includes/class-mla-options.php:1985 includes/class-mla-options.php:1992
3550
- #: includes/class-mla-options.php:1999 includes/class-mla-options.php:2094
3551
- #: includes/class-mla-options.php:2101 includes/class-mla-options.php:2136
3552
- #: includes/class-mla-options.php:2143 includes/class-mla-options.php:2248
3553
- #: includes/class-mla-options.php:2255 includes/class-mla-options.php:2290
3554
- #: includes/class-mla-options.php:2297
3555
  #, php-format
3556
  msgid "%1$s changing %2$s from %3$s to %4$s."
3557
  msgstr ""
@@ -3562,52 +3580,52 @@ msgstr ""
3562
  msgid "Data Source"
3563
  msgstr ""
3564
 
3565
- #: includes/class-mla-options.php:1201 includes/class-mla-options.php:2019
3566
- #: includes/class-mla-options.php:2121 includes/class-mla-options.php:2275
3567
  msgid "Replace to Keep"
3568
  msgstr ""
3569
 
3570
- #: includes/class-mla-options.php:1204 includes/class-mla-options.php:2022
3571
- #: includes/class-mla-options.php:2124 includes/class-mla-options.php:2278
3572
  msgid "Keep to Replace"
3573
  msgstr ""
3574
 
3575
  #: includes/class-mla-options.php:1209 includes/class-mla-options.php:1230
3576
  #: includes/class-mla-options.php:1244 includes/class-mla-options.php:1258
3577
- #: includes/class-mla-options.php:1287 includes/class-mla-options.php:2013
3578
- #: includes/class-mla-options.php:2027 includes/class-mla-options.php:2115
3579
- #: includes/class-mla-options.php:2129 includes/class-mla-options.php:2269
3580
- #: includes/class-mla-options.php:2283 includes/class-mla-options.php:2311
3581
  #, php-format
3582
  msgid "%1$s changing %2$s value from %3$s."
3583
  msgstr ""
3584
 
3585
- #: includes/class-mla-options.php:1209 includes/class-mla-options.php:2027
3586
- #: includes/class-mla-options.php:2129 includes/class-mla-options.php:2283
3587
  #: includes/class-mla-settings-custom-fields-tab.php:498
3588
  #: includes/class-mla-settings-custom-fields-tab.php:808
3589
- #: includes/class-mla-settings-iptc-exif-tab.php:516
3590
- #: includes/class-mla-settings-iptc-exif-tab.php:912
3591
  msgid "Existing Text"
3592
  msgstr ""
3593
 
3594
- #: includes/class-mla-options.php:1216 includes/class-mla-options.php:2290
3595
  #: includes/class-mla-settings-custom-fields-tab.php:503
3596
  #: includes/class-mla-settings-custom-fields-tab.php:813
3597
- #: includes/class-mla-settings-iptc-exif-tab.php:531
3598
- #: includes/class-mla-settings-iptc-exif-tab.php:920
3599
  msgid "Format"
3600
  msgstr ""
3601
 
3602
  #: includes/class-mla-options.php:1222 includes/class-mla-options.php:1236
3603
  #: includes/class-mla-options.php:1250 includes/class-mla-options.php:1279
3604
- #: includes/class-mla-options.php:2303
3605
  msgid "unchecked to checked"
3606
  msgstr ""
3607
 
3608
  #: includes/class-mla-options.php:1225 includes/class-mla-options.php:1239
3609
  #: includes/class-mla-options.php:1253 includes/class-mla-options.php:1282
3610
- #: includes/class-mla-options.php:2306
3611
  msgid "checked to unchecked"
3612
  msgstr ""
3613
 
@@ -3622,58 +3640,58 @@ msgstr ""
3622
  msgid "Metavalue name"
3623
  msgstr ""
3624
 
3625
- #: includes/class-mla-options.php:1273 includes/class-mla-options.php:2297
3626
  #: includes/class-mla-settings-custom-fields-tab.php:510
3627
  #: includes/class-mla-settings-custom-fields-tab.php:820
3628
- #: includes/class-mla-settings-iptc-exif-tab.php:538
3629
- #: includes/class-mla-settings-iptc-exif-tab.php:927
3630
  msgid "Option"
3631
  msgstr ""
3632
 
3633
- #: includes/class-mla-options.php:1287 includes/class-mla-options.php:2311
3634
- #: includes/class-mla-settings-iptc-exif-tab.php:550
3635
  msgid "Delete NULL values"
3636
  msgstr ""
3637
 
3638
- #: includes/class-mla-options.php:1973
3639
  #, php-format
3640
  msgid "%1$s: No old values for %2$s."
3641
  msgstr ""
3642
 
3643
- #: includes/class-mla-options.php:1985
3644
  msgid "Field Title"
3645
  msgstr ""
3646
 
3647
- #: includes/class-mla-options.php:1992 includes/class-mla-options.php:2094
3648
- #: includes/class-mla-options.php:2248
3649
- #: includes/class-mla-settings-iptc-exif-tab.php:505
3650
- #: includes/class-mla-settings-iptc-exif-tab.php:901
3651
  msgid "IPTC Value"
3652
  msgstr ""
3653
 
3654
- #: includes/class-mla-options.php:1999 includes/class-mla-options.php:2101
3655
- #: includes/class-mla-options.php:2255
3656
  msgid "EXIF Value"
3657
  msgstr ""
3658
 
3659
- #: includes/class-mla-options.php:2005 includes/class-mla-options.php:2107
3660
- #: includes/class-mla-options.php:2261
3661
  msgid "EXIF to IPTC"
3662
  msgstr ""
3663
 
3664
- #: includes/class-mla-options.php:2008 includes/class-mla-options.php:2110
3665
- #: includes/class-mla-options.php:2264
3666
  msgid "IPTC to EXIF"
3667
  msgstr ""
3668
 
3669
- #: includes/class-mla-options.php:2013 includes/class-mla-options.php:2115
3670
- #: includes/class-mla-options.php:2269
3671
- #: includes/class-mla-settings-iptc-exif-tab.php:511
3672
- #: includes/class-mla-settings-iptc-exif-tab.php:907
3673
  msgid "Priority"
3674
  msgstr ""
3675
 
3676
- #: includes/class-mla-options.php:2136
3677
  msgid "Delimiter(s)"
3678
  msgstr ""
3679
 
@@ -3867,8 +3885,8 @@ msgstr ""
3867
  #: includes/class-mla-polylang-support.php:2602
3868
  #: includes/class-mla-settings-custom-fields-tab.php:686
3869
  #: includes/class-mla-settings-custom-fields-tab.php:787
3870
- #: includes/class-mla-settings-iptc-exif-tab.php:794
3871
- #: includes/class-mla-settings-iptc-exif-tab.php:892
3872
  #: includes/class-mla-settings-shortcodes-tab.php:733
3873
  #: includes/class-mla-settings-upload-tab.php:485
3874
  #: includes/class-mla-settings-upload-tab.php:531
@@ -3911,8 +3929,8 @@ msgstr ""
3911
 
3912
  #: includes/class-mla-settings-custom-fields-tab.php:54
3913
  #: includes/class-mla-settings-custom-fields-tab.php:87
3914
- #: includes/class-mla-settings-iptc-exif-tab.php:54
3915
- #: includes/class-mla-settings-iptc-exif-tab.php:87
3916
  #: includes/class-mla-settings-upload-tab.php:43
3917
  #: includes/class-mla-settings-view-tab.php:43
3918
  msgid "Error while making the changes."
@@ -3920,30 +3938,30 @@ msgstr ""
3920
 
3921
  #: includes/class-mla-settings-custom-fields-tab.php:56
3922
  #: includes/class-mla-settings-custom-fields-tab.php:89
3923
- #: includes/class-mla-settings-iptc-exif-tab.php:56
3924
- #: includes/class-mla-settings-iptc-exif-tab.php:89
3925
  #: includes/class-mla-settings-upload-tab.php:45
3926
  #: includes/class-mla-settings-view-tab.php:45
3927
  msgid "no slug"
3928
  msgstr ""
3929
 
3930
  #: includes/class-mla-settings-custom-fields-tab.php:62
3931
- #: includes/class-mla-settings-iptc-exif-tab.php:62
3932
  msgid "Running"
3933
  msgstr ""
3934
 
3935
  #: includes/class-mla-settings-custom-fields-tab.php:67
3936
- #: includes/class-mla-settings-iptc-exif-tab.php:67
3937
  msgid "Skipped"
3938
  msgstr ""
3939
 
3940
  #: includes/class-mla-settings-custom-fields-tab.php:68
3941
- #: includes/class-mla-settings-iptc-exif-tab.php:68
3942
  msgid "Reprocessed"
3943
  msgstr ""
3944
 
3945
  #: includes/class-mla-settings-custom-fields-tab.php:69
3946
- #: includes/class-mla-settings-iptc-exif-tab.php:69
3947
  msgid "PAUSED"
3948
  msgstr ""
3949
 
@@ -3956,113 +3974,113 @@ msgid "Custom field no mapping changes detected."
3956
  msgstr ""
3957
 
3958
  #: includes/class-mla-settings-custom-fields-tab.php:169
3959
- #: includes/class-mla-settings-iptc-exif-tab.php:171
3960
  msgid "No custom field mapping rules to process."
3961
  msgstr ""
3962
 
3963
  #: includes/class-mla-settings-custom-fields-tab.php:202
3964
- #: includes/class-mla-settings-iptc-exif-tab.php:205
3965
  #, php-format
3966
  msgid "%1$s mapping completed; %2$d attachment(s) examined, %3$d updated."
3967
  msgstr ""
3968
 
3969
  #: includes/class-mla-settings-custom-fields-tab.php:202
3970
  #: includes/class-mla-settings-custom-fields-tab.php:205
3971
- #: includes/class-mla-settings-iptc-exif-tab.php:205
3972
- #: includes/class-mla-settings-iptc-exif-tab.php:208
3973
  msgid "Custom field"
3974
  msgstr ""
3975
 
3976
  #: includes/class-mla-settings-custom-fields-tab.php:205
3977
- #: includes/class-mla-settings-iptc-exif-tab.php:208
3978
  #, php-format
3979
  msgid ""
3980
  "%1$s mapping completed; %2$d attachment(s) examined, no changes detected."
3981
  msgstr ""
3982
 
3983
  #: includes/class-mla-settings-custom-fields-tab.php:252
3984
- #: includes/class-mla-settings-iptc-exif-tab.php:258
3985
  msgid ": No custom field name selected/entered"
3986
  msgstr ""
3987
 
3988
  #: includes/class-mla-settings-custom-fields-tab.php:256
3989
  #: includes/class-mla-settings-custom-fields-tab.php:323
3990
- #: includes/class-mla-settings-iptc-exif-tab.php:262
3991
- #: includes/class-mla-settings-iptc-exif-tab.php:331
3992
  msgid ": Rule already exists for the new name"
3993
  msgstr ""
3994
 
3995
  #: includes/class-mla-settings-custom-fields-tab.php:274
3996
- #: includes/class-mla-settings-iptc-exif-tab.php:279
3997
  msgid "Rule added"
3998
  msgstr ""
3999
 
4000
  #: includes/class-mla-settings-custom-fields-tab.php:277
4001
- #: includes/class-mla-settings-iptc-exif-tab.php:282
4002
  msgid ": Rule addition failed"
4003
  msgstr ""
4004
 
4005
  #: includes/class-mla-settings-custom-fields-tab.php:327
4006
- #: includes/class-mla-settings-iptc-exif-tab.php:335
4007
  msgid ": Invalid rule name must be changed"
4008
  msgstr ""
4009
 
4010
  #: includes/class-mla-settings-custom-fields-tab.php:350
4011
  #: includes/class-mla-settings-custom-fields-tab.php:442
4012
  #: includes/class-mla-settings-custom-fields-tab.php:998
4013
- #: includes/class-mla-settings-iptc-exif-tab.php:365
4014
- #: includes/class-mla-settings-iptc-exif-tab.php:370
4015
- #: includes/class-mla-settings-iptc-exif-tab.php:460
4016
- #: includes/class-mla-settings-iptc-exif-tab.php:1097
4017
  msgid ": Rule update failed"
4018
  msgstr ""
4019
 
4020
  #: includes/class-mla-settings-custom-fields-tab.php:355
4021
  #: includes/class-mla-settings-custom-fields-tab.php:445
4022
- #: includes/class-mla-settings-iptc-exif-tab.php:375
4023
- #: includes/class-mla-settings-iptc-exif-tab.php:463
4024
  msgid "Rule updated"
4025
  msgstr ""
4026
 
4027
  #: includes/class-mla-settings-custom-fields-tab.php:379
4028
- #: includes/class-mla-settings-iptc-exif-tab.php:399
4029
  #, php-format
4030
  msgid "Custom Field Rule \"%1$s\" deleted."
4031
  msgstr ""
4032
 
4033
  #: includes/class-mla-settings-custom-fields-tab.php:466
4034
- #: includes/class-mla-settings-iptc-exif-tab.php:484
4035
  msgid "Edit Rule"
4036
  msgstr ""
4037
 
4038
  #: includes/class-mla-settings-custom-fields-tab.php:475
4039
- #: includes/class-mla-settings-iptc-exif-tab.php:496
4040
  msgid ""
4041
  "This is the name of the custom field to which the rule applies.<br>Only one "
4042
  "rule is allowed for each custom field."
4043
  msgstr ""
4044
 
4045
  #: includes/class-mla-settings-custom-fields-tab.php:476
4046
- #: includes/class-mla-settings-iptc-exif-tab.php:497
4047
  msgid "Change Name"
4048
  msgstr ""
4049
 
4050
  #: includes/class-mla-settings-custom-fields-tab.php:477
4051
- #: includes/class-mla-settings-iptc-exif-tab.php:498
4052
  msgid "Cancel Name Change"
4053
  msgstr ""
4054
 
4055
  #: includes/class-mla-settings-custom-fields-tab.php:478
4056
  #: includes/class-mla-settings-custom-fields-tab.php:792
4057
- #: includes/class-mla-settings-iptc-exif-tab.php:499
4058
- #: includes/class-mla-settings-iptc-exif-tab.php:899
4059
  msgid "Enter new field"
4060
  msgstr ""
4061
 
4062
  #: includes/class-mla-settings-custom-fields-tab.php:479
4063
  #: includes/class-mla-settings-custom-fields-tab.php:793
4064
- #: includes/class-mla-settings-iptc-exif-tab.php:500
4065
- #: includes/class-mla-settings-iptc-exif-tab.php:900
4066
  msgid "Cancel new field"
4067
  msgstr ""
4068
 
@@ -4098,80 +4116,80 @@ msgstr ""
4098
  #: includes/class-mla-settings-custom-fields-tab.php:500
4099
  #: includes/class-mla-settings-custom-fields-tab.php:810
4100
  #: includes/class-mla-settings-custom-fields-tab.php:1547
4101
- #: includes/class-mla-settings-iptc-exif-tab.php:518
4102
- #: includes/class-mla-settings-iptc-exif-tab.php:914
4103
- #: includes/class-mla-settings-iptc-exif-tab.php:1636
4104
- #: includes/class-mla-settings-iptc-exif-tab.php:2504
4105
  #: includes/class-mla-thumbnail-generation.php:650
4106
  msgid "Keep"
4107
  msgstr ""
4108
 
4109
  #: includes/class-mla-settings-custom-fields-tab.php:505
4110
  #: includes/class-mla-settings-custom-fields-tab.php:815
4111
- #: includes/class-mla-settings-iptc-exif-tab.php:533
4112
- #: includes/class-mla-settings-iptc-exif-tab.php:922
4113
  msgid "Native"
4114
  msgstr ""
4115
 
4116
  #: includes/class-mla-settings-custom-fields-tab.php:507
4117
  #: includes/class-mla-settings-custom-fields-tab.php:817
4118
- #: includes/class-mla-settings-iptc-exif-tab.php:535
4119
- #: includes/class-mla-settings-iptc-exif-tab.php:924
4120
  msgid "Commas"
4121
  msgstr ""
4122
 
4123
  #: includes/class-mla-settings-custom-fields-tab.php:509
4124
  #: includes/class-mla-settings-custom-fields-tab.php:819
4125
- #: includes/class-mla-settings-iptc-exif-tab.php:537
4126
- #: includes/class-mla-settings-iptc-exif-tab.php:926
4127
  msgid "Raw"
4128
  msgstr ""
4129
 
4130
  #: includes/class-mla-settings-custom-fields-tab.php:512
4131
  #: includes/class-mla-settings-custom-fields-tab.php:822
4132
- #: includes/class-mla-settings-iptc-exif-tab.php:540
4133
- #: includes/class-mla-settings-iptc-exif-tab.php:929
4134
  msgid "Text"
4135
  msgstr ""
4136
 
4137
  #: includes/class-mla-settings-custom-fields-tab.php:514
4138
  #: includes/class-mla-settings-custom-fields-tab.php:824
4139
- #: includes/class-mla-settings-iptc-exif-tab.php:542
4140
- #: includes/class-mla-settings-iptc-exif-tab.php:931
4141
  msgid "Single"
4142
  msgstr ""
4143
 
4144
  #: includes/class-mla-settings-custom-fields-tab.php:516
4145
  #: includes/class-mla-settings-custom-fields-tab.php:826
4146
- #: includes/class-mla-settings-iptc-exif-tab.php:544
4147
- #: includes/class-mla-settings-iptc-exif-tab.php:933
4148
  msgid "Export"
4149
  msgstr ""
4150
 
4151
  #: includes/class-mla-settings-custom-fields-tab.php:518
4152
  #: includes/class-mla-settings-custom-fields-tab.php:828
4153
- #: includes/class-mla-settings-iptc-exif-tab.php:546
4154
- #: includes/class-mla-settings-iptc-exif-tab.php:935
4155
  msgid "Array"
4156
  msgstr ""
4157
 
4158
  #: includes/class-mla-settings-custom-fields-tab.php:520
4159
  #: includes/class-mla-settings-custom-fields-tab.php:830
4160
- #: includes/class-mla-settings-iptc-exif-tab.php:548
4161
- #: includes/class-mla-settings-iptc-exif-tab.php:937
4162
  msgid "Multi"
4163
  msgstr ""
4164
 
4165
  #: includes/class-mla-settings-custom-fields-tab.php:522
4166
  #: includes/class-mla-settings-custom-fields-tab.php:832
4167
- #: includes/class-mla-settings-iptc-exif-tab.php:939
4168
  msgid "Delete NULL Values"
4169
  msgstr ""
4170
 
4171
  #: includes/class-mla-settings-custom-fields-tab.php:523
4172
  #: includes/class-mla-settings-custom-fields-tab.php:833
4173
- #: includes/class-mla-settings-iptc-exif-tab.php:551
4174
- #: includes/class-mla-settings-iptc-exif-tab.php:940
4175
  msgid "Do not store empty custom field values"
4176
  msgstr ""
4177
 
@@ -4180,11 +4198,11 @@ msgstr ""
4180
  #: includes/class-mla-settings-custom-fields-tab.php:1531
4181
  #: includes/class-mla-settings-custom-fields-tab.php:1762
4182
  #: includes/class-mla-settings-documentation-tab.php:1226
4183
- #: includes/class-mla-settings-iptc-exif-tab.php:555
4184
- #: includes/class-mla-settings-iptc-exif-tab.php:943
4185
- #: includes/class-mla-settings-iptc-exif-tab.php:1652
4186
- #: includes/class-mla-settings-iptc-exif-tab.php:1896
4187
- #: includes/class-mla-settings-iptc-exif-tab.php:2507
4188
  #: includes/class-mla-settings-upload-tab.php:555
4189
  #: includes/class-mla-settings-upload-tab.php:1041
4190
  msgid "Active"
@@ -4195,11 +4213,11 @@ msgstr ""
4195
  #: includes/class-mla-settings-custom-fields-tab.php:1533
4196
  #: includes/class-mla-settings-custom-fields-tab.php:1765
4197
  #: includes/class-mla-settings-documentation-tab.php:1228
4198
- #: includes/class-mla-settings-iptc-exif-tab.php:557
4199
- #: includes/class-mla-settings-iptc-exif-tab.php:945
4200
- #: includes/class-mla-settings-iptc-exif-tab.php:1654
4201
- #: includes/class-mla-settings-iptc-exif-tab.php:1899
4202
- #: includes/class-mla-settings-iptc-exif-tab.php:2507
4203
  #: includes/class-mla-settings-upload-tab.php:197
4204
  #: includes/class-mla-settings-upload-tab.php:541
4205
  #: includes/class-mla-settings-upload-tab.php:1039
@@ -4207,7 +4225,7 @@ msgid "Inactive"
4207
  msgstr ""
4208
 
4209
  #: includes/class-mla-settings-custom-fields-tab.php:560
4210
- #: includes/class-mla-settings-iptc-exif-tab.php:668
4211
  #, php-format
4212
  msgid "Custom Field Rule \"%1$s\": %2$s"
4213
  msgstr ""
@@ -4219,8 +4237,8 @@ msgstr ""
4219
  #: includes/class-mla-settings-custom-fields-tab.php:611
4220
  #: includes/class-mla-settings-custom-fields-tab.php:639
4221
  #: includes/class-mla-settings-documentation-tab.php:277
4222
- #: includes/class-mla-settings-iptc-exif-tab.php:719
4223
- #: includes/class-mla-settings-iptc-exif-tab.php:747
4224
  #: includes/class-mla-settings-shortcodes-tab.php:574
4225
  #: includes/class-mla-settings-upload-tab.php:410
4226
  #: includes/class-mla-settings-view-tab.php:257
@@ -4237,43 +4255,43 @@ msgid "Custom Field Mapping Progress"
4237
  msgstr ""
4238
 
4239
  #: includes/class-mla-settings-custom-fields-tab.php:755
4240
- #: includes/class-mla-settings-iptc-exif-tab.php:861
4241
  msgid "DO NOT DO THE FOLLOWING (they will cause mapping to fail)"
4242
  msgstr ""
4243
 
4244
  #: includes/class-mla-settings-custom-fields-tab.php:756
4245
- #: includes/class-mla-settings-iptc-exif-tab.php:862
4246
  msgid "Close the window"
4247
  msgstr ""
4248
 
4249
  #: includes/class-mla-settings-custom-fields-tab.php:757
4250
- #: includes/class-mla-settings-iptc-exif-tab.php:863
4251
  msgid "Reload the page"
4252
  msgstr ""
4253
 
4254
  #: includes/class-mla-settings-custom-fields-tab.php:758
4255
- #: includes/class-mla-settings-iptc-exif-tab.php:864
4256
  msgid "Click the browser&rsquo;s Stop, Back or forward buttons"
4257
  msgstr ""
4258
 
4259
  #: includes/class-mla-settings-custom-fields-tab.php:759
4260
- #: includes/class-mla-settings-iptc-exif-tab.php:865
4261
  msgid "Progress"
4262
  msgstr ""
4263
 
4264
  #: includes/class-mla-settings-custom-fields-tab.php:760
4265
- #: includes/class-mla-settings-iptc-exif-tab.php:866
4266
  msgid "Pause"
4267
  msgstr ""
4268
 
4269
  #: includes/class-mla-settings-custom-fields-tab.php:762
4270
- #: includes/class-mla-settings-iptc-exif-tab.php:868
4271
  msgid "Resume"
4272
  msgstr ""
4273
 
4274
  #: includes/class-mla-settings-custom-fields-tab.php:763
4275
  #: includes/class-mla-settings-documentation-tab.php:152
4276
- #: includes/class-mla-settings-iptc-exif-tab.php:869
4277
  #: includes/class-mla-settings-shortcodes-tab.php:497
4278
  #: includes/class-mla-template-support.php:160
4279
  #: includes/class-mla-template-support.php:166
@@ -4298,7 +4316,7 @@ msgid ""
4298
  msgstr ""
4299
 
4300
  #: includes/class-mla-settings-custom-fields-tab.php:776
4301
- #: includes/class-mla-settings-iptc-exif-tab.php:882
4302
  msgid ""
4303
  "You can find more information about using the controls in this tab to define "
4304
  "mapping rules and apply them by clicking the \"Help\" control in the upper-"
@@ -4306,54 +4324,54 @@ msgid ""
4306
  msgstr ""
4307
 
4308
  #: includes/class-mla-settings-custom-fields-tab.php:781
4309
- #: includes/class-mla-settings-iptc-exif-tab.php:887
4310
  #: includes/class-mla-settings-shortcodes-tab.php:731
4311
  msgid "Search results for"
4312
  msgstr ""
4313
 
4314
  #: includes/class-mla-settings-custom-fields-tab.php:783
4315
- #: includes/class-mla-settings-iptc-exif-tab.php:888
4316
  msgid "Search Rules Text"
4317
  msgstr ""
4318
 
4319
  #: includes/class-mla-settings-custom-fields-tab.php:785
4320
- #: includes/class-mla-settings-iptc-exif-tab.php:890
4321
  msgid "Search Rules"
4322
  msgstr ""
4323
 
4324
  #: includes/class-mla-settings-custom-fields-tab.php:788
4325
- #: includes/class-mla-settings-iptc-exif-tab.php:893
4326
  msgid "Execute All Rules"
4327
  msgstr ""
4328
 
4329
  #: includes/class-mla-settings-custom-fields-tab.php:789
4330
- #: includes/class-mla-settings-iptc-exif-tab.php:894
4331
  msgid "Add New Custom Field Rule"
4332
  msgstr ""
4333
 
4334
  #: includes/class-mla-settings-custom-fields-tab.php:839
4335
- #: includes/class-mla-settings-iptc-exif-tab.php:946
4336
  msgid "Add Rule"
4337
  msgstr ""
4338
 
4339
  #: includes/class-mla-settings-custom-fields-tab.php:910
4340
  #: includes/class-mla-settings-custom-fields-tab.php:932
4341
- #: includes/class-mla-settings-iptc-exif-tab.php:1026
4342
  msgid "Nothing to execute"
4343
  msgstr ""
4344
 
4345
  #: includes/class-mla-settings-custom-fields-tab.php:972
4346
- #: includes/class-mla-settings-iptc-exif-tab.php:1067
4347
  msgid "Rule not found"
4348
  msgstr ""
4349
 
4350
  #: includes/class-mla-settings-custom-fields-tab.php:975
4351
- #: includes/class-mla-settings-iptc-exif-tab.php:1063
4352
  msgid "Rule ID not found"
4353
  msgstr ""
4354
 
4355
  #: includes/class-mla-settings-custom-fields-tab.php:1251
4356
- #: includes/class-mla-settings-iptc-exif-tab.php:1354
4357
  msgctxt "list_table_column"
4358
  msgid "Bad Name"
4359
  msgstr ""
@@ -4369,38 +4387,38 @@ msgid "Visibility"
4369
  msgstr ""
4370
 
4371
  #: includes/class-mla-settings-custom-fields-tab.php:1256
4372
- #: includes/class-mla-settings-iptc-exif-tab.php:1358
4373
  msgctxt "list_table_column"
4374
  msgid "Existing Text"
4375
  msgstr ""
4376
 
4377
  #: includes/class-mla-settings-custom-fields-tab.php:1257
4378
- #: includes/class-mla-settings-iptc-exif-tab.php:1362
4379
  msgctxt "list_table_column"
4380
  msgid "Delete NULL"
4381
  msgstr ""
4382
 
4383
  #: includes/class-mla-settings-custom-fields-tab.php:1258
4384
- #: includes/class-mla-settings-iptc-exif-tab.php:1363
4385
  msgctxt "list_table_column"
4386
  msgid "Format"
4387
  msgstr ""
4388
 
4389
  #: includes/class-mla-settings-custom-fields-tab.php:1259
4390
- #: includes/class-mla-settings-iptc-exif-tab.php:1364
4391
  msgctxt "list_table_column"
4392
  msgid "Option"
4393
  msgstr ""
4394
 
4395
  #: includes/class-mla-settings-custom-fields-tab.php:1398
4396
- #: includes/class-mla-settings-iptc-exif-tab.php:1503
4397
  msgid "Map All Attachments"
4398
  msgstr ""
4399
 
4400
  #: includes/class-mla-settings-custom-fields-tab.php:1398
4401
  #: includes/class-mla-settings-custom-fields-tab.php:1741
4402
- #: includes/class-mla-settings-iptc-exif-tab.php:1503
4403
- #: includes/class-mla-settings-iptc-exif-tab.php:1875
4404
  msgid "Execute"
4405
  msgstr ""
4406
 
@@ -4410,13 +4428,13 @@ msgstr ""
4410
 
4411
  #: includes/class-mla-settings-custom-fields-tab.php:1400
4412
  #: includes/class-mla-settings-custom-fields-tab.php:1742
4413
- #: includes/class-mla-settings-iptc-exif-tab.php:1506
4414
- #: includes/class-mla-settings-iptc-exif-tab.php:1876
4415
  msgid "Purge Values"
4416
  msgstr ""
4417
 
4418
  #: includes/class-mla-settings-custom-fields-tab.php:1759
4419
- #: includes/class-mla-settings-iptc-exif-tab.php:1893
4420
  #: includes/class-mla-settings-shortcodes-tab.php:1317
4421
  msgid "Any Status"
4422
  msgstr ""
@@ -4452,13 +4470,13 @@ msgid "Bulk Edit"
4452
  msgstr ""
4453
 
4454
  #: includes/class-mla-settings-custom-fields-tab.php:2517
4455
- #: includes/class-mla-settings-iptc-exif-tab.php:2829
4456
  msgctxt "table_view_singular"
4457
  msgid "Read Only"
4458
  msgstr ""
4459
 
4460
  #: includes/class-mla-settings-custom-fields-tab.php:2518
4461
- #: includes/class-mla-settings-iptc-exif-tab.php:2830
4462
  msgctxt "table_view_plural"
4463
  msgid "Read Only"
4464
  msgstr ""
@@ -4650,133 +4668,133 @@ msgctxt "table_view_plural"
4650
  msgid "Uninstalled"
4651
  msgstr ""
4652
 
4653
- #: includes/class-mla-settings-iptc-exif-tab.php:140
4654
  msgid "IPTC/EXIF mapping settings updated."
4655
  msgstr ""
4656
 
4657
- #: includes/class-mla-settings-iptc-exif-tab.php:142
4658
  msgid "IPTC/EXIF no mapping changes detected."
4659
  msgstr ""
4660
 
4661
- #: includes/class-mla-settings-iptc-exif-tab.php:196
4662
  msgid "updated."
4663
  msgstr ""
4664
 
4665
- #: includes/class-mla-settings-iptc-exif-tab.php:504
4666
  msgid "Notes for the IPTC/EXIF tab submenu table."
4667
  msgstr ""
4668
 
4669
- #: includes/class-mla-settings-iptc-exif-tab.php:507
4670
- #: includes/class-mla-settings-iptc-exif-tab.php:903
4671
  msgid "EXIF/Template Value"
4672
  msgstr ""
4673
 
4674
- #: includes/class-mla-settings-iptc-exif-tab.php:510
4675
- #: includes/class-mla-settings-iptc-exif-tab.php:906
4676
  msgid "EXIF element name or Content Template"
4677
  msgstr ""
4678
 
4679
- #: includes/class-mla-settings-iptc-exif-tab.php:510
4680
  msgid " (starting with \"template:\")"
4681
  msgstr ""
4682
 
4683
- #: includes/class-mla-settings-iptc-exif-tab.php:513
4684
- #: includes/class-mla-settings-iptc-exif-tab.php:909
4685
- #: includes/class-mla-settings-iptc-exif-tab.php:1620
4686
  msgid "IPTC"
4687
  msgstr ""
4688
 
4689
- #: includes/class-mla-settings-iptc-exif-tab.php:515
4690
- #: includes/class-mla-settings-iptc-exif-tab.php:911
4691
- #: includes/class-mla-settings-iptc-exif-tab.php:1623
4692
  msgid "EXIF"
4693
  msgstr ""
4694
 
4695
- #: includes/class-mla-settings-iptc-exif-tab.php:523
4696
- #: includes/class-mla-settings-iptc-exif-tab.php:917
4697
  msgid "Delimiters"
4698
  msgstr ""
4699
 
4700
- #: includes/class-mla-settings-iptc-exif-tab.php:578
4701
  msgid "Standard field mapping"
4702
  msgstr ""
4703
 
4704
- #: includes/class-mla-settings-iptc-exif-tab.php:581
4705
  msgid "Taxonomy term mapping"
4706
  msgstr ""
4707
 
4708
- #: includes/class-mla-settings-iptc-exif-tab.php:604
4709
  msgid "Custom field mapping"
4710
  msgstr ""
4711
 
4712
- #: includes/class-mla-settings-iptc-exif-tab.php:705
4713
  msgid "Edit IPTC EXIF Rule cancelled."
4714
  msgstr ""
4715
 
4716
- #: includes/class-mla-settings-iptc-exif-tab.php:791
4717
  msgid "IPTC/EXIF Mapping Support is disabled"
4718
  msgstr ""
4719
 
4720
- #: includes/class-mla-settings-iptc-exif-tab.php:860
4721
  msgid "IPTC &amp; EXIF Mapping Progress"
4722
  msgstr ""
4723
 
4724
- #: includes/class-mla-settings-iptc-exif-tab.php:878
4725
  msgid "IPTC &amp; EXIF Processing Options"
4726
  msgstr ""
4727
 
4728
- #: includes/class-mla-settings-iptc-exif-tab.php:880
4729
  msgid ""
4730
  "In this tab you can define the rules for mapping IPTC (International Press "
4731
  "Telecommunications Council) and EXIF (EXchangeable Image File) metadata to "
4732
  "WordPress standard attachment fields, taxonomy terms and custom fields."
4733
  msgstr ""
4734
 
4735
- #: includes/class-mla-settings-iptc-exif-tab.php:1355
4736
  msgctxt "list_table_column"
4737
  msgid "IPTC Value"
4738
  msgstr ""
4739
 
4740
- #: includes/class-mla-settings-iptc-exif-tab.php:1356
4741
  msgctxt "list_table_column"
4742
  msgid "EXIF/Template Value"
4743
  msgstr ""
4744
 
4745
- #: includes/class-mla-settings-iptc-exif-tab.php:1357
4746
  msgctxt "list_table_column"
4747
  msgid "Priority "
4748
  msgstr ""
4749
 
4750
- #: includes/class-mla-settings-iptc-exif-tab.php:1360
4751
  msgctxt "list_table_column"
4752
  msgid "Delimiter(s)"
4753
  msgstr ""
4754
 
4755
- #: includes/class-mla-settings-iptc-exif-tab.php:1361
4756
  msgctxt "list_table_column"
4757
  msgid "Parent"
4758
  msgstr ""
4759
 
4760
- #: includes/class-mla-settings-iptc-exif-tab.php:1506
4761
  msgid "Purge IPTC EXIF values"
4762
  msgstr ""
4763
 
4764
- #: includes/class-mla-settings-iptc-exif-tab.php:2817
4765
  msgctxt "table_view_singular"
4766
  msgid "Standard"
4767
  msgstr ""
4768
 
4769
- #: includes/class-mla-settings-iptc-exif-tab.php:2818
4770
  msgctxt "table_view_plural"
4771
  msgid "Standard"
4772
  msgstr ""
4773
 
4774
- #: includes/class-mla-settings-iptc-exif-tab.php:2821
4775
  msgctxt "table_view_singular"
4776
  msgid "Taxonomy"
4777
  msgstr ""
4778
 
4779
- #: includes/class-mla-settings-iptc-exif-tab.php:2822
4780
  msgctxt "table_view_plural"
4781
  msgid "Taxonomy"
4782
  msgstr ""
@@ -5704,180 +5722,180 @@ msgstr ""
5704
  msgid "Settings imported; %1$s updated, %2$s unchanged."
5705
  msgstr ""
5706
 
5707
- #: includes/class-mla-shortcode-support.php:522
5708
- #: includes/class-mla-shortcode-support.php:2012
5709
- #: includes/class-mla-shortcode-support.php:4400
5710
- #: includes/class-mla-shortcode-support.php:4706
5711
  msgid "Previous"
5712
  msgstr ""
5713
 
5714
- #: includes/class-mla-shortcode-support.php:523
5715
- #: includes/class-mla-shortcode-support.php:2013
5716
- #: includes/class-mla-shortcode-support.php:4447
5717
- #: includes/class-mla-shortcode-support.php:4712
5718
  msgid "Next"
5719
  msgstr ""
5720
 
5721
- #: includes/class-mla-shortcode-support.php:599
5722
- #: includes/class-mla-shortcode-support.php:605
5723
- #: includes/class-mla-shortcode-support.php:2159
5724
- #: includes/class-mla-shortcode-support.php:2166
5725
- #: includes/class-mla-shortcode-support.php:3634
5726
- #: includes/class-mla-shortcode-support.php:3641
5727
  #: includes/class-mla-template-support.php:598
5728
  msgid "not found"
5729
  msgstr ""
5730
 
5731
- #: includes/class-mla-shortcode-support.php:636
5732
- #: includes/class-mla-shortcode-support.php:2151
5733
- #: includes/class-mla-shortcode-support.php:3626
5734
  msgid "mla_debug REQUEST"
5735
  msgstr ""
5736
 
5737
- #: includes/class-mla-shortcode-support.php:640
5738
- #: includes/class-mla-shortcode-support.php:642
5739
  msgid "mla_debug attributes_errors"
5740
  msgstr ""
5741
 
5742
- #: includes/class-mla-shortcode-support.php:648
5743
- #: includes/class-mla-shortcode-support.php:2152
5744
- #: includes/class-mla-shortcode-support.php:3627
5745
- #: includes/class-mla-shortcode-support.php:6430
5746
  msgid "mla_debug attributes"
5747
  msgstr ""
5748
 
5749
- #: includes/class-mla-shortcode-support.php:649
5750
- #: includes/class-mla-shortcode-support.php:2153
5751
- #: includes/class-mla-shortcode-support.php:3628
5752
- #: includes/class-mla-shortcode-support.php:6431
5753
  msgid "mla_debug arguments"
5754
  msgstr ""
5755
 
5756
- #: includes/class-mla-shortcode-support.php:741
5757
  msgid "mla_debug empty gallery"
5758
  msgstr ""
5759
 
5760
- #: includes/class-mla-shortcode-support.php:772
5761
  msgid ""
5762
  "<strong>Photonic-enhanced [mla_gallery]</strong> type must be "
5763
  "<strong>default</strong>, query = "
5764
  msgstr ""
5765
 
5766
- #: includes/class-mla-shortcode-support.php:1256
5767
  msgid "unknown"
5768
  msgstr ""
5769
 
5770
- #: includes/class-mla-shortcode-support.php:2290
5771
  msgid "mla_debug empty cloud"
5772
  msgstr ""
5773
 
5774
- #: includes/class-mla-shortcode-support.php:2409
5775
  msgid "mla_debug adding ANY terms"
5776
  msgstr ""
5777
 
5778
- #: includes/class-mla-shortcode-support.php:2447
5779
  msgid "mla_debug adding NO terms"
5780
  msgstr ""
5781
 
5782
- #: includes/class-mla-shortcode-support.php:2485
5783
  msgid "mla_debug adding IGNORE terms"
5784
  msgstr ""
5785
 
5786
- #: includes/class-mla-shortcode-support.php:3764
5787
  msgid "mla_debug empty list"
5788
  msgstr ""
5789
 
5790
- #: includes/class-mla-shortcode-support.php:3787
5791
  msgid "no-terms"
5792
  msgstr ""
5793
 
5794
- #: includes/class-mla-shortcode-support.php:5253
5795
- #: includes/class-mla-shortcode-support.php:5323
5796
- #: includes/class-mla-shortcode-support.php:5788
5797
  #: includes/class-mla-shortcode-support.php:5804
5798
- #: includes/class-mla-shortcode-support.php:5827
5799
  #: includes/class-mla-shortcode-support.php:5843
 
5800
  msgid "Invalid mla_gallery"
5801
  msgstr ""
5802
 
5803
- #: includes/class-mla-shortcode-support.php:6160
5804
- #: includes/class-mla-shortcode-support.php:6513
5805
  msgid "mla_debug query"
5806
  msgstr ""
5807
 
5808
- #: includes/class-mla-shortcode-support.php:6161
5809
  msgid "mla_debug request"
5810
  msgstr ""
5811
 
5812
- #: includes/class-mla-shortcode-support.php:6162
5813
  msgid "mla_debug query_vars"
5814
  msgstr ""
5815
 
5816
- #: includes/class-mla-shortcode-support.php:6163
5817
  msgid "mla_debug post_count"
5818
  msgstr ""
5819
 
5820
- #: includes/class-mla-shortcode-support.php:6164
5821
  msgid "mla_debug found_posts"
5822
  msgstr ""
5823
 
5824
- #: includes/class-mla-shortcode-support.php:6190
5825
  msgid "mla_debug JOIN filter"
5826
  msgstr ""
5827
 
5828
- #: includes/class-mla-shortcode-support.php:6231
5829
  msgid "mla_debug modified JOIN filter"
5830
  msgstr ""
5831
 
5832
- #: includes/class-mla-shortcode-support.php:6256
5833
  msgid "mla_debug WHERE filter"
5834
  msgstr ""
5835
 
5836
- #: includes/class-mla-shortcode-support.php:6293
5837
  msgid "mla_debug modified WHERE filter"
5838
  msgstr ""
5839
 
5840
- #: includes/class-mla-shortcode-support.php:6316
5841
  msgid "mla_debug ORDER BY filter, incoming"
5842
  msgstr ""
5843
 
5844
- #: includes/class-mla-shortcode-support.php:6316
5845
  msgid "Replacement ORDER BY clause"
5846
  msgstr ""
5847
 
5848
- #: includes/class-mla-shortcode-support.php:6357
5849
  msgid "mla_debug posts_clauses filter"
5850
  msgstr ""
5851
 
5852
- #: includes/class-mla-shortcode-support.php:6375
5853
  msgid "mla_debug posts_clauses_request filter"
5854
  msgstr ""
5855
 
5856
- #: includes/class-mla-shortcode-support.php:6514
5857
  msgid "mla_debug results"
5858
  msgstr ""
5859
 
5860
- #: includes/class-mla-shortcode-support.php:6746
5861
  msgid "Invalid taxonomy"
5862
  msgstr ""
5863
 
5864
- #: includes/class-mla-shortcode-support.php:6938
5865
  msgid "mla_debug query arguments"
5866
  msgstr ""
5867
 
5868
- #: includes/class-mla-shortcode-support.php:6939
5869
  msgid "mla_debug last_query"
5870
  msgstr ""
5871
 
5872
- #: includes/class-mla-shortcode-support.php:6940
5873
  msgid "mla_debug last_error"
5874
  msgstr ""
5875
 
5876
- #: includes/class-mla-shortcode-support.php:6941
5877
  msgid "mla_debug num_rows"
5878
  msgstr ""
5879
 
5880
- #: includes/class-mla-shortcode-support.php:6942
5881
  msgid "mla_debug found_rows"
5882
  msgstr ""
5883
 
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
+ "POT-Creation-Date: 2021-10-17 15:53-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@davidlingren.com>\n"
24
  #: includes/class-mla-admin-columns-pro-support-423.php:178
25
  #: includes/class-mla-admin-columns-pro-support-44.php:175
26
  #: includes/class-mla-admin-columns-pro-support.php:193
27
+ #: includes/class-mla-ajax.php:356 includes/class-mla-edit-media.php:1065
28
  #: includes/class-mla-list-table.php:712
29
  msgid "Draft"
30
  msgstr ""
32
  #: includes/class-mla-admin-columns-pro-support-423.php:181
33
  #: includes/class-mla-admin-columns-pro-support-44.php:178
34
  #: includes/class-mla-admin-columns-pro-support.php:196
35
+ #: includes/class-mla-ajax.php:350 includes/class-mla-edit-media.php:1059
36
  #: includes/class-mla-list-table.php:715
37
  msgid "Scheduled"
38
  msgstr ""
40
  #: includes/class-mla-admin-columns-pro-support-423.php:184
41
  #: includes/class-mla-admin-columns-pro-support-44.php:181
42
  #: includes/class-mla-admin-columns-pro-support.php:199
43
+ #: includes/class-mla-edit-media.php:1062 includes/class-mla-list-table.php:718
44
  msgctxt "post state"
45
  msgid "Pending"
46
  msgstr ""
74
  #: includes/class-mla-admin-columns-pro-support.php:692
75
  #: includes/class-mla-admin-columns-pro-support.php:759
76
  #: includes/class-mla-admin-columns-pro-support.php:821
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-core-options.php:492
81
  #: includes/class-mla-list-table.php:1234
82
  #: includes/class-mla-list-table.php:1279
83
  #: includes/class-mla-list-table.php:1329
97
  #: includes/class-mla-admin-columns-pro-support.php:715
98
  #: includes/class-mla-admin-columns-pro-support.php:778
99
  #: includes/class-mla-admin-columns-pro-support.php:840
100
+ #: includes/class-mla-edit-media.php:1166
101
+ #: includes/class-mla-edit-media.php:1203
102
+ #: includes/class-mla-edit-media.php:1238
103
+ #: includes/class-mla-edit-media.php:1272
104
  #: includes/class-mla-list-table.php:1252
105
  #: includes/class-mla-list-table.php:1301
106
  #: includes/class-mla-list-table.php:1347
111
  #: includes/class-mla-admin-columns-pro-support-423.php:1027
112
  #: includes/class-mla-admin-columns-pro-support-44.php:1024
113
  #: includes/class-mla-admin-columns-pro-support.php:1065
114
+ #: includes/class-mla-core-options.php:621
115
+ #: includes/class-mla-core-options.php:887
 
116
  #: includes/class-mla-core-options.php:918
117
+ #: includes/class-mla-core-options.php:932
118
  #: includes/class-mla-list-table.php:561 includes/class-mla-list-table.php:1487
119
  #: includes/class-mla-settings-shortcodes-tab.php:649
120
  msgid "None"
139
  #: includes/class-mla-admin-columns-pro-support-423.php:1134
140
  #: includes/class-mla-admin-columns-pro-support-44.php:1131
141
  #: includes/class-mla-admin-columns-pro-support.php:1172
142
+ #: includes/class-mla-core-options.php:1334
143
  #: includes/class-mla-list-table.php:1643
144
  msgctxt "table_view_singular"
145
  msgid "Unattached"
147
 
148
  #: includes/class-mla-admin-columns-support-deprecated.php:33
149
  #: includes/class-mla-admin-columns-support.php:43
150
+ #: includes/class-mla-core-options.php:571 includes/class-mla-settings.php:426
151
  #: includes/class-mla-settings.php:1446 includes/class-mla-settings.php:1464
152
  #: index.php:46
153
  msgid "Media Library Assistant"
155
 
156
  #: includes/class-mla-admin-columns-support-deprecated.php:34
157
  #: includes/class-mla-admin-columns-support.php:44
158
+ #: includes/class-mla-core-options.php:580
159
  msgid "Assistant"
160
  msgstr ""
161
 
167
 
168
  #: includes/class-mla-ajax.php:77 includes/class-mla-ajax.php:94
169
  #: includes/class-mla-ajax.php:111 includes/class-mla-ajax.php:129
170
+ #: includes/class-mla-ajax.php:148 includes/class-mla-data-query.php:1381
171
+ #: includes/class-mla-data-query.php:1397
172
+ #: includes/class-mla-data-query.php:1399
173
+ #: includes/class-mla-data-query.php:1913
174
+ #: includes/class-mla-data-query.php:2004
175
+ #: includes/class-mla-data-query.php:2076
176
+ #: includes/class-mla-data-query.php:2171
177
+ #: includes/class-mla-data-query.php:2257
178
+ #: includes/class-mla-data-query.php:2276
179
  msgid "DEBUG"
180
  msgstr ""
181
 
207
  "\"%3$d\" count = %4$d."
208
  msgstr ""
209
 
210
+ #: includes/class-mla-ajax.php:337 includes/class-mla-core-options.php:1210
211
+ #: includes/class-mla-data.php:4408 includes/class-mla-edit-media.php:480
212
+ #: includes/class-mla-main.php:2085 includes/class-mla-main.php:2407
213
+ #: includes/class-mla-objects.php:369 includes/class-mla-options.php:466
214
  #: includes/mla-main-search-box-template.php:47
215
  #: includes/mla-media-modal-js-template.php:38
216
  msgid "Title"
217
  msgstr ""
218
 
219
+ #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2086
220
  #: includes/class-mla-thumbnail-generation.php:644
221
  msgid "Type"
222
  msgstr ""
223
 
224
+ #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2087
225
  msgid "Date"
226
  msgstr ""
227
 
228
+ #: includes/class-mla-ajax.php:337 includes/class-mla-main.php:2088
229
  #: includes/class-mla-settings-custom-fields-tab.php:524
230
  #: includes/class-mla-settings-custom-fields-tab.php:834
231
+ #: includes/class-mla-settings-iptc-exif-tab.php:585
232
+ #: includes/class-mla-settings-iptc-exif-tab.php:973
233
  #: includes/class-mla-settings-upload-tab.php:553
234
  msgid "Status"
235
  msgstr ""
251
 
252
  #: includes/class-mla-ajax.php:395 includes/class-mla-ajax.php:402
253
  #: includes/class-mla-ajax.php:411 includes/class-mla-core.php:893
254
+ #: includes/class-mla-core.php:911 includes/class-mla-core.php:1371
255
+ #: includes/class-mla-core.php:1377 includes/class-mla-core.php:1381
256
  #: includes/class-mla-data-office.php:35 includes/class-mla-data-office.php:40
257
  #: includes/class-mla-data-office.php:50 includes/class-mla-data-office.php:54
258
  #: includes/class-mla-data-office.php:69 includes/class-mla-data-office.php:74
263
  #: includes/class-mla-data.php:196 includes/class-mla-data.php:257
264
  #: includes/class-mla-data.php:325 includes/class-mla-data.php:414
265
  #: includes/class-mla-data.php:566 includes/class-mla-data.php:629
266
+ #: includes/class-mla-data.php:1676 includes/class-mla-data.php:1823
267
+ #: includes/class-mla-data.php:1829 includes/class-mla-data.php:2179
268
+ #: includes/class-mla-data.php:2183 includes/class-mla-data.php:3613
269
+ #: includes/class-mla-data.php:3669 includes/class-mla-data.php:3713
270
+ #: includes/class-mla-data.php:4108 includes/class-mla-data.php:4121
271
+ #: includes/class-mla-data.php:4143 includes/class-mla-data.php:4383
272
+ #: includes/class-mla-data.php:4429 includes/class-mla-data.php:4462
273
+ #: includes/class-mla-data.php:4478 includes/class-mla-data.php:4752
274
+ #: includes/class-mla-edit-media.php:321 includes/class-mla-edit-media.php:971
275
+ #: includes/class-mla-edit-media.php:1013 includes/class-mla-main.php:709
276
  #: includes/class-mla-main.php:837 includes/class-mla-main.php:839
277
  #: includes/class-mla-main.php:842 includes/class-mla-main.php:902
278
  #: includes/class-mla-main.php:936 includes/class-mla-main.php:945
281
  #: includes/class-mla-main.php:1556 includes/class-mla-main.php:1606
282
  #: includes/class-mla-main.php:1716 includes/class-mla-main.php:1745
283
  #: includes/class-mla-main.php:1887 includes/class-mla-main.php:1894
284
+ #: includes/class-mla-main.php:2071 includes/class-mla-main.php:2210
285
+ #: includes/class-mla-main.php:2539 includes/class-mla-main.php:2547
286
+ #: includes/class-mla-main.php:2571 includes/class-mla-main.php:2579
287
+ #: includes/class-mla-main.php:2611 includes/class-mla-main.php:2619
288
  #: includes/class-mla-media-modal.php:618 includes/class-mla-mime-types.php:825
289
  #: includes/class-mla-mime-types.php:1209
290
  #: includes/class-mla-mime-types.php:1297
302
  #: includes/class-mla-mime-types.php:2525
303
  #: includes/class-mla-mime-types.php:2604
304
  #: includes/class-mla-mime-types.php:2613
305
+ #: includes/class-mla-mime-types.php:2645 includes/class-mla-objects.php:266
306
  #: includes/class-mla-options.php:218 includes/class-mla-options.php:434
307
  #: includes/class-mla-options.php:515 includes/class-mla-options.php:570
308
+ #: includes/class-mla-options.php:1133 includes/class-mla-options.php:1978
309
+ #: includes/class-mla-options.php:2204
310
  #: includes/class-mla-settings-custom-fields-tab.php:169
311
  #: includes/class-mla-settings-custom-fields-tab.php:252
312
  #: includes/class-mla-settings-custom-fields-tab.php:256
324
  #: includes/class-mla-settings-documentation-tab.php:142
325
  #: includes/class-mla-settings-documentation-tab.php:337
326
  #: includes/class-mla-settings-documentation-tab.php:1278
327
+ #: includes/class-mla-settings-iptc-exif-tab.php:195
328
+ #: includes/class-mla-settings-iptc-exif-tab.php:290
329
+ #: includes/class-mla-settings-iptc-exif-tab.php:294
330
+ #: includes/class-mla-settings-iptc-exif-tab.php:314
331
+ #: includes/class-mla-settings-iptc-exif-tab.php:363
332
+ #: includes/class-mla-settings-iptc-exif-tab.php:367
333
+ #: includes/class-mla-settings-iptc-exif-tab.php:397
334
+ #: includes/class-mla-settings-iptc-exif-tab.php:402
335
+ #: includes/class-mla-settings-iptc-exif-tab.php:492
336
+ #: includes/class-mla-settings-iptc-exif-tab.php:718
337
+ #: includes/class-mla-settings-iptc-exif-tab.php:887
338
+ #: includes/class-mla-settings-iptc-exif-tab.php:1095
339
+ #: includes/class-mla-settings-iptc-exif-tab.php:1099
340
+ #: includes/class-mla-settings-iptc-exif-tab.php:1129
341
+ #: includes/class-mla-settings-iptc-exif-tab.php:2386
342
  #: includes/class-mla-settings-shortcodes-tab.php:102
343
  #: includes/class-mla-settings-shortcodes-tab.php:113
344
  #: includes/class-mla-settings-shortcodes-tab.php:117
368
  #: includes/class-mla-settings.php:1792 includes/class-mla-settings.php:1799
369
  #: includes/class-mla-settings.php:1808 includes/class-mla-settings.php:1845
370
  #: includes/class-mla-settings.php:1853 includes/class-mla-settings.php:1862
371
+ #: includes/class-mla-shortcode-support.php:2272
372
+ #: includes/class-mla-shortcode-support.php:2367
373
+ #: includes/class-mla-shortcode-support.php:3755
374
+ #: includes/class-mla-shortcode-support.php:3919
375
+ #: includes/class-mla-shortcode-support.php:3951
376
+ #: includes/class-mla-shortcode-support.php:5269
377
+ #: includes/class-mla-shortcode-support.php:5339
 
378
  #: includes/class-mla-shortcode-support.php:5804
379
+ #: includes/class-mla-shortcode-support.php:5820
380
  #: includes/class-mla-shortcode-support.php:5843
381
+ #: includes/class-mla-shortcode-support.php:5859
382
  #: includes/class-mla-thumbnail-generation.php:437
383
  #: includes/class-mla-thumbnail-generation.php:449
384
  #: includes/class-mla-thumbnail-generation.php:461
395
  msgid "You are not allowed to edit this Attachment."
396
  msgstr ""
397
 
398
+ #: includes/class-mla-core-options.php:423 includes/class-mla-options.php:257
399
  msgid "Attachment Categories"
400
  msgstr ""
401
 
402
+ #: includes/class-mla-core-options.php:427
403
  msgid "Check this option to add support for Attachment Categories."
404
  msgstr ""
405
 
406
+ #: includes/class-mla-core-options.php:431 includes/class-mla-options.php:272
407
  msgid "Attachment Tags"
408
  msgstr ""
409
 
410
+ #: includes/class-mla-core-options.php:435
411
  msgid "Check this option to add support for Attachment Tags."
412
  msgstr ""
413
 
414
+ #: includes/class-mla-core-options.php:439 includes/class-mla-settings.php:1060
415
  msgid "Where-used Reporting"
416
  msgstr ""
417
 
418
+ #: includes/class-mla-core-options.php:444
419
  msgid "Exclude Revisions"
420
  msgstr ""
421
 
422
+ #: includes/class-mla-core-options.php:448
423
  msgid "Check this option to exclude revisions from where-used reporting."
424
  msgstr ""
425
 
426
+ #: includes/class-mla-core-options.php:452
427
  msgid "Where-used database access tuning"
428
  msgstr ""
429
 
430
+ #: includes/class-mla-core-options.php:457
431
+ #: includes/class-mla-edit-media.php:906 includes/class-mla-edit-media.php:1177
432
  msgid "Featured in"
433
  msgstr ""
434
 
435
+ #: includes/class-mla-core-options.php:462
436
+ #: includes/class-mla-core-options.php:472
437
  msgid "Enabled"
438
  msgstr ""
439
 
440
+ #: includes/class-mla-core-options.php:463
441
  msgid "Search database posts and pages for Featured Image attachments."
442
  msgstr ""
443
 
444
+ #: includes/class-mla-core-options.php:467
445
+ #: includes/class-mla-edit-media.php:910 includes/class-mla-edit-media.php:1215
446
  msgid "Inserted in"
447
  msgstr ""
448
 
449
+ #: includes/class-mla-core-options.php:472
450
  msgid "Base"
451
  msgstr ""
452
 
453
+ #: includes/class-mla-core-options.php:473
454
  msgid ""
455
  "Search database posts and pages for attachments embedded in content."
456
  "<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base "
457
  "name and extension only."
458
  msgstr ""
459
 
460
+ #: includes/class-mla-core-options.php:477
461
+ #: includes/class-mla-edit-media.php:914 includes/class-mla-edit-media.php:1249
462
  #: includes/class-mla-settings.php:1558
463
  msgid "Gallery in"
464
  msgstr ""
465
 
466
+ #: includes/class-mla-core-options.php:482
467
+ #: includes/class-mla-core-options.php:492
468
  msgid "Dynamic"
469
  msgstr ""
470
 
471
+ #: includes/class-mla-core-options.php:482
472
+ #: includes/class-mla-core-options.php:492 includes/class-mla-main.php:2442
473
  #: includes/class-mla-settings-custom-fields-tab.php:764
474
+ #: includes/class-mla-settings-iptc-exif-tab.php:902
475
  msgid "Refresh"
476
  msgstr ""
477
 
478
+ #: includes/class-mla-core-options.php:482
479
+ #: includes/class-mla-core-options.php:492
480
  msgid "Cached"
481
  msgstr ""
482
 
483
+ #: includes/class-mla-core-options.php:483
484
  msgid ""
485
  "Search database posts and pages for [ gallery ] shortcode results.<br>&nbsp;"
486
  "&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = "
487
  "never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached."
488
  msgstr ""
489
 
490
+ #: includes/class-mla-core-options.php:487
491
+ #: includes/class-mla-edit-media.php:918 includes/class-mla-edit-media.php:1283
492
  #: includes/class-mla-settings.php:1568
493
  msgid "MLA Gallery in"
494
  msgstr ""
495
 
496
+ #: includes/class-mla-core-options.php:493
497
  msgid ""
498
  "Search database posts and pages for [mla_gallery] shortcode results."
499
  "<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, "
501
  "Cached."
502
  msgstr ""
503
 
504
+ #: includes/class-mla-core-options.php:497 includes/class-mla-settings.php:1060
505
  msgid "Taxonomy Support"
506
  msgstr ""
507
 
508
+ #: includes/class-mla-core-options.php:502
509
  msgid "Compute Attachments Column"
510
  msgstr ""
511
 
512
+ #: includes/class-mla-core-options.php:506
513
  msgid ""
514
  "Check this option to calculate attachments per term in the Attachments "
515
  "Column."
516
  msgstr ""
517
 
518
+ #: includes/class-mla-core-options.php:510
519
  msgid "Show Count Column"
520
  msgstr ""
521
 
522
+ #: includes/class-mla-core-options.php:514
523
  msgid "Check this option to display the Count column on taxonomy edit screens."
524
  msgstr ""
525
 
526
+ #: includes/class-mla-core-options.php:519
527
  msgid ""
528
  "Check the \"<strong>Support</strong>\" box to add the taxonomy to the "
529
  "Assistant and the Edit Media screen."
530
  msgstr ""
531
 
532
+ #: includes/class-mla-core-options.php:520
533
  msgid ""
534
  "Check the \"<strong>Inline Edit</strong>\" box to display the taxonomy in "
535
  "the Quick Edit and Bulk Edit areas."
536
  msgstr ""
537
 
538
+ #: includes/class-mla-core-options.php:521
539
  msgid ""
540
  "Check the \"<strong>Term Search</strong>\" box to add the taxonomy to the "
541
  "\"Search Media/Terms\" list."
542
  msgstr ""
543
 
544
+ #: includes/class-mla-core-options.php:522
545
+ #: includes/class-mla-core-options.php:760
546
+ #: includes/class-mla-core-options.php:769 includes/class-mla-settings.php:1093
547
  #: includes/class-mla-settings.php:1094 includes/class-mla-settings.php:1095
548
  msgid "For complete documentation"
549
  msgstr ""
550
 
551
+ #: includes/class-mla-core-options.php:522
552
+ #: includes/class-mla-core-options.php:760
553
+ #: includes/class-mla-core-options.php:769 includes/class-mla-settings.php:1093
554
  #: includes/class-mla-settings.php:1094 includes/class-mla-settings.php:1095
555
  msgid "click here"
556
  msgstr ""
557
 
558
+ #: includes/class-mla-core-options.php:524
559
  msgid ""
560
  "Check the \"<strong>Checklist</strong>\" box to enable the checklist-style "
561
  "meta box for a flat taxonomy."
562
  msgstr ""
563
 
564
+ #: includes/class-mla-core-options.php:525
565
  msgid ""
566
  "You must also check the <strong>\"Enable enhanced checklist taxonomies\"</"
567
  "strong> box below to enable this feature."
568
  msgstr ""
569
 
570
+ #: includes/class-mla-core-options.php:526
571
  msgid ""
572
  "Check the \"<strong>Checked On Top</strong>\" box to move checked terms to "
573
  "the top of the checklist-style meta box."
574
  msgstr ""
575
 
576
+ #: includes/class-mla-core-options.php:527
577
  msgid ""
578
  "Check the \"<strong>Inline Add Term</strong>\" box to support adding terms "
579
  "in the Quick Edit and Bulk Edit areas."
580
  msgstr ""
581
 
582
+ #: includes/class-mla-core-options.php:528
583
  msgid ""
584
  "Use the \"<strong>List Filter</strong>\" option to select the taxonomy (or "
585
  "custom field) on which to filter the Assistant table listing."
586
  msgstr ""
587
 
588
+ #: includes/class-mla-core-options.php:529
589
  msgid ""
590
  "To <strong>filter on a custom field</strong>, enter the field name and "
591
  "select ASC (Ascending) or DESC (Descending) order."
592
  msgstr ""
593
 
594
+ #: includes/class-mla-core-options.php:558
595
  msgid "Media/Assistant Screen Options"
596
  msgstr ""
597
 
598
+ #: includes/class-mla-core-options.php:563
599
  msgid "Admin Menu Options"
600
  msgstr ""
601
 
602
+ #: includes/class-mla-core-options.php:568
603
  msgid "Page Title"
604
  msgstr ""
605
 
606
+ #: includes/class-mla-core-options.php:573
607
  msgid "Enter the title for the Media/Assistant submenu page"
608
  msgstr ""
609
 
610
+ #: includes/class-mla-core-options.php:577
611
  msgid "Menu Title"
612
  msgstr ""
613
 
614
+ #: includes/class-mla-core-options.php:582
615
  msgid "Enter the title for the Media/Assistant submenu entry"
616
  msgstr ""
617
 
618
+ #: includes/class-mla-core-options.php:586
619
  msgid "Submenu Order"
620
  msgstr ""
621
 
622
+ #: includes/class-mla-core-options.php:591
623
  msgid ""
624
  "Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = "
625
  "natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;"
627
  "\""
628
  msgstr ""
629
 
630
+ #: includes/class-mla-core-options.php:595
631
  msgid "Display Media/Library"
632
  msgstr ""
633
 
634
+ #: includes/class-mla-core-options.php:599
635
  msgid ""
636
  "Check/uncheck this option to display/remove the WordPress Media/Library "
637
  "submenu entry."
638
  msgstr ""
639
 
640
+ #: includes/class-mla-core-options.php:603
641
  msgid "Display Media/Assistant list/grid view switcher"
642
  msgstr ""
643
 
644
+ #: includes/class-mla-core-options.php:607
645
  msgid ""
646
  "Check/uncheck this option to display/remove the \"list/grid\" view switcher "
647
  "on the Media/Assistant submenu."
648
  msgstr ""
649
 
650
+ #: includes/class-mla-core-options.php:611
651
  msgid "Table Defaults"
652
  msgstr ""
653
 
654
+ #: includes/class-mla-core-options.php:616
655
  msgid "Order By"
656
  msgstr ""
657
 
658
+ #: includes/class-mla-core-options.php:621
659
  msgid "ID/Parent"
660
  msgstr ""
661
 
662
+ #: includes/class-mla-core-options.php:622
663
  msgid "Select the column for the sort order of the Assistant table listing."
664
  msgstr ""
665
 
666
+ #: includes/class-mla-core-options.php:626
667
  msgid "Order"
668
  msgstr ""
669
 
670
+ #: includes/class-mla-core-options.php:631
671
  msgid "Ascending"
672
  msgstr ""
673
 
674
+ #: includes/class-mla-core-options.php:631
675
  msgid "Descending"
676
  msgstr ""
677
 
678
+ #: includes/class-mla-core-options.php:632
679
+ #: includes/class-mla-core-options.php:897
680
  msgid "Choose the sort order."
681
  msgstr ""
682
 
683
+ #: includes/class-mla-core-options.php:636 includes/class-mla-main.php:630
684
  msgid "Entries per page"
685
  msgstr ""
686
 
687
+ #: includes/class-mla-core-options.php:640
688
  msgid "Enter the number of Media/Assistant submenu table items per page."
689
  msgstr ""
690
 
691
+ #: includes/class-mla-core-options.php:649
692
  msgid "Views Width"
693
  msgstr ""
694
 
695
+ #: includes/class-mla-core-options.php:654
696
  msgid "Enter the width for the views list, in pixels (px) or percent (%)"
697
  msgstr ""
698
 
699
+ #: includes/class-mla-core-options.php:658
700
  msgid "Icon Size"
701
  msgstr ""
702
 
703
+ #: includes/class-mla-core-options.php:663
704
  msgid "Enter the size of the thumbnail/icon images, in pixels"
705
  msgstr ""
706
 
707
+ #: includes/class-mla-core-options.php:667
708
  msgid "Show Primary Column File Name"
709
  msgstr ""
710
 
711
+ #: includes/class-mla-core-options.php:671
712
  msgid ""
713
  "Check/uncheck this option to show/omit the file name from the primary column."
714
  msgstr ""
715
 
716
+ #: includes/class-mla-core-options.php:675
717
  msgid "QuickTags editor for bulk description"
718
  msgstr ""
719
 
720
+ #: includes/class-mla-core-options.php:679
721
  msgid ""
722
  "Check this option to use the QuickTags editor for the Description field in "
723
  "the Bulk Edit area."
724
  msgstr ""
725
 
726
+ #: includes/class-mla-core-options.php:683
727
  msgid "Bulk Chunk Size"
728
  msgstr ""
729
 
730
+ #: includes/class-mla-core-options.php:688
731
  msgid "Enter the size of the Bulk Edit and Map All processing chunks"
732
  msgstr ""
733
 
734
+ #: includes/class-mla-core-options.php:692
735
  msgid "Taxonomy Filter parameters"
736
  msgstr ""
737
 
738
+ #: includes/class-mla-core-options.php:697
739
  msgid "Maximum Depth"
740
  msgstr ""
741
 
742
+ #: includes/class-mla-core-options.php:702
743
  msgid ""
744
  "Enter the number of levels displayed for hierarchial taxonomies; enter zero "
745
  "for no limit."
746
  msgstr ""
747
 
748
+ #: includes/class-mla-core-options.php:706
749
  msgid "Include Children"
750
  msgstr ""
751
 
752
+ #: includes/class-mla-core-options.php:710
753
  msgid ""
754
  "Check/uncheck this option to include/exclude children for hierarchical "
755
  "taxonomies."
756
  msgstr ""
757
 
758
+ #: includes/class-mla-core-options.php:714
759
  msgid "Search Media Defaults"
760
  msgstr ""
761
 
762
+ #: includes/class-mla-core-options.php:719
763
  msgid "Display Search Controls"
764
  msgstr ""
765
 
766
+ #: includes/class-mla-core-options.php:723
767
+ #: includes/class-mla-core-options.php:858
768
  msgid ""
769
  "Check/uncheck this option to display/hide the and/or connector and search "
770
  "fields controls."
771
  msgstr ""
772
 
773
+ #: includes/class-mla-core-options.php:727
774
  msgid ""
775
  "Use these controls to set defaults for the and/or connector and search "
776
  "fields controls.<br>These defaults will be used for the Search Media boxes "
777
  "on both the Media/Assistant submenu<br>and the Media Manager Modal Window."
778
  msgstr ""
779
 
780
+ #: includes/class-mla-core-options.php:741
781
  msgid "Media/Edit Media Enhancements"
782
  msgstr ""
783
 
784
+ #: includes/class-mla-core-options.php:746
785
  msgid "Enable &quot;enhanced checklist&quot; taxonomies"
786
  msgstr ""
787
 
788
+ #: includes/class-mla-core-options.php:750
789
  msgid ""
790
  "Check this option to enable the \"? Search\" feature for hierarchical "
791
  "taxonomies, e.g., Att. Categories.<br>&nbsp;&nbsp;This option also enables "
792
  "the \"checklist-style\" support for flat taxonomies, e.g., Att. Tags."
793
  msgstr ""
794
 
795
+ #: includes/class-mla-core-options.php:754
796
  msgid "Enable Edit Media additional meta boxes"
797
  msgstr ""
798
 
799
+ #: includes/class-mla-core-options.php:758
800
  msgid ""
801
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
802
+ "Metadata\", \"Attachment File Metadata\" and four \"where-used\" meta boxes "
803
+ "to the Edit Media screen."
804
  msgstr ""
805
 
806
+ #: includes/class-mla-core-options.php:759
807
  msgid "You can also use Filters to customize the meta boxes."
808
  msgstr ""
809
 
810
+ #: includes/class-mla-core-options.php:764
811
+ msgid "Enable File Attachment Metadata meta box"
812
+ msgstr ""
813
+
814
+ #: includes/class-mla-core-options.php:768
815
+ msgid ""
816
+ "Check this option to enable the \"Attachment File Metadata\" meta box on "
817
+ "the Edit Media screen."
818
+ msgstr ""
819
+
820
+ #: includes/class-mla-core-options.php:773
821
  msgid "Media/Add New Enhancements"
822
  msgstr ""
823
 
824
+ #: includes/class-mla-core-options.php:778
825
  msgid "Enable &quot;bulk edit&quot; area"
826
  msgstr ""
827
 
828
+ #: includes/class-mla-core-options.php:782
829
  msgid ""
830
  "Check this option to enable the \"Bulk Edit area\" feature on the Media/Add "
831
  "New screen."
832
  msgstr ""
833
 
834
+ #: includes/class-mla-core-options.php:786
835
  msgid "&quot;bulk edit&quot; area on top"
836
  msgstr ""
837
 
838
+ #: includes/class-mla-core-options.php:790
839
  msgid ""
840
  "Check this option to move the \"Bulk Edit area\" to the top of the Media/Add "
841
  "New screen."
842
  msgstr ""
843
 
844
+ #: includes/class-mla-core-options.php:794
845
  msgid "&quot;bulk edit&quot; area initially open"
846
  msgstr ""
847
 
848
+ #: includes/class-mla-core-options.php:797
849
  msgid ""
850
  "Check this option to automatically open the \"Bulk Edit area\" when the "
851
  "Media/Add New screen is displayed."
852
  msgstr ""
853
 
854
+ #: includes/class-mla-core-options.php:801
855
  msgid "Media Manager/Media Grid Enhancements"
856
  msgstr ""
857
 
858
+ #: includes/class-mla-core-options.php:806
859
  msgid "Enable Media Grid Enhancements"
860
  msgstr ""
861
 
862
+ #: includes/class-mla-core-options.php:809
863
  msgid ""
864
  "Check/uncheck this option to enable/disable Media Library Grid View "
865
  "Enhancements."
866
  msgstr ""
867
 
868
+ #: includes/class-mla-core-options.php:813
869
  msgid "Enable Media Manager Enhancements"
870
  msgstr ""
871
 
872
+ #: includes/class-mla-core-options.php:816
873
  msgid ""
874
  "Check/uncheck this option to enable/disable Media Manager Modal Window "
875
  "Enhancements."
876
  msgstr ""
877
 
878
+ #: includes/class-mla-core-options.php:820
879
  msgid "Media Manager Enhanced MIME Type filter"
880
  msgstr ""
881
 
882
+ #: includes/class-mla-core-options.php:823
883
  msgid ""
884
  "Check this option to filter by more MIME Types, e.g., text, applications."
885
  msgstr ""
886
 
887
+ #: includes/class-mla-core-options.php:827
888
  msgid "Media Manager Month and Year filter"
889
  msgstr ""
890
 
891
+ #: includes/class-mla-core-options.php:830
892
  msgid "Check this option to filter by month and year uploaded."
893
  msgstr ""
894
 
895
+ #: includes/class-mla-core-options.php:834
896
  msgid "Media Manager Category/Tag filter"
897
  msgstr ""
898
 
899
+ #: includes/class-mla-core-options.php:837
900
  msgid "Check this option to filter by taxonomy terms."
901
  msgstr ""
902
 
903
+ #: includes/class-mla-core-options.php:841
904
  msgid "Media Manager Terms Search popup"
905
  msgstr ""
906
 
907
+ #: includes/class-mla-core-options.php:844
908
  msgid "Check this option to enable the \"Terms Search\" popup window."
909
  msgstr ""
910
 
911
+ #: includes/class-mla-core-options.php:848
912
  msgid "Media Manager Enhanced Search Media box"
913
  msgstr ""
914
 
915
+ #: includes/class-mla-core-options.php:851
916
  msgid "Check this option to enable search box enhancements."
917
  msgstr ""
918
 
919
+ #: includes/class-mla-core-options.php:855
920
  msgid "Media Manager Enhanced Search Media Controls"
921
  msgstr ""
922
 
923
+ #: includes/class-mla-core-options.php:862
924
  msgid "Media Manager Checklist meta boxes"
925
  msgstr ""
926
 
927
+ #: includes/class-mla-core-options.php:865
928
  msgid ""
929
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
930
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for any taxonomy that uses a "
931
  "<strong>\"checklist-style\"</strong> meta box."
932
  msgstr ""
933
 
934
+ #: includes/class-mla-core-options.php:869
935
  msgid "Media Manager Flat meta boxes"
936
  msgstr ""
937
 
938
+ #: includes/class-mla-core-options.php:872
939
  msgid ""
940
  "Check this option to enable MLA-enhanced meta boxes in the \"ATTACHMENT "
941
  "DETAILS\" pane.<br>&nbsp;&nbsp;This option is for <strong>flat taxonomies</"
943
  "style\" meta box."
944
  msgstr ""
945
 
946
+ #: includes/class-mla-core-options.php:876
947
  msgid "Media Manager auto-fill meta boxes"
948
  msgstr ""
949
 
950
+ #: includes/class-mla-core-options.php:879
951
  msgid ""
952
  "Check this option to automatically fill MLA-enhanced meta boxes in the "
953
  "\"ATTACHMENT DETAILS\" pane<br>&nbsp;&nbsp;when the item is selected."
954
  msgstr ""
955
 
956
+ #: includes/class-mla-core-options.php:883
957
  msgid "Media Manager Order By"
958
  msgstr ""
959
 
960
+ #: includes/class-mla-core-options.php:887
961
+ #: includes/class-mla-core-options.php:896
 
962
  #: includes/class-mla-core-options.php:918
963
+ #: includes/class-mla-core-options.php:932
964
+ #: includes/class-mla-core-options.php:946 includes/class-mla-settings.php:1144
965
  msgid "Media Manager Default"
966
  msgstr ""
967
 
968
+ #: includes/class-mla-core-options.php:887
969
  msgid "Title/Name"
970
  msgstr ""
971
 
972
+ #: includes/class-mla-core-options.php:888
973
  msgid ""
974
  "If you want to override the Media Manager default,<br>&nbsp;&nbsp;select a "
975
  "column for the sort order of the Media Library listing."
976
  msgstr ""
977
 
978
+ #: includes/class-mla-core-options.php:892
979
  msgid "Media Manager Order"
980
  msgstr ""
981
 
982
+ #: includes/class-mla-core-options.php:901
983
  msgid "Attachment Display Settings"
984
  msgstr ""
985
 
986
+ #: includes/class-mla-core-options.php:906
987
  msgid "Media Manager Apply Display Settings"
988
  msgstr ""
989
 
990
+ #: includes/class-mla-core-options.php:909
991
  msgid ""
992
  "Check this option to always start with the Attachment Display Settings set "
993
  "here,<br>&nbsp;&nbsp;overriding browser-/cookie-based defaults."
994
  msgstr ""
995
 
996
+ #: includes/class-mla-core-options.php:913
997
+ #: includes/class-mla-core-options.php:915
998
  msgid "Alignment"
999
  msgstr ""
1000
 
 
1001
  #: includes/class-mla-core-options.php:915
1002
  #: includes/class-mla-core-options.php:929
1003
+ #: includes/class-mla-core-options.php:943
1004
  #, php-format
1005
  msgid ""
1006
  "Select a value for the default %1$s option in the Attachment Display "
1007
  "Settings."
1008
  msgstr ""
1009
 
1010
+ #: includes/class-mla-core-options.php:918
1011
  msgid "Left"
1012
  msgstr ""
1013
 
1014
+ #: includes/class-mla-core-options.php:918
1015
  msgid "Center"
1016
  msgstr ""
1017
 
1018
+ #: includes/class-mla-core-options.php:918
1019
  msgid "Right"
1020
  msgstr ""
1021
 
1022
+ #: includes/class-mla-core-options.php:927
1023
+ #: includes/class-mla-core-options.php:929
1024
  msgid "Link To"
1025
  msgstr ""
1026
 
1027
+ #: includes/class-mla-core-options.php:932
1028
  msgid "Media File"
1029
  msgstr ""
1030
 
1031
+ #: includes/class-mla-core-options.php:932
1032
  msgid "Attachment Page"
1033
  msgstr ""
1034
 
1035
+ #: includes/class-mla-core-options.php:932
1036
  msgid "Custom URL"
1037
  msgstr ""
1038
 
1039
+ #: includes/class-mla-core-options.php:941
1040
+ #: includes/class-mla-core-options.php:943
1041
  msgid "Size"
1042
  msgstr ""
1043
 
1044
+ #: includes/class-mla-core-options.php:946
1045
  #: includes/class-mla-thumbnail-generation.php:591
1046
  #: includes/class-mla-thumbnail-generation.php:655
1047
  msgid "Thumbnail"
1048
  msgstr ""
1049
 
1050
+ #: includes/class-mla-core-options.php:946
1051
  msgid "Medium"
1052
  msgstr ""
1053
 
1054
+ #: includes/class-mla-core-options.php:946
1055
  msgid "Large"
1056
  msgstr ""
1057
 
1058
+ #: includes/class-mla-core-options.php:946
1059
  msgid "Full Size"
1060
  msgstr ""
1061
 
1062
+ #: includes/class-mla-core-options.php:955
1063
  msgid "Uninstall (Delete) Plugin Settings"
1064
  msgstr ""
1065
 
1066
+ #: includes/class-mla-core-options.php:960
1067
  msgid "Delete Option Settings"
1068
  msgstr ""
1069
 
1070
+ #: includes/class-mla-core-options.php:963
1071
  msgid ""
1072
  "Check this option to remove all MLA option settings from the database when "
1073
  "the plugin is deleted.<br>&nbsp;&nbsp;<strong>You can make a backup copy</"
1074
  "strong> of your settings below by clicking \""
1075
  msgstr ""
1076
 
1077
+ #: includes/class-mla-core-options.php:963 includes/class-mla-settings.php:1062
1078
  msgid "Export ALL Settings"
1079
  msgstr ""
1080
 
1081
+ #: includes/class-mla-core-options.php:967
1082
  msgid "Delete Option Settings Backups"
1083
  msgstr ""
1084
 
1085
+ #: includes/class-mla-core-options.php:970
1086
  msgid ""
1087
  "Check this option to remove the <code>/wp-content/mla-backup</code> "
1088
  "directory and its contents when the plugin is deleted."
1089
  msgstr ""
1090
 
1091
+ #: includes/class-mla-core-options.php:974
1092
  msgid "Default [mla_gallery] Templates and Settings"
1093
  msgstr ""
1094
 
1095
+ #: includes/class-mla-core-options.php:979
1096
+ #: includes/class-mla-core-options.php:985
1097
+ #: includes/class-mla-core-options.php:1023
1098
+ #: includes/class-mla-core-options.php:1029
1099
  msgid "Style Template"
1100
  msgstr ""
1101
 
1102
+ #: includes/class-mla-core-options.php:985
1103
+ #: includes/class-mla-core-options.php:995
1104
+ #: includes/class-mla-core-options.php:1029
1105
+ #: includes/class-mla-core-options.php:1039
1106
  #, php-format
1107
  msgid "Select the default %1$s for your %2$s shortcodes."
1108
  msgstr ""
1109
 
1110
+ #: includes/class-mla-core-options.php:989
1111
+ #: includes/class-mla-core-options.php:1033
1112
  msgid "Markup Template"
1113
  msgstr ""
1114
 
1115
+ #: includes/class-mla-core-options.php:995
1116
+ #: includes/class-mla-core-options.php:1039
1117
  #: includes/class-mla-settings-shortcodes-tab.php:108
1118
  msgid "markup template"
1119
  msgstr ""
1120
 
1121
+ #: includes/class-mla-core-options.php:999
1122
+ #: includes/class-mla-core-options.php:1043
1123
  msgid "Default columns"
1124
  msgstr ""
1125
 
1126
+ #: includes/class-mla-core-options.php:1003
1127
  msgid ""
1128
  "Enter the number of [mla_tag_cloud] columns; must be a positive integer."
1129
  msgstr ""
1130
 
1131
+ #: includes/class-mla-core-options.php:1007
1132
+ #: includes/class-mla-core-options.php:1051
1133
  msgid "Default mla_margin"
1134
  msgstr ""
1135
 
1136
+ #: includes/class-mla-core-options.php:1011
1137
+ #: includes/class-mla-core-options.php:1055
1138
  msgid ""
1139
  "Enter the CSS \"margin\" property value, in length (px, em, pt, etc.), "
1140
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"none\" to "
1141
  "remove the property entirely."
1142
  msgstr ""
1143
 
1144
+ #: includes/class-mla-core-options.php:1015
1145
+ #: includes/class-mla-core-options.php:1059
1146
  msgid "Default mla_itemwidth"
1147
  msgstr ""
1148
 
1149
+ #: includes/class-mla-core-options.php:1019
1150
+ #: includes/class-mla-core-options.php:1063
1151
  msgid ""
1152
  "Enter the CSS \"width\" property value, in length (px, em, pt, etc.), "
1153
  "percent (%), \"auto\" or \"inherit\".<br>&nbsp;&nbsp;Enter \"calculate"
1157
  "the property entirely."
1158
  msgstr ""
1159
 
1160
+ #: includes/class-mla-core-options.php:1047
1161
  msgid "Enter the number of [mla_gallery] columns; must be a positive integer."
1162
  msgstr ""
1163
 
1164
+ #: includes/class-mla-core-options.php:1067
1165
  msgid "Thumbnail Substitution Support, mla_viewer"
1166
  msgstr ""
1167
 
1168
+ #: includes/class-mla-core-options.php:1072
1169
  msgid "Enable thumbnail substitution"
1170
  msgstr ""
1171
 
1172
+ #: includes/class-mla-core-options.php:1075
1173
  msgid ""
1174
  "Check this option to allow the \"mla_viewer\" to generate thumbnail images "
1175
  "for PDF documents. Thumbnails are generated dynamically, each time the item "
1178
  "strong>"
1179
  msgstr ""
1180
 
1181
+ #: includes/class-mla-core-options.php:1079
1182
  msgid "Enable Featured Images"
1183
  msgstr ""
1184
 
1185
+ #: includes/class-mla-core-options.php:1082
1186
  msgid ""
1187
  "Check this option to extend Featured Image support to all Media Library "
1188
  "items. The Featured Image can be used as a thumbnail image for the item in "
1189
  "an [mla_gallery] display."
1190
  msgstr ""
1191
 
1192
+ #: includes/class-mla-core-options.php:1086
1193
  msgid "Enable Featured Image Generation"
1194
  msgstr ""
1195
 
1196
+ #: includes/class-mla-core-options.php:1089
1197
  msgid ""
1198
  "Check this option to enable the \"Thumbnail\" generation action in the Media/"
1199
  "Assistant submenu Bulk Actions dropdown."
1200
  msgstr ""
1201
 
1202
+ #: includes/class-mla-core-options.php:1093
1203
  msgid "Enable explicit Ghostscript check"
1204
  msgstr ""
1205
 
1206
+ #: includes/class-mla-core-options.php:1096
1207
  msgid ""
1208
  "Check this option to enable the explicit check for Ghostscript support "
1209
  "required for thumbnail generation. If your Ghostscript software is in a non-"
1212
  "leave this option checked unless you know it is safe to turn it off."
1213
  msgstr ""
1214
 
1215
+ #: includes/class-mla-core-options.php:1100
1216
  msgid "Ghostscript path"
1217
  msgstr ""
1218
 
1219
+ #: includes/class-mla-core-options.php:1104
1220
  msgid ""
1221
  "If your &ldquo;gs&rdquo; executable is in a non-standard location, enter the "
1222
  "full path and filename here, e.g., &ldquo;/usr/bin/gs&rdquo;. It will "
1223
  "override the search for Ghostscript in other places."
1224
  msgstr ""
1225
 
1226
+ #: includes/class-mla-core-options.php:1124
1227
  msgid "Enable custom field mapping"
1228
  msgstr ""
1229
 
 
 
1230
  #: includes/class-mla-core-options.php:1127
1231
+ #: includes/class-mla-core-options.php:1134
1232
+ #: includes/class-mla-core-options.php:1141
1233
+ #: includes/class-mla-core-options.php:1158
1234
  msgid "See Help menu."
1235
  msgstr ""
1236
 
1237
+ #: includes/class-mla-core-options.php:1131
1238
  msgid "Enable custom field mapping when adding new media"
1239
  msgstr ""
1240
 
1241
+ #: includes/class-mla-core-options.php:1138
1242
  msgid "Enable custom field mapping when updating media metadata"
1243
  msgstr ""
1244
 
1245
+ #: includes/class-mla-core-options.php:1145
1246
  msgid ""
1247
  "Update the custom field mapping values above, then click Save Changes to "
1248
  "make the updates permanent.<br>You can also make temporary updates and click "
1250
  "saving any rule changes."
1251
  msgstr ""
1252
 
1253
+ #: includes/class-mla-core-options.php:1155
1254
  msgid "Enable IPTC/EXIF Mapping"
1255
  msgstr ""
1256
 
1257
+ #: includes/class-mla-core-options.php:1162
1258
  msgid "Enable IPTC/EXIF Mapping when adding new media"
1259
  msgstr ""
1260
 
1261
+ #: includes/class-mla-core-options.php:1165
1262
  msgid ""
1263
  "Check this option to enable mapping when uploading new media (attachments)."
1264
  "<br>&nbsp;&nbsp;Does NOT affect the operation of the \"Map\" buttons on the "
1265
  "bulk edit, single edit and settings screens."
1266
  msgstr ""
1267
 
1268
+ #: includes/class-mla-core-options.php:1169
1269
  msgid "Enable IPTC/EXIF Mapping when updating media metadata"
1270
  msgstr ""
1271
 
1272
+ #: includes/class-mla-core-options.php:1172
1273
  msgid ""
1274
  "Check this option to enable mapping when media (attachments) metadata is "
1275
  "regenerated,<br>&nbsp;&nbsp;e.g., when the Media/Edit Media \"Edit Image\" "
1276
  "functions are used."
1277
  msgstr ""
1278
 
1279
+ #: includes/class-mla-core-options.php:1176
1280
  msgid ""
1281
  "Update the standard field mapping values above, then click <strong>Save "
1282
  "Changes</strong> to make the updates permanent.<br>You can also make "
1285
  "changes."
1286
  msgstr ""
1287
 
1288
+ #: includes/class-mla-core-options.php:1186
1289
  msgid ""
1290
  "Update the taxonomy term mapping values above, then click <strong>Save "
1291
  "Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>."
1292
  msgstr ""
1293
 
1294
+ #: includes/class-mla-core-options.php:1196
1295
  msgid ""
1296
  "<strong>Update</strong> individual custom field mapping values above, or "
1297
  "make several updates and click <strong>Save Changes</strong> below to apply "
1302
  "changes."
1303
  msgstr ""
1304
 
1305
+ #: includes/class-mla-core-options.php:1206
1306
  msgid "IPTC/EXIF Mapping help"
1307
  msgstr ""
1308
 
1309
+ #: includes/class-mla-core-options.php:1217 includes/class-mla-data.php:4432
1310
+ #: includes/class-mla-edit-media.php:481 includes/class-mla-main.php:2408
1311
  msgid "Name/Slug"
1312
  msgstr ""
1313
 
1314
+ #: includes/class-mla-core-options.php:1224 includes/class-mla-data.php:4475
1315
  #: includes/class-mla-edit-media.php:484 includes/class-mla-list-table.php:1429
1316
+ #: includes/class-mla-main.php:2412 includes/class-mla-options.php:472
1317
  #: includes/mla-main-search-box-template.php:51
1318
  #: includes/mla-media-modal-js-template.php:46
1319
  msgid "ALT Text"
1320
  msgstr ""
1321
 
1322
+ #: includes/class-mla-core-options.php:1231 includes/class-mla-data.php:4488
1323
+ #: includes/class-mla-edit-media.php:482 includes/class-mla-main.php:2409
1324
  #: includes/class-mla-options.php:475
1325
  #: includes/mla-main-search-box-template.php:53
1326
  #: includes/mla-media-modal-js-template.php:51
1327
  msgid "Caption"
1328
  msgstr ""
1329
 
1330
+ #: includes/class-mla-core-options.php:1238 includes/class-mla-data.php:4497
1331
+ #: includes/class-mla-edit-media.php:483 includes/class-mla-main.php:2410
1332
  #: includes/class-mla-options.php:478
1333
  #: includes/class-mla-settings-custom-fields-tab.php:480
1334
+ #: includes/class-mla-settings-iptc-exif-tab.php:533
1335
  #: includes/class-mla-settings-upload-tab.php:199
1336
  #: includes/class-mla-settings-upload-tab.php:543
1337
  #: includes/class-mla-settings-view-tab.php:128
1347
  msgid "Description"
1348
  msgstr ""
1349
 
1350
+ #: includes/class-mla-core-options.php:1245 includes/class-mla-data.php:4559
1351
+ #: includes/class-mla-data.php:4568 includes/class-mla-edit-media.php:485
1352
+ #: includes/class-mla-edit-media.php:749 includes/class-mla-main.php:2414
1353
  msgid "Uploaded on"
1354
  msgstr ""
1355
 
1356
+ #: includes/class-mla-core-options.php:1265
1357
  msgid "Enable View and Post MIME Type Support"
1358
  msgstr ""
1359
 
1360
+ #: includes/class-mla-core-options.php:1268
1361
  msgid ""
1362
  "Check/uncheck this option to enable/disable Post MIME Type Support, then "
1363
  "click <strong>Save Changes</strong> to record the new setting."
1364
  msgstr ""
1365
 
1366
+ #: includes/class-mla-core-options.php:1277
1367
  msgid "Post MIME Types help."
1368
  msgstr ""
1369
 
1370
+ #: includes/class-mla-core-options.php:1280
1371
  #: includes/class-mla-mime-types.php:1696
1372
  #: includes/class-mla-settings-custom-fields-tab.php:2501
1373
  #: includes/class-mla-settings-documentation-tab.php:1545
1374
+ #: includes/class-mla-settings-iptc-exif-tab.php:2845
1375
  #: includes/class-mla-settings-shortcodes-tab.php:1984
1376
  msgctxt "table_view_singular"
1377
  msgid "All"
1378
  msgstr ""
1379
 
1380
+ #: includes/class-mla-core-options.php:1281
1381
  #: includes/class-mla-mime-types.php:1697
1382
  #: includes/class-mla-settings-custom-fields-tab.php:2502
1383
  #: includes/class-mla-settings-documentation-tab.php:1546
1384
+ #: includes/class-mla-settings-iptc-exif-tab.php:2846
1385
  #: includes/class-mla-settings-shortcodes-tab.php:1985
1386
  msgctxt "table_view_plural"
1387
  msgid "All"
1388
  msgstr ""
1389
 
1390
+ #: includes/class-mla-core-options.php:1286
1391
+ #: includes/class-mla-core-options.php:1340
1392
+ #: includes/class-mla-core-options.php:1349
1393
+ #: includes/class-mla-core-options.php:1358
1394
+ #: includes/class-mla-core-options.php:1367
1395
  msgctxt "post_mime_types_description"
1396
  msgid "Built-in view"
1397
  msgstr ""
1398
 
1399
+ #: includes/class-mla-core-options.php:1289
1400
  msgctxt "table_view_singular"
1401
  msgid "Image"
1402
  msgstr ""
1403
 
1404
+ #: includes/class-mla-core-options.php:1290
1405
  msgctxt "table_view_plural"
1406
  msgid "Images"
1407
  msgstr ""
1408
 
1409
+ #: includes/class-mla-core-options.php:1295
1410
  msgctxt "post_mime_types_description"
1411
  msgid "All image subtypes"
1412
  msgstr ""
1413
 
1414
+ #: includes/class-mla-core-options.php:1298
1415
  msgctxt "table_view_singular"
1416
  msgid "Audio"
1417
  msgstr ""
1418
 
1419
+ #: includes/class-mla-core-options.php:1299
1420
  msgctxt "table_view_plural"
1421
  msgid "Audio"
1422
  msgstr ""
1423
 
1424
+ #: includes/class-mla-core-options.php:1304
1425
  msgctxt "post_mime_types_description"
1426
  msgid "All audio subtypes"
1427
  msgstr ""
1428
 
1429
+ #: includes/class-mla-core-options.php:1307
1430
  msgctxt "table_view_singular"
1431
  msgid "Video"
1432
  msgstr ""
1433
 
1434
+ #: includes/class-mla-core-options.php:1308
1435
  msgctxt "table_view_plural"
1436
  msgid "Video"
1437
  msgstr ""
1438
 
1439
+ #: includes/class-mla-core-options.php:1313
1440
  msgctxt "post_mime_types_description"
1441
  msgid "All video subtypes"
1442
  msgstr ""
1443
 
1444
+ #: includes/class-mla-core-options.php:1316
1445
  msgctxt "table_view_singular"
1446
  msgid "Text"
1447
  msgstr ""
1448
 
1449
+ #: includes/class-mla-core-options.php:1317
1450
  msgctxt "table_view_plural"
1451
  msgid "Text"
1452
  msgstr ""
1453
 
1454
+ #: includes/class-mla-core-options.php:1322
1455
  msgctxt "post_mime_types_description"
1456
  msgid "All text subtypes"
1457
  msgstr ""
1458
 
1459
+ #: includes/class-mla-core-options.php:1325
1460
  msgctxt "table_view_singular"
1461
  msgid "Application"
1462
  msgstr ""
1463
 
1464
+ #: includes/class-mla-core-options.php:1326
1465
  msgctxt "table_view_plural"
1466
  msgid "Applications"
1467
  msgstr ""
1468
 
1469
+ #: includes/class-mla-core-options.php:1331
1470
  msgctxt "post_mime_types_description"
1471
  msgid "All application subtypes"
1472
  msgstr ""
1473
 
1474
+ #: includes/class-mla-core-options.php:1335
1475
  msgctxt "table_view_plural"
1476
  msgid "Unattached"
1477
  msgstr ""
1478
 
1479
+ #: includes/class-mla-core-options.php:1343
1480
  msgctxt "table_view_singular"
1481
  msgid "Attached"
1482
  msgstr ""
1483
 
1484
+ #: includes/class-mla-core-options.php:1344
1485
  msgctxt "table_view_plural"
1486
  msgid "Attached"
1487
  msgstr ""
1488
 
1489
+ #: includes/class-mla-core-options.php:1352
1490
  msgctxt "table_view_singular"
1491
  msgid "Mine"
1492
  msgstr ""
1493
 
1494
+ #: includes/class-mla-core-options.php:1353
1495
  msgctxt "table_view_plural"
1496
  msgid "Mine"
1497
  msgstr ""
1498
 
1499
+ #: includes/class-mla-core-options.php:1361
1500
  msgctxt "table_view_singular"
1501
  msgid "Trash"
1502
  msgstr ""
1503
 
1504
+ #: includes/class-mla-core-options.php:1362
1505
  msgctxt "table_view_plural"
1506
  msgid "Trash"
1507
  msgstr ""
1508
 
1509
+ #: includes/class-mla-core-options.php:1373
1510
  msgid "Enable Upload MIME Type Support"
1511
  msgstr ""
1512
 
1513
+ #: includes/class-mla-core-options.php:1376
1514
  msgid ""
1515
  "Check/uncheck this option to enable/disable Upload MIME Type Support, then "
1516
  "click <strong>Save Changes</strong> to record the new setting."
1517
  msgstr ""
1518
 
1519
+ #: includes/class-mla-core-options.php:1385
1520
  msgid "Upload MIME Types help."
1521
  msgstr ""
1522
 
1523
+ #: includes/class-mla-core-options.php:1390
1524
  msgid "Enable MLA File Type Icons Support"
1525
  msgstr ""
1526
 
1527
+ #: includes/class-mla-core-options.php:1393
1528
  msgid ""
1529
  "Check/uncheck this option to enable/disable MLA File Type Icons Support, "
1530
  "then click <strong>Save Changes</strong> to record the new setting."
1531
  msgstr ""
1532
 
1533
+ #: includes/class-mla-core-options.php:1397
1534
  msgid "Always Use MLA MIME Type"
1535
  msgstr ""
1536
 
1537
+ #: includes/class-mla-core-options.php:1400
1538
  msgid ""
1539
  "Check this option to override WordPress MIME Type security checks, then "
1540
  "click <strong>Save Changes</strong> to record the new setting."
1541
  msgstr ""
1542
 
1543
+ #: includes/class-mla-core-options.php:1404
1544
  msgid "Display Limit"
1545
  msgstr ""
1546
 
1547
+ #: includes/class-mla-core-options.php:1408
1548
  msgid ""
1549
  "Enter the maximum number of debug log characters to display; enter zero or "
1550
  "leave blank for no limit."
1551
  msgstr ""
1552
 
1553
+ #: includes/class-mla-core-options.php:1412
1554
  msgid "Debug File"
1555
  msgstr ""
1556
 
1557
+ #: includes/class-mla-core-options.php:1416
1558
  msgid ""
1559
  "Enter the name of an alternate, MLA-specific debug log file; leave blank to "
1560
  "use the PHP error_log.<br>&nbsp;&nbsp;The WP_CONTENT_DIR value (below) will "
1562
  "\"."
1563
  msgstr ""
1564
 
1565
+ #: includes/class-mla-core-options.php:1420
1566
  msgid "Replace PHP error_log file"
1567
  msgstr ""
1568
 
1569
+ #: includes/class-mla-core-options.php:1423
1570
  msgid ""
1571
  "Check this option to replace the PHP error_log file with the MLA Debug File."
1572
  "<br>&nbsp;&nbsp;allows capture of PHP messages in the MLA Debug File."
1573
  msgstr ""
1574
 
1575
+ #: includes/class-mla-core-options.php:1427
1576
  msgid "PHP Reporting"
1577
  msgstr ""
1578
 
1579
+ #: includes/class-mla-core-options.php:1431
1580
  msgid ""
1581
  "Enter a numeric error_reporting value, e.g., 0x7FFF or 32767; leave blank to "
1582
  "use the existing PHP error_reporting value."
1583
  msgstr ""
1584
 
1585
+ #: includes/class-mla-core-options.php:1435
1586
  msgid "MLA Reporting"
1587
  msgstr ""
1588
 
1589
+ #: includes/class-mla-core-options.php:1439
1590
  msgid ""
1591
  "Enter a numeric MLA_DEBUG_LEVEL value, e.g., 0x0003 or 3; leave blank to use "
1592
  "the existing MLA_DEBUG_LEVEL value."
1593
  msgstr ""
1594
 
1595
+ #: includes/class-mla-core-options.php:1443
1596
  msgid "Add Tax. Columns"
1597
  msgstr ""
1598
 
1599
+ #: includes/class-mla-core-options.php:1446
1600
  msgid ""
1601
+ "Check this option to add Parent, Term ID and Term-Taxonomy ID columns to the "
1602
  "taxonomy edit admin submenu tables."
1603
  msgstr ""
1604
 
1614
  msgid "%1$s: mla_load_template file \"%2$s\" bad source type \"%3$s\"."
1615
  msgstr ""
1616
 
1617
+ #: includes/class-mla-core.php:1371
1618
  #, php-format
1619
  msgid "%1$s: Bad specification part \"%2$s\""
1620
  msgstr ""
1621
 
1622
+ #: includes/class-mla-core.php:1377
1623
  #, php-format
1624
  msgid "%1$s: Bad specification option \"%2$s\""
1625
  msgstr ""
1626
 
1627
+ #: includes/class-mla-core.php:1381
1628
  #, php-format
1629
  msgid "%1$s: Bad specification prefix \"%2$s\""
1630
  msgstr ""
1631
 
1632
+ #: includes/class-mla-core.php:1482
1633
  msgid "Most Used"
1634
  msgstr ""
1635
 
1636
+ #: includes/class-mla-core.php:1511
1637
  #, php-format
1638
  msgid "+ %s"
1639
  msgstr ""
1640
 
1641
+ #: includes/class-mla-core.php:1517 includes/class-mla-edit-media.php:362
1642
+ #: includes/class-mla-edit-media.php:418 includes/class-mla-main.php:2077
1643
+ #: includes/class-mla-main.php:2273 includes/class-mla-main.php:2339
1644
  #: includes/class-mla-media-modal.php:648
1645
  #: includes/mla-media-modal-js-template.php:26
1646
  #: includes/mla-media-modal-js-template.php:73
1727
  #: includes/class-mla-data-query.php:294
1728
  #: includes/class-mla-settings-custom-fields-tab.php:1250
1729
  #: includes/class-mla-settings-documentation-tab.php:536
1730
+ #: includes/class-mla-settings-iptc-exif-tab.php:1385
1731
  #: includes/class-mla-settings-shortcodes-tab.php:978
1732
  msgctxt "list_table_column"
1733
  msgid "Name"
1777
  #: includes/class-mla-mime-types.php:708 includes/class-mla-mime-types.php:787
1778
  #: includes/class-mla-settings-custom-fields-tab.php:1260
1779
  #: includes/class-mla-settings-documentation-tab.php:539
1780
+ #: includes/class-mla-settings-iptc-exif-tab.php:1397
1781
  #: includes/class-mla-settings-shortcodes-tab.php:981
1782
  msgctxt "list_table_column"
1783
  msgid "Description"
1825
  msgid " %1$s: %2$s non-array \"%3$s\""
1826
  msgstr ""
1827
 
1828
+ #: includes/class-mla-data-query.php:1381
1829
  #, php-format
1830
  msgctxt "error_log"
1831
  msgid " %1$s: _execute_list_table_query $wp_filter = \"%2$s\"."
1832
  msgstr ""
1833
 
1834
+ #: includes/class-mla-data-query.php:1397
1835
  #, php-format
1836
  msgctxt "error_log"
1837
  msgid " %1$s: _execute_list_table_query WP_Query = \"%2$s\"."
1838
  msgstr ""
1839
 
1840
+ #: includes/class-mla-data-query.php:1399
1841
  #, php-format
1842
  msgctxt "error_log"
1843
  msgid " %1$s: _execute_list_table_query SQL_request = \"%2$s\"."
1844
  msgstr ""
1845
 
1846
+ #: includes/class-mla-data-query.php:1913
1847
  #, php-format
1848
  msgctxt "error_log"
1849
  msgid " %1$s: mla_query_posts_search_filter = \"%2$s\"."
1850
  msgstr ""
1851
 
1852
+ #: includes/class-mla-data-query.php:2004
1853
  #, php-format
1854
  msgctxt "error_log"
1855
  msgid " %1$s: mla_query_posts_where_filter = \"%2$s\"."
1856
  msgstr ""
1857
 
1858
+ #: includes/class-mla-data-query.php:2076
1859
  #, php-format
1860
  msgctxt "error_log"
1861
  msgid " %1$s: mla_query_posts_join_filter = \"%2$s\"."
1862
  msgstr ""
1863
 
1864
+ #: includes/class-mla-data-query.php:2171
1865
  #, php-format
1866
  msgctxt "error_log"
1867
  msgid " %1$s: mla_query_posts_orderby_filter = \"%2$s\"."
1868
  msgstr ""
1869
 
1870
+ #: includes/class-mla-data-query.php:2257
1871
  #, php-format
1872
  msgctxt "error_log"
1873
  msgid " %1$s: mla_query_posts_clauses_filter = \"%2$s\"."
1874
  msgstr ""
1875
 
1876
+ #: includes/class-mla-data-query.php:2276
1877
  #, php-format
1878
  msgctxt "error_log"
1879
  msgid " %1$s: mla_query_posts_clauses_request_filter = \"%2$s\"."
1955
  msgid "%1$s: _evaluate_template_node unknown type \"%2$s\"."
1956
  msgstr ""
1957
 
1958
+ #: includes/class-mla-data.php:1676
1959
  #, php-format
1960
  msgctxt "error_log"
1961
  msgid ""
1963
  "\"."
1964
  msgstr ""
1965
 
1966
+ #: includes/class-mla-data.php:1823
1967
  #, php-format
1968
  msgctxt "error_log"
1969
  msgid "%1$s: mla_get_attachment_by_id(%2$d) not found."
1970
  msgstr ""
1971
 
1972
+ #: includes/class-mla-data.php:1829
1973
  #, php-format
1974
  msgctxt "error_log"
1975
  msgid "%1$s: mla_get_attachment_by_id(%2$d) wrong post_type \"%3$s\"."
1976
  msgstr ""
1977
 
1978
+ #: includes/class-mla-data.php:2179
1979
  msgctxt "error_log"
1980
  msgid "mla_parse_xml_string xml_parse_into_struct failed."
1981
  msgstr ""
1982
 
1983
+ #: includes/class-mla-data.php:2183
1984
  msgctxt "error_log"
1985
  msgid "mla_parse_xml_string set option failed."
1986
  msgstr ""
1987
 
1988
+ #: includes/class-mla-data.php:3840
1989
  msgid "Auto"
1990
  msgstr ""
1991
 
1992
+ #: includes/class-mla-data.php:3843
1993
  msgid "Manual"
1994
  msgstr ""
1995
 
1996
+ #: includes/class-mla-data.php:3846
1997
  msgid "Bracket"
1998
  msgstr ""
1999
 
2000
+ #: includes/class-mla-data.php:3849
2001
  msgid "Other"
2002
  msgstr ""
2003
 
2004
+ #: includes/class-mla-data.php:3856
2005
  #: includes/class-mla-settings-custom-fields-tab.php:841
2006
  #: includes/class-mla-settings-custom-fields-tab.php:1563
2007
+ #: includes/class-mla-settings-iptc-exif-tab.php:981
2008
+ #: includes/class-mla-settings-iptc-exif-tab.php:1729
2009
+ #: includes/class-mla-settings-iptc-exif-tab.php:2555
2010
  #: includes/class-mla-settings-view-tab.php:401
2011
  #: includes/class-mla-settings-view-tab.php:802
2012
  #: includes/class-mla-settings-view-tab.php:818
2014
  msgid "Yes"
2015
  msgstr ""
2016
 
2017
+ #: includes/class-mla-data.php:3858
2018
  #: includes/class-mla-settings-custom-fields-tab.php:842
2019
  #: includes/class-mla-settings-custom-fields-tab.php:1565
2020
+ #: includes/class-mla-settings-iptc-exif-tab.php:982
2021
+ #: includes/class-mla-settings-iptc-exif-tab.php:1731
2022
+ #: includes/class-mla-settings-iptc-exif-tab.php:2555
2023
  #: includes/class-mla-settings-view-tab.php:400
2024
  #: includes/class-mla-settings-view-tab.php:804
2025
  #: includes/class-mla-settings-view-tab.php:820
2027
  msgid "No"
2028
  msgstr ""
2029
 
2030
+ #: includes/class-mla-data.php:4105 includes/class-mla-data.php:4229
2031
  #, php-format
2032
  msgid "Deleting %1$s"
2033
  msgstr ""
2034
 
2035
+ #: includes/class-mla-data.php:4108
2036
  #, php-format
2037
  msgid "%1$s: meta:%2$s not found"
2038
  msgstr ""
2039
 
2040
+ #: includes/class-mla-data.php:4117 includes/class-mla-data.php:4240
2041
+ #: includes/class-mla-data.php:4252
2042
  #, php-format
2043
  msgid "Adding %1$s = %2$s"
2044
  msgstr ""
2045
 
2046
+ #: includes/class-mla-data.php:4121
2047
  #, php-format
2048
  msgid "%1$s: Adding meta:%2$s; not found"
2049
  msgstr ""
2050
 
2051
+ #: includes/class-mla-data.php:4128
2052
  #, php-format
2053
  msgid "Deleting Null meta:%1$s"
2054
  msgstr ""
2055
 
2056
+ #: includes/class-mla-data.php:4138 includes/class-mla-data.php:4321
2057
+ #: includes/class-mla-data.php:4408 includes/class-mla-data.php:4432
2058
+ #: includes/class-mla-data.php:4475 includes/class-mla-data.php:4488
2059
+ #: includes/class-mla-data.php:4497 includes/class-mla-data.php:4508
2060
+ #: includes/class-mla-data.php:4519 includes/class-mla-data.php:4532
2061
+ #: includes/class-mla-data.php:4541 includes/class-mla-data.php:4550
2062
+ #: includes/class-mla-data.php:4559 includes/class-mla-data.php:4568
2063
  #: includes/class-mla-mime-types.php:1300
2064
  #: includes/class-mla-mime-types.php:2412
2065
  #, php-format
2066
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\""
2067
  msgstr ""
2068
 
2069
+ #: includes/class-mla-data.php:4143
2070
  #, php-format
2071
  msgid "%1$s: Changing meta:%2$s; not found"
2072
  msgstr ""
2073
 
2074
+ #: includes/class-mla-data.php:4276
2075
  #, php-format
2076
  msgid "Deleting old %1$s values"
2077
  msgstr ""
2078
 
2079
+ #: includes/class-mla-data.php:4306
2080
  #, php-format
2081
  msgid "Changing %1$s from \"%2$s\" to \"%3$s\"; %4$d updates"
2082
  msgstr ""
2083
 
2084
+ #: includes/class-mla-data.php:4383
2085
  msgid "Could not retrieve Attachment."
2086
  msgstr ""
2087
 
2088
+ #: includes/class-mla-data.php:4429
2089
  #, php-format
2090
  msgid "%1$s: Could not change Name/Slug \"%2$s\"; name already exists"
2091
  msgstr ""
2092
 
2093
+ #: includes/class-mla-data.php:4459
2094
  #, php-format
2095
  msgid "Deleting ALT Text, was \"%1$s\""
2096
  msgstr ""
2097
 
2098
+ #: includes/class-mla-data.php:4462
2099
  #, php-format
2100
  msgid "%1$s: Could not delete ALT Text, remains \"%2$s\""
2101
  msgstr ""
2102
 
2103
+ #: includes/class-mla-data.php:4478
2104
  #, php-format
2105
  msgid "%1$s: Could not change ALT Text from \"%2$s\" to \"%3$s\""
2106
  msgstr ""
2107
 
2108
+ #: includes/class-mla-data.php:4508 includes/class-mla-list-table.php:1131
2109
  #: includes/class-mla-list-table.php:1134
2110
  #: includes/class-mla-list-table.php:1137
2111
+ #: includes/class-mla-list-table.php:1205 includes/class-mla-objects.php:158
2112
+ #: includes/class-mla-options.php:2148
2113
+ #: includes/class-mla-settings-iptc-exif-tab.php:558
2114
+ #: includes/class-mla-settings-iptc-exif-tab.php:951
2115
  msgid "Parent"
2116
  msgstr ""
2117
 
2118
+ #: includes/class-mla-data.php:4519 includes/class-mla-edit-media.php:889
2119
+ #: includes/class-mla-edit-media.php:1100 includes/class-mla-main.php:2417
2120
  #: includes/class-mla-settings-view-tab.php:126
2121
  #: includes/class-mla-settings-view-tab.php:389
2122
  msgid "Menu Order"
2123
  msgstr ""
2124
 
2125
+ #: includes/class-mla-data.php:4532 includes/class-mla-edit-media.php:449
2126
  #: includes/class-mla-list-table.php:1585
2127
+ #: includes/class-mla-list-table.php:1588 includes/class-mla-main.php:2216
2128
+ #: includes/class-mla-main.php:2376
2129
  msgid "Author"
2130
  msgstr ""
2131
 
2132
+ #: includes/class-mla-data.php:4541 includes/class-mla-edit-media.php:474
2133
+ #: includes/class-mla-main.php:2429
2134
  msgid "Comments"
2135
  msgstr ""
2136
 
2137
+ #: includes/class-mla-data.php:4550 includes/class-mla-edit-media.php:475
2138
+ #: includes/class-mla-main.php:2430
2139
  msgid "Pings"
2140
  msgstr ""
2141
 
2142
+ #: includes/class-mla-data.php:4598
2143
  #, php-format
2144
  msgid "You cannot assign \"%1$s\" terms"
2145
  msgstr ""
2146
 
2147
+ #: includes/class-mla-data.php:4611
2148
  msgctxt "tag delimiter"
2149
  msgid ","
2150
  msgstr ""
2151
 
2152
+ #: includes/class-mla-data.php:4650
2153
  msgid "Adding"
2154
  msgstr ""
2155
 
2156
+ #: includes/class-mla-data.php:4655
2157
  msgid "Removing"
2158
  msgstr ""
2159
 
2160
+ #: includes/class-mla-data.php:4664
2161
  msgid "Replacing"
2162
  msgstr ""
2163
 
2164
+ #: includes/class-mla-data.php:4672
2165
  msgid "Ignoring"
2166
  msgstr ""
2167
 
2168
+ #: includes/class-mla-data.php:4689
2169
  #, php-format
2170
  msgid "%1$s \"%2$s\" terms"
2171
  msgstr ""
2172
 
2173
+ #: includes/class-mla-data.php:4701 includes/class-mla-main.php:1403
2174
  #, php-format
2175
  msgid "Item %1$d, no changes detected."
2176
  msgstr ""
2177
 
2178
+ #: includes/class-mla-data.php:4734
2179
  #, php-format
2180
  msgid "Item %1$d updated."
2181
  msgstr ""
2182
 
2183
+ #: includes/class-mla-data.php:4752
2184
  #, php-format
2185
  msgid "%1$s: Item %2$d update failed."
2186
  msgstr ""
2187
 
2188
  #: includes/class-mla-edit-media.php:131 includes/class-mla-edit-media.php:185
2189
  #: includes/class-mla-edit-media.php:238 includes/class-mla-main.php:470
2190
+ #: includes/class-mla-main.php:1158 includes/class-mla-main.php:1948
2191
+ #: includes/class-mla-media-modal.php:268 includes/class-mla-options.php:1654
2192
  #: includes/class-mla-polylang-support.php:379
2193
  #: includes/class-mla-settings-custom-fields-tab.php:57
2194
  #: includes/class-mla-settings-custom-fields-tab.php:90
2195
+ #: includes/class-mla-settings-iptc-exif-tab.php:80
2196
+ #: includes/class-mla-settings-iptc-exif-tab.php:114
2197
  #: includes/class-mla-settings-upload-tab.php:46
2198
  #: includes/class-mla-settings-view-tab.php:46
2199
  #: includes/class-mla-thumbnail-generation.php:99
2223
  msgid "An ajax.done error has occurred. Please reload the page and try again."
2224
  msgstr ""
2225
 
2226
+ #: includes/class-mla-edit-media.php:242 includes/class-mla-main.php:2157
2227
  #, php-format
2228
  msgid "Uploaded on: %s"
2229
  msgstr ""
2232
  msgid "Last modified"
2233
  msgstr ""
2234
 
2235
+ #: includes/class-mla-edit-media.php:321 includes/class-mla-main.php:2071
2236
+ #: includes/class-mla-main.php:2210 includes/class-mla-media-modal.php:618
2237
  #: includes/class-mla-mime-types.php:825 includes/class-mla-mime-types.php:1466
2238
  #: includes/class-mla-mime-types.php:2645
2239
  #: includes/class-mla-settings-custom-fields-tab.php:578
2241
  #: includes/class-mla-settings-custom-fields-tab.php:2079
2242
  #: includes/class-mla-settings-documentation-tab.php:337
2243
  #: includes/class-mla-settings-documentation-tab.php:1278
2244
+ #: includes/class-mla-settings-iptc-exif-tab.php:718
2245
+ #: includes/class-mla-settings-iptc-exif-tab.php:887
2246
+ #: includes/class-mla-settings-iptc-exif-tab.php:2386
2247
  #: includes/class-mla-settings-shortcodes-tab.php:524
2248
  #: includes/class-mla-settings-shortcodes-tab.php:1643
2249
  #: includes/class-mla-settings-upload-tab.php:322
2254
  msgstr ""
2255
 
2256
  #: includes/class-mla-edit-media.php:341 includes/class-mla-edit-media.php:397
2257
+ #: includes/class-mla-main.php:2252 includes/class-mla-main.php:2318
2258
  msgid "+&nbsp;Add&nbsp;New&nbsp;Term"
2259
  msgstr ""
2260
 
2261
  #: includes/class-mla-edit-media.php:342 includes/class-mla-edit-media.php:398
2262
+ #: includes/class-mla-main.php:2253 includes/class-mla-main.php:2319
2263
  msgid "Add New"
2264
  msgstr ""
2265
 
2266
  #: includes/class-mla-edit-media.php:360 includes/class-mla-edit-media.php:416
2267
+ #: includes/class-mla-main.php:2271 includes/class-mla-main.php:2337
2268
  msgid "?&nbsp;Search"
2269
  msgstr ""
2270
 
2271
  #: includes/class-mla-edit-media.php:363 includes/class-mla-edit-media.php:419
2272
+ #: includes/class-mla-edit-media.php:428 includes/class-mla-main.php:2274
2273
+ #: includes/class-mla-main.php:2340 includes/class-mla-main.php:2349
2274
  msgid "Add"
2275
  msgstr ""
2276
 
2277
  #: includes/class-mla-edit-media.php:364 includes/class-mla-edit-media.php:420
2278
+ #: includes/class-mla-edit-media.php:429 includes/class-mla-main.php:2275
2279
+ #: includes/class-mla-main.php:2341 includes/class-mla-main.php:2350
2280
  msgid "Remove"
2281
  msgstr ""
2282
 
2283
  #: includes/class-mla-edit-media.php:365 includes/class-mla-edit-media.php:421
2284
+ #: includes/class-mla-edit-media.php:430 includes/class-mla-main.php:2276
2285
+ #: includes/class-mla-main.php:2342 includes/class-mla-main.php:2351
2286
  #: includes/class-mla-settings-custom-fields-tab.php:502
2287
  #: includes/class-mla-settings-custom-fields-tab.php:812
2288
  #: includes/class-mla-settings-custom-fields-tab.php:1549
2289
+ #: includes/class-mla-settings-iptc-exif-tab.php:552
2290
+ #: includes/class-mla-settings-iptc-exif-tab.php:948
2291
+ #: includes/class-mla-settings-iptc-exif-tab.php:1670
2292
+ #: includes/class-mla-settings-iptc-exif-tab.php:2536
2293
  msgid "Replace"
2294
  msgstr ""
2295
 
2299
  "menu for more information."
2300
  msgstr ""
2301
 
2302
+ #: includes/class-mla-edit-media.php:470 includes/class-mla-main.php:2423
2303
  #: includes/class-mla-settings.php:1391
2304
  msgid "Reset"
2305
  msgstr ""
2306
 
2307
+ #: includes/class-mla-edit-media.php:476 includes/class-mla-main.php:2431
2308
+ #: includes/class-mla-main.php:2487
2309
  #: includes/class-mla-settings-custom-fields-tab.php:840
2310
+ #: includes/class-mla-settings-iptc-exif-tab.php:980
2311
  #: includes/class-mla-settings-upload-tab.php:120
2312
  #: includes/class-mla-settings-upload-tab.php:554
2313
  #: includes/class-mla-settings-view-tab.php:399
2314
  msgid "No Change"
2315
  msgstr ""
2316
 
2317
+ #: includes/class-mla-edit-media.php:477 includes/class-mla-main.php:2432
2318
  msgid "Allow"
2319
  msgstr ""
2320
 
2321
+ #: includes/class-mla-edit-media.php:478 includes/class-mla-main.php:2433
2322
  msgid "Do not allow"
2323
  msgstr ""
2324
 
2325
  #: includes/class-mla-edit-media.php:486 includes/class-mla-list-table.php:1131
2326
+ #: includes/class-mla-list-table.php:1202 includes/class-mla-main.php:2415
2327
  msgid "Parent ID"
2328
  msgstr ""
2329
 
2330
+ #: includes/class-mla-edit-media.php:487 includes/class-mla-edit-media.php:1080
2331
+ #: includes/class-mla-main.php:2416
2332
  #: includes/class-mla-settings-upload-tab.php:1469
2333
  msgid "Select"
2334
  msgstr ""
2349
  msgid "IPTC/EXIF mapping is disabled."
2350
  msgstr ""
2351
 
2352
+ #: includes/class-mla-edit-media.php:688 includes/class-mla-main.php:2141
2353
  msgid "Month"
2354
  msgstr ""
2355
 
2356
+ #: includes/class-mla-edit-media.php:694 includes/class-mla-main.php:2147
2357
  #, php-format
2358
  msgid "%1$s-%2$s"
2359
  msgstr ""
2360
 
2361
+ #: includes/class-mla-edit-media.php:698 includes/class-mla-main.php:2151
2362
  msgid "Day"
2363
  msgstr ""
2364
 
2365
+ #: includes/class-mla-edit-media.php:699 includes/class-mla-main.php:2152
2366
  msgid "Year"
2367
  msgstr ""
2368
 
2369
+ #: includes/class-mla-edit-media.php:700 includes/class-mla-main.php:2153
2370
  msgid "Hour"
2371
  msgstr ""
2372
 
2373
+ #: includes/class-mla-edit-media.php:701 includes/class-mla-main.php:2154
2374
  msgid "Minute"
2375
  msgstr ""
2376
 
2377
+ #: includes/class-mla-edit-media.php:705 includes/class-mla-main.php:2159
2378
  #, php-format
2379
  msgid "%1$s %2$s, %3$s @ %4$s:%5$s"
2380
  msgstr ""
2383
  msgid "OK"
2384
  msgstr ""
2385
 
2386
+ #: includes/class-mla-edit-media.php:729 includes/class-mla-main.php:2094
2387
+ #: includes/class-mla-main.php:2422
2388
  #: includes/class-mla-polylang-support.php:2083
2389
  #: includes/class-mla-settings-custom-fields-tab.php:530
2390
  #: includes/class-mla-settings-custom-fields-tab.php:761
2391
  #: includes/class-mla-settings-custom-fields-tab.php:843
2392
  #: includes/class-mla-settings-documentation-tab.php:210
2393
+ #: includes/class-mla-settings-iptc-exif-tab.php:591
2394
+ #: includes/class-mla-settings-iptc-exif-tab.php:899
2395
+ #: includes/class-mla-settings-iptc-exif-tab.php:983
2396
  #: includes/class-mla-settings-shortcodes-tab.php:426
2397
  #: includes/class-mla-settings-shortcodes-tab.php:497
2398
  #: includes/class-mla-settings-upload-tab.php:202
2419
  #: includes/class-mla-polylang-support.php:378
2420
  #: includes/class-mla-settings-custom-fields-tab.php:1392
2421
  #: includes/class-mla-settings-custom-fields-tab.php:1739
2422
+ #: includes/class-mla-settings-iptc-exif-tab.php:1529
2423
+ #: includes/class-mla-settings-iptc-exif-tab.php:1905
2424
  #: includes/class-mla-settings-shortcodes-tab.php:1096
2425
  #: includes/class-mla-settings-upload-tab.php:928
2426
  #: includes/class-mla-settings-upload-tab.php:1213
2442
  msgstr ""
2443
 
2444
  #: includes/class-mla-edit-media.php:785 includes/class-mla-main.php:1852
2445
+ #: includes/class-mla-main.php:2438
2446
  msgid "Map Custom Field metadata"
2447
  msgstr ""
2448
 
2451
  msgstr ""
2452
 
2453
  #: includes/class-mla-edit-media.php:789 includes/class-mla-main.php:1855
2454
+ #: includes/class-mla-main.php:2436
2455
  msgid "Map IPTC/EXIF metadata"
2456
  msgstr ""
2457
 
2458
+ #: includes/class-mla-edit-media.php:885 includes/class-mla-edit-media.php:1081
2459
  msgid "Parent Info"
2460
  msgstr ""
2461
 
2462
+ #: includes/class-mla-edit-media.php:895 includes/class-mla-edit-media.php:1124
2463
  msgid "Attachment Metadata"
2464
  msgstr ""
2465
 
2466
+ #: includes/class-mla-edit-media.php:901 includes/class-mla-edit-media.php:1143
2467
+ msgid "Attachment File Metadata"
2468
+ msgstr ""
2469
+
2470
+ #: includes/class-mla-edit-media.php:971 includes/class-mla-edit-media.php:1013
2471
  #: includes/class-mla-main.php:709 includes/class-mla-settings.php:586
2472
  #, php-format
2473
  msgctxt "error_log"
2474
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
2475
  msgstr ""
2476
 
2477
+ #: includes/class-mla-edit-media.php:1079
2478
  msgid "Post Parent"
2479
  msgstr ""
2480
 
2481
+ #: includes/class-mla-edit-media.php:1080 includes/class-mla-main.php:2076
2482
  msgid "Select Parent"
2483
  msgstr ""
2484
 
2493
 
2494
  #: includes/class-mla-list-table.php:500
2495
  #: includes/class-mla-settings-custom-fields-tab.php:1037
2496
+ #: includes/class-mla-settings-iptc-exif-tab.php:1168
2497
  #: includes/class-mla-settings-upload-tab.php:653
2498
  #: includes/class-mla-settings-view-tab.php:496
2499
  msgid "List View"
2517
  #: includes/class-mla-list-table.php:648
2518
  #: includes/class-mla-settings-custom-fields-tab.php:1340
2519
  #: includes/class-mla-settings-documentation-tab.php:620
2520
+ #: includes/class-mla-settings-iptc-exif-tab.php:1477
2521
  #: includes/class-mla-settings-shortcodes-tab.php:1051
2522
  #: includes/class-mla-settings-upload-tab.php:864
2523
  #: includes/class-mla-settings-upload-tab.php:1417
2536
 
2537
  #: includes/class-mla-list-table.php:820
2538
  #: includes/class-mla-settings-custom-fields-tab.php:1392
2539
+ #: includes/class-mla-settings-iptc-exif-tab.php:1529
2540
  #: includes/class-mla-settings-shortcodes-tab.php:1096
2541
  #: includes/class-mla-settings-upload-tab.php:928
2542
  #: includes/class-mla-settings-view-tab.php:723
2545
 
2546
  #: includes/class-mla-list-table.php:821
2547
  #: includes/class-mla-settings-custom-fields-tab.php:1395
2548
+ #: includes/class-mla-settings-iptc-exif-tab.php:1532
2549
  #: includes/class-mla-settings-upload-tab.php:930
2550
  #: includes/class-mla-settings-view-tab.php:725
2551
  msgid "Edit this item inline"
2552
  msgstr ""
2553
 
2554
+ #: includes/class-mla-list-table.php:821 includes/class-mla-main.php:2406
2555
  #: includes/class-mla-options.php:1244
2556
  #: includes/class-mla-settings-custom-fields-tab.php:493
2557
  #: includes/class-mla-settings-custom-fields-tab.php:803
2558
  #: includes/class-mla-settings-custom-fields-tab.php:1395
2559
  #: includes/class-mla-settings-custom-fields-tab.php:1505
2560
+ #: includes/class-mla-settings-iptc-exif-tab.php:927
2561
+ #: includes/class-mla-settings-iptc-exif-tab.php:1532
2562
  #: includes/class-mla-settings-upload-tab.php:930
2563
  #: includes/class-mla-settings-view-tab.php:725
2564
  msgid "Quick Edit"
2574
 
2575
  #: includes/class-mla-list-table.php:832
2576
  #: includes/class-mla-settings-custom-fields-tab.php:1403
2577
+ #: includes/class-mla-settings-iptc-exif-tab.php:1542
2578
  #: includes/class-mla-settings-shortcodes-tab.php:1102
2579
  #: includes/class-mla-settings-upload-tab.php:934
2580
  #: includes/class-mla-settings-view-tab.php:731
2585
  #: includes/class-mla-list-table.php:1977
2586
  #: includes/class-mla-settings-custom-fields-tab.php:1403
2587
  #: includes/class-mla-settings-custom-fields-tab.php:1740
2588
+ #: includes/class-mla-settings-iptc-exif-tab.php:1542
2589
+ #: includes/class-mla-settings-iptc-exif-tab.php:1906
2590
  #: includes/class-mla-settings-shortcodes-tab.php:1102
2591
  #: includes/class-mla-settings-upload-tab.php:934
2592
  #: includes/class-mla-settings-view-tab.php:731
2655
 
2656
  #: includes/class-mla-list-table.php:2071
2657
  #: includes/class-mla-settings-custom-fields-tab.php:1803
2658
+ #: includes/class-mla-settings-iptc-exif-tab.php:1969
2659
  #: includes/class-mla-settings-shortcodes-tab.php:1361
2660
  msgid "Filter"
2661
  msgstr ""
2682
  #: includes/class-mla-main.php:460
2683
  #: includes/class-mla-settings-custom-fields-tab.php:55
2684
  #: includes/class-mla-settings-custom-fields-tab.php:88
2685
+ #: includes/class-mla-settings-iptc-exif-tab.php:78
2686
+ #: includes/class-mla-settings-iptc-exif-tab.php:112
2687
  #: includes/class-mla-settings-upload-tab.php:44
2688
  #: includes/class-mla-settings-view-tab.php:44
2689
  msgid "Remove From Bulk Edit"
2693
  msgid "Bulk Edit items"
2694
  msgstr ""
2695
 
2696
+ #: includes/class-mla-main.php:463 includes/class-mla-main.php:2439
2697
  #: includes/class-mla-settings-custom-fields-tab.php:61
2698
+ #: includes/class-mla-settings-iptc-exif-tab.php:84
2699
  msgid "Waiting"
2700
  msgstr ""
2701
 
2702
+ #: includes/class-mla-main.php:464 includes/class-mla-main.php:2441
2703
  #: includes/class-mla-settings-custom-fields-tab.php:63
2704
+ #: includes/class-mla-settings-iptc-exif-tab.php:86
2705
  msgid "Complete"
2706
  msgstr ""
2707
 
2708
  #: includes/class-mla-main.php:465
2709
  #: includes/class-mla-settings-custom-fields-tab.php:64
2710
+ #: includes/class-mla-settings-iptc-exif-tab.php:87
2711
  msgid "Unchanged"
2712
  msgstr ""
2713
 
2714
  #: includes/class-mla-main.php:466
2715
  #: includes/class-mla-settings-custom-fields-tab.php:65
2716
+ #: includes/class-mla-settings-iptc-exif-tab.php:88
2717
  msgid "Succeeded"
2718
  msgstr ""
2719
 
2720
  #: includes/class-mla-main.php:467
2721
  #: includes/class-mla-settings-custom-fields-tab.php:66
2722
+ #: includes/class-mla-settings-iptc-exif-tab.php:89
2723
  msgid "Failed"
2724
  msgstr ""
2725
 
2734
  msgstr[0] ""
2735
  msgstr[1] ""
2736
 
2737
+ #: includes/class-mla-main.php:611 includes/class-mla-main.php:2626
2738
  #, php-format
2739
  msgid "Item %1$d moved to Trash."
2740
  msgstr ""
2786
  #: includes/class-mla-main.php:1462
2787
  #: includes/class-mla-settings-custom-fields-tab.php:635
2788
  #: includes/class-mla-settings-documentation-tab.php:287
2789
+ #: includes/class-mla-settings-iptc-exif-tab.php:775
2790
  #: includes/class-mla-settings-shortcodes-tab.php:586
2791
  #: includes/class-mla-settings-upload-tab.php:421
2792
  #: includes/class-mla-settings-view-tab.php:267
2822
  #: includes/class-mla-main.php:1688
2823
  #: includes/class-mla-settings-custom-fields-tab.php:663
2824
  #: includes/class-mla-settings-documentation-tab.php:321
2825
+ #: includes/class-mla-settings-iptc-exif-tab.php:803
2826
  #: includes/class-mla-settings-shortcodes-tab.php:613
2827
  #: includes/class-mla-settings-upload-tab.php:459
2828
  #: includes/class-mla-settings-view-tab.php:304
2842
  msgid "search results for"
2843
  msgstr ""
2844
 
2845
+ #: includes/class-mla-main.php:1858 includes/class-mla-main.php:2098
2846
+ #: includes/class-mla-main.php:2424
2847
  #: includes/class-mla-settings-custom-fields-tab.php:532
2848
  #: includes/class-mla-settings-custom-fields-tab.php:844
2849
  #: includes/class-mla-settings-documentation-tab.php:664
2850
  #: includes/class-mla-settings-documentation-tab.php:863
2851
+ #: includes/class-mla-settings-iptc-exif-tab.php:593
2852
+ #: includes/class-mla-settings-iptc-exif-tab.php:984
2853
  #: includes/class-mla-settings-shortcodes-tab.php:500
2854
  #: includes/class-mla-settings-upload-tab.php:201
2855
  #: includes/class-mla-settings-upload-tab.php:551
2858
  msgid "Update"
2859
  msgstr ""
2860
 
2861
+ #: includes/class-mla-main.php:2033
2862
  msgid "All Post Types"
2863
  msgstr ""
2864
 
2865
+ #: includes/class-mla-main.php:2079
2866
  msgid "For"
2867
  msgstr ""
2868
 
2869
+ #: includes/class-mla-main.php:2089
2870
+ #: includes/class-mla-shortcode-support.php:1244
2871
  msgid "Unattached"
2872
  msgstr ""
2873
 
2874
+ #: includes/class-mla-main.php:2425 includes/class-mla-options.php:1258
2875
  #: includes/class-mla-settings-custom-fields-tab.php:496
2876
  #: includes/class-mla-settings-custom-fields-tab.php:806
2877
  #: includes/class-mla-settings-custom-fields-tab.php:1509
2878
+ #: includes/class-mla-settings-iptc-exif-tab.php:928
2879
  #: includes/class-mla-settings-upload-tab.php:552
2880
  #: includes/class-mla-settings-view-tab.php:398
2881
  msgid "Bulk Edit"
2882
  msgstr ""
2883
 
2884
+ #: includes/class-mla-main.php:2440
2885
  msgid "In-process"
2886
  msgstr ""
2887
 
2888
+ #: includes/class-mla-main.php:2539
2889
  msgid "You are not allowed to delete this item."
2890
  msgstr ""
2891
 
2892
+ #: includes/class-mla-main.php:2547
2893
  #, php-format
2894
  msgid "%1$s: Item %2$d could NOT be deleted."
2895
  msgstr ""
2896
 
2897
+ #: includes/class-mla-main.php:2554
2898
  #, php-format
2899
  msgid "Item %1$d permanently deleted."
2900
  msgstr ""
2901
 
2902
+ #: includes/class-mla-main.php:2571
2903
  msgid "You are not allowed to move this item out of the Trash."
2904
  msgstr ""
2905
 
2906
+ #: includes/class-mla-main.php:2579
2907
  #, php-format
2908
  msgid "%1$s: Item %2$d could NOT be restored from Trash."
2909
  msgstr ""
2910
 
2911
+ #: includes/class-mla-main.php:2594
2912
  #, php-format
2913
  msgid "Item %1$d restored from Trash."
2914
  msgstr ""
2915
 
2916
+ #: includes/class-mla-main.php:2611
2917
  msgid "You are not allowed to move this item to the Trash."
2918
  msgstr ""
2919
 
2920
+ #: includes/class-mla-main.php:2619
2921
  #, php-format
2922
  msgid "%1$s: Item %2$d could NOT be moved to Trash."
2923
  msgstr ""
3024
 
3025
  #: includes/class-mla-mime-types.php:630
3026
  #: includes/class-mla-settings-custom-fields-tab.php:1255
3027
+ #: includes/class-mla-settings-iptc-exif-tab.php:1391
3028
  msgctxt "list_table_column"
3029
  msgid "Status"
3030
  msgstr ""
3195
  msgstr ""
3196
 
3197
  #: includes/class-mla-mime-types.php:1716
3198
+ #: includes/class-mla-settings-iptc-exif-tab.php:2857
3199
  msgctxt "table_view_singular"
3200
  msgid "Custom"
3201
  msgstr ""
3202
 
3203
  #: includes/class-mla-mime-types.php:1717
3204
+ #: includes/class-mla-settings-iptc-exif-tab.php:2858
3205
  msgctxt "table_view_plural"
3206
  msgid "Custom"
3207
  msgstr ""
3363
  msgid "Attachments"
3364
  msgstr ""
3365
 
3366
+ #: includes/class-mla-objects.php:159
3367
  msgid "Term ID"
3368
  msgstr ""
3369
 
3370
+ #: includes/class-mla-objects.php:160
3371
  msgid "Term-Tax ID"
3372
  msgstr ""
3373
 
3374
+ #: includes/class-mla-objects.php:266
3375
  #, php-format
3376
  msgctxt "error_log"
3377
  msgid ""
3378
  "%1$s: mla_taxonomy_column_filter( \"%2$s\" ) - get_term failed: \"%3$s\""
3379
  msgstr ""
3380
 
3381
+ #: includes/class-mla-objects.php:290
3382
  msgid "click to search"
3383
  msgstr ""
3384
 
3385
+ #: includes/class-mla-objects.php:322
3386
  msgid "Shortcode(s), HTML and/or Plain Text"
3387
  msgstr ""
3388
 
3389
+ #: includes/class-mla-objects.php:330
3390
  msgid "MLA Text"
3391
  msgstr ""
3392
 
3393
+ #: includes/class-mla-objects.php:374
3394
  msgid "Automatically add paragraphs"
3395
  msgstr ""
3396
 
3397
+ #: includes/class-mla-objects.php:375
3398
  msgid "Add .textwidget div tags"
3399
  msgstr ""
3400
 
3505
  #: includes/class-mla-options.php:469
3506
  #: includes/class-mla-settings-custom-fields-tab.php:472
3507
  #: includes/class-mla-settings-custom-fields-tab.php:790
3508
+ #: includes/class-mla-settings-iptc-exif-tab.php:525
3509
+ #: includes/class-mla-settings-iptc-exif-tab.php:929
3510
  #: includes/class-mla-settings-shortcodes-tab.php:422
3511
  #: includes/class-mla-settings-shortcodes-tab.php:493
3512
  #: includes/mla-main-search-box-template.php:49
3527
  msgstr ""
3528
 
3529
  #: includes/class-mla-options.php:1001 includes/class-mla-options.php:1047
3530
+ #: includes/class-mla-options.php:1886 includes/class-mla-options.php:1917
3531
+ #: includes/class-mla-options.php:1922
3532
  #: includes/class-mla-settings-upload-tab.php:126
3533
  msgid "None (select a value)"
3534
  msgstr ""
3541
  msgid "Template (see below)"
3542
  msgstr ""
3543
 
3544
+ #: includes/class-mla-options.php:1133 includes/class-mla-options.php:2204
3545
  #, php-format
3546
  msgid "%1$s: New field %2$s already exists."
3547
  msgstr ""
3548
 
3549
+ #: includes/class-mla-options.php:1138 includes/class-mla-options.php:2209
3550
  #, php-format
3551
  msgid "Adding new field %1$s."
3552
  msgstr ""
3553
 
3554
+ #: includes/class-mla-options.php:1146 includes/class-mla-options.php:2217
3555
  #, php-format
3556
  msgid "Adding new rule for %1$s."
3557
  msgstr ""
3558
 
3559
+ #: includes/class-mla-options.php:1172 includes/class-mla-options.php:2074
3560
+ #: includes/class-mla-options.php:2243
3561
  #, php-format
3562
  msgid "Deleting rule for %1$s."
3563
  msgstr ""
3564
 
3565
  #: includes/class-mla-options.php:1195 includes/class-mla-options.php:1216
3566
  #: includes/class-mla-options.php:1266 includes/class-mla-options.php:1273
3567
+ #: includes/class-mla-options.php:1990 includes/class-mla-options.php:1997
3568
+ #: includes/class-mla-options.php:2004 includes/class-mla-options.php:2099
3569
+ #: includes/class-mla-options.php:2106 includes/class-mla-options.php:2141
3570
+ #: includes/class-mla-options.php:2148 includes/class-mla-options.php:2253
3571
+ #: includes/class-mla-options.php:2260 includes/class-mla-options.php:2295
3572
+ #: includes/class-mla-options.php:2302
3573
  #, php-format
3574
  msgid "%1$s changing %2$s from %3$s to %4$s."
3575
  msgstr ""
3580
  msgid "Data Source"
3581
  msgstr ""
3582
 
3583
+ #: includes/class-mla-options.php:1201 includes/class-mla-options.php:2024
3584
+ #: includes/class-mla-options.php:2126 includes/class-mla-options.php:2280
3585
  msgid "Replace to Keep"
3586
  msgstr ""
3587
 
3588
+ #: includes/class-mla-options.php:1204 includes/class-mla-options.php:2027
3589
+ #: includes/class-mla-options.php:2129 includes/class-mla-options.php:2283
3590
  msgid "Keep to Replace"
3591
  msgstr ""
3592
 
3593
  #: includes/class-mla-options.php:1209 includes/class-mla-options.php:1230
3594
  #: includes/class-mla-options.php:1244 includes/class-mla-options.php:1258
3595
+ #: includes/class-mla-options.php:1287 includes/class-mla-options.php:2018
3596
+ #: includes/class-mla-options.php:2032 includes/class-mla-options.php:2120
3597
+ #: includes/class-mla-options.php:2134 includes/class-mla-options.php:2274
3598
+ #: includes/class-mla-options.php:2288 includes/class-mla-options.php:2316
3599
  #, php-format
3600
  msgid "%1$s changing %2$s value from %3$s."
3601
  msgstr ""
3602
 
3603
+ #: includes/class-mla-options.php:1209 includes/class-mla-options.php:2032
3604
+ #: includes/class-mla-options.php:2134 includes/class-mla-options.php:2288
3605
  #: includes/class-mla-settings-custom-fields-tab.php:498
3606
  #: includes/class-mla-settings-custom-fields-tab.php:808
3607
+ #: includes/class-mla-settings-iptc-exif-tab.php:548
3608
+ #: includes/class-mla-settings-iptc-exif-tab.php:944
3609
  msgid "Existing Text"
3610
  msgstr ""
3611
 
3612
+ #: includes/class-mla-options.php:1216 includes/class-mla-options.php:2295
3613
  #: includes/class-mla-settings-custom-fields-tab.php:503
3614
  #: includes/class-mla-settings-custom-fields-tab.php:813
3615
+ #: includes/class-mla-settings-iptc-exif-tab.php:563
3616
+ #: includes/class-mla-settings-iptc-exif-tab.php:952
3617
  msgid "Format"
3618
  msgstr ""
3619
 
3620
  #: includes/class-mla-options.php:1222 includes/class-mla-options.php:1236
3621
  #: includes/class-mla-options.php:1250 includes/class-mla-options.php:1279
3622
+ #: includes/class-mla-options.php:2308
3623
  msgid "unchecked to checked"
3624
  msgstr ""
3625
 
3626
  #: includes/class-mla-options.php:1225 includes/class-mla-options.php:1239
3627
  #: includes/class-mla-options.php:1253 includes/class-mla-options.php:1282
3628
+ #: includes/class-mla-options.php:2311
3629
  msgid "checked to unchecked"
3630
  msgstr ""
3631
 
3640
  msgid "Metavalue name"
3641
  msgstr ""
3642
 
3643
+ #: includes/class-mla-options.php:1273 includes/class-mla-options.php:2302
3644
  #: includes/class-mla-settings-custom-fields-tab.php:510
3645
  #: includes/class-mla-settings-custom-fields-tab.php:820
3646
+ #: includes/class-mla-settings-iptc-exif-tab.php:570
3647
+ #: includes/class-mla-settings-iptc-exif-tab.php:959
3648
  msgid "Option"
3649
  msgstr ""
3650
 
3651
+ #: includes/class-mla-options.php:1287 includes/class-mla-options.php:2316
3652
+ #: includes/class-mla-settings-iptc-exif-tab.php:582
3653
  msgid "Delete NULL values"
3654
  msgstr ""
3655
 
3656
+ #: includes/class-mla-options.php:1978
3657
  #, php-format
3658
  msgid "%1$s: No old values for %2$s."
3659
  msgstr ""
3660
 
3661
+ #: includes/class-mla-options.php:1990
3662
  msgid "Field Title"
3663
  msgstr ""
3664
 
3665
+ #: includes/class-mla-options.php:1997 includes/class-mla-options.php:2099
3666
+ #: includes/class-mla-options.php:2253
3667
+ #: includes/class-mla-settings-iptc-exif-tab.php:537
3668
+ #: includes/class-mla-settings-iptc-exif-tab.php:933
3669
  msgid "IPTC Value"
3670
  msgstr ""
3671
 
3672
+ #: includes/class-mla-options.php:2004 includes/class-mla-options.php:2106
3673
+ #: includes/class-mla-options.php:2260
3674
  msgid "EXIF Value"
3675
  msgstr ""
3676
 
3677
+ #: includes/class-mla-options.php:2010 includes/class-mla-options.php:2112
3678
+ #: includes/class-mla-options.php:2266
3679
  msgid "EXIF to IPTC"
3680
  msgstr ""
3681
 
3682
+ #: includes/class-mla-options.php:2013 includes/class-mla-options.php:2115
3683
+ #: includes/class-mla-options.php:2269
3684
  msgid "IPTC to EXIF"
3685
  msgstr ""
3686
 
3687
+ #: includes/class-mla-options.php:2018 includes/class-mla-options.php:2120
3688
+ #: includes/class-mla-options.php:2274
3689
+ #: includes/class-mla-settings-iptc-exif-tab.php:543
3690
+ #: includes/class-mla-settings-iptc-exif-tab.php:939
3691
  msgid "Priority"
3692
  msgstr ""
3693
 
3694
+ #: includes/class-mla-options.php:2141
3695
  msgid "Delimiter(s)"
3696
  msgstr ""
3697
 
3885
  #: includes/class-mla-polylang-support.php:2602
3886
  #: includes/class-mla-settings-custom-fields-tab.php:686
3887
  #: includes/class-mla-settings-custom-fields-tab.php:787
3888
+ #: includes/class-mla-settings-iptc-exif-tab.php:826
3889
+ #: includes/class-mla-settings-iptc-exif-tab.php:924
3890
  #: includes/class-mla-settings-shortcodes-tab.php:733
3891
  #: includes/class-mla-settings-upload-tab.php:485
3892
  #: includes/class-mla-settings-upload-tab.php:531
3929
 
3930
  #: includes/class-mla-settings-custom-fields-tab.php:54
3931
  #: includes/class-mla-settings-custom-fields-tab.php:87
3932
+ #: includes/class-mla-settings-iptc-exif-tab.php:77
3933
+ #: includes/class-mla-settings-iptc-exif-tab.php:111
3934
  #: includes/class-mla-settings-upload-tab.php:43
3935
  #: includes/class-mla-settings-view-tab.php:43
3936
  msgid "Error while making the changes."
3938
 
3939
  #: includes/class-mla-settings-custom-fields-tab.php:56
3940
  #: includes/class-mla-settings-custom-fields-tab.php:89
3941
+ #: includes/class-mla-settings-iptc-exif-tab.php:79
3942
+ #: includes/class-mla-settings-iptc-exif-tab.php:113
3943
  #: includes/class-mla-settings-upload-tab.php:45
3944
  #: includes/class-mla-settings-view-tab.php:45
3945
  msgid "no slug"
3946
  msgstr ""
3947
 
3948
  #: includes/class-mla-settings-custom-fields-tab.php:62
3949
+ #: includes/class-mla-settings-iptc-exif-tab.php:85
3950
  msgid "Running"
3951
  msgstr ""
3952
 
3953
  #: includes/class-mla-settings-custom-fields-tab.php:67
3954
+ #: includes/class-mla-settings-iptc-exif-tab.php:90
3955
  msgid "Skipped"
3956
  msgstr ""
3957
 
3958
  #: includes/class-mla-settings-custom-fields-tab.php:68
3959
+ #: includes/class-mla-settings-iptc-exif-tab.php:91
3960
  msgid "Reprocessed"
3961
  msgstr ""
3962
 
3963
  #: includes/class-mla-settings-custom-fields-tab.php:69
3964
+ #: includes/class-mla-settings-iptc-exif-tab.php:92
3965
  msgid "PAUSED"
3966
  msgstr ""
3967
 
3974
  msgstr ""
3975
 
3976
  #: includes/class-mla-settings-custom-fields-tab.php:169
3977
+ #: includes/class-mla-settings-iptc-exif-tab.php:195
3978
  msgid "No custom field mapping rules to process."
3979
  msgstr ""
3980
 
3981
  #: includes/class-mla-settings-custom-fields-tab.php:202
3982
+ #: includes/class-mla-settings-iptc-exif-tab.php:237
3983
  #, php-format
3984
  msgid "%1$s mapping completed; %2$d attachment(s) examined, %3$d updated."
3985
  msgstr ""
3986
 
3987
  #: includes/class-mla-settings-custom-fields-tab.php:202
3988
  #: includes/class-mla-settings-custom-fields-tab.php:205
3989
+ #: includes/class-mla-settings-iptc-exif-tab.php:237
3990
+ #: includes/class-mla-settings-iptc-exif-tab.php:240
3991
  msgid "Custom field"
3992
  msgstr ""
3993
 
3994
  #: includes/class-mla-settings-custom-fields-tab.php:205
3995
+ #: includes/class-mla-settings-iptc-exif-tab.php:240
3996
  #, php-format
3997
  msgid ""
3998
  "%1$s mapping completed; %2$d attachment(s) examined, no changes detected."
3999
  msgstr ""
4000
 
4001
  #: includes/class-mla-settings-custom-fields-tab.php:252
4002
+ #: includes/class-mla-settings-iptc-exif-tab.php:290
4003
  msgid ": No custom field name selected/entered"
4004
  msgstr ""
4005
 
4006
  #: includes/class-mla-settings-custom-fields-tab.php:256
4007
  #: includes/class-mla-settings-custom-fields-tab.php:323
4008
+ #: includes/class-mla-settings-iptc-exif-tab.php:294
4009
+ #: includes/class-mla-settings-iptc-exif-tab.php:363
4010
  msgid ": Rule already exists for the new name"
4011
  msgstr ""
4012
 
4013
  #: includes/class-mla-settings-custom-fields-tab.php:274
4014
+ #: includes/class-mla-settings-iptc-exif-tab.php:311
4015
  msgid "Rule added"
4016
  msgstr ""
4017
 
4018
  #: includes/class-mla-settings-custom-fields-tab.php:277
4019
+ #: includes/class-mla-settings-iptc-exif-tab.php:314
4020
  msgid ": Rule addition failed"
4021
  msgstr ""
4022
 
4023
  #: includes/class-mla-settings-custom-fields-tab.php:327
4024
+ #: includes/class-mla-settings-iptc-exif-tab.php:367
4025
  msgid ": Invalid rule name must be changed"
4026
  msgstr ""
4027
 
4028
  #: includes/class-mla-settings-custom-fields-tab.php:350
4029
  #: includes/class-mla-settings-custom-fields-tab.php:442
4030
  #: includes/class-mla-settings-custom-fields-tab.php:998
4031
+ #: includes/class-mla-settings-iptc-exif-tab.php:397
4032
+ #: includes/class-mla-settings-iptc-exif-tab.php:402
4033
+ #: includes/class-mla-settings-iptc-exif-tab.php:492
4034
+ #: includes/class-mla-settings-iptc-exif-tab.php:1129
4035
  msgid ": Rule update failed"
4036
  msgstr ""
4037
 
4038
  #: includes/class-mla-settings-custom-fields-tab.php:355
4039
  #: includes/class-mla-settings-custom-fields-tab.php:445
4040
+ #: includes/class-mla-settings-iptc-exif-tab.php:407
4041
+ #: includes/class-mla-settings-iptc-exif-tab.php:495
4042
  msgid "Rule updated"
4043
  msgstr ""
4044
 
4045
  #: includes/class-mla-settings-custom-fields-tab.php:379
4046
+ #: includes/class-mla-settings-iptc-exif-tab.php:431
4047
  #, php-format
4048
  msgid "Custom Field Rule \"%1$s\" deleted."
4049
  msgstr ""
4050
 
4051
  #: includes/class-mla-settings-custom-fields-tab.php:466
4052
+ #: includes/class-mla-settings-iptc-exif-tab.php:516
4053
  msgid "Edit Rule"
4054
  msgstr ""
4055
 
4056
  #: includes/class-mla-settings-custom-fields-tab.php:475
4057
+ #: includes/class-mla-settings-iptc-exif-tab.php:528
4058
  msgid ""
4059
  "This is the name of the custom field to which the rule applies.<br>Only one "
4060
  "rule is allowed for each custom field."
4061
  msgstr ""
4062
 
4063
  #: includes/class-mla-settings-custom-fields-tab.php:476
4064
+ #: includes/class-mla-settings-iptc-exif-tab.php:529
4065
  msgid "Change Name"
4066
  msgstr ""
4067
 
4068
  #: includes/class-mla-settings-custom-fields-tab.php:477
4069
+ #: includes/class-mla-settings-iptc-exif-tab.php:530
4070
  msgid "Cancel Name Change"
4071
  msgstr ""
4072
 
4073
  #: includes/class-mla-settings-custom-fields-tab.php:478
4074
  #: includes/class-mla-settings-custom-fields-tab.php:792
4075
+ #: includes/class-mla-settings-iptc-exif-tab.php:531
4076
+ #: includes/class-mla-settings-iptc-exif-tab.php:931
4077
  msgid "Enter new field"
4078
  msgstr ""
4079
 
4080
  #: includes/class-mla-settings-custom-fields-tab.php:479
4081
  #: includes/class-mla-settings-custom-fields-tab.php:793
4082
+ #: includes/class-mla-settings-iptc-exif-tab.php:532
4083
+ #: includes/class-mla-settings-iptc-exif-tab.php:932
4084
  msgid "Cancel new field"
4085
  msgstr ""
4086
 
4116
  #: includes/class-mla-settings-custom-fields-tab.php:500
4117
  #: includes/class-mla-settings-custom-fields-tab.php:810
4118
  #: includes/class-mla-settings-custom-fields-tab.php:1547
4119
+ #: includes/class-mla-settings-iptc-exif-tab.php:550
4120
+ #: includes/class-mla-settings-iptc-exif-tab.php:946
4121
+ #: includes/class-mla-settings-iptc-exif-tab.php:1668
4122
+ #: includes/class-mla-settings-iptc-exif-tab.php:2536
4123
  #: includes/class-mla-thumbnail-generation.php:650
4124
  msgid "Keep"
4125
  msgstr ""
4126
 
4127
  #: includes/class-mla-settings-custom-fields-tab.php:505
4128
  #: includes/class-mla-settings-custom-fields-tab.php:815
4129
+ #: includes/class-mla-settings-iptc-exif-tab.php:565
4130
+ #: includes/class-mla-settings-iptc-exif-tab.php:954
4131
  msgid "Native"
4132
  msgstr ""
4133
 
4134
  #: includes/class-mla-settings-custom-fields-tab.php:507
4135
  #: includes/class-mla-settings-custom-fields-tab.php:817
4136
+ #: includes/class-mla-settings-iptc-exif-tab.php:567
4137
+ #: includes/class-mla-settings-iptc-exif-tab.php:956
4138
  msgid "Commas"
4139
  msgstr ""
4140
 
4141
  #: includes/class-mla-settings-custom-fields-tab.php:509
4142
  #: includes/class-mla-settings-custom-fields-tab.php:819
4143
+ #: includes/class-mla-settings-iptc-exif-tab.php:569
4144
+ #: includes/class-mla-settings-iptc-exif-tab.php:958
4145
  msgid "Raw"
4146
  msgstr ""
4147
 
4148
  #: includes/class-mla-settings-custom-fields-tab.php:512
4149
  #: includes/class-mla-settings-custom-fields-tab.php:822
4150
+ #: includes/class-mla-settings-iptc-exif-tab.php:572
4151
+ #: includes/class-mla-settings-iptc-exif-tab.php:961
4152
  msgid "Text"
4153
  msgstr ""
4154
 
4155
  #: includes/class-mla-settings-custom-fields-tab.php:514
4156
  #: includes/class-mla-settings-custom-fields-tab.php:824
4157
+ #: includes/class-mla-settings-iptc-exif-tab.php:574
4158
+ #: includes/class-mla-settings-iptc-exif-tab.php:963
4159
  msgid "Single"
4160
  msgstr ""
4161
 
4162
  #: includes/class-mla-settings-custom-fields-tab.php:516
4163
  #: includes/class-mla-settings-custom-fields-tab.php:826
4164
+ #: includes/class-mla-settings-iptc-exif-tab.php:576
4165
+ #: includes/class-mla-settings-iptc-exif-tab.php:965
4166
  msgid "Export"
4167
  msgstr ""
4168
 
4169
  #: includes/class-mla-settings-custom-fields-tab.php:518
4170
  #: includes/class-mla-settings-custom-fields-tab.php:828
4171
+ #: includes/class-mla-settings-iptc-exif-tab.php:578
4172
+ #: includes/class-mla-settings-iptc-exif-tab.php:967
4173
  msgid "Array"
4174
  msgstr ""
4175
 
4176
  #: includes/class-mla-settings-custom-fields-tab.php:520
4177
  #: includes/class-mla-settings-custom-fields-tab.php:830
4178
+ #: includes/class-mla-settings-iptc-exif-tab.php:580
4179
+ #: includes/class-mla-settings-iptc-exif-tab.php:969
4180
  msgid "Multi"
4181
  msgstr ""
4182
 
4183
  #: includes/class-mla-settings-custom-fields-tab.php:522
4184
  #: includes/class-mla-settings-custom-fields-tab.php:832
4185
+ #: includes/class-mla-settings-iptc-exif-tab.php:971
4186
  msgid "Delete NULL Values"
4187
  msgstr ""
4188
 
4189
  #: includes/class-mla-settings-custom-fields-tab.php:523
4190
  #: includes/class-mla-settings-custom-fields-tab.php:833
4191
+ #: includes/class-mla-settings-iptc-exif-tab.php:583
4192
+ #: includes/class-mla-settings-iptc-exif-tab.php:972
4193
  msgid "Do not store empty custom field values"
4194
  msgstr ""
4195
 
4198
  #: includes/class-mla-settings-custom-fields-tab.php:1531
4199
  #: includes/class-mla-settings-custom-fields-tab.php:1762
4200
  #: includes/class-mla-settings-documentation-tab.php:1226
4201
+ #: includes/class-mla-settings-iptc-exif-tab.php:587
4202
+ #: includes/class-mla-settings-iptc-exif-tab.php:975
4203
+ #: includes/class-mla-settings-iptc-exif-tab.php:1684
4204
+ #: includes/class-mla-settings-iptc-exif-tab.php:1928
4205
+ #: includes/class-mla-settings-iptc-exif-tab.php:2539
4206
  #: includes/class-mla-settings-upload-tab.php:555
4207
  #: includes/class-mla-settings-upload-tab.php:1041
4208
  msgid "Active"
4213
  #: includes/class-mla-settings-custom-fields-tab.php:1533
4214
  #: includes/class-mla-settings-custom-fields-tab.php:1765
4215
  #: includes/class-mla-settings-documentation-tab.php:1228
4216
+ #: includes/class-mla-settings-iptc-exif-tab.php:589
4217
+ #: includes/class-mla-settings-iptc-exif-tab.php:977
4218
+ #: includes/class-mla-settings-iptc-exif-tab.php:1686
4219
+ #: includes/class-mla-settings-iptc-exif-tab.php:1931
4220
+ #: includes/class-mla-settings-iptc-exif-tab.php:2539
4221
  #: includes/class-mla-settings-upload-tab.php:197
4222
  #: includes/class-mla-settings-upload-tab.php:541
4223
  #: includes/class-mla-settings-upload-tab.php:1039
4225
  msgstr ""
4226
 
4227
  #: includes/class-mla-settings-custom-fields-tab.php:560
4228
+ #: includes/class-mla-settings-iptc-exif-tab.php:700
4229
  #, php-format
4230
  msgid "Custom Field Rule \"%1$s\": %2$s"
4231
  msgstr ""
4237
  #: includes/class-mla-settings-custom-fields-tab.php:611
4238
  #: includes/class-mla-settings-custom-fields-tab.php:639
4239
  #: includes/class-mla-settings-documentation-tab.php:277
4240
+ #: includes/class-mla-settings-iptc-exif-tab.php:751
4241
+ #: includes/class-mla-settings-iptc-exif-tab.php:779
4242
  #: includes/class-mla-settings-shortcodes-tab.php:574
4243
  #: includes/class-mla-settings-upload-tab.php:410
4244
  #: includes/class-mla-settings-view-tab.php:257
4255
  msgstr ""
4256
 
4257
  #: includes/class-mla-settings-custom-fields-tab.php:755
4258
+ #: includes/class-mla-settings-iptc-exif-tab.php:893
4259
  msgid "DO NOT DO THE FOLLOWING (they will cause mapping to fail)"
4260
  msgstr ""
4261
 
4262
  #: includes/class-mla-settings-custom-fields-tab.php:756
4263
+ #: includes/class-mla-settings-iptc-exif-tab.php:894
4264
  msgid "Close the window"
4265
  msgstr ""
4266
 
4267
  #: includes/class-mla-settings-custom-fields-tab.php:757
4268
+ #: includes/class-mla-settings-iptc-exif-tab.php:895
4269
  msgid "Reload the page"
4270
  msgstr ""
4271
 
4272
  #: includes/class-mla-settings-custom-fields-tab.php:758
4273
+ #: includes/class-mla-settings-iptc-exif-tab.php:896
4274
  msgid "Click the browser&rsquo;s Stop, Back or forward buttons"
4275
  msgstr ""
4276
 
4277
  #: includes/class-mla-settings-custom-fields-tab.php:759
4278
+ #: includes/class-mla-settings-iptc-exif-tab.php:897
4279
  msgid "Progress"
4280
  msgstr ""
4281
 
4282
  #: includes/class-mla-settings-custom-fields-tab.php:760
4283
+ #: includes/class-mla-settings-iptc-exif-tab.php:898
4284
  msgid "Pause"
4285
  msgstr ""
4286
 
4287
  #: includes/class-mla-settings-custom-fields-tab.php:762
4288
+ #: includes/class-mla-settings-iptc-exif-tab.php:900
4289
  msgid "Resume"
4290
  msgstr ""
4291
 
4292
  #: includes/class-mla-settings-custom-fields-tab.php:763
4293
  #: includes/class-mla-settings-documentation-tab.php:152
4294
+ #: includes/class-mla-settings-iptc-exif-tab.php:901
4295
  #: includes/class-mla-settings-shortcodes-tab.php:497
4296
  #: includes/class-mla-template-support.php:160
4297
  #: includes/class-mla-template-support.php:166
4316
  msgstr ""
4317
 
4318
  #: includes/class-mla-settings-custom-fields-tab.php:776
4319
+ #: includes/class-mla-settings-iptc-exif-tab.php:914
4320
  msgid ""
4321
  "You can find more information about using the controls in this tab to define "
4322
  "mapping rules and apply them by clicking the \"Help\" control in the upper-"
4324
  msgstr ""
4325
 
4326
  #: includes/class-mla-settings-custom-fields-tab.php:781
4327
+ #: includes/class-mla-settings-iptc-exif-tab.php:919
4328
  #: includes/class-mla-settings-shortcodes-tab.php:731
4329
  msgid "Search results for"
4330
  msgstr ""
4331
 
4332
  #: includes/class-mla-settings-custom-fields-tab.php:783
4333
+ #: includes/class-mla-settings-iptc-exif-tab.php:920
4334
  msgid "Search Rules Text"
4335
  msgstr ""
4336
 
4337
  #: includes/class-mla-settings-custom-fields-tab.php:785
4338
+ #: includes/class-mla-settings-iptc-exif-tab.php:922
4339
  msgid "Search Rules"
4340
  msgstr ""
4341
 
4342
  #: includes/class-mla-settings-custom-fields-tab.php:788
4343
+ #: includes/class-mla-settings-iptc-exif-tab.php:925
4344
  msgid "Execute All Rules"
4345
  msgstr ""
4346
 
4347
  #: includes/class-mla-settings-custom-fields-tab.php:789
4348
+ #: includes/class-mla-settings-iptc-exif-tab.php:926
4349
  msgid "Add New Custom Field Rule"
4350
  msgstr ""
4351
 
4352
  #: includes/class-mla-settings-custom-fields-tab.php:839
4353
+ #: includes/class-mla-settings-iptc-exif-tab.php:978
4354
  msgid "Add Rule"
4355
  msgstr ""
4356
 
4357
  #: includes/class-mla-settings-custom-fields-tab.php:910
4358
  #: includes/class-mla-settings-custom-fields-tab.php:932
4359
+ #: includes/class-mla-settings-iptc-exif-tab.php:1058
4360
  msgid "Nothing to execute"
4361
  msgstr ""
4362
 
4363
  #: includes/class-mla-settings-custom-fields-tab.php:972
4364
+ #: includes/class-mla-settings-iptc-exif-tab.php:1099
4365
  msgid "Rule not found"
4366
  msgstr ""
4367
 
4368
  #: includes/class-mla-settings-custom-fields-tab.php:975
4369
+ #: includes/class-mla-settings-iptc-exif-tab.php:1095
4370
  msgid "Rule ID not found"
4371
  msgstr ""
4372
 
4373
  #: includes/class-mla-settings-custom-fields-tab.php:1251
4374
+ #: includes/class-mla-settings-iptc-exif-tab.php:1386
4375
  msgctxt "list_table_column"
4376
  msgid "Bad Name"
4377
  msgstr ""
4387
  msgstr ""
4388
 
4389
  #: includes/class-mla-settings-custom-fields-tab.php:1256
4390
+ #: includes/class-mla-settings-iptc-exif-tab.php:1390
4391
  msgctxt "list_table_column"
4392
  msgid "Existing Text"
4393
  msgstr ""
4394
 
4395
  #: includes/class-mla-settings-custom-fields-tab.php:1257
4396
+ #: includes/class-mla-settings-iptc-exif-tab.php:1394
4397
  msgctxt "list_table_column"
4398
  msgid "Delete NULL"
4399
  msgstr ""
4400
 
4401
  #: includes/class-mla-settings-custom-fields-tab.php:1258
4402
+ #: includes/class-mla-settings-iptc-exif-tab.php:1395
4403
  msgctxt "list_table_column"
4404
  msgid "Format"
4405
  msgstr ""
4406
 
4407
  #: includes/class-mla-settings-custom-fields-tab.php:1259
4408
+ #: includes/class-mla-settings-iptc-exif-tab.php:1396
4409
  msgctxt "list_table_column"
4410
  msgid "Option"
4411
  msgstr ""
4412
 
4413
  #: includes/class-mla-settings-custom-fields-tab.php:1398
4414
+ #: includes/class-mla-settings-iptc-exif-tab.php:1535
4415
  msgid "Map All Attachments"
4416
  msgstr ""
4417
 
4418
  #: includes/class-mla-settings-custom-fields-tab.php:1398
4419
  #: includes/class-mla-settings-custom-fields-tab.php:1741
4420
+ #: includes/class-mla-settings-iptc-exif-tab.php:1535
4421
+ #: includes/class-mla-settings-iptc-exif-tab.php:1907
4422
  msgid "Execute"
4423
  msgstr ""
4424
 
4428
 
4429
  #: includes/class-mla-settings-custom-fields-tab.php:1400
4430
  #: includes/class-mla-settings-custom-fields-tab.php:1742
4431
+ #: includes/class-mla-settings-iptc-exif-tab.php:1538
4432
+ #: includes/class-mla-settings-iptc-exif-tab.php:1908
4433
  msgid "Purge Values"
4434
  msgstr ""
4435
 
4436
  #: includes/class-mla-settings-custom-fields-tab.php:1759
4437
+ #: includes/class-mla-settings-iptc-exif-tab.php:1925
4438
  #: includes/class-mla-settings-shortcodes-tab.php:1317
4439
  msgid "Any Status"
4440
  msgstr ""
4470
  msgstr ""
4471
 
4472
  #: includes/class-mla-settings-custom-fields-tab.php:2517
4473
+ #: includes/class-mla-settings-iptc-exif-tab.php:2861
4474
  msgctxt "table_view_singular"
4475
  msgid "Read Only"
4476
  msgstr ""
4477
 
4478
  #: includes/class-mla-settings-custom-fields-tab.php:2518
4479
+ #: includes/class-mla-settings-iptc-exif-tab.php:2862
4480
  msgctxt "table_view_plural"
4481
  msgid "Read Only"
4482
  msgstr ""
4668
  msgid "Uninstalled"
4669
  msgstr ""
4670
 
4671
+ #: includes/class-mla-settings-iptc-exif-tab.php:164
4672
  msgid "IPTC/EXIF mapping settings updated."
4673
  msgstr ""
4674
 
4675
+ #: includes/class-mla-settings-iptc-exif-tab.php:166
4676
  msgid "IPTC/EXIF no mapping changes detected."
4677
  msgstr ""
4678
 
4679
+ #: includes/class-mla-settings-iptc-exif-tab.php:228
4680
  msgid "updated."
4681
  msgstr ""
4682
 
4683
+ #: includes/class-mla-settings-iptc-exif-tab.php:536
4684
  msgid "Notes for the IPTC/EXIF tab submenu table."
4685
  msgstr ""
4686
 
4687
+ #: includes/class-mla-settings-iptc-exif-tab.php:539
4688
+ #: includes/class-mla-settings-iptc-exif-tab.php:935
4689
  msgid "EXIF/Template Value"
4690
  msgstr ""
4691
 
4692
+ #: includes/class-mla-settings-iptc-exif-tab.php:542
4693
+ #: includes/class-mla-settings-iptc-exif-tab.php:938
4694
  msgid "EXIF element name or Content Template"
4695
  msgstr ""
4696
 
4697
+ #: includes/class-mla-settings-iptc-exif-tab.php:542
4698
  msgid " (starting with \"template:\")"
4699
  msgstr ""
4700
 
4701
+ #: includes/class-mla-settings-iptc-exif-tab.php:545
4702
+ #: includes/class-mla-settings-iptc-exif-tab.php:941
4703
+ #: includes/class-mla-settings-iptc-exif-tab.php:1652
4704
  msgid "IPTC"
4705
  msgstr ""
4706
 
4707
+ #: includes/class-mla-settings-iptc-exif-tab.php:547
4708
+ #: includes/class-mla-settings-iptc-exif-tab.php:943
4709
+ #: includes/class-mla-settings-iptc-exif-tab.php:1655
4710
  msgid "EXIF"
4711
  msgstr ""
4712
 
4713
+ #: includes/class-mla-settings-iptc-exif-tab.php:555
4714
+ #: includes/class-mla-settings-iptc-exif-tab.php:949
4715
  msgid "Delimiters"
4716
  msgstr ""
4717
 
4718
+ #: includes/class-mla-settings-iptc-exif-tab.php:610
4719
  msgid "Standard field mapping"
4720
  msgstr ""
4721
 
4722
+ #: includes/class-mla-settings-iptc-exif-tab.php:613
4723
  msgid "Taxonomy term mapping"
4724
  msgstr ""
4725
 
4726
+ #: includes/class-mla-settings-iptc-exif-tab.php:636
4727
  msgid "Custom field mapping"
4728
  msgstr ""
4729
 
4730
+ #: includes/class-mla-settings-iptc-exif-tab.php:737
4731
  msgid "Edit IPTC EXIF Rule cancelled."
4732
  msgstr ""
4733
 
4734
+ #: includes/class-mla-settings-iptc-exif-tab.php:823
4735
  msgid "IPTC/EXIF Mapping Support is disabled"
4736
  msgstr ""
4737
 
4738
+ #: includes/class-mla-settings-iptc-exif-tab.php:892
4739
  msgid "IPTC &amp; EXIF Mapping Progress"
4740
  msgstr ""
4741
 
4742
+ #: includes/class-mla-settings-iptc-exif-tab.php:910
4743
  msgid "IPTC &amp; EXIF Processing Options"
4744
  msgstr ""
4745
 
4746
+ #: includes/class-mla-settings-iptc-exif-tab.php:912
4747
  msgid ""
4748
  "In this tab you can define the rules for mapping IPTC (International Press "
4749
  "Telecommunications Council) and EXIF (EXchangeable Image File) metadata to "
4750
  "WordPress standard attachment fields, taxonomy terms and custom fields."
4751
  msgstr ""
4752
 
4753
+ #: includes/class-mla-settings-iptc-exif-tab.php:1387
4754
  msgctxt "list_table_column"
4755
  msgid "IPTC Value"
4756
  msgstr ""
4757
 
4758
+ #: includes/class-mla-settings-iptc-exif-tab.php:1388
4759
  msgctxt "list_table_column"
4760
  msgid "EXIF/Template Value"
4761
  msgstr ""
4762
 
4763
+ #: includes/class-mla-settings-iptc-exif-tab.php:1389
4764
  msgctxt "list_table_column"
4765
  msgid "Priority "
4766
  msgstr ""
4767
 
4768
+ #: includes/class-mla-settings-iptc-exif-tab.php:1392
4769
  msgctxt "list_table_column"
4770
  msgid "Delimiter(s)"
4771
  msgstr ""
4772
 
4773
+ #: includes/class-mla-settings-iptc-exif-tab.php:1393
4774
  msgctxt "list_table_column"
4775
  msgid "Parent"
4776
  msgstr ""
4777
 
4778
+ #: includes/class-mla-settings-iptc-exif-tab.php:1538
4779
  msgid "Purge IPTC EXIF values"
4780
  msgstr ""
4781
 
4782
+ #: includes/class-mla-settings-iptc-exif-tab.php:2849
4783
  msgctxt "table_view_singular"
4784
  msgid "Standard"
4785
  msgstr ""
4786
 
4787
+ #: includes/class-mla-settings-iptc-exif-tab.php:2850
4788
  msgctxt "table_view_plural"
4789
  msgid "Standard"
4790
  msgstr ""
4791
 
4792
+ #: includes/class-mla-settings-iptc-exif-tab.php:2853
4793
  msgctxt "table_view_singular"
4794
  msgid "Taxonomy"
4795
  msgstr ""
4796
 
4797
+ #: includes/class-mla-settings-iptc-exif-tab.php:2854
4798
  msgctxt "table_view_plural"
4799
  msgid "Taxonomy"
4800
  msgstr ""
5722
  msgid "Settings imported; %1$s updated, %2$s unchanged."
5723
  msgstr ""
5724
 
5725
+ #: includes/class-mla-shortcode-support.php:523
5726
+ #: includes/class-mla-shortcode-support.php:2024
5727
+ #: includes/class-mla-shortcode-support.php:4416
5728
+ #: includes/class-mla-shortcode-support.php:4722
5729
  msgid "Previous"
5730
  msgstr ""
5731
 
5732
+ #: includes/class-mla-shortcode-support.php:524
5733
+ #: includes/class-mla-shortcode-support.php:2025
5734
+ #: includes/class-mla-shortcode-support.php:4463
5735
+ #: includes/class-mla-shortcode-support.php:4728
5736
  msgid "Next"
5737
  msgstr ""
5738
 
5739
+ #: includes/class-mla-shortcode-support.php:600
5740
+ #: includes/class-mla-shortcode-support.php:606
5741
+ #: includes/class-mla-shortcode-support.php:2171
5742
+ #: includes/class-mla-shortcode-support.php:2178
5743
+ #: includes/class-mla-shortcode-support.php:3650
5744
+ #: includes/class-mla-shortcode-support.php:3657
5745
  #: includes/class-mla-template-support.php:598
5746
  msgid "not found"
5747
  msgstr ""
5748
 
5749
+ #: includes/class-mla-shortcode-support.php:637
5750
+ #: includes/class-mla-shortcode-support.php:2163
5751
+ #: includes/class-mla-shortcode-support.php:3642
5752
  msgid "mla_debug REQUEST"
5753
  msgstr ""
5754
 
5755
+ #: includes/class-mla-shortcode-support.php:641
5756
+ #: includes/class-mla-shortcode-support.php:643
5757
  msgid "mla_debug attributes_errors"
5758
  msgstr ""
5759
 
5760
+ #: includes/class-mla-shortcode-support.php:649
5761
+ #: includes/class-mla-shortcode-support.php:2164
5762
+ #: includes/class-mla-shortcode-support.php:3643
5763
+ #: includes/class-mla-shortcode-support.php:6446
5764
  msgid "mla_debug attributes"
5765
  msgstr ""
5766
 
5767
+ #: includes/class-mla-shortcode-support.php:650
5768
+ #: includes/class-mla-shortcode-support.php:2165
5769
+ #: includes/class-mla-shortcode-support.php:3644
5770
+ #: includes/class-mla-shortcode-support.php:6447
5771
  msgid "mla_debug arguments"
5772
  msgstr ""
5773
 
5774
+ #: includes/class-mla-shortcode-support.php:753
5775
  msgid "mla_debug empty gallery"
5776
  msgstr ""
5777
 
5778
+ #: includes/class-mla-shortcode-support.php:784
5779
  msgid ""
5780
  "<strong>Photonic-enhanced [mla_gallery]</strong> type must be "
5781
  "<strong>default</strong>, query = "
5782
  msgstr ""
5783
 
5784
+ #: includes/class-mla-shortcode-support.php:1268
5785
  msgid "unknown"
5786
  msgstr ""
5787
 
5788
+ #: includes/class-mla-shortcode-support.php:2302
5789
  msgid "mla_debug empty cloud"
5790
  msgstr ""
5791
 
5792
+ #: includes/class-mla-shortcode-support.php:2421
5793
  msgid "mla_debug adding ANY terms"
5794
  msgstr ""
5795
 
5796
+ #: includes/class-mla-shortcode-support.php:2459
5797
  msgid "mla_debug adding NO terms"
5798
  msgstr ""
5799
 
5800
+ #: includes/class-mla-shortcode-support.php:2497
5801
  msgid "mla_debug adding IGNORE terms"
5802
  msgstr ""
5803
 
5804
+ #: includes/class-mla-shortcode-support.php:3780
5805
  msgid "mla_debug empty list"
5806
  msgstr ""
5807
 
5808
+ #: includes/class-mla-shortcode-support.php:3803
5809
  msgid "no-terms"
5810
  msgstr ""
5811
 
5812
+ #: includes/class-mla-shortcode-support.php:5269
5813
+ #: includes/class-mla-shortcode-support.php:5339
 
5814
  #: includes/class-mla-shortcode-support.php:5804
5815
+ #: includes/class-mla-shortcode-support.php:5820
5816
  #: includes/class-mla-shortcode-support.php:5843
5817
+ #: includes/class-mla-shortcode-support.php:5859
5818
  msgid "Invalid mla_gallery"
5819
  msgstr ""
5820
 
5821
+ #: includes/class-mla-shortcode-support.php:6176
5822
+ #: includes/class-mla-shortcode-support.php:6531
5823
  msgid "mla_debug query"
5824
  msgstr ""
5825
 
5826
+ #: includes/class-mla-shortcode-support.php:6177
5827
  msgid "mla_debug request"
5828
  msgstr ""
5829
 
5830
+ #: includes/class-mla-shortcode-support.php:6178
5831
  msgid "mla_debug query_vars"
5832
  msgstr ""
5833
 
5834
+ #: includes/class-mla-shortcode-support.php:6179
5835
  msgid "mla_debug post_count"
5836
  msgstr ""
5837
 
5838
+ #: includes/class-mla-shortcode-support.php:6180
5839
  msgid "mla_debug found_posts"
5840
  msgstr ""
5841
 
5842
+ #: includes/class-mla-shortcode-support.php:6206
5843
  msgid "mla_debug JOIN filter"
5844
  msgstr ""
5845
 
5846
+ #: includes/class-mla-shortcode-support.php:6247
5847
  msgid "mla_debug modified JOIN filter"
5848
  msgstr ""
5849
 
5850
+ #: includes/class-mla-shortcode-support.php:6272
5851
  msgid "mla_debug WHERE filter"
5852
  msgstr ""
5853
 
5854
+ #: includes/class-mla-shortcode-support.php:6309
5855
  msgid "mla_debug modified WHERE filter"
5856
  msgstr ""
5857
 
5858
+ #: includes/class-mla-shortcode-support.php:6332
5859
  msgid "mla_debug ORDER BY filter, incoming"
5860
  msgstr ""
5861
 
5862
+ #: includes/class-mla-shortcode-support.php:6332
5863
  msgid "Replacement ORDER BY clause"
5864
  msgstr ""
5865
 
5866
+ #: includes/class-mla-shortcode-support.php:6373
5867
  msgid "mla_debug posts_clauses filter"
5868
  msgstr ""
5869
 
5870
+ #: includes/class-mla-shortcode-support.php:6391
5871
  msgid "mla_debug posts_clauses_request filter"
5872
  msgstr ""
5873
 
5874
+ #: includes/class-mla-shortcode-support.php:6532
5875
  msgid "mla_debug results"
5876
  msgstr ""
5877
 
5878
+ #: includes/class-mla-shortcode-support.php:6764
5879
  msgid "Invalid taxonomy"
5880
  msgstr ""
5881
 
5882
+ #: includes/class-mla-shortcode-support.php:6958
5883
  msgid "mla_debug query arguments"
5884
  msgstr ""
5885
 
5886
+ #: includes/class-mla-shortcode-support.php:6959
5887
  msgid "mla_debug last_query"
5888
  msgstr ""
5889
 
5890
+ #: includes/class-mla-shortcode-support.php:6960
5891
  msgid "mla_debug last_error"
5892
  msgstr ""
5893
 
5894
+ #: includes/class-mla-shortcode-support.php:6961
5895
  msgid "mla_debug num_rows"
5896
  msgstr ""
5897
 
5898
+ #: includes/class-mla-shortcode-support.php:6962
5899
  msgid "mla_debug found_rows"
5900
  msgstr ""
5901
 
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: 2021-08-10 17:48-0700\n"
5
- "PO-Revision-Date: 2021-08-10 17:49-0700\n"
6
  "Language-Team: David Lingren <david@davidlingren.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -424,12 +424,21 @@ msgstr ""
424
 
425
  msgid ""
426
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
427
- "Metadata\" and four \"where-used\" meta boxes to the Edit Media screen."
 
428
  msgstr ""
429
 
430
  msgid "You can also use Filters to customize the meta boxes."
431
  msgstr ""
432
 
 
 
 
 
 
 
 
 
433
  msgid "Media/Add New Enhancements"
434
  msgstr ""
435
 
@@ -996,7 +1005,7 @@ msgid "Add Tax. Columns"
996
  msgstr ""
997
 
998
  msgid ""
999
- "Check this option to add Term ID and Term-Taxonomy ID columns to the "
1000
  "taxonomy edit admin submenu tables."
1001
  msgstr ""
1002
 
@@ -1561,6 +1570,9 @@ msgstr ""
1561
  msgid "Attachment Metadata"
1562
  msgstr ""
1563
 
 
 
 
1564
  #, php-format
1565
  msgctxt "error_log"
1566
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Media Library Assistant\n"
4
+ "POT-Creation-Date: 2021-10-17 15:54-0700\n"
5
+ "PO-Revision-Date: 2021-10-17 15:55-0700\n"
6
  "Language-Team: David Lingren <david@davidlingren.com>\n"
7
  "MIME-Version: 1.0\n"
8
  "Content-Type: text/plain; charset=UTF-8\n"
424
 
425
  msgid ""
426
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
427
+ "Metadata\", \"Attachment File Metadata\" and four \"where-used\" meta boxes "
428
+ "to the Edit Media screen."
429
  msgstr ""
430
 
431
  msgid "You can also use Filters to customize the meta boxes."
432
  msgstr ""
433
 
434
+ msgid "Enable File Attachment Metadata meta box"
435
+ msgstr ""
436
+
437
+ msgid ""
438
+ "Check this option to enable the \"Attachment File Metadata\" meta box on "
439
+ "the Edit Media screen."
440
+ msgstr ""
441
+
442
  msgid "Media/Add New Enhancements"
443
  msgstr ""
444
 
1005
  msgstr ""
1006
 
1007
  msgid ""
1008
+ "Check this option to add Parent, Term ID and Term-Taxonomy ID columns to the "
1009
  "taxonomy edit admin submenu tables."
1010
  msgstr ""
1011
 
1570
  msgid "Attachment Metadata"
1571
  msgstr ""
1572
 
1573
+ msgid "Attachment File Metadata"
1574
+ msgstr ""
1575
+
1576
  #, php-format
1577
  msgctxt "error_log"
1578
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
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: 2021-08-10 17:48-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@davidlingren.com>\n"
@@ -425,12 +425,21 @@ msgstr ""
425
 
426
  msgid ""
427
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
428
- "Metadata\" and four \"where-used\" meta boxes to the Edit Media screen."
 
429
  msgstr ""
430
 
431
  msgid "You can also use Filters to customize the meta boxes."
432
  msgstr ""
433
 
 
 
 
 
 
 
 
 
434
  msgid "Media/Add New Enhancements"
435
  msgstr ""
436
 
@@ -997,7 +1006,7 @@ msgid "Add Tax. Columns"
997
  msgstr ""
998
 
999
  msgid ""
1000
- "Check this option to add Term ID and Term-Taxonomy ID columns to the "
1001
  "taxonomy edit admin submenu tables."
1002
  msgstr ""
1003
 
@@ -1562,6 +1571,9 @@ msgstr ""
1562
  msgid "Attachment Metadata"
1563
  msgstr ""
1564
 
 
 
 
1565
  #, php-format
1566
  msgctxt "error_log"
1567
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
2
  msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Media Library Assistant\n"
5
+ "POT-Creation-Date: 2021-10-17 15:54-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@davidlingren.com>\n"
425
 
426
  msgid ""
427
  "Check this option to add \"Parent Info\", \"Menu Order\", \"Attachment "
428
+ "Metadata\", \"Attachment File Metadata\" and four \"where-used\" meta boxes "
429
+ "to the Edit Media screen."
430
  msgstr ""
431
 
432
  msgid "You can also use Filters to customize the meta boxes."
433
  msgstr ""
434
 
435
+ msgid "Enable File Attachment Metadata meta box"
436
+ msgstr ""
437
+
438
+ msgid ""
439
+ "Check this option to enable the \"Attachment File Metadata\" meta box on "
440
+ "the Edit Media screen."
441
+ msgstr ""
442
+
443
  msgid "Media/Add New Enhancements"
444
  msgstr ""
445
 
1006
  msgstr ""
1007
 
1008
  msgid ""
1009
+ "Check this option to add Parent, Term ID and Term-Taxonomy ID columns to the "
1010
  "taxonomy edit admin submenu tables."
1011
  msgstr ""
1012
 
1571
  msgid "Attachment Metadata"
1572
  msgstr ""
1573
 
1574
+ msgid "Attachment File Metadata"
1575
+ msgstr ""
1576
+
1577
  #, php-format
1578
  msgctxt "error_log"
1579
  msgid "%1$s: %2$s discarding \"%3$s\"; no title/order"
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: dglingren
3
  Donate link: http://davidlingren.com/#donate
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.8
7
  Requires PHP: 5.3
8
- Stable tag: 2.97
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -187,6 +187,25 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
187
 
188
  == Changelog ==
189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  = 2.97 =
191
  * New: A "Description" element has been added to the "Custom Fields" and "IPTC/EXIF" mapping rule definitions.
192
  * New: For `[mla_tag_cloud]`, the `current_item` and `current_item_class` are managed more or less automatically.
@@ -344,8 +363,8 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
344
 
345
  == Upgrade Notice ==
346
 
347
- = 2.97 =
348
- IMPORTANT: [mla_gallery] PHP "Warning: array_key_exists()..." messages have been eliminated. WP 5.8, cropping of MMMW top row image thubmnails fixed. Description element added to mapping rules. Four enhancements in all, four fixes.
349
 
350
  == Other Notes ==
351
 
3
  Donate link: http://davidlingren.com/#donate
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.8.1
7
  Requires PHP: 5.3
8
+ Stable tag: 2.98
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
187
 
188
  == Changelog ==
189
 
190
+ = 2.98 =
191
+
192
+ * New: A new **"Attachment File Metadata" meta box on the Media/Edit Media screen** displays IPTC, EXIF, XMP, ID3, PDF and/or MSO metadata embedded in the item's file. More information in the pull-down Help menu on that screen.
193
+ * New: For `[mla_gallery]`, a special `mla_minimum` parameter lets you display an empty gallery unless a minimum number of items is selected.
194
+ * New: The "MLA Advanced Custom Fields Example" plugin now supports ACF "Select" fields, mapping between the field label and field value on the Media/Assistant submenu table and the Bulk and Quick Areas.
195
+ * New: The new "MLA Filename Issues Example" plugin creates a custom data source to help identify items with duplicate file names for cleanup consideration.
196
+ * New: The term Parent column has been added to the Settings/Media Library Assistant Debug tab "Add Tax. Columns" results.
197
+ * Fix: Custom Field Rules with an "Inactive" status are now excluded from Media/Assistant submenu table columns and the Quick and Bulk Edit areas.
198
+ * Fix: An inconsistency in counting attachments that caused the Settings/Media Library Assistant IPTC/EXIF tab "Execute" and "Execute All Rules" actions to fail has been corrected.
199
+ * Fix: An XMP metadata parsing error for empty "rdf:Description" values has been corrected.
200
+ * Fix: The "MLA Custom Field Search Example" plugin has been updated to use the latest plugin settings class file, so the class can be shared with other example plugins.
201
+ * Fix: The old "MLA ACF Checkbox Example" plugin has been flagged as obsolete, replaced by the more useful "MLA Advanced Custom Fields Example" plugin.
202
+ * Fix: For the Media/Assistant Quick Edit Area, users with the 'unfilitered_html' permission can add any HTML tag to a custom field value.
203
+ * Fix: Incorrect display of counts for `[mla_tag_cloud]` and `[mla_term_list]` terms with more than 1,000 assigned items has been corrected.
204
+ * Fix: Toolbar cropping in the "Add media" popup window for WordPress versions before 5.8 has been corrected.
205
+ * Fix: Toolbar cropping in the "Add media" popup window when the Disable Gutenberg (by Jeff Starr) plugin is active has been corrected.
206
+ * Fix: For the "gallery in" and "MLA Gallery in" reporting, PHP "trigger_error" Warning messages have been converted to MLA debug logging messages.
207
+ * Fix: For the "MLA Insert Fixit" example plugin, a PHP 8.0+ Deprecation Error has been resolved.
208
+
209
  = 2.97 =
210
  * New: A "Description" element has been added to the "Custom Fields" and "IPTC/EXIF" mapping rule definitions.
211
  * New: For `[mla_tag_cloud]`, the `current_item` and `current_item_class` are managed more or less automatically.
363
 
364
  == Upgrade Notice ==
365
 
366
+ = 2.98 =
367
+ New "Attachment File Metadata" meta box on the Media/Edit Media screen. Enhanced "MLA Advanced Custom Fields Example" and new "MLA Filename Issues Example" plugins. Five enhancements in all, eleven fixes.
368
 
369
  == Other Notes ==
370
 
tpls/documentation-settings-tab.tpl CHANGED
@@ -20,6 +20,7 @@ For more information about the example plugins, jump to <a href="#mla_example_pl
20
  <li><a href="#size">Size</a></li>
21
  <li><a href="#link">Link</a></li>
22
  <li><a href="#named_transfer">Transfer by Item Name</a></li>
 
23
  <li><a href="#include_exclude">Include, Exclude</a></li>
24
  <li><a href="#post_id_ids_post_parent">Post ID, "ids", Post Parent</a></li>
25
  <li><a href="#author_author_name">Author, Author Name</a></li>
@@ -721,6 +722,11 @@ Where the query arguments are:
721
  </table>
722
  <p>
723
  This alternate approach provides a small measure of security by obscuring the directory structure used to locate the file. It also makes it possible to generate SEO-friendly "pretty links" and use the <a href="https://codex.wordpress.org/Rewrite_API" title="Codex article: Rewrite API" target="_blank">WordPress Rewrite API</a> to translate the pretty links to the Transfer by Item Name syntax. The <a title="Find the Pretty Links Example" href="[+example_url+]&amp;mla-example-search=Search+Plugins&amp;s=%22MLA+Item+Transfer+Pretty+Links%22" class="mla-doc-bold-link">MLA Item Transfer Pretty Links</a> example plugin shows how this can be done.
 
 
 
 
 
724
  <a name="include_exclude"></a>
725
  </p>
726
  <h4>Include, Exclude</h4>
@@ -1170,7 +1176,7 @@ The <code>[mla_gallery]</code> shortcode supports the simple custom field parame
1170
  </tr>
1171
  <tr>
1172
  <td class="mla-doc-table-label">meta_compare&nbsp;(string)</td>
1173
- <td>Operator to test the 'meta_value'. Possible values are '=', '!=', '>', '>=', '&lt;', '&lt;=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'NOT EXISTS', 'REGEXP', 'NOT REGEXP' or 'RLIKE'. Default value is '='. </td>
1174
  </tr>
1175
  </table>
1176
  <p>
@@ -2095,7 +2101,11 @@ Tag cloud <strong>item-specific substitution parameters</strong> for the Markup
2095
  </tr>
2096
  <tr>
2097
  <td class="mla-doc-table-label">count</td>
2098
- <td>the number of attachments associated with the term</td>
 
 
 
 
2099
  </tr>
2100
  <tr>
2101
  <td class="mla-doc-table-label">scaled_count</td>
@@ -3182,7 +3192,11 @@ Term list <strong>item-specific substitution parameters</strong> for the Markup
3182
  </tr>
3183
  <tr>
3184
  <td class="mla-doc-table-label">count</td>
3185
- <td>the number of attachments associated with the term</td>
 
 
 
 
3186
  </tr>
3187
  <tr>
3188
  <td class="mla-doc-table-label">link_url</td>
@@ -6244,6 +6258,10 @@ The example code documents each hook with comments in the filter function that i
6244
  <td class="mla-doc-hook-definition">modify the rows, columns and content of the "Attachment Metadata" meta box.</td>
6245
  </tr>
6246
  <tr>
 
 
 
 
6247
  <td class="mla-doc-hook-label">mla_featured_in_meta_box<br />mla_featured_in_meta_box_html</td>
6248
  <td class="mla-doc-hook-definition">modify the rows, columns and content of the "Featured in" meta box.</td>
6249
  </tr>
20
  <li><a href="#size">Size</a></li>
21
  <li><a href="#link">Link</a></li>
22
  <li><a href="#named_transfer">Transfer by Item Name</a></li>
23
+ <li><a href="#mla_minimum">Minimum Gallery Size</a></li>
24
  <li><a href="#include_exclude">Include, Exclude</a></li>
25
  <li><a href="#post_id_ids_post_parent">Post ID, "ids", Post Parent</a></li>
26
  <li><a href="#author_author_name">Author, Author Name</a></li>
722
  </table>
723
  <p>
724
  This alternate approach provides a small measure of security by obscuring the directory structure used to locate the file. It also makes it possible to generate SEO-friendly "pretty links" and use the <a href="https://codex.wordpress.org/Rewrite_API" title="Codex article: Rewrite API" target="_blank">WordPress Rewrite API</a> to translate the pretty links to the Transfer by Item Name syntax. The <a title="Find the Pretty Links Example" href="[+example_url+]&amp;mla-example-search=Search+Plugins&amp;s=%22MLA+Item+Transfer+Pretty+Links%22" class="mla-doc-bold-link">MLA Item Transfer Pretty Links</a> example plugin shows how this can be done.
725
+ <a name="mla_minimum"></a>
726
+ </p>
727
+ <h4>Minimum Gallery Size</h4>
728
+ <p>
729
+ You can add <code>mla_minimum=(count)</code> to display an empty gallery if the number of items available for display is less than the number specified. For example, to display an empty gallery when just one item is available, code <code>mla_minimum=2</code>.
730
  <a name="include_exclude"></a>
731
  </p>
732
  <h4>Include, Exclude</h4>
1176
  </tr>
1177
  <tr>
1178
  <td class="mla-doc-table-label">meta_compare&nbsp;(string)</td>
1179
+ <td>Operator to test the 'meta_value'. Possible values are '=', '!=', '>', '>=', '&lt;', '&lt;=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS', 'NOT EXISTS', 'REGEXP', 'NOT REGEXP' or 'RLIKE'. Default value is '='. </td>
1180
  </tr>
1181
  </table>
1182
  <p>
2101
  </tr>
2102
  <tr>
2103
  <td class="mla-doc-table-label">count</td>
2104
+ <td>the number of attachments associated with the term. This will include attachments assigned to child terms if the <code>pad_counts=true</code> parameter is present.</td>
2105
+ </tr>
2106
+ <tr>
2107
+ <td class="mla-doc-table-label">term_count</td>
2108
+ <td>the number of attachments explicitly associated with the term; not its children. This is only defined when the <code>pad_counts=true</code> parameter is present.</td>
2109
  </tr>
2110
  <tr>
2111
  <td class="mla-doc-table-label">scaled_count</td>
3192
  </tr>
3193
  <tr>
3194
  <td class="mla-doc-table-label">count</td>
3195
+ <td>the number of attachments associated with the term. This will include attachments assigned to child terms if the <code>pad_counts=true</code> parameter is present.</td>
3196
+ </tr>
3197
+ <tr>
3198
+ <td class="mla-doc-table-label">term_count</td>
3199
+ <td>the number of attachments explicitly associated with the term; not its children. This is only defined when the <code>pad_counts=true</code> parameter is present.</td>
3200
  </tr>
3201
  <tr>
3202
  <td class="mla-doc-table-label">link_url</td>
6258
  <td class="mla-doc-hook-definition">modify the rows, columns and content of the "Attachment Metadata" meta box.</td>
6259
  </tr>
6260
  <tr>
6261
+ <td class="mla-doc-hook-label">mla_file_metadata_meta_box<br />mla_file_metadata_meta_box_html</td>
6262
+ <td class="mla-doc-hook-definition">modify the rows, columns and content of the "Attachment File Metadata" meta box.</td>
6263
+ </tr>
6264
+ <tr>
6265
  <td class="mla-doc-hook-label">mla_featured_in_meta_box<br />mla_featured_in_meta_box_html</td>
6266
  <td class="mla-doc-hook-definition">modify the rows, columns and content of the "Featured in" meta box.</td>
6267
  </tr>
tpls/help-for-edit_attachment.tpl CHANGED
@@ -20,6 +20,9 @@ Supports Parent Info and Menu Order
20
  Displays Image Metadata
21
  </li>
22
  <li>
 
 
 
23
  Displays where-used information; Featured in, Inserted in, Gallery in and MLA Gallery in
24
  </li>
25
  </ul>
@@ -31,7 +34,15 @@ Displays where-used information; Featured in, Inserted in, Gallery in and MLA Ga
31
  <!-- title="Parent Info" order="30" -->
32
  <p>The &#8220;Parent Info&#8221; field displays the Post ID, type and title of the post or page to which the item is attached. It will display &#8220;0 (unattached)&#8221; if there is no parent post or page.</p>
33
  <p>You can change the post or page to which the item is attached by changing the Post ID value and clicking the &#8220;Update&#8221; button. Changing the Post ID value to zero (0) will &#8220;unattach&#8221; the item.</p>
 
 
 
 
 
 
 
 
34
  <!-- template="mla-mapping-actions" -->
35
- <!-- title="Metadata Mapping" order="40" -->
36
  <p>The &#8220;Map Custom Field Metadata&#8221; and &#8220;Map IPTC/EXIF Metadata&#8221; links let you create or update attachment values by applying the rules you define on the Media Library Assistant Settings page. The links are located in the &#8220;Save&#8221; meta box in the upper-right part of the screen, just below the Last Modified date and time.</p>
37
  <p>When you click on one of the two links, all of the mapping rules for that type of metadata will be applied to the attachment you are editing. The updates are immediate; you do not need to click the &#8220;Update&#8221; button to make them permanent.</p>
20
  Displays Image Metadata
21
  </li>
22
  <li>
23
+ Displays IPTC, EXIF, XMP, ID3, PDF and/or MSO metadata embedded in the item's file
24
+ </li>
25
+ <li>
26
  Displays where-used information; Featured in, Inserted in, Gallery in and MLA Gallery in
27
  </li>
28
  </ul>
34
  <!-- title="Parent Info" order="30" -->
35
  <p>The &#8220;Parent Info&#8221; field displays the Post ID, type and title of the post or page to which the item is attached. It will display &#8220;0 (unattached)&#8221; if there is no parent post or page.</p>
36
  <p>You can change the post or page to which the item is attached by changing the Post ID value and clicking the &#8220;Update&#8221; button. Changing the Post ID value to zero (0) will &#8220;unattach&#8221; the item.</p>
37
+ <!-- template="mla-file-metadata" -->
38
+ <!-- title="Attachment File Metadata" order="40" -->
39
+ <p>The &#8220;Attachment File Metadata&#8221; field displays the IPTC, EXIF, XMP, ID3, PDF and/or MSO metadata embedded in the item's file. The key to the left of the "=>" separator shows the syntax you can use to access the value as a substitution parameter.</p>
40
+ <p><strong>Compound names</strong> are used to access elements within arrays, e.g., <code>xmp:dc.description</code> is used to specify the description element in the XMP "dc" namespace. You can also use a "*" placeholder to denote "all elements at this level" and return an array of lower-level elements. For example, you can code <code>xmp:dc.subject.*</code> to return an array of keywords from the subject element of the XMP "dc" namespace.
41
+ </p>
42
+ <p>
43
+ Because the memory and processing required to populate this meta box can be significant you can disable this meta box with an option in the "Media/Edit Media Enhancements" section of the Settings/Media Library Assistant General tab.
44
+ </p>
45
  <!-- template="mla-mapping-actions" -->
46
+ <!-- title="Metadata Mapping" order="50" -->
47
  <p>The &#8220;Map Custom Field Metadata&#8221; and &#8220;Map IPTC/EXIF Metadata&#8221; links let you create or update attachment values by applying the rules you define on the Media Library Assistant Settings page. The links are located in the &#8220;Save&#8221; meta box in the upper-right part of the screen, just below the Last Modified date and time.</p>
48
  <p>When you click on one of the two links, all of the mapping rules for that type of metadata will be applied to the attachment you are editing. The updates are immediate; you do not need to click the &#8220;Update&#8221; button to make them permanent.</p>