Media Library Assistant - Version 1.50

Version Description

  • New: PDF metadata support, including the traditional Document Information Dictionary and the newer, more extensive XMP metadata. Include this information in your [mla_gallery] display and map it to standard fields, taxonomy terms and custom fields.
  • New: Content Templates, which let you compose a value from multiple substitution parameters, combine text and data values, test for empty values and choose among two or more alternatives or suppress output entirely.
  • New: GPS Metadata is extracted from EXIF metadata and converted to a variety of convenient formats. Include this information in your [mla_gallery] display and map it to standard fields, taxonomy terms and custom fields.
  • New: You can customize the position, label and title of the Media/Assistant submenu screen. You can also remove the default Media/Library submenu screen.
  • New: On the Settings/Media Library Assistant General tab you can export and import ALL of your MLA settings to a simple text file. Backup your settings before making big changes, move settings between sites, etc.
  • New: On the Settings/Media Library Assistant General tab you can set the depth and child handling for the filter-by taxonomy on the Media/Assistant submenu.
  • New: On the Media/Assistant submenu, search, filter and sort values are retained when a "Filter by" value is set by clicking on an active link in the table.
  • New: On the Media/Assistant submenu, a "Clear Filter by" button allows you to clear the filter-by value while retaining other search, filter and sort values.
  • Fix: On the Media/Assistant submenu, the "Filter by" values are retained when the Bulk Actions Apply button and the Filter button are clicked.
  • Fix: On the Media/Assistant submenu, bulk edit of post_parent, post_author and custom fields now updates every item in the list, not just the first item.
  • Fix: On the Media/Assistant submenu, "where-used" information for files whose name is a subset of another file's name has been corrected. For example, where-used values for file "abc.jpg" was previously reported in the results for file "bc.jpg" in certain cases.
  • Fix: On the Media/Assistant submenu, "Empty Trash" button/function has been implemented.
  • Fix: PHP Warnings are no longer issued when plugins such as "Codepress Admin Columns" use the HTTP "page" query variable in unexpected ways.
  • Fix: Initialization functions now have a higher priority value, so they run later. This improves features such as discovery of custom taxonomies created in theme functions.php files that use the init hook.
  • Fix: Hyperlinks to Document tab from other Settings/MediaLibrary Assistant tabs have been changed to more reliable absolute href values.
Download this release

Release Info

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

Code changes from version 1.43 to 1.50

Files changed (44) hide show
  1. includes/class-mla-data.php +1504 -245
  2. includes/class-mla-list-table.php +55 -45
  3. includes/class-mla-main.php +95 -35
  4. includes/class-mla-mime-types.php +8 -8
  5. includes/class-mla-objects.php +1 -1
  6. includes/class-mla-options.php +234 -40
  7. includes/class-mla-settings.php +248 -22
  8. includes/class-mla-shortcodes.php +133 -338
  9. includes/class-mla-upload-list-table.php +1 -1
  10. includes/mla-plugin-loader.php +14 -14
  11. index.php +28 -3
  12. phpDocs/classes/MLA.html +1 -1
  13. phpDocs/classes/MLAData.html +410 -45
  14. phpDocs/classes/MLAEdit.html +1 -1
  15. phpDocs/classes/MLAMime.html +3 -3
  16. phpDocs/classes/MLAModal.html +1 -1
  17. phpDocs/classes/MLAObjects.html +1 -1
  18. phpDocs/classes/MLAOptions.html +85 -1
  19. phpDocs/classes/MLASettings.html +49 -1
  20. phpDocs/classes/MLAShortcodes.html +1 -1
  21. phpDocs/classes/MLATest.html +1 -1
  22. phpDocs/classes/MLA_List_Table.html +22 -17
  23. phpDocs/classes/MLA_Upload_List_Table.html +1 -1
  24. phpDocs/classes/MLA_Upload_Optional_List_Table.html +1 -1
  25. phpDocs/classes/MLA_View_List_Table.html +1 -1
  26. phpDocs/deprecated.html +1 -1
  27. phpDocs/errors.html +1 -1
  28. phpDocs/graph_class.html +1 -1
  29. phpDocs/index.html +1 -1
  30. phpDocs/markers.html +2 -2
  31. phpDocs/namespaces/global.html +8 -2
  32. phpDocs/packages/Media Library Assistant.html +10 -3
  33. phpDocs/structure.xml +1792 -1173
  34. readme.txt +81 -454
  35. tpls/admin-display-settings-page.tpl +9 -3
  36. tpls/admin-display-settings-upload-tab.tpl +1 -1
  37. tpls/admin-display-settings-view-tab.tpl +1 -1
  38. tpls/documentation-settings-tab.tpl +404 -27
  39. tpls/help-for-settings_page_mla-settings-menu-upload-edit.tpl +1 -1
  40. tpls/help-for-settings_page_mla-settings-menu-upload-optional.tpl +1 -1
  41. tpls/help-for-settings_page_mla-settings-menu-upload.tpl +1 -1
  42. tpls/help-for-settings_page_mla-settings-menu-view-edit.tpl +1 -1
  43. tpls/help-for-settings_page_mla-settings-menu-view.tpl +1 -1
  44. tpls/mla-option-templates.tpl +3 -3
includes/class-mla-data.php CHANGED
@@ -148,7 +148,132 @@ class MLAData {
148
  }
149
 
150
  /**
151
- * Expand a template, replacing place holders with their values
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  *
153
  * A simple parsing function for basic templating.
154
  *
@@ -157,36 +282,673 @@ class MLAData {
157
  * @param string A formatting string containing [+placeholders+]
158
  * @param array An associative array containing keys and values e.g. array('key' => 'value')
159
  *
160
- * @return string Placeholders corresponding to the keys of the hash will be replaced with their values
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  */
162
- public static function mla_parse_template( $tpl, $hash ) {
163
- foreach ( $hash as $key => $value ) {
 
 
 
 
 
 
 
 
 
 
 
164
  if ( is_scalar( $value ) )
165
- $tpl = str_replace( '[+' . $key . '+]', $value, $tpl );
 
 
 
166
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
- return $tpl;
169
  }
170
 
171
  /**
172
- * Analyze a template, returning an array of the place holders it contains
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  *
174
  * @since 0.90
175
  *
176
  * @param string A formatting string containing [+placeholders+]
 
177
  *
178
  * @return array Placeholder information: each entry is an array with
179
- * ['prefix'] => string, ['value'] => string, ['option'] => string 'single'|'export'
180
  */
181
- public static function mla_get_template_placeholders( $tpl ) {
182
  $results = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  $match_count = preg_match_all( '/\[\+[^+]+\+\]/', $tpl, $matches );
184
  if ( ( $match_count == false ) || ( $match_count == 0 ) )
185
  return $results;
186
 
187
  foreach ( $matches[0] as $match ) {
188
  $key = substr( $match, 2, (strlen( $match ) - 4 ) );
189
- $result = array( 'prefix' => '', 'value' => '', 'option' => 'text' );
190
  $match_count = preg_match( '/\[\+(.+):(.+)/', $match, $matches );
191
  if ( 1 == $match_count ) {
192
  $result['prefix'] = $matches[1];
@@ -196,7 +958,7 @@ class MLAData {
196
  $tail = substr( $match, 2);
197
  }
198
 
199
- $match_count = preg_match( '/([^,]+)(,(single|export))\+\]/', $tail, $matches );
200
  if ( 1 == $match_count ) {
201
  $result['value'] = $matches[1];
202
  $result['option'] = $matches[3];
@@ -352,8 +1114,8 @@ class MLAData {
352
 
353
  $clean_request = array (
354
  'm' => 0,
355
- 'orderby' => MLAOptions::mla_get_option( 'default_orderby' ),
356
- 'order' => MLAOptions::mla_get_option( 'default_order' ),
357
  'post_type' => 'attachment',
358
  'post_status' => 'inherit',
359
  'mla_search_connector' => 'AND',
@@ -604,8 +1366,9 @@ class MLAData {
604
  'taxonomy' => $tax_filter,
605
  'field' => 'id',
606
  'terms' => array(
607
- (int) $clean_request['mla_filter_term']
608
- )
 
609
  )
610
  );
611
  } // mla_filter_term != -1
@@ -983,12 +1746,12 @@ class MLAData {
983
 
984
  $item = get_post( $post_id );
985
  if ( empty( $item ) ) {
986
- error_log( "ERROR: mla_get_attachment_by_id(" . $post_id . ") not found", 0 );
987
  return NULL;
988
  }
989
 
990
  if ( $item->post_type != 'attachment' ) {
991
- error_log( "ERROR: mla_get_attachment_by_id(" . $post_id . ") wrong post_type: " . $item->post_type, 0 );
992
  return NULL;
993
  }
994
 
@@ -1055,7 +1818,7 @@ class MLAData {
1055
  *
1056
  * @param string key value, e.g. array1.array2.element
1057
  * @param array PHP nested arrays
1058
- * @param string format option 'text'|'single'|'export'|'array'|'multi'
1059
  * @param boolean keep existing values - for 'multi' option
1060
  *
1061
  * @return string value matching key(.key ...) or ''
@@ -1063,7 +1826,7 @@ class MLAData {
1063
  public static function mla_find_array_element( $needle, $haystack, $option, $keep_existing = false ) {
1064
  $key_array = explode( '.', $needle );
1065
  if ( is_array( $key_array ) ) {
1066
- foreach( $key_array as $key ) {
1067
  if ( is_array( $haystack ) ) {
1068
  if ( isset( $haystack[ $key ] ) )
1069
  $haystack = $haystack[ $key ];
@@ -1076,11 +1839,14 @@ class MLAData {
1076
  }
1077
  else $haystack = '';
1078
 
1079
- if ( 'single' == $option && is_array( $haystack ))
1080
- $haystack = current( $haystack );
1081
 
1082
  if ( is_array( $haystack ) ) {
1083
  switch ( $option ) {
 
 
 
1084
  case 'export':
1085
  $haystack = var_export( $haystack, true );
1086
  break;
@@ -1092,7 +1858,7 @@ class MLAData {
1092
  return $haystack;
1093
  break;
1094
  default:
1095
- $haystack = implode( ',', $haystack );
1096
  } // $option
1097
  }
1098
 
@@ -1242,7 +2008,14 @@ class MLAData {
1242
  if ( isset( $parent_data['parent_title'] ) )
1243
  $references['parent_title'] = $parent_data['parent_title'];
1244
 
1245
- $references['base_file'] = get_post_meta( $ID, '_wp_attached_file', true );
 
 
 
 
 
 
 
1246
  $attachment_metadata = get_post_meta( $ID, '_wp_attachment_metadata', true );
1247
  $sizes = isset( $attachment_metadata['sizes'] ) ? $attachment_metadata['sizes'] : NULL;
1248
  if ( !empty( $sizes ) ) {
@@ -1253,17 +2026,11 @@ class MLAData {
1253
  }
1254
 
1255
  $references['files'][ $references['base_file'] ] = $references['base_file'];
1256
- $pathinfo = pathinfo($references['base_file']);
1257
- $references['file'] = $pathinfo['basename'];
1258
- if ( '.' == $pathinfo['dirname'] )
1259
- $references['path'] = '';
1260
- else
1261
- $references['path'] = $pathinfo['dirname'] . '/';
1262
 
1263
  /*
1264
  * Process the where-used settings option
1265
  */
1266
- if ('checked' == MLAOptions::mla_get_option( 'exclude_revisions' ) )
1267
  $exclude_revisions = "(post_type <> 'revision') AND ";
1268
  else
1269
  $exclude_revisions = '';
@@ -1654,19 +2421,162 @@ class MLAData {
1654
  /**
1655
  * Array of PDF indirect objects
1656
  *
1657
- * This array contains all of the indirect object offsets and lengths
 
 
1658
  *
1659
- * @since 1.4x
1660
  *
1661
  * @var array
1662
  */
1663
  private static $pdf_indirect_objects = NULL;
1664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1665
  /**
1666
  * Build an array of indirect object definitions
1667
  *
1668
  * Creates the array of indirect object offsets and lengths
1669
- * @since 1.4x
1670
  *
1671
  * @param string The entire PDF document, passsed by reference
1672
  *
@@ -1677,16 +2587,10 @@ class MLAData {
1677
  return;
1678
 
1679
  $match_count = preg_match_all( '!(\d+)\\h+(\d+)\\h+obj|endobj|stream(\x0D\x0A|\x0A)|endstream!', $string, $matches, PREG_OFFSET_CAPTURE );
1680
- error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_count, true), 0 );
1681
- //error_log( '_build_pdf_indirect_objects $matches = ' . var_export( $matches, true), 0 );
1682
- //if( 100 < $match_count ) $match_count = 100;
1683
-
1684
  self::$pdf_indirect_objects = array();
1685
  $object_level = 0;
1686
  $is_stream = false;
1687
  for ( $index = 0; $index < $match_count; $index++ ) {
1688
- //error_log( "_build_pdf_indirect_objects \$matches[0][ {$index} ][0] = " . var_export( $matches[0][ $index ][0], true), 0 );
1689
- //error_log( "_build_pdf_indirect_objects \$matches[0][ {$index} ][1] = " . var_export( $matches[0][ $index ][1], true), 0 );
1690
  if ( $is_stream ) {
1691
  if ( 'endstream' == substr( $matches[0][ $index ][0], 0, 9 ) ) {
1692
  $is_stream = false;
@@ -1711,49 +2615,105 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1711
  else
1712
  error_log( 'ERROR: _build_pdf_indirect_objects bad value $index = ' . $index, 0 );
1713
  } // for each match
1714
- //error_log( '_build_pdf_indirect_objects self::$pdf_indirect_objects = ' . var_export( self::$pdf_indirect_objects, true), 0 );
1715
  }
1716
 
1717
  /**
1718
  * Find the offset, length and contents of an indirect object containing a dictionary
 
 
 
1719
  *
1720
- * @since 1.4x
1721
  *
1722
- * @param string The entire PDF document, passsed by reference
1723
  * @param integer The object number
1724
  * @param integer The object generation number; default zero (0)
1725
  *
1726
  * @return mixed NULL on failure else array( 'start' => offset in the file, 'length' => object length, 'content' => dictionary contents )
1727
  */
1728
- private static function _find_pdf_indirect_dictionary( &$string, $object, $generation = 0 ) {
1729
- //error_log( '_find_pdf_indirect_dictionary $object = ' . var_export( $object, true), 0 );
 
 
 
 
 
 
 
 
 
 
1730
  /*
1731
  * Match the object header
1732
  */
1733
- // $pattern = sprintf( '![\\x00-\\x20]+%1$d\\h+%2$d\\h+obj[\\x00-\\x20]+(<<)!', $object, $generation );
1734
- $pattern = sprintf( '![\\x00-\\x20]+%1$d\\h+%2$d\\h+obj[\\x00-\\x20]*(<<)!', $object, $generation );
1735
- $match_count = preg_match( $pattern, $string, $matches, PREG_OFFSET_CAPTURE );
1736
- //error_log( '_find_pdf_indirect_dictionary header $match_count = ' . var_export( $match_count, true), 0 );
1737
- //error_log( '_find_pdf_indirect_dictionary header $matches = ' . var_export( $matches, true), 0 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1738
 
1739
  if ($match_count) {
1740
- $start = $matches[1][1];
1741
- /*
1742
- * Match the object trailer
1743
- */
1744
- $pattern = '!>>[\\x00-\\x20]+endobj!';
1745
- $match_count = preg_match( $pattern, $string, $matches, PREG_OFFSET_CAPTURE, $start );
1746
- //error_log( '_find_pdf_indirect_dictionary trailer $match_count = ' . var_export( $match_count, true), 0 );
1747
- //error_log( '_find_pdf_indirect_dictionary trailer $matches = ' . var_export( $matches, true), 0 );
1748
-
1749
- if ($match_count) {
1750
- $results = array( 'start' => $start, 'length' => ($matches[0][1] + 2) - $start );
1751
- //error_log( '_find_pdf_indirect_dictionary $results = ' . var_export( $results, true), 0 );
1752
- $results['content'] = substr( $string, $results['start'], $results['length'] );
1753
- //error_log( '_find_pdf_indirect_dictionary content = ' . "\r\n" . var_export( self::_hex_dump( $results['content'], $results['length'], 32 ), true), 0 );
1754
- return $results;
1755
- } // found trailer
1756
- } // found header
1757
 
1758
  return NULL;
1759
  }
@@ -1761,7 +2721,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1761
  /**
1762
  * Parse a ISO 8601 Timestamp
1763
  *
1764
- * @since 1.4x
1765
  *
1766
  * @param string ISO string of the form YYYY-MM-DDTHH:MM:SS-HH:MM (inc time zone)
1767
  *
@@ -1783,7 +2743,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1783
  /**
1784
  * Parse a PDF date string
1785
  *
1786
- * @since 1.4x
1787
  *
1788
  * @param string PDF date string of the form D:YYYYMMDDHHmmSSOHH'mm
1789
  *
@@ -1805,7 +2765,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1805
  /**
1806
  * Parse a PDF Unicode (16-bit Big Endian) object
1807
  *
1808
- * @since 1.4x
1809
  *
1810
  * @param string PDF string of 16-bit characters
1811
  *
@@ -1833,7 +2793,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1833
  * Returns an array with one dictionary entry. The array also has a '/length' element containing
1834
  * the number of bytes occupied by the string in the source string, including the enclosing parentheses.
1835
  *
1836
- * @since 1.4x
1837
  *
1838
  * @param string data within which the string occurs
1839
  * @param integer offset within the source string of the opening '(' character.
@@ -1878,26 +2838,21 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1878
  case 'f':
1879
  $output .= chr( 0x0C );
1880
  break;
1881
- case '(':
1882
- $output .= '(';
1883
- break;
1884
- case ')':
1885
- $output .= ')';
1886
- break;
1887
- case '\\':
1888
- $output .= '\\';
1889
- break;
1890
- default: // should be a 1- to 3-digit octal value
1891
- for ($digit_count = 0; ++$digit_count < 4; )
1892
- if ( ! ctype_digit( $source_string[ $index + $digit_count ] ) )
1893
  break;
 
 
1894
 
1895
- if ( $digit_count ) {
1896
  $output .= chr( octdec( substr( $source_string, $index, $digit_count ) ) );
1897
  $index += $digit_count - 1;
1898
  }
1899
- else // invalid! Back up and just discard the backslash
1900
- $index--;
1901
  } // switch
1902
 
1903
  $index++;
@@ -1920,13 +2875,37 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1920
  }
1921
 
1922
  /**
1923
- * Parse a PDF dictionary object
1924
  *
1925
  * Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1926
  * indirect (object), name, array, dictionary, stream, and null.
1927
  * The array also has a '/length' element containing the number of bytes occupied by the
1928
  * dictionary in the source string, excluding the enclosing delimiters, if passed in.
1929
- * @since 1.4x
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1930
  *
1931
  * @param string data within which the string occurs
1932
  * @param integer offset within the source string of the opening '<<' characters or the first content character.
@@ -1934,25 +2913,49 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1934
  * @return array ( '/length' => length, key => array( 'type' => type, 'value' => value ) ) for each dictionary field
1935
  */
1936
  private static function _parse_pdf_dictionary( &$source_string, $offset ) {
1937
- //error_log( '_parse_pdf_dictionary $source_string = '. var_export( $source_string, true ), 0 );
1938
- if ( '<<' == substr( $source_string, $offset, 2 ) ) {
1939
- $offset += 2;
1940
- $delimiter_length = 4;
1941
- }
1942
  else
1943
- $delimiter_length = 0;
1944
 
 
 
 
 
 
 
 
 
1945
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1946
  $dictionary = array();
 
1947
  // \x00-\x20 for whitespace
1948
  // \(|\)|\<|\>|\[|\]|\{|\}|\/|\% for delimiters
1949
- $match_count = preg_match_all( '!/([^\x00-\x20|\(|\)|\<|\>|\[|\]|\{|\}|\/|\%]*)([\x00-\x20]*)!', substr( $source_string, $offset ), $matches, PREG_OFFSET_CAPTURE );
1950
- //error_log( '_parse_pdf_dictionary $matches = '. var_export( $matches, true ), 0 );
1951
-
1952
  $end_data = -1;
1953
  for ( $match_index = 0; $match_index < $match_count; $match_index++ ) {
1954
  $name = $matches[1][ $match_index ][0];
1955
  $value_start = $offset + $matches[2][ $match_index ][1] + strlen( $matches[2][ $match_index ][0] );
 
1956
  /*
1957
  * Skip over false matches within a string or nested dictionary
1958
  */
@@ -1962,10 +2965,10 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1962
  $end_data = -1;
1963
  $value_count = preg_match(
1964
  '!(\/?[^\/\x0D\x0A]*)!',
1965
- substr( $source_string, $value_start ), $value_matches, PREG_OFFSET_CAPTURE );
1966
 
1967
  if ( 1 == $value_count ) {
1968
- $value = $value_matches[0][0];
1969
  $length = strlen( $value );
1970
  $dictionary[ $name ]['value'] = $value;
1971
  if ( ! isset( $value[0] ) ) {
@@ -1986,9 +2989,8 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
1986
  if ( '<' == $value[1] ) {
1987
  $dictionary[ $name ]['value'] = self::_parse_pdf_dictionary( $source_string, $value_start );
1988
  $dictionary[ $name ]['type'] = 'dictionary';
1989
- $length = $dictionary[ $name ]['value']['/length'];
1990
  unset( $dictionary[ $name ]['value']['/length'] );
1991
- $end_data = $value_start + $length;
1992
  }
1993
  else
1994
  $dictionary[ $name ]['type'] = 'hex';
@@ -2026,9 +3028,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2026
  }
2027
  } // foreach match
2028
 
2029
- $dictionary['/length'] = $value_start + $length - $delimiter_length;
2030
- //$tail = substr( $source_string, $offset );
2031
- //error_log( '_parse_pdf_dictionary content = ' . "\r\n" . var_export( self::_hex_dump( $tail, $dictionary['/length'], 32 ), true), 0 );
2032
  return $dictionary;
2033
  }
2034
 
@@ -2039,24 +3039,52 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2039
  * indirect (object), name, array, dictionary, stream, and null.
2040
  * The array also has a '/length' element containing the number of bytes occupied by the
2041
  * dictionary in the source string, excluding the enclosing delimiters, if passed in.
2042
- * @since 1.4x
2043
  *
2044
- * @param string data within which the string occurs
2045
- * @param integer offset within the source string of the opening '<<' characters or the first content character.
2046
  *
2047
- * @return array ( '/length' => length, key => array( 'type' => type, 'value' => value ) ) for each dictionary field
2048
  */
2049
- private static function _parse_xmp_metadata( &$source_string, $offset ) {
2050
- $start_tag = strpos( $source_string, '<x:xmpmeta', $offset );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2051
  if ( false === $start_tag )
2052
  return NULL;
2053
 
2054
- $end_tag = strpos( $source_string, '</x:xmpmeta>', $offset + $start_tag );
2055
- if ( false === $start_tag )
 
 
 
 
 
 
 
 
 
 
 
 
 
2056
  return NULL;
2057
 
2058
- //error_log( '_parse_xmp_metadata XMP = ' . var_export( "<?xml version='1.0'? >\n" . substr($source_string, $start_tag, ( $end_tag + 12 ) - $start_tag ), true ), 0 );
2059
- $xmp_string = "<?xml version='1.0'?>\n" . substr($source_string, $start_tag, ( $end_tag + 12 ) - $start_tag );
2060
  $xmp_values = array();
2061
  $xml_parser = xml_parser_create('UTF-8');
2062
  if ( xml_parser_set_option( $xml_parser, XML_OPTION_SKIP_WHITE, 0 ) && xml_parser_set_option( $xml_parser, XML_OPTION_CASE_FOLDING, 0 ) ) {
@@ -2067,8 +3095,6 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2067
  error_log( 'ERROR: _parse_xmp_metadata set option failed.' );
2068
 
2069
  xml_parser_free($xml_parser);
2070
- //error_log( '_parse_xmp_metadata $xmp_string = ' . var_export( $xmp_string, true ), 0 );
2071
- //error_log( '_parse_xmp_metadata $xml_parser xmp_values = ' . var_export( $xmp_values, true ), 0 );
2072
 
2073
  if ( empty( $xmp_values ) )
2074
  return NULL;
@@ -2080,7 +3106,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2080
  foreach ( $xmp_values as $value ) {
2081
  $language = 'x-default';
2082
  if ( isset( $value['attributes'] ) ) {
2083
- foreach( $value['attributes'] as $att_tag => $att_value ) {
2084
  if ( 'xmlns:' == substr( $att_tag, 0, 6 ) )
2085
  $xmlns[ substr( $att_tag, 6 ) ] = $att_value;
2086
  elseif ( 'x:xmptk' == $att_tag )
@@ -2144,6 +3170,9 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2144
 
2145
  /*
2146
  * Parse "namespace:name" names into arrays of simple names
 
 
 
2147
  */
2148
  $namespace_arrays = array();
2149
  foreach ( $results as $key => $value ) {
@@ -2155,7 +3184,7 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2155
  $array_index = substr( $key, $colon + 1 );
2156
  $namespace_arrays[ $array_name ][ $array_index ] = $value;
2157
 
2158
- if ( ! isset( $results[ $array_index ] ) ) {
2159
  if ( is_array( $value ) && 1 == count( $value ) && isset( $value[0] ) )
2160
  $results[ $array_index ] = $value[0];
2161
  else
@@ -2178,167 +3207,286 @@ error_log( '_build_pdf_indirect_objects $match_count = ' . var_export( $match_co
2178
  * ModDate - The date and time the document was most recently modified
2179
  */
2180
  if ( ! isset( $results['Title'] ) ) {
2181
- if ( isset( $namespace_arrays['dc']['title'] ) ) // HANDLE ARRAY
2182
  $results['Title'] = implode( ',', $namespace_arrays['dc']['title'] );
2183
  }
2184
 
2185
  if ( ! isset( $results['Author'] ) ) {
2186
- if ( isset( $namespace_arrays['dc']['creator'] ) ) // HANDLE ARRAY
2187
  $results['Author'] = implode( ',', $namespace_arrays['dc']['creator'] );
2188
  }
2189
 
2190
  if ( ! isset( $results['Subject'] ) ) {
 
 
2191
  }
2192
 
2193
- if ( ! isset( $results['Keywords'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2194
  }
2195
 
 
 
 
2196
  if ( ! isset( $results['Creator'] ) ) {
2197
- if ( isset( $namespace_arrays['xmp']['CreatorTool'] ) )
2198
  $results['Creator'] = $namespace_arrays['xmp']['CreatorTool'];
2199
- }
2200
-
2201
- if ( ! isset( $value['Producer'] ) ) {
 
2202
  }
2203
 
2204
  if ( ! isset( $results['CreationDate'] ) ) {
2205
- if ( isset( $namespace_arrays['xmp']['CreateDate'] ) )
2206
  $results['CreationDate'] = $namespace_arrays['xmp']['CreateDate'];
 
 
2207
  }
2208
 
2209
  if ( ! isset( $results['ModDate'] ) ) {
2210
- if ( isset( $namespace_arrays['xmp']['ModifyDate'] ) )
2211
  $results['ModDate'] = $namespace_arrays['xmp']['ModifyDate'];
 
 
2212
  }
2213
 
2214
  if ( ! empty( $xmlns ) )
2215
  $results['xmlns'] = $xmlns;
2216
 
2217
  $results = array_merge( $results, $namespace_arrays );
2218
- error_log( '_parse_xmp_metadata $results = ' . var_export( $results, true ), 0 );
2219
  return $results;
2220
  }
2221
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2222
  /**
2223
  * Extract Metadata from a PDF file
2224
  *
2225
- * @since 1.4x
2226
  *
2227
  * @param string full path to the desired file
2228
  *
2229
  * @return array ( key => value ) for each metadata field, in string format
2230
  */
2231
  private static function _extract_pdf_metadata( $file_name ) {
2232
- $microtime_start = microtime( true );
2233
  $metadata = array();
2234
  self::$pdf_indirect_objects = NULL;
2235
-
2236
- $pdf = file_get_contents( $file_name, true );
2237
- if ( $pdf == false ) {
2238
- error_log( 'ERROR: PDF file not found ' . var_export( $path, true ), 0 );
2239
  return $metadata;
2240
- }
2241
 
2242
- //self::_parse_xmp_metadata( $pdf, 0);
2243
- //self::_build_pdf_indirect_objects( $pdf );
2244
- //error_log( '_extract_pdf_metadata start = ' . "\r\n" . var_export( self::_hex_dump( substr( $pdf, 0, strlen( $pdf ) ), strlen( $pdf ), 32 ), true ) . "\r\n", 0 );
2245
 
2246
- $header = substr( $pdf, 0, 8 );
 
 
 
 
2247
  if ( '%PDF-' == substr( $header, 0, 5 ) ) {
2248
  $metadata['PDF_Version'] = substr( $header, 1, 7 );
2249
  $metadata['PDF_VersionNumber'] = substr( $header, 5, 3 );
2250
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2251
 
2252
- $match_count = preg_match_all( '/[\r|\n]+trailer[\r|\n]+/', $pdf, $matches, PREG_OFFSET_CAPTURE );
2253
- //error_log( '_extract_pdf_metadata trailer $match_count = ' . var_export( $match_count, true ), 0 );
2254
- //error_log( '_extract_pdf_metadata trailer $matches = ' . "\r\n" . var_export( $matches, true ) . "\r\n", 0 );
2255
- if ( 0 == $match_count )
2256
- $matches = array( 0 => array() );
2257
-
2258
- foreach( $matches[0] as $match_index => $match ) {
2259
- $tail = substr( $pdf, (integer) $match[1] );
2260
- //error_log( "_extract_pdf_metadata tail[{$match_index}] start = " . "\r\n" . var_export( self::_hex_dump( $tail, 512, 32 ), true ) . "\r\n", 0 );
2261
- $xref_count = preg_match_all( '/[\r|\n]+startxref[\r|\n]+(.*)[\r|\n]+/', $tail, $xref_matches ); //, PREG_OFFSET_CAPTURE );
2262
- //error_log( '_extract_pdf_metadata $xref_count = '. var_export( $xref_count, true ), 0 );
2263
- //error_log( '_extract_pdf_metadata $xref_matches = '. var_export( $xref_matches, true ), 0 );
2264
- //error_log( '_extract_pdf_metadata xref start = ' . "\r\n" . var_export( self::_hex_dump( substr( $pdf, $xref_matches[1][0] ), 512, 32 ), true ) . "\r\n", 0 );
2265
-
2266
- // $match_count = preg_match_all( '/[\r|\n]+<<(.*)>>[\r|\n]+/', $tail, $matches ); //, PREG_OFFSET_CAPTURE );
2267
- $match_count = preg_match( '/[\r|\n]+<<(.*)>>[\r|\n]+/', $pdf, $matches, 0, $match[1] ); //, PREG_OFFSET_CAPTURE );
2268
- //error_log( "_extract_pdf_metadata trailer dictionary[{$match_index}] \$match_count = " . var_export( $match_count, true ), 0 );
2269
- //error_log( "_extract_pdf_metadata trailer dictionary[{$match_index}] \$matches = \r\n" . var_export( $matches, true ) . "\r\n", 0 );
2270
-
2271
- if ( 0 < $match_count ) {
2272
- // $dictionary = self::_parse_pdf_dictionary( $matches[1][ $match_count - 1 ], 0 );
2273
- $dictionary = self::_parse_pdf_dictionary( $matches[0], 0 );
2274
- error_log( "_extract_pdf_metadata trailer dictionary [{$match_index}] = ". var_export( $dictionary, true ), 0 );
2275
-
2276
- //if ( isset( $dictionary['Prev'] ) ) error_log( '_extract_pdf_metadata Prev = ' . var_export( $dictionary['Prev']['value'], true ), 0 );
2277
- //if ( isset( $dictionary['Prev'] ) ) error_log( '_extract_pdf_metadata Prev start = ' . "\r\n" . var_export( self::_hex_dump( substr( $pdf, $dictionary['Prev']['value'] ), 2048, 32 ), true ) . "\r\n", 0 );
2278
- //if ( isset( $dictionary['XRefStm'] ) ) error_log( '_extract_pdf_metadata XRefStm = ' . var_export( $dictionary['XRefStm']['value'], true ), 0 );
2279
- //if ( isset( $dictionary['XRefStm'] ) ) error_log( '_extract_pdf_metadata XRefStm start = ' . "\r\n" . var_export( self::_hex_dump( substr( $pdf, $dictionary['XRefStm']['value'] ), 2048, 32 ), true ) . "\r\n", 0 );
2280
-
2281
- if ( isset( $dictionary['Info'] ) ) {
2282
- $info_dictionary = NULL;
2283
-
2284
- $info = self::_find_pdf_indirect_dictionary( $pdf, $dictionary['Info']['object'], $dictionary['Info']['generation'] );
2285
- if ( $info )
2286
- $info_dictionary = self::_parse_pdf_dictionary( $info['content'], 0 );
2287
- else {
2288
- $info_ref = ($dictionary['Info']['object'] * 1000) + $dictionary['Info']['generation'];
2289
- error_log( '_extract_pdf_metadata $info_ref = '. var_export( $info_ref, true ), 0 );
2290
- self::_build_pdf_indirect_objects( $pdf );
2291
- if ( isset( self::$pdf_indirect_objects[ $info_ref ] ) )
2292
- $info_dictionary = self::_parse_pdf_dictionary( substr( $pdf, self::$pdf_indirect_objects[ $info_ref ]['start'], self::$pdf_indirect_objects[ $info_ref ]['/length'] ), 0 );
2293
- }
2294
-
2295
- if ( $info_dictionary ) {
2296
- //error_log( '_extract_pdf_metadata $info_dictionary length = '. var_export( $info_dictionary['/length'], true ), 0 );
2297
- unset( $info_dictionary['/length'] );
2298
- //error_log( '_extract_pdf_metadata $info_dictionary = '. var_export( $info_dictionary, true ), 0 );
2299
-
2300
- foreach( $info_dictionary as $name => $value ) {
2301
- if ( 'string' == $value['type'] ) {
2302
- $prefix = substr( $value['value'], 0, 2 );
2303
- if ( 'D:' == $prefix )
2304
- $metadata[ $name ] = self::_parse_pdf_date( $value['value'] );
2305
- elseif ( ( chr(0xFE) . chr(0xFF) ) == $prefix )
2306
- $metadata[ $name ] = self::_parse_pdf_UTF16BE( $value['value'] );
2307
- else
2308
- $metadata[ $name ] = $value['value'];
2309
- }
2310
- else
2311
  $metadata[ $name ] = $value['value'];
2312
- } // each info entry
2313
- } // found Info object
2314
- } // found Info ref
2315
- elseif ( isset( $dictionary['Root'] ) ) {
2316
- $root_dictionary = NULL;
2317
-
2318
- $root = self::_find_pdf_indirect_dictionary( $pdf, $dictionary['Root']['object'], $dictionary['Root']['generation'] );
2319
- if ( $root )
2320
- $root_dictionary = self::_parse_pdf_dictionary( $root['content'], 0 );
2321
- else {
2322
- $root_ref = ($dictionary['Root']['object'] * 1000) + $dictionary['Root']['generation'];
2323
- error_log( '_extract_pdf_metadata $root_ref = '. var_export( $root_ref, true ), 0 );
2324
- self::_build_pdf_indirect_objects( $pdf );
2325
- if ( isset( self::$pdf_indirect_objects[ $root_ref ] ) )
2326
- $root_dictionary = self::_parse_pdf_dictionary( substr( $pdf, self::$pdf_indirect_objects[ $root_ref ]['start'], self::$pdf_indirect_objects[ $root_ref ]['/length'] ), 0 );
2327
- }
2328
-
2329
- error_log( '_extract_pdf_metadata trailer dictionary Root = ' . var_export( $dictionary['Root'], true ), 0 );
2330
- error_log( "_extract_pdf_metadata Root dictionary = ". var_export( $root_dictionary, true ), 0 );
2331
- } // found Root ref
2332
- } // found dictionary
2333
- } // foreach trailer
2334
-
2335
- $xmp = self::_parse_xmp_metadata( $pdf, 0);
2336
- if ( is_array( $xmp ) )
2337
- $metadata = array_merge( $metadata, $xmp );
2338
 
2339
- $microtime_stop = microtime( true );
2340
- error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microtime_start), 0 );
2341
- //error_log( "_extract_pdf_metadata metadata = ". var_export( $metadata, true ), 0 );
 
 
 
 
 
 
 
 
 
 
 
 
 
2342
  return $metadata;
2343
  }
2344
 
@@ -2766,8 +3914,6 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2766
  /**
2767
  * Parse one IPTC metadata field
2768
  *
2769
- * Returns a string value, converting array data to a string as necessary.
2770
- *
2771
  * @since 1.41
2772
  *
2773
  * @param string field name - IPTC Identifier or friendly name/slug
@@ -2780,7 +3926,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2780
  if ( array_key_exists( $iptc_key, self::$mla_iptc_keys ) ) {
2781
  $iptc_key = self::$mla_iptc_keys[ $iptc_key ];
2782
  }
2783
-
2784
  $text = '';
2785
  if ( array_key_exists( $iptc_key, $item_metadata['mla_iptc_metadata'] ) ) {
2786
  $text = $item_metadata['mla_iptc_metadata'][ $iptc_key ];
@@ -2798,7 +3944,6 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2798
  /**
2799
  * Parse one EXIF metadata field
2800
  *
2801
- * Returns a string value, converting array data to a string as necessary.
2802
  * Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.
2803
  *
2804
  * @since 1.13
@@ -2806,12 +3951,9 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2806
  * @param string field name
2807
  * @param string metadata array containing iptc, exif, and pdf metadata arrays
2808
  *
2809
- * @return string string representation of metadata value or an empty string
2810
  */
2811
  public static function mla_exif_metadata_value( $exif_key, $item_metadata ) {
2812
- if ( 'pdf:' == substr( $exif_key, 0, 4 ) )
2813
- return self::mla_pdf_metadata_value( substr( $exif_key, 4 ), $item_metadata );
2814
-
2815
  $text = '';
2816
  if ( array_key_exists( $exif_key, $item_metadata['mla_exif_metadata'] ) ) {
2817
  $text = $item_metadata['mla_exif_metadata'][ $exif_key ];
@@ -2861,15 +4003,14 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2861
  /**
2862
  * Parse one PDF metadata field
2863
  *
2864
- * Returns a string value, converting array data to a string as necessary.
2865
  * Also handles the special pseudo-value 'ALL_PDF'.
2866
  *
2867
- * @since 1.4x
2868
  *
2869
  * @param string field name
2870
  * @param string metadata array containing iptc, exif, and pdf metadata arrays
2871
  *
2872
- * @return string string representation of metadata value or an empty string
2873
  */
2874
  public static function mla_pdf_metadata_value( $pdf_key, $item_metadata ) {
2875
  $text = '';
@@ -2902,6 +4043,11 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2902
  return $text;
2903
  }
2904
 
 
 
 
 
 
2905
  /**
2906
  * Fetch and filter IPTC and EXIF meta data for an image attachment
2907
  *
@@ -2916,6 +4062,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2916
  */
2917
  public static function mla_fetch_attachment_image_metadata( $post_id, $path = '' ) {
2918
  $results = array(
 
2919
  'mla_iptc_metadata' => array(),
2920
  'mla_exif_metadata' => array(),
2921
  'mla_pdf_metadata' => array()
@@ -2953,10 +4100,111 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2953
  }
2954
 
2955
  if ( is_callable( 'exif_read_data' ) && in_array( $size[2], array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) {
2956
- $results['mla_exif_metadata'] = exif_read_data( $path );
2957
  }
2958
  }
2959
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2960
  /*
2961
  * Expand EXIF array values
2962
  */
@@ -2982,7 +4230,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
2982
  * @return string success/failure message(s)
2983
  */
2984
  public static function mla_update_item_postmeta( $post_id, $new_meta ) {
2985
- $post_data = MLAData::mla_fetch_attachment_metadata( $post_id );
2986
  $message = '';
2987
 
2988
  foreach ( $new_meta as $meta_key => $meta_value ) {
@@ -3110,8 +4358,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
3110
  * @return array success/failure message and NULL content
3111
  */
3112
  public static function mla_update_single_item( $post_id, $new_data, $tax_input = NULL, $tax_actions = NULL ) {
3113
- $post_data = MLAData::mla_get_attachment_by_id( $post_id );
3114
-
3115
  if ( !isset( $post_data ) )
3116
  return array(
3117
  'message' => 'ERROR: Could not retrieve Attachment.',
@@ -3289,7 +4536,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
3289
  'body' => ''
3290
  );
3291
  else {
3292
- MLAData::mla_get_attachment_by_id( -1 ); // invalidate the cached item
3293
 
3294
  if ( wp_update_post( $updates ) ) {
3295
  $final_message = 'Item: ' . $post_id . ' updated.';
@@ -3363,16 +4610,23 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
3363
  * @param string Binary data
3364
  * @param integer Bytes to format, default = 0 (all bytes)
3365
  * @param intger Bytes to format on each line
 
3366
  *
3367
  * @return string Printable representation of $data
3368
  */
3369
- private static function _hex_dump( $data, $limit = 0, $bytes_per_row = 16 ) {
3370
  if ( 0 == $limit )
3371
  $limit = strlen( $data );
3372
 
3373
  $position = 0;
3374
  $output = "\r\n";
 
3375
 
 
 
 
 
 
3376
  while ( $position < $limit ) {
3377
  $row_length = strlen( substr( $data, $position ) );
3378
 
@@ -3387,7 +4641,12 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
3387
 
3388
  $row_data = substr( $data, $position, $row_length );
3389
 
3390
- $print_string = '';
 
 
 
 
 
3391
  $hex_string = '';
3392
  for ( $index = 0; $index < $row_length; $index++ ) {
3393
  $char = ord( substr( $row_data, $index, 1 ) );
@@ -3399,7 +4658,7 @@ error_log( "_extract_pdf_metadata ({$file_name}) " . ($microtime_stop - $microti
3399
  $hex_string .= ' ' . bin2hex( chr($char) );
3400
  } // for
3401
 
3402
- $output .= str_pad( $print_string, $bytes_per_row, ' ', STR_PAD_RIGHT ) . $hex_string . "\r\n";
3403
  $position += $row_length;
3404
  } // while
3405
 
148
  }
149
 
150
  /**
151
+ * Find a complete template, balancing opening and closing delimiters
152
+ *
153
+ * @since 1.50
154
+ *
155
+ * @param string A string possibily starting with '[+template:'
156
+ *
157
+ * @return string '' or template string starting with '[+template:' and ending with the matching '+]'
158
+ */
159
+ private static function _find_template_substring( $tpl ) {
160
+ if ( '[+template:' == substr( $tpl, 0, 11 ) ) {
161
+ $nest = 11;
162
+ $level = 1;
163
+ do {
164
+ $template_end = strpos( $tpl, '+]', $nest );
165
+ if ( false === $template_end ) {
166
+ error_log( 'ERROR: mla_parse_template no template end delimiter tail = ' . var_export( substr( $tpl, $offset ), true ), 0 );
167
+ return '';
168
+ }
169
+
170
+ $nest = strpos( $tpl, '[+', $nest );
171
+ if ( false === $nest ) {
172
+ $nest = $template_end + 2;
173
+ $level--;
174
+ }
175
+ elseif ( $nest < $template_end ) {
176
+ $nest += 2;
177
+ $level++;
178
+ }
179
+ else {
180
+ $nest = $template_end + 2;
181
+ $level--;
182
+ }
183
+
184
+ } while ( $level );
185
+
186
+ $template_length = $template_end + 2;
187
+ $template_content = substr( $tpl, 0, $template_length );
188
+ return $template_content;
189
+ } // found template
190
+
191
+ return '';
192
+ }
193
+
194
+ /**
195
+ * Expand a template, replacing placeholders with their values
196
+ *
197
+ * Will return an array of values if one or more of the placeholders returns an array.
198
+ *
199
+ * @since 1.50
200
+ *
201
+ * @param string A formatting string containing [+placeholders+]
202
+ * @param array An associative array containing keys and values e.g. array('key' => 'value')
203
+ *
204
+ * @return mixed string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values.
205
+ */
206
+ public static function mla_parse_array_template( $tpl, $markup_values ) {
207
+ $result = array();
208
+ $offset = 0;
209
+ while ( false !== $start = strpos( $tpl, '[+', $offset ) ) {
210
+ if ( $offset < $start )
211
+ $result[] = substr( $tpl, $offset, ( $start - $offset ) );
212
+
213
+ if ( $template_content = self::_find_template_substring( substr( $tpl, $start ) ) ) {
214
+ $template_length = strlen( $template_content );
215
+ $template_content = substr( $template_content, 11, $template_length - (11 + 2) );
216
+ $template_content = self::_expand_field_level_template( $template_content, $markup_values, true );
217
+
218
+ foreach ( $template_content as $value )
219
+ $result[] = $value;
220
+
221
+ $offset = $start + $template_length;
222
+ } // found template
223
+ else {
224
+ if ( false === $end = strpos( $tpl, '+]', $offset ) ) {
225
+ error_log( 'ERROR: mla_parse_array_template no end delimiter, tail = ' . var_export( substr( $tpl, $offset ), true ), 0 );
226
+ return $tpl;
227
+ } // no end delimiter
228
+
229
+ $key = substr( $tpl, $start + 2, $end - $start - 2 );
230
+ if ( isset( $markup_values[ $key ] ) ) {
231
+ $result[] = $markup_values[ $key ];
232
+ } // found key and scalar value
233
+ else {
234
+ $result[] = substr( $tpl, $start, ( $end + 2 ) - $start );
235
+ }
236
+
237
+ $offset = $end + 2;
238
+ } // simple substitution
239
+ } // while substitution parameter present
240
+
241
+ if ( $offset < strlen( $tpl ) )
242
+ $result[] = substr( $tpl, $offset );
243
+
244
+ /*
245
+ * Build a final result, eliminating empty elements and expanding array elements
246
+ */
247
+ $final = array();
248
+ foreach ( $result as $element ) {
249
+ if ( is_scalar( $element ) ) {
250
+ $element = trim( $element );
251
+ if ( ! empty( $element ) )
252
+ $final[] = $element;
253
+ }
254
+ elseif ( is_array( $element ) ) {
255
+ foreach ($element as $key => $value ) {
256
+ if ( is_scalar( $value ) ) {
257
+ $value = trim( $value );
258
+ if ( ! empty( $value ) )
259
+ $final[] = $value;
260
+ }
261
+ elseif ( ! empty( $value ) )
262
+ $final[] = var_export( $value, true );
263
+ }
264
+ }
265
+ elseif ( ! empty( $element ) )
266
+ $final[] = var_export( $element, true );
267
+ }
268
+
269
+ if ( 1 == count( $final ) )
270
+ $final = $final[0];
271
+
272
+ return $final;
273
+ }
274
+
275
+ /**
276
+ * Expand a template, replacing placeholders with their values
277
  *
278
  * A simple parsing function for basic templating.
279
  *
282
  * @param string A formatting string containing [+placeholders+]
283
  * @param array An associative array containing keys and values e.g. array('key' => 'value')
284
  *
285
+ * @return strng Placeholders corresponding to the keys of the markup_values will be replaced with their values.
286
+ */
287
+ public static function mla_parse_template( $tpl, $markup_values ) {
288
+ /*
289
+ * If templates are present we must step through $tpl and expand them
290
+ */
291
+ if ( isset( $markup_values['[+template_count+]'] ) ) {
292
+ $offset = 0;
293
+ while ( false !== $start = strpos( $tpl, '[+', $offset ) ) {
294
+ if ( $template_content = self::_find_template_substring( substr( $tpl, $start ) ) ) {
295
+ $template_length = strlen( $template_content );
296
+ $template_content = substr( $template_content, 11, $template_length - (11 + 2) );
297
+ $template_content = self::_expand_field_level_template( $template_content, $markup_values );
298
+ $tpl = substr_replace( $tpl, $template_content, $start, $template_length );
299
+ $offset = $start;
300
+ } // found template
301
+ else {
302
+ if ( false === $end = strpos( $tpl, '+]', $offset ) ) {
303
+ error_log( 'ERROR: mla_parse_template no end delimiter, tail = ' . var_export( substr( $tpl, $offset ), true ), 0 );
304
+ return $tpl;
305
+ } // no end delimiter
306
+
307
+ $key = substr( $tpl, $start + 2, $end - $start - 2 );
308
+ if ( isset( $markup_values[ $key ] ) && is_scalar( $markup_values[ $key ] ) ) {
309
+ $tpl = substr_replace( $tpl, $markup_values[ $key ], $start, strlen( $key ) + 4 );
310
+ $offset = $start;
311
+ } // found key and scalar value
312
+ else
313
+ $offset += strlen( $key ) + 4;
314
+ } // simple substitution
315
+ } // while substitution parameter present
316
+ } // template(s) present
317
+ else
318
+ /*
319
+ * No templates means a simple string substitution will suffice
320
+ */
321
+ foreach ( $markup_values as $key => $value ) {
322
+ if ( is_scalar( $value ) )
323
+ $tpl = str_replace( '[+' . $key . '+]', $value, $tpl );
324
+ }
325
+
326
+ return $tpl;
327
+ }
328
+
329
+ /**
330
+ * Find a complete (test) element, balancing opening and closing delimiters
331
+ *
332
+ * @since 1.50
333
+ *
334
+ * @param string A string possibily starting with '('
335
+ *
336
+ * @return string '' or template string starting with '(' and ending with the matching ')'
337
+ */
338
+ private static function _find_test_substring( $tpl ) {
339
+ if ( '(' == $tpl[0] ) {
340
+ $nest = 1;
341
+ $level = 1;
342
+ do {
343
+ $test_end = strpos( $tpl, ')', $nest );
344
+ if ( false === $test_end ) {
345
+ error_log( 'ERROR: _find_test_substring no end delimiter tail = ' . var_export( substr( $tpl, $nest ), true ), 0 );
346
+ return '';
347
+ }
348
+
349
+ $nest = strpos( $tpl, '(', $nest );
350
+ if ( false === $nest ) {
351
+ $nest = $test_end + 1;
352
+ $level--;
353
+ }
354
+ elseif ( $nest < $test_end ) {
355
+ $nest += 1;
356
+ $level++;
357
+ }
358
+ else {
359
+ $nest = $test_end + 1;
360
+ $level--;
361
+ }
362
+ } while ( $level );
363
+
364
+ $test_length = $test_end + 1;
365
+ $test_content = substr( $tpl, 0, $test_length );
366
+ return $test_content;
367
+ } // found test element
368
+
369
+ return '';
370
+ }
371
+
372
+ /**
373
+ * Convert field-level "template:" string into its component parts
374
+ *
375
+ * @since 1.50
376
+ *
377
+ * @param string Template content with string, test and choice elements
378
+ *
379
+ * @return array ( node => array( type => "string | test | choice | template", length => bytes, value => string | node(s) ) )
380
+ */
381
+ private static function _parse_field_level_template( $tpl ) {
382
+ $index = 0;
383
+ $max_length = strlen( $tpl );
384
+ $test_level = 0;
385
+ $output = '';
386
+ $output_values = array();
387
+ $choice_values = array();
388
+ while ( $index < $max_length ) {
389
+ $byte = $tpl[ $index++ ];
390
+ if ( '\\' == $byte ) {
391
+ if ( $index == $max_length ) {
392
+ $output .= $byte;
393
+ continue;
394
+ } // template ends with a backslash
395
+
396
+ switch ( $tpl[ $index ] ) {
397
+ case 'n':
398
+ $output .= chr( 0x0A );
399
+ break;
400
+ case 'r':
401
+ $output .= chr( 0x0D );
402
+ break;
403
+ case 't':
404
+ $output .= chr( 0x09 );
405
+ break;
406
+ case 'b':
407
+ $output .= chr( 0x08 );
408
+ break;
409
+ case 'f':
410
+ $output .= chr( 0x0C );
411
+ break;
412
+ default: // could be a 1- to 3-digit octal value
413
+ if ( $max_length < ( $digit_limit = $index + 3 ) )
414
+ $digit_limit = $max_length;
415
+
416
+ $digit_index = $index;
417
+ while ( $digit_index < $digit_limit )
418
+ if ( ! ctype_digit( $tpl[ $digit_index ] ) )
419
+ break;
420
+ else
421
+ $digit_index++;
422
+
423
+ if ( $digit_count = $digit_index - $index ) {
424
+ $output .= chr( octdec( substr( $tpl, $index, $digit_count ) ) );
425
+ $index += $digit_count - 1;
426
+ }
427
+ else {// accept the character following the backslash
428
+ $output .= $tpl[ $index ];
429
+ }
430
+ } // switch
431
+
432
+ $index++;
433
+ } // REVERSE SOLIDUS (backslash)
434
+ elseif ( '(' == $byte ) {
435
+ if ( ! empty( $output ) ) {
436
+ $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
437
+ $output = '';
438
+ }
439
+
440
+ $test_content = self::_find_test_substring( substr( $tpl, $index - 1 ) );
441
+ if ( 2 < $test_length = strlen( $test_content ) ) {
442
+ $values = self::_parse_field_level_template( substr( $test_content, 1, strlen( $test_content ) - 2 ) );
443
+ $output_values[] = array( 'type' => 'test', 'value' => $values, 'length' => strlen( $test_content ) );
444
+ $index += strlen( $test_content ) - 1;
445
+ } // found a value
446
+ elseif ( 2 == $test_length )
447
+ $index++; // empty test string
448
+ else {
449
+ $test_content = ' ERROR: Test; no closing parenthesis ';
450
+ $output_values[] = array( 'type' => 'string', 'value' => $test_content, 'length' => strlen( $test_content ) );
451
+ } // bad test string
452
+ } // (test) element
453
+ elseif ( '|' == $byte ) {
454
+ /*
455
+ * Turn each alternative within a choice element into a conditional
456
+ */
457
+
458
+ if ( ! empty( $output ) ) {
459
+ $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
460
+ $output = '';
461
+ }
462
+
463
+ $length = 0;
464
+ foreach ( $output_values as $value )
465
+ if ( isset( $value['length'] ) )
466
+ $length += $value['length'];
467
+
468
+ $choice_values[] = array( 'type' => 'test', 'value' => $output_values, 'length' => $length );
469
+ $output_values = array();
470
+ } // choice element
471
+ elseif ( '[' == $byte && '+template:' == substr( $tpl, $index, 10 ) ) {
472
+ if ( ! empty( $output ) ) {
473
+ $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
474
+ $output = '';
475
+ }
476
+
477
+ $template_content = self::_find_template_substring( substr( $tpl, $index - 1 ) );
478
+ $values = self::_parse_field_level_template( substr( $template_content, 11, strlen( $template_content ) - (11 + 2) ) );
479
+ if ( 'template' == $values['type'] )
480
+ $output_values = array_merge( $output_values, $values['value'] );
481
+ else
482
+ $output_values[] = $values;
483
+
484
+ $index += strlen( $template_content ) - 1;
485
+ } // nested template
486
+ else
487
+ $output .= $byte;
488
+ } // $index < $max_length
489
+
490
+ if ( ! empty( $output ) ) {
491
+ $output_values[] = array( 'type' => 'string', 'value' => $output, 'length' => strlen( $output ) );
492
+ }
493
+
494
+ if ( ! empty( $choice_values ) ) {
495
+ if ( ! empty( $output_values ) ) {
496
+ $length = 0;
497
+ foreach ( $output_values as $value )
498
+ if ( isset( $value['length'] ) )
499
+ $length += $value['length'];
500
+
501
+ $choice_values[] = array( 'type' => 'test', 'value' => $output_values, 'length' => $length );
502
+ }
503
+
504
+ return array( 'type' => 'choice', 'value' => $choice_values, 'length' => $max_length );
505
+ }
506
+
507
+ if ( 1 == count( $output_values ) )
508
+ return $output_values[0];
509
+
510
+ return array ( 'type' => 'template', 'value' => $output_values, 'length' => $max_length );
511
+ }
512
+
513
+ /**
514
+ * Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters
515
+ *
516
+ * Will return an array of values if one or more of the placeholders returns an array.
517
+ *
518
+ * @since 1.50
519
+ *
520
+ * @param array A field-level template element node
521
+ * @param array An array of markup substitution values
522
+ *
523
+ * @return mixed string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values.
524
+ */
525
+ private static function _evaluate_template_array_node( $node, $markup_values = array() ) {
526
+ $result = array();
527
+ /*
528
+ * Check for an array of sub-nodes
529
+ */
530
+ if ( ! isset( $node['type'] ) ) {
531
+ foreach ( $node as $value ) {
532
+ $node_result = self::_evaluate_template_array_node( $value, $markup_values );
533
+ foreach ( $node_result as $value )
534
+ $result[] = $value;
535
+ }
536
+ } // array of sub-nodes
537
+ else {
538
+ switch ( $node['type'] ) {
539
+ case 'string':
540
+ $result[] = self::mla_parse_array_template( $node['value'], $markup_values );
541
+ break;
542
+ case 'test':
543
+ $node_value = $node['value'];
544
+
545
+ if ( isset( $node_value['type'] ) ) {
546
+ $node_result = self::_evaluate_template_array_node( $node_value, $markup_values );
547
+ foreach ( $node_result as $value )
548
+ $result[] = $value;
549
+ } // single node
550
+ else {
551
+ foreach ( $node_value as $value ) {
552
+ $node_result = self::_evaluate_template_array_node( $value, $markup_values );
553
+ foreach ( $node_result as $value )
554
+ $result[] = $value;
555
+ }
556
+ } // array of nodes
557
+
558
+ foreach ($result as $value )
559
+ if ( is_scalar( $value ) && false !== strpos( $value, '[+' ) ) {
560
+ $result = array();
561
+ break;
562
+ }
563
+
564
+ break;
565
+ case 'choice':
566
+ foreach ( $node['value'] as $value ) {
567
+ $node_result = self::_evaluate_template_array_node( $value, $markup_values );
568
+ if ( !empty( $node_result ) ) {
569
+ foreach ( $node_result as $value )
570
+ $result[] = $value;
571
+ break;
572
+ }
573
+ }
574
+
575
+ break;
576
+ case 'template':
577
+ foreach ( $node['value'] as $value ) {
578
+ $node_result = self::_evaluate_template_array_node( $value, $markup_values );
579
+ foreach ( $node_result as $value )
580
+ $result[] = $value;
581
+ }
582
+
583
+ break;
584
+ default:
585
+ error_log( 'ERROR: _evaluate_template_node unknown type = ' . var_export( $node, true ), 0 );
586
+ } // node type
587
+ } // isset node type
588
+
589
+ return $result;
590
+ }
591
+
592
+ /**
593
+ * Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters
594
+ *
595
+ * @since 1.50
596
+ *
597
+ * @param array A field-level template element node
598
+ * @param array An array of markup substitution values
599
+ *
600
+ * @return string String with expanded values, if any
601
+ */
602
+ private static function _evaluate_template_node( $node, $markup_values = array() ) {
603
+ $results = '';
604
+ /*
605
+ * Check for an array of sub-nodes
606
+ */
607
+ if ( ! isset( $node['type'] ) ) {
608
+ foreach ( $node as $value )
609
+ $results .= self::_evaluate_template_node( $value, $markup_values );
610
+
611
+ return $results;
612
+ } // array of sub-nodes
613
+
614
+ switch ( $node['type'] ) {
615
+ case 'string':
616
+ return self::mla_parse_template( $node['value'], $markup_values );
617
+ case 'test':
618
+ $node_value = $node['value'];
619
+
620
+ if ( isset( $node_value['type'] ) ) {
621
+ $results = self::_evaluate_template_node( $node_value, $markup_values );
622
+ } // single node
623
+ else {
624
+ foreach ( $node_value as $value )
625
+ $results .= self::_evaluate_template_node( $value, $markup_values );
626
+ } // array of nodes
627
+
628
+ if ( false === strpos( $results, '[+' ) )
629
+ return $results;
630
+
631
+ break;
632
+ case 'choice':
633
+ foreach ( $node['value'] as $value ) {
634
+ $results = self::_evaluate_template_node( $value, $markup_values );
635
+ if ( !empty( $results ) ) {
636
+ return $results;
637
+ }
638
+ }
639
+
640
+ break;
641
+ case 'template':
642
+ foreach ( $node['value'] as $value )
643
+ $results .= self::_evaluate_template_node( $value, $markup_values );
644
+
645
+ return $results;
646
+ default:
647
+ error_log( 'ERROR: _evaluate_template_node unknown type = ' . var_export( $node, true ), 0 );
648
+ } // node type
649
+
650
+ return '';
651
+ }
652
+
653
+ /**
654
+ * Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters
655
+ *
656
+ * @since 1.50
657
+ *
658
+ * @param string A formatting string containing [+placeholders+]
659
+ * @param array An array of markup substitution values
660
+ * @param boolean True to return array value(s), false to return a string
661
+ *
662
+ * @return mixed Element with expanded string/array values, if any
663
  */
664
+ private static function _expand_field_level_template( $tpl, $markup_values = array(), $return_arrays = false ) {
665
+ /*
666
+ * Step 1: parse the template and build the tree of its elements
667
+ * root node => array( type => "string | test | choice | template", value => string | node(s) )
668
+ */
669
+ $root_element = self::_parse_field_level_template( $tpl );
670
+ unset( $markup_values['[+template_count+]'] );
671
+
672
+ /*
673
+ * Step 2: Remove all the empty elements from the $markup_values,
674
+ * so the evaluation of conditional and choice elements is simplified.
675
+ */
676
+ foreach ( $markup_values as $key => $value ) {
677
  if ( is_scalar( $value ) )
678
+ $value = trim( $value );
679
+
680
+ if ( empty( $value ) )
681
+ unset( $markup_values[ $key ] );
682
  }
683
+
684
+ /*
685
+ * Step 3: walk the element tree and process each node
686
+ */
687
+ if ( $return_arrays )
688
+ $results = self::_evaluate_template_array_node( $root_element, $markup_values );
689
+ else
690
+ $results = self::_evaluate_template_node( $root_element, $markup_values );
691
+
692
+ return $results;
693
+ }
694
+
695
+ /**
696
+ * Process an markup field array value according to the supplied data-format option
697
+ *
698
+ * @since 1.50
699
+ *
700
+ * @param array an array of scalar values
701
+ * @param string data option 'text'|'single'|'export'|'array'|'multi'
702
+ * @param boolean Optional: for option 'multi', retain existing values
703
+ *
704
+ * @return array ( parameter => value ) for all field-level parameters and anything in $markup_values
705
+ */
706
+ private static function _process_field_level_array( $record, $option = 'text', $keep_existing = false ) {
707
+ switch ( $option ) {
708
+ case 'single':
709
+ $text = sanitize_text_field( current( $record ) );
710
+ break;
711
+ case 'export':
712
+ $text = sanitize_text_field( var_export( $record, true ) );
713
+ break;
714
+ case 'multi':
715
+ $record[0x80000000] = 'multi';
716
+ $record[0x80000001] = $keep_existing;
717
+ // fallthru
718
+ case 'array':
719
+ $text = $record;
720
+ break;
721
+ default:
722
+ $text = '';
723
+ foreach ( $record as $term ) {
724
+ $term_name = sanitize_text_field( $term );
725
+ $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
726
+ }
727
+ } // $option
728
 
729
+ return $text;
730
  }
731
 
732
  /**
733
+ * Analyze a template, expanding Field-level Markup Substitution Parameters
734
+ *
735
+ * Field-level parameters must have one of the following prefix values:
736
+ * template, request, query, custom, terms, meta, iptc, exif, pdf.
737
+ * All but request and query require an attachment ID.
738
+ *
739
+ * @since 1.50
740
+ *
741
+ * @param string A formatting string containing [+placeholders+]
742
+ * @param array Optional: an array of values from the query, if any, e.g. shortcode parameters
743
+ * @param array Optional: an array of values to add to the returned array
744
+ * @param integer Optional: attachment ID for attachment-specific placeholders
745
+ * @param boolean Optional: for option 'multi', retain existing values
746
+ * @param string Optional: default option value
747
+ *
748
+ * @return array ( parameter => value ) for all field-level parameters and anything in $markup_values
749
+ */
750
+ public static function mla_expand_field_level_parameters( $tpl, $query = NULL, $markup_values = array(), $post_id = 0, $keep_existing = false, $default_option = 'text' ) {
751
+ static $cached_post_id = 0, $item_metadata = NULL, $attachment_metadata = NULL;
752
+ if ( $cached_post_id != $post_id ) {
753
+ $item_metadata = NULL;
754
+ $attachment_metadata = NULL;
755
+ $cached_post_id = $post_id;
756
+ }
757
+
758
+ $placeholders = self::mla_get_template_placeholders( $tpl, $default_option );
759
+ $template_count = 0;
760
+ foreach ($placeholders as $key => $value ) {
761
+ if ( isset( $markup_values[ $key ] ) )
762
+ continue;
763
+
764
+ switch ( $value['prefix'] ) {
765
+ case 'template':
766
+ $markup_values = self::mla_expand_field_level_parameters( $value['value'], $query , $markup_values, $post_id, $keep_existing, $default_option );
767
+ $template_count++;
768
+ break;
769
+ case 'meta':
770
+ if ( is_null( $item_metadata ) )
771
+ if ( 0 < $post_id )
772
+ $item_metadata = get_metadata( 'post', $post_id, '_wp_attachment_metadata', true );
773
+ else
774
+ break;
775
+
776
+ $markup_values[ $key ] = self::mla_find_array_element( $value['value'], $item_metadata, $value['option'] );
777
+ break;
778
+ case 'query':
779
+ if ( isset( $query ) && isset( $query[ $value['value'] ] ) )
780
+ $markup_values[ $key ] = $query[ $value['value'] ];
781
+
782
+ break;
783
+ case 'request':
784
+ if ( isset( $_REQUEST[ $value['value'] ] ) )
785
+ $markup_values[ $key ] = $_REQUEST[ $value['value'] ];
786
+
787
+ break;
788
+ case 'terms':
789
+ if ( 0 < $post_id )
790
+ $terms = wp_get_object_terms( $post_id, $value['value'] );
791
+ else
792
+ break;
793
+
794
+ $text = '';
795
+ if ( is_wp_error( $terms ) ) {
796
+ $text = implode( ',', $terms->get_error_messages() );
797
+ }
798
+ elseif ( ! empty( $terms ) ) {
799
+ if ( 'single' == $value['option'] || 1 == count( $terms ) )
800
+ $text = sanitize_term_field( 'name', $terms[0]->name, $terms[0]->term_id, $value, 'display' );
801
+ elseif ( 'export' == $value['option'] )
802
+ $text = sanitize_text_field( var_export( $terms, true ) );
803
+ else
804
+ foreach ( $terms as $term ) {
805
+ $term_name = sanitize_term_field( 'name', $term->name, $term->term_id, $value, 'display' );
806
+ $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
807
+ }
808
+ }
809
+
810
+ $markup_values[ $key ] = $text;
811
+ break;
812
+ case 'custom':
813
+ if ( 0 < $post_id )
814
+ $record = get_metadata( 'post', $post_id, $value['value'], 'single' == $value['option'] );
815
+ else
816
+ break;
817
+
818
+ $text = '';
819
+ if ( is_wp_error( $record ) )
820
+ $text = implode( ',', $terms->get_error_messages() );
821
+ elseif ( ! empty( $record ) ) {
822
+ if ( is_scalar( $record ) )
823
+ $text = sanitize_text_field( (string) $record );
824
+ elseif ( is_array( $record ) ) {
825
+ if ( 'export' == $value['option'] )
826
+ $text = sanitize_text_field( var_export( $haystack, true ) );
827
+ else {
828
+ $text = '';
829
+ foreach ( $record as $term ) {
830
+ $term_name = sanitize_text_field( $term );
831
+ $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
832
+ }
833
+ }
834
+ } // is_array
835
+ } // ! empty
836
+
837
+ $markup_values[ $key ] = $text;
838
+ break;
839
+ case 'iptc':
840
+ if ( is_null( $attachment_metadata ) ) {
841
+ if ( 0 < $post_id )
842
+ $attachment_metadata = self::mla_fetch_attachment_image_metadata( $post_id );
843
+ else
844
+ break;
845
+ }
846
+
847
+ $record = self::mla_iptc_metadata_value( $value['value'], $attachment_metadata );
848
+ if ( is_array( $record ) )
849
+ $markup_values[ $key ] = self::_process_field_level_array( $record, $value['option'], $keep_existing );
850
+ else
851
+ $markup_values[ $key ] = $record;
852
+
853
+ break;
854
+ case 'exif':
855
+ if ( is_null( $attachment_metadata ) ) {
856
+ if ( 0 < $post_id )
857
+ $attachment_metadata = self::mla_fetch_attachment_image_metadata( $post_id );
858
+ else
859
+ break;
860
+ }
861
+
862
+ $record = self::mla_exif_metadata_value( $value['value'], $attachment_metadata );
863
+ if ( is_array( $record ) )
864
+ $markup_values[ $key ] = self::_process_field_level_array( $record, $value['option'], $keep_existing );
865
+ else
866
+ $markup_values[ $key ] = $record;
867
+ break;
868
+ case 'pdf':
869
+ if ( is_null( $attachment_metadata ) ) {
870
+ if ( 0 < $post_id )
871
+ $attachment_metadata = self::mla_fetch_attachment_image_metadata( $post_id );
872
+ else
873
+ break;
874
+ }
875
+
876
+ $record = self::mla_pdf_metadata_value( $value['value'], $attachment_metadata );
877
+ if ( is_array( $record ) )
878
+ $markup_values[ $key ] = self::_process_field_level_array( $record, $value['option'], $keep_existing );
879
+ else
880
+ $markup_values[ $key ] = $record;
881
+ break;
882
+ default:
883
+ // ignore anything else
884
+ } // switch
885
+ } // foreach placeholder
886
+
887
+ if ( $template_count )
888
+ $markup_values['[+template_count+]'] = $template_count;
889
+
890
+ return $markup_values;
891
+ }
892
+
893
+ /**
894
+ * Analyze a template, returning an array of the placeholders it contains
895
  *
896
  * @since 0.90
897
  *
898
  * @param string A formatting string containing [+placeholders+]
899
+ * @param string Optional: default option value
900
  *
901
  * @return array Placeholder information: each entry is an array with
902
+ * ['prefix'] => string, ['value'] => string, ['option'] => string 'text'|single'|'export'|'array'|'multi'
903
  */
904
+ public static function mla_get_template_placeholders( $tpl, $default_option = 'text' ) {
905
  $results = array();
906
+
907
+ /*
908
+ * Look for and process templates, removing them from the input so substitution parameters within
909
+ * the template are not expanded. They will be expanded when the template itself is expanded.
910
+ */
911
+ while ( false !== ( $template_offset = strpos( $tpl, '[+template:' ) ) ) {
912
+ $nest = $template_offset + 11;
913
+ $level = 1;
914
+ do {
915
+ $template_end = strpos( $tpl, '+]', $nest );
916
+ if ( false === $template_end ) {
917
+ error_log( 'ERROR: mla_get_template_placeholders no template-end delimiter dump = ' . var_export( self::_hex_dump( substr( $tpl, $template_offset, 128 ), 128, 16 ), true ), 0 );
918
+ return array();
919
+ }
920
+
921
+ $nest = strpos( $tpl, '[+', $nest );
922
+ if ( false === $nest ) {
923
+ $nest = $template_end + 2;
924
+ $level--;
925
+ }
926
+ elseif ( $nest < $template_end ) {
927
+ $nest += 2;
928
+ $level++;
929
+ }
930
+ else {
931
+ $nest = $template_end + 2;
932
+ $level--;
933
+ }
934
+
935
+ } while ( $level );
936
+
937
+ $template_length = $template_end + 2 - $template_offset;
938
+ $template_content = substr( $tpl, $template_offset + 11, $template_length - (11 + 2) );
939
+ $placeholders = self::mla_get_template_placeholders( $template_content );
940
+ $result = array( 'template:' . $template_content => array( 'prefix' => 'template', 'value' => $template_content, 'option' => $default_option ) );
941
+ $results = array_merge( $results, $result, $placeholders );
942
+ $tpl = substr_replace( $tpl, '', $template_offset, $template_length );
943
+ } // found a template
944
+
945
  $match_count = preg_match_all( '/\[\+[^+]+\+\]/', $tpl, $matches );
946
  if ( ( $match_count == false ) || ( $match_count == 0 ) )
947
  return $results;
948
 
949
  foreach ( $matches[0] as $match ) {
950
  $key = substr( $match, 2, (strlen( $match ) - 4 ) );
951
+ $result = array( 'prefix' => '', 'value' => '', 'option' => $default_option );
952
  $match_count = preg_match( '/\[\+(.+):(.+)/', $match, $matches );
953
  if ( 1 == $match_count ) {
954
  $result['prefix'] = $matches[1];
958
  $tail = substr( $match, 2);
959
  }
960
 
961
+ $match_count = preg_match( '/([^,]+)(,(text|single|export|array|multi))\+\]/', $tail, $matches );
962
  if ( 1 == $match_count ) {
963
  $result['value'] = $matches[1];
964
  $result['option'] = $matches[3];
1114
 
1115
  $clean_request = array (
1116
  'm' => 0,
1117
+ 'orderby' => MLAOptions::mla_get_option( MLAOptions::MLA_DEFAULT_ORDERBY ),
1118
+ 'order' => MLAOptions::mla_get_option( MLAOptions::MLA_DEFAULT_ORDER ),
1119
  'post_type' => 'attachment',
1120
  'post_status' => 'inherit',
1121
  'mla_search_connector' => 'AND',
1366
  'taxonomy' => $tax_filter,
1367
  'field' => 'id',
1368
  'terms' => array(
1369
+ (int) $clean_request['mla_filter_term']
1370
+ ),
1371
+ 'include_children' => ( 'checked' == MLAOptions::mla_get_option( MLAOptions::MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN ) )
1372
  )
1373
  );
1374
  } // mla_filter_term != -1
1746
 
1747
  $item = get_post( $post_id );
1748
  if ( empty( $item ) ) {
1749
+ error_log( "ERROR: mla_get_attachment_by_id({$post_id}) not found", 0 );
1750
  return NULL;
1751
  }
1752
 
1753
  if ( $item->post_type != 'attachment' ) {
1754
+ error_log( "ERROR: mla_get_attachment_by_id({$post_id}) wrong post_type: " . $item->post_type, 0 );
1755
  return NULL;
1756
  }
1757
 
1818
  *
1819
  * @param string key value, e.g. array1.array2.element
1820
  * @param array PHP nested arrays
1821
+ * @param string data option 'text'|'single'|'export'|'array'|'multi'
1822
  * @param boolean keep existing values - for 'multi' option
1823
  *
1824
  * @return string value matching key(.key ...) or ''
1826
  public static function mla_find_array_element( $needle, $haystack, $option, $keep_existing = false ) {
1827
  $key_array = explode( '.', $needle );
1828
  if ( is_array( $key_array ) ) {
1829
+ foreach ( $key_array as $key ) {
1830
  if ( is_array( $haystack ) ) {
1831
  if ( isset( $haystack[ $key ] ) )
1832
  $haystack = $haystack[ $key ];
1839
  }
1840
  else $haystack = '';
1841
 
1842
+ // if ( 'single' == $option && is_array( $haystack ))
1843
+ // $haystack = current( $haystack );
1844
 
1845
  if ( is_array( $haystack ) ) {
1846
  switch ( $option ) {
1847
+ case 'single':
1848
+ $haystack = current( $haystack );
1849
+ break;
1850
  case 'export':
1851
  $haystack = var_export( $haystack, true );
1852
  break;
1858
  return $haystack;
1859
  break;
1860
  default:
1861
+ $haystack = implode( ', ', $haystack );
1862
  } // $option
1863
  }
1864
 
2008
  if ( isset( $parent_data['parent_title'] ) )
2009
  $references['parent_title'] = $parent_data['parent_title'];
2010
 
2011
+ $references['base_file'] = get_post_meta( $ID, '_wp_attached_file', true );
2012
+ $pathinfo = pathinfo($references['base_file']);
2013
+ $references['file'] = $pathinfo['basename'];
2014
+ if ( '.' == $pathinfo['dirname'] )
2015
+ $references['path'] = '/';
2016
+ else
2017
+ $references['path'] = $pathinfo['dirname'] . '/';
2018
+
2019
  $attachment_metadata = get_post_meta( $ID, '_wp_attachment_metadata', true );
2020
  $sizes = isset( $attachment_metadata['sizes'] ) ? $attachment_metadata['sizes'] : NULL;
2021
  if ( !empty( $sizes ) ) {
2026
  }
2027
 
2028
  $references['files'][ $references['base_file'] ] = $references['base_file'];
 
 
 
 
 
 
2029
 
2030
  /*
2031
  * Process the where-used settings option
2032
  */
2033
+ if ('checked' == MLAOptions::mla_get_option( MLAOptions::MLA_EXCLUDE_REVISIONS ) )
2034
  $exclude_revisions = "(post_type <> 'revision') AND ";
2035
  else
2036
  $exclude_revisions = '';
2421
  /**
2422
  * Array of PDF indirect objects
2423
  *
2424
+ * This array contains all of the indirect object offsets and lengths.
2425
+ * The array key is ( object ID * 1000 ) + object generation.
2426
+ * The array value is array( number, generation, start, optional /length )
2427
  *
2428
+ * @since 1.50
2429
  *
2430
  * @var array
2431
  */
2432
  private static $pdf_indirect_objects = NULL;
2433
 
2434
+ /**
2435
+ * Parse a cross-reference table subsection into the array of indirect object definitions
2436
+ *
2437
+ * A cross-reference subsection is a sequence of 20-byte entries, each with offset and generation values.
2438
+ * @since 1.50
2439
+ *
2440
+ * @param string buffer containing the subsection
2441
+ * @param integer offset within the buffer of the first entry
2442
+ * @param integer number of the first object in the subsection
2443
+ * @param integer number of entries in the subsection
2444
+ *
2445
+ * @return void
2446
+ */
2447
+ private static function _parse_pdf_xref_subsection( &$xref_section, $offset, $object_id, $count ) {
2448
+
2449
+ while ( $count-- ) {
2450
+ $match_count = preg_match( '/(\d+) (\d+) (.)/', $xref_section, $matches, 0, $offset);
2451
+
2452
+ if ( $match_count ) {
2453
+ if ( 'n' == $matches[3] ) {
2454
+ $key = ( $object_id * 1000 ) + $matches[2];
2455
+ if ( ! isset( self::$pdf_indirect_objects[ $key ] ) )
2456
+ self::$pdf_indirect_objects[ $key ] = array( 'number' => $object_id, 'generation' => (integer) $matches[2], 'start' => (integer) $matches[1] );
2457
+ }
2458
+ $object_id++;
2459
+ $offset += 20;
2460
+ }
2461
+ else
2462
+ break;
2463
+ }
2464
+ }
2465
+
2466
+ /**
2467
+ * Parse a cross-reference table section into the array of indirect object definitions
2468
+ *
2469
+ * Creates the array of indirect object offsets and lengths
2470
+ * @since 1.50
2471
+ *
2472
+ * @param string full path and file name
2473
+ * @param integer offset within the file of the xref id and count entry
2474
+ *
2475
+ * @return integer length of the section
2476
+ */
2477
+ private static function _parse_pdf_xref_section( $file_name, $file_offset ) {
2478
+ $xref_max = $chunksize = 16384;
2479
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2480
+ $xref_length = 0;
2481
+
2482
+ while ( preg_match( '/^[\x00-\x20]*(\d+) (\d+)[\x00-\x20]*/', substr($xref_section, $xref_length), $matches, 0 ) ) {
2483
+ $object_id = $matches[1];
2484
+ $count = $matches[2];
2485
+ $offset = $xref_length + strlen( $matches[0] );
2486
+ $xref_length = $offset + ( 20 * $count );
2487
+
2488
+ if ( $xref_max < $xref_length ) {
2489
+ $xref_max += $chunksize;
2490
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $xref_max );
2491
+ }
2492
+
2493
+ self::_parse_pdf_xref_subsection( $xref_section, $offset, $object_id, $count );
2494
+ } // while preg_match subsection header
2495
+
2496
+ return $xref_length;
2497
+ }
2498
+
2499
+ /**
2500
+ * Parse a cross-reference steam into the array of indirect object definitions
2501
+ *
2502
+ * Creates the array of indirect object offsets and lengths
2503
+ * @since 1.50
2504
+ *
2505
+ * @param string full path and file name
2506
+ * @param integer offset within the file of the xref id and count entry
2507
+ * @param string "/W" entry, representing the size of the fields in a single entry
2508
+ *
2509
+ * @return integer length of the stream
2510
+ */
2511
+ private static function _parse_pdf_xref_stream( $file_name, $file_offset, $entry_parms_string ) {
2512
+ $chunksize = 16384;
2513
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2514
+
2515
+ if ( 'stream' == substr( $xref_section, 0, 6 ) ) {
2516
+ $tag_length = 7;
2517
+ if ( chr(0x0D) == $xref_section[6] )
2518
+ $tag_length++;
2519
+ }
2520
+ else
2521
+ return 0;
2522
+
2523
+ /*
2524
+ * If necessary and possible, expand the $xmp_chunk until it contains the end tag
2525
+ */
2526
+ $new_chunksize = $chunksize;
2527
+ if ( false === ( $end_tag = strpos( $xref_section, 'endstream', $tag_length ) ) && ( $chunksize == strlen( $xref_section ) ) ) {
2528
+ $new_chunksize = $chunksize + $chunksize;
2529
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $new_chunksize );
2530
+ while ( false === ( $end_tag = strpos( $xref_section, 'endstream' ) ) && ( $new_chunksize == strlen( $xref_section ) ) ) {
2531
+ $new_chunksize = $new_chunksize + $chunksize;
2532
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $new_chunksize );
2533
+ } // while not found
2534
+ } // if not found
2535
+
2536
+ if ( false == $end_tag )
2537
+ $length = 0;
2538
+ else
2539
+ $length = $end_tag - $tag_length;
2540
+
2541
+ if ( false == $end_tag )
2542
+ return 0;
2543
+
2544
+ return $length;
2545
+
2546
+ $entry_parms = explode( ' ', $entry_parms_string );
2547
+ $object_id = $matches[1];
2548
+ $count = $matches[2];
2549
+ $offset = strlen( $matches[0] );
2550
+ $length = $offset + ( 20 * $count );
2551
+
2552
+ if ( $chunksize < $length ) {
2553
+ $xref_section = file_get_contents( $file_name, true, NULL, $file_offset, $length );
2554
+ $offset = 0;
2555
+ }
2556
+
2557
+ while ( $count-- ) {
2558
+ $match_count = preg_match( '/(\d+) (\d+) (.)/', $xref_section, $matches, 0, $offset);
2559
+ if ( $match_count ) {
2560
+ if ( 'n' == $matches[3] ) {
2561
+ $key = ( $object_id * 1000 ) + $matches[2];
2562
+ if ( ! isset( self::$pdf_indirect_objects[ $key ] ) )
2563
+ self::$pdf_indirect_objects[ $key ] = array( 'number' => $object_id, 'generation' => (integer) $matches[2], 'start' => (integer) $matches[1] );
2564
+ }
2565
+ $object_id++;
2566
+ $offset += 20;
2567
+ }
2568
+ else
2569
+ break;
2570
+ }
2571
+
2572
+ return $length;
2573
+ }
2574
+
2575
  /**
2576
  * Build an array of indirect object definitions
2577
  *
2578
  * Creates the array of indirect object offsets and lengths
2579
+ * @since 1.50
2580
  *
2581
  * @param string The entire PDF document, passsed by reference
2582
  *
2587
  return;
2588
 
2589
  $match_count = preg_match_all( '!(\d+)\\h+(\d+)\\h+obj|endobj|stream(\x0D\x0A|\x0A)|endstream!', $string, $matches, PREG_OFFSET_CAPTURE );
 
 
 
 
2590
  self::$pdf_indirect_objects = array();
2591
  $object_level = 0;
2592
  $is_stream = false;
2593
  for ( $index = 0; $index < $match_count; $index++ ) {
 
 
2594
  if ( $is_stream ) {
2595
  if ( 'endstream' == substr( $matches[0][ $index ][0], 0, 9 ) ) {
2596
  $is_stream = false;
2615
  else
2616
  error_log( 'ERROR: _build_pdf_indirect_objects bad value $index = ' . $index, 0 );
2617
  } // for each match
 
2618
  }
2619
 
2620
  /**
2621
  * Find the offset, length and contents of an indirect object containing a dictionary
2622
+ *
2623
+ * The function searches the entire file, if necessary, to find the last/most recent copy of the object.
2624
+ * This is required because Adobe Acrobat does NOT increment the generation number when it reuses an object.
2625
  *
2626
+ * @since 1.50
2627
  *
2628
+ * @param string full path and file name
2629
  * @param integer The object number
2630
  * @param integer The object generation number; default zero (0)
2631
  *
2632
  * @return mixed NULL on failure else array( 'start' => offset in the file, 'length' => object length, 'content' => dictionary contents )
2633
  */
2634
+ private static function _find_pdf_indirect_dictionary( $file_name, $object, $generation = 0 ) {
2635
+ $chunksize = 16384;
2636
+ $key = ( $object * 1000 ) + $generation;
2637
+ if ( isset( self::$pdf_indirect_objects ) && isset( self::$pdf_indirect_objects[ $key ] ) ) {
2638
+ $file_offset = self::$pdf_indirect_objects[ $key ]['start'];
2639
+ } // found object location
2640
+ else
2641
+ $file_offset = 0;
2642
+
2643
+ $object_starts = array();
2644
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2645
+
2646
  /*
2647
  * Match the object header
2648
  */
2649
+ $pattern = sprintf( '!%1$d\\h+%2$d\\h+obj[\\x00-\\x20]*(<<)!', $object, $generation );
2650
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE );
2651
+ if ( $match_count ) {
2652
+ $object_starts[] = array( 'offset' => $file_offset, 'start' => $matches[1][1]);
2653
+ $match_count = 0;
2654
+ }
2655
+
2656
+ /*
2657
+ * If necessary and possible, advance the $object_content through the file until it contains the start tag
2658
+ */
2659
+ if ( 0 == $match_count && ( $chunksize == strlen( $object_content ) ) ) {
2660
+ $file_offset += ( $chunksize - 16 );
2661
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2662
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE );
2663
+
2664
+ if ( $match_count ) {
2665
+ $object_starts[] = array( 'offset' => $file_offset, 'start' => $matches[1][1]);
2666
+ $match_count = 0;
2667
+ }
2668
+
2669
+ while ( 0 == $match_count && ( $chunksize == strlen( $object_content ) ) ) {
2670
+ $file_offset += ( $chunksize - 16 );
2671
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2672
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE );
2673
+
2674
+ if ( $match_count ) {
2675
+ $object_starts[] = array( 'offset' => $file_offset, 'start' => $matches[1][1]);
2676
+ $match_count = 0;
2677
+ }
2678
+ } // while not found
2679
+ } // if not found
2680
+
2681
+ $object_start = array_pop( $object_starts );
2682
+ if ( is_null( $object_start ) )
2683
+ return NULL;
2684
+ else {
2685
+ $file_offset = $object_start['offset'];
2686
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
2687
+ $start = $object_start['start'];
2688
+ }
2689
+
2690
+ /*
2691
+ * If necessary and possible, expand the $object_content until it contains the end tag
2692
+ */
2693
+ $pattern = '!>>[\\x00-\\x20]*[endobj|stream]!';
2694
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE, $start );
2695
+ if ( 0 == $match_count && ( $chunksize == strlen( $object_content ) ) ) {
2696
+ $file_offset = $file_offset + $start;
2697
+ $start = 0;
2698
+ $new_chunksize = $chunksize + $chunksize;
2699
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $new_chunksize );
2700
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE, $start );
2701
+
2702
+ while ( 0 == $match_count && ( $new_chunksize == strlen( $object_content ) ) ) {
2703
+ $new_chunksize = $new_chunksize + $chunksize;
2704
+ $object_content = file_get_contents( $file_name, true, NULL, $file_offset, $new_chunksize );
2705
+ $match_count = preg_match( $pattern, $object_content, $matches, PREG_OFFSET_CAPTURE, $start );
2706
+ } // while not found
2707
+ } // if not found
2708
+
2709
+ if ( 0 == $match_count )
2710
+ return NULL;
2711
 
2712
  if ($match_count) {
2713
+ $results = array( 'start' => $file_offset + $start, 'length' => ($matches[0][1] + 2) - $start );
2714
+ $results['content'] = substr( $object_content, $start, $results['length'] );
2715
+ return $results;
2716
+ } // found trailer
 
 
 
 
 
 
 
 
 
 
 
 
 
2717
 
2718
  return NULL;
2719
  }
2721
  /**
2722
  * Parse a ISO 8601 Timestamp
2723
  *
2724
+ * @since 1.50
2725
  *
2726
  * @param string ISO string of the form YYYY-MM-DDTHH:MM:SS-HH:MM (inc time zone)
2727
  *
2743
  /**
2744
  * Parse a PDF date string
2745
  *
2746
+ * @since 1.50
2747
  *
2748
  * @param string PDF date string of the form D:YYYYMMDDHHmmSSOHH'mm
2749
  *
2765
  /**
2766
  * Parse a PDF Unicode (16-bit Big Endian) object
2767
  *
2768
+ * @since 1.50
2769
  *
2770
  * @param string PDF string of 16-bit characters
2771
  *
2793
  * Returns an array with one dictionary entry. The array also has a '/length' element containing
2794
  * the number of bytes occupied by the string in the source string, including the enclosing parentheses.
2795
  *
2796
+ * @since 1.50
2797
  *
2798
  * @param string data within which the string occurs
2799
  * @param integer offset within the source string of the opening '(' character.
2838
  case 'f':
2839
  $output .= chr( 0x0C );
2840
  break;
2841
+ default: // could be a 1- to 3-digit octal value
2842
+ $digit_limit = $index + 3;
2843
+ $digit_index = $index;
2844
+ while ( $digit_index < $digit_limit )
2845
+ if ( ! ctype_digit( $source_string[ $digit_index ] ) )
 
 
 
 
 
 
 
2846
  break;
2847
+ else
2848
+ $digit_index++;
2849
 
2850
+ if ( $digit_count = $digit_index - $index ) {
2851
  $output .= chr( octdec( substr( $source_string, $index, $digit_count ) ) );
2852
  $index += $digit_count - 1;
2853
  }
2854
+ else // accept the character following the backslash
2855
+ $output .= $source_string[ $index ];
2856
  } // switch
2857
 
2858
  $index++;
2875
  }
2876
 
2877
  /**
2878
+ * Parse a PDF Linearization Parameter Dictionary object
2879
  *
2880
  * Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
2881
  * indirect (object), name, array, dictionary, stream, and null.
2882
  * The array also has a '/length' element containing the number of bytes occupied by the
2883
  * dictionary in the source string, excluding the enclosing delimiters, if passed in.
2884
+ * @since 1.50
2885
+ *
2886
+ * @param string data within which the object occurs, typically the start of a PDF document
2887
+ * @param integer filesize of the PDF document, for validation purposes, or zero (0) to ignore filesize
2888
+ *
2889
+ * @return mixed array of dictionary objects on success, false on failure
2890
+ */
2891
+ private static function _parse_pdf_LPD_dictionary( &$source_string, $filesize ) {
2892
+ $header = substr( $source_string, 0, 1024 );
2893
+ $match_count = preg_match( '!obj[\x00-\x20]*<<(/Linearized).*(>>)[\x00-\x20]*endobj!', $header, $matches, PREG_OFFSET_CAPTURE );
2894
+
2895
+ if ( $match_count )
2896
+ $LPD = self::_parse_pdf_dictionary( $header, $matches[1][1] );
2897
+
2898
+ return false;
2899
+ }
2900
+
2901
+ /**
2902
+ * Parse a PDF dictionary object
2903
+ *
2904
+ * Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
2905
+ * indirect (object), name, array, dictionary, stream, and null.
2906
+ * The array also has a '/length' element containing the number of bytes occupied by the
2907
+ * dictionary in the source string, excluding the enclosing delimiters.
2908
+ * @since 1.50
2909
  *
2910
  * @param string data within which the string occurs
2911
  * @param integer offset within the source string of the opening '<<' characters or the first content character.
2913
  * @return array ( '/length' => length, key => array( 'type' => type, 'value' => value ) ) for each dictionary field
2914
  */
2915
  private static function _parse_pdf_dictionary( &$source_string, $offset ) {
2916
+ /*
2917
+ * Find the end of the dictionary
2918
+ */
2919
+ if ( '<<' == substr( $source_string, $offset, 2 ) )
2920
+ $nest = $offset + 2;
2921
  else
2922
+ $nest = $offset;
2923
 
2924
+ $level = 1;
2925
+ do {
2926
+ $dictionary_end = strpos( $source_string, '>>', $nest );
2927
+ if ( false === $dictionary_end ) {
2928
+ error_log( "ERROR: _parse_pdf_dictionary offset = {$offset}, nest = {$nest}", 0 );
2929
+ error_log( 'ERROR: _parse_pdf_dictionary no end delimiter dump = ' . var_export( self::_hex_dump( substr( $source_string, $offset, 128 ), 128, 16 ), true ), 0 );
2930
+ return array( '/length' => 0 );
2931
+ }
2932
 
2933
+ $nest = strpos( $source_string, '<<', $nest );
2934
+ if ( false === $nest ) {
2935
+ $nest = $dictionary_end + 2;
2936
+ $level--;
2937
+ }
2938
+ elseif ( $nest < $dictionary_end ) {
2939
+ $nest += 2;
2940
+ $level++;
2941
+ }
2942
+ else {
2943
+ $nest = $dictionary_end + 2;
2944
+ $level--;
2945
+ }
2946
+ } while ( $level );
2947
+
2948
+ $dictionary_length = $dictionary_end + 2 - $offset;
2949
  $dictionary = array();
2950
+
2951
  // \x00-\x20 for whitespace
2952
  // \(|\)|\<|\>|\[|\]|\{|\}|\/|\% for delimiters
2953
+ $match_count = preg_match_all( '!/([^\x00-\x20|\(|\)|\<|\>|\[|\]|\{|\}|\/|\%]*)([\x00-\x20]*)!', substr( $source_string, $offset, $dictionary_length ), $matches, PREG_OFFSET_CAPTURE );
 
 
2954
  $end_data = -1;
2955
  for ( $match_index = 0; $match_index < $match_count; $match_index++ ) {
2956
  $name = $matches[1][ $match_index ][0];
2957
  $value_start = $offset + $matches[2][ $match_index ][1] + strlen( $matches[2][ $match_index ][0] );
2958
+
2959
  /*
2960
  * Skip over false matches within a string or nested dictionary
2961
  */
2965
  $end_data = -1;
2966
  $value_count = preg_match(
2967
  '!(\/?[^\/\x0D\x0A]*)!',
2968
+ substr( $source_string, $value_start, ($dictionary_end - $value_start ) ), $value_matches, PREG_OFFSET_CAPTURE );
2969
 
2970
  if ( 1 == $value_count ) {
2971
+ $value = trim( $value_matches[0][0] );
2972
  $length = strlen( $value );
2973
  $dictionary[ $name ]['value'] = $value;
2974
  if ( ! isset( $value[0] ) ) {
2989
  if ( '<' == $value[1] ) {
2990
  $dictionary[ $name ]['value'] = self::_parse_pdf_dictionary( $source_string, $value_start );
2991
  $dictionary[ $name ]['type'] = 'dictionary';
2992
+ $end_data = $value_start + 4 + $dictionary[ $name ]['value']['/length'];
2993
  unset( $dictionary[ $name ]['value']['/length'] );
 
2994
  }
2995
  else
2996
  $dictionary[ $name ]['type'] = 'hex';
3028
  }
3029
  } // foreach match
3030
 
3031
+ $dictionary['/length'] = $dictionary_length;
 
 
3032
  return $dictionary;
3033
  }
3034
 
3039
  * indirect (object), name, array, dictionary, stream, and null.
3040
  * The array also has a '/length' element containing the number of bytes occupied by the
3041
  * dictionary in the source string, excluding the enclosing delimiters, if passed in.
3042
+ * @since 1.50
3043
  *
3044
+ * @param string full path and file name
3045
+ * @param integer offset within the file of the search start point
3046
  *
3047
+ * @return mixed array of metadata values or NULL on failure
3048
  */
3049
+ private static function _parse_xmp_metadata( $file_name, $file_offset ) {
3050
+ $chunksize = 16384;
3051
+ $xmp_chunk = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
3052
+
3053
+ /*
3054
+ * If necessary and possible, advance the $xmp_chunk through the file until it contains the start tag
3055
+ */
3056
+ if ( false === ( $start_tag = strpos( $xmp_chunk, '<x:xmpmeta' ) ) && ( $chunksize == strlen( $xmp_chunk ) ) ) {
3057
+ $new_offset = $file_offset + ( $chunksize - 16 );
3058
+ $xmp_chunk = file_get_contents( $file_name, true, NULL, $new_offset, $chunksize );
3059
+ while ( false === ( $start_tag = strpos( $xmp_chunk, '<x:xmpmeta' ) ) && ( $chunksize == strlen( $xmp_chunk ) ) ) {
3060
+ $new_offset = $new_offset + ( $chunksize - 16 );
3061
+ $xmp_chunk = file_get_contents( $file_name, true, NULL, $new_offset, $chunksize );
3062
+ } // while not found
3063
+ } // if not found
3064
+ else
3065
+ $new_offset = $file_offset;
3066
+
3067
  if ( false === $start_tag )
3068
  return NULL;
3069
 
3070
+ /*
3071
+ * If necessary and possible, expand the $xmp_chunk until it contains the start tag
3072
+ */
3073
+ if ( false === ( $end_tag = strpos( $xmp_chunk, '</x:xmpmeta>', $start_tag ) ) && ( $chunksize == strlen( $xmp_chunk ) ) ) {
3074
+ $new_offset = $new_offset + $start_tag;
3075
+ $start_tag = 0;
3076
+ $new_chunksize = $chunksize + $chunksize;
3077
+ $xmp_chunk = file_get_contents( $file_name, true, NULL, $new_offset, $new_chunksize );
3078
+ while ( false === ( $end_tag = strpos( $xmp_chunk, '</x:xmpmeta>' ) ) && ( $new_chunksize == strlen( $xmp_chunk ) ) ) {
3079
+ $new_chunksize = $new_chunksize + $chunksize;
3080
+ $xmp_chunk = file_get_contents( $file_name, true, NULL, $new_offset, $new_chunksize );
3081
+ } // while not found
3082
+ } // if not found
3083
+
3084
+ if ( false === $end_tag )
3085
  return NULL;
3086
 
3087
+ $xmp_string = "<?xml version='1.0'?>\n" . substr($xmp_chunk, $start_tag, ( $end_tag + 12 ) - $start_tag );
 
3088
  $xmp_values = array();
3089
  $xml_parser = xml_parser_create('UTF-8');
3090
  if ( xml_parser_set_option( $xml_parser, XML_OPTION_SKIP_WHITE, 0 ) && xml_parser_set_option( $xml_parser, XML_OPTION_CASE_FOLDING, 0 ) ) {
3095
  error_log( 'ERROR: _parse_xmp_metadata set option failed.' );
3096
 
3097
  xml_parser_free($xml_parser);
 
 
3098
 
3099
  if ( empty( $xmp_values ) )
3100
  return NULL;
3106
  foreach ( $xmp_values as $value ) {
3107
  $language = 'x-default';
3108
  if ( isset( $value['attributes'] ) ) {
3109
+ foreach ( $value['attributes'] as $att_tag => $att_value ) {
3110
  if ( 'xmlns:' == substr( $att_tag, 0, 6 ) )
3111
  $xmlns[ substr( $att_tag, 6 ) ] = $att_value;
3112
  elseif ( 'x:xmptk' == $att_tag )
3170
 
3171
  /*
3172
  * Parse "namespace:name" names into arrays of simple names
3173
+ * NOTE: The string "XAP" or "xap" appears in some namespaces, keywords,
3174
+ * and related names in stored XMP data. It reflects an early internal
3175
+ * code name for XMP; the names have been preserved for compatibility purposes.
3176
  */
3177
  $namespace_arrays = array();
3178
  foreach ( $results as $key => $value ) {
3184
  $array_index = substr( $key, $colon + 1 );
3185
  $namespace_arrays[ $array_name ][ $array_index ] = $value;
3186
 
3187
+ if ( ! isset( $results[ $array_index ] ) && in_array( $array_name, array( 'xmp', 'xmpMM', 'xmpRights', 'xap', 'xapMM', 'dc', 'pdf', 'pdfx' ) ) ) {
3188
  if ( is_array( $value ) && 1 == count( $value ) && isset( $value[0] ) )
3189
  $results[ $array_index ] = $value[0];
3190
  else
3207
  * ModDate - The date and time the document was most recently modified
3208
  */
3209
  if ( ! isset( $results['Title'] ) ) {
3210
+ if ( isset( $namespace_arrays['dc'] ) && isset( $namespace_arrays['dc']['title'] ) )
3211
  $results['Title'] = implode( ',', $namespace_arrays['dc']['title'] );
3212
  }
3213
 
3214
  if ( ! isset( $results['Author'] ) ) {
3215
+ if ( isset( $namespace_arrays['dc'] ) && isset( $namespace_arrays['dc']['creator'] ) )
3216
  $results['Author'] = implode( ',', $namespace_arrays['dc']['creator'] );
3217
  }
3218
 
3219
  if ( ! isset( $results['Subject'] ) ) {
3220
+ if ( isset( $namespace_arrays['dc'] ) && isset( $namespace_arrays['dc']['description'] ) )
3221
+ $results['Subject'] = implode( ',', $namespace_arrays['dc']['description'] );
3222
  }
3223
 
3224
+ /*
3225
+ * Keywords are special, since they are often assigned to taxonomy terms.
3226
+ * Build or preserve an array if there are multiple values; string for single values.
3227
+ * "pdf:Keywords" uses a ';' delimiter, "dc:subject" uses an array.
3228
+ */
3229
+ $keywords = array();
3230
+ if ( isset( $results['Keywords'] ) ) {
3231
+ if ( false !== strpos( $results['Keywords'], ';' ) ) {
3232
+ $terms = array_map( 'trim', explode( ';', $results['Keywords'] ) );
3233
+ foreach ( $terms as $term )
3234
+ if ( ! empty( $term ) )
3235
+ $keywords[ $term ] = $term;
3236
+ }
3237
+ elseif ( false !== strpos( $results['Keywords'], ',' ) ) {
3238
+ $terms = array_map( 'trim', explode( ',', $results['Keywords'] ) );
3239
+ foreach ( $terms as $term )
3240
+ if ( ! empty( $term ) )
3241
+ $keywords[ $term ] = $term;
3242
+ }
3243
+ else {
3244
+ $term = trim( $results['Keywords'] );
3245
+ if ( ! empty( $term ) )
3246
+ $keywords[ $term ] = $term;
3247
+ }
3248
+ } // Keywords
3249
+
3250
+ if ( isset( $namespace_arrays['dc'] ) && isset( $namespace_arrays['dc']['subject'] ) ) {
3251
+ if ( is_array( $namespace_arrays['dc']['subject'] ) )
3252
+ foreach ( $namespace_arrays['dc']['subject'] as $term ) {
3253
+ $term = trim( $term );
3254
+ if ( ! empty( $term ) )
3255
+ $keywords[ $term ] = $term;
3256
+ }
3257
+ elseif ( is_string( $namespace_arrays['dc']['subject'] ) ) {
3258
+ $term = trim ( $namespace_arrays['dc']['subject'] );
3259
+ if ( ! empty( $term ) )
3260
+ $keywords[ $term ] = $term;
3261
+ }
3262
+ } // dc:subject
3263
+
3264
+ if ( ! empty( $keywords ) ) {
3265
+ if ( 1 == count( $keywords ) )
3266
+ $results['Keywords'] = array_shift( $keywords );
3267
+ else {
3268
+ $results['Keywords'] = array();
3269
+ foreach ( $keywords as $term )
3270
+ $results['Keywords'][] = $term;
3271
+ }
3272
  }
3273
 
3274
+ // if ( ! isset( $results['Producer'] ) ) {
3275
+ // }
3276
+
3277
  if ( ! isset( $results['Creator'] ) ) {
3278
+ if ( isset( $namespace_arrays['xmp'] ) && isset( $namespace_arrays['xmp']['CreatorTool'] ) )
3279
  $results['Creator'] = $namespace_arrays['xmp']['CreatorTool'];
3280
+ elseif ( isset( $namespace_arrays['xap'] ) && isset( $namespace_arrays['xap']['CreatorTool'] ) )
3281
+ $results['Creator'] = $namespace_arrays['xap']['CreatorTool'];
3282
+ elseif ( ! empty( $results['Producer'] ) )
3283
+ $results['Creator'] = $results['Producer'];
3284
  }
3285
 
3286
  if ( ! isset( $results['CreationDate'] ) ) {
3287
+ if ( isset( $namespace_arrays['xmp'] ) && isset( $namespace_arrays['xmp']['CreateDate'] ) )
3288
  $results['CreationDate'] = $namespace_arrays['xmp']['CreateDate'];
3289
+ elseif ( isset( $namespace_arrays['xap'] ) && isset( $namespace_arrays['xap']['CreateDate'] ) )
3290
+ $results['CreationDate'] = $namespace_arrays['xap']['CreateDate'];
3291
  }
3292
 
3293
  if ( ! isset( $results['ModDate'] ) ) {
3294
+ if ( isset( $namespace_arrays['xmp'] ) && isset( $namespace_arrays['xmp']['ModifyDate'] ) )
3295
  $results['ModDate'] = $namespace_arrays['xmp']['ModifyDate'];
3296
+ elseif ( isset( $namespace_arrays['xap'] ) && isset( $namespace_arrays['xap']['ModifyDate'] ) )
3297
+ $results['ModDate'] = $namespace_arrays['xap']['ModifyDate'];
3298
  }
3299
 
3300
  if ( ! empty( $xmlns ) )
3301
  $results['xmlns'] = $xmlns;
3302
 
3303
  $results = array_merge( $results, $namespace_arrays );
 
3304
  return $results;
3305
  }
3306
 
3307
+ /**
3308
+ * Extract dictionary from traditional cross-reference + trailer documents
3309
+ *
3310
+ * @since 1.50
3311
+ *
3312
+ * @param string full path to the desired file
3313
+ * @param integer offset within file of the cross-reference table
3314
+ *
3315
+ * @return mixed array of "PDF dictionary arrays", newest first, or NULL on failure
3316
+ */
3317
+ private static function _extract_pdf_trailer( $file_name, $file_offset ) {
3318
+ $chunksize = 16384;
3319
+ $tail = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
3320
+ $chunk_offset = 0;
3321
+
3322
+ /*
3323
+ * look for traditional xref and trailer
3324
+ */
3325
+ if ( 'xref' == substr( $tail, $chunk_offset, 4 ) ) {
3326
+ $xref_length = self::_parse_pdf_xref_section( $file_name, $file_offset + $chunk_offset + 4 );
3327
+ $chunk_offset += 4 + $xref_length;
3328
+
3329
+ if ( $chunk_offset > ( $chunksize - 1024 ) ) {
3330
+ $file_offset += $chunk_offset;
3331
+ $tail = file_get_contents( $file_name, true, NULL, $file_offset, $chunksize );
3332
+ $chunk_offset = 0;
3333
+ }
3334
+
3335
+ $match_count = preg_match( '/[\x00-\x20]*trailer[\x00-\x20]+/', $tail, $matches, PREG_OFFSET_CAPTURE, $chunk_offset );
3336
+ if ( $match_count ) {
3337
+ $chunk_offset = $matches[0][1] + strlen( $matches[0][0] );
3338
+ $match_count = preg_match( '/<<(.*)>>/', $tail, $matches, 0, $chunk_offset );
3339
+
3340
+ if ( 0 < $match_count ) {
3341
+ $dictionary = self::_parse_pdf_dictionary( $matches[0], 0 );
3342
+
3343
+ if ( isset( $dictionary['Prev'] ) )
3344
+ $other_trailers = self::_extract_pdf_trailer( $file_name, $dictionary['Prev']['value'] );
3345
+ else
3346
+ $other_trailers = NULL;
3347
+
3348
+ if ( is_array( $other_trailers ) ) {
3349
+ $other_trailers = array_merge( $other_trailers, array( $dictionary ) );
3350
+ return $other_trailers;
3351
+ }
3352
+ else
3353
+ return array( $dictionary );
3354
+ } // found trailer dictionary
3355
+ } // found 'trailer'
3356
+ } // found 'xref'
3357
+ else {
3358
+ /*
3359
+ * Look for a cross-reference stream
3360
+ */
3361
+ $match_count = preg_match( '!(\d+)\\h+(\d+)\\h+obj[\x00-\x20]*!', $tail, $matches, PREG_OFFSET_CAPTURE );
3362
+ if ( $match_count ) {
3363
+ $chunk_offset = $matches[0][1] + strlen( $matches[0][0] );
3364
+
3365
+ if ( '<<' == substr( $tail, $chunk_offset, 2) ) {
3366
+ $dictionary = self::_parse_pdf_dictionary( $tail, $chunk_offset );
3367
+
3368
+ /*
3369
+ * Parse the cross-reference stream following the dictionary, if present
3370
+ */
3371
+ if ( isset( $dictionary['Type'] ) && 'XRef' == $dictionary['Type']['value'] )
3372
+ $xref_length = self::_parse_pdf_xref_stream( $file_name, $file_offset + $chunk_offset + (integer) $dictionary['/length'], $dictionary['W']['value'] );
3373
+
3374
+ if ( isset( $dictionary['Prev'] ) )
3375
+ $other_trailers = self::_extract_pdf_trailer( $file_name, $dictionary['Prev']['value'] );
3376
+ else
3377
+ $other_trailers = NULL;
3378
+
3379
+ if ( is_array( $other_trailers ) ) {
3380
+ $other_trailers = array_merge( array( $dictionary ), $other_trailers );
3381
+ return $other_trailers;
3382
+ }
3383
+ else
3384
+ return array( $dictionary );
3385
+ } // found cross-reference stream dictionary
3386
+ } // found cross-reference stream object
3387
+ }
3388
+
3389
+ return NULL;
3390
+ }
3391
+
3392
  /**
3393
  * Extract Metadata from a PDF file
3394
  *
3395
+ * @since 1.50
3396
  *
3397
  * @param string full path to the desired file
3398
  *
3399
  * @return array ( key => value ) for each metadata field, in string format
3400
  */
3401
  private static function _extract_pdf_metadata( $file_name ) {
 
3402
  $metadata = array();
3403
  self::$pdf_indirect_objects = NULL;
3404
+ $chunksize = 16384;
3405
+
3406
+ if ( ! file_exists( $file_name ) )
 
3407
  return $metadata;
 
3408
 
3409
+ $filesize = filesize( $file_name );
3410
+ $file_offset = ( $chunksize < $filesize ) ? ( $filesize - $chunksize ) : 0;
3411
+ $tail = file_get_contents( $file_name, false, NULL, $file_offset );
3412
 
3413
+ if ( 0 == $file_offset )
3414
+ $header = substr( $tail, 0, 128 );
3415
+ else
3416
+ $header = file_get_contents( $file_name, false, NULL, 0, 128 );
3417
+
3418
  if ( '%PDF-' == substr( $header, 0, 5 ) ) {
3419
  $metadata['PDF_Version'] = substr( $header, 1, 7 );
3420
  $metadata['PDF_VersionNumber'] = substr( $header, 5, 3 );
3421
  }
3422
+
3423
+ /*
3424
+ * Find the xref and (optional) trailer
3425
+ */
3426
+ $match_count = preg_match_all( '/startxref[\x00-\x20]+(\d+)[\x00-\x20]+\%\%EOF/', $tail, $matches, PREG_OFFSET_CAPTURE );
3427
+ if ( 0 == $match_count ) {
3428
+ error_log( 'ERROR: startxref not found ' . var_export( $path, true ), 0 );
3429
+ return $metadata;
3430
+ }
3431
+
3432
+ $startxref = (integer) $matches[1][ $match_count - 1 ][0];
3433
+ $trailer_dictionaries = self::_extract_pdf_trailer( $file_name, $startxref );
3434
+ if ( is_array( $trailer_dictionaries ) ) {
3435
+ $info_reference = NULL;
3436
+ foreach ( $trailer_dictionaries as $trailer_dictionary )
3437
+ if ( isset( $trailer_dictionary['Info'] ) ) {
3438
+ $info_reference = $trailer_dictionary['Info'];
3439
+ break;
3440
+ }
3441
+
3442
+ if ( isset( $info_reference ) ) {
3443
+ $info_object = self::_find_pdf_indirect_dictionary( $file_name, $info_reference['object'], $info_reference['generation'] );
3444
+ if ( $info_object ) {
3445
+ $info_dictionary = self::_parse_pdf_dictionary( $info_object['content'], 0 );
3446
+ unset( $info_dictionary['/length'] );
3447
 
3448
+ foreach ( $info_dictionary as $name => $value ) {
3449
+ if ( 'string' == $value['type'] ) {
3450
+ $prefix = substr( $value['value'], 0, 2 );
3451
+ if ( 'D:' == $prefix )
3452
+ $metadata[ $name ] = self::_parse_pdf_date( $value['value'] );
3453
+ elseif ( ( chr(0xFE) . chr(0xFF) ) == $prefix )
3454
+ $metadata[ $name ] = self::_parse_pdf_UTF16BE( $value['value'] );
3455
+ else
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3456
  $metadata[ $name ] = $value['value'];
3457
+ }
3458
+ else
3459
+ $metadata[ $name ] = $value['value'];
3460
+ } // each info entry
3461
+ } // found Info object
3462
+ } // found Info reference
3463
+
3464
+ /*
3465
+ * Look for XMP Metadata
3466
+ */
3467
+ $root_reference = NULL;
3468
+ foreach ( $trailer_dictionaries as $trailer_dictionary )
3469
+ if ( isset( $trailer_dictionary['Root'] ) ) {
3470
+ $root_reference = $trailer_dictionary['Root'];
3471
+ break;
3472
+ }
 
 
 
 
 
 
 
 
 
 
3473
 
3474
+ if ( isset( $root_reference ) ) {
3475
+ $root_object = self::_find_pdf_indirect_dictionary( $file_name, $root_reference['object'], $root_reference['generation'] );
3476
+ if ( $root_object ) {
3477
+ $root_dictionary = self::_parse_pdf_dictionary( $root_object['content'], 0 );
3478
+ unset( $root_dictionary['/length'] );
3479
+
3480
+ if ( isset( $root_dictionary['Metadata'] ) ) {
3481
+ $xmp_object = self::_find_pdf_indirect_dictionary( $file_name, $root_dictionary['Metadata']['object'], $root_dictionary['Metadata']['generation'] );
3482
+ $xmp = self::_parse_xmp_metadata( $file_name, $xmp_object['start'] + $xmp_object['length'] );
3483
+ if ( is_array( $xmp ) )
3484
+ $metadata = array_merge( $metadata, $xmp );
3485
+ } // found Metadata reference
3486
+ } // found Root object
3487
+ } // found Root reference
3488
+ } // found trailer_dictionaries
3489
+
3490
  return $metadata;
3491
  }
3492
 
3914
  /**
3915
  * Parse one IPTC metadata field
3916
  *
 
 
3917
  * @since 1.41
3918
  *
3919
  * @param string field name - IPTC Identifier or friendly name/slug
3926
  if ( array_key_exists( $iptc_key, self::$mla_iptc_keys ) ) {
3927
  $iptc_key = self::$mla_iptc_keys[ $iptc_key ];
3928
  }
3929
+
3930
  $text = '';
3931
  if ( array_key_exists( $iptc_key, $item_metadata['mla_iptc_metadata'] ) ) {
3932
  $text = $item_metadata['mla_iptc_metadata'][ $iptc_key ];
3944
  /**
3945
  * Parse one EXIF metadata field
3946
  *
 
3947
  * Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.
3948
  *
3949
  * @since 1.13
3951
  * @param string field name
3952
  * @param string metadata array containing iptc, exif, and pdf metadata arrays
3953
  *
3954
+ * @return mixed string/array representation of metadata value or an empty string
3955
  */
3956
  public static function mla_exif_metadata_value( $exif_key, $item_metadata ) {
 
 
 
3957
  $text = '';
3958
  if ( array_key_exists( $exif_key, $item_metadata['mla_exif_metadata'] ) ) {
3959
  $text = $item_metadata['mla_exif_metadata'][ $exif_key ];
4003
  /**
4004
  * Parse one PDF metadata field
4005
  *
 
4006
  * Also handles the special pseudo-value 'ALL_PDF'.
4007
  *
4008
+ * @since 1.50
4009
  *
4010
  * @param string field name
4011
  * @param string metadata array containing iptc, exif, and pdf metadata arrays
4012
  *
4013
+ * @return mixed string/array representation of metadata value or an empty string
4014
  */
4015
  public static function mla_pdf_metadata_value( $pdf_key, $item_metadata ) {
4016
  $text = '';
4043
  return $text;
4044
  }
4045
 
4046
+ private static function _rational_to_decimal( $rational ) {
4047
+ $parts = explode('/', $rational);
4048
+ return $parts[0] / ( $parts[1] ? $parts[1] : 1);
4049
+ }
4050
+
4051
  /**
4052
  * Fetch and filter IPTC and EXIF meta data for an image attachment
4053
  *
4062
  */
4063
  public static function mla_fetch_attachment_image_metadata( $post_id, $path = '' ) {
4064
  $results = array(
4065
+ 'post_id' => $post_id,
4066
  'mla_iptc_metadata' => array(),
4067
  'mla_exif_metadata' => array(),
4068
  'mla_pdf_metadata' => array()
4100
  }
4101
 
4102
  if ( is_callable( 'exif_read_data' ) && in_array( $size[2], array( IMAGETYPE_JPEG, IMAGETYPE_TIFF_II, IMAGETYPE_TIFF_MM ) ) ) {
4103
+ $results['mla_exif_metadata'] = $exif_data = exif_read_data( $path );
4104
  }
4105
  }
4106
 
4107
+ /*
4108
+ * Expand EXIF GPS values
4109
+ */
4110
+ $gps_data = array();
4111
+ if ( isset( $exif_data['GPSVersion'] ) ) {
4112
+ $gps_data['Version'] = sprintf( '%1$d.%2$d.%3$d.%4$d', ord( $exif_data['GPSVersion'][0] ), ord( $exif_data['GPSVersion'][1] ), ord( $exif_data['GPSVersion'][2] ), ord( $exif_data['GPSVersion'][3] ) );
4113
+ }
4114
+
4115
+ if ( isset( $exif_data['GPSLatitudeRef'] ) ) {
4116
+ $gps_data['LatitudeRef'] = $exif_data['GPSLatitudeRef'];
4117
+ $gps_data['LatitudeRefS'] = ( 'N' == $exif_data['GPSLatitudeRef'] ) ? '' : '-';
4118
+ $ref = $gps_data['LatitudeRef'];
4119
+ $refs = $gps_data['LatitudeRefS'];
4120
+ }
4121
+ else {
4122
+ $ref = '';
4123
+ $refs = '';
4124
+ }
4125
+
4126
+ if ( isset( $exif_data['GPSLatitude'] ) ) {
4127
+ $rational = $exif_data['GPSLatitude'];
4128
+ $gps_data['LatitudeD'] = $degrees = self::_rational_to_decimal( $rational[0] );
4129
+ $gps_data['LatitudeM'] = $minutes = self::_rational_to_decimal( $rational[1] );
4130
+ $gps_data['LatitudeS'] = sprintf( '%1$01.4f', $seconds = self::_rational_to_decimal( $rational[2] ) );
4131
+ $decimal_minutes = $minutes + ( $seconds / 60 );
4132
+ $decimal_degrees = ( $decimal_minutes / 60 );
4133
+
4134
+ $gps_data['Latitude'] = sprintf( '%1$dd %2$d\' %3$01.4f" %4$s', $degrees, $minutes, $seconds, $ref );
4135
+ $gps_data['LatitudeDM'] = sprintf( '%1$d %2$01.4f', $degrees, $decimal_minutes );
4136
+ $gps_data['LatitudeDD'] = sprintf( '%1$01f', $degrees + $decimal_degrees );
4137
+ $gps_data['LatitudeMinDec'] = substr( $gps_data['LatitudeDM'], strpos( $gps_data['LatitudeDM'], ' ' ) + 1 );
4138
+ $gps_data['LatitudeDegDec'] = substr( $gps_data['LatitudeDD'], strpos( $gps_data['LatitudeDD'], '.' ) );
4139
+ $gps_data['LatitudeDM'] = $gps_data['LatitudeDM'] . $ref;
4140
+ $gps_data['LatitudeDD'] = $gps_data['LatitudeDD'] . $ref;
4141
+ }
4142
+
4143
+ if ( isset( $exif_data['GPSLongitudeRef'] ) ) {
4144
+ $gps_data['LongitudeRef'] = $exif_data['GPSLongitudeRef'];
4145
+ $gps_data['LongitudeRefS'] = ( 'E' == $exif_data['GPSLongitudeRef'] ) ? '' : '-';
4146
+ $ref = $gps_data['LongitudeRef'];
4147
+ $refs = $gps_data['LongitudeRefS'];
4148
+ }
4149
+ else {
4150
+ $ref = '';
4151
+ $refs = '';
4152
+ }
4153
+
4154
+ if ( isset( $exif_data['GPSLongitude'] ) ) {
4155
+ $rational = $exif_data['GPSLongitude'];
4156
+ $gps_data['LongitudeD'] = $degrees = self::_rational_to_decimal( $rational[0] );
4157
+ $gps_data['LongitudeM'] = $minutes = self::_rational_to_decimal( $rational[1] );
4158
+ $gps_data['LongitudeS'] = sprintf( '%1$01.4f', $seconds = self::_rational_to_decimal( $rational[2] ) );
4159
+ $decimal_minutes = $minutes + ( $seconds / 60 );
4160
+ $decimal_degrees = ( $decimal_minutes / 60 );
4161
+
4162
+ $gps_data['Longitude'] = sprintf( '%1$dd %2$d\' %3$01.4f" %4$s', $degrees, $minutes, $seconds, $ref );
4163
+ $gps_data['LongitudeDM'] = sprintf( '%1$d %2$01.4f', $degrees, $decimal_minutes );
4164
+ $gps_data['LongitudeDD'] = sprintf( '%1$01f', $degrees + $decimal_degrees );
4165
+ $gps_data['LongitudeMinDec'] = substr( $gps_data['LongitudeDM'], strpos( $gps_data['LongitudeDM'], ' ' ) + 1 );
4166
+ $gps_data['LongitudeDegDec'] = substr( $gps_data['LongitudeDD'], strpos( $gps_data['LongitudeDD'], '.' ) );
4167
+ $gps_data['LongitudeDM'] = $gps_data['LongitudeDM'] . $ref;
4168
+ $gps_data['LongitudeDD'] = $gps_data['LongitudeDD'] . $ref;
4169
+ }
4170
+
4171
+ if ( isset( $exif_data['GPSAltitudeRef'] ) ) {
4172
+ $gps_data['AltitudeRef'] = sprintf( '%1$d', ord( $exif_data['GPSAltitudeRef'][0] ) );
4173
+ $gps_data['AltitudeRefS'] = ( '0' == $gps_data['AltitudeRef'] ) ? '' : '-';
4174
+ $refs = $gps_data['AltitudeRefS'];
4175
+ }
4176
+ else {
4177
+ $refs = '';
4178
+ }
4179
+
4180
+ if ( isset( $exif_data['GPSAltitude'] ) ) {
4181
+ $gps_data['Altitude'] = sprintf( '%1$s%2$01.4f', $refs, $meters = self::_rational_to_decimal( $exif_data['GPSAltitude'] ) );
4182
+ $gps_data['AltitudeFeet'] = sprintf( '%1$s%2$01.2f', $refs, $meters * 3.280839895013 );
4183
+ }
4184
+
4185
+ if ( isset( $exif_data['GPSTimeStamp'] ) ) {
4186
+ $rational = $exif_data['GPSTimeStamp'];
4187
+ $gps_data['TimeStampH'] = sprintf( '%1$02d', $hours = self::_rational_to_decimal( $rational[0] ) );
4188
+ $gps_data['TimeStampM'] = sprintf( '%1$02d', $minutes = self::_rational_to_decimal( $rational[1] ) );
4189
+ $gps_data['TimeStampS'] = sprintf( '%1$02d', $seconds = self::_rational_to_decimal( $rational[2] ) );
4190
+ $gps_data['TimeStamp'] = sprintf( '%1$02d:%2$02d:%3$02d', $hours, $minutes, $seconds );
4191
+ }
4192
+
4193
+ if ( isset( $exif_data['GPSDateStamp'] ) ) {
4194
+ $parts = explode( ':', $exif_data['GPSDateStamp'] );
4195
+ $gps_data['DateStampY'] = $parts[0];
4196
+ $gps_data['DateStampM'] = $parts[1];
4197
+ $gps_data['DateStampD'] = $parts[2];
4198
+ $gps_data['DateStamp'] = $exif_data['GPSDateStamp'];
4199
+ }
4200
+
4201
+ if ( isset( $exif_data['GPSMapDatum'] ) ) {
4202
+ $gps_data['MapDatum'] = $exif_data['GPSMapDatum'];
4203
+ }
4204
+
4205
+ if ( ! empty( $gps_data ) )
4206
+ $results['mla_exif_metadata']['GPS'] = $gps_data;
4207
+
4208
  /*
4209
  * Expand EXIF array values
4210
  */
4230
  * @return string success/failure message(s)
4231
  */
4232
  public static function mla_update_item_postmeta( $post_id, $new_meta ) {
4233
+ $post_data = self::mla_fetch_attachment_metadata( $post_id );
4234
  $message = '';
4235
 
4236
  foreach ( $new_meta as $meta_key => $meta_value ) {
4358
  * @return array success/failure message and NULL content
4359
  */
4360
  public static function mla_update_single_item( $post_id, $new_data, $tax_input = NULL, $tax_actions = NULL ) {
4361
+ $post_data = self::mla_get_attachment_by_id( $post_id );
 
4362
  if ( !isset( $post_data ) )
4363
  return array(
4364
  'message' => 'ERROR: Could not retrieve Attachment.',
4536
  'body' => ''
4537
  );
4538
  else {
4539
+ self::mla_get_attachment_by_id( -1 ); // invalidate the cached item
4540
 
4541
  if ( wp_update_post( $updates ) ) {
4542
  $final_message = 'Item: ' . $post_id . ' updated.';
4610
  * @param string Binary data
4611
  * @param integer Bytes to format, default = 0 (all bytes)
4612
  * @param intger Bytes to format on each line
4613
+ * @param integer offset of initial byte, or -1 to suppress printing offset information
4614
  *
4615
  * @return string Printable representation of $data
4616
  */
4617
+ private static function _hex_dump( $data, $limit = 0, $bytes_per_row = 16, $offset = -1 ) {
4618
  if ( 0 == $limit )
4619
  $limit = strlen( $data );
4620
 
4621
  $position = 0;
4622
  $output = "\r\n";
4623
+ $print_offset = ( 0 <= $offset );
4624
 
4625
+ if ( $print_offset )
4626
+ $print_length = $bytes_per_row += 5;
4627
+ else
4628
+ $print_length = $bytes_per_row;
4629
+
4630
  while ( $position < $limit ) {
4631
  $row_length = strlen( substr( $data, $position ) );
4632
 
4641
 
4642
  $row_data = substr( $data, $position, $row_length );
4643
 
4644
+ if ( $print_offset ) {
4645
+ $print_string = sprintf( '%04X ', $position + $offset );
4646
+ }
4647
+ else
4648
+ $print_string = '';
4649
+
4650
  $hex_string = '';
4651
  for ( $index = 0; $index < $row_length; $index++ ) {
4652
  $char = ord( substr( $row_data, $index, 1 ) );
4658
  $hex_string .= ' ' . bin2hex( chr($char) );
4659
  } // for
4660
 
4661
+ $output .= str_pad( $print_string, $print_length, ' ', STR_PAD_RIGHT ) . $hex_string . "\r\n";
4662
  $position += $row_length;
4663
  } // while
4664
 
includes/class-mla-list-table.php CHANGED
@@ -241,7 +241,7 @@ class MLA_List_Table extends WP_List_Table {
241
  'exclude' => '',
242
  // 'exclude_tree => '',
243
  'echo' => true,
244
- 'depth' => 3,
245
  'tab_index' => 0,
246
  'name' => 'mla_filter_term',
247
  'id' => 'name',
@@ -401,12 +401,12 @@ class MLA_List_Table extends WP_List_Table {
401
  $list = array();
402
  foreach ( $terms as $term ) {
403
  $term_name = esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'category', 'display' ) );
404
- $list[ ] = sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array(
405
  'page' => MLA::ADMIN_PAGE_SLUG,
406
  'mla-tax' => $taxonomy,
407
  'mla-term' => $term->slug,
408
  'heading_suffix' => urlencode( $tax_object->label . ': ' . $term->name )
409
- ), 'upload.php' ) ), $term_name, $term_name );
410
  } // foreach $term
411
 
412
  return join( ', ', $list );
@@ -421,7 +421,7 @@ class MLA_List_Table extends WP_List_Table {
421
  return '';
422
 
423
  $list = array();
424
- foreach( $values as $index => $value ) {
425
  /*
426
  * For display purposes, convert array values.
427
  * They are not links because no search will match them.
@@ -429,12 +429,12 @@ class MLA_List_Table extends WP_List_Table {
429
  if ( is_array( $value ) )
430
  $list[ ] = 'array( ' . implode( ', ', $value ) . ' )';
431
  else
432
- $list[ ] = sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array(
433
  'page' => MLA::ADMIN_PAGE_SLUG,
434
  'mla-metakey' => urlencode( MLA_List_Table::$default_columns[ $column_name ] ),
435
  'mla-metavalue' => urlencode( $value ),
436
  'heading_suffix' => urlencode( MLA_List_Table::$default_columns[ $column_name ] . ': ' . $value )
437
- ), 'upload.php' ) ), esc_html( substr( $value, 0, 64 ) ), esc_html( $value ) );
438
  }
439
 
440
  if ( count( $list ) > 1 )
@@ -505,7 +505,7 @@ class MLA_List_Table extends WP_List_Table {
505
  * Build rollover actions
506
  */
507
  $view_args = array_merge( array( 'page' => MLA::ADMIN_PAGE_SLUG, 'mla_item_ID' => $item->ID ),
508
- self::_mla_submenu_arguments() );
509
 
510
  if ( isset( $_REQUEST['paged'] ) )
511
  $view_args['paged'] = $_REQUEST['paged'];
@@ -611,11 +611,11 @@ class MLA_List_Table extends WP_List_Table {
611
  else
612
  $parent_title = '(no title: bad ID)';
613
 
614
- $parent = sprintf( '<a href="%1$s" title="Filter by Parent ID">(parent:%2$s)</a>', esc_url( add_query_arg( array(
615
  'page' => MLA::ADMIN_PAGE_SLUG,
616
  'parent' => $item->post_parent,
617
  'heading_suffix' => urlencode( 'Parent: ' . $parent_title )
618
- ), 'upload.php' ) ), (string) $item->post_parent );
619
  } // $item->post_parent
620
  else
621
  $parent = 'parent:0';
@@ -701,11 +701,11 @@ class MLA_List_Table extends WP_List_Table {
701
  else
702
  $parent_title = '(no title: bad ID)';
703
 
704
- return sprintf( '<a href="%1$s" title="Filter by Parent ID">%2$s</a>', esc_url( add_query_arg( array(
705
  'page' => MLA::ADMIN_PAGE_SLUG,
706
  'parent' => $item->post_parent,
707
  'heading_suffix' => urlencode( 'Parent: ' . $parent_title )
708
- ), 'upload.php' ) ), (string) $item->post_parent );
709
  }
710
  else
711
  return (string) $item->post_parent;
@@ -865,12 +865,12 @@ class MLA_List_Table extends WP_List_Table {
865
  */
866
  function column_alt_text( $item ) {
867
  if ( isset( $item->mla_wp_attachment_image_alt ) )
868
- return sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array(
869
  'page' => MLA::ADMIN_PAGE_SLUG,
870
  'mla-metakey' => '_wp_attachment_image_alt',
871
  'mla-metavalue' => urlencode( $item->mla_wp_attachment_image_alt ),
872
  'heading_suffix' => urlencode( 'ALT Text: ' . $item->mla_wp_attachment_image_alt )
873
- ), 'upload.php' ) ), esc_html( $item->mla_wp_attachment_image_alt ), esc_html( $item->mla_wp_attachment_image_alt ) );
874
  else
875
  return '';
876
  }
@@ -908,11 +908,11 @@ class MLA_List_Table extends WP_List_Table {
908
  * @return string HTML markup to be placed inside the column
909
  */
910
  function column_post_mime_type( $item ) {
911
- return sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;"">%2$s</a>', esc_url( add_query_arg( array(
912
  'page' => MLA::ADMIN_PAGE_SLUG,
913
  'post_mime_type' => urlencode( $item->post_mime_type ),
914
  'heading_suffix' => urlencode( 'MIME Type: ' . $item->post_mime_type )
915
- ), 'upload.php' ) ), esc_html( $item->post_mime_type ), esc_html( $item->post_mime_type ) );
916
  }
917
 
918
  /**
@@ -1011,11 +1011,11 @@ class MLA_List_Table extends WP_List_Table {
1011
  $user = get_user_by( 'id', $item->post_author );
1012
 
1013
  if ( isset( $user->data->display_name ) )
1014
- return sprintf( '<a href="%s" title="Filter by Author ID">%s</a>', esc_url( add_query_arg( array(
1015
  'page' => MLA::ADMIN_PAGE_SLUG,
1016
  'author' => $item->post_author,
1017
  'heading_suffix' => urlencode( 'Author: ' . $user->data->display_name )
1018
- ), 'upload.php' ) ), esc_html( $user->data->display_name ) );
1019
  else
1020
  return 'unknown';
1021
  }
@@ -1055,15 +1055,19 @@ class MLA_List_Table extends WP_List_Table {
1055
  *
1056
  * @since 1.42
1057
  *
 
 
1058
  * @return array non-empty view, search, filter and sort arguments
1059
  */
1060
- private static function _mla_submenu_arguments( ) {
1061
- static $submenu_arguments = NULL;
1062
 
1063
- if ( is_array( $submenu_arguments ) )
1064
  return $submenu_arguments;
1065
- else
1066
  $submenu_arguments = array();
 
 
1067
 
1068
  /*
1069
  * View arguments
@@ -1110,26 +1114,28 @@ class MLA_List_Table extends WP_List_Table {
1110
  /*
1111
  * Filter arguments (from interior table cells)
1112
  */
1113
- if ( isset( $_REQUEST['heading_suffix'] ) )
1114
- $submenu_arguments['heading_suffix'] = $_REQUEST['heading_suffix'];
1115
-
1116
- if ( isset( $_REQUEST['parent'] ) )
1117
- $submenu_arguments['parent'] = $_REQUEST['parent'];
1118
-
1119
- if ( isset( $_REQUEST['author'] ) )
1120
- $submenu_arguments['author'] = $_REQUEST['author'];
1121
-
1122
- if ( isset( $_REQUEST['mla-tax'] ) )
1123
- $submenu_arguments['mla-tax'] = $_REQUEST['mla-tax'];
1124
-
1125
- if ( isset( $_REQUEST['mla-term'] ) )
1126
- $submenu_arguments['mla-term'] = $_REQUEST['mla-term'];
1127
-
1128
- if ( isset( $_REQUEST['meta-key'] ) )
1129
- $submenu_arguments['meta-key'] = $_REQUEST['meta-key'];
1130
-
1131
- if ( isset( $_REQUEST['meta-value'] ) )
1132
- $submenu_arguments['meta-value'] = $_REQUEST['meta-value'];
 
 
1133
 
1134
  return $submenu_arguments;
1135
  }
@@ -1144,7 +1150,7 @@ class MLA_List_Table extends WP_List_Table {
1144
  */
1145
  function pagination( $which ) {
1146
  $save_uri = $_SERVER['REQUEST_URI'];
1147
- $_SERVER['REQUEST_URI'] = add_query_arg( self::_mla_submenu_arguments(), $save_uri );
1148
  parent::pagination( $which );
1149
  $_SERVER['REQUEST_URI'] = $save_uri;
1150
  }
@@ -1216,7 +1222,7 @@ class MLA_List_Table extends WP_List_Table {
1216
  */
1217
  function print_column_headers( $with_id = true ) {
1218
  $save_uri = $_SERVER['REQUEST_URI'];
1219
- $_SERVER['REQUEST_URI'] = add_query_arg( self::_mla_submenu_arguments(), $save_uri );
1220
  parent::print_column_headers( $with_id );
1221
  $_SERVER['REQUEST_URI'] = $save_uri;
1222
  }
@@ -1244,7 +1250,7 @@ class MLA_List_Table extends WP_List_Table {
1244
  $query_types = array ();
1245
 
1246
  $mla_types = array ();
1247
- foreach( $query_types as $value )
1248
  $mla_types[ $value->slug ] = $value;
1249
 
1250
  $posts_per_type = (array) wp_count_attachments();
@@ -1433,9 +1439,13 @@ class MLA_List_Table extends WP_List_Table {
1433
  'id' => 'post-query-submit'
1434
  ) );
1435
  }
 
 
 
 
1436
 
1437
  if ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
1438
- submit_button( __( 'Empty Trash' ), 'button-secondary apply', 'delete_all', false );
1439
  }
1440
 
1441
  echo ( '</div>' );
241
  'exclude' => '',
242
  // 'exclude_tree => '',
243
  'echo' => true,
244
+ 'depth' => MLAOptions::mla_get_option( MLAOptions::MLA_TAXONOMY_FILTER_DEPTH ),
245
  'tab_index' => 0,
246
  'name' => 'mla_filter_term',
247
  'id' => 'name',
401
  $list = array();
402
  foreach ( $terms as $term ) {
403
  $term_name = esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'category', 'display' ) );
404
+ $list[ ] = sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
405
  'page' => MLA::ADMIN_PAGE_SLUG,
406
  'mla-tax' => $taxonomy,
407
  'mla-term' => $term->slug,
408
  'heading_suffix' => urlencode( $tax_object->label . ': ' . $term->name )
409
+ ) ), 'upload.php' ) ), $term_name, $term_name );
410
  } // foreach $term
411
 
412
  return join( ', ', $list );
421
  return '';
422
 
423
  $list = array();
424
+ foreach ( $values as $index => $value ) {
425
  /*
426
  * For display purposes, convert array values.
427
  * They are not links because no search will match them.
429
  if ( is_array( $value ) )
430
  $list[ ] = 'array( ' . implode( ', ', $value ) . ' )';
431
  else
432
+ $list[ ] = sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
433
  'page' => MLA::ADMIN_PAGE_SLUG,
434
  'mla-metakey' => urlencode( MLA_List_Table::$default_columns[ $column_name ] ),
435
  'mla-metavalue' => urlencode( $value ),
436
  'heading_suffix' => urlencode( MLA_List_Table::$default_columns[ $column_name ] . ': ' . $value )
437
+ ) ), 'upload.php' ) ), esc_html( substr( $value, 0, 64 ) ), esc_html( $value ) );
438
  }
439
 
440
  if ( count( $list ) > 1 )
505
  * Build rollover actions
506
  */
507
  $view_args = array_merge( array( 'page' => MLA::ADMIN_PAGE_SLUG, 'mla_item_ID' => $item->ID ),
508
+ self::mla_submenu_arguments() );
509
 
510
  if ( isset( $_REQUEST['paged'] ) )
511
  $view_args['paged'] = $_REQUEST['paged'];
611
  else
612
  $parent_title = '(no title: bad ID)';
613
 
614
+ $parent = sprintf( '<a href="%1$s" title="Filter by Parent ID">(parent:%2$s)</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
615
  'page' => MLA::ADMIN_PAGE_SLUG,
616
  'parent' => $item->post_parent,
617
  'heading_suffix' => urlencode( 'Parent: ' . $parent_title )
618
+ ) ), 'upload.php' ) ), (string) $item->post_parent );
619
  } // $item->post_parent
620
  else
621
  $parent = 'parent:0';
701
  else
702
  $parent_title = '(no title: bad ID)';
703
 
704
+ return sprintf( '<a href="%1$s" title="Filter by Parent ID">%2$s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
705
  'page' => MLA::ADMIN_PAGE_SLUG,
706
  'parent' => $item->post_parent,
707
  'heading_suffix' => urlencode( 'Parent: ' . $parent_title )
708
+ ) ), 'upload.php' ) ), (string) $item->post_parent );
709
  }
710
  else
711
  return (string) $item->post_parent;
865
  */
866
  function column_alt_text( $item ) {
867
  if ( isset( $item->mla_wp_attachment_image_alt ) )
868
+ return sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;">%3$s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
869
  'page' => MLA::ADMIN_PAGE_SLUG,
870
  'mla-metakey' => '_wp_attachment_image_alt',
871
  'mla-metavalue' => urlencode( $item->mla_wp_attachment_image_alt ),
872
  'heading_suffix' => urlencode( 'ALT Text: ' . $item->mla_wp_attachment_image_alt )
873
+ ) ), 'upload.php' ) ), esc_html( $item->mla_wp_attachment_image_alt ), esc_html( $item->mla_wp_attachment_image_alt ) );
874
  else
875
  return '';
876
  }
908
  * @return string HTML markup to be placed inside the column
909
  */
910
  function column_post_mime_type( $item ) {
911
+ return sprintf( '<a href="%1$s" title="Filter by &#8220;%2$s&#8221;"">%2$s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
912
  'page' => MLA::ADMIN_PAGE_SLUG,
913
  'post_mime_type' => urlencode( $item->post_mime_type ),
914
  'heading_suffix' => urlencode( 'MIME Type: ' . $item->post_mime_type )
915
+ ) ), 'upload.php' ) ), esc_html( $item->post_mime_type ), esc_html( $item->post_mime_type ) );
916
  }
917
 
918
  /**
1011
  $user = get_user_by( 'id', $item->post_author );
1012
 
1013
  if ( isset( $user->data->display_name ) )
1014
+ return sprintf( '<a href="%s" title="Filter by Author ID">%s</a>', esc_url( add_query_arg( array_merge( self::mla_submenu_arguments( false ), array(
1015
  'page' => MLA::ADMIN_PAGE_SLUG,
1016
  'author' => $item->post_author,
1017
  'heading_suffix' => urlencode( 'Author: ' . $user->data->display_name )
1018
+ ) ), 'upload.php' ) ), esc_html( $user->data->display_name ) );
1019
  else
1020
  return 'unknown';
1021
  }
1055
  *
1056
  * @since 1.42
1057
  *
1058
+ * @param boolean Optional: Include the "click filter" values in the results
1059
+ *
1060
  * @return array non-empty view, search, filter and sort arguments
1061
  */
1062
+ public static function mla_submenu_arguments( $include_filters = true ) {
1063
+ static $submenu_arguments = NULL, $has_filters = NULL;
1064
 
1065
+ if ( is_array( $submenu_arguments ) && ( $has_filters == $include_filters ) )
1066
  return $submenu_arguments;
1067
+ else {
1068
  $submenu_arguments = array();
1069
+ $has_filters = $include_filters;
1070
+ }
1071
 
1072
  /*
1073
  * View arguments
1114
  /*
1115
  * Filter arguments (from interior table cells)
1116
  */
1117
+ if ( $include_filters ) {
1118
+ if ( isset( $_REQUEST['heading_suffix'] ) )
1119
+ $submenu_arguments['heading_suffix'] = $_REQUEST['heading_suffix'];
1120
+
1121
+ if ( isset( $_REQUEST['parent'] ) )
1122
+ $submenu_arguments['parent'] = $_REQUEST['parent'];
1123
+
1124
+ if ( isset( $_REQUEST['author'] ) )
1125
+ $submenu_arguments['author'] = $_REQUEST['author'];
1126
+
1127
+ if ( isset( $_REQUEST['mla-tax'] ) )
1128
+ $submenu_arguments['mla-tax'] = $_REQUEST['mla-tax'];
1129
+
1130
+ if ( isset( $_REQUEST['mla-term'] ) )
1131
+ $submenu_arguments['mla-term'] = $_REQUEST['mla-term'];
1132
+
1133
+ if ( isset( $_REQUEST['mla-metakey'] ) )
1134
+ $submenu_arguments['mla-metakey'] = $_REQUEST['mla-metakey'];
1135
+
1136
+ if ( isset( $_REQUEST['mla-metavalue'] ) )
1137
+ $submenu_arguments['mla-metavalue'] = $_REQUEST['mla-metavalue'];
1138
+ }
1139
 
1140
  return $submenu_arguments;
1141
  }
1150
  */
1151
  function pagination( $which ) {
1152
  $save_uri = $_SERVER['REQUEST_URI'];
1153
+ $_SERVER['REQUEST_URI'] = add_query_arg( self::mla_submenu_arguments(), $save_uri );
1154
  parent::pagination( $which );
1155
  $_SERVER['REQUEST_URI'] = $save_uri;
1156
  }
1222
  */
1223
  function print_column_headers( $with_id = true ) {
1224
  $save_uri = $_SERVER['REQUEST_URI'];
1225
+ $_SERVER['REQUEST_URI'] = add_query_arg( self::mla_submenu_arguments(), $save_uri );
1226
  parent::print_column_headers( $with_id );
1227
  $_SERVER['REQUEST_URI'] = $save_uri;
1228
  }
1250
  $query_types = array ();
1251
 
1252
  $mla_types = array ();
1253
+ foreach ( $query_types as $value )
1254
  $mla_types[ $value->slug ] = $value;
1255
 
1256
  $posts_per_type = (array) wp_count_attachments();
1439
  'id' => 'post-query-submit'
1440
  ) );
1441
  }
1442
+
1443
+ if ( self::mla_submenu_arguments( true ) != self::mla_submenu_arguments( false ) ) {
1444
+ submit_button( __( 'Clear Filter-by' ), 'button apply', 'clear_filter_by', false );
1445
+ }
1446
 
1447
  if ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
1448
+ submit_button( __( 'Empty Trash' ), 'button apply', 'delete_all', false );
1449
  }
1450
 
1451
  echo ( '</div>' );
includes/class-mla-main.php CHANGED
@@ -38,7 +38,7 @@ class MLA {
38
  *
39
  * @var string
40
  */
41
- const CURRENT_MLA_VERSION = '1.43';
42
 
43
  /**
44
  * Slug for registering and enqueueing plugin style sheet
@@ -308,7 +308,12 @@ class MLA {
308
  * @return void
309
  */
310
  public static function mla_admin_menu_action( ) {
311
- $hook = add_submenu_page( 'upload.php', 'Media Library Assistant', 'Assistant', 'upload_files', self::ADMIN_PAGE_SLUG, 'MLA::mla_render_admin_page' );
 
 
 
 
 
312
  add_action( 'load-' . $hook, 'MLA::mla_add_menu_options' );
313
  add_action( 'load-' . $hook, 'MLA::mla_add_help_tab' );
314
  self::$page_hooks[ $hook ] = $hook;
@@ -337,6 +342,18 @@ class MLA {
337
  add_action( 'admin_head-edit-tags.php', 'MLA::mla_add_help_tab' );
338
  }
339
 
 
 
 
 
 
 
 
 
 
 
 
 
340
  add_filter( 'parent_file', 'MLA::mla_parent_file_filter', 10, 1 );
341
  }
342
 
@@ -540,6 +557,16 @@ class MLA {
540
  public static function mla_parent_file_filter( $parent_file ) {
541
  global $submenu_file, $submenu;
542
 
 
 
 
 
 
 
 
 
 
 
543
  /*
544
  * Make sure the "Assistant" submenu line is bolded when we go to the Edit Media page
545
  */
@@ -595,10 +622,11 @@ class MLA {
595
  $_GET['orderby'] = $_REQUEST['orderby'];
596
 
597
  $bulk_action = self::_current_bulk_action();
598
-
 
599
  echo "<div class=\"wrap\">\r\n";
600
  echo "<div id=\"icon-upload\" class=\"icon32\"><br/></div>\r\n";
601
- echo "<h2>Media Library Assistant"; // trailing </h2> is action-specific
602
 
603
  if ( !current_user_can( 'upload_files' ) ) {
604
  echo " - Error</h2>\r\n";
@@ -626,13 +654,10 @@ class MLA {
626
  * Process bulk actions that affect an array of items
627
  */
628
  if ( $bulk_action && ( $bulk_action != 'none' ) ) {
629
- // echo "</h2>\r\n";
630
 
631
  if ( isset( $_REQUEST['cb_attachment'] ) ) {
632
  foreach ( $_REQUEST['cb_attachment'] as $index => $post_id ) {
633
  switch ( $bulk_action ) {
634
- //case 'attach':
635
- //case 'catagorize':
636
  case 'delete':
637
  $item_content = self::_delete_single_item( $post_id );
638
  break;
@@ -653,21 +678,17 @@ class MLA {
653
  }
654
 
655
  /*
656
- * Copy the edit form contents to $new_data and remove them from $_REQUEST
657
  */
658
  $new_data = array() ;
659
  if ( isset( $_REQUEST['post_parent'] ) ) {
660
  if ( is_numeric( $_REQUEST['post_parent'] ) )
661
  $new_data['post_parent'] = $_REQUEST['post_parent'];
662
-
663
- unset( $_REQUEST['post_parent'] );
664
  }
665
 
666
  if ( isset( $_REQUEST['post_author'] ) ) {
667
  if ( -1 != $_REQUEST['post_author'] )
668
  $new_data['post_author'] = $_REQUEST['post_author'];
669
-
670
- unset( $_REQUEST['post_author'] );
671
  }
672
 
673
  /*
@@ -675,12 +696,9 @@ class MLA {
675
  */
676
  $custom_fields = array();
677
  foreach (MLAOptions::mla_custom_field_support( 'bulk_edit' ) as $slug => $label ) {
678
- $field_name = $slug;
679
- if ( isset( $_REQUEST[ $field_name ] ) ) {
680
- if ( ! empty( $_REQUEST[ $field_name ] ) )
681
- $custom_fields[ $label ] = $_REQUEST[ $field_name ];
682
-
683
- unset( $_REQUEST[ $field_name ] );
684
  }
685
  } // foreach
686
 
@@ -706,8 +724,14 @@ class MLA {
706
  $page_content['message'] .= $item_content['message'] . '<br>';
707
  } // foreach cb_attachment
708
 
 
 
709
  unset( $_REQUEST['tax_input'] );
710
  unset( $_REQUEST['tax_action'] );
 
 
 
 
711
  unset( $_REQUEST['cb_attachment'] );
712
  } // isset cb_attachment
713
  else {
@@ -719,6 +743,36 @@ class MLA {
719
  unset( $_REQUEST['action2'] );
720
  } // $bulk_action
721
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
722
  /*
723
  * Process row-level actions that affect a single item
724
  */
@@ -800,7 +854,7 @@ class MLA {
800
  /*
801
  * Optional - limit width of the views list
802
  */
803
- $view_width = MLAOptions::mla_get_option( 'table_views_width' );
804
  if ( !empty( $view_width ) ) {
805
  if ( is_numeric( $view_width ) )
806
  $view_width .= 'px';
@@ -881,18 +935,25 @@ class MLA {
881
  */
882
  echo sprintf( '<input type="hidden" name="page" value="%1$s" />', $_REQUEST['page'] ) . "\r\n";
883
 
884
- if ( isset( $_REQUEST['detached'] ) ) // Unattached items
885
- echo sprintf( '<input type="hidden" name="detached" value="%1$s" />', $_REQUEST['detached'] ) . "\r\n";
886
-
887
- if ( isset( $_REQUEST['status'] ) ) // Trash items
888
- echo sprintf( '<input type="hidden" name="status" value="%1$s" />', $_REQUEST['status'] ) . "\r\n";
889
-
890
- if ( isset( $_REQUEST['post_mime_type'] ) ) // e.g., Images
891
- echo sprintf( '<input type="hidden" name="post_mime_type" value="%1$s" />', $_REQUEST['post_mime_type'] ) . "\r\n";
892
-
893
- if ( isset( $_REQUEST['m'] ) ) // filter by date
894
- echo sprintf( '<input type="hidden" name="m" value="%1$s" />', $_REQUEST['m'] ) . "\r\n";
895
-
 
 
 
 
 
 
 
896
  // Now we can render the completed list table
897
  $MLAListTable->display();
898
  echo "</form><!-- id=mla-filter -->\r\n";
@@ -937,10 +998,9 @@ class MLA {
937
  */
938
  $custom_fields = array();
939
  foreach (MLAOptions::mla_custom_field_support( 'quick_edit' ) as $slug => $label ) {
940
- $field_name = $slug;
941
- if ( isset( $_REQUEST[ $field_name ] ) ) {
942
- $custom_fields[ $label ] = $_REQUEST[ $field_name ];
943
- unset ( $_REQUEST[ $field_name ] );
944
  }
945
  }
946
 
38
  *
39
  * @var string
40
  */
41
+ const CURRENT_MLA_VERSION = '1.50';
42
 
43
  /**
44
  * Slug for registering and enqueueing plugin style sheet
308
  * @return void
309
  */
310
  public static function mla_admin_menu_action( ) {
311
+ if ( 'checked' != MLAOptions::mla_get_option( MLAOptions::MLA_SCREEN_DISPLAY_LIBRARY ) )
312
+ remove_submenu_page( 'upload.php', 'upload.php' );
313
+
314
+ $page_title = MLAOptions::mla_get_option( MLAOptions::MLA_SCREEN_PAGE_TITLE );
315
+ $menu_title = MLAOptions::mla_get_option( MLAOptions::MLA_SCREEN_MENU_TITLE );
316
+ $hook = add_submenu_page( 'upload.php', $page_title, $menu_title, 'upload_files', self::ADMIN_PAGE_SLUG, 'MLA::mla_render_admin_page' );
317
  add_action( 'load-' . $hook, 'MLA::mla_add_menu_options' );
318
  add_action( 'load-' . $hook, 'MLA::mla_add_help_tab' );
319
  self::$page_hooks[ $hook ] = $hook;
342
  add_action( 'admin_head-edit-tags.php', 'MLA::mla_add_help_tab' );
343
  }
344
 
345
+ if ( $menu_position = (integer) MLAOptions::mla_get_option( MLAOptions::MLA_SCREEN_ORDER ) ) {
346
+ global $submenu_file, $submenu;
347
+ foreach ( $submenu['upload.php'] as $menu_order => $menu_item ) {
348
+ if ( self::ADMIN_PAGE_SLUG == $menu_item[2] ) {
349
+ $submenu['upload.php'][$menu_position] = $menu_item;
350
+ unset( $submenu['upload.php'][$menu_order] );
351
+ ksort( $submenu['upload.php'] );
352
+ break;
353
+ }
354
+ }
355
+ }
356
+
357
  add_filter( 'parent_file', 'MLA::mla_parent_file_filter', 10, 1 );
358
  }
359
 
557
  public static function mla_parent_file_filter( $parent_file ) {
558
  global $submenu_file, $submenu;
559
 
560
+ /*
561
+ * Make sure the "Assistant" submenu line is bolded if it's the default
562
+ */
563
+ if ( 'upload.php' == $parent_file && NULL == $submenu_file ) {
564
+ reset( $submenu['upload.php'] );
565
+ $current = current( $submenu['upload.php'] );
566
+ if ( self::ADMIN_PAGE_SLUG == $current[2] )
567
+ $submenu_file = self::ADMIN_PAGE_SLUG;
568
+ }
569
+
570
  /*
571
  * Make sure the "Assistant" submenu line is bolded when we go to the Edit Media page
572
  */
622
  $_GET['orderby'] = $_REQUEST['orderby'];
623
 
624
  $bulk_action = self::_current_bulk_action();
625
+
626
+ $page_title = MLAOptions::mla_get_option( MLAOptions::MLA_SCREEN_PAGE_TITLE );
627
  echo "<div class=\"wrap\">\r\n";
628
  echo "<div id=\"icon-upload\" class=\"icon32\"><br/></div>\r\n";
629
+ echo "<h2>{$page_title}"; // trailing </h2> is action-specific
630
 
631
  if ( !current_user_can( 'upload_files' ) ) {
632
  echo " - Error</h2>\r\n";
654
  * Process bulk actions that affect an array of items
655
  */
656
  if ( $bulk_action && ( $bulk_action != 'none' ) ) {
 
657
 
658
  if ( isset( $_REQUEST['cb_attachment'] ) ) {
659
  foreach ( $_REQUEST['cb_attachment'] as $index => $post_id ) {
660
  switch ( $bulk_action ) {
 
 
661
  case 'delete':
662
  $item_content = self::_delete_single_item( $post_id );
663
  break;
678
  }
679
 
680
  /*
681
+ * Copy the edit form contents to $new_data
682
  */
683
  $new_data = array() ;
684
  if ( isset( $_REQUEST['post_parent'] ) ) {
685
  if ( is_numeric( $_REQUEST['post_parent'] ) )
686
  $new_data['post_parent'] = $_REQUEST['post_parent'];
 
 
687
  }
688
 
689
  if ( isset( $_REQUEST['post_author'] ) ) {
690
  if ( -1 != $_REQUEST['post_author'] )
691
  $new_data['post_author'] = $_REQUEST['post_author'];
 
 
692
  }
693
 
694
  /*
696
  */
697
  $custom_fields = array();
698
  foreach (MLAOptions::mla_custom_field_support( 'bulk_edit' ) as $slug => $label ) {
699
+ if ( isset( $_REQUEST[ $slug ] ) ) {
700
+ if ( ! empty( $_REQUEST[ $slug ] ) )
701
+ $custom_fields[ $label ] = $_REQUEST[ $slug ];
 
 
 
702
  }
703
  } // foreach
704
 
724
  $page_content['message'] .= $item_content['message'] . '<br>';
725
  } // foreach cb_attachment
726
 
727
+ unset( $_REQUEST['post_parent'] );
728
+ unset( $_REQUEST['post_author'] );
729
  unset( $_REQUEST['tax_input'] );
730
  unset( $_REQUEST['tax_action'] );
731
+
732
+ foreach (MLAOptions::mla_custom_field_support( 'bulk_edit' ) as $slug => $label )
733
+ unset( $_REQUEST[ $slug ] );
734
+
735
  unset( $_REQUEST['cb_attachment'] );
736
  } // isset cb_attachment
737
  else {
743
  unset( $_REQUEST['action2'] );
744
  } // $bulk_action
745
 
746
+ if ( isset( $_REQUEST['clear_filter_by'] ) ) {
747
+ unset( $_REQUEST['heading_suffix'] );
748
+ unset( $_REQUEST['parent'] );
749
+ unset( $_REQUEST['author'] );
750
+ unset( $_REQUEST['mla-tax'] );
751
+ unset( $_REQUEST['mla-term'] );
752
+ unset( $_REQUEST['mla-metakey'] );
753
+ unset( $_REQUEST['mla-metavalue'] );
754
+ }
755
+
756
+ if ( isset( $_REQUEST['delete_all'] ) ) {
757
+ global $wpdb;
758
+
759
+ $ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", 'attachment', 'trash' ) );
760
+ $delete_count = 0;
761
+ foreach ( $ids as $post_id ) {
762
+ $item_content = self::_delete_single_item( $post_id );
763
+
764
+ if ( false !== strpos( $item_content['message'], 'ERROR:' ) )
765
+ $page_content['message'] .= $item_content['message'] . '<br>';
766
+ else
767
+ $delete_count++;
768
+ }
769
+
770
+ if ( $delete_count )
771
+ $page_content['message'] .= sprintf( _nx( '%s item deleted.', '%s items deleted.', $delete_count, 'deleted items' ), number_format_i18n( $delete_count ) );
772
+ else
773
+ $page_content['message'] .= 'No items deleted.';
774
+ }
775
+
776
  /*
777
  * Process row-level actions that affect a single item
778
  */
854
  /*
855
  * Optional - limit width of the views list
856
  */
857
+ $view_width = MLAOptions::mla_get_option( MLAOptions::MLA_TABLE_VIEWS_WIDTH );
858
  if ( !empty( $view_width ) ) {
859
  if ( is_numeric( $view_width ) )
860
  $view_width .= 'px';
935
  */
936
  echo sprintf( '<input type="hidden" name="page" value="%1$s" />', $_REQUEST['page'] ) . "\r\n";
937
 
938
+ $view_arguments = MLA_List_Table::mla_submenu_arguments();
939
+ foreach ( $view_arguments as $key => $value ) {
940
+ if ( 'meta_query' == $key )
941
+ $value = stripslashes( $_REQUEST['meta_query'] );
942
+
943
+ /*
944
+ * Search box elements are already set up in the above "search-box"
945
+ */
946
+ if ( in_array( $key, array( 's', 'mla_search_connector', 'mla_search_fields' ) ) )
947
+ continue;
948
+
949
+ if ( is_array( $value ) ) {
950
+ foreach ( $value as $element_key => $element_value )
951
+ echo sprintf( '<input type="hidden" name="%1$s[%2$s]" value="%3$s" />', $key, $element_key, esc_attr( $element_value ) ) . "\r\n";
952
+ }
953
+ else
954
+ echo sprintf( '<input type="hidden" name="%1$s" value="%2$s" />', $key, esc_attr( $value ) ) . "\r\n";
955
+ }
956
+
957
  // Now we can render the completed list table
958
  $MLAListTable->display();
959
  echo "</form><!-- id=mla-filter -->\r\n";
998
  */
999
  $custom_fields = array();
1000
  foreach (MLAOptions::mla_custom_field_support( 'quick_edit' ) as $slug => $label ) {
1001
+ if ( isset( $_REQUEST[ $slug ] ) ) {
1002
+ $custom_fields[ $label ] = $_REQUEST[ $slug ];
1003
+ unset ( $_REQUEST[ $slug ] );
 
1004
  }
1005
  }
1006
 
includes/class-mla-mime-types.php CHANGED
@@ -135,7 +135,7 @@ class MLAMime {
135
  self::$mla_icon_type_associations = array();
136
  $icon_type = '.bad.value.'; // prime the pump
137
  $extensions = array ( 'xxx' );
138
- foreach( $pairs as $this_extension => $this_type ) {
139
  if ( $this_type != $icon_type ) {
140
  self::$mla_icon_type_associations[ $icon_type ] = $extensions;
141
  $extensions = array( $this_extension );
@@ -214,7 +214,7 @@ class MLAMime {
214
  $items = array();
215
  $extensions = '.bad.value.'; // prime the pump
216
  $mime_type = '';
217
- foreach( $pairs as $this_extension => $this_type ) {
218
  if ( $this_type != $mime_type ) {
219
  $items[ $extensions ] = $mime_type;
220
  $extensions = $this_extension;
@@ -273,7 +273,7 @@ class MLAMime {
273
  $items = array();
274
  $extensions = '.bad.value.'; // prime the pump
275
  $mime_type = '';
276
- foreach( $pairs as $this_extension => $this_type ) {
277
  if ( $this_type != $mime_type ) {
278
  $items[ $extensions ] = $mime_type;
279
  $extensions = $this_extension;
@@ -730,7 +730,7 @@ class MLAMime {
730
  /*
731
  * Load and number the entries
732
  */
733
- foreach( $mla_types as $slug => $value ) {
734
  self::$mla_post_mime_templates[ $slug ] = $value;
735
  self::$mla_post_mime_templates[ $slug ]['post_ID'] = ++self::$mla_post_mime_highest_ID;
736
  }
@@ -815,7 +815,7 @@ class MLAMime {
815
  }
816
 
817
  /**
818
- * Analyze a Library View/Post MIME Type specification, returning an array of the place holders it contains
819
  *
820
  * @since 1.40
821
  *
@@ -1625,7 +1625,7 @@ class MLAMime {
1625
  $first_time_called = true;
1626
  $mla_upload_mimes = array ( 'custom' => array(), 'disabled' => array(), 'description' => array(), 'icon_type' => array() );
1627
  self::$disable_mla_filtering = true;
1628
- foreach( get_allowed_mime_types() as $key => $value )
1629
  if ( ! isset( $core_types[ $key ]) )
1630
  $custom_types[ $key ] = $value;
1631
  self::$disable_mla_filtering = false;
@@ -1659,7 +1659,7 @@ class MLAMime {
1659
  $template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/mla-default-mime-types.tpl' );
1660
  if ( isset( $template_array['mla-mime-types'] ) ) {
1661
  $mla_mime_types = preg_split('/[\r\n]+/', $template_array['mla-mime-types'] );
1662
- foreach( $mla_mime_types as $mla_type ) {
1663
  $array = explode(',', $mla_type );
1664
  $key = strtolower( $array[0] );
1665
  self::$mla_upload_mime_templates[ $key ] = array(
@@ -2354,7 +2354,7 @@ class MLAMime {
2354
  $mla_mime_types = preg_split('/[\r\n]+/', $template_array['mla-optional-mime-types'] );
2355
 
2356
  $ID = 0;
2357
- foreach( $mla_mime_types as $mla_type ) {
2358
  $array = explode(',', $mla_type );
2359
  $slug = $array[0];
2360
  if ( $matched_type = self::mla_get_upload_mime( $slug ) ) {
135
  self::$mla_icon_type_associations = array();
136
  $icon_type = '.bad.value.'; // prime the pump
137
  $extensions = array ( 'xxx' );
138
+ foreach ( $pairs as $this_extension => $this_type ) {
139
  if ( $this_type != $icon_type ) {
140
  self::$mla_icon_type_associations[ $icon_type ] = $extensions;
141
  $extensions = array( $this_extension );
214
  $items = array();
215
  $extensions = '.bad.value.'; // prime the pump
216
  $mime_type = '';
217
+ foreach ( $pairs as $this_extension => $this_type ) {
218
  if ( $this_type != $mime_type ) {
219
  $items[ $extensions ] = $mime_type;
220
  $extensions = $this_extension;
273
  $items = array();
274
  $extensions = '.bad.value.'; // prime the pump
275
  $mime_type = '';
276
+ foreach ( $pairs as $this_extension => $this_type ) {
277
  if ( $this_type != $mime_type ) {
278
  $items[ $extensions ] = $mime_type;
279
  $extensions = $this_extension;
730
  /*
731
  * Load and number the entries
732
  */
733
+ foreach ( $mla_types as $slug => $value ) {
734
  self::$mla_post_mime_templates[ $slug ] = $value;
735
  self::$mla_post_mime_templates[ $slug ]['post_ID'] = ++self::$mla_post_mime_highest_ID;
736
  }
815
  }
816
 
817
  /**
818
+ * Analyze a Library View/Post MIME Type specification, returning an array of the placeholders it contains
819
  *
820
  * @since 1.40
821
  *
1625
  $first_time_called = true;
1626
  $mla_upload_mimes = array ( 'custom' => array(), 'disabled' => array(), 'description' => array(), 'icon_type' => array() );
1627
  self::$disable_mla_filtering = true;
1628
+ foreach ( get_allowed_mime_types() as $key => $value )
1629
  if ( ! isset( $core_types[ $key ]) )
1630
  $custom_types[ $key ] = $value;
1631
  self::$disable_mla_filtering = false;
1659
  $template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/mla-default-mime-types.tpl' );
1660
  if ( isset( $template_array['mla-mime-types'] ) ) {
1661
  $mla_mime_types = preg_split('/[\r\n]+/', $template_array['mla-mime-types'] );
1662
+ foreach ( $mla_mime_types as $mla_type ) {
1663
  $array = explode(',', $mla_type );
1664
  $key = strtolower( $array[0] );
1665
  self::$mla_upload_mime_templates[ $key ] = array(
2354
  $mla_mime_types = preg_split('/[\r\n]+/', $template_array['mla-optional-mime-types'] );
2355
 
2356
  $ID = 0;
2357
+ foreach ( $mla_mime_types as $mla_type ) {
2358
  $array = explode(',', $mla_type );
2359
  $slug = $array[0];
2360
  if ( $matched_type = self::mla_get_upload_mime( $slug ) ) {
includes/class-mla-objects.php CHANGED
@@ -88,7 +88,7 @@ class MLAObjects {
88
  )
89
  );
90
  }
91
-
92
  $taxonomies = get_taxonomies( array ( 'show_ui' => true ), 'names' );
93
  foreach ( $taxonomies as $tax_name ) {
94
  if ( MLAOptions::mla_taxonomy_support( $tax_name ) ) {
88
  )
89
  );
90
  }
91
+
92
  $taxonomies = get_taxonomies( array ( 'show_ui' => true ), 'names' );
93
  foreach ( $taxonomies as $tax_name ) {
94
  if ( MLAOptions::mla_taxonomy_support( $tax_name ) ) {
includes/class-mla-options.php CHANGED
@@ -21,6 +21,11 @@ class MLAOptions {
21
  */
22
  const MLA_VERSION_OPTION = 'current_version';
23
 
 
 
 
 
 
24
  /**
25
  * Provides a unique name for a database tuning option
26
  */
@@ -41,6 +46,61 @@ class MLAOptions {
41
  */
42
  const MLA_MLA_GALLERY_IN_TUNING = 'mla_gallery_in_tuning';
43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  /**
45
  * Provides a unique name for the Custom Field "new rule" key
46
  */
@@ -197,19 +257,19 @@ class MLAOptions {
197
  'std' => 'checked',
198
  'help' => 'Check this option to add support for Attachment Tags.'),
199
 
200
- 'where_used_heading' =>
201
  array('tab' => 'general',
202
  'name' => 'Where-used Reporting',
203
  'type' => 'header'),
204
 
205
- 'exclude_revisions' =>
206
  array('tab' => 'general',
207
  'name' => 'Exclude Revisions',
208
  'type' => 'checkbox',
209
  'std' => 'checked',
210
  'help' => 'Check this option to exclude revisions from where-used reporting.'),
211
 
212
- 'where_used_subheading' =>
213
  array('tab' => 'general',
214
  'name' => 'Where-used database access tuning',
215
  'type' => 'subheader'),
@@ -250,12 +310,12 @@ class MLAOptions {
250
  'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'),
251
  'help' => 'Search database posts and pages for [mla_gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'),
252
 
253
- 'taxonomy_heading' =>
254
  array('tab' => 'general',
255
  'name' => 'Taxonomy Support',
256
  'type' => 'header'),
257
 
258
- 'taxonomy_support' =>
259
  array('tab' => 'general',
260
  'help' => 'Check the "Support" box to add the taxonomy to the Assistant and the Edit Media screen.<br>Check the "Inline Edit" box to display the taxonomy in the Quick Edit and Bulk Edit areas.<br>Use the "List Filter" option to select the taxonomy on which to filter the Assistant table listing.',
261
  'std' => array (
@@ -282,12 +342,53 @@ class MLAOptions {
282
  'std' => 'checked',
283
  'help' => 'Check this option to replace the Posts column with the Attachments Column.'),
284
 
285
- 'orderby_heading' =>
286
  array('tab' => 'general',
287
- 'name' => 'Media/Assistant Table Defaults',
288
  'type' => 'header'),
289
 
290
- 'default_orderby' =>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
291
  array('tab' => 'general',
292
  'name' => 'Order By',
293
  'type' => 'select',
@@ -296,7 +397,7 @@ class MLAOptions {
296
  'texts' => array('None', 'Title/Name'),
297
  'help' => 'Select the column for the sort order of the Assistant table listing.'),
298
 
299
- 'default_order' =>
300
  array('tab' => 'general',
301
  'name' => 'Order',
302
  'type' => 'radio',
@@ -305,7 +406,7 @@ class MLAOptions {
305
  'texts' => array('Ascending', 'Descending'),
306
  'help' => 'Choose the sort order.'),
307
 
308
- 'table_views_width' =>
309
  array('tab' => 'general',
310
  'name' => 'Views Width',
311
  'type' => 'text',
@@ -313,7 +414,27 @@ class MLAOptions {
313
  'size' => 10,
314
  'help' => 'Enter the width for the views list, in pixels (px) or percent (%)'),
315
 
316
- 'media_modal_heading' =>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
317
  array('tab' => 'general',
318
  'name' => 'Media Manager Enhancements',
319
  'type' => 'header'),
@@ -353,7 +474,7 @@ class MLAOptions {
353
  'std' => 'checked',
354
  'help' => 'Check this option to enable search box enhancements.'),
355
 
356
- 'template_heading' =>
357
  array('tab' => 'mla_gallery',
358
  'name' => 'Default [mla_gallery] Templates and Settings',
359
  'type' => 'header'),
@@ -943,7 +1064,7 @@ class MLAOptions {
943
  * string if $tax_name is '' and $support_type is 'filter', returns the taxonomy to filter by
944
  */
945
  public static function mla_taxonomy_support($tax_name, $support_type = 'support') {
946
- $tax_options = MLAOptions::mla_get_option( 'taxonomy_support' );
947
 
948
  switch ( $support_type ) {
949
  case 'support':
@@ -1169,7 +1290,7 @@ class MLAOptions {
1169
  public static function mla_custom_field_option_value( $slug ) {
1170
  $option_values = self::mla_get_option( 'custom_field_mapping' );
1171
 
1172
- foreach( $option_values as $key => $value ) {
1173
  if ( $slug == 'c_' . sanitize_title( $key ) )
1174
  return $value;
1175
  }
@@ -1190,7 +1311,7 @@ class MLAOptions {
1190
  $option_values = self::mla_get_option( 'custom_field_mapping' );
1191
  $results = array();
1192
 
1193
- foreach( $option_values as $key => $value ) {
1194
  $slug = 'c_' . sanitize_title( $key );
1195
 
1196
  switch( $support_type ) {
@@ -1260,7 +1381,7 @@ class MLAOptions {
1260
  $results['hwstring_small'] = isset( $attachment_metadata['hwstring_small'] ) ? $attachment_metadata['hwstring_small'] : '';
1261
 
1262
  if ( isset( $attachment_metadata['image_meta'] ) ) {
1263
- foreach( $attachment_metadata['image_meta'] as $key => $value )
1264
  $results[ $key ] = $value;
1265
  }
1266
  }
@@ -1443,7 +1564,35 @@ class MLAOptions {
1443
  switch( $data_source ) {
1444
  case 'meta':
1445
  $attachment_metadata = isset( $wp_attachment_metadata[ $post_id ]->meta_value ) ? unserialize( $wp_attachment_metadata[ $post_id ]->meta_value ) : array();
1446
- $result = MLAData::mla_find_array_element( $data_value['meta_name'], $attachment_metadata, $data_value['option'], $data_value['keep_existing'] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1447
  break;
1448
  case 'absolute_path':
1449
  case 'absolute_file_name':
@@ -1493,21 +1642,21 @@ class MLAOptions {
1493
  break;
1494
  case 'size_keys':
1495
  $result = array();
1496
- foreach( $file_info['sizes'] as $key => $value )
1497
  $result[] = $key;
1498
 
1499
  $result = self::_evaluate_array_result( $result, $data_value['option'], $data_value['keep_existing'] );
1500
  break;
1501
  case 'size_names':
1502
  $result = array();
1503
- foreach( $file_info['sizes'] as $key => $value )
1504
  $result[] = $value['file'];
1505
 
1506
  $result = self::_evaluate_array_result( $result, $data_value['option'], $data_value['keep_existing'] );
1507
  break;
1508
  case 'size_bytes':
1509
  $result = array();
1510
- foreach( $file_info['sizes'] as $key => $value ) {
1511
  $filesize = @ filesize( $file_info['absolute_path_raw'] . $value['file'] );
1512
  if ( false === $filesize )
1513
  $result[] = '?';
@@ -1528,7 +1677,7 @@ class MLAOptions {
1528
  break;
1529
  case 'size_pixels':
1530
  $result = array();
1531
- foreach( $file_info['sizes'] as $key => $value ) {
1532
  $pixels = absint( (int) $value['width'] * (int) $value['height'] );
1533
 
1534
  switch( $data_value['format'] ) {
@@ -1546,7 +1695,7 @@ class MLAOptions {
1546
  break;
1547
  case 'size_dimensions':
1548
  $result = array();
1549
- foreach( $file_info['sizes'] as $key => $value ) {
1550
  $result[] = $value['width'] . 'x' . $value['height'];
1551
  }
1552
 
@@ -1719,7 +1868,7 @@ class MLAOptions {
1719
  $updates = array();
1720
  $custom_updates = array();
1721
 
1722
- foreach( $settings as $new_key => $new_value ) {
1723
  if ( 'none' == $new_value['data_source'] )
1724
  continue;
1725
 
@@ -1893,12 +2042,19 @@ class MLAOptions {
1893
  );
1894
  $custom_field_options .= MLAData::mla_parse_template( $option_template, $option_values );
1895
 
 
 
 
 
 
 
 
1896
  $intermediate_sizes = get_intermediate_image_sizes();
1897
  foreach ( self::$custom_field_data_sources as $value ) {
1898
  $size_pos = strpos( $value, '[size]' );
1899
  if ( $size_pos ) {
1900
  $root_value = substr( $value, 0, $size_pos );
1901
- foreach( $intermediate_sizes as $size_name ) {
1902
  $value = $root_value . '[' . $size_name . ']';
1903
  $option_values = array (
1904
  'selected' => ( $value == $selection ) ? 'selected="selected"' : '',
@@ -2007,7 +2163,8 @@ class MLAOptions {
2007
  if ( $old_values['data_source'] != $new_value['data_source'] ) {
2008
  $any_setting_changed = true;
2009
 
2010
- if ( 'meta' == $old_values['data_source'] ) {
 
2011
  $new_value['meta_name'] = '';
2012
  }
2013
 
@@ -2331,13 +2488,26 @@ class MLAOptions {
2331
  $settings = self::mla_get_option( 'iptc_exif_mapping' );
2332
 
2333
  if ( $update_all || ( 'iptc_exif_standard_mapping' == $category ) ) {
2334
- foreach( $settings['standard'] as $new_key => $new_value ) {
2335
  if ( 'none' == $new_value['iptc_value'] )
2336
  $iptc_value = '';
2337
  else
2338
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2339
 
2340
- $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
 
 
 
 
 
 
 
 
 
 
 
 
 
2341
  $keep_existing = (boolean) $new_value['keep_existing'];
2342
 
2343
  if ( $new_value['iptc_first'] )
@@ -2389,13 +2559,25 @@ class MLAOptions {
2389
  $tax_inputs = array();
2390
  $tax_actions = array();
2391
 
2392
- foreach( $settings['taxonomy'] as $new_key => $new_value ) {
2393
  if ( 'none' == $new_value['iptc_value'] )
2394
  $iptc_value = '';
2395
  else
2396
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2397
 
2398
- $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
 
 
 
 
 
 
 
 
 
 
 
 
2399
 
2400
  $tax_action = ( $new_value['keep_existing'] ) ? 'add' : 'replace';
2401
  $tax_parent = ( isset( $new_value['parent'] ) && (0 != (integer) $new_value['parent'] ) ) ? (integer) $new_value['parent'] : 0;
@@ -2417,7 +2599,7 @@ class MLAOptions {
2417
  $new_text = array( $new_text );
2418
 
2419
  $new_terms = array();
2420
- foreach( $new_text as $new_term ) {
2421
  $term_object = term_exists( $new_term, $new_key );
2422
  if ($term_object !== 0 && $term_object !== null)
2423
  $new_terms[] = $term_object['term_id'];
@@ -2445,14 +2627,26 @@ class MLAOptions {
2445
  if ( $update_all || ( 'iptc_exif_custom_mapping' == $category ) ) {
2446
  $custom_updates = array();
2447
 
2448
- foreach( $settings['custom'] as $new_key => $new_value ) {
2449
  if ( 'none' == $new_value['iptc_value'] )
2450
  $iptc_value = '';
2451
  else
2452
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2453
 
2454
- $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
2455
-
 
 
 
 
 
 
 
 
 
 
 
 
2456
  if ( $new_value['iptc_first'] )
2457
  if ( ! empty( $iptc_value ) )
2458
  $new_text = $iptc_value;
@@ -2875,11 +3069,11 @@ class MLAOptions {
2875
  LIMIT $limit" );
2876
 
2877
  if ( $keys ) {
2878
- foreach( $custom_field_mapping as $value )
2879
  if ( ! in_array( $value, $keys ) )
2880
  $keys[] = $value;
2881
 
2882
- foreach( $iptc_exif_mapping as $value )
2883
  if ( ! in_array( $value, $keys ) )
2884
  $keys[] = $value;
2885
 
@@ -2918,7 +3112,7 @@ class MLAOptions {
2918
  'key' => $row_name,
2919
  'name' => $row_value['name'],
2920
  'iptc_field_options' => self::_compose_iptc_option_list( $row_value['iptc_value'] ),
2921
- 'exif_size' => 20,
2922
  'exif_text' => $row_value['exif_value'],
2923
  'iptc_selected' => '',
2924
  'exif_selected' => '',
@@ -2957,7 +3151,7 @@ class MLAOptions {
2957
  'name' => esc_html( $row_value->labels->name ),
2958
  'hierarchical' => (string) $row_value->hierarchical,
2959
  'iptc_field_options' => '',
2960
- 'exif_size' => 20,
2961
  'exif_text' => '',
2962
  'iptc_selected' => '',
2963
  'exif_selected' => '',
@@ -3036,7 +3230,7 @@ class MLAOptions {
3036
  'key' => $row_name,
3037
  'name' => $row_name,
3038
  'iptc_field_options' => '',
3039
- 'exif_size' => 20,
3040
  'exif_text' => '',
3041
  'iptc_selected' => '',
3042
  'exif_selected' => '',
@@ -3069,7 +3263,7 @@ class MLAOptions {
3069
  'key' => self::MLA_NEW_CUSTOM_RULE,
3070
  'field_name_options' => self::_compose_custom_field_option_list( 'none', $current_values['custom'] ),
3071
  'iptc_field_options' => self::_compose_iptc_option_list( 'none' ),
3072
- 'exif_size' => 20,
3073
  'exif_text' => '',
3074
  'iptc_selected' => 'selected="selected"',
3075
  'exif_selected' => '',
@@ -3087,7 +3281,7 @@ class MLAOptions {
3087
  'key' => self::MLA_NEW_CUSTOM_FIELD,
3088
  'field_name_size' => '24',
3089
  'iptc_field_options' => self::_compose_iptc_option_list( 'none' ),
3090
- 'exif_size' => 20,
3091
  'exif_text' => '',
3092
  'iptc_selected' => 'selected="selected"',
3093
  'exif_selected' => '',
21
  */
22
  const MLA_VERSION_OPTION = 'current_version';
23
 
24
+ /**
25
+ * Provides a unique name for the exclude revisions option
26
+ */
27
+ const MLA_EXCLUDE_REVISIONS = 'exclude_revisions';
28
+
29
  /**
30
  * Provides a unique name for a database tuning option
31
  */
46
  */
47
  const MLA_MLA_GALLERY_IN_TUNING = 'mla_gallery_in_tuning';
48
 
49
+ /**
50
+ * Provides a unique name for the taxonomy support option
51
+ */
52
+ const MLA_TAXONOMY_SUPPORT = 'taxonomy_support';
53
+
54
+ /**
55
+ * Provides a unique name for the admin screen page title option
56
+ */
57
+ const MLA_SCREEN_PAGE_TITLE = 'admin_screen_page_title';
58
+
59
+ /**
60
+ * Provides a unique name for the admin screen menu title option
61
+ */
62
+ const MLA_SCREEN_MENU_TITLE = 'admin_screen_menu_title';
63
+
64
+ /**
65
+ * Provides a unique name for the admin screen menu order option
66
+ */
67
+ const MLA_SCREEN_ORDER = 'admin_screen_menu_order';
68
+
69
+ /**
70
+ * Provides a unique name for the admin screen remove Media/Library option
71
+ */
72
+ const MLA_SCREEN_DISPLAY_LIBRARY = 'admin_screen_display_default';
73
+
74
+ /**
75
+ * Provides a unique name for the default orderby option
76
+ */
77
+ const MLA_DEFAULT_ORDERBY = 'default_orderby';
78
+
79
+ /**
80
+ * Provides a unique name for the default order option
81
+ */
82
+ const MLA_DEFAULT_ORDER = 'default_order';
83
+
84
+ /**
85
+ * Provides a unique name for the default table views width option
86
+ */
87
+ const MLA_TABLE_VIEWS_WIDTH = 'table_views_width';
88
+
89
+ /**
90
+ * Provides a unique name for the taxonomy filter maximum depth option
91
+ */
92
+ const MLA_TAXONOMY_FILTER_DEPTH = 'taxonomy_filter_depth';
93
+
94
+ /**
95
+ * Provides a unique name for the taxonomy filter maximum depth option
96
+ */
97
+ const MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN = 'taxonomy_filter_include_children';
98
+
99
+ /**
100
+ * Provides a "size" attribute value for the EXIF/Template Value field
101
+ */
102
+ const MLA_EXIF_SIZE = 30;
103
+
104
  /**
105
  * Provides a unique name for the Custom Field "new rule" key
106
  */
257
  'std' => 'checked',
258
  'help' => 'Check this option to add support for Attachment Tags.'),
259
 
260
+ 'where_used_header' =>
261
  array('tab' => 'general',
262
  'name' => 'Where-used Reporting',
263
  'type' => 'header'),
264
 
265
+ self::MLA_EXCLUDE_REVISIONS =>
266
  array('tab' => 'general',
267
  'name' => 'Exclude Revisions',
268
  'type' => 'checkbox',
269
  'std' => 'checked',
270
  'help' => 'Check this option to exclude revisions from where-used reporting.'),
271
 
272
+ 'where_used_subheader' =>
273
  array('tab' => 'general',
274
  'name' => 'Where-used database access tuning',
275
  'type' => 'subheader'),
310
  'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'),
311
  'help' => 'Search database posts and pages for [mla_gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'),
312
 
313
+ 'taxonomy_header' =>
314
  array('tab' => 'general',
315
  'name' => 'Taxonomy Support',
316
  'type' => 'header'),
317
 
318
+ self::MLA_TAXONOMY_SUPPORT =>
319
  array('tab' => 'general',
320
  'help' => 'Check the "Support" box to add the taxonomy to the Assistant and the Edit Media screen.<br>Check the "Inline Edit" box to display the taxonomy in the Quick Edit and Bulk Edit areas.<br>Use the "List Filter" option to select the taxonomy on which to filter the Assistant table listing.',
321
  'std' => array (
342
  'std' => 'checked',
343
  'help' => 'Check this option to replace the Posts column with the Attachments Column.'),
344
 
345
+ 'media_assistant_header' =>
346
  array('tab' => 'general',
347
+ 'name' => 'Media/Assistant Screen Options',
348
  'type' => 'header'),
349
 
350
+ 'admin_sidebar_subheader' =>
351
+ array('tab' => 'general',
352
+ 'name' => 'Admin Menu Options',
353
+ 'type' => 'subheader'),
354
+
355
+ self::MLA_SCREEN_PAGE_TITLE =>
356
+ array('tab' => 'general',
357
+ 'name' => 'Page Title',
358
+ 'type' => 'text',
359
+ 'std' => 'Media Library Assistant',
360
+ 'size' => 40,
361
+ 'help' => 'Enter the title for the Media/Assistant submenu page'),
362
+
363
+ self::MLA_SCREEN_MENU_TITLE =>
364
+ array('tab' => 'general',
365
+ 'name' => 'Menu Title',
366
+ 'type' => 'text',
367
+ 'std' => 'Assistant',
368
+ 'size' => 20,
369
+ 'help' => 'Enter the title for the Media/Assistant submenu entry'),
370
+
371
+ self::MLA_SCREEN_ORDER =>
372
+ array('tab' => 'general',
373
+ 'name' => 'Submenu Order',
374
+ 'type' => 'text',
375
+ 'std' => '0',
376
+ 'size' => 2,
377
+ 'help' => 'Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;&nbsp;6-9 = after "Library",&nbsp;&nbsp;&nbsp;&nbsp;11-16 = after "Add New"'),
378
+
379
+ self::MLA_SCREEN_DISPLAY_LIBRARY =>
380
+ array('tab' => 'general',
381
+ 'name' => 'Display Media/Library',
382
+ 'type' => 'checkbox',
383
+ 'std' => 'checked',
384
+ 'help' => 'Check/uncheck this option to display/remove the WordPress Media/Library submenu entry.'),
385
+
386
+ 'table_defaults_subheader' =>
387
+ array('tab' => 'general',
388
+ 'name' => 'Table Defaults',
389
+ 'type' => 'subheader'),
390
+
391
+ self::MLA_DEFAULT_ORDERBY =>
392
  array('tab' => 'general',
393
  'name' => 'Order By',
394
  'type' => 'select',
397
  'texts' => array('None', 'Title/Name'),
398
  'help' => 'Select the column for the sort order of the Assistant table listing.'),
399
 
400
+ self::MLA_DEFAULT_ORDER =>
401
  array('tab' => 'general',
402
  'name' => 'Order',
403
  'type' => 'radio',
406
  'texts' => array('Ascending', 'Descending'),
407
  'help' => 'Choose the sort order.'),
408
 
409
+ self::MLA_TABLE_VIEWS_WIDTH =>
410
  array('tab' => 'general',
411
  'name' => 'Views Width',
412
  'type' => 'text',
414
  'size' => 10,
415
  'help' => 'Enter the width for the views list, in pixels (px) or percent (%)'),
416
 
417
+ 'taxonomy_filter_subheader' =>
418
+ array('tab' => 'general',
419
+ 'name' => 'Taxonomy Filter parameters',
420
+ 'type' => 'subheader'),
421
+
422
+ self::MLA_TAXONOMY_FILTER_DEPTH =>
423
+ array('tab' => 'general',
424
+ 'name' => 'Maximum Depth',
425
+ 'type' => 'text',
426
+ 'std' => '3',
427
+ 'size' => 2,
428
+ 'help' => 'Enter the number of levels displayed for hierarchial taxonomies; enter zero for no limit.'),
429
+
430
+ self::MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN =>
431
+ array('tab' => 'general',
432
+ 'name' => 'Include Children',
433
+ 'type' => 'checkbox',
434
+ 'std' => 'checked',
435
+ 'help' => 'Check/uncheck this option to include/exclude children for hierarchical taxonomies.'),
436
+
437
+ 'media_modal_header' =>
438
  array('tab' => 'general',
439
  'name' => 'Media Manager Enhancements',
440
  'type' => 'header'),
474
  'std' => 'checked',
475
  'help' => 'Check this option to enable search box enhancements.'),
476
 
477
+ 'template_header' =>
478
  array('tab' => 'mla_gallery',
479
  'name' => 'Default [mla_gallery] Templates and Settings',
480
  'type' => 'header'),
1064
  * string if $tax_name is '' and $support_type is 'filter', returns the taxonomy to filter by
1065
  */
1066
  public static function mla_taxonomy_support($tax_name, $support_type = 'support') {
1067
+ $tax_options = MLAOptions::mla_get_option( self::MLA_TAXONOMY_SUPPORT );
1068
 
1069
  switch ( $support_type ) {
1070
  case 'support':
1290
  public static function mla_custom_field_option_value( $slug ) {
1291
  $option_values = self::mla_get_option( 'custom_field_mapping' );
1292
 
1293
+ foreach ( $option_values as $key => $value ) {
1294
  if ( $slug == 'c_' . sanitize_title( $key ) )
1295
  return $value;
1296
  }
1311
  $option_values = self::mla_get_option( 'custom_field_mapping' );
1312
  $results = array();
1313
 
1314
+ foreach ( $option_values as $key => $value ) {
1315
  $slug = 'c_' . sanitize_title( $key );
1316
 
1317
  switch( $support_type ) {
1381
  $results['hwstring_small'] = isset( $attachment_metadata['hwstring_small'] ) ? $attachment_metadata['hwstring_small'] : '';
1382
 
1383
  if ( isset( $attachment_metadata['image_meta'] ) ) {
1384
+ foreach ( $attachment_metadata['image_meta'] as $key => $value )
1385
  $results[ $key ] = $value;
1386
  }
1387
  }
1564
  switch( $data_source ) {
1565
  case 'meta':
1566
  $attachment_metadata = isset( $wp_attachment_metadata[ $post_id ]->meta_value ) ? unserialize( $wp_attachment_metadata[ $post_id ]->meta_value ) : array();
1567
+ $result = MLAData::mla_find_array_element( $data_value['meta_name'], $attachment_metadata, $data_value['option'], $data_value['keep_existing'] );
1568
+ break;
1569
+ case 'template':
1570
+ if ( in_array( $data_value['option'], array ( 'export', 'array', 'multi' ) ) )
1571
+ $default_option = 'array';
1572
+ else
1573
+ $default_option = 'text';
1574
+
1575
+ $item_values = array();
1576
+ $placeholders = MLAData::mla_get_template_placeholders( $data_value['meta_name'], $default_option );
1577
+ foreach ( $placeholders as $key => $placeholder ) {
1578
+ if ( empty( $placeholder['prefix'] ) ) {
1579
+ $field_value = $data_value;
1580
+ $field_value['data_source'] = $placeholder['value'];
1581
+ $field_value['option'] = $placeholder['option'];
1582
+ $item_values[ $key ] = self::_evaluate_data_source( $post_id, $category, $field_value, $attachment_metadata );
1583
+ } // Data Source
1584
+ } // foreach placeholder
1585
+
1586
+ $template = '[+template:' . $data_value['meta_name'] . '+]';
1587
+ $item_values = MLAData::mla_expand_field_level_parameters( $template, NULL, $item_values, $post_id, $data_value['keep_existing'], $default_option );
1588
+
1589
+ if ( 'array' == $default_option ) {
1590
+ $result = MLAData::mla_parse_array_template( $template, $item_values );
1591
+ $result = self::_evaluate_array_result( $result, $data_value['option'], $data_value['keep_existing'] );
1592
+ }
1593
+ else
1594
+ $result = MLAData::mla_parse_template( $template, $item_values );
1595
+
1596
  break;
1597
  case 'absolute_path':
1598
  case 'absolute_file_name':
1642
  break;
1643
  case 'size_keys':
1644
  $result = array();
1645
+ foreach ( $file_info['sizes'] as $key => $value )
1646
  $result[] = $key;
1647
 
1648
  $result = self::_evaluate_array_result( $result, $data_value['option'], $data_value['keep_existing'] );
1649
  break;
1650
  case 'size_names':
1651
  $result = array();
1652
+ foreach ( $file_info['sizes'] as $key => $value )
1653
  $result[] = $value['file'];
1654
 
1655
  $result = self::_evaluate_array_result( $result, $data_value['option'], $data_value['keep_existing'] );
1656
  break;
1657
  case 'size_bytes':
1658
  $result = array();
1659
+ foreach ( $file_info['sizes'] as $key => $value ) {
1660
  $filesize = @ filesize( $file_info['absolute_path_raw'] . $value['file'] );
1661
  if ( false === $filesize )
1662
  $result[] = '?';
1677
  break;
1678
  case 'size_pixels':
1679
  $result = array();
1680
+ foreach ( $file_info['sizes'] as $key => $value ) {
1681
  $pixels = absint( (int) $value['width'] * (int) $value['height'] );
1682
 
1683
  switch( $data_value['format'] ) {
1695
  break;
1696
  case 'size_dimensions':
1697
  $result = array();
1698
+ foreach ( $file_info['sizes'] as $key => $value ) {
1699
  $result[] = $value['width'] . 'x' . $value['height'];
1700
  }
1701
 
1868
  $updates = array();
1869
  $custom_updates = array();
1870
 
1871
+ foreach ( $settings as $new_key => $new_value ) {
1872
  if ( 'none' == $new_value['data_source'] )
1873
  continue;
1874
 
2042
  );
2043
  $custom_field_options .= MLAData::mla_parse_template( $option_template, $option_values );
2044
 
2045
+ $option_values = array (
2046
+ 'selected' => ( 'template' == $selection ) ? 'selected="selected"' : '',
2047
+ 'value' => 'template',
2048
+ 'text' => ' -- Template (see below) -- '
2049
+ );
2050
+ $custom_field_options .= MLAData::mla_parse_template( $option_template, $option_values );
2051
+
2052
  $intermediate_sizes = get_intermediate_image_sizes();
2053
  foreach ( self::$custom_field_data_sources as $value ) {
2054
  $size_pos = strpos( $value, '[size]' );
2055
  if ( $size_pos ) {
2056
  $root_value = substr( $value, 0, $size_pos );
2057
+ foreach ( $intermediate_sizes as $size_name ) {
2058
  $value = $root_value . '[' . $size_name . ']';
2059
  $option_values = array (
2060
  'selected' => ( $value == $selection ) ? 'selected="selected"' : '',
2163
  if ( $old_values['data_source'] != $new_value['data_source'] ) {
2164
  $any_setting_changed = true;
2165
 
2166
+ // if ( 'meta' == $old_values['data_source'] ) {
2167
+ if ( in_array( $old_values['data_source'], array( 'meta', 'template' ) ) ) {
2168
  $new_value['meta_name'] = '';
2169
  }
2170
 
2488
  $settings = self::mla_get_option( 'iptc_exif_mapping' );
2489
 
2490
  if ( $update_all || ( 'iptc_exif_standard_mapping' == $category ) ) {
2491
+ foreach ( $settings['standard'] as $new_key => $new_value ) {
2492
  if ( 'none' == $new_value['iptc_value'] )
2493
  $iptc_value = '';
2494
  else
2495
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2496
 
2497
+ if ( 'template:' == substr( $new_value['exif_value'], 0, 9 ) ) {
2498
+ $data_value = array(
2499
+ 'name' => $new_key,
2500
+ 'data_source' => 'template',
2501
+ 'meta_name' => substr( $new_value['exif_value'], 9 ),
2502
+ 'keep_existing' => $new_value['keep_existing'],
2503
+ 'format' => 'native',
2504
+ 'option' => 'text' );
2505
+
2506
+ $exif_value = self::_evaluate_data_source( $post->ID, 'single_attachment_mapping', $data_value, $metadata );
2507
+ }
2508
+ else
2509
+ $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
2510
+
2511
  $keep_existing = (boolean) $new_value['keep_existing'];
2512
 
2513
  if ( $new_value['iptc_first'] )
2559
  $tax_inputs = array();
2560
  $tax_actions = array();
2561
 
2562
+ foreach ( $settings['taxonomy'] as $new_key => $new_value ) {
2563
  if ( 'none' == $new_value['iptc_value'] )
2564
  $iptc_value = '';
2565
  else
2566
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2567
 
2568
+ if ( 'template:' == substr( $new_value['exif_value'], 0, 9 ) ) {
2569
+ $data_value = array(
2570
+ 'name' => $new_key,
2571
+ 'data_source' => 'template',
2572
+ 'meta_name' => substr( $new_value['exif_value'], 9 ),
2573
+ 'keep_existing' => $new_value['keep_existing'],
2574
+ 'format' => 'native',
2575
+ 'option' => 'array' );
2576
+
2577
+ $exif_value = self::_evaluate_data_source( $post->ID, 'single_attachment_mapping', $data_value, $metadata );
2578
+ }
2579
+ else
2580
+ $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
2581
 
2582
  $tax_action = ( $new_value['keep_existing'] ) ? 'add' : 'replace';
2583
  $tax_parent = ( isset( $new_value['parent'] ) && (0 != (integer) $new_value['parent'] ) ) ? (integer) $new_value['parent'] : 0;
2599
  $new_text = array( $new_text );
2600
 
2601
  $new_terms = array();
2602
+ foreach ( $new_text as $new_term ) {
2603
  $term_object = term_exists( $new_term, $new_key );
2604
  if ($term_object !== 0 && $term_object !== null)
2605
  $new_terms[] = $term_object['term_id'];
2627
  if ( $update_all || ( 'iptc_exif_custom_mapping' == $category ) ) {
2628
  $custom_updates = array();
2629
 
2630
+ foreach ( $settings['custom'] as $new_key => $new_value ) {
2631
  if ( 'none' == $new_value['iptc_value'] )
2632
  $iptc_value = '';
2633
  else
2634
  $iptc_value = MLAData::mla_iptc_metadata_value( $new_value['iptc_value'], $metadata );
2635
 
2636
+ if ( 'template:' == substr( $new_value['exif_value'], 0, 9 ) ) {
2637
+ $data_value = array(
2638
+ 'name' => $new_key,
2639
+ 'data_source' => 'template',
2640
+ 'meta_name' => substr( $new_value['exif_value'], 9 ),
2641
+ 'keep_existing' => $new_value['keep_existing'],
2642
+ 'format' => 'native',
2643
+ 'option' => 'text' );
2644
+
2645
+ $exif_value = self::_evaluate_data_source( $post->ID, 'single_attachment_mapping', $data_value, $metadata );
2646
+ }
2647
+ else
2648
+ $exif_value = MLAData::mla_exif_metadata_value( $new_value['exif_value'], $metadata );
2649
+
2650
  if ( $new_value['iptc_first'] )
2651
  if ( ! empty( $iptc_value ) )
2652
  $new_text = $iptc_value;
3069
  LIMIT $limit" );
3070
 
3071
  if ( $keys ) {
3072
+ foreach ( $custom_field_mapping as $value )
3073
  if ( ! in_array( $value, $keys ) )
3074
  $keys[] = $value;
3075
 
3076
+ foreach ( $iptc_exif_mapping as $value )
3077
  if ( ! in_array( $value, $keys ) )
3078
  $keys[] = $value;
3079
 
3112
  'key' => $row_name,
3113
  'name' => $row_value['name'],
3114
  'iptc_field_options' => self::_compose_iptc_option_list( $row_value['iptc_value'] ),
3115
+ 'exif_size' => self::MLA_EXIF_SIZE,
3116
  'exif_text' => $row_value['exif_value'],
3117
  'iptc_selected' => '',
3118
  'exif_selected' => '',
3151
  'name' => esc_html( $row_value->labels->name ),
3152
  'hierarchical' => (string) $row_value->hierarchical,
3153
  'iptc_field_options' => '',
3154
+ 'exif_size' => self::MLA_EXIF_SIZE,
3155
  'exif_text' => '',
3156
  'iptc_selected' => '',
3157
  'exif_selected' => '',
3230
  'key' => $row_name,
3231
  'name' => $row_name,
3232
  'iptc_field_options' => '',
3233
+ 'exif_size' => self::MLA_EXIF_SIZE,
3234
  'exif_text' => '',
3235
  'iptc_selected' => '',
3236
  'exif_selected' => '',
3263
  'key' => self::MLA_NEW_CUSTOM_RULE,
3264
  'field_name_options' => self::_compose_custom_field_option_list( 'none', $current_values['custom'] ),
3265
  'iptc_field_options' => self::_compose_iptc_option_list( 'none' ),
3266
+ 'exif_size' => self::MLA_EXIF_SIZE,
3267
  'exif_text' => '',
3268
  'iptc_selected' => 'selected="selected"',
3269
  'exif_selected' => '',
3281
  'key' => self::MLA_NEW_CUSTOM_FIELD,
3282
  'field_name_size' => '24',
3283
  'iptc_field_options' => self::_compose_iptc_option_list( 'none' ),
3284
+ 'exif_size' => self::MLA_EXIF_SIZE,
3285
  'exif_text' => '',
3286
  'iptc_selected' => 'selected="selected"',
3287
  'exif_selected' => '',
includes/class-mla-settings.php CHANGED
@@ -98,7 +98,7 @@ class MLASettings {
98
  $category_option = MLAOptions::mla_get_option( 'attachment_category' );
99
  $tag_option = MLAOptions::mla_get_option( 'attachment_tag' );
100
  if ( ! ( ( 'checked' == $category_option ) && ( 'checked' == $tag_option ) ) ) {
101
- $tax_option = MLAOptions::mla_get_option( 'taxonomy_support' );
102
  if ( 'checked' != $category_option ) {
103
  if ( isset( $tax_option['tax_support']['attachment_category'] ) )
104
  unset( $tax_option['tax_support']['attachment_category'] );
@@ -122,7 +122,7 @@ class MLASettings {
122
  */
123
  $new_values = array();
124
 
125
- foreach( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
126
  $value['quick_edit'] = ( isset( $value['quick_edit'] ) && $value['quick_edit'] ) ? true : false;
127
  $value['bulk_edit'] = ( isset( $value['bulk_edit'] ) && $value['bulk_edit'] ) ? true : false;
128
  $new_values[ $key ] = $value;
@@ -137,7 +137,7 @@ class MLASettings {
137
  */
138
  $new_values = array();
139
 
140
- foreach( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
141
  $value['meta_name'] = isset( $value['meta_name'] ) ? $value['meta_name'] : '';
142
  $value['meta_single'] = ( isset( $value['meta_single'] ) && $value['meta_single'] ) ? true : false;
143
  $value['meta_export'] = ( isset( $value['meta_export'] ) && $value['meta_export'] ) ? true : false;
@@ -153,7 +153,7 @@ class MLASettings {
153
  */
154
  $new_values = array();
155
 
156
- foreach( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
157
  $value['no_null'] = ( isset( $value['no_null'] ) && $value['no_null'] ) ? true : false;
158
 
159
  if ( isset( $value['meta_single'] ) && $value['meta_single'] )
@@ -235,7 +235,7 @@ class MLASettings {
235
  error_log( 'DEBUG: mla_admin_page_access_denied_action $plugin_page = ' . var_export( $plugin_page, true), 0 );
236
  error_log( 'DEBUG: mla_admin_page_access_denied_action $_registered_pages = ' . var_export( $_registered_pages, true), 0 );
237
  }
238
- */
239
 
240
  /**
241
  * Load the plugin's Ajax handler
@@ -319,7 +319,11 @@ class MLASettings {
319
  * Use the URL suffix, if present. If the URL doesn't have a tab suffix, use '-general'.
320
  * This hack is required to pass the WordPress "referer" validation.
321
  */
322
- $tab = isset( $_REQUEST['page'] ) ? substr( $_REQUEST['page'], 1 + strrpos( $_REQUEST['page'], '-' ) ) : 'general';
 
 
 
 
323
  $tab = isset ( self::$mla_tablist[ $tab ] ) ? '-' . $tab : '-general';
324
  self::$current_page_hook = add_submenu_page( 'options-general.php', 'Media Library Assistant Settings', 'Media Library Assistant', 'manage_options', self::MLA_SETTINGS_SLUG . $tab, 'MLASettings::mla_render_settings_page' );
325
  add_action( 'load-' . self::$current_page_hook, 'MLASettings::mla_add_menu_options_action' );
@@ -411,7 +415,9 @@ class MLASettings {
411
  }
412
 
413
  if ( !empty( $template_array['sidebar'] ) ) {
414
- $screen->set_help_sidebar( $template_array['sidebar'] );
 
 
415
  unset( $template_array['sidebar'] );
416
  }
417
 
@@ -424,6 +430,8 @@ class MLASettings {
424
  $match_count = preg_match( '#\<!-- title="(.+)" order="(.+)" --\>#', $content, $matches, PREG_OFFSET_CAPTURE );
425
 
426
  if ( $match_count > 0 ) {
 
 
427
  $tab_array[ $matches[ 2 ][ 0 ] ] = array(
428
  'id' => $id,
429
  'title' => $matches[ 1 ][ 0 ],
@@ -862,6 +870,12 @@ class MLASettings {
862
  if ( !empty( $_REQUEST['mla-general-options-save'] ) ) {
863
  check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
864
  $page_content = self::_save_general_settings( );
 
 
 
 
 
 
865
  } elseif ( !empty( $_REQUEST['mla-general-options-reset'] ) ) {
866
  check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
867
  $page_content = self::_reset_general_settings( );
@@ -898,7 +912,7 @@ class MLASettings {
898
  $shortcodes = array(
899
  // array("name" => "shortcode", "description" => "This shortcode...")
900
  array( 'name' => 'mla_attachment_list', 'description' => 'renders a complete list of all attachments and references to them.' ),
901
- array( 'name' => 'mla_gallery', 'description' => 'enhanced version of the WordPress [gallery] shortcode. For complete documentation <a href="?page=' . self::MLA_SETTINGS_SLUG . '-documentation&amp;mla_tab=documentation">click here</a>.' )
902
  );
903
 
904
  $shortcode_list = '';
@@ -917,8 +931,8 @@ class MLASettings {
917
  */
918
  $default_orderby = MLA_List_Table::mla_get_sortable_columns( );
919
  foreach ($default_orderby as $key => $value ) {
920
- MLAOptions::$mla_option_definitions['default_orderby']['options'][] = $value[0];
921
- MLAOptions::$mla_option_definitions['default_orderby']['texts'][] = $value[1];
922
  }
923
 
924
  $options_list = '';
@@ -928,6 +942,7 @@ class MLASettings {
928
  }
929
 
930
  $page_values['options_list'] = $options_list;
 
931
  $page_content['body'] = MLAData::mla_parse_template( self::$page_template_array['general-tab'], $page_values );
932
  return $page_content;
933
  }
@@ -971,6 +986,7 @@ class MLASettings {
971
  */
972
  private static function _compose_edit_view_tab( $view, $template ) {
973
  $page_values = array(
 
974
  'action' => MLA::MLA_ADMIN_SINGLE_EDIT_UPDATE,
975
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-view&mla_tab=view',
976
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
@@ -1004,7 +1020,7 @@ class MLASettings {
1004
  private static function _compose_view_tab( ) {
1005
  $page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-view-tab.tpl' );
1006
  if ( ! array( $page_template_array ) ) {
1007
- error_log( "ERROR: MLASettings::_compose_view_tab \$page_template_array = " . var_export( $page_template_array, true ), 0 );
1008
  return '';
1009
  }
1010
 
@@ -1148,6 +1164,7 @@ class MLASettings {
1148
  }
1149
 
1150
  $page_values = array(
 
1151
  'options_list' => $options_list,
1152
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1153
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-view&mla_tab=view',
@@ -1190,6 +1207,7 @@ class MLASettings {
1190
  }
1191
 
1192
  $page_values = array(
 
1193
  'options_list' => $options_list,
1194
  'colspan' => count( $MLAListViewTable->get_columns() ),
1195
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
@@ -1268,6 +1286,7 @@ class MLASettings {
1268
  */
1269
  private static function _compose_edit_upload_tab( $item, &$templates ) {
1270
  $page_values = array(
 
1271
  'action' => MLA::MLA_ADMIN_SINGLE_EDIT_UPDATE,
1272
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-upload&mla_tab=upload',
1273
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
@@ -1389,7 +1408,7 @@ class MLASettings {
1389
  private static function _compose_upload_tab( ) {
1390
  $page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-upload-tab.tpl' );
1391
  if ( ! array( $page_template_array ) ) {
1392
- error_log( "ERROR: MLASettings::_compose_upload_tab \$page_template_array = " . var_export( $page_template_array, true ), 0 );
1393
  return '';
1394
  }
1395
 
@@ -1562,6 +1581,7 @@ class MLASettings {
1562
  }
1563
 
1564
  $page_values = array(
 
1565
  'options_list' => $options_list,
1566
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1567
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-upload&mla_tab=upload',
@@ -1602,6 +1622,7 @@ class MLASettings {
1602
  }
1603
 
1604
  $page_values = array(
 
1605
  'options_list' => $options_list,
1606
  'colspan' => count( $MLAListUploadTable->get_columns() ),
1607
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
@@ -1659,6 +1680,7 @@ class MLASettings {
1659
  }
1660
 
1661
  $page_values = array(
 
1662
  'options_list' => '',
1663
  'style_options_list' => '',
1664
  'markup_options_list' => '',
@@ -1969,7 +1991,7 @@ class MLASettings {
1969
  /*
1970
  * Check for single-rule action buttons
1971
  */
1972
- foreach( $_REQUEST['custom_field_mapping'] as $key => $value ) {
1973
  if ( isset( $value['action'] ) ) {
1974
  $settings = array( $key => $value );
1975
  foreach ( $value['action'] as $action => $label ) {
@@ -2013,6 +2035,7 @@ class MLASettings {
2013
  }
2014
 
2015
  $page_values = array(
 
2016
  'options_list' => '',
2017
  'custom_options_list' => '',
2018
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-custom_field&mla_tab=custom_field',
@@ -2077,7 +2100,7 @@ class MLASettings {
2077
  /*
2078
  * Check for single-rule action buttons
2079
  */
2080
- foreach( $_REQUEST['iptc_exif_mapping']['custom'] as $key => $value ) {
2081
  if ( isset( $value['action'] ) ) {
2082
  $settings = array( 'custom' => array( $key => $value ) );
2083
  foreach ( $value['action'] as $action => $label ) {
@@ -2115,6 +2138,7 @@ class MLASettings {
2115
  }
2116
 
2117
  $page_values = array(
 
2118
  'options_list' => '',
2119
  'standard_options_list' => '',
2120
  'taxonomy_options_list' => '',
@@ -2187,6 +2211,7 @@ class MLASettings {
2187
  self::$page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-page.tpl' );
2188
  $current_tab = isset( $_REQUEST['mla_tab'] ) ? $_REQUEST['mla_tab']: 'general';
2189
  $page_values = array(
 
2190
  'version' => 'v' . MLA::CURRENT_MLA_VERSION,
2191
  'donateURL' => MLA_PLUGIN_URL . 'images/DonateButton.jpg',
2192
  'messages' => '',
@@ -2564,7 +2589,7 @@ class MLASettings {
2564
  $update_count = 0;
2565
  $post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} WHERE `post_type` = 'attachment'" );
2566
 
2567
- foreach( $post_ids as $key => $post_id ) {
2568
  $updates = MLAOptions::mla_evaluate_custom_field_mapping( (integer) $post_id, 'custom_field_mapping', $settings );
2569
 
2570
  $examine_count += 1;
@@ -2669,9 +2694,9 @@ class MLASettings {
2669
  $examine_count = 0;
2670
  $update_count = 0;
2671
 
2672
- $query = array( 'orderby' => 'none', 'post_parent' => 'all' ); //, 'post_mime_type' => 'image,application/*pdf*' );
2673
- // $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
2674
  // $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'application/*pdf*' );
 
2675
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2676
 
2677
  if ( is_string( $posts ) )
@@ -2680,7 +2705,7 @@ class MLASettings {
2680
  'body' => ''
2681
  );
2682
 
2683
- foreach( $posts as $key => $post ) {
2684
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_standard_mapping', $_REQUEST['iptc_exif_mapping'] );
2685
 
2686
  $examine_count += 1;
@@ -2721,7 +2746,9 @@ class MLASettings {
2721
  $examine_count = 0;
2722
  $update_count = 0;
2723
 
2724
- $query = array( 'orderby' => 'none', 'post_parent' => 'all' ); //, 'post_mime_type' => 'image,application/*pdf*' );
 
 
2725
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2726
 
2727
  if ( is_string( $posts ) )
@@ -2730,7 +2757,7 @@ class MLASettings {
2730
  'body' => ''
2731
  );
2732
 
2733
- foreach( $posts as $key => $post ) {
2734
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_taxonomy_mapping', $_REQUEST['iptc_exif_mapping'] );
2735
 
2736
  $examine_count += 1;
@@ -2782,6 +2809,8 @@ class MLASettings {
2782
  $examine_count = 0;
2783
  $update_count = 0;
2784
 
 
 
2785
  $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
2786
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2787
 
@@ -2791,7 +2820,7 @@ class MLASettings {
2791
  'body' => ''
2792
  );
2793
 
2794
- foreach( $posts as $key => $post ) {
2795
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_custom_mapping', $settings );
2796
 
2797
  $examine_count += 1;
@@ -2938,7 +2967,7 @@ class MLASettings {
2938
 
2939
  foreach ( MLAOptions::$mla_option_definitions as $key => $value ) {
2940
  if ( 'general' == $value['tab'] ) {
2941
- if ( 'custom' == $value['type'] ) {
2942
  $message = MLAOptions::$value['reset']( 'reset', $key, $value, $_REQUEST );
2943
  }
2944
  elseif ( ('header' == $value['type']) || ('hidden' == $value['type']) ) {
@@ -2965,5 +2994,202 @@ class MLASettings {
2965
 
2966
  return $page_content;
2967
  } // _reset_general_settings
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2968
  } // class MLASettings
2969
  ?>
98
  $category_option = MLAOptions::mla_get_option( 'attachment_category' );
99
  $tag_option = MLAOptions::mla_get_option( 'attachment_tag' );
100
  if ( ! ( ( 'checked' == $category_option ) && ( 'checked' == $tag_option ) ) ) {
101
+ $tax_option = MLAOptions::mla_get_option( MLAOptions::MLA_TAXONOMY_SUPPORT );
102
  if ( 'checked' != $category_option ) {
103
  if ( isset( $tax_option['tax_support']['attachment_category'] ) )
104
  unset( $tax_option['tax_support']['attachment_category'] );
122
  */
123
  $new_values = array();
124
 
125
+ foreach ( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
126
  $value['quick_edit'] = ( isset( $value['quick_edit'] ) && $value['quick_edit'] ) ? true : false;
127
  $value['bulk_edit'] = ( isset( $value['bulk_edit'] ) && $value['bulk_edit'] ) ? true : false;
128
  $new_values[ $key ] = $value;
137
  */
138
  $new_values = array();
139
 
140
+ foreach ( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
141
  $value['meta_name'] = isset( $value['meta_name'] ) ? $value['meta_name'] : '';
142
  $value['meta_single'] = ( isset( $value['meta_single'] ) && $value['meta_single'] ) ? true : false;
143
  $value['meta_export'] = ( isset( $value['meta_export'] ) && $value['meta_export'] ) ? true : false;
153
  */
154
  $new_values = array();
155
 
156
+ foreach ( MLAOptions::mla_get_option( 'custom_field_mapping' ) as $key => $value ) {
157
  $value['no_null'] = ( isset( $value['no_null'] ) && $value['no_null'] ) ? true : false;
158
 
159
  if ( isset( $value['meta_single'] ) && $value['meta_single'] )
235
  error_log( 'DEBUG: mla_admin_page_access_denied_action $plugin_page = ' . var_export( $plugin_page, true), 0 );
236
  error_log( 'DEBUG: mla_admin_page_access_denied_action $_registered_pages = ' . var_export( $_registered_pages, true), 0 );
237
  }
238
+ // */
239
 
240
  /**
241
  * Load the plugin's Ajax handler
319
  * Use the URL suffix, if present. If the URL doesn't have a tab suffix, use '-general'.
320
  * This hack is required to pass the WordPress "referer" validation.
321
  */
322
+ if ( isset( $_REQUEST['page'] ) && is_string( $_REQUEST['page'] ) && ( 'mla-settings-menu-' == substr( $_REQUEST['page'], 0, 18 ) ) )
323
+ $tab = substr( $_REQUEST['page'], 18 );
324
+ else
325
+ $tab = 'general';
326
+
327
  $tab = isset ( self::$mla_tablist[ $tab ] ) ? '-' . $tab : '-general';
328
  self::$current_page_hook = add_submenu_page( 'options-general.php', 'Media Library Assistant Settings', 'Media Library Assistant', 'manage_options', self::MLA_SETTINGS_SLUG . $tab, 'MLASettings::mla_render_settings_page' );
329
  add_action( 'load-' . self::$current_page_hook, 'MLASettings::mla_add_menu_options_action' );
415
  }
416
 
417
  if ( !empty( $template_array['sidebar'] ) ) {
418
+ $page_values = array( 'settingsURL' => admin_url('options-general.php') );
419
+ $content = MLAData::mla_parse_template( $template_array['sidebar'], $page_values );
420
+ $screen->set_help_sidebar( $content );
421
  unset( $template_array['sidebar'] );
422
  }
423
 
430
  $match_count = preg_match( '#\<!-- title="(.+)" order="(.+)" --\>#', $content, $matches, PREG_OFFSET_CAPTURE );
431
 
432
  if ( $match_count > 0 ) {
433
+ $page_values = array( 'settingsURL' => admin_url('options-general.php') );
434
+ $content = MLAData::mla_parse_template( $content, $page_values );
435
  $tab_array[ $matches[ 2 ][ 0 ] ] = array(
436
  'id' => $id,
437
  'title' => $matches[ 1 ][ 0 ],
870
  if ( !empty( $_REQUEST['mla-general-options-save'] ) ) {
871
  check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
872
  $page_content = self::_save_general_settings( );
873
+ } elseif ( !empty( $_REQUEST['mla-general-options-export'] ) ) {
874
+ check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
875
+ $page_content = self::_export_settings( );
876
+ } elseif ( !empty( $_REQUEST['mla-general-options-import'] ) ) {
877
+ check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
878
+ $page_content = self::_import_settings( );
879
  } elseif ( !empty( $_REQUEST['mla-general-options-reset'] ) ) {
880
  check_admin_referer( MLA::MLA_ADMIN_NONCE, '_wpnonce' );
881
  $page_content = self::_reset_general_settings( );
912
  $shortcodes = array(
913
  // array("name" => "shortcode", "description" => "This shortcode...")
914
  array( 'name' => 'mla_attachment_list', 'description' => 'renders a complete list of all attachments and references to them.' ),
915
+ array( 'name' => 'mla_gallery', 'description' => 'enhanced version of the WordPress [gallery] shortcode. For complete documentation <a href="' . admin_url( 'options-general.php?page=' . self::MLA_SETTINGS_SLUG . '-documentation&amp;mla_tab=documentation' ) . '">click here</a>.' )
916
  );
917
 
918
  $shortcode_list = '';
931
  */
932
  $default_orderby = MLA_List_Table::mla_get_sortable_columns( );
933
  foreach ($default_orderby as $key => $value ) {
934
+ MLAOptions::$mla_option_definitions[MLAOptions::MLA_DEFAULT_ORDERBY]['options'][] = $value[0];
935
+ MLAOptions::$mla_option_definitions[MLAOptions::MLA_DEFAULT_ORDERBY]['texts'][] = $value[1];
936
  }
937
 
938
  $options_list = '';
942
  }
943
 
944
  $page_values['options_list'] = $options_list;
945
+ $page_values['import_settings'] = self::_compose_import_settings();
946
  $page_content['body'] = MLAData::mla_parse_template( self::$page_template_array['general-tab'], $page_values );
947
  return $page_content;
948
  }
986
  */
987
  private static function _compose_edit_view_tab( $view, $template ) {
988
  $page_values = array(
989
+ 'settingsURL' => admin_url('options-general.php'),
990
  'action' => MLA::MLA_ADMIN_SINGLE_EDIT_UPDATE,
991
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-view&mla_tab=view',
992
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1020
  private static function _compose_view_tab( ) {
1021
  $page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-view-tab.tpl' );
1022
  if ( ! array( $page_template_array ) ) {
1023
+ error_log( 'ERROR: MLASettings::_compose_view_tab $page_template_array = ' . var_export( $page_template_array, true ), 0 );
1024
  return '';
1025
  }
1026
 
1164
  }
1165
 
1166
  $page_values = array(
1167
+ 'settingsURL' => admin_url('options-general.php'),
1168
  'options_list' => $options_list,
1169
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1170
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-view&mla_tab=view',
1207
  }
1208
 
1209
  $page_values = array(
1210
+ 'settingsURL' => admin_url('options-general.php'),
1211
  'options_list' => $options_list,
1212
  'colspan' => count( $MLAListViewTable->get_columns() ),
1213
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1286
  */
1287
  private static function _compose_edit_upload_tab( $item, &$templates ) {
1288
  $page_values = array(
1289
+ 'settingsURL' => admin_url('options-general.php'),
1290
  'action' => MLA::MLA_ADMIN_SINGLE_EDIT_UPDATE,
1291
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-upload&mla_tab=upload',
1292
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1408
  private static function _compose_upload_tab( ) {
1409
  $page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-upload-tab.tpl' );
1410
  if ( ! array( $page_template_array ) ) {
1411
+ error_log( 'ERROR: MLASettings::_compose_upload_tab $page_template_array = ' . var_export( $page_template_array, true ), 0 );
1412
  return '';
1413
  }
1414
 
1581
  }
1582
 
1583
  $page_values = array(
1584
+ 'settingsURL' => admin_url('options-general.php'),
1585
  'options_list' => $options_list,
1586
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1587
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-upload&mla_tab=upload',
1622
  }
1623
 
1624
  $page_values = array(
1625
+ 'settingsURL' => admin_url('options-general.php'),
1626
  'options_list' => $options_list,
1627
  'colspan' => count( $MLAListUploadTable->get_columns() ),
1628
  '_wpnonce' => wp_nonce_field( MLA::MLA_ADMIN_NONCE, '_wpnonce', true, false ),
1680
  }
1681
 
1682
  $page_values = array(
1683
+ 'settingsURL' => admin_url('options-general.php'),
1684
  'options_list' => '',
1685
  'style_options_list' => '',
1686
  'markup_options_list' => '',
1991
  /*
1992
  * Check for single-rule action buttons
1993
  */
1994
+ foreach ( $_REQUEST['custom_field_mapping'] as $key => $value ) {
1995
  if ( isset( $value['action'] ) ) {
1996
  $settings = array( $key => $value );
1997
  foreach ( $value['action'] as $action => $label ) {
2035
  }
2036
 
2037
  $page_values = array(
2038
+ 'settingsURL' => admin_url('options-general.php'),
2039
  'options_list' => '',
2040
  'custom_options_list' => '',
2041
  'form_url' => admin_url( 'options-general.php' ) . '?page=mla-settings-menu-custom_field&mla_tab=custom_field',
2100
  /*
2101
  * Check for single-rule action buttons
2102
  */
2103
+ foreach ( $_REQUEST['iptc_exif_mapping']['custom'] as $key => $value ) {
2104
  if ( isset( $value['action'] ) ) {
2105
  $settings = array( 'custom' => array( $key => $value ) );
2106
  foreach ( $value['action'] as $action => $label ) {
2138
  }
2139
 
2140
  $page_values = array(
2141
+ 'settingsURL' => admin_url('options-general.php'),
2142
  'options_list' => '',
2143
  'standard_options_list' => '',
2144
  'taxonomy_options_list' => '',
2211
  self::$page_template_array = MLAData::mla_load_template( MLA_PLUGIN_PATH . 'tpls/admin-display-settings-page.tpl' );
2212
  $current_tab = isset( $_REQUEST['mla_tab'] ) ? $_REQUEST['mla_tab']: 'general';
2213
  $page_values = array(
2214
+ 'settingsURL' => admin_url('options-general.php'),
2215
  'version' => 'v' . MLA::CURRENT_MLA_VERSION,
2216
  'donateURL' => MLA_PLUGIN_URL . 'images/DonateButton.jpg',
2217
  'messages' => '',
2589
  $update_count = 0;
2590
  $post_ids = $wpdb->get_col( "SELECT ID FROM {$wpdb->posts} WHERE `post_type` = 'attachment'" );
2591
 
2592
+ foreach ( $post_ids as $key => $post_id ) {
2593
  $updates = MLAOptions::mla_evaluate_custom_field_mapping( (integer) $post_id, 'custom_field_mapping', $settings );
2594
 
2595
  $examine_count += 1;
2694
  $examine_count = 0;
2695
  $update_count = 0;
2696
 
2697
+ // $query = array( 'orderby' => 'none', 'post_parent' => 'all' ); // , 'post_mime_type' => 'image' );
 
2698
  // $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'application/*pdf*' );
2699
+ $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
2700
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2701
 
2702
  if ( is_string( $posts ) )
2705
  'body' => ''
2706
  );
2707
 
2708
+ foreach ( $posts as $key => $post ) {
2709
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_standard_mapping', $_REQUEST['iptc_exif_mapping'] );
2710
 
2711
  $examine_count += 1;
2746
  $examine_count = 0;
2747
  $update_count = 0;
2748
 
2749
+ // $query = array( 'orderby' => 'none', 'post_parent' => 'all' ); // , 'post_mime_type' => 'image' );
2750
+ // $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'application/*pdf*' );
2751
+ $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
2752
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2753
 
2754
  if ( is_string( $posts ) )
2757
  'body' => ''
2758
  );
2759
 
2760
+ foreach ( $posts as $key => $post ) {
2761
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_taxonomy_mapping', $_REQUEST['iptc_exif_mapping'] );
2762
 
2763
  $examine_count += 1;
2809
  $examine_count = 0;
2810
  $update_count = 0;
2811
 
2812
+ // $query = array( 'orderby' => 'none', 'post_parent' => 'all' ); // , 'post_mime_type' => 'image' );
2813
+ // $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'application/*pdf*' );
2814
  $query = array( 'orderby' => 'none', 'post_parent' => 'all', 'post_mime_type' => 'image,application/*pdf*' );
2815
  $posts = MLAShortcodes::mla_get_shortcode_attachments( 0, $query );
2816
 
2820
  'body' => ''
2821
  );
2822
 
2823
+ foreach ( $posts as $key => $post ) {
2824
  $updates = MLAOptions::mla_evaluate_iptc_exif_mapping( $post, 'iptc_exif_custom_mapping', $settings );
2825
 
2826
  $examine_count += 1;
2967
 
2968
  foreach ( MLAOptions::$mla_option_definitions as $key => $value ) {
2969
  if ( 'general' == $value['tab'] ) {
2970
+ if ( 'custom' == $value['type'] && isset( $value['reset'] ) ) {
2971
  $message = MLAOptions::$value['reset']( 'reset', $key, $value, $_REQUEST );
2972
  }
2973
  elseif ( ('header' == $value['type']) || ('hidden' == $value['type']) ) {
2994
 
2995
  return $page_content;
2996
  } // _reset_general_settings
2997
+
2998
+ /**
2999
+ * Compose HTML markup for the import settings if any settings files exist
3000
+ *
3001
+ * @since 1.50
3002
+ *
3003
+ * @return string HTML markup for the Import All Settings button and dropdown list, if any
3004
+ */
3005
+ private static function _compose_import_settings( ) {
3006
+ if ( ! file_exists( MLA_BACKUP_DIR ) )
3007
+ return '';
3008
+
3009
+ $prefix = ( ( defined( MLA_OPTION_PREFIX ) ) ? MLA_OPTION_PREFIX : 'mla_' ) . '_options_';
3010
+ $prefix_length = strlen( $prefix );
3011
+ $backup_files = array();
3012
+ $files = scandir( MLA_BACKUP_DIR, 1 ); // sort descending
3013
+ foreach ( $files as $file ) {
3014
+ if ( 0 === strpos( $file, $prefix ) ) {
3015
+ $tail = substr( $file, $prefix_length, strlen( $file ) - ( $prefix_length + 4 ) );
3016
+ $text = sprintf( '%1$s/%2$s/%3$s %4$s', substr( $tail, 0, 4 ), substr( $tail, 4, 2 ), substr( $tail, 6, 2 ), substr( $tail, 9 ) );
3017
+ $backup_files [ $text ] = $file;
3018
+ }
3019
+ }
3020
+
3021
+ if ( empty( $backup_files ) )
3022
+ return '';
3023
+
3024
+ $option_values = array(
3025
+ 'value' => 'none',
3026
+ 'text' => '-- select settings --',
3027
+ 'selected' => 'selected="selected"'
3028
+ );
3029
+
3030
+ $select_options = MLAData::mla_parse_template( self::$page_template_array['select-option'], $option_values );
3031
+ foreach ( $backup_files as $text => $file ) {
3032
+ $option_values = array(
3033
+ 'value' => esc_attr( $file ),
3034
+ 'text' => esc_html( $text ),
3035
+ 'selected' => ''
3036
+ );
3037
+
3038
+ $select_options .= MLAData::mla_parse_template( self::$page_template_array['select-option'], $option_values );
3039
+ }
3040
+
3041
+ $option_values = array(
3042
+ 'key' => 'mla-import-settings-file',
3043
+ 'options' => $select_options
3044
+ );
3045
+
3046
+ return '<input name="mla-general-options-import" type="submit" class="button-primary" value="Import ALL Settings" />' . MLAData::mla_parse_template( self::$page_template_array['select-only'], $option_values );
3047
+ } // _compose_import_settings
3048
+
3049
+ /**
3050
+ * Serialize option settings and write them to a file
3051
+ *
3052
+ * Options with a default value, i.e., not stored in the database are NOT written to the file.
3053
+ *
3054
+ * @since 1.50
3055
+ *
3056
+ * @return array Message(s) reflecting the results of the operation
3057
+ */
3058
+ private static function _export_settings( ) {
3059
+ $message_list = '';
3060
+ $settings = array();
3061
+
3062
+ /*
3063
+ * Accumulate the settings into an array, then serialize it for writing to the file.
3064
+ */
3065
+ $stored_count = 0;
3066
+ foreach ( MLAOptions::$mla_option_definitions as $key => $value ) {
3067
+ $stored_value = MLAOptions::mla_get_option( $key, false, true );
3068
+ if ( false !== $stored_value ) {
3069
+ $settings[ $key ] = $stored_value;
3070
+ $stored_count++;
3071
+ $message = "<br>{$key} exported";
3072
+ }
3073
+ else
3074
+ $message = "<br>{$key} skipped";
3075
+
3076
+ $message_list .= $message;
3077
+ }
3078
+
3079
+ $settings = serialize( $settings );
3080
+ $page_content = array( 'message' => 'ALL settings exported.', 'body' => '' );
3081
+
3082
+ /*
3083
+ * Make sure the directory exists and is writable, then create the file
3084
+ */
3085
+ $prefix = ( defined( MLA_OPTION_PREFIX ) ) ? MLA_OPTION_PREFIX : 'mla_';
3086
+ $date = date("Ymd_B");
3087
+ $filename = MLA_BACKUP_DIR . "{$prefix}_options_{$date}.txt";
3088
+
3089
+ if ( ! file_exists( MLA_BACKUP_DIR ) && ! @mkdir( MLA_BACKUP_DIR ) ) {
3090
+ $page_content['message'] = 'ERROR: The settings directory ( ' . MLA_BACKUP_DIR . ' ) cannot be created.';
3091
+ return $page_content;
3092
+ }
3093
+ elseif ( ! is_writable( MLA_BACKUP_DIR ) && ! @chmod( MLA_BACKUP_DIR , '0777') ) {
3094
+ $page_content['message'] = 'ERROR: The settings directory ( ' . MLA_BACKUP_DIR . ' ) is not writable.';
3095
+ return $page_content;
3096
+ }
3097
+
3098
+ if ( ! file_exists( MLA_BACKUP_DIR . 'index.php') )
3099
+ @ touch( MLA_BACKUP_DIR . 'index.php');
3100
+
3101
+ $file_pointer = @fopen( $filename, 'w' );
3102
+ if( ! $file_pointer ) {
3103
+ $page_content['message'] = "ERROR: The settings file ( {$filename} ) could not be opened.";
3104
+ return $page_content;
3105
+ }
3106
+
3107
+ if(false === @fwrite($file_pointer, $settings)) {
3108
+ $error_info = error_get_last();
3109
+ error_log( 'ERROR: _export_settings $error_info = ' . var_export( $error_info, true ), 0 );
3110
+
3111
+ if ( false !== ( $tail = strpos( $error_info['message'], '</a>]: ' ) ) )
3112
+ $php_errormsg = ':<br>' . substr( $error_info['message'], $tail + 7 );
3113
+ else
3114
+ $php_errormsg = '.';
3115
+
3116
+ $page_content['message'] = "ERROR: writing the settings file ( {$filename} ){$php_errormsg}";
3117
+ }
3118
+
3119
+ fclose($file_pointer);
3120
+
3121
+ $page_content['message'] = "Settings exported; {$stored_count} settings recorded.";
3122
+
3123
+ /*
3124
+ * Uncomment this for debugging.
3125
+ */
3126
+ //$page_content['message'] .= $message_list;
3127
+
3128
+ return $page_content;
3129
+ } // _export_settings
3130
+
3131
+ /**
3132
+ * Read a serialized file of option settings and write them to the database
3133
+ *
3134
+ * @since 1.50
3135
+ *
3136
+ * @return array Message(s) reflecting the results of the operation
3137
+ */
3138
+ private static function _import_settings( ) {
3139
+ $page_content = array( 'message' => 'No settings imported.', 'body' => '' );
3140
+ $message_list = '';
3141
+
3142
+ if ( isset( $_REQUEST['mla-import-settings-file'] ) ) {
3143
+ $filename = $_REQUEST['mla-import-settings-file'];
3144
+
3145
+ if ( 'none' != $filename )
3146
+ $filename = MLA_BACKUP_DIR . $filename;
3147
+ else {
3148
+ $page_content['message'] = 'Please select an import settings file from the dropdown list.';
3149
+ return $page_content;
3150
+ }
3151
+ }
3152
+ else {
3153
+ $page_content['message'] = "ERROR: The import settings dropdown selection is missing.";
3154
+ return $page_content;
3155
+ }
3156
+
3157
+ $settings = @file_get_contents( $filename, false );
3158
+ if( false === $settings ) {
3159
+ $error_info = error_get_last();
3160
+ error_log( 'ERROR: _import_settings $error_info = ' . var_export( $error_info, true ), 0 );
3161
+
3162
+ if ( false !== ( $tail = strpos( $error_info['message'], '</a>]: ' ) ) )
3163
+ $php_errormsg = ':<br>' . substr( $error_info['message'], $tail + 7 );
3164
+ else
3165
+ $php_errormsg = '.';
3166
+
3167
+ $page_content['message'] = "ERROR: reading the settings file ( {$filename} ){$php_errormsg}";
3168
+ return $page_content;
3169
+ }
3170
+
3171
+ $settings = unserialize( $settings );
3172
+ $updated_count = 0;
3173
+ $unchanged_count = 0;
3174
+ foreach ( $settings as $key => $value ) {
3175
+ if ( MLAOptions::mla_update_option( $key, $value ) ) {
3176
+ $updated_count++;
3177
+ $message_list .= "<br>{$key} updated";
3178
+ }
3179
+ else {
3180
+ $unchanged_count++;
3181
+ $message_list .= "<br>{$key} unchanged";
3182
+ }
3183
+ }
3184
+
3185
+ $page_content['message'] = "Settings imported; {$updated_count} updated, {$unchanged_count} unchanged.";
3186
+
3187
+ /*
3188
+ * Uncomment this for debugging.
3189
+ */
3190
+ //$page_content['message'] .= $message_list;
3191
+
3192
+ return $page_content;
3193
+ } // _import_settings
3194
  } // class MLASettings
3195
  ?>
includes/class-mla-shortcodes.php CHANGED
@@ -43,7 +43,7 @@ class MLAShortcodes {
43
  /*
44
  * Process the where-used settings option
45
  */
46
- if ('checked' == MLAOptions::mla_get_option( 'exclude_revisions' ) )
47
  $exclude_revisions = "(post_type <> 'revision') AND ";
48
  else
49
  $exclude_revisions = '';
@@ -244,18 +244,16 @@ class MLAShortcodes {
244
  * which can be added to any input parameter
245
  */
246
  foreach ( $attr as $attr_key => $attr_value ) {
 
 
 
 
 
 
 
247
  $attr_value = str_replace( '{+', '[+', str_replace( '+}', '+]', $attr_value ) );
248
- $replacement_values = array();
249
- $placeholders = MLAData::mla_get_template_placeholders( $attr_value );
250
- foreach ($placeholders as $key => $value ) {
251
- if ( 'request' == $value['prefix'] ) {
252
- if ( isset( $_REQUEST[ $value['value'] ] ) )
253
- $replacement_values[ $key ] = $_REQUEST[ $value['value'] ];
254
- else
255
- $replacement_values[ $key ] = '';
256
- }
257
- } // $placeholders
258
-
259
  if ( ! empty( $replacement_values ) )
260
  $attr[ $attr_key ] = MLAData::mla_parse_template( $attr_value, $replacement_values );
261
  }
@@ -457,22 +455,8 @@ class MLAShortcodes {
457
  /*
458
  * Look for 'query' and 'request' substitution parameters
459
  */
460
- $placeholders = MLAData::mla_get_template_placeholders( $style_template );
461
- foreach ($placeholders as $key => $value ) {
462
- if ( 'query' == $value['prefix'] ) {
463
- if ( isset( $attr[ $value['value'] ] ) )
464
- $style_values[ $key ] = $attr[ $value['value'] ];
465
- else
466
- $style_values[ $key ] = '';
467
- }
468
- elseif ( 'request' == $value['prefix'] ) {
469
- if ( isset( $_REQUEST[ $value['value'] ] ) )
470
- $style_values[ $key ] = $_REQUEST[ $value['value'] ];
471
- else
472
- $style_values[ $key ] = '';
473
- }
474
- } // $placeholders
475
-
476
  /*
477
  * Clean up the template to resolve width or margin == 'none'
478
  */
@@ -502,28 +486,11 @@ class MLAShortcodes {
502
  $markup_values['base_url'] = $upload_dir['baseurl'];
503
  $markup_values['base_dir'] = $upload_dir['basedir'];
504
 
505
- /*
506
- * Variable 'query' and 'request' placeholders can be anywhere in the markup template
507
- */
508
- $query_placeholders = array();
509
- $request_placeholders = array();
510
-
511
- /*
512
- * Variable item-level placeholders
513
- */
514
- $meta_placeholders = array();
515
- $terms_placeholders = array();
516
- $custom_placeholders = array();
517
- $iptc_placeholders = array();
518
- $exif_placeholders = array();
519
- $pdf_placeholders = array();
520
-
521
  $open_template = MLAOptions::mla_fetch_gallery_template( $markup_values['mla_markup'] . '-open', 'markup' );
522
  if ( false === $open_template ) {
523
  $markup_values['mla_markup'] = 'default';
524
  $open_template = MLAOptions::mla_fetch_gallery_template( 'default-open', 'markup' );
525
  }
526
-
527
  if ( empty( $open_template ) )
528
  $open_template = '';
529
 
@@ -544,58 +511,11 @@ class MLAShortcodes {
544
  $close_template = '';
545
 
546
  /*
547
- * Look for variable query and item-level placeholders
548
- */
549
- $new_text = str_replace( '{+', '[+', str_replace( '+}', '+]', $arguments['mla_link_attributes'] . $arguments['mla_link_class'] . $arguments['mla_link_href'] . $arguments['mla_link_text'] . $arguments['mla_nolink_text'] . $arguments['mla_rollover_text'] . $arguments['mla_image_class'] . $arguments['mla_image_alt'] . $arguments['mla_image_attributes'] . $arguments['mla_caption'] ) );
550
-
551
- $placeholders = MLAData::mla_get_template_placeholders( $new_text . $open_template . $row_open_template . $item_template . $row_close_template . $close_template );
552
- foreach ($placeholders as $key => $value ) {
553
- switch ( $value['prefix'] ) {
554
- case 'meta':
555
- $meta_placeholders[ $key ] = $value;
556
- break;
557
- case 'query':
558
- $query_placeholders[ $key ] = $value;
559
- break;
560
- case 'request':
561
- $request_placeholders[ $key ] = $value;
562
- break;
563
- case 'terms':
564
- $terms_placeholders[ $key ] = $value;
565
- break;
566
- case 'custom':
567
- $custom_placeholders[ $key ] = $value;
568
- break;
569
- case 'iptc':
570
- $iptc_placeholders[ $key ] = $value;
571
- break;
572
- case 'exif':
573
- $exif_placeholders[ $key ] = $value;
574
- break;
575
- case 'pdf':
576
- $pdf_placeholders[ $key ] = $value;
577
- break;
578
- default:
579
- // ignore anything else
580
- } // switch
581
- } // $placeholders
582
-
583
- /*
584
- * Add 'query' and 'request' placeholders
585
  */
586
- foreach ( $query_placeholders as $key => $value ) {
587
- if ( isset( $attr[ $value['value'] ] ) )
588
- $markup_values[ $key ] = $attr[ $value['value'] ];
589
- else
590
- $markup_values[ $key ] = '';
591
- } // $query_placeholders
592
-
593
- foreach ( $request_placeholders as $key => $value ) {
594
- if ( isset( $_REQUEST[ $value['value'] ] ) )
595
- $markup_values[ $key ] = $_REQUEST[ $value['value'] ];
596
- else
597
- $markup_values[ $key ] = '';
598
- } // $request_placeholders
599
 
600
  if ( self::$mla_debug ) {
601
  $output = self::$mla_debug_messages;
@@ -662,65 +582,67 @@ class MLAShortcodes {
662
 
663
  $column_index = 0;
664
  foreach ( $attachments as $id => $attachment ) {
 
 
665
  /*
666
  * fill in item-specific elements
667
  */
668
- $markup_values['index'] = (string) 1 + $column_index;
669
-
670
- $markup_values['excerpt'] = wptexturize( $attachment->post_excerpt );
671
- $markup_values['attachment_ID'] = $attachment->ID;
672
- $markup_values['mime_type'] = $attachment->post_mime_type;
673
- $markup_values['menu_order'] = $attachment->menu_order;
674
- $markup_values['date'] = $attachment->post_date;
675
- $markup_values['modified'] = $attachment->post_modified;
676
- $markup_values['parent'] = $attachment->post_parent;
677
- $markup_values['parent_title'] = '(unattached)';
678
- $markup_values['parent_type'] = '';
679
- $markup_values['parent_date'] = '';
680
- $markup_values['title'] = wptexturize( $attachment->post_title );
681
- $markup_values['slug'] = wptexturize( $attachment->post_name );
682
- $markup_values['width'] = '';
683
- $markup_values['height'] = '';
684
- $markup_values['image_meta'] = '';
685
- $markup_values['image_alt'] = '';
686
- $markup_values['base_file'] = '';
687
- $markup_values['path'] = '';
688
- $markup_values['file'] = '';
689
- $markup_values['description'] = wptexturize( $attachment->post_content );
690
- $markup_values['file_url'] = wptexturize( $attachment->guid );
691
- $markup_values['author_id'] = $attachment->post_author;
692
 
693
  $user = get_user_by( 'id', $attachment->post_author );
694
  if ( isset( $user->data->display_name ) )
695
- $markup_values['author'] = wptexturize( $user->data->display_name );
696
  else
697
- $markup_values['author'] = 'unknown';
698
 
699
  $post_meta = MLAData::mla_fetch_attachment_metadata( $attachment->ID );
700
  $base_file = $post_meta['mla_wp_attached_file'];
701
  $sizes = isset( $post_meta['mla_wp_attachment_metadata']['sizes'] ) ? $post_meta['mla_wp_attachment_metadata']['sizes'] : array();
702
 
703
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['width'] ) )
704
- $markup_values['width'] = $post_meta['mla_wp_attachment_metadata']['width'];
705
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['height'] ) )
706
- $markup_values['height'] = $post_meta['mla_wp_attachment_metadata']['height'];
707
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['image_meta'] ) )
708
- $markup_values['image_meta'] = wptexturize( var_export( $post_meta['mla_wp_attachment_metadata']['image_meta'], true ) );
709
  if ( !empty( $post_meta['mla_wp_attachment_image_alt'] ) )
710
- $markup_values['image_alt'] = wptexturize( $post_meta['mla_wp_attachment_image_alt'] );
711
 
712
  if ( ! empty( $base_file ) ) {
713
  $last_slash = strrpos( $base_file, '/' );
714
  if ( false === $last_slash ) {
715
  $file_name = $base_file;
716
- $markup_values['base_file'] = wptexturize( $base_file );
717
- $markup_values['file'] = wptexturize( $base_file );
718
  }
719
  else {
720
  $file_name = substr( $base_file, $last_slash + 1 );
721
- $markup_values['base_file'] = wptexturize( $base_file );
722
- $markup_values['path'] = wptexturize( substr( $base_file, 0, $last_slash + 1 ) );
723
- $markup_values['file'] = wptexturize( $file_name );
724
  }
725
  }
726
  else
@@ -728,162 +650,36 @@ class MLAShortcodes {
728
 
729
  $parent_info = MLAData::mla_fetch_attachment_parent_data( $attachment->post_parent );
730
  if ( isset( $parent_info['parent_title'] ) )
731
- $markup_values['parent_title'] = wptexturize( $parent_info['parent_title'] );
732
 
733
  if ( isset( $parent_info['parent_date'] ) )
734
- $markup_values['parent_date'] = wptexturize( $parent_info['parent_date'] );
735
 
736
  if ( isset( $parent_info['parent_type'] ) )
737
- $markup_values['parent_type'] = wptexturize( $parent_info['parent_type'] );
738
 
739
  /*
740
- * Add variable placeholders
741
  */
742
- $item_metadata = get_metadata( 'post', $attachment->ID, '_wp_attachment_metadata', true );
743
- foreach ( $meta_placeholders as $key => $value ) {
744
- $markup_values[ $key ] = MLAData::mla_find_array_element( $value['value'], $item_metadata, $value['option'] );
745
- } // $meta_placeholders */
746
-
747
- foreach ( $terms_placeholders as $key => $value ) {
748
- $terms = wp_get_object_terms( $attachment->ID, $value['value'] );
749
-
750
- $text = '';
751
- if ( is_wp_error( $terms ) ) {
752
- $text = implode( ',', $terms->get_error_messages() );
753
- }
754
- elseif ( ! empty( $terms ) ) {
755
- if ( 'single' == $value['option'] || 1 == count( $terms ) )
756
- $text = sanitize_term_field( 'name', $terms[0]->name, $terms[0]->term_id, $value, 'display' );
757
- elseif ( 'export' == $value['option'] )
758
- $text = sanitize_text_field( var_export( $terms, true ) );
759
- else
760
- foreach ( $terms as $term ) {
761
- $term_name = sanitize_term_field( 'name', $term->name, $term->term_id, $value, 'display' );
762
- $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
763
- }
764
- }
765
-
766
- $markup_values[ $key ] = $text;
767
- } // $terms_placeholders
768
-
769
- foreach ( $custom_placeholders as $key => $value ) {
770
- $record = get_metadata( 'post', $attachment->ID, $value['value'], 'single' == $value['option'] );
771
-
772
- $text = '';
773
- if ( is_wp_error( $record ) )
774
- $text = implode( ',', $terms->get_error_messages() );
775
- elseif ( ! empty( $record ) ) {
776
- if ( is_scalar( $record ) )
777
- $text = sanitize_text_field( (string) $record );
778
- elseif ( is_array( $record ) ) {
779
- if ( 'export' == $value['option'] )
780
- $text = sanitize_text_field( var_export( $haystack, true ) );
781
- else {
782
- $text = '';
783
- foreach ( $record as $term ) {
784
- $term_name = sanitize_text_field( $term );
785
- $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
786
- }
787
- }
788
- } // is_array
789
- } // ! empty
790
-
791
- $markup_values[ $key ] = $text;
792
- } // $custom_placeholders
793
-
794
- if ( !empty( $iptc_placeholders ) || !empty( $exif_placeholders ) || !empty( $pdf_placeholders ) ) {
795
- $item_metadata = MLAData::mla_fetch_attachment_image_metadata( $attachment->ID );
796
- }
797
-
798
- foreach ( $iptc_placeholders as $key => $value ) {
799
- $text = '';
800
- $record = MLAData::mla_iptc_metadata_value( $value['value'], $item_metadata );
801
- if ( is_array( $record ) ) {
802
- if ( 'single' == $value['option'] )
803
- $text = sanitize_text_field( array_shift( $record ) );
804
- elseif ( 'export' == $value['option'] )
805
- $text = sanitize_text_field( var_export( $record, true ) );
806
- else
807
- foreach ( $record as $term ) {
808
- $term_name = sanitize_text_field( $term );
809
- $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
810
- }
811
- } // is_array
812
- else
813
- $text = $record;
814
-
815
- $markup_values[ $key ] = $text;
816
- } // $iptc_placeholders
817
-
818
- foreach ( $exif_placeholders as $key => $value ) {
819
- $text = '';
820
- $record = MLAData::mla_exif_metadata_value( $value['value'], $item_metadata );
821
- if ( is_array( $record ) ) {
822
- if ( 'single' == $value['option'] )
823
- $text = sanitize_text_field( array_shift( $record ) );
824
- elseif ( 'export' == $value['option'] )
825
- $text = sanitize_text_field( var_export( $record, true ) );
826
- else
827
- foreach ( $record as $term ) {
828
- $term_name = sanitize_text_field( $term );
829
- $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
830
- }
831
- } // is_array
832
- else
833
- $text = $record;
834
-
835
- $markup_values[ $key ] = $text;
836
- } // $exif_placeholders
837
-
838
- foreach ( $pdf_placeholders as $key => $value ) {
839
- $text = '';
840
- $record = MLAData::mla_pdf_metadata_value( $value['value'], $item_metadata );
841
- if ( is_array( $record ) ) {
842
- if ( 'single' == $value['option'] )
843
- $text = sanitize_text_field( array_shift( $record ) );
844
- elseif ( 'export' == $value['option'] )
845
- $text = sanitize_text_field( var_export( $record, true ) );
846
- else
847
- foreach ( $record as $term ) {
848
- $term_name = sanitize_text_field( $term );
849
- $text .= strlen( $text ) ? ', ' . $term_name : $term_name;
850
- }
851
- } // is_array
852
- else
853
- $text = $record;
854
-
855
- $markup_values[ $key ] = $text;
856
- } // $pdf_placeholders
857
-
858
- unset(
859
- $markup_values['caption'],
860
- $markup_values['pagelink'],
861
- $markup_values['filelink'],
862
- $markup_values['link'],
863
- $markup_values['pagelink_url'],
864
- $markup_values['filelink_url'],
865
- $markup_values['link_url'],
866
- $markup_values['thumbnail_content'],
867
- $markup_values['thumbnail_width'],
868
- $markup_values['thumbnail_height'],
869
- $markup_values['thumbnail_url']
870
- );
871
-
872
- if ( $markup_values['captiontag'] ) {
873
- $markup_values['caption'] = wptexturize( $attachment->post_excerpt );
874
  if ( ! empty( $arguments['mla_caption'] ) )
875
- $markup_values['caption'] = wptexturize( self::_process_shortcode_parameter( $arguments['mla_caption'], $markup_values ) );
876
  }
877
  else
878
- $markup_values['caption'] = '';
879
 
880
  if ( ! empty( $arguments['mla_link_text'] ) )
881
- $link_text = self::_process_shortcode_parameter( $arguments['mla_link_text'], $markup_values );
882
  else
883
  $link_text = false;
884
 
885
- $markup_values['pagelink'] = wp_get_attachment_link($attachment->ID, $size, true, $show_icon, $link_text);
886
- $markup_values['filelink'] = wp_get_attachment_link($attachment->ID, $size, false, $show_icon, $link_text);
887
 
888
  /*
889
  * Apply the Gallery Display Content parameters.
@@ -896,29 +692,29 @@ class MLAShortcodes {
896
  $link_attributes = '';
897
 
898
  if ( ! empty( $arguments['mla_link_attributes'] ) )
899
- $link_attributes .= self::_process_shortcode_parameter( $arguments['mla_link_attributes'], $markup_values ) . ' ';
900
 
901
  if ( ! empty( $arguments['mla_link_class'] ) )
902
- $link_attributes .= 'class="' . self::_process_shortcode_parameter( $arguments['mla_link_class'], $markup_values ) . '" ';
903
 
904
  if ( ! empty( $link_attributes ) ) {
905
- $markup_values['pagelink'] = str_replace( '<a href=', '<a ' . $link_attributes . 'href=', $markup_values['pagelink'] );
906
- $markup_values['filelink'] = str_replace( '<a href=', '<a ' . $link_attributes . 'href=', $markup_values['filelink'] );
907
  }
908
 
909
  if ( ! empty( $arguments['mla_rollover_text'] ) ) {
910
- $rollover_text = esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $markup_values ) );
911
 
912
  /*
913
  * Replace single- and double-quote delimited values
914
  */
915
- $markup_values['pagelink'] = preg_replace('# title=\'([^\']*)\'#', " title='{$rollover_text}'", $markup_values['pagelink'] );
916
- $markup_values['pagelink'] = preg_replace('# title=\"([^\"]*)\"#', " title=\"{$rollover_text}\"", $markup_values['pagelink'] );
917
- $markup_values['filelink'] = preg_replace('# title=\'([^\']*)\'#', " title='{$rollover_text}'", $markup_values['filelink'] );
918
- $markup_values['filelink'] = preg_replace('# title=\"([^\"]*)\"#', " title=\"{$rollover_text}\"", $markup_values['filelink'] );
919
  }
920
  else
921
- $rollover_text = $markup_values['title'];
922
 
923
  /*
924
  * Process the <img> tag, if present
@@ -926,125 +722,125 @@ class MLAShortcodes {
926
  * are used in the Google Viewer code below
927
  */
928
  if ( ! empty( $arguments['mla_image_attributes'] ) )
929
- $image_attributes = self::_process_shortcode_parameter( $arguments['mla_image_attributes'], $markup_values ) . ' ';
930
  else
931
  $image_attributes = '';
932
 
933
  if ( ! empty( $arguments['mla_image_class'] ) )
934
- $image_class = esc_attr( self::_process_shortcode_parameter( $arguments['mla_image_class'], $markup_values ) );
935
  else
936
  $image_class = '';
937
 
938
  if ( ! empty( $arguments['mla_image_alt'] ) )
939
- $image_alt = esc_attr( self::_process_shortcode_parameter( $arguments['mla_image_alt'], $markup_values ) );
940
  else
941
  $image_alt = '';
942
 
943
- if ( false !== strpos( $markup_values['pagelink'], '<img ' ) ) {
944
  if ( ! empty( $image_attributes ) ) {
945
- $markup_values['pagelink'] = str_replace( '<img ', '<img ' . $image_attributes, $markup_values['pagelink'] );
946
- $markup_values['filelink'] = str_replace( '<img ', '<img ' . $image_attributes, $markup_values['filelink'] );
947
  }
948
 
949
  /*
950
  * Extract existing class values and add to them
951
  */
952
  if ( ! empty( $image_class ) ) {
953
- $match_count = preg_match_all( '# class=\"([^\"]+)\" #', $markup_values['pagelink'], $matches, PREG_OFFSET_CAPTURE );
954
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
955
  $class = $matches[1][0][0] . ' ' . $image_class;
956
  }
957
  else
958
  $class = $image_class;
959
 
960
- $markup_values['pagelink'] = preg_replace('# class=\"([^\"]*)\"#', " class=\"{$class}\"", $markup_values['pagelink'] );
961
- $markup_values['filelink'] = preg_replace('# class=\"([^\"]*)\"#', " class=\"{$class}\"", $markup_values['filelink'] );
962
  }
963
 
964
  if ( ! empty( $image_alt ) ) {
965
- $markup_values['pagelink'] = preg_replace('# alt=\"([^\"]*)\"#', " alt=\"{$image_alt}\"", $markup_values['pagelink'] );
966
- $markup_values['filelink'] = preg_replace('# alt=\"([^\"]*)\"#', " alt=\"{$image_alt}\"", $markup_values['filelink'] );
967
  }
968
  } // process <img> tag
969
 
970
  switch ( $arguments['link'] ) {
971
  case 'permalink':
972
  case 'post':
973
- $markup_values['link'] = $markup_values['pagelink'];
974
  break;
975
  case 'file':
976
  case 'full':
977
- $markup_values['link'] = $markup_values['filelink'];
978
  break;
979
  default:
980
- $markup_values['link'] = $markup_values['filelink'];
981
 
982
  /*
983
  * Check for link to specific (registered) file size
984
  */
985
  if ( array_key_exists( $arguments['link'], $sizes ) ) {
986
  $target_file = $sizes[ $arguments['link'] ]['file'];
987
- $markup_values['link'] = str_replace( $file_name, $target_file, $markup_values['filelink'] );
988
  }
989
  } // switch 'link'
990
 
991
  /*
992
  * Extract target and thumbnail fields
993
  */
994
- $match_count = preg_match_all( '#href=\'([^\']+)\'#', $markup_values['pagelink'], $matches, PREG_OFFSET_CAPTURE );
995
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
996
- $markup_values['pagelink_url'] = $matches[1][0][0];
997
  }
998
  else
999
- $markup_values['pagelink_url'] = '';
1000
 
1001
- $match_count = preg_match_all( '#href=\'([^\']+)\'#', $markup_values['filelink'], $matches, PREG_OFFSET_CAPTURE );
1002
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
1003
- $markup_values['filelink_url'] = $matches[1][0][0];
1004
  }
1005
  else
1006
- $markup_values['filelink_url'] = '';
1007
 
1008
- $match_count = preg_match_all( '#href=\'([^\']+)\'#', $markup_values['link'], $matches, PREG_OFFSET_CAPTURE );
1009
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
1010
- $markup_values['link_url'] = $matches[1][0][0];
1011
  }
1012
  else
1013
- $markup_values['link_url'] = '';
1014
 
1015
  /*
1016
  * Override the link value; leave filelink and pagelink unchanged
1017
  * Note that $link_href is used in the Google Viewer code below
1018
  */
1019
  if ( ! empty( $arguments['mla_link_href'] ) ) {
1020
- $link_href = self::_process_shortcode_parameter( $arguments['mla_link_href'], $markup_values );
1021
 
1022
  /*
1023
  * Replace single- and double-quote delimited values
1024
  */
1025
- $markup_values['link'] = preg_replace('# href=\'([^\']*)\'#', " href='{$link_href}'", $markup_values['link'] );
1026
- $markup_values['link'] = preg_replace('# href=\"([^\"]*)\"#', " href=\"{$link_href}\"", $markup_values['link'] );
1027
  }
1028
  else
1029
  $link_href = '';
1030
 
1031
- $match_count = preg_match_all( '#\<a [^\>]+\>(.*)\</a\>#', $markup_values['link'], $matches, PREG_OFFSET_CAPTURE );
1032
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
1033
- $markup_values['thumbnail_content'] = $matches[1][0][0];
1034
  }
1035
  else
1036
- $markup_values['thumbnail_content'] = '';
1037
 
1038
- $match_count = preg_match_all( '# width=\"([^\"]+)\" height=\"([^\"]+)\" src=\"([^\"]+)\" #', $markup_values['link'], $matches, PREG_OFFSET_CAPTURE );
1039
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
1040
- $markup_values['thumbnail_width'] = $matches[1][0][0];
1041
- $markup_values['thumbnail_height'] = $matches[2][0][0];
1042
- $markup_values['thumbnail_url'] = $matches[3][0][0];
1043
  }
1044
  else {
1045
- $markup_values['thumbnail_width'] = '';
1046
- $markup_values['thumbnail_height'] = '';
1047
- $markup_values['thumbnail_url'] = '';
1048
  }
1049
 
1050
  /*
@@ -1052,10 +848,10 @@ class MLAShortcodes {
1052
  * $link_attributes (includes target), $rollover_text, $link_href (link only),
1053
  * $image_attributes, $image_class, $image_alt
1054
  */
1055
- if ( $arguments['mla_viewer'] && empty( $markup_values['thumbnail_url'] ) ) {
1056
- $last_dot = strrpos( $markup_values['file'], '.' );
1057
  if ( !( false === $last_dot) ) {
1058
- $extension = substr( $markup_values['file'], $last_dot + 1 );
1059
  if ( in_array( $extension, $arguments['mla_viewer_extensions'] ) ) {
1060
  /*
1061
  * <img> tag (thumbnail_text)
@@ -1065,23 +861,23 @@ class MLAShortcodes {
1065
 
1066
  if ( ! empty( $image_alt ) )
1067
  $image_alt = ' alt="' . $image_alt . '"';
1068
- elseif ( ! empty( $markup_values['caption'] ) )
1069
- $image_alt = ' alt="' . $markup_values['caption'] . '"';
1070
 
1071
- $markup_values['thumbnail_content'] = sprintf( '<img %1$ssrc="http://docs.google.com/viewer?url=%2$s&a=bi&pagenumber=%3$d&w=%4$d"%5$s%6$s>', $image_attributes, $markup_values['filelink_url'], $arguments['mla_viewer_page'], $arguments['mla_viewer_width'], $image_class, $image_alt );
1072
 
1073
  /*
1074
  * Filelink, pagelink and link
1075
  */
1076
- $markup_values['pagelink'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $markup_values['pagelink_url'], $rollover_text, $markup_values['thumbnail_content'] );
1077
- $markup_values['filelink'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $markup_values['filelink_url'], $rollover_text, $markup_values['thumbnail_content'] );
1078
 
1079
  if ( ! empty( $link_href ) )
1080
- $markup_values['link'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $link_href, $rollover_text, $markup_values['thumbnail_content'] );
1081
  elseif ( 'permalink' == $arguments['link'] )
1082
- $markup_values['link'] = $markup_values['pagelink'];
1083
  else
1084
- $markup_values['link'] = $markup_values['filelink'];
1085
  } // viewer extension
1086
  } // has extension
1087
  } // mla_viewer
@@ -1097,12 +893,12 @@ class MLAShortcodes {
1097
  * item markup
1098
  */
1099
  $column_index++;
1100
- if ( $markup_values['columns'] > 0 && $column_index % $markup_values['columns'] == 0 )
1101
- $markup_values['last_in_row'] = 'last_in_row';
1102
  else
1103
- $markup_values['last_in_row'] = '';
1104
 
1105
- $output .= MLAData::mla_parse_template( $item_template, $markup_values );
1106
 
1107
  /*
1108
  * End of row markup
@@ -1111,8 +907,8 @@ class MLAShortcodes {
1111
  $output .= MLAData::mla_parse_template( $row_close_template, $markup_values );
1112
  } // is_gallery
1113
  elseif ( ( $is_previous || $is_next ) )
1114
- return $markup_values['link'];
1115
- }
1116
 
1117
  if ($is_gallery ) {
1118
  /*
@@ -1266,7 +1062,6 @@ class MLAShortcodes {
1266
  default:
1267
  $results = join("\n", $page_links);
1268
  } // mla_paginate_type
1269
- error_log( '_paginate_links $results = ' . var_export( $results, true ), 0 );
1270
 
1271
  return $output . $results;
1272
  }
@@ -1513,7 +1308,7 @@ error_log( '_paginate_links $results = ' . var_export( $results, true ), 0 );
1513
  }
1514
 
1515
  $obmatches = preg_split('/\s*,\s*/', trim($query_parameters['orderby']));
1516
- foreach( $obmatches as $index => $value ) {
1517
  $count = preg_match('/([a-z0-9_]+)(\s+(ASC|DESC))?/i', $value, $matches);
1518
 
1519
  if ( $count && ( $value == $matches[0] ) && in_array( $matches[1], $allowed_keys ) ) {
43
  /*
44
  * Process the where-used settings option
45
  */
46
+ if ('checked' == MLAOptions::mla_get_option( MLAOptions::MLA_EXCLUDE_REVISIONS ) )
47
  $exclude_revisions = "(post_type <> 'revision') AND ";
48
  else
49
  $exclude_revisions = '';
244
  * which can be added to any input parameter
245
  */
246
  foreach ( $attr as $attr_key => $attr_value ) {
247
+ /*
248
+ * attachment-specific Gallery Display Content parameters must be evaluated
249
+ * later, when all of the information is available.
250
+ */
251
+ if ( in_array( $attr_key, array( 'mla_link_attributes', 'mla_link_class', 'mla_link_href', 'mla_link_text', 'mla_nolink_text', 'mla_rollover_text', 'mla_image_class', 'mla_image_alt', 'mla_image_attributes', 'mla_caption' ) ) )
252
+ continue;
253
+
254
  $attr_value = str_replace( '{+', '[+', str_replace( '+}', '+]', $attr_value ) );
255
+ $replacement_values = MLAData::mla_expand_field_level_parameters( $attr_value );
256
+
 
 
 
 
 
 
 
 
 
257
  if ( ! empty( $replacement_values ) )
258
  $attr[ $attr_key ] = MLAData::mla_parse_template( $attr_value, $replacement_values );
259
  }
455
  /*
456
  * Look for 'query' and 'request' substitution parameters
457
  */
458
+ $style_values = MLAData::mla_expand_field_level_parameters( $style_template, $attr, $style_values );
459
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
460
  /*
461
  * Clean up the template to resolve width or margin == 'none'
462
  */
486
  $markup_values['base_url'] = $upload_dir['baseurl'];
487
  $markup_values['base_dir'] = $upload_dir['basedir'];
488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  $open_template = MLAOptions::mla_fetch_gallery_template( $markup_values['mla_markup'] . '-open', 'markup' );
490
  if ( false === $open_template ) {
491
  $markup_values['mla_markup'] = 'default';
492
  $open_template = MLAOptions::mla_fetch_gallery_template( 'default-open', 'markup' );
493
  }
 
494
  if ( empty( $open_template ) )
495
  $open_template = '';
496
 
511
  $close_template = '';
512
 
513
  /*
514
+ * Look for gallery-level markup substitution parameters
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
515
  */
516
+ $new_text = $open_template . $row_open_template . $row_close_template . $close_template;
517
+
518
+ $markup_values = MLAData::mla_expand_field_level_parameters( $new_text, $attr, $markup_values );
 
 
 
 
 
 
 
 
 
 
519
 
520
  if ( self::$mla_debug ) {
521
  $output = self::$mla_debug_messages;
582
 
583
  $column_index = 0;
584
  foreach ( $attachments as $id => $attachment ) {
585
+ $item_values = $markup_values;
586
+
587
  /*
588
  * fill in item-specific elements
589
  */
590
+ $item_values['index'] = (string) 1 + $column_index;
591
+
592
+ $item_values['excerpt'] = wptexturize( $attachment->post_excerpt );
593
+ $item_values['attachment_ID'] = $attachment->ID;
594
+ $item_values['mime_type'] = $attachment->post_mime_type;
595
+ $item_values['menu_order'] = $attachment->menu_order;
596
+ $item_values['date'] = $attachment->post_date;
597
+ $item_values['modified'] = $attachment->post_modified;
598
+ $item_values['parent'] = $attachment->post_parent;
599
+ $item_values['parent_title'] = '(unattached)';
600
+ $item_values['parent_type'] = '';
601
+ $item_values['parent_date'] = '';
602
+ $item_values['title'] = wptexturize( $attachment->post_title );
603
+ $item_values['slug'] = wptexturize( $attachment->post_name );
604
+ $item_values['width'] = '';
605
+ $item_values['height'] = '';
606
+ $item_values['image_meta'] = '';
607
+ $item_values['image_alt'] = '';
608
+ $item_values['base_file'] = '';
609
+ $item_values['path'] = '';
610
+ $item_values['file'] = '';
611
+ $item_values['description'] = wptexturize( $attachment->post_content );
612
+ $item_values['file_url'] = wptexturize( $attachment->guid );
613
+ $item_values['author_id'] = $attachment->post_author;
614
 
615
  $user = get_user_by( 'id', $attachment->post_author );
616
  if ( isset( $user->data->display_name ) )
617
+ $item_values['author'] = wptexturize( $user->data->display_name );
618
  else
619
+ $item_values['author'] = 'unknown';
620
 
621
  $post_meta = MLAData::mla_fetch_attachment_metadata( $attachment->ID );
622
  $base_file = $post_meta['mla_wp_attached_file'];
623
  $sizes = isset( $post_meta['mla_wp_attachment_metadata']['sizes'] ) ? $post_meta['mla_wp_attachment_metadata']['sizes'] : array();
624
 
625
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['width'] ) )
626
+ $item_values['width'] = $post_meta['mla_wp_attachment_metadata']['width'];
627
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['height'] ) )
628
+ $item_values['height'] = $post_meta['mla_wp_attachment_metadata']['height'];
629
  if ( !empty( $post_meta['mla_wp_attachment_metadata']['image_meta'] ) )
630
+ $item_values['image_meta'] = wptexturize( var_export( $post_meta['mla_wp_attachment_metadata']['image_meta'], true ) );
631
  if ( !empty( $post_meta['mla_wp_attachment_image_alt'] ) )
632
+ $item_values['image_alt'] = wptexturize( $post_meta['mla_wp_attachment_image_alt'] );
633
 
634
  if ( ! empty( $base_file ) ) {
635
  $last_slash = strrpos( $base_file, '/' );
636
  if ( false === $last_slash ) {
637
  $file_name = $base_file;
638
+ $item_values['base_file'] = wptexturize( $base_file );
639
+ $item_values['file'] = wptexturize( $base_file );
640
  }
641
  else {
642
  $file_name = substr( $base_file, $last_slash + 1 );
643
+ $item_values['base_file'] = wptexturize( $base_file );
644
+ $item_values['path'] = wptexturize( substr( $base_file, 0, $last_slash + 1 ) );
645
+ $item_values['file'] = wptexturize( $file_name );
646
  }
647
  }
648
  else
650
 
651
  $parent_info = MLAData::mla_fetch_attachment_parent_data( $attachment->post_parent );
652
  if ( isset( $parent_info['parent_title'] ) )
653
+ $item_values['parent_title'] = wptexturize( $parent_info['parent_title'] );
654
 
655
  if ( isset( $parent_info['parent_date'] ) )
656
+ $item_values['parent_date'] = wptexturize( $parent_info['parent_date'] );
657
 
658
  if ( isset( $parent_info['parent_type'] ) )
659
+ $item_values['parent_type'] = wptexturize( $parent_info['parent_type'] );
660
 
661
  /*
662
+ * Add attachment-specific field-level substitution parameters
663
  */
664
+ $new_text = $item_template . str_replace( '{+', '[+', str_replace( '+}', '+]', $arguments['mla_link_attributes'] . $arguments['mla_link_class'] . $arguments['mla_link_href'] . $arguments['mla_link_text'] . $arguments['mla_nolink_text'] . $arguments['mla_rollover_text'] . $arguments['mla_image_class'] . $arguments['mla_image_alt'] . $arguments['mla_image_attributes'] . $arguments['mla_caption'] ) );
665
+
666
+ $item_values = MLAData::mla_expand_field_level_parameters( $new_text, $attr, $item_values, $attachment->ID );
667
+
668
+ if ( $item_values['captiontag'] ) {
669
+ $item_values['caption'] = wptexturize( $attachment->post_excerpt );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
670
  if ( ! empty( $arguments['mla_caption'] ) )
671
+ $item_values['caption'] = wptexturize( self::_process_shortcode_parameter( $arguments['mla_caption'], $item_values ) );
672
  }
673
  else
674
+ $item_values['caption'] = '';
675
 
676
  if ( ! empty( $arguments['mla_link_text'] ) )
677
+ $link_text = self::_process_shortcode_parameter( $arguments['mla_link_text'], $item_values );
678
  else
679
  $link_text = false;
680
 
681
+ $item_values['pagelink'] = wp_get_attachment_link($attachment->ID, $size, true, $show_icon, $link_text);
682
+ $item_values['filelink'] = wp_get_attachment_link($attachment->ID, $size, false, $show_icon, $link_text);
683
 
684
  /*
685
  * Apply the Gallery Display Content parameters.
692
  $link_attributes = '';
693
 
694
  if ( ! empty( $arguments['mla_link_attributes'] ) )
695
+ $link_attributes .= self::_process_shortcode_parameter( $arguments['mla_link_attributes'], $item_values ) . ' ';
696
 
697
  if ( ! empty( $arguments['mla_link_class'] ) )
698
+ $link_attributes .= 'class="' . self::_process_shortcode_parameter( $arguments['mla_link_class'], $item_values ) . '" ';
699
 
700
  if ( ! empty( $link_attributes ) ) {
701
+ $item_values['pagelink'] = str_replace( '<a href=', '<a ' . $link_attributes . 'href=', $item_values['pagelink'] );
702
+ $item_values['filelink'] = str_replace( '<a href=', '<a ' . $link_attributes . 'href=', $item_values['filelink'] );
703
  }
704
 
705
  if ( ! empty( $arguments['mla_rollover_text'] ) ) {
706
+ $rollover_text = esc_attr( self::_process_shortcode_parameter( $arguments['mla_rollover_text'], $item_values ) );
707
 
708
  /*
709
  * Replace single- and double-quote delimited values
710
  */
711
+ $item_values['pagelink'] = preg_replace('# title=\'([^\']*)\'#', " title='{$rollover_text}'", $item_values['pagelink'] );
712
+ $item_values['pagelink'] = preg_replace('# title=\"([^\"]*)\"#', " title=\"{$rollover_text}\"", $item_values['pagelink'] );
713
+ $item_values['filelink'] = preg_replace('# title=\'([^\']*)\'#', " title='{$rollover_text}'", $item_values['filelink'] );
714
+ $item_values['filelink'] = preg_replace('# title=\"([^\"]*)\"#', " title=\"{$rollover_text}\"", $item_values['filelink'] );
715
  }
716
  else
717
+ $rollover_text = $item_values['title'];
718
 
719
  /*
720
  * Process the <img> tag, if present
722
  * are used in the Google Viewer code below
723
  */
724
  if ( ! empty( $arguments['mla_image_attributes'] ) )
725
+ $image_attributes = self::_process_shortcode_parameter( $arguments['mla_image_attributes'], $item_values ) . ' ';
726
  else
727
  $image_attributes = '';
728
 
729
  if ( ! empty( $arguments['mla_image_class'] ) )
730
+ $image_class = esc_attr( self::_process_shortcode_parameter( $arguments['mla_image_class'], $item_values ) );
731
  else
732
  $image_class = '';
733
 
734
  if ( ! empty( $arguments['mla_image_alt'] ) )
735
+ $image_alt = esc_attr( self::_process_shortcode_parameter( $arguments['mla_image_alt'], $item_values ) );
736
  else
737
  $image_alt = '';
738
 
739
+ if ( false !== strpos( $item_values['pagelink'], '<img ' ) ) {
740
  if ( ! empty( $image_attributes ) ) {
741
+ $item_values['pagelink'] = str_replace( '<img ', '<img ' . $image_attributes, $item_values['pagelink'] );
742
+ $item_values['filelink'] = str_replace( '<img ', '<img ' . $image_attributes, $item_values['filelink'] );
743
  }
744
 
745
  /*
746
  * Extract existing class values and add to them
747
  */
748
  if ( ! empty( $image_class ) ) {
749
+ $match_count = preg_match_all( '# class=\"([^\"]+)\" #', $item_values['pagelink'], $matches, PREG_OFFSET_CAPTURE );
750
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
751
  $class = $matches[1][0][0] . ' ' . $image_class;
752
  }
753
  else
754
  $class = $image_class;
755
 
756
+ $item_values['pagelink'] = preg_replace('# class=\"([^\"]*)\"#', " class=\"{$class}\"", $item_values['pagelink'] );
757
+ $item_values['filelink'] = preg_replace('# class=\"([^\"]*)\"#', " class=\"{$class}\"", $item_values['filelink'] );
758
  }
759
 
760
  if ( ! empty( $image_alt ) ) {
761
+ $item_values['pagelink'] = preg_replace('# alt=\"([^\"]*)\"#', " alt=\"{$image_alt}\"", $item_values['pagelink'] );
762
+ $item_values['filelink'] = preg_replace('# alt=\"([^\"]*)\"#', " alt=\"{$image_alt}\"", $item_values['filelink'] );
763
  }
764
  } // process <img> tag
765
 
766
  switch ( $arguments['link'] ) {
767
  case 'permalink':
768
  case 'post':
769
+ $item_values['link'] = $item_values['pagelink'];
770
  break;
771
  case 'file':
772
  case 'full':
773
+ $item_values['link'] = $item_values['filelink'];
774
  break;
775
  default:
776
+ $item_values['link'] = $item_values['filelink'];
777
 
778
  /*
779
  * Check for link to specific (registered) file size
780
  */
781
  if ( array_key_exists( $arguments['link'], $sizes ) ) {
782
  $target_file = $sizes[ $arguments['link'] ]['file'];
783
+ $item_values['link'] = str_replace( $file_name, $target_file, $item_values['filelink'] );
784
  }
785
  } // switch 'link'
786
 
787
  /*
788
  * Extract target and thumbnail fields
789
  */
790
+ $match_count = preg_match_all( '#href=\'([^\']+)\'#', $item_values['pagelink'], $matches, PREG_OFFSET_CAPTURE );
791
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
792
+ $item_values['pagelink_url'] = $matches[1][0][0];
793
  }
794
  else
795
+ $item_values['pagelink_url'] = '';
796
 
797
+ $match_count = preg_match_all( '#href=\'([^\']+)\'#', $item_values['filelink'], $matches, PREG_OFFSET_CAPTURE );
798
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
799
+ $item_values['filelink_url'] = $matches[1][0][0];
800
  }
801
  else
802
+ $item_values['filelink_url'] = '';
803
 
804
+ $match_count = preg_match_all( '#href=\'([^\']+)\'#', $item_values['link'], $matches, PREG_OFFSET_CAPTURE );
805
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
806
+ $item_values['link_url'] = $matches[1][0][0];
807
  }
808
  else
809
+ $item_values['link_url'] = '';
810
 
811
  /*
812
  * Override the link value; leave filelink and pagelink unchanged
813
  * Note that $link_href is used in the Google Viewer code below
814
  */
815
  if ( ! empty( $arguments['mla_link_href'] ) ) {
816
+ $link_href = self::_process_shortcode_parameter( $arguments['mla_link_href'], $item_values );
817
 
818
  /*
819
  * Replace single- and double-quote delimited values
820
  */
821
+ $item_values['link'] = preg_replace('# href=\'([^\']*)\'#', " href='{$link_href}'", $item_values['link'] );
822
+ $item_values['link'] = preg_replace('# href=\"([^\"]*)\"#', " href=\"{$link_href}\"", $item_values['link'] );
823
  }
824
  else
825
  $link_href = '';
826
 
827
+ $match_count = preg_match_all( '#\<a [^\>]+\>(.*)\</a\>#', $item_values['link'], $matches, PREG_OFFSET_CAPTURE );
828
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
829
+ $item_values['thumbnail_content'] = $matches[1][0][0];
830
  }
831
  else
832
+ $item_values['thumbnail_content'] = '';
833
 
834
+ $match_count = preg_match_all( '# width=\"([^\"]+)\" height=\"([^\"]+)\" src=\"([^\"]+)\" #', $item_values['link'], $matches, PREG_OFFSET_CAPTURE );
835
  if ( ! ( ( $match_count == false ) || ( $match_count == 0 ) ) ) {
836
+ $item_values['thumbnail_width'] = $matches[1][0][0];
837
+ $item_values['thumbnail_height'] = $matches[2][0][0];
838
+ $item_values['thumbnail_url'] = $matches[3][0][0];
839
  }
840
  else {
841
+ $item_values['thumbnail_width'] = '';
842
+ $item_values['thumbnail_height'] = '';
843
+ $item_values['thumbnail_url'] = '';
844
  }
845
 
846
  /*
848
  * $link_attributes (includes target), $rollover_text, $link_href (link only),
849
  * $image_attributes, $image_class, $image_alt
850
  */
851
+ if ( $arguments['mla_viewer'] && empty( $item_values['thumbnail_url'] ) ) {
852
+ $last_dot = strrpos( $item_values['file'], '.' );
853
  if ( !( false === $last_dot) ) {
854
+ $extension = substr( $item_values['file'], $last_dot + 1 );
855
  if ( in_array( $extension, $arguments['mla_viewer_extensions'] ) ) {
856
  /*
857
  * <img> tag (thumbnail_text)
861
 
862
  if ( ! empty( $image_alt ) )
863
  $image_alt = ' alt="' . $image_alt . '"';
864
+ elseif ( ! empty( $item_values['caption'] ) )
865
+ $image_alt = ' alt="' . $item_values['caption'] . '"';
866
 
867
+ $item_values['thumbnail_content'] = sprintf( '<img %1$ssrc="http://docs.google.com/viewer?url=%2$s&a=bi&pagenumber=%3$d&w=%4$d"%5$s%6$s>', $image_attributes, $item_values['filelink_url'], $arguments['mla_viewer_page'], $arguments['mla_viewer_width'], $image_class, $image_alt );
868
 
869
  /*
870
  * Filelink, pagelink and link
871
  */
872
+ $item_values['pagelink'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $item_values['pagelink_url'], $rollover_text, $item_values['thumbnail_content'] );
873
+ $item_values['filelink'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $item_values['filelink_url'], $rollover_text, $item_values['thumbnail_content'] );
874
 
875
  if ( ! empty( $link_href ) )
876
+ $item_values['link'] = sprintf( '<a %1$shref="%2$s" title="%3$s">%4$s</a>', $link_attributes, $link_href, $rollover_text, $item_values['thumbnail_content'] );
877
  elseif ( 'permalink' == $arguments['link'] )
878
+ $item_values['link'] = $item_values['pagelink'];
879
  else
880
+ $item_values['link'] = $item_values['filelink'];
881
  } // viewer extension
882
  } // has extension
883
  } // mla_viewer
893
  * item markup
894
  */
895
  $column_index++;
896
+ if ( $item_values['columns'] > 0 && $column_index % $item_values['columns'] == 0 )
897
+ $item_values['last_in_row'] = 'last_in_row';
898
  else
899
+ $item_values['last_in_row'] = '';
900
 
901
+ $output .= MLAData::mla_parse_template( $item_template, $item_values );
902
 
903
  /*
904
  * End of row markup
907
  $output .= MLAData::mla_parse_template( $row_close_template, $markup_values );
908
  } // is_gallery
909
  elseif ( ( $is_previous || $is_next ) )
910
+ return $item_values['link'];
911
+ } // foreach attachment
912
 
913
  if ($is_gallery ) {
914
  /*
1062
  default:
1063
  $results = join("\n", $page_links);
1064
  } // mla_paginate_type
 
1065
 
1066
  return $output . $results;
1067
  }
1308
  }
1309
 
1310
  $obmatches = preg_split('/\s*,\s*/', trim($query_parameters['orderby']));
1311
+ foreach ( $obmatches as $index => $value ) {
1312
  $count = preg_match('/([a-z0-9_]+)(\s+(ASC|DESC))?/i', $value, $matches);
1313
 
1314
  if ( $count && ( $value == $matches[0] ) && in_array( $matches[1], $allowed_keys ) ) {
includes/class-mla-upload-list-table.php CHANGED
@@ -578,7 +578,7 @@ class MLA_Upload_List_Table extends WP_List_Table {
578
  $s = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : '';
579
  $upload_items = MLAMime::mla_tabulate_upload_items( $s );
580
  $view_links = array();
581
- foreach( $upload_items as $slug => $item )
582
  $view_links[ $slug ] = self::_get_view( $slug, $item, $current_view );
583
 
584
  return $view_links;
578
  $s = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : '';
579
  $upload_items = MLAMime::mla_tabulate_upload_items( $s );
580
  $view_links = array();
581
+ foreach ( $upload_items as $slug => $item )
582
  $view_links[ $slug ] = self::_get_view( $slug, $item, $current_view );
583
 
584
  return $view_links;
includes/mla-plugin-loader.php CHANGED
@@ -47,65 +47,65 @@ if ( ! empty( $mla_plugin_loader_error_messages ) ) {
47
  add_action( 'admin_notices', 'mla_plugin_loader_reporting_action' );
48
  }
49
  else {
50
- add_action( 'init', 'MLATest::initialize' );
51
 
52
  /*
53
  * Template file and database access functions.
54
  */
55
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-data.php' );
56
- add_action( 'init', 'MLAData::initialize' );
57
 
58
  /*
59
  * Custom Taxonomies and WordPress objects.
60
  */
61
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-objects.php' );
62
- add_action('init', 'MLAObjects::initialize');
63
 
64
  /*
65
  * MIME Type functions.
66
  */
67
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-mime-types.php' );
68
- add_action('init', 'MLAMime::initialize');
69
 
70
  /*
71
  * Shortcodes
72
  */
73
- require_once( MLA_PLUGIN_PATH . 'includes/class-mla-shortcodes.php');
74
- add_action('init', 'MLAShortcodes::initialize');
75
 
76
  /*
77
  * WordPress 3.5 and later Edit Media screen additions, e.g., meta boxes
78
  */
79
  if ( version_compare( get_bloginfo( 'version' ), '3.5', '>=' ) ) {
80
- require_once( MLA_PLUGIN_PATH . 'includes/class-mla-edit-media.php');
81
- add_action('init', 'MLAEdit::initialize');
82
  }
83
 
84
  /*
85
  * WordPress 3.5 and later Media Manager (Modal window) additions
86
  */
87
  if ( version_compare( get_bloginfo( 'version' ), '3.5', '>=' ) ) {
88
- require_once( MLA_PLUGIN_PATH . 'includes/class-mla-media-modal.php');
89
- add_action('init', 'MLAModal::initialize');
90
  }
91
 
92
  /*
93
  * Plugin settings management
94
  */
95
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-options.php' );
96
- add_action( 'init', 'MLAOptions::initialize' );
97
 
98
  /*
99
  * Plugin settings management page
100
  */
101
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings.php' );
102
- add_action( 'init', 'MLASettings::initialize' );
103
 
104
  /*
105
  * Main program
106
  */
107
- require_once( MLA_PLUGIN_PATH . 'includes/class-mla-main.php');
108
- add_action('init', 'MLA::initialize');
109
 
110
  /*
111
  * Custom list table package that extends the core WP_List_Table class.
47
  add_action( 'admin_notices', 'mla_plugin_loader_reporting_action' );
48
  }
49
  else {
50
+ add_action( 'init', 'MLATest::initialize', 0x7FFFFFFF );
51
 
52
  /*
53
  * Template file and database access functions.
54
  */
55
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-data.php' );
56
+ add_action( 'init', 'MLAData::initialize', 0x7FFFFFFF );
57
 
58
  /*
59
  * Custom Taxonomies and WordPress objects.
60
  */
61
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-objects.php' );
62
+ add_action( 'init', 'MLAObjects::initialize', 0x7FFFFFFF );
63
 
64
  /*
65
  * MIME Type functions.
66
  */
67
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-mime-types.php' );
68
+ add_action( 'init', 'MLAMime::initialize', 0x7FFFFFFF );
69
 
70
  /*
71
  * Shortcodes
72
  */
73
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-shortcodes.php' );
74
+ add_action( 'init', 'MLAShortcodes::initialize', 0x7FFFFFFF );
75
 
76
  /*
77
  * WordPress 3.5 and later Edit Media screen additions, e.g., meta boxes
78
  */
79
  if ( version_compare( get_bloginfo( 'version' ), '3.5', '>=' ) ) {
80
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-edit-media.php' );
81
+ add_action( 'init', 'MLAEdit::initialize', 0x7FFFFFFF );
82
  }
83
 
84
  /*
85
  * WordPress 3.5 and later Media Manager (Modal window) additions
86
  */
87
  if ( version_compare( get_bloginfo( 'version' ), '3.5', '>=' ) ) {
88
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-media-modal.php' );
89
+ add_action( 'init', 'MLAModal::initialize', 0x7FFFFFFF );
90
  }
91
 
92
  /*
93
  * Plugin settings management
94
  */
95
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-options.php' );
96
+ add_action( 'init', 'MLAOptions::initialize', 0x7FFFFFFF );
97
 
98
  /*
99
  * Plugin settings management page
100
  */
101
  require_once( MLA_PLUGIN_PATH . 'includes/class-mla-settings.php' );
102
+ add_action( 'init', 'MLASettings::initialize', 0x7FFFFFFF );
103
 
104
  /*
105
  * Main program
106
  */
107
+ require_once( MLA_PLUGIN_PATH . 'includes/class-mla-main.php' );
108
+ add_action( 'init', 'MLA::initialize', 0x7FFFFFFF );
109
 
110
  /*
111
  * Custom list table package that extends the core WP_List_Table class.
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 1.43
10
  */
11
 
12
  /*
@@ -14,8 +14,23 @@ Plugin Name: Media Library Assistant
14
  Plugin URI: http://fairtradejudaica.org/media-library-assistant-a-wordpress-plugin/
15
  Description: Enhances the Media Library; powerful[mla_gallery], taxonomy support, IPTC/EXIF processing, bulk & quick edit actions and where-used reporting.
16
  Author: David Lingren
17
- Version: 1.43
18
  Author URI: http://fairtradejudaica.org/our-story/staff/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  */
20
 
21
  /**
@@ -30,7 +45,7 @@ if ( defined( 'MLA_PLUGIN_PATH' ) ) {
30
  }
31
  else {
32
  /**
33
- * Provides path information to the plugin root in file system format.
34
  */
35
  define( 'MLA_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
36
  }
@@ -45,6 +60,16 @@ else {
45
  define( 'MLA_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
46
  }
47
 
 
 
 
 
 
 
 
 
 
 
48
  /**
49
  * Defines classes, functions and constants for name conflict tests. There are no global functions
50
  * or other constants in this version; everything is wrapped in classes to minimize potential conflicts.
6
  * will the rest of the plugin be loaded and run.
7
  *
8
  * @package Media Library Assistant
9
+ * @version 1.50
10
  */
11
 
12
  /*
14
  Plugin URI: http://fairtradejudaica.org/media-library-assistant-a-wordpress-plugin/
15
  Description: Enhances the Media Library; powerful[mla_gallery], taxonomy support, IPTC/EXIF processing, bulk & quick edit actions and where-used reporting.
16
  Author: David Lingren
17
+ Version: 1.50
18
  Author URI: http://fairtradejudaica.org/our-story/staff/
19
+
20
+ Copyright 2011-2013 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
24
+ the Free Software Foundation; either version 2 of the License, or
25
+ (at your option) any later version.
26
+
27
+ This program is distributed in the hope that it will be useful,
28
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
29
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30
+ GNU General Public License for more details.
31
+
32
+ You can get a copy of the GNU General Public License by writing to the
33
+ Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
34
  */
35
 
36
  /**
45
  }
46
  else {
47
  /**
48
+ * Provides path information to the plugin root in file system format, including the trailing slash.
49
  */
50
  define( 'MLA_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
51
  }
60
  define( 'MLA_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
61
  }
62
 
63
+ if ( ! defined( 'MLA_BACKUP_DIR' ) ) {
64
+ /**
65
+ * Provides the absolute path to the MLA backup directory, including the trailing slash.
66
+ * This constant can be overriden by defining it in the wp_config.php file.
67
+ */
68
+ $content_dir = ( defined('WP_CONTENT_DIR') ) ? WP_CONTENT_DIR : ABSPATH . 'wp-content';
69
+ define( 'MLA_BACKUP_DIR', $content_dir . '/mla-backup/' );
70
+ unset( $content_dir );
71
+ }
72
+
73
  /**
74
  * Defines classes, functions and constants for name conflict tests. There are no global functions
75
  * or other constants in this version; everything is wrapped in classes to minimize potential conflicts.
phpDocs/classes/MLA.html CHANGED
@@ -675,7 +675,7 @@ change the meta data for a single attachment.</h2>
675
  <div class="row"><footer class="span12">
676
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
677
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
678
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
679
  </div>
680
  </body>
681
  </html>
675
  <div class="row"><footer class="span12">
676
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
677
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
678
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
679
  </div>
680
  </body>
681
  </html>
phpDocs/classes/MLAData.html CHANGED
@@ -57,6 +57,7 @@
57
  <li class="method public "><a href="#initialize" title="initialize :: Initialization function, similar to __construct()"><span class="description">Initialization function, similar to __construct()</span><pre>initialize()</pre></a></li>
58
  <li class="method public "><a href="#mla_count_list_table_items" title="mla_count_list_table_items :: Get the total number of attachment posts"><span class="description">Get the total number of attachment posts</span><pre>mla_count_list_table_items()</pre></a></li>
59
  <li class="method public "><a href="#mla_exif_metadata_value" title="mla_exif_metadata_value :: Parse one EXIF metadata field"><span class="description">Parse one EXIF metadata field</span><pre>mla_exif_metadata_value()</pre></a></li>
 
60
  <li class="method public "><a href="#mla_fetch_attachment_image_metadata" title="mla_fetch_attachment_image_metadata :: Fetch and filter IPTC and EXIF meta data for an image attachment"><span class="description">Fetch and filter IPTC and EXIF meta data for an image attachment</span><pre>mla_fetch_attachment_image_metadata()</pre></a></li>
61
  <li class="method public "><a href="#mla_fetch_attachment_metadata" title="mla_fetch_attachment_metadata :: Fetch and filter meta data for an attachment"><span class="description">Fetch and filter meta data for an attachment</span><pre>mla_fetch_attachment_metadata()</pre></a></li>
62
  <li class="method public "><a href="#mla_fetch_attachment_parent_data" title="mla_fetch_attachment_parent_data :: Returns information about an attachment's parent, if found"><span class="description">Returns information about an attachment's parent, if found</span><pre>mla_fetch_attachment_parent_data()</pre></a></li>
@@ -64,10 +65,11 @@
64
  <li class="method public "><a href="#mla_find_array_element" title="mla_find_array_element :: Finds the value of a key in a possibily nested array structure"><span class="description">Finds the value of a key in a possibily nested array structure</span><pre>mla_find_array_element()</pre></a></li>
65
  <li class="method public "><a href="#mla_flush_mla_galleries" title="mla_flush_mla_galleries :: Invalidates the $mla_galleries or $galleries array and cached values"><span class="description">Invalidates the $mla_galleries or $galleries array and cached values</span><pre>mla_flush_mla_galleries()</pre></a></li>
66
  <li class="method public "><a href="#mla_get_attachment_by_id" title="mla_get_attachment_by_id :: Retrieve an Attachment array given a $post_id"><span class="description">Retrieve an Attachment array given a $post_id</span><pre>mla_get_attachment_by_id()</pre></a></li>
67
- <li class="method public "><a href="#mla_get_template_placeholders" title="mla_get_template_placeholders :: Analyze a template, returning an array of the place holders it contains"><span class="description">Analyze a template, returning an array of the place holders it contains</span><pre>mla_get_template_placeholders()</pre></a></li>
68
  <li class="method public "><a href="#mla_iptc_metadata_value" title="mla_iptc_metadata_value :: Parse one IPTC metadata field"><span class="description">Parse one IPTC metadata field</span><pre>mla_iptc_metadata_value()</pre></a></li>
69
  <li class="method public "><a href="#mla_load_template" title="mla_load_template :: Load an HTML template from a file"><span class="description">Load an HTML template from a file</span><pre>mla_load_template()</pre></a></li>
70
- <li class="method public "><a href="#mla_parse_template" title="mla_parse_template :: Expand a template, replacing place holders with their values"><span class="description">Expand a template, replacing place holders with their values</span><pre>mla_parse_template()</pre></a></li>
 
71
  <li class="method public "><a href="#mla_pdf_metadata_value" title="mla_pdf_metadata_value :: Parse one PDF metadata field"><span class="description">Parse one PDF metadata field</span><pre>mla_pdf_metadata_value()</pre></a></li>
72
  <li class="method public "><a href="#mla_query_list_table_items" title="mla_query_list_table_items :: Retrieve attachment objects for list table display"><span class="description">Retrieve attachment objects for list table display</span><pre>mla_query_list_table_items()</pre></a></li>
73
  <li class="method public "><a href="#mla_query_media_modal_items" title="mla_query_media_modal_items :: Retrieve attachment objects for the WordPress Media Manager"><span class="description">Retrieve attachment objects for the WordPress Media Manager</span><pre>mla_query_media_modal_items()</pre></a></li>
@@ -84,17 +86,29 @@ for a single attachment.</span><pre>mla_update_single_item()</pre></a></li>
84
  <li class="method private "><a href="#_bin_to_utf8" title="_bin_to_utf8 :: Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents"><span class="description">Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents</span><pre>_bin_to_utf8()</pre></a></li>
85
  <li class="method private "><a href="#_build_mla_galleries" title="_build_mla_galleries :: Builds the $mla_galleries or $galleries array"><span class="description">Builds the $mla_galleries or $galleries array</span><pre>_build_mla_galleries()</pre></a></li>
86
  <li class="method private "><a href="#_build_pdf_indirect_objects" title="_build_pdf_indirect_objects :: Build an array of indirect object definitions"><span class="description">Build an array of indirect object definitions</span><pre>_build_pdf_indirect_objects()</pre></a></li>
 
 
87
  <li class="method private "><a href="#_execute_list_table_query" title="_execute_list_table_query :: Add filters, run query, remove filters"><span class="description">Add filters, run query, remove filters</span><pre>_execute_list_table_query()</pre></a></li>
 
88
  <li class="method private "><a href="#_extract_pdf_metadata" title="_extract_pdf_metadata :: Extract Metadata from a PDF file"><span class="description">Extract Metadata from a PDF file</span><pre>_extract_pdf_metadata()</pre></a></li>
 
89
  <li class="method private "><a href="#_find_pdf_indirect_dictionary" title="_find_pdf_indirect_dictionary :: Find the offset, length and contents of an indirect object containing a dictionary"><span class="description">Find the offset, length and contents of an indirect object containing a dictionary</span><pre>_find_pdf_indirect_dictionary()</pre></a></li>
 
 
90
  <li class="method private "><a href="#_hex_dump" title="_hex_dump :: Format printable version of binary data"><span class="description">Format printable version of binary data</span><pre>_hex_dump()</pre></a></li>
 
91
  <li class="method private "><a href="#_parse_iso8601_date" title="_parse_iso8601_date :: Parse a ISO 8601 Timestamp"><span class="description">Parse a ISO 8601 Timestamp</span><pre>_parse_iso8601_date()</pre></a></li>
 
92
  <li class="method private "><a href="#_parse_pdf_UTF16BE" title="_parse_pdf_UTF16BE :: Parse a PDF Unicode (16-bit Big Endian) object"><span class="description">Parse a PDF Unicode (16-bit Big Endian) object</span><pre>_parse_pdf_UTF16BE()</pre></a></li>
93
  <li class="method private "><a href="#_parse_pdf_date" title="_parse_pdf_date :: Parse a PDF date string"><span class="description">Parse a PDF date string</span><pre>_parse_pdf_date()</pre></a></li>
94
  <li class="method private "><a href="#_parse_pdf_dictionary" title="_parse_pdf_dictionary :: Parse a PDF dictionary object"><span class="description">Parse a PDF dictionary object</span><pre>_parse_pdf_dictionary()</pre></a></li>
95
  <li class="method private "><a href="#_parse_pdf_string" title="_parse_pdf_string :: Parse a PDF string object"><span class="description">Parse a PDF string object</span><pre>_parse_pdf_string()</pre></a></li>
 
 
 
96
  <li class="method private "><a href="#_parse_xmp_metadata" title="_parse_xmp_metadata :: Parse an XMP object"><span class="description">Parse an XMP object</span><pre>_parse_xmp_metadata()</pre></a></li>
97
  <li class="method private "><a href="#_prepare_list_table_query" title="_prepare_list_table_query :: Sanitize and expand query arguments from request variables"><span class="description">Sanitize and expand query arguments from request variables</span><pre>_prepare_list_table_query()</pre></a></li>
 
98
  <li class="method private "><a href="#_remove_tags" title="_remove_tags :: Remove tags from a term ids list"><span class="description">Remove tags from a term ids list</span><pre>_remove_tags()</pre></a></li>
99
  <li class="method private "><a href="#_search_mla_galleries" title="_search_mla_galleries :: Search the $mla_galleries or $galleries array"><span class="description">Search the $mla_galleries or $galleries array</span><pre>_search_mla_galleries()</pre></a></li>
100
  <li class="nav-header">
@@ -186,11 +200,10 @@ Templates separate HTML markup from PHP code for easier maintenance and localiza
186
  </div>
187
  <a name="mla_exif_metadata_value" id="mla_exif_metadata_value"></a><div class="element clickable method public mla_exif_metadata_value" data-toggle="collapse" data-target=".mla_exif_metadata_value .collapse">
188
  <h2>Parse one EXIF metadata field</h2>
189
- <pre>mla_exif_metadata_value(string $exif_key, string $item_metadata) : string</pre>
190
  <div class="labels"></div>
191
  <div class="row collapse"><div class="detail-description">
192
- <p class="long_description"><p>Returns a string value, converting array data to a string as necessary.
193
- Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.</p></p>
194
  <table class="table table-bordered"><tr>
195
  <th>since</th>
196
  <td>1.13</td>
@@ -204,7 +217,46 @@ Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.</p></p>
204
  <code>string</code><p>metadata array containing iptc, exif, and pdf metadata arrays</p></div>
205
  <h3>Returns</h3>
206
  <div class="subelement response">
207
- <code>string</code>string representation of metadata value or an empty string</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  </div></div>
209
  </div>
210
  <a name="mla_fetch_attachment_image_metadata" id="mla_fetch_attachment_image_metadata"></a><div class="element clickable method public mla_fetch_attachment_image_metadata" data-toggle="collapse" data-target=".mla_fetch_attachment_image_metadata .collapse">
@@ -315,7 +367,7 @@ Could also be used with the ID3 metadata exposed in WordPress 3.6 and later.</p>
315
  <code>array</code><p>PHP nested arrays</p></div>
316
  <div class="subelement argument">
317
  <h4>$option</h4>
318
- <code>string</code><p>format option 'text'|'single'|'export'|'array'|'multi'</p>
319
  </div>
320
  <div class="subelement argument">
321
  <h4>$keep_existing</h4>
@@ -370,8 +422,8 @@ the posts and postmeta tables, and all references to the attachment.</p></p>
370
  </div></div>
371
  </div>
372
  <a name="mla_get_template_placeholders" id="mla_get_template_placeholders"></a><div class="element clickable method public mla_get_template_placeholders" data-toggle="collapse" data-target=".mla_get_template_placeholders .collapse">
373
- <h2>Analyze a template, returning an array of the place holders it contains</h2>
374
- <pre>mla_get_template_placeholders(string $tpl) : array</pre>
375
  <div class="labels"></div>
376
  <div class="row collapse"><div class="detail-description">
377
  <p class="long_description"></p>
@@ -384,9 +436,12 @@ the posts and postmeta tables, and all references to the attachment.</p></p>
384
  <h4>$tpl</h4>
385
  <code>string</code><p>A formatting string containing [+placeholders+]</p>
386
  </div>
 
 
 
387
  <h3>Returns</h3>
388
  <div class="subelement response">
389
- <code>array</code>Placeholder information: each entry is an array with ['prefix'] => string, ['value'] => string, ['option'] => string 'single'|'export'</div>
390
  </div></div>
391
  </div>
392
  <a name="mla_iptc_metadata_value" id="mla_iptc_metadata_value"></a><div class="element clickable method public mla_iptc_metadata_value" data-toggle="collapse" data-target=".mla_iptc_metadata_value .collapse">
@@ -394,7 +449,7 @@ the posts and postmeta tables, and all references to the attachment.</p></p>
394
  <pre>mla_iptc_metadata_value(string $iptc_key, string $item_metadata) : mixed</pre>
395
  <div class="labels"></div>
396
  <div class="row collapse"><div class="detail-description">
397
- <p class="long_description"><p>Returns a string value, converting array data to a string as necessary.</p></p>
398
  <table class="table table-bordered"><tr>
399
  <th>since</th>
400
  <td>1.41</td>
@@ -437,9 +492,33 @@ where "key" becomes the key part of the array.</p></p>
437
  <code>string</code><code>array</code><code>false</code><code>NULL</code>string for files that do not contain template divider comments, array for files containing template divider comments, false if file or option does not exist, NULL if file could not be loaded.</div>
438
  </div></div>
439
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  <a name="mla_parse_template" id="mla_parse_template"></a><div class="element clickable method public mla_parse_template" data-toggle="collapse" data-target=".mla_parse_template .collapse">
441
- <h2>Expand a template, replacing place holders with their values</h2>
442
- <pre>mla_parse_template(string $tpl, array $hash) : string</pre>
443
  <div class="labels"></div>
444
  <div class="row collapse"><div class="detail-description">
445
  <p class="long_description"><p>A simple parsing function for basic templating.</p></p>
@@ -453,24 +532,23 @@ where "key" becomes the key part of the array.</p></p>
453
  <code>string</code><p>A formatting string containing [+placeholders+]</p>
454
  </div>
455
  <div class="subelement argument">
456
- <h4>$hash</h4>
457
  <code>array</code><p>An associative array containing keys and values e.g. array('key' => 'value')</p>
458
  </div>
459
  <h3>Returns</h3>
460
  <div class="subelement response">
461
- <code>string</code>Placeholders corresponding to the keys of the hash will be replaced with their values</div>
462
  </div></div>
463
  </div>
464
  <a name="mla_pdf_metadata_value" id="mla_pdf_metadata_value"></a><div class="element clickable method public mla_pdf_metadata_value" data-toggle="collapse" data-target=".mla_pdf_metadata_value .collapse">
465
  <h2>Parse one PDF metadata field</h2>
466
- <pre>mla_pdf_metadata_value(string $pdf_key, string $item_metadata) : string</pre>
467
  <div class="labels"></div>
468
  <div class="row collapse"><div class="detail-description">
469
- <p class="long_description"><p>Returns a string value, converting array data to a string as necessary.
470
- Also handles the special pseudo-value 'ALL_PDF'.</p></p>
471
  <table class="table table-bordered"><tr>
472
  <th>since</th>
473
- <td>1.4x</td>
474
  </tr></table>
475
  <h3>Parameters</h3>
476
  <div class="subelement argument">
@@ -481,7 +559,7 @@ Also handles the special pseudo-value 'ALL_PDF'.</p></p>
481
  <code>string</code><p>metadata array containing iptc, exif, and pdf metadata arrays</p></div>
482
  <h3>Returns</h3>
483
  <div class="subelement response">
484
- <code>string</code>string representation of metadata value or an empty string</div>
485
  </div></div>
486
  </div>
487
  <a name="mla_query_list_table_items" id="mla_query_list_table_items"></a><div class="element clickable method public mla_query_list_table_items" data-toggle="collapse" data-target=".mla_query_list_table_items .collapse">
@@ -744,7 +822,7 @@ for a single attachment.</h2>
744
  <p class="long_description"><p>Creates the array of indirect object offsets and lengths</p></p>
745
  <table class="table table-bordered"><tr>
746
  <th>since</th>
747
- <td>1.4x</td>
748
  </tr></table>
749
  <h3>Parameters</h3>
750
  <div class="subelement argument">
@@ -752,6 +830,52 @@ for a single attachment.</h2>
752
  <code>string</code><p>The entire PDF document, passsed by reference</p></div>
753
  </div></div>
754
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
755
  <a name="_execute_list_table_query" id="_execute_list_table_query"></a><div class="element clickable method private _execute_list_table_query" data-toggle="collapse" data-target="._execute_list_table_query .collapse">
756
  <h2>Add filters, run query, remove filters</h2>
757
  <pre>_execute_list_table_query(array $request) : object</pre>
@@ -772,6 +896,33 @@ for a single attachment.</h2>
772
  <code>object</code>WP_Query object with query results</div>
773
  </div></div>
774
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
775
  <a name="_extract_pdf_metadata" id="_extract_pdf_metadata"></a><div class="element clickable method private _extract_pdf_metadata" data-toggle="collapse" data-target="._extract_pdf_metadata .collapse">
776
  <h2>Extract Metadata from a PDF file</h2>
777
  <pre>_extract_pdf_metadata(string $file_name) : array</pre>
@@ -780,7 +931,7 @@ for a single attachment.</h2>
780
  <p class="long_description"></p>
781
  <table class="table table-bordered"><tr>
782
  <th>since</th>
783
- <td>1.4x</td>
784
  </tr></table>
785
  <h3>Parameters</h3>
786
  <div class="subelement argument">
@@ -791,20 +942,44 @@ for a single attachment.</h2>
791
  <code>array</code>( key => value ) for each metadata field, in string format</div>
792
  </div></div>
793
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
794
  <a name="_find_pdf_indirect_dictionary" id="_find_pdf_indirect_dictionary"></a><div class="element clickable method private _find_pdf_indirect_dictionary" data-toggle="collapse" data-target="._find_pdf_indirect_dictionary .collapse">
795
  <h2>Find the offset, length and contents of an indirect object containing a dictionary</h2>
796
- <pre>_find_pdf_indirect_dictionary(string $string, integer $object, integer $generation) : mixed</pre>
797
  <div class="labels"></div>
798
  <div class="row collapse"><div class="detail-description">
799
- <p class="long_description"></p>
 
800
  <table class="table table-bordered"><tr>
801
  <th>since</th>
802
- <td>1.4x</td>
803
  </tr></table>
804
  <h3>Parameters</h3>
805
  <div class="subelement argument">
806
- <h4>$string</h4>
807
- <code>string</code><p>The entire PDF document, passsed by reference</p></div>
808
  <div class="subelement argument">
809
  <h4>$object</h4>
810
  <code>integer</code><p>The object number</p></div>
@@ -817,9 +992,49 @@ for a single attachment.</h2>
817
  <code>mixed</code>NULL on failure else array( 'start' => offset in the file, 'length' => object length, 'content' => dictionary contents )</div>
818
  </div></div>
819
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
820
  <a name="_hex_dump" id="_hex_dump"></a><div class="element clickable method private _hex_dump" data-toggle="collapse" data-target="._hex_dump .collapse">
821
  <h2>Format printable version of binary data</h2>
822
- <pre>_hex_dump(string $data, integer $limit, \intger $bytes_per_row) : string</pre>
823
  <div class="labels"></div>
824
  <div class="row collapse"><div class="detail-description">
825
  <p class="long_description"></p>
@@ -838,11 +1053,34 @@ for a single attachment.</h2>
838
  <div class="subelement argument">
839
  <h4>$bytes_per_row</h4>
840
  <code>\intger</code><p>Bytes to format on each line</p></div>
 
 
 
 
841
  <h3>Returns</h3>
842
  <div class="subelement response">
843
  <code>string</code>Printable representation of $data</div>
844
  </div></div>
845
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
  <a name="_parse_iso8601_date" id="_parse_iso8601_date"></a><div class="element clickable method private _parse_iso8601_date" data-toggle="collapse" data-target="._parse_iso8601_date .collapse">
847
  <h2>Parse a ISO 8601 Timestamp</h2>
848
  <pre>_parse_iso8601_date(string $source_string) : string</pre>
@@ -851,7 +1089,7 @@ for a single attachment.</h2>
851
  <p class="long_description"></p>
852
  <table class="table table-bordered"><tr>
853
  <th>since</th>
854
- <td>1.4x</td>
855
  </tr></table>
856
  <h3>Parameters</h3>
857
  <div class="subelement argument">
@@ -863,6 +1101,32 @@ for a single attachment.</h2>
863
  <code>string</code>formatted date string YYYY-MM-DD HH:mm:SS</div>
864
  </div></div>
865
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
866
  <a name="_parse_pdf_UTF16BE" id="_parse_pdf_UTF16BE"></a><div class="element clickable method private _parse_pdf_UTF16BE" data-toggle="collapse" data-target="._parse_pdf_UTF16BE .collapse">
867
  <h2>Parse a PDF Unicode (16-bit Big Endian) object</h2>
868
  <pre>_parse_pdf_UTF16BE(string $source_string) : string</pre>
@@ -871,7 +1135,7 @@ for a single attachment.</h2>
871
  <p class="long_description"></p>
872
  <table class="table table-bordered"><tr>
873
  <th>since</th>
874
- <td>1.4x</td>
875
  </tr></table>
876
  <h3>Parameters</h3>
877
  <div class="subelement argument">
@@ -891,7 +1155,7 @@ for a single attachment.</h2>
891
  <p class="long_description"></p>
892
  <table class="table table-bordered"><tr>
893
  <th>since</th>
894
- <td>1.4x</td>
895
  </tr></table>
896
  <h3>Parameters</h3>
897
  <div class="subelement argument">
@@ -911,10 +1175,10 @@ for a single attachment.</h2>
911
  <p class="long_description"><p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
912
  indirect (object), name, array, dictionary, stream, and null.
913
  The array also has a '/length' element containing the number of bytes occupied by the
914
- dictionary in the source string, excluding the enclosing delimiters, if passed in.</p></p>
915
  <table class="table table-bordered"><tr>
916
  <th>since</th>
917
- <td>1.4x</td>
918
  </tr></table>
919
  <h3>Parameters</h3>
920
  <div class="subelement argument">
@@ -938,7 +1202,7 @@ dictionary in the source string, excluding the enclosing delimiters, if passed i
938
  the number of bytes occupied by the string in the source string, including the enclosing parentheses.</p></p>
939
  <table class="table table-bordered"><tr>
940
  <th>since</th>
941
- <td>1.4x</td>
942
  </tr></table>
943
  <h3>Parameters</h3>
944
  <div class="subelement argument">
@@ -953,9 +1217,82 @@ the number of bytes occupied by the string in the source string, including the e
953
  <code>array</code>( key => array( 'type' => type, 'value' => value, '/length' => length ) ) for the string</div>
954
  </div></div>
955
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
956
  <a name="_parse_xmp_metadata" id="_parse_xmp_metadata"></a><div class="element clickable method private _parse_xmp_metadata" data-toggle="collapse" data-target="._parse_xmp_metadata .collapse">
957
  <h2>Parse an XMP object</h2>
958
- <pre>_parse_xmp_metadata(string $source_string, integer $offset) : array</pre>
959
  <div class="labels"></div>
960
  <div class="row collapse"><div class="detail-description">
961
  <p class="long_description"><p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
@@ -964,19 +1301,18 @@ The array also has a '/length' element containing the number of bytes occupied b
964
  dictionary in the source string, excluding the enclosing delimiters, if passed in.</p></p>
965
  <table class="table table-bordered"><tr>
966
  <th>since</th>
967
- <td>1.4x</td>
968
  </tr></table>
969
  <h3>Parameters</h3>
970
  <div class="subelement argument">
971
- <h4>$source_string</h4>
972
- <code>string</code><p>data within which the string occurs</p></div>
973
  <div class="subelement argument">
974
- <h4>$offset</h4>
975
- <code>integer</code><p>offset within the source string of the opening '<<' characters or the first content character.</p>
976
- </div>
977
  <h3>Returns</h3>
978
  <div class="subelement response">
979
- <code>array</code>( '/length' => length, key => array( 'type' => type, 'value' => value ) ) for each dictionary field</div>
980
  </div></div>
981
  </div>
982
  <a name="_prepare_list_table_query" id="_prepare_list_table_query"></a><div class="element clickable method private _prepare_list_table_query" data-toggle="collapse" data-target="._prepare_list_table_query .collapse">
@@ -1008,6 +1344,33 @@ Modeled after wp_edit_attachments_query in wp-admin/post.php</p></p>
1008
  <code>array</code>revised arguments suitable for WP_Query</div>
1009
  </div></div>
1010
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1011
  <a name="_remove_tags" id="_remove_tags"></a><div class="element clickable method private _remove_tags" data-toggle="collapse" data-target="._remove_tags .collapse">
1012
  <h2>Remove tags from a term ids list</h2>
1013
  <pre>_remove_tags(array $terms_before, array $tags, object $taxonomy_obj) : array</pre>
@@ -1188,10 +1551,12 @@ the "IPTC-NAA Information Interchange Model Version No. 4.1".</p></p>
1188
  <pre>$pdf_indirect_objects : array</pre>
1189
  <div class="labels"></div>
1190
  <div class="row collapse"><div class="detail-description">
1191
- <p class="long_description"><p>This array contains all of the indirect object offsets and lengths</p></p>
 
 
1192
  <table class="table table-bordered"><tr>
1193
  <th>since</th>
1194
- <td>1.4x</td>
1195
  </tr></table>
1196
  </div></div>
1197
  </div>
@@ -1244,7 +1609,7 @@ any further logic required to translate those values is contained in the filters
1244
  <div class="row"><footer class="span12">
1245
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1246
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1247
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
1248
  </div>
1249
  </body>
1250
  </html>
57
  <li class="method public "><a href="#initialize" title="initialize :: Initialization function, similar to __construct()"><span class="description">Initialization function, similar to __construct()</span><pre>initialize()</pre></a></li>
58
  <li class="method public "><a href="#mla_count_list_table_items" title="mla_count_list_table_items :: Get the total number of attachment posts"><span class="description">Get the total number of attachment posts</span><pre>mla_count_list_table_items()</pre></a></li>
59
  <li class="method public "><a href="#mla_exif_metadata_value" title="mla_exif_metadata_value :: Parse one EXIF metadata field"><span class="description">Parse one EXIF metadata field</span><pre>mla_exif_metadata_value()</pre></a></li>
60
+ <li class="method public "><a href="#mla_expand_field_level_parameters" title="mla_expand_field_level_parameters :: Analyze a template, expanding Field-level Markup Substitution Parameters"><span class="description">Analyze a template, expanding Field-level Markup Substitution Parameters</span><pre>mla_expand_field_level_parameters()</pre></a></li>
61
  <li class="method public "><a href="#mla_fetch_attachment_image_metadata" title="mla_fetch_attachment_image_metadata :: Fetch and filter IPTC and EXIF meta data for an image attachment"><span class="description">Fetch and filter IPTC and EXIF meta data for an image attachment</span><pre>mla_fetch_attachment_image_metadata()</pre></a></li>
62
  <li class="method public "><a href="#mla_fetch_attachment_metadata" title="mla_fetch_attachment_metadata :: Fetch and filter meta data for an attachment"><span class="description">Fetch and filter meta data for an attachment</span><pre>mla_fetch_attachment_metadata()</pre></a></li>
63
  <li class="method public "><a href="#mla_fetch_attachment_parent_data" title="mla_fetch_attachment_parent_data :: Returns information about an attachment's parent, if found"><span class="description">Returns information about an attachment's parent, if found</span><pre>mla_fetch_attachment_parent_data()</pre></a></li>
65
  <li class="method public "><a href="#mla_find_array_element" title="mla_find_array_element :: Finds the value of a key in a possibily nested array structure"><span class="description">Finds the value of a key in a possibily nested array structure</span><pre>mla_find_array_element()</pre></a></li>
66
  <li class="method public "><a href="#mla_flush_mla_galleries" title="mla_flush_mla_galleries :: Invalidates the $mla_galleries or $galleries array and cached values"><span class="description">Invalidates the $mla_galleries or $galleries array and cached values</span><pre>mla_flush_mla_galleries()</pre></a></li>
67
  <li class="method public "><a href="#mla_get_attachment_by_id" title="mla_get_attachment_by_id :: Retrieve an Attachment array given a $post_id"><span class="description">Retrieve an Attachment array given a $post_id</span><pre>mla_get_attachment_by_id()</pre></a></li>
68
+ <li class="method public "><a href="#mla_get_template_placeholders" title="mla_get_template_placeholders :: Analyze a template, returning an array of the placeholders it contains"><span class="description">Analyze a template, returning an array of the placeholders it contains</span><pre>mla_get_template_placeholders()</pre></a></li>
69
  <li class="method public "><a href="#mla_iptc_metadata_value" title="mla_iptc_metadata_value :: Parse one IPTC metadata field"><span class="description">Parse one IPTC metadata field</span><pre>mla_iptc_metadata_value()</pre></a></li>
70
  <li class="method public "><a href="#mla_load_template" title="mla_load_template :: Load an HTML template from a file"><span class="description">Load an HTML template from a file</span><pre>mla_load_template()</pre></a></li>
71
+ <li class="method public "><a href="#mla_parse_array_template" title="mla_parse_array_template :: Expand a template, replacing placeholders with their values"><span class="description">Expand a template, replacing placeholders with their values</span><pre>mla_parse_array_template()</pre></a></li>
72
+ <li class="method public "><a href="#mla_parse_template" title="mla_parse_template :: Expand a template, replacing placeholders with their values"><span class="description">Expand a template, replacing placeholders with their values</span><pre>mla_parse_template()</pre></a></li>
73
  <li class="method public "><a href="#mla_pdf_metadata_value" title="mla_pdf_metadata_value :: Parse one PDF metadata field"><span class="description">Parse one PDF metadata field</span><pre>mla_pdf_metadata_value()</pre></a></li>
74
  <li class="method public "><a href="#mla_query_list_table_items" title="mla_query_list_table_items :: Retrieve attachment objects for list table display"><span class="description">Retrieve attachment objects for list table display</span><pre>mla_query_list_table_items()</pre></a></li>
75
  <li class="method public "><a href="#mla_query_media_modal_items" title="mla_query_media_modal_items :: Retrieve attachment objects for the WordPress Media Manager"><span class="description">Retrieve attachment objects for the WordPress Media Manager</span><pre>mla_query_media_modal_items()</pre></a></li>
86
  <li class="method private "><a href="#_bin_to_utf8" title="_bin_to_utf8 :: Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents"><span class="description">Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents</span><pre>_bin_to_utf8()</pre></a></li>
87
  <li class="method private "><a href="#_build_mla_galleries" title="_build_mla_galleries :: Builds the $mla_galleries or $galleries array"><span class="description">Builds the $mla_galleries or $galleries array</span><pre>_build_mla_galleries()</pre></a></li>
88
  <li class="method private "><a href="#_build_pdf_indirect_objects" title="_build_pdf_indirect_objects :: Build an array of indirect object definitions"><span class="description">Build an array of indirect object definitions</span><pre>_build_pdf_indirect_objects()</pre></a></li>
89
+ <li class="method private "><a href="#_evaluate_template_array_node" title='_evaluate_template_array_node :: Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters'><span class="description">Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</span><pre>_evaluate_template_array_node()</pre></a></li>
90
+ <li class="method private "><a href="#_evaluate_template_node" title='_evaluate_template_node :: Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters'><span class="description">Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</span><pre>_evaluate_template_node()</pre></a></li>
91
  <li class="method private "><a href="#_execute_list_table_query" title="_execute_list_table_query :: Add filters, run query, remove filters"><span class="description">Add filters, run query, remove filters</span><pre>_execute_list_table_query()</pre></a></li>
92
+ <li class="method private "><a href="#_expand_field_level_template" title='_expand_field_level_template :: Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters'><span class="description">Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</span><pre>_expand_field_level_template()</pre></a></li>
93
  <li class="method private "><a href="#_extract_pdf_metadata" title="_extract_pdf_metadata :: Extract Metadata from a PDF file"><span class="description">Extract Metadata from a PDF file</span><pre>_extract_pdf_metadata()</pre></a></li>
94
+ <li class="method private "><a href="#_extract_pdf_trailer" title="_extract_pdf_trailer :: Extract dictionary from traditional cross-reference + trailer documents"><span class="description">Extract dictionary from traditional cross-reference + trailer documents</span><pre>_extract_pdf_trailer()</pre></a></li>
95
  <li class="method private "><a href="#_find_pdf_indirect_dictionary" title="_find_pdf_indirect_dictionary :: Find the offset, length and contents of an indirect object containing a dictionary"><span class="description">Find the offset, length and contents of an indirect object containing a dictionary</span><pre>_find_pdf_indirect_dictionary()</pre></a></li>
96
+ <li class="method private "><a href="#_find_template_substring" title="_find_template_substring :: Find a complete template, balancing opening and closing delimiters"><span class="description">Find a complete template, balancing opening and closing delimiters</span><pre>_find_template_substring()</pre></a></li>
97
+ <li class="method private "><a href="#_find_test_substring" title="_find_test_substring :: Find a complete (test) element, balancing opening and closing delimiters"><span class="description">Find a complete (test) element, balancing opening and closing delimiters</span><pre>_find_test_substring()</pre></a></li>
98
  <li class="method private "><a href="#_hex_dump" title="_hex_dump :: Format printable version of binary data"><span class="description">Format printable version of binary data</span><pre>_hex_dump()</pre></a></li>
99
+ <li class="method private "><a href="#_parse_field_level_template" title='_parse_field_level_template :: Convert field-level "template:" string into its component parts'><span class="description">Convert field-level "template:" string into its component parts</span><pre>_parse_field_level_template()</pre></a></li>
100
  <li class="method private "><a href="#_parse_iso8601_date" title="_parse_iso8601_date :: Parse a ISO 8601 Timestamp"><span class="description">Parse a ISO 8601 Timestamp</span><pre>_parse_iso8601_date()</pre></a></li>
101
+ <li class="method private "><a href="#_parse_pdf_LPD_dictionary" title="_parse_pdf_LPD_dictionary :: Parse a PDF Linearization Parameter Dictionary object"><span class="description">Parse a PDF Linearization Parameter Dictionary object</span><pre>_parse_pdf_LPD_dictionary()</pre></a></li>
102
  <li class="method private "><a href="#_parse_pdf_UTF16BE" title="_parse_pdf_UTF16BE :: Parse a PDF Unicode (16-bit Big Endian) object"><span class="description">Parse a PDF Unicode (16-bit Big Endian) object</span><pre>_parse_pdf_UTF16BE()</pre></a></li>
103
  <li class="method private "><a href="#_parse_pdf_date" title="_parse_pdf_date :: Parse a PDF date string"><span class="description">Parse a PDF date string</span><pre>_parse_pdf_date()</pre></a></li>
104
  <li class="method private "><a href="#_parse_pdf_dictionary" title="_parse_pdf_dictionary :: Parse a PDF dictionary object"><span class="description">Parse a PDF dictionary object</span><pre>_parse_pdf_dictionary()</pre></a></li>
105
  <li class="method private "><a href="#_parse_pdf_string" title="_parse_pdf_string :: Parse a PDF string object"><span class="description">Parse a PDF string object</span><pre>_parse_pdf_string()</pre></a></li>
106
+ <li class="method private "><a href="#_parse_pdf_xref_section" title="_parse_pdf_xref_section :: Parse a cross-reference table section into the array of indirect object definitions"><span class="description">Parse a cross-reference table section into the array of indirect object definitions</span><pre>_parse_pdf_xref_section()</pre></a></li>
107
+ <li class="method private "><a href="#_parse_pdf_xref_stream" title="_parse_pdf_xref_stream :: Parse a cross-reference steam into the array of indirect object definitions"><span class="description">Parse a cross-reference steam into the array of indirect object definitions</span><pre>_parse_pdf_xref_stream()</pre></a></li>
108
+ <li class="method private "><a href="#_parse_pdf_xref_subsection" title="_parse_pdf_xref_subsection :: Parse a cross-reference table subsection into the array of indirect object definitions"><span class="description">Parse a cross-reference table subsection into the array of indirect object definitions</span><pre>_parse_pdf_xref_subsection()</pre></a></li>
109
  <li class="method private "><a href="#_parse_xmp_metadata" title="_parse_xmp_metadata :: Parse an XMP object"><span class="description">Parse an XMP object</span><pre>_parse_xmp_metadata()</pre></a></li>
110
  <li class="method private "><a href="#_prepare_list_table_query" title="_prepare_list_table_query :: Sanitize and expand query arguments from request variables"><span class="description">Sanitize and expand query arguments from request variables</span><pre>_prepare_list_table_query()</pre></a></li>
111
+ <li class="method private "><a href="#_process_field_level_array" title="_process_field_level_array :: Process an markup field array value according to the supplied data-format option"><span class="description">Process an markup field array value according to the supplied data-format option</span><pre>_process_field_level_array()</pre></a></li>
112
  <li class="method private "><a href="#_remove_tags" title="_remove_tags :: Remove tags from a term ids list"><span class="description">Remove tags from a term ids list</span><pre>_remove_tags()</pre></a></li>
113
  <li class="method private "><a href="#_search_mla_galleries" title="_search_mla_galleries :: Search the $mla_galleries or $galleries array"><span class="description">Search the $mla_galleries or $galleries array</span><pre>_search_mla_galleries()</pre></a></li>
114
  <li class="nav-header">
200
  </div>
201
  <a name="mla_exif_metadata_value" id="mla_exif_metadata_value"></a><div class="element clickable method public mla_exif_metadata_value" data-toggle="collapse" data-target=".mla_exif_metadata_value .collapse">
202
  <h2>Parse one EXIF metadata field</h2>
203
+ <pre>mla_exif_metadata_value(string $exif_key, string $item_metadata) : mixed</pre>
204
  <div class="labels"></div>
205
  <div class="row collapse"><div class="detail-description">
206
+ <p class="long_description"><p>Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.</p></p>
 
207
  <table class="table table-bordered"><tr>
208
  <th>since</th>
209
  <td>1.13</td>
217
  <code>string</code><p>metadata array containing iptc, exif, and pdf metadata arrays</p></div>
218
  <h3>Returns</h3>
219
  <div class="subelement response">
220
+ <code>mixed</code>string/array representation of metadata value or an empty string</div>
221
+ </div></div>
222
+ </div>
223
+ <a name="mla_expand_field_level_parameters" id="mla_expand_field_level_parameters"></a><div class="element clickable method public mla_expand_field_level_parameters" data-toggle="collapse" data-target=".mla_expand_field_level_parameters .collapse">
224
+ <h2>Analyze a template, expanding Field-level Markup Substitution Parameters</h2>
225
+ <pre>mla_expand_field_level_parameters(string $tpl, array $query, array $markup_values, integer $post_id, boolean $keep_existing, string $default_option) : array</pre>
226
+ <div class="labels"></div>
227
+ <div class="row collapse"><div class="detail-description">
228
+ <p class="long_description"><p>Field-level parameters must have one of the following prefix values:
229
+ template, request, query, custom, terms, meta, iptc, exif, pdf.
230
+ All but request and query require an attachment ID.</p></p>
231
+ <table class="table table-bordered"><tr>
232
+ <th>since</th>
233
+ <td>1.50</td>
234
+ </tr></table>
235
+ <h3>Parameters</h3>
236
+ <div class="subelement argument">
237
+ <h4>$tpl</h4>
238
+ <code>string</code><p>A formatting string containing [+placeholders+]</p>
239
+ </div>
240
+ <div class="subelement argument">
241
+ <h4>$query</h4>
242
+ <code>array</code><p>Optional: an array of values from the query, if any, e.g. shortcode parameters</p></div>
243
+ <div class="subelement argument">
244
+ <h4>$markup_values</h4>
245
+ <code>array</code><p>Optional: an array of values to add to the returned array</p></div>
246
+ <div class="subelement argument">
247
+ <h4>$post_id</h4>
248
+ <code>integer</code><p>Optional: attachment ID for attachment-specific placeholders</p>
249
+ </div>
250
+ <div class="subelement argument">
251
+ <h4>$keep_existing</h4>
252
+ <code>boolean</code><p>Optional: for option 'multi', retain existing values</p>
253
+ </div>
254
+ <div class="subelement argument">
255
+ <h4>$default_option</h4>
256
+ <code>string</code><p>Optional: default option value</p></div>
257
+ <h3>Returns</h3>
258
+ <div class="subelement response">
259
+ <code>array</code>( parameter => value ) for all field-level parameters and anything in $markup_values</div>
260
  </div></div>
261
  </div>
262
  <a name="mla_fetch_attachment_image_metadata" id="mla_fetch_attachment_image_metadata"></a><div class="element clickable method public mla_fetch_attachment_image_metadata" data-toggle="collapse" data-target=".mla_fetch_attachment_image_metadata .collapse">
367
  <code>array</code><p>PHP nested arrays</p></div>
368
  <div class="subelement argument">
369
  <h4>$option</h4>
370
+ <code>string</code><p>data option 'text'|'single'|'export'|'array'|'multi'</p>
371
  </div>
372
  <div class="subelement argument">
373
  <h4>$keep_existing</h4>
422
  </div></div>
423
  </div>
424
  <a name="mla_get_template_placeholders" id="mla_get_template_placeholders"></a><div class="element clickable method public mla_get_template_placeholders" data-toggle="collapse" data-target=".mla_get_template_placeholders .collapse">
425
+ <h2>Analyze a template, returning an array of the placeholders it contains</h2>
426
+ <pre>mla_get_template_placeholders(string $tpl, string $default_option) : array</pre>
427
  <div class="labels"></div>
428
  <div class="row collapse"><div class="detail-description">
429
  <p class="long_description"></p>
436
  <h4>$tpl</h4>
437
  <code>string</code><p>A formatting string containing [+placeholders+]</p>
438
  </div>
439
+ <div class="subelement argument">
440
+ <h4>$default_option</h4>
441
+ <code>string</code><p>Optional: default option value</p></div>
442
  <h3>Returns</h3>
443
  <div class="subelement response">
444
+ <code>array</code>Placeholder information: each entry is an array with ['prefix'] => string, ['value'] => string, ['option'] => string 'text'|single'|'export'|'array'|'multi'</div>
445
  </div></div>
446
  </div>
447
  <a name="mla_iptc_metadata_value" id="mla_iptc_metadata_value"></a><div class="element clickable method public mla_iptc_metadata_value" data-toggle="collapse" data-target=".mla_iptc_metadata_value .collapse">
449
  <pre>mla_iptc_metadata_value(string $iptc_key, string $item_metadata) : mixed</pre>
450
  <div class="labels"></div>
451
  <div class="row collapse"><div class="detail-description">
452
+ <p class="long_description"></p>
453
  <table class="table table-bordered"><tr>
454
  <th>since</th>
455
  <td>1.41</td>
492
  <code>string</code><code>array</code><code>false</code><code>NULL</code>string for files that do not contain template divider comments, array for files containing template divider comments, false if file or option does not exist, NULL if file could not be loaded.</div>
493
  </div></div>
494
  </div>
495
+ <a name="mla_parse_array_template" id="mla_parse_array_template"></a><div class="element clickable method public mla_parse_array_template" data-toggle="collapse" data-target=".mla_parse_array_template .collapse">
496
+ <h2>Expand a template, replacing placeholders with their values</h2>
497
+ <pre>mla_parse_array_template(string $tpl, array $markup_values) : mixed</pre>
498
+ <div class="labels"></div>
499
+ <div class="row collapse"><div class="detail-description">
500
+ <p class="long_description"><p>Will return an array of values if one or more of the placeholders returns an array.</p></p>
501
+ <table class="table table-bordered"><tr>
502
+ <th>since</th>
503
+ <td>1.50</td>
504
+ </tr></table>
505
+ <h3>Parameters</h3>
506
+ <div class="subelement argument">
507
+ <h4>$tpl</h4>
508
+ <code>string</code><p>A formatting string containing [+placeholders+]</p>
509
+ </div>
510
+ <div class="subelement argument">
511
+ <h4>$markup_values</h4>
512
+ <code>array</code><p>An associative array containing keys and values e.g. array('key' => 'value')</p>
513
+ </div>
514
+ <h3>Returns</h3>
515
+ <div class="subelement response">
516
+ <code>mixed</code>string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values.</div>
517
+ </div></div>
518
+ </div>
519
  <a name="mla_parse_template" id="mla_parse_template"></a><div class="element clickable method public mla_parse_template" data-toggle="collapse" data-target=".mla_parse_template .collapse">
520
+ <h2>Expand a template, replacing placeholders with their values</h2>
521
+ <pre>mla_parse_template(string $tpl, array $markup_values) : \strng</pre>
522
  <div class="labels"></div>
523
  <div class="row collapse"><div class="detail-description">
524
  <p class="long_description"><p>A simple parsing function for basic templating.</p></p>
532
  <code>string</code><p>A formatting string containing [+placeholders+]</p>
533
  </div>
534
  <div class="subelement argument">
535
+ <h4>$markup_values</h4>
536
  <code>array</code><p>An associative array containing keys and values e.g. array('key' => 'value')</p>
537
  </div>
538
  <h3>Returns</h3>
539
  <div class="subelement response">
540
+ <code>\strng</code>Placeholders corresponding to the keys of the markup_values will be replaced with their values.</div>
541
  </div></div>
542
  </div>
543
  <a name="mla_pdf_metadata_value" id="mla_pdf_metadata_value"></a><div class="element clickable method public mla_pdf_metadata_value" data-toggle="collapse" data-target=".mla_pdf_metadata_value .collapse">
544
  <h2>Parse one PDF metadata field</h2>
545
+ <pre>mla_pdf_metadata_value(string $pdf_key, string $item_metadata) : mixed</pre>
546
  <div class="labels"></div>
547
  <div class="row collapse"><div class="detail-description">
548
+ <p class="long_description"><p>Also handles the special pseudo-value 'ALL_PDF'.</p></p>
 
549
  <table class="table table-bordered"><tr>
550
  <th>since</th>
551
+ <td>1.50</td>
552
  </tr></table>
553
  <h3>Parameters</h3>
554
  <div class="subelement argument">
559
  <code>string</code><p>metadata array containing iptc, exif, and pdf metadata arrays</p></div>
560
  <h3>Returns</h3>
561
  <div class="subelement response">
562
+ <code>mixed</code>string/array representation of metadata value or an empty string</div>
563
  </div></div>
564
  </div>
565
  <a name="mla_query_list_table_items" id="mla_query_list_table_items"></a><div class="element clickable method public mla_query_list_table_items" data-toggle="collapse" data-target=".mla_query_list_table_items .collapse">
822
  <p class="long_description"><p>Creates the array of indirect object offsets and lengths</p></p>
823
  <table class="table table-bordered"><tr>
824
  <th>since</th>
825
+ <td>1.50</td>
826
  </tr></table>
827
  <h3>Parameters</h3>
828
  <div class="subelement argument">
830
  <code>string</code><p>The entire PDF document, passsed by reference</p></div>
831
  </div></div>
832
  </div>
833
+ <a name="_evaluate_template_array_node" id="_evaluate_template_array_node"></a><div class="element clickable method private _evaluate_template_array_node" data-toggle="collapse" data-target="._evaluate_template_array_node .collapse">
834
+ <h2>Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</h2>
835
+ <pre>_evaluate_template_array_node(array $node, array $markup_values) : mixed</pre>
836
+ <div class="labels"></div>
837
+ <div class="row collapse"><div class="detail-description">
838
+ <p class="long_description"><p>Will return an array of values if one or more of the placeholders returns an array.</p></p>
839
+ <table class="table table-bordered"><tr>
840
+ <th>since</th>
841
+ <td>1.50</td>
842
+ </tr></table>
843
+ <h3>Parameters</h3>
844
+ <div class="subelement argument">
845
+ <h4>$node</h4>
846
+ <code>array</code><p>A field-level template element node</p>
847
+ </div>
848
+ <div class="subelement argument">
849
+ <h4>$markup_values</h4>
850
+ <code>array</code><p>An array of markup substitution values</p></div>
851
+ <h3>Returns</h3>
852
+ <div class="subelement response">
853
+ <code>mixed</code>string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values.</div>
854
+ </div></div>
855
+ </div>
856
+ <a name="_evaluate_template_node" id="_evaluate_template_node"></a><div class="element clickable method private _evaluate_template_node" data-toggle="collapse" data-target="._evaluate_template_node .collapse">
857
+ <h2>Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</h2>
858
+ <pre>_evaluate_template_node(array $node, array $markup_values) : string</pre>
859
+ <div class="labels"></div>
860
+ <div class="row collapse"><div class="detail-description">
861
+ <p class="long_description"></p>
862
+ <table class="table table-bordered"><tr>
863
+ <th>since</th>
864
+ <td>1.50</td>
865
+ </tr></table>
866
+ <h3>Parameters</h3>
867
+ <div class="subelement argument">
868
+ <h4>$node</h4>
869
+ <code>array</code><p>A field-level template element node</p>
870
+ </div>
871
+ <div class="subelement argument">
872
+ <h4>$markup_values</h4>
873
+ <code>array</code><p>An array of markup substitution values</p></div>
874
+ <h3>Returns</h3>
875
+ <div class="subelement response">
876
+ <code>string</code>String with expanded values, if any</div>
877
+ </div></div>
878
+ </div>
879
  <a name="_execute_list_table_query" id="_execute_list_table_query"></a><div class="element clickable method private _execute_list_table_query" data-toggle="collapse" data-target="._execute_list_table_query .collapse">
880
  <h2>Add filters, run query, remove filters</h2>
881
  <pre>_execute_list_table_query(array $request) : object</pre>
896
  <code>object</code>WP_Query object with query results</div>
897
  </div></div>
898
  </div>
899
+ <a name="_expand_field_level_template" id="_expand_field_level_template"></a><div class="element clickable method private _expand_field_level_template" data-toggle="collapse" data-target="._expand_field_level_template .collapse">
900
+ <h2>Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters</h2>
901
+ <pre>_expand_field_level_template(string $tpl, array $markup_values, boolean $return_arrays) : mixed</pre>
902
+ <div class="labels"></div>
903
+ <div class="row collapse"><div class="detail-description">
904
+ <p class="long_description"></p>
905
+ <table class="table table-bordered"><tr>
906
+ <th>since</th>
907
+ <td>1.50</td>
908
+ </tr></table>
909
+ <h3>Parameters</h3>
910
+ <div class="subelement argument">
911
+ <h4>$tpl</h4>
912
+ <code>string</code><p>A formatting string containing [+placeholders+]</p>
913
+ </div>
914
+ <div class="subelement argument">
915
+ <h4>$markup_values</h4>
916
+ <code>array</code><p>An array of markup substitution values</p></div>
917
+ <div class="subelement argument">
918
+ <h4>$return_arrays</h4>
919
+ <code>boolean</code><p>True to return array value(s), false to return a string</p>
920
+ </div>
921
+ <h3>Returns</h3>
922
+ <div class="subelement response">
923
+ <code>mixed</code>Element with expanded string/array values, if any</div>
924
+ </div></div>
925
+ </div>
926
  <a name="_extract_pdf_metadata" id="_extract_pdf_metadata"></a><div class="element clickable method private _extract_pdf_metadata" data-toggle="collapse" data-target="._extract_pdf_metadata .collapse">
927
  <h2>Extract Metadata from a PDF file</h2>
928
  <pre>_extract_pdf_metadata(string $file_name) : array</pre>
931
  <p class="long_description"></p>
932
  <table class="table table-bordered"><tr>
933
  <th>since</th>
934
+ <td>1.50</td>
935
  </tr></table>
936
  <h3>Parameters</h3>
937
  <div class="subelement argument">
942
  <code>array</code>( key => value ) for each metadata field, in string format</div>
943
  </div></div>
944
  </div>
945
+ <a name="_extract_pdf_trailer" id="_extract_pdf_trailer"></a><div class="element clickable method private _extract_pdf_trailer" data-toggle="collapse" data-target="._extract_pdf_trailer .collapse">
946
+ <h2>Extract dictionary from traditional cross-reference + trailer documents</h2>
947
+ <pre>_extract_pdf_trailer(string $file_name, integer $file_offset) : mixed</pre>
948
+ <div class="labels"></div>
949
+ <div class="row collapse"><div class="detail-description">
950
+ <p class="long_description"></p>
951
+ <table class="table table-bordered"><tr>
952
+ <th>since</th>
953
+ <td>1.50</td>
954
+ </tr></table>
955
+ <h3>Parameters</h3>
956
+ <div class="subelement argument">
957
+ <h4>$file_name</h4>
958
+ <code>string</code><p>full path to the desired file</p></div>
959
+ <div class="subelement argument">
960
+ <h4>$file_offset</h4>
961
+ <code>integer</code><p>offset within file of the cross-reference table</p>
962
+ </div>
963
+ <h3>Returns</h3>
964
+ <div class="subelement response">
965
+ <code>mixed</code>array of "PDF dictionary arrays", newest first, or NULL on failure</div>
966
+ </div></div>
967
+ </div>
968
  <a name="_find_pdf_indirect_dictionary" id="_find_pdf_indirect_dictionary"></a><div class="element clickable method private _find_pdf_indirect_dictionary" data-toggle="collapse" data-target="._find_pdf_indirect_dictionary .collapse">
969
  <h2>Find the offset, length and contents of an indirect object containing a dictionary</h2>
970
+ <pre>_find_pdf_indirect_dictionary(string $file_name, integer $object, integer $generation) : mixed</pre>
971
  <div class="labels"></div>
972
  <div class="row collapse"><div class="detail-description">
973
+ <p class="long_description"><p>The function searches the entire file, if necessary, to find the last/most recent copy of the object.
974
+ This is required because Adobe Acrobat does NOT increment the generation number when it reuses an object.</p></p>
975
  <table class="table table-bordered"><tr>
976
  <th>since</th>
977
+ <td>1.50</td>
978
  </tr></table>
979
  <h3>Parameters</h3>
980
  <div class="subelement argument">
981
+ <h4>$file_name</h4>
982
+ <code>string</code><p>full path and file name</p></div>
983
  <div class="subelement argument">
984
  <h4>$object</h4>
985
  <code>integer</code><p>The object number</p></div>
992
  <code>mixed</code>NULL on failure else array( 'start' => offset in the file, 'length' => object length, 'content' => dictionary contents )</div>
993
  </div></div>
994
  </div>
995
+ <a name="_find_template_substring" id="_find_template_substring"></a><div class="element clickable method private _find_template_substring" data-toggle="collapse" data-target="._find_template_substring .collapse">
996
+ <h2>Find a complete template, balancing opening and closing delimiters</h2>
997
+ <pre>_find_template_substring(string $tpl) : string</pre>
998
+ <div class="labels"></div>
999
+ <div class="row collapse"><div class="detail-description">
1000
+ <p class="long_description"></p>
1001
+ <table class="table table-bordered"><tr>
1002
+ <th>since</th>
1003
+ <td>1.50</td>
1004
+ </tr></table>
1005
+ <h3>Parameters</h3>
1006
+ <div class="subelement argument">
1007
+ <h4>$tpl</h4>
1008
+ <code>string</code><p>A string possibily starting with '[+template:'</p>
1009
+ </div>
1010
+ <h3>Returns</h3>
1011
+ <div class="subelement response">
1012
+ <code>string</code>'' or template string starting with '[+template:' and ending with the matching '+]'</div>
1013
+ </div></div>
1014
+ </div>
1015
+ <a name="_find_test_substring" id="_find_test_substring"></a><div class="element clickable method private _find_test_substring" data-toggle="collapse" data-target="._find_test_substring .collapse">
1016
+ <h2>Find a complete (test) element, balancing opening and closing delimiters</h2>
1017
+ <pre>_find_test_substring(string $tpl) : string</pre>
1018
+ <div class="labels"></div>
1019
+ <div class="row collapse"><div class="detail-description">
1020
+ <p class="long_description"></p>
1021
+ <table class="table table-bordered"><tr>
1022
+ <th>since</th>
1023
+ <td>1.50</td>
1024
+ </tr></table>
1025
+ <h3>Parameters</h3>
1026
+ <div class="subelement argument">
1027
+ <h4>$tpl</h4>
1028
+ <code>string</code><p>A string possibily starting with '('</p>
1029
+ </div>
1030
+ <h3>Returns</h3>
1031
+ <div class="subelement response">
1032
+ <code>string</code>'' or template string starting with '(' and ending with the matching ')'</div>
1033
+ </div></div>
1034
+ </div>
1035
  <a name="_hex_dump" id="_hex_dump"></a><div class="element clickable method private _hex_dump" data-toggle="collapse" data-target="._hex_dump .collapse">
1036
  <h2>Format printable version of binary data</h2>
1037
+ <pre>_hex_dump(string $data, integer $limit, \intger $bytes_per_row, integer $offset) : string</pre>
1038
  <div class="labels"></div>
1039
  <div class="row collapse"><div class="detail-description">
1040
  <p class="long_description"></p>
1053
  <div class="subelement argument">
1054
  <h4>$bytes_per_row</h4>
1055
  <code>\intger</code><p>Bytes to format on each line</p></div>
1056
+ <div class="subelement argument">
1057
+ <h4>$offset</h4>
1058
+ <code>integer</code><p>offset of initial byte, or -1 to suppress printing offset information</p>
1059
+ </div>
1060
  <h3>Returns</h3>
1061
  <div class="subelement response">
1062
  <code>string</code>Printable representation of $data</div>
1063
  </div></div>
1064
  </div>
1065
+ <a name="_parse_field_level_template" id="_parse_field_level_template"></a><div class="element clickable method private _parse_field_level_template" data-toggle="collapse" data-target="._parse_field_level_template .collapse">
1066
+ <h2>Convert field-level "template:" string into its component parts</h2>
1067
+ <pre>_parse_field_level_template(string $tpl) : array</pre>
1068
+ <div class="labels"></div>
1069
+ <div class="row collapse"><div class="detail-description">
1070
+ <p class="long_description"></p>
1071
+ <table class="table table-bordered"><tr>
1072
+ <th>since</th>
1073
+ <td>1.50</td>
1074
+ </tr></table>
1075
+ <h3>Parameters</h3>
1076
+ <div class="subelement argument">
1077
+ <h4>$tpl</h4>
1078
+ <code>string</code><p>Template content with string, test and choice elements</p></div>
1079
+ <h3>Returns</h3>
1080
+ <div class="subelement response">
1081
+ <code>array</code>( node => array( type => "string | test | choice | template", length => bytes, value => string | node(s) ) )</div>
1082
+ </div></div>
1083
+ </div>
1084
  <a name="_parse_iso8601_date" id="_parse_iso8601_date"></a><div class="element clickable method private _parse_iso8601_date" data-toggle="collapse" data-target="._parse_iso8601_date .collapse">
1085
  <h2>Parse a ISO 8601 Timestamp</h2>
1086
  <pre>_parse_iso8601_date(string $source_string) : string</pre>
1089
  <p class="long_description"></p>
1090
  <table class="table table-bordered"><tr>
1091
  <th>since</th>
1092
+ <td>1.50</td>
1093
  </tr></table>
1094
  <h3>Parameters</h3>
1095
  <div class="subelement argument">
1101
  <code>string</code>formatted date string YYYY-MM-DD HH:mm:SS</div>
1102
  </div></div>
1103
  </div>
1104
+ <a name="_parse_pdf_LPD_dictionary" id="_parse_pdf_LPD_dictionary"></a><div class="element clickable method private _parse_pdf_LPD_dictionary" data-toggle="collapse" data-target="._parse_pdf_LPD_dictionary .collapse">
1105
+ <h2>Parse a PDF Linearization Parameter Dictionary object</h2>
1106
+ <pre>_parse_pdf_LPD_dictionary(string $source_string, integer $filesize) : mixed</pre>
1107
+ <div class="labels"></div>
1108
+ <div class="row collapse"><div class="detail-description">
1109
+ <p class="long_description"><p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1110
+ indirect (object), name, array, dictionary, stream, and null.
1111
+ The array also has a '/length' element containing the number of bytes occupied by the
1112
+ dictionary in the source string, excluding the enclosing delimiters, if passed in.</p></p>
1113
+ <table class="table table-bordered"><tr>
1114
+ <th>since</th>
1115
+ <td>1.50</td>
1116
+ </tr></table>
1117
+ <h3>Parameters</h3>
1118
+ <div class="subelement argument">
1119
+ <h4>$source_string</h4>
1120
+ <code>string</code><p>data within which the object occurs, typically the start of a PDF document</p></div>
1121
+ <div class="subelement argument">
1122
+ <h4>$filesize</h4>
1123
+ <code>integer</code><p>filesize of the PDF document, for validation purposes, or zero (0) to ignore filesize</p>
1124
+ </div>
1125
+ <h3>Returns</h3>
1126
+ <div class="subelement response">
1127
+ <code>mixed</code>array of dictionary objects on success, false on failure</div>
1128
+ </div></div>
1129
+ </div>
1130
  <a name="_parse_pdf_UTF16BE" id="_parse_pdf_UTF16BE"></a><div class="element clickable method private _parse_pdf_UTF16BE" data-toggle="collapse" data-target="._parse_pdf_UTF16BE .collapse">
1131
  <h2>Parse a PDF Unicode (16-bit Big Endian) object</h2>
1132
  <pre>_parse_pdf_UTF16BE(string $source_string) : string</pre>
1135
  <p class="long_description"></p>
1136
  <table class="table table-bordered"><tr>
1137
  <th>since</th>
1138
+ <td>1.50</td>
1139
  </tr></table>
1140
  <h3>Parameters</h3>
1141
  <div class="subelement argument">
1155
  <p class="long_description"></p>
1156
  <table class="table table-bordered"><tr>
1157
  <th>since</th>
1158
+ <td>1.50</td>
1159
  </tr></table>
1160
  <h3>Parameters</h3>
1161
  <div class="subelement argument">
1175
  <p class="long_description"><p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1176
  indirect (object), name, array, dictionary, stream, and null.
1177
  The array also has a '/length' element containing the number of bytes occupied by the
1178
+ dictionary in the source string, excluding the enclosing delimiters.</p></p>
1179
  <table class="table table-bordered"><tr>
1180
  <th>since</th>
1181
+ <td>1.50</td>
1182
  </tr></table>
1183
  <h3>Parameters</h3>
1184
  <div class="subelement argument">
1202
  the number of bytes occupied by the string in the source string, including the enclosing parentheses.</p></p>
1203
  <table class="table table-bordered"><tr>
1204
  <th>since</th>
1205
+ <td>1.50</td>
1206
  </tr></table>
1207
  <h3>Parameters</h3>
1208
  <div class="subelement argument">
1217
  <code>array</code>( key => array( 'type' => type, 'value' => value, '/length' => length ) ) for the string</div>
1218
  </div></div>
1219
  </div>
1220
+ <a name="_parse_pdf_xref_section" id="_parse_pdf_xref_section"></a><div class="element clickable method private _parse_pdf_xref_section" data-toggle="collapse" data-target="._parse_pdf_xref_section .collapse">
1221
+ <h2>Parse a cross-reference table section into the array of indirect object definitions</h2>
1222
+ <pre>_parse_pdf_xref_section(string $file_name, integer $file_offset) : integer</pre>
1223
+ <div class="labels"></div>
1224
+ <div class="row collapse"><div class="detail-description">
1225
+ <p class="long_description"><p>Creates the array of indirect object offsets and lengths</p></p>
1226
+ <table class="table table-bordered"><tr>
1227
+ <th>since</th>
1228
+ <td>1.50</td>
1229
+ </tr></table>
1230
+ <h3>Parameters</h3>
1231
+ <div class="subelement argument">
1232
+ <h4>$file_name</h4>
1233
+ <code>string</code><p>full path and file name</p></div>
1234
+ <div class="subelement argument">
1235
+ <h4>$file_offset</h4>
1236
+ <code>integer</code><p>offset within the file of the xref id and count entry</p></div>
1237
+ <h3>Returns</h3>
1238
+ <div class="subelement response">
1239
+ <code>integer</code>length of the section</div>
1240
+ </div></div>
1241
+ </div>
1242
+ <a name="_parse_pdf_xref_stream" id="_parse_pdf_xref_stream"></a><div class="element clickable method private _parse_pdf_xref_stream" data-toggle="collapse" data-target="._parse_pdf_xref_stream .collapse">
1243
+ <h2>Parse a cross-reference steam into the array of indirect object definitions</h2>
1244
+ <pre>_parse_pdf_xref_stream(string $file_name, integer $file_offset, string $entry_parms_string) : integer</pre>
1245
+ <div class="labels"></div>
1246
+ <div class="row collapse"><div class="detail-description">
1247
+ <p class="long_description"><p>Creates the array of indirect object offsets and lengths</p></p>
1248
+ <table class="table table-bordered"><tr>
1249
+ <th>since</th>
1250
+ <td>1.50</td>
1251
+ </tr></table>
1252
+ <h3>Parameters</h3>
1253
+ <div class="subelement argument">
1254
+ <h4>$file_name</h4>
1255
+ <code>string</code><p>full path and file name</p></div>
1256
+ <div class="subelement argument">
1257
+ <h4>$file_offset</h4>
1258
+ <code>integer</code><p>offset within the file of the xref id and count entry</p></div>
1259
+ <div class="subelement argument">
1260
+ <h4>$entry_parms_string</h4>
1261
+ <code>string</code><p>"/W" entry, representing the size of the fields in a single entry</p>
1262
+ </div>
1263
+ <h3>Returns</h3>
1264
+ <div class="subelement response">
1265
+ <code>integer</code>length of the stream</div>
1266
+ </div></div>
1267
+ </div>
1268
+ <a name="_parse_pdf_xref_subsection" id="_parse_pdf_xref_subsection"></a><div class="element clickable method private _parse_pdf_xref_subsection" data-toggle="collapse" data-target="._parse_pdf_xref_subsection .collapse">
1269
+ <h2>Parse a cross-reference table subsection into the array of indirect object definitions</h2>
1270
+ <pre>_parse_pdf_xref_subsection(string $xref_section, integer $offset, integer $object_id, integer $count) : void</pre>
1271
+ <div class="labels"></div>
1272
+ <div class="row collapse"><div class="detail-description">
1273
+ <p class="long_description"><p>A cross-reference subsection is a sequence of 20-byte entries, each with offset and generation values.</p></p>
1274
+ <table class="table table-bordered"><tr>
1275
+ <th>since</th>
1276
+ <td>1.50</td>
1277
+ </tr></table>
1278
+ <h3>Parameters</h3>
1279
+ <div class="subelement argument">
1280
+ <h4>$xref_section</h4>
1281
+ <code>string</code><p>buffer containing the subsection</p></div>
1282
+ <div class="subelement argument">
1283
+ <h4>$offset</h4>
1284
+ <code>integer</code><p>offset within the buffer of the first entry</p></div>
1285
+ <div class="subelement argument">
1286
+ <h4>$object_id</h4>
1287
+ <code>integer</code><p>number of the first object in the subsection</p></div>
1288
+ <div class="subelement argument">
1289
+ <h4>$count</h4>
1290
+ <code>integer</code><p>number of entries in the subsection</p></div>
1291
+ </div></div>
1292
+ </div>
1293
  <a name="_parse_xmp_metadata" id="_parse_xmp_metadata"></a><div class="element clickable method private _parse_xmp_metadata" data-toggle="collapse" data-target="._parse_xmp_metadata .collapse">
1294
  <h2>Parse an XMP object</h2>
1295
+ <pre>_parse_xmp_metadata(string $file_name, integer $file_offset) : mixed</pre>
1296
  <div class="labels"></div>
1297
  <div class="row collapse"><div class="detail-description">
1298
  <p class="long_description"><p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1301
  dictionary in the source string, excluding the enclosing delimiters, if passed in.</p></p>
1302
  <table class="table table-bordered"><tr>
1303
  <th>since</th>
1304
+ <td>1.50</td>
1305
  </tr></table>
1306
  <h3>Parameters</h3>
1307
  <div class="subelement argument">
1308
+ <h4>$file_name</h4>
1309
+ <code>string</code><p>full path and file name</p></div>
1310
  <div class="subelement argument">
1311
+ <h4>$file_offset</h4>
1312
+ <code>integer</code><p>offset within the file of the search start point</p></div>
 
1313
  <h3>Returns</h3>
1314
  <div class="subelement response">
1315
+ <code>mixed</code>array of metadata values or NULL on failure</div>
1316
  </div></div>
1317
  </div>
1318
  <a name="_prepare_list_table_query" id="_prepare_list_table_query"></a><div class="element clickable method private _prepare_list_table_query" data-toggle="collapse" data-target="._prepare_list_table_query .collapse">
1344
  <code>array</code>revised arguments suitable for WP_Query</div>
1345
  </div></div>
1346
  </div>
1347
+ <a name="_process_field_level_array" id="_process_field_level_array"></a><div class="element clickable method private _process_field_level_array" data-toggle="collapse" data-target="._process_field_level_array .collapse">
1348
+ <h2>Process an markup field array value according to the supplied data-format option</h2>
1349
+ <pre>_process_field_level_array(array $record, string $option, boolean $keep_existing) : array</pre>
1350
+ <div class="labels"></div>
1351
+ <div class="row collapse"><div class="detail-description">
1352
+ <p class="long_description"></p>
1353
+ <table class="table table-bordered"><tr>
1354
+ <th>since</th>
1355
+ <td>1.50</td>
1356
+ </tr></table>
1357
+ <h3>Parameters</h3>
1358
+ <div class="subelement argument">
1359
+ <h4>$record</h4>
1360
+ <code>array</code><p>an array of scalar values</p></div>
1361
+ <div class="subelement argument">
1362
+ <h4>$option</h4>
1363
+ <code>string</code><p>data option 'text'|'single'|'export'|'array'|'multi'</p>
1364
+ </div>
1365
+ <div class="subelement argument">
1366
+ <h4>$keep_existing</h4>
1367
+ <code>boolean</code><p>Optional: for option 'multi', retain existing values</p>
1368
+ </div>
1369
+ <h3>Returns</h3>
1370
+ <div class="subelement response">
1371
+ <code>array</code>( parameter => value ) for all field-level parameters and anything in $markup_values</div>
1372
+ </div></div>
1373
+ </div>
1374
  <a name="_remove_tags" id="_remove_tags"></a><div class="element clickable method private _remove_tags" data-toggle="collapse" data-target="._remove_tags .collapse">
1375
  <h2>Remove tags from a term ids list</h2>
1376
  <pre>_remove_tags(array $terms_before, array $tags, object $taxonomy_obj) : array</pre>
1551
  <pre>$pdf_indirect_objects : array</pre>
1552
  <div class="labels"></div>
1553
  <div class="row collapse"><div class="detail-description">
1554
+ <p class="long_description"><p>This array contains all of the indirect object offsets and lengths.
1555
+ The array key is ( object ID * 1000 ) + object generation.
1556
+ The array value is array( number, generation, start, optional /length )</p></p>
1557
  <table class="table table-bordered"><tr>
1558
  <th>since</th>
1559
+ <td>1.50</td>
1560
  </tr></table>
1561
  </div></div>
1562
  </div>
1609
  <div class="row"><footer class="span12">
1610
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1611
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1612
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
1613
  </div>
1614
  </body>
1615
  </html>
phpDocs/classes/MLAEdit.html CHANGED
@@ -345,7 +345,7 @@ The array is built once each page load and cached for subsequent calls.</p></p>
345
  <div class="row"><footer class="span12">
346
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
347
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
348
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
349
  </div>
350
  </body>
351
  </html>
345
  <div class="row"><footer class="span12">
346
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
347
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
348
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
349
  </div>
350
  </body>
351
  </html>
phpDocs/classes/MLAMime.html CHANGED
@@ -75,7 +75,7 @@
75
  <li class="method public "><a href="#mla_icon_dir_uri_filter" title="mla_icon_dir_uri_filter :: Retrieve the icon directory URL for a MIME type"><span class="description">Retrieve the icon directory URL for a MIME type</span><pre>mla_icon_dir_uri_filter()</pre></a></li>
76
  <li class="method public "><a href="#mla_icon_dirs_filter" title="mla_icon_dirs_filter :: Retrieve the icon (directory =&gt; URI) array for a MIME type"><span class="description">Retrieve the icon (directory =&gt; URI) array for a MIME type</span><pre>mla_icon_dirs_filter()</pre></a></li>
77
  <li class="method public "><a href="#mla_mime_types_filter" title="mla_mime_types_filter :: Retrieve list of MIME types and file extensions; use this filter to add types"><span class="description">Retrieve list of MIME types and file extensions; use this filter to add types</span><pre>mla_mime_types_filter()</pre></a></li>
78
- <li class="method public "><a href="#mla_parse_view_specification" title="mla_parse_view_specification :: Analyze a Library View/Post MIME Type specification, returning an array of the place holders it contains"><span class="description">Analyze a Library View/Post MIME Type specification, returning an array of the place holders it contains</span><pre>mla_parse_view_specification()</pre></a></li>
79
  <li class="method public "><a href="#mla_pluck_table_views" title="mla_pluck_table_views :: Retrieve views eligible for Media/Assistant table display"><span class="description">Retrieve views eligible for Media/Assistant table display</span><pre>mla_pluck_table_views()</pre></a></li>
80
  <li class="method public "><a href="#mla_post_mime_types_filter" title="mla_post_mime_types_filter :: Get default Post MIME Types"><span class="description">Get default Post MIME Types</span><pre>mla_post_mime_types_filter()</pre></a></li>
81
  <li class="method public "><a href="#mla_prepare_view_query" title="mla_prepare_view_query :: Convert a Library View/Post MIME Type specification to WP_Query parameters"><span class="description">Convert a Library View/Post MIME Type specification to WP_Query parameters</span><pre>mla_prepare_view_query()</pre></a></li>
@@ -562,7 +562,7 @@ and get_allowed_mime_types().</p>
562
  </div></div>
563
  </div>
564
  <a name="mla_parse_view_specification" id="mla_parse_view_specification"></a><div class="element clickable method public mla_parse_view_specification" data-toggle="collapse" data-target=".mla_parse_view_specification .collapse">
565
- <h2>Analyze a Library View/Post MIME Type specification, returning an array of the place holders it contains</h2>
566
  <pre>mla_parse_view_specification(string $specification) : array</pre>
567
  <div class="labels"></div>
568
  <div class="row collapse"><div class="detail-description">
@@ -1268,7 +1268,7 @@ Defined as public because it's a filter.</p></p>
1268
  <div class="row"><footer class="span12">
1269
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1270
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1271
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
1272
  </div>
1273
  </body>
1274
  </html>
75
  <li class="method public "><a href="#mla_icon_dir_uri_filter" title="mla_icon_dir_uri_filter :: Retrieve the icon directory URL for a MIME type"><span class="description">Retrieve the icon directory URL for a MIME type</span><pre>mla_icon_dir_uri_filter()</pre></a></li>
76
  <li class="method public "><a href="#mla_icon_dirs_filter" title="mla_icon_dirs_filter :: Retrieve the icon (directory =&gt; URI) array for a MIME type"><span class="description">Retrieve the icon (directory =&gt; URI) array for a MIME type</span><pre>mla_icon_dirs_filter()</pre></a></li>
77
  <li class="method public "><a href="#mla_mime_types_filter" title="mla_mime_types_filter :: Retrieve list of MIME types and file extensions; use this filter to add types"><span class="description">Retrieve list of MIME types and file extensions; use this filter to add types</span><pre>mla_mime_types_filter()</pre></a></li>
78
+ <li class="method public "><a href="#mla_parse_view_specification" title="mla_parse_view_specification :: Analyze a Library View/Post MIME Type specification, returning an array of the placeholders it contains"><span class="description">Analyze a Library View/Post MIME Type specification, returning an array of the placeholders it contains</span><pre>mla_parse_view_specification()</pre></a></li>
79
  <li class="method public "><a href="#mla_pluck_table_views" title="mla_pluck_table_views :: Retrieve views eligible for Media/Assistant table display"><span class="description">Retrieve views eligible for Media/Assistant table display</span><pre>mla_pluck_table_views()</pre></a></li>
80
  <li class="method public "><a href="#mla_post_mime_types_filter" title="mla_post_mime_types_filter :: Get default Post MIME Types"><span class="description">Get default Post MIME Types</span><pre>mla_post_mime_types_filter()</pre></a></li>
81
  <li class="method public "><a href="#mla_prepare_view_query" title="mla_prepare_view_query :: Convert a Library View/Post MIME Type specification to WP_Query parameters"><span class="description">Convert a Library View/Post MIME Type specification to WP_Query parameters</span><pre>mla_prepare_view_query()</pre></a></li>
562
  </div></div>
563
  </div>
564
  <a name="mla_parse_view_specification" id="mla_parse_view_specification"></a><div class="element clickable method public mla_parse_view_specification" data-toggle="collapse" data-target=".mla_parse_view_specification .collapse">
565
+ <h2>Analyze a Library View/Post MIME Type specification, returning an array of the placeholders it contains</h2>
566
  <pre>mla_parse_view_specification(string $specification) : array</pre>
567
  <div class="labels"></div>
568
  <div class="row collapse"><div class="detail-description">
1268
  <div class="row"><footer class="span12">
1269
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1270
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1271
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
1272
  </div>
1273
  </body>
1274
  </html>
phpDocs/classes/MLAModal.html CHANGED
@@ -309,7 +309,7 @@ and mla_print_media_templates_action</h2>
309
  <div class="row"><footer class="span12">
310
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
311
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
312
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
313
  </div>
314
  </body>
315
  </html>
309
  <div class="row"><footer class="span12">
310
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
311
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
312
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
313
  </div>
314
  </body>
315
  </html>
phpDocs/classes/MLAObjects.html CHANGED
@@ -169,7 +169,7 @@ which replaces the "Posts" column with an equivalent "Attachments" column.</h2>
169
  <div class="row"><footer class="span12">
170
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
171
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
172
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
173
  </div>
174
  </body>
175
  </html>
169
  <div class="row"><footer class="span12">
170
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
171
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
172
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
173
  </div>
174
  </body>
175
  </html>
phpDocs/classes/MLAOptions.html CHANGED
@@ -102,9 +102,13 @@ settings are being updated or reset.</span><pre>mla_taxonomy_support()</pre></a>
102
  <li class="property private "><a href="#%24mla_option_templates" title="$mla_option_templates :: Style and Markup templates"><span class="description">Style and Markup templates</span><pre>$mla_option_templates</pre></a></li>
103
  <li class="nav-header">
104
  <i class="icon-custom icon-constant"></i> Constants</li>
 
 
105
  <li class="constant "><a href="#MLA_ENABLE_MLA_ICONS" title="MLA_ENABLE_MLA_ICONS :: Provides a unique name for the Enable MLA Icons option"><span class="description">Provides a unique name for the Enable MLA Icons option</span><pre>MLA_ENABLE_MLA_ICONS</pre></a></li>
106
  <li class="constant "><a href="#MLA_ENABLE_POST_MIME_TYPES" title="MLA_ENABLE_POST_MIME_TYPES :: Provides a unique name for the Enable Post MIME Types option"><span class="description">Provides a unique name for the Enable Post MIME Types option</span><pre>MLA_ENABLE_POST_MIME_TYPES</pre></a></li>
107
  <li class="constant "><a href="#MLA_ENABLE_UPLOAD_MIMES" title="MLA_ENABLE_UPLOAD_MIMES :: Provides a unique name for the Enable Upload MIME Types option"><span class="description">Provides a unique name for the Enable Upload MIME Types option</span><pre>MLA_ENABLE_UPLOAD_MIMES</pre></a></li>
 
 
108
  <li class="constant "><a href="#MLA_FEATURED_IN_TUNING" title="MLA_FEATURED_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_FEATURED_IN_TUNING</pre></a></li>
109
  <li class="constant "><a href="#MLA_GALLERY_IN_TUNING" title="MLA_GALLERY_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_GALLERY_IN_TUNING</pre></a></li>
110
  <li class="constant "><a href="#MLA_INSERTED_IN_TUNING" title="MLA_INSERTED_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_INSERTED_IN_TUNING</pre></a></li>
@@ -117,6 +121,14 @@ settings are being updated or reset.</span><pre>mla_taxonomy_support()</pre></a>
117
  <li class="constant "><a href="#MLA_NEW_CUSTOM_FIELD" title='MLA_NEW_CUSTOM_FIELD :: Provides a unique name for the Custom Field "new field" key'><span class="description">Provides a unique name for the Custom Field "new field" key</span><pre>MLA_NEW_CUSTOM_FIELD</pre></a></li>
118
  <li class="constant "><a href="#MLA_NEW_CUSTOM_RULE" title='MLA_NEW_CUSTOM_RULE :: Provides a unique name for the Custom Field "new rule" key'><span class="description">Provides a unique name for the Custom Field "new rule" key</span><pre>MLA_NEW_CUSTOM_RULE</pre></a></li>
119
  <li class="constant "><a href="#MLA_POST_MIME_TYPES" title="MLA_POST_MIME_TYPES :: Provides a unique name for the Post MIME Types option"><span class="description">Provides a unique name for the Post MIME Types option</span><pre>MLA_POST_MIME_TYPES</pre></a></li>
 
 
 
 
 
 
 
 
120
  <li class="constant "><a href="#MLA_UPLOAD_MIMES" title="MLA_UPLOAD_MIMES :: Provides a unique name for the Upload MIME Types option"><span class="description">Provides a unique name for the Upload MIME Types option</span><pre>MLA_UPLOAD_MIMES</pre></a></li>
121
  <li class="constant "><a href="#MLA_VERSION_OPTION" title="MLA_VERSION_OPTION :: Provides a unique name for the current version option"><span class="description">Provides a unique name for the current version option</span><pre>MLA_VERSION_OPTION</pre></a></li>
122
  </ul>
@@ -1034,6 +1046,18 @@ reset => reset function for 'custom' options; returns nothing. Usage:
1034
  </div>
1035
  <h3>
1036
  <i class="icon-custom icon-constant"></i> Constants</h3>
 
 
 
 
 
 
 
 
 
 
 
 
1037
  <a name="MLA_ENABLE_MLA_ICONS" id="MLA_ENABLE_MLA_ICONS"> </a><div class="element clickable constant MLA_ENABLE_MLA_ICONS" data-toggle="collapse" data-target=".MLA_ENABLE_MLA_ICONS .collapse">
1038
  <h2>Provides a unique name for the Enable MLA Icons option</h2>
1039
  <pre>MLA_ENABLE_MLA_ICONS </pre>
@@ -1052,6 +1076,18 @@ reset => reset function for 'custom' options; returns nothing. Usage:
1052
  <div class="labels"></div>
1053
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1054
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
1055
  <a name="MLA_FEATURED_IN_TUNING" id="MLA_FEATURED_IN_TUNING"> </a><div class="element clickable constant MLA_FEATURED_IN_TUNING" data-toggle="collapse" data-target=".MLA_FEATURED_IN_TUNING .collapse">
1056
  <h2>Provides a unique name for a database tuning option</h2>
1057
  <pre>MLA_FEATURED_IN_TUNING </pre>
@@ -1124,6 +1160,54 @@ reset => reset function for 'custom' options; returns nothing. Usage:
1124
  <div class="labels"></div>
1125
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1126
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1127
  <a name="MLA_UPLOAD_MIMES" id="MLA_UPLOAD_MIMES"> </a><div class="element clickable constant MLA_UPLOAD_MIMES" data-toggle="collapse" data-target=".MLA_UPLOAD_MIMES .collapse">
1128
  <h2>Provides a unique name for the Upload MIME Types option</h2>
1129
  <pre>MLA_UPLOAD_MIMES </pre>
@@ -1143,7 +1227,7 @@ reset => reset function for 'custom' options; returns nothing. Usage:
1143
  <div class="row"><footer class="span12">
1144
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1145
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1146
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
1147
  </div>
1148
  </body>
1149
  </html>
102
  <li class="property private "><a href="#%24mla_option_templates" title="$mla_option_templates :: Style and Markup templates"><span class="description">Style and Markup templates</span><pre>$mla_option_templates</pre></a></li>
103
  <li class="nav-header">
104
  <i class="icon-custom icon-constant"></i> Constants</li>
105
+ <li class="constant "><a href="#MLA_DEFAULT_ORDER" title="MLA_DEFAULT_ORDER :: Provides a unique name for the default order option"><span class="description">Provides a unique name for the default order option</span><pre>MLA_DEFAULT_ORDER</pre></a></li>
106
+ <li class="constant "><a href="#MLA_DEFAULT_ORDERBY" title="MLA_DEFAULT_ORDERBY :: Provides a unique name for the default orderby option"><span class="description">Provides a unique name for the default orderby option</span><pre>MLA_DEFAULT_ORDERBY</pre></a></li>
107
  <li class="constant "><a href="#MLA_ENABLE_MLA_ICONS" title="MLA_ENABLE_MLA_ICONS :: Provides a unique name for the Enable MLA Icons option"><span class="description">Provides a unique name for the Enable MLA Icons option</span><pre>MLA_ENABLE_MLA_ICONS</pre></a></li>
108
  <li class="constant "><a href="#MLA_ENABLE_POST_MIME_TYPES" title="MLA_ENABLE_POST_MIME_TYPES :: Provides a unique name for the Enable Post MIME Types option"><span class="description">Provides a unique name for the Enable Post MIME Types option</span><pre>MLA_ENABLE_POST_MIME_TYPES</pre></a></li>
109
  <li class="constant "><a href="#MLA_ENABLE_UPLOAD_MIMES" title="MLA_ENABLE_UPLOAD_MIMES :: Provides a unique name for the Enable Upload MIME Types option"><span class="description">Provides a unique name for the Enable Upload MIME Types option</span><pre>MLA_ENABLE_UPLOAD_MIMES</pre></a></li>
110
+ <li class="constant "><a href="#MLA_EXCLUDE_REVISIONS" title="MLA_EXCLUDE_REVISIONS :: Provides a unique name for the exclude revisions option"><span class="description">Provides a unique name for the exclude revisions option</span><pre>MLA_EXCLUDE_REVISIONS</pre></a></li>
111
+ <li class="constant "><a href="#MLA_EXIF_SIZE" title='MLA_EXIF_SIZE :: Provides a "size" attribute value for the EXIF/Template Value field'><span class="description">Provides a "size" attribute value for the EXIF/Template Value field</span><pre>MLA_EXIF_SIZE</pre></a></li>
112
  <li class="constant "><a href="#MLA_FEATURED_IN_TUNING" title="MLA_FEATURED_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_FEATURED_IN_TUNING</pre></a></li>
113
  <li class="constant "><a href="#MLA_GALLERY_IN_TUNING" title="MLA_GALLERY_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_GALLERY_IN_TUNING</pre></a></li>
114
  <li class="constant "><a href="#MLA_INSERTED_IN_TUNING" title="MLA_INSERTED_IN_TUNING :: Provides a unique name for a database tuning option"><span class="description">Provides a unique name for a database tuning option</span><pre>MLA_INSERTED_IN_TUNING</pre></a></li>
121
  <li class="constant "><a href="#MLA_NEW_CUSTOM_FIELD" title='MLA_NEW_CUSTOM_FIELD :: Provides a unique name for the Custom Field "new field" key'><span class="description">Provides a unique name for the Custom Field "new field" key</span><pre>MLA_NEW_CUSTOM_FIELD</pre></a></li>
122
  <li class="constant "><a href="#MLA_NEW_CUSTOM_RULE" title='MLA_NEW_CUSTOM_RULE :: Provides a unique name for the Custom Field "new rule" key'><span class="description">Provides a unique name for the Custom Field "new rule" key</span><pre>MLA_NEW_CUSTOM_RULE</pre></a></li>
123
  <li class="constant "><a href="#MLA_POST_MIME_TYPES" title="MLA_POST_MIME_TYPES :: Provides a unique name for the Post MIME Types option"><span class="description">Provides a unique name for the Post MIME Types option</span><pre>MLA_POST_MIME_TYPES</pre></a></li>
124
+ <li class="constant "><a href="#MLA_SCREEN_DISPLAY_LIBRARY" title="MLA_SCREEN_DISPLAY_LIBRARY :: Provides a unique name for the admin screen remove Media/Library option"><span class="description">Provides a unique name for the admin screen remove Media/Library option</span><pre>MLA_SCREEN_DISPLAY_LIBRARY</pre></a></li>
125
+ <li class="constant "><a href="#MLA_SCREEN_MENU_TITLE" title="MLA_SCREEN_MENU_TITLE :: Provides a unique name for the admin screen menu title option"><span class="description">Provides a unique name for the admin screen menu title option</span><pre>MLA_SCREEN_MENU_TITLE</pre></a></li>
126
+ <li class="constant "><a href="#MLA_SCREEN_ORDER" title="MLA_SCREEN_ORDER :: Provides a unique name for the admin screen menu order option"><span class="description">Provides a unique name for the admin screen menu order option</span><pre>MLA_SCREEN_ORDER</pre></a></li>
127
+ <li class="constant "><a href="#MLA_SCREEN_PAGE_TITLE" title="MLA_SCREEN_PAGE_TITLE :: Provides a unique name for the admin screen page title option"><span class="description">Provides a unique name for the admin screen page title option</span><pre>MLA_SCREEN_PAGE_TITLE</pre></a></li>
128
+ <li class="constant "><a href="#MLA_TABLE_VIEWS_WIDTH" title="MLA_TABLE_VIEWS_WIDTH :: Provides a unique name for the default table views width option"><span class="description">Provides a unique name for the default table views width option</span><pre>MLA_TABLE_VIEWS_WIDTH</pre></a></li>
129
+ <li class="constant "><a href="#MLA_TAXONOMY_FILTER_DEPTH" title="MLA_TAXONOMY_FILTER_DEPTH :: Provides a unique name for the taxonomy filter maximum depth option"><span class="description">Provides a unique name for the taxonomy filter maximum depth option</span><pre>MLA_TAXONOMY_FILTER_DEPTH</pre></a></li>
130
+ <li class="constant "><a href="#MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN" title="MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN :: Provides a unique name for the taxonomy filter maximum depth option"><span class="description">Provides a unique name for the taxonomy filter maximum depth option</span><pre>MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN</pre></a></li>
131
+ <li class="constant "><a href="#MLA_TAXONOMY_SUPPORT" title="MLA_TAXONOMY_SUPPORT :: Provides a unique name for the taxonomy support option"><span class="description">Provides a unique name for the taxonomy support option</span><pre>MLA_TAXONOMY_SUPPORT</pre></a></li>
132
  <li class="constant "><a href="#MLA_UPLOAD_MIMES" title="MLA_UPLOAD_MIMES :: Provides a unique name for the Upload MIME Types option"><span class="description">Provides a unique name for the Upload MIME Types option</span><pre>MLA_UPLOAD_MIMES</pre></a></li>
133
  <li class="constant "><a href="#MLA_VERSION_OPTION" title="MLA_VERSION_OPTION :: Provides a unique name for the current version option"><span class="description">Provides a unique name for the current version option</span><pre>MLA_VERSION_OPTION</pre></a></li>
134
  </ul>
1046
  </div>
1047
  <h3>
1048
  <i class="icon-custom icon-constant"></i> Constants</h3>
1049
+ <a name="MLA_DEFAULT_ORDER" id="MLA_DEFAULT_ORDER"> </a><div class="element clickable constant MLA_DEFAULT_ORDER" data-toggle="collapse" data-target=".MLA_DEFAULT_ORDER .collapse">
1050
+ <h2>Provides a unique name for the default order option</h2>
1051
+ <pre>MLA_DEFAULT_ORDER </pre>
1052
+ <div class="labels"></div>
1053
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1054
+ </div>
1055
+ <a name="MLA_DEFAULT_ORDERBY" id="MLA_DEFAULT_ORDERBY"> </a><div class="element clickable constant MLA_DEFAULT_ORDERBY" data-toggle="collapse" data-target=".MLA_DEFAULT_ORDERBY .collapse">
1056
+ <h2>Provides a unique name for the default orderby option</h2>
1057
+ <pre>MLA_DEFAULT_ORDERBY </pre>
1058
+ <div class="labels"></div>
1059
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1060
+ </div>
1061
  <a name="MLA_ENABLE_MLA_ICONS" id="MLA_ENABLE_MLA_ICONS"> </a><div class="element clickable constant MLA_ENABLE_MLA_ICONS" data-toggle="collapse" data-target=".MLA_ENABLE_MLA_ICONS .collapse">
1062
  <h2>Provides a unique name for the Enable MLA Icons option</h2>
1063
  <pre>MLA_ENABLE_MLA_ICONS </pre>
1076
  <div class="labels"></div>
1077
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1078
  </div>
1079
+ <a name="MLA_EXCLUDE_REVISIONS" id="MLA_EXCLUDE_REVISIONS"> </a><div class="element clickable constant MLA_EXCLUDE_REVISIONS" data-toggle="collapse" data-target=".MLA_EXCLUDE_REVISIONS .collapse">
1080
+ <h2>Provides a unique name for the exclude revisions option</h2>
1081
+ <pre>MLA_EXCLUDE_REVISIONS </pre>
1082
+ <div class="labels"></div>
1083
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1084
+ </div>
1085
+ <a name="MLA_EXIF_SIZE" id="MLA_EXIF_SIZE"> </a><div class="element clickable constant MLA_EXIF_SIZE" data-toggle="collapse" data-target=".MLA_EXIF_SIZE .collapse">
1086
+ <h2>Provides a "size" attribute value for the EXIF/Template Value field</h2>
1087
+ <pre>MLA_EXIF_SIZE </pre>
1088
+ <div class="labels"></div>
1089
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1090
+ </div>
1091
  <a name="MLA_FEATURED_IN_TUNING" id="MLA_FEATURED_IN_TUNING"> </a><div class="element clickable constant MLA_FEATURED_IN_TUNING" data-toggle="collapse" data-target=".MLA_FEATURED_IN_TUNING .collapse">
1092
  <h2>Provides a unique name for a database tuning option</h2>
1093
  <pre>MLA_FEATURED_IN_TUNING </pre>
1160
  <div class="labels"></div>
1161
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1162
  </div>
1163
+ <a name="MLA_SCREEN_DISPLAY_LIBRARY" id="MLA_SCREEN_DISPLAY_LIBRARY"> </a><div class="element clickable constant MLA_SCREEN_DISPLAY_LIBRARY" data-toggle="collapse" data-target=".MLA_SCREEN_DISPLAY_LIBRARY .collapse">
1164
+ <h2>Provides a unique name for the admin screen remove Media/Library option</h2>
1165
+ <pre>MLA_SCREEN_DISPLAY_LIBRARY </pre>
1166
+ <div class="labels"></div>
1167
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1168
+ </div>
1169
+ <a name="MLA_SCREEN_MENU_TITLE" id="MLA_SCREEN_MENU_TITLE"> </a><div class="element clickable constant MLA_SCREEN_MENU_TITLE" data-toggle="collapse" data-target=".MLA_SCREEN_MENU_TITLE .collapse">
1170
+ <h2>Provides a unique name for the admin screen menu title option</h2>
1171
+ <pre>MLA_SCREEN_MENU_TITLE </pre>
1172
+ <div class="labels"></div>
1173
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1174
+ </div>
1175
+ <a name="MLA_SCREEN_ORDER" id="MLA_SCREEN_ORDER"> </a><div class="element clickable constant MLA_SCREEN_ORDER" data-toggle="collapse" data-target=".MLA_SCREEN_ORDER .collapse">
1176
+ <h2>Provides a unique name for the admin screen menu order option</h2>
1177
+ <pre>MLA_SCREEN_ORDER </pre>
1178
+ <div class="labels"></div>
1179
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1180
+ </div>
1181
+ <a name="MLA_SCREEN_PAGE_TITLE" id="MLA_SCREEN_PAGE_TITLE"> </a><div class="element clickable constant MLA_SCREEN_PAGE_TITLE" data-toggle="collapse" data-target=".MLA_SCREEN_PAGE_TITLE .collapse">
1182
+ <h2>Provides a unique name for the admin screen page title option</h2>
1183
+ <pre>MLA_SCREEN_PAGE_TITLE </pre>
1184
+ <div class="labels"></div>
1185
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1186
+ </div>
1187
+ <a name="MLA_TABLE_VIEWS_WIDTH" id="MLA_TABLE_VIEWS_WIDTH"> </a><div class="element clickable constant MLA_TABLE_VIEWS_WIDTH" data-toggle="collapse" data-target=".MLA_TABLE_VIEWS_WIDTH .collapse">
1188
+ <h2>Provides a unique name for the default table views width option</h2>
1189
+ <pre>MLA_TABLE_VIEWS_WIDTH </pre>
1190
+ <div class="labels"></div>
1191
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1192
+ </div>
1193
+ <a name="MLA_TAXONOMY_FILTER_DEPTH" id="MLA_TAXONOMY_FILTER_DEPTH"> </a><div class="element clickable constant MLA_TAXONOMY_FILTER_DEPTH" data-toggle="collapse" data-target=".MLA_TAXONOMY_FILTER_DEPTH .collapse">
1194
+ <h2>Provides a unique name for the taxonomy filter maximum depth option</h2>
1195
+ <pre>MLA_TAXONOMY_FILTER_DEPTH </pre>
1196
+ <div class="labels"></div>
1197
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1198
+ </div>
1199
+ <a name="MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN" id="MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN"> </a><div class="element clickable constant MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN" data-toggle="collapse" data-target=".MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN .collapse">
1200
+ <h2>Provides a unique name for the taxonomy filter maximum depth option</h2>
1201
+ <pre>MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN </pre>
1202
+ <div class="labels"></div>
1203
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1204
+ </div>
1205
+ <a name="MLA_TAXONOMY_SUPPORT" id="MLA_TAXONOMY_SUPPORT"> </a><div class="element clickable constant MLA_TAXONOMY_SUPPORT" data-toggle="collapse" data-target=".MLA_TAXONOMY_SUPPORT .collapse">
1206
+ <h2>Provides a unique name for the taxonomy support option</h2>
1207
+ <pre>MLA_TAXONOMY_SUPPORT </pre>
1208
+ <div class="labels"></div>
1209
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
1210
+ </div>
1211
  <a name="MLA_UPLOAD_MIMES" id="MLA_UPLOAD_MIMES"> </a><div class="element clickable constant MLA_UPLOAD_MIMES" data-toggle="collapse" data-target=".MLA_UPLOAD_MIMES .collapse">
1212
  <h2>Provides a unique name for the Upload MIME Types option</h2>
1213
  <pre>MLA_UPLOAD_MIMES </pre>
1227
  <div class="row"><footer class="span12">
1228
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1229
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1230
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
1231
  </div>
1232
  </body>
1233
  </html>
phpDocs/classes/MLASettings.html CHANGED
@@ -79,6 +79,7 @@ add settings link in the Plugins section entry for MLA.</span><pre>mla_admin_men
79
  <li class="method private "><a href="#_compose_edit_upload_tab" title="_compose_edit_upload_tab :: Compose the Edit Upload type tab content for the Settings subpage"><span class="description">Compose the Edit Upload type tab content for the Settings subpage</span><pre>_compose_edit_upload_tab()</pre></a></li>
80
  <li class="method private "><a href="#_compose_edit_view_tab" title="_compose_edit_view_tab :: Compose the Edit View tab content for the Settings subpage"><span class="description">Compose the Edit View tab content for the Settings subpage</span><pre>_compose_edit_view_tab()</pre></a></li>
81
  <li class="method private "><a href="#_compose_general_tab" title="_compose_general_tab :: Compose the General tab content for the Settings subpage"><span class="description">Compose the General tab content for the Settings subpage</span><pre>_compose_general_tab()</pre></a></li>
 
82
  <li class="method private "><a href="#_compose_iptc_exif_tab" title="_compose_iptc_exif_tab :: Compose the IPTC/EXIF tab content for the Settings subpage"><span class="description">Compose the IPTC/EXIF tab content for the Settings subpage</span><pre>_compose_iptc_exif_tab()</pre></a></li>
83
  <li class="method private "><a href="#_compose_mla_gallery_tab" title="_compose_mla_gallery_tab :: Compose the MLA Gallery tab content for the Settings subpage"><span class="description">Compose the MLA Gallery tab content for the Settings subpage</span><pre>_compose_mla_gallery_tab()</pre></a></li>
84
  <li class="method private "><a href="#_compose_option_row" title="_compose_option_row :: Compose the table row for a single MLA option"><span class="description">Compose the table row for a single MLA option</span><pre>_compose_option_row()</pre></a></li>
@@ -88,6 +89,8 @@ add settings link in the Plugins section entry for MLA.</span><pre>mla_admin_men
88
  <li class="method private "><a href="#_compose_view_tab" title="_compose_view_tab :: Compose the Post MIME Type Views tab content for the Settings subpage"><span class="description">Compose the Post MIME Type Views tab content for the Settings subpage</span><pre>_compose_view_tab()</pre></a></li>
89
  <li class="method private "><a href="#_current_bulk_action" title="_current_bulk_action :: Get the current action selected from the bulk actions dropdown"><span class="description">Get the current action selected from the bulk actions dropdown</span><pre>_current_bulk_action()</pre></a></li>
90
  <li class="method private "><a href="#_delete_custom_field" title="_delete_custom_field :: Delete a custom field from the wp_postmeta table"><span class="description">Delete a custom field from the wp_postmeta table</span><pre>_delete_custom_field()</pre></a></li>
 
 
91
  <li class="method private "><a href="#_process_custom_field_mapping" title="_process_custom_field_mapping :: Process custom field settings against all image attachments
92
  without saving the settings to the mla_option"><span class="description">Process custom field settings against all image attachments
93
  without saving the settings to the mla_option</span><pre>_process_custom_field_mapping()</pre></a></li>
@@ -495,6 +498,21 @@ add settings link in the Plugins section entry for MLA.</h2>
495
  <code>array</code>'message' => status/error messages, 'body' => tab content</div>
496
  </div></div>
497
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
498
  <a name="_compose_iptc_exif_tab" id="_compose_iptc_exif_tab"></a><div class="element clickable method private _compose_iptc_exif_tab" data-toggle="collapse" data-target="._compose_iptc_exif_tab .collapse">
499
  <h2>Compose the IPTC/EXIF tab content for the Settings subpage</h2>
500
  <pre>_compose_iptc_exif_tab() : array</pre>
@@ -676,6 +694,36 @@ add settings link in the Plugins section entry for MLA.</h2>
676
  <code>array</code>Message(s) reflecting the results of the operation</div>
677
  </div></div>
678
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679
  <a name="_process_custom_field_mapping" id="_process_custom_field_mapping"></a><div class="element clickable method private _process_custom_field_mapping" data-toggle="collapse" data-target="._process_custom_field_mapping .collapse">
680
  <h2>Process custom field settings against all image attachments
681
  without saving the settings to the mla_option</h2>
@@ -1104,7 +1152,7 @@ each page load and cached for subsequent use.</p></p>
1104
  <div class="row"><footer class="span12">
1105
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1106
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1107
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
1108
  </div>
1109
  </body>
1110
  </html>
79
  <li class="method private "><a href="#_compose_edit_upload_tab" title="_compose_edit_upload_tab :: Compose the Edit Upload type tab content for the Settings subpage"><span class="description">Compose the Edit Upload type tab content for the Settings subpage</span><pre>_compose_edit_upload_tab()</pre></a></li>
80
  <li class="method private "><a href="#_compose_edit_view_tab" title="_compose_edit_view_tab :: Compose the Edit View tab content for the Settings subpage"><span class="description">Compose the Edit View tab content for the Settings subpage</span><pre>_compose_edit_view_tab()</pre></a></li>
81
  <li class="method private "><a href="#_compose_general_tab" title="_compose_general_tab :: Compose the General tab content for the Settings subpage"><span class="description">Compose the General tab content for the Settings subpage</span><pre>_compose_general_tab()</pre></a></li>
82
+ <li class="method private "><a href="#_compose_import_settings" title="_compose_import_settings :: Compose HTML markup for the import settings if any settings files exist"><span class="description">Compose HTML markup for the import settings if any settings files exist</span><pre>_compose_import_settings()</pre></a></li>
83
  <li class="method private "><a href="#_compose_iptc_exif_tab" title="_compose_iptc_exif_tab :: Compose the IPTC/EXIF tab content for the Settings subpage"><span class="description">Compose the IPTC/EXIF tab content for the Settings subpage</span><pre>_compose_iptc_exif_tab()</pre></a></li>
84
  <li class="method private "><a href="#_compose_mla_gallery_tab" title="_compose_mla_gallery_tab :: Compose the MLA Gallery tab content for the Settings subpage"><span class="description">Compose the MLA Gallery tab content for the Settings subpage</span><pre>_compose_mla_gallery_tab()</pre></a></li>
85
  <li class="method private "><a href="#_compose_option_row" title="_compose_option_row :: Compose the table row for a single MLA option"><span class="description">Compose the table row for a single MLA option</span><pre>_compose_option_row()</pre></a></li>
89
  <li class="method private "><a href="#_compose_view_tab" title="_compose_view_tab :: Compose the Post MIME Type Views tab content for the Settings subpage"><span class="description">Compose the Post MIME Type Views tab content for the Settings subpage</span><pre>_compose_view_tab()</pre></a></li>
90
  <li class="method private "><a href="#_current_bulk_action" title="_current_bulk_action :: Get the current action selected from the bulk actions dropdown"><span class="description">Get the current action selected from the bulk actions dropdown</span><pre>_current_bulk_action()</pre></a></li>
91
  <li class="method private "><a href="#_delete_custom_field" title="_delete_custom_field :: Delete a custom field from the wp_postmeta table"><span class="description">Delete a custom field from the wp_postmeta table</span><pre>_delete_custom_field()</pre></a></li>
92
+ <li class="method private "><a href="#_export_settings" title="_export_settings :: Serialize option settings and write them to a file"><span class="description">Serialize option settings and write them to a file</span><pre>_export_settings()</pre></a></li>
93
+ <li class="method private "><a href="#_import_settings" title="_import_settings :: Read a serialized file of option settings and write them to the database"><span class="description">Read a serialized file of option settings and write them to the database</span><pre>_import_settings()</pre></a></li>
94
  <li class="method private "><a href="#_process_custom_field_mapping" title="_process_custom_field_mapping :: Process custom field settings against all image attachments
95
  without saving the settings to the mla_option"><span class="description">Process custom field settings against all image attachments
96
  without saving the settings to the mla_option</span><pre>_process_custom_field_mapping()</pre></a></li>
498
  <code>array</code>'message' => status/error messages, 'body' => tab content</div>
499
  </div></div>
500
  </div>
501
+ <a name="_compose_import_settings" id="_compose_import_settings"></a><div class="element clickable method private _compose_import_settings" data-toggle="collapse" data-target="._compose_import_settings .collapse">
502
+ <h2>Compose HTML markup for the import settings if any settings files exist</h2>
503
+ <pre>_compose_import_settings() : string</pre>
504
+ <div class="labels"></div>
505
+ <div class="row collapse"><div class="detail-description">
506
+ <p class="long_description"></p>
507
+ <table class="table table-bordered"><tr>
508
+ <th>since</th>
509
+ <td>1.50</td>
510
+ </tr></table>
511
+ <h3>Returns</h3>
512
+ <div class="subelement response">
513
+ <code>string</code>HTML markup for the Import All Settings button and dropdown list, if any</div>
514
+ </div></div>
515
+ </div>
516
  <a name="_compose_iptc_exif_tab" id="_compose_iptc_exif_tab"></a><div class="element clickable method private _compose_iptc_exif_tab" data-toggle="collapse" data-target="._compose_iptc_exif_tab .collapse">
517
  <h2>Compose the IPTC/EXIF tab content for the Settings subpage</h2>
518
  <pre>_compose_iptc_exif_tab() : array</pre>
694
  <code>array</code>Message(s) reflecting the results of the operation</div>
695
  </div></div>
696
  </div>
697
+ <a name="_export_settings" id="_export_settings"></a><div class="element clickable method private _export_settings" data-toggle="collapse" data-target="._export_settings .collapse">
698
+ <h2>Serialize option settings and write them to a file</h2>
699
+ <pre>_export_settings() : array</pre>
700
+ <div class="labels"></div>
701
+ <div class="row collapse"><div class="detail-description">
702
+ <p class="long_description"><p>Options with a default value, i.e., not stored in the database are NOT written to the file.</p></p>
703
+ <table class="table table-bordered"><tr>
704
+ <th>since</th>
705
+ <td>1.50</td>
706
+ </tr></table>
707
+ <h3>Returns</h3>
708
+ <div class="subelement response">
709
+ <code>array</code>Message(s) reflecting the results of the operation</div>
710
+ </div></div>
711
+ </div>
712
+ <a name="_import_settings" id="_import_settings"></a><div class="element clickable method private _import_settings" data-toggle="collapse" data-target="._import_settings .collapse">
713
+ <h2>Read a serialized file of option settings and write them to the database</h2>
714
+ <pre>_import_settings() : array</pre>
715
+ <div class="labels"></div>
716
+ <div class="row collapse"><div class="detail-description">
717
+ <p class="long_description"></p>
718
+ <table class="table table-bordered"><tr>
719
+ <th>since</th>
720
+ <td>1.50</td>
721
+ </tr></table>
722
+ <h3>Returns</h3>
723
+ <div class="subelement response">
724
+ <code>array</code>Message(s) reflecting the results of the operation</div>
725
+ </div></div>
726
+ </div>
727
  <a name="_process_custom_field_mapping" id="_process_custom_field_mapping"></a><div class="element clickable method private _process_custom_field_mapping" data-toggle="collapse" data-target="._process_custom_field_mapping .collapse">
728
  <h2>Process custom field settings against all image attachments
729
  without saving the settings to the mla_option</h2>
1152
  <div class="row"><footer class="span12">
1153
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1154
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1155
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
1156
  </div>
1157
  </body>
1158
  </html>
phpDocs/classes/MLAShortcodes.html CHANGED
@@ -450,7 +450,7 @@ any further logic required to translate those values is contained in the filter.
450
  <div class="row"><footer class="span12">
451
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
452
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
453
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
454
  </div>
455
  </body>
456
  </html>
450
  <div class="row"><footer class="span12">
451
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
452
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
453
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
454
  </div>
455
  </body>
456
  </html>
phpDocs/classes/MLATest.html CHANGED
@@ -162,7 +162,7 @@ to ensure the plugin can run in the current WordPress envrionment.</p>
162
  <div class="row"><footer class="span12">
163
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
164
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
165
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
166
  </div>
167
  </body>
168
  </html>
162
  <div class="row"><footer class="span12">
163
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
164
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
165
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
166
  </div>
167
  </body>
168
  </html>
phpDocs/classes/MLA_List_Table.html CHANGED
@@ -98,6 +98,7 @@ and the value is db column to sort by.</span><pre>get_sortable_columns()</pre></
98
  <li class="method public "><a href="#mla_get_taxonomy_filter_dropdown" title="mla_get_taxonomy_filter_dropdown :: Get dropdown box of terms to filter by, if available"><span class="description">Get dropdown box of terms to filter by, if available</span><pre>mla_get_taxonomy_filter_dropdown()</pre></a></li>
99
  <li class="method public "><a href="#mla_manage_columns_filter" title="mla_manage_columns_filter :: Handler for filter 'manage_media_page_mla-menu_columns'"><span class="description">Handler for filter 'manage_media_page_mla-menu_columns'</span><pre>mla_manage_columns_filter()</pre></a></li>
100
  <li class="method public "><a href="#mla_manage_hidden_columns_filter" title="mla_manage_hidden_columns_filter :: Handler for filter 'get_user_option_managemedia_page_mla-menucolumnshidden'"><span class="description">Handler for filter 'get_user_option_managemedia_page_mla-menucolumnshidden'</span><pre>mla_manage_hidden_columns_filter()</pre></a></li>
 
101
  <li class="method public "><a href="#pagination" title="pagination :: Display the pagination, adding view, search and filter arguments"><span class="description">Display the pagination, adding view, search and filter arguments</span><pre>pagination()</pre></a></li>
102
  <li class="method public "><a href="#prepare_items" title="prepare_items :: Prepares the list of items for displaying"><span class="description">Prepares the list of items for displaying</span><pre>prepare_items()</pre></a></li>
103
  <li class="method public "><a href="#print_column_headers" title="print_column_headers :: Print column headers, adding view, search and filter arguments"><span class="description">Print column headers, adding view, search and filter arguments</span><pre>print_column_headers()</pre></a></li>
@@ -109,7 +110,6 @@ and the value is db column to sort by.</span><pre>get_sortable_columns()</pre></
109
  'ID_parent', 'title_name', 'post_title', 'post_name'"><span class="description">Add rollover actions to exactly one of the following displayed columns:
110
  'ID_parent', 'title_name', 'post_title', 'post_name'</span><pre>_build_rollover_actions()</pre></a></li>
111
  <li class="method private "><a href="#_default_hidden_columns" title="_default_hidden_columns :: Access the default list of hidden columns"><span class="description">Access the default list of hidden columns</span><pre>_default_hidden_columns()</pre></a></li>
112
- <li class="method private "><a href="#_mla_submenu_arguments" title="_mla_submenu_arguments :: Process $_REQUEST, building $submenu_arguments"><span class="description">Process $_REQUEST, building $submenu_arguments</span><pre>_mla_submenu_arguments()</pre></a></li>
113
  <li class="nav-header">
114
  <i class="icon-custom icon-property"></i> Properties</li>
115
  <li class="nav-header private">» Private</li>
@@ -840,6 +840,26 @@ is not created in time for the call from screen.php.</p></p>
840
  <code>array</code>updated list of hidden columns</div>
841
  </div></div>
842
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
843
  <a name="pagination" id="pagination"></a><div class="element clickable method public pagination" data-toggle="collapse" data-target=".pagination .collapse">
844
  <h2>Display the pagination, adding view, search and filter arguments</h2>
845
  <pre>pagination(string $which) : void</pre>
@@ -983,21 +1003,6 @@ but uses the output of wp_count_attachments() as input.</p></p>
983
  <code>array</code>default list of hidden columns</div>
984
  </div></div>
985
  </div>
986
- <a name="_mla_submenu_arguments" id="_mla_submenu_arguments"></a><div class="element clickable method private _mla_submenu_arguments" data-toggle="collapse" data-target="._mla_submenu_arguments .collapse">
987
- <h2>Process $_REQUEST, building $submenu_arguments</h2>
988
- <pre>_mla_submenu_arguments() : array</pre>
989
- <div class="labels"></div>
990
- <div class="row collapse"><div class="detail-description">
991
- <p class="long_description"></p>
992
- <table class="table table-bordered"><tr>
993
- <th>since</th>
994
- <td>1.42</td>
995
- </tr></table>
996
- <h3>Returns</h3>
997
- <div class="subelement response">
998
- <code>array</code>non-empty view, search, filter and sort arguments</div>
999
- </div></div>
1000
- </div>
1001
  <h3>
1002
  <i class="icon-custom icon-property"></i> Properties</h3>
1003
  <a name="%24currently_hidden" id="$currently_hidden"> </a><div class="element clickable property private $currently_hidden" data-toggle="collapse" data-target=".$currently_hidden .collapse">
@@ -1092,7 +1097,7 @@ Custom field columns are added to this array by mla_admin_init_action.</p></p>
1092
  <div class="row"><footer class="span12">
1093
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1094
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1095
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
1096
  </div>
1097
  </body>
1098
  </html>
98
  <li class="method public "><a href="#mla_get_taxonomy_filter_dropdown" title="mla_get_taxonomy_filter_dropdown :: Get dropdown box of terms to filter by, if available"><span class="description">Get dropdown box of terms to filter by, if available</span><pre>mla_get_taxonomy_filter_dropdown()</pre></a></li>
99
  <li class="method public "><a href="#mla_manage_columns_filter" title="mla_manage_columns_filter :: Handler for filter 'manage_media_page_mla-menu_columns'"><span class="description">Handler for filter 'manage_media_page_mla-menu_columns'</span><pre>mla_manage_columns_filter()</pre></a></li>
100
  <li class="method public "><a href="#mla_manage_hidden_columns_filter" title="mla_manage_hidden_columns_filter :: Handler for filter 'get_user_option_managemedia_page_mla-menucolumnshidden'"><span class="description">Handler for filter 'get_user_option_managemedia_page_mla-menucolumnshidden'</span><pre>mla_manage_hidden_columns_filter()</pre></a></li>
101
+ <li class="method public "><a href="#mla_submenu_arguments" title="mla_submenu_arguments :: Process $_REQUEST, building $submenu_arguments"><span class="description">Process $_REQUEST, building $submenu_arguments</span><pre>mla_submenu_arguments()</pre></a></li>
102
  <li class="method public "><a href="#pagination" title="pagination :: Display the pagination, adding view, search and filter arguments"><span class="description">Display the pagination, adding view, search and filter arguments</span><pre>pagination()</pre></a></li>
103
  <li class="method public "><a href="#prepare_items" title="prepare_items :: Prepares the list of items for displaying"><span class="description">Prepares the list of items for displaying</span><pre>prepare_items()</pre></a></li>
104
  <li class="method public "><a href="#print_column_headers" title="print_column_headers :: Print column headers, adding view, search and filter arguments"><span class="description">Print column headers, adding view, search and filter arguments</span><pre>print_column_headers()</pre></a></li>
110
  'ID_parent', 'title_name', 'post_title', 'post_name'"><span class="description">Add rollover actions to exactly one of the following displayed columns:
111
  'ID_parent', 'title_name', 'post_title', 'post_name'</span><pre>_build_rollover_actions()</pre></a></li>
112
  <li class="method private "><a href="#_default_hidden_columns" title="_default_hidden_columns :: Access the default list of hidden columns"><span class="description">Access the default list of hidden columns</span><pre>_default_hidden_columns()</pre></a></li>
 
113
  <li class="nav-header">
114
  <i class="icon-custom icon-property"></i> Properties</li>
115
  <li class="nav-header private">» Private</li>
840
  <code>array</code>updated list of hidden columns</div>
841
  </div></div>
842
  </div>
843
+ <a name="mla_submenu_arguments" id="mla_submenu_arguments"></a><div class="element clickable method public mla_submenu_arguments" data-toggle="collapse" data-target=".mla_submenu_arguments .collapse">
844
+ <h2>Process $_REQUEST, building $submenu_arguments</h2>
845
+ <pre>mla_submenu_arguments(boolean $include_filters) : array</pre>
846
+ <div class="labels"></div>
847
+ <div class="row collapse"><div class="detail-description">
848
+ <p class="long_description"></p>
849
+ <table class="table table-bordered"><tr>
850
+ <th>since</th>
851
+ <td>1.42</td>
852
+ </tr></table>
853
+ <h3>Parameters</h3>
854
+ <div class="subelement argument">
855
+ <h4>$include_filters</h4>
856
+ <code>boolean</code><p>Optional: Include the "click filter" values in the results</p>
857
+ </div>
858
+ <h3>Returns</h3>
859
+ <div class="subelement response">
860
+ <code>array</code>non-empty view, search, filter and sort arguments</div>
861
+ </div></div>
862
+ </div>
863
  <a name="pagination" id="pagination"></a><div class="element clickable method public pagination" data-toggle="collapse" data-target=".pagination .collapse">
864
  <h2>Display the pagination, adding view, search and filter arguments</h2>
865
  <pre>pagination(string $which) : void</pre>
1003
  <code>array</code>default list of hidden columns</div>
1004
  </div></div>
1005
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1006
  <h3>
1007
  <i class="icon-custom icon-property"></i> Properties</h3>
1008
  <a name="%24currently_hidden" id="$currently_hidden"> </a><div class="element clickable property private $currently_hidden" data-toggle="collapse" data-target=".$currently_hidden .collapse">
1097
  <div class="row"><footer class="span12">
1098
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
1099
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
1100
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
1101
  </div>
1102
  </body>
1103
  </html>
phpDocs/classes/MLA_Upload_List_Table.html CHANGED
@@ -717,7 +717,7 @@ sorted by that column. This is computed each time the table is displayed.</p></p
717
  <div class="row"><footer class="span12">
718
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
719
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
720
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
721
  </div>
722
  </body>
723
  </html>
717
  <div class="row"><footer class="span12">
718
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
719
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
720
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
721
  </div>
722
  </body>
723
  </html>
phpDocs/classes/MLA_Upload_Optional_List_Table.html CHANGED
@@ -535,7 +535,7 @@ sorted by that column. This is computed each time the table is displayed.</p></p
535
  <div class="row"><footer class="span12">
536
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
537
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
538
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
539
  </div>
540
  </body>
541
  </html>
535
  <div class="row"><footer class="span12">
536
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
537
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
538
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
539
  </div>
540
  </body>
541
  </html>
phpDocs/classes/MLA_View_List_Table.html CHANGED
@@ -614,7 +614,7 @@ sorted by that column. This is computed each time the table is displayed.</p></p
614
  <div class="row"><footer class="span12">
615
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
616
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
617
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
618
  </div>
619
  </body>
620
  </html>
614
  <div class="row"><footer class="span12">
615
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
616
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
617
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
618
  </div>
619
  </body>
620
  </html>
phpDocs/deprecated.html CHANGED
@@ -64,7 +64,7 @@
64
  <div class="row"><footer class="span12">
65
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
66
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
67
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
68
  </div>
69
  </body>
70
  </html>
64
  <div class="row"><footer class="span12">
65
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
66
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
67
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
68
  </div>
69
  </body>
70
  </html>
phpDocs/errors.html CHANGED
@@ -83,7 +83,7 @@
83
  <div class="row"><footer class="span12">
84
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
85
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
86
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
87
  </div>
88
  </body>
89
  </html>
83
  <div class="row"><footer class="span12">
84
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
85
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
86
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
87
  </div>
88
  </body>
89
  </html>
phpDocs/graph_class.html CHANGED
@@ -61,7 +61,7 @@
61
  </script><div class="row"><footer class="span12">
62
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
63
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
64
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
65
  </div>
66
  </body>
67
  </html>
61
  </script><div class="row"><footer class="span12">
62
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
63
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
64
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
65
  </div>
66
  </body>
67
  </html>
phpDocs/index.html CHANGED
@@ -83,7 +83,7 @@
83
  <div class="row"><footer class="span12">
84
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
85
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
86
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
87
  </div>
88
  </body>
89
  </html>
83
  <div class="row"><footer class="span12">
84
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
85
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
86
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
87
  </div>
88
  </body>
89
  </html>
phpDocs/markers.html CHANGED
@@ -76,7 +76,7 @@
76
  </tr>
77
  <tr>
78
  <td>todo</td>
79
- <td>1823</td>
80
  <td>encode the rest</td>
81
  </tr>
82
  </table></div>
@@ -86,7 +86,7 @@
86
  <div class="row"><footer class="span12">
87
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
88
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
89
- generated on 2013-08-10T19:24:37-07:00.<br></footer></div>
90
  </div>
91
  </body>
92
  </html>
76
  </tr>
77
  <tr>
78
  <td>todo</td>
79
+ <td>2783</td>
80
  <td>encode the rest</td>
81
  </tr>
82
  </table></div>
86
  <div class="row"><footer class="span12">
87
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
88
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
89
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
90
  </div>
91
  </body>
92
  </html>
phpDocs/namespaces/global.html CHANGED
@@ -200,6 +200,12 @@ searchable database of exension/type associations for the "Uploads" admin settin
200
  </div>
201
  <h3>
202
  <i class="icon-custom icon-constant"></i> Constants</h3>
 
 
 
 
 
 
203
  <a name="MLA_OPTION_PREFIX" id="MLA_OPTION_PREFIX"> </a><div class="element clickable constant MLA_OPTION_PREFIX" data-toggle="collapse" data-target=".MLA_OPTION_PREFIX .collapse">
204
  <h2>Gives a unique prefix for plugin options; can be set in wp-config.php</h2>
205
  <pre>MLA_OPTION_PREFIX </pre>
@@ -207,7 +213,7 @@ searchable database of exension/type associations for the "Uploads" admin settin
207
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
208
  </div>
209
  <a name="MLA_PLUGIN_PATH" id="MLA_PLUGIN_PATH"> </a><div class="element clickable constant MLA_PLUGIN_PATH" data-toggle="collapse" data-target=".MLA_PLUGIN_PATH .collapse">
210
- <h2>Provides path information to the plugin root in file system format.</h2>
211
  <pre>MLA_PLUGIN_PATH </pre>
212
  <div class="labels"></div>
213
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
@@ -224,7 +230,7 @@ searchable database of exension/type associations for the "Uploads" admin settin
224
  <div class="row"><footer class="span12">
225
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
226
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
227
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
228
  </div>
229
  </body>
230
  </html>
200
  </div>
201
  <h3>
202
  <i class="icon-custom icon-constant"></i> Constants</h3>
203
+ <a name="MLA_BACKUP_DIR" id="MLA_BACKUP_DIR"> </a><div class="element clickable constant MLA_BACKUP_DIR" data-toggle="collapse" data-target=".MLA_BACKUP_DIR .collapse">
204
+ <h2>MLA_BACKUP_DIR</h2>
205
+ <pre>MLA_BACKUP_DIR </pre>
206
+ <div class="labels"></div>
207
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
208
+ </div>
209
  <a name="MLA_OPTION_PREFIX" id="MLA_OPTION_PREFIX"> </a><div class="element clickable constant MLA_OPTION_PREFIX" data-toggle="collapse" data-target=".MLA_OPTION_PREFIX .collapse">
210
  <h2>Gives a unique prefix for plugin options; can be set in wp-config.php</h2>
211
  <pre>MLA_OPTION_PREFIX </pre>
213
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
214
  </div>
215
  <a name="MLA_PLUGIN_PATH" id="MLA_PLUGIN_PATH"> </a><div class="element clickable constant MLA_PLUGIN_PATH" data-toggle="collapse" data-target=".MLA_PLUGIN_PATH .collapse">
216
+ <h2>Provides path information to the plugin root in file system format, including the trailing slash.</h2>
217
  <pre>MLA_PLUGIN_PATH </pre>
218
  <div class="labels"></div>
219
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
230
  <div class="row"><footer class="span12">
231
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
232
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
233
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
234
  </div>
235
  </body>
236
  </html>
phpDocs/packages/Media Library Assistant.html CHANGED
@@ -84,8 +84,9 @@ searchable database of exension/type associations for the "Uploads" admin settin
84
  to ensure the plugin can run in the current WordPress envrionment.">MLATest</a></li>
85
  <li class="nav-header">
86
  <i class="icon-custom icon-constant"></i> Constants</li>
 
87
  <li class="constant "><a href="#MLA_OPTION_PREFIX" title="MLA_OPTION_PREFIX :: Gives a unique prefix for plugin options; can be set in wp-config.php"><span class="description">Gives a unique prefix for plugin options; can be set in wp-config.php</span><pre>MLA_OPTION_PREFIX</pre></a></li>
88
- <li class="constant "><a href="#MLA_PLUGIN_PATH" title="MLA_PLUGIN_PATH :: Provides path information to the plugin root in file system format."><span class="description">Provides path information to the plugin root in file system format.</span><pre>MLA_PLUGIN_PATH</pre></a></li>
89
  <li class="constant "><a href="#MLA_PLUGIN_URL" title="MLA_PLUGIN_URL :: Provides path information to the plugin root in URL format."><span class="description">Provides path information to the plugin root in URL format.</span><pre>MLA_PLUGIN_URL</pre></a></li>
90
  </ul>
91
  </div>
@@ -230,6 +231,12 @@ searchable database of exension/type associations for the "Uploads" admin settin
230
  </div>
231
  <h3>
232
  <i class="icon-custom icon-constant"></i> Constants</h3>
 
 
 
 
 
 
233
  <a name="MLA_OPTION_PREFIX" id="MLA_OPTION_PREFIX"> </a><div class="element clickable constant MLA_OPTION_PREFIX" data-toggle="collapse" data-target=".MLA_OPTION_PREFIX .collapse">
234
  <h2>Gives a unique prefix for plugin options; can be set in wp-config.php</h2>
235
  <pre>MLA_OPTION_PREFIX </pre>
@@ -237,7 +244,7 @@ searchable database of exension/type associations for the "Uploads" admin settin
237
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
238
  </div>
239
  <a name="MLA_PLUGIN_PATH" id="MLA_PLUGIN_PATH"> </a><div class="element clickable constant MLA_PLUGIN_PATH" data-toggle="collapse" data-target=".MLA_PLUGIN_PATH .collapse">
240
- <h2>Provides path information to the plugin root in file system format.</h2>
241
  <pre>MLA_PLUGIN_PATH </pre>
242
  <div class="labels"></div>
243
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
@@ -254,7 +261,7 @@ searchable database of exension/type associations for the "Uploads" admin settin
254
  <div class="row"><footer class="span12">
255
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
256
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
257
- generated on 2013-08-10T19:24:36-07:00.<br></footer></div>
258
  </div>
259
  </body>
260
  </html>
84
  to ensure the plugin can run in the current WordPress envrionment.">MLATest</a></li>
85
  <li class="nav-header">
86
  <i class="icon-custom icon-constant"></i> Constants</li>
87
+ <li class="constant "><a href="#MLA_BACKUP_DIR" title="MLA_BACKUP_DIR :: "><span class="description">MLA_BACKUP_DIR</span><pre>MLA_BACKUP_DIR</pre></a></li>
88
  <li class="constant "><a href="#MLA_OPTION_PREFIX" title="MLA_OPTION_PREFIX :: Gives a unique prefix for plugin options; can be set in wp-config.php"><span class="description">Gives a unique prefix for plugin options; can be set in wp-config.php</span><pre>MLA_OPTION_PREFIX</pre></a></li>
89
+ <li class="constant "><a href="#MLA_PLUGIN_PATH" title="MLA_PLUGIN_PATH :: Provides path information to the plugin root in file system format, including the trailing slash."><span class="description">Provides path information to the plugin root in file system format, including the trailing slash.</span><pre>MLA_PLUGIN_PATH</pre></a></li>
90
  <li class="constant "><a href="#MLA_PLUGIN_URL" title="MLA_PLUGIN_URL :: Provides path information to the plugin root in URL format."><span class="description">Provides path information to the plugin root in URL format.</span><pre>MLA_PLUGIN_URL</pre></a></li>
91
  </ul>
92
  </div>
231
  </div>
232
  <h3>
233
  <i class="icon-custom icon-constant"></i> Constants</h3>
234
+ <a name="MLA_BACKUP_DIR" id="MLA_BACKUP_DIR"> </a><div class="element clickable constant MLA_BACKUP_DIR" data-toggle="collapse" data-target=".MLA_BACKUP_DIR .collapse">
235
+ <h2>MLA_BACKUP_DIR</h2>
236
+ <pre>MLA_BACKUP_DIR </pre>
237
+ <div class="labels"></div>
238
+ <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
239
+ </div>
240
  <a name="MLA_OPTION_PREFIX" id="MLA_OPTION_PREFIX"> </a><div class="element clickable constant MLA_OPTION_PREFIX" data-toggle="collapse" data-target=".MLA_OPTION_PREFIX .collapse">
241
  <h2>Gives a unique prefix for plugin options; can be set in wp-config.php</h2>
242
  <pre>MLA_OPTION_PREFIX </pre>
244
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
245
  </div>
246
  <a name="MLA_PLUGIN_PATH" id="MLA_PLUGIN_PATH"> </a><div class="element clickable constant MLA_PLUGIN_PATH" data-toggle="collapse" data-target=".MLA_PLUGIN_PATH .collapse">
247
+ <h2>Provides path information to the plugin root in file system format, including the trailing slash.</h2>
248
  <pre>MLA_PLUGIN_PATH </pre>
249
  <div class="labels"></div>
250
  <div class="row collapse"><div class="detail-description"><p class="long_description"></p></div></div>
261
  <div class="row"><footer class="span12">
262
  Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by <a href="http://glyphicons.com/">Glyphicons</a>.<br>
263
  Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor 2.0.0a8</a> and<br>
264
+ generated on 2013-09-27T14:55:49-07:00.<br></footer></div>
265
  </div>
266
  </body>
267
  </html>
phpDocs/structure.xml CHANGED
@@ -1,6 +1,6 @@
1
  <?xml version="1.0" encoding="utf-8"?>
2
  <project version="2.0.0a8" title="Media Library Assistant">
3
- <file path="includes\class-mla-data.php" hash="c4d0ccc4a2cfde1c683de6a1c25ed1cf" package="Media Library Assistant">
4
  <docblock line="2">
5
  <description><![CDATA[Database and template file access for MLA needs]]></description>
6
  <long-description><![CDATA[]]></long-description>
@@ -40,38 +40,38 @@ Templates separate HTML markup from PHP code for easier maintenance and localiza
40
  </tag>
41
  </docblock>
42
  </property>
43
- <property final="false" static="true" visibility="private" line="221" namespace="global" package="Media Library Assistant">
44
  <name>$mla_list_table_items</name>
45
  <default><![CDATA[NULL]]></default>
46
- <docblock line="214">
47
  <description><![CDATA[Cache the results of mla_count_list_table_items for reuse in mla_query_list_table_items]]></description>
48
  <long-description><![CDATA[]]></long-description>
49
- <tag line="214" name="since" description="1.40"/>
50
- <tag line="214" name="var" description="" type="array">
51
  <type by_reference="false">array</type>
52
  </tag>
53
  </docblock>
54
  </property>
55
- <property final="false" static="true" visibility="private" line="327" namespace="global" package="Media Library Assistant">
56
  <name>$query_parameters</name>
57
  <default><![CDATA[array()]]></default>
58
- <docblock line="314">
59
  <description><![CDATA[WP_Query filter "parameters"]]></description>
60
  <long-description><![CDATA[<p>This array defines parameters for the query's join, where and orderby filters.
61
  The parameters are set up in the _prepare_list_table_query function, and
62
  any further logic required to translate those values is contained in the filters.</p>
63
 
64
  <p>Array index values are: use_postmeta_view, postmeta_key, postmeta_value, patterns, detached, orderby, order, mla-metavalue, debug, s, mla_search_connector, mla_search_fields, sentence, exact</p>]]></long-description>
65
- <tag line="314" name="since" description="0.30"/>
66
- <tag line="314" name="var" description="" type="array">
67
  <type by_reference="false">array</type>
68
  </tag>
69
  </docblock>
70
  </property>
71
- <property final="false" static="true" visibility="private" line="1467" namespace="global" package="Media Library Assistant">
72
  <name>$galleries</name>
73
  <default><![CDATA[null]]></default>
74
- <docblock line="1448">
75
  <description><![CDATA[Objects containing [gallery] shortcodes]]></description>
76
  <long-description><![CDATA[<p>This array contains all of the objects containing one or more [gallery] shortcodes
77
  and array(s) of which attachments each [gallery] contains. The arrays are built once
@@ -84,111 +84,113 @@ each page load and cached for subsequent calls.</p>
84
  ['galleries'] array of [gallery] entries numbered from one (1), containing:
85
  galleries[X]['query'] contains a string with the arguments of the [gallery],
86
  galleries[X]['results'] contains an array ( ID ) of post_ids for the objects in the gallery.</p>]]></long-description>
87
- <tag line="1448" name="since" description="0.70"/>
88
- <tag line="1448" name="var" description="" type="array">
89
  <type by_reference="false">array</type>
90
  </tag>
91
  </docblock>
92
  </property>
93
- <property final="false" static="true" visibility="private" line="1480" namespace="global" package="Media Library Assistant">
94
  <name>$mla_galleries</name>
95
  <default><![CDATA[null]]></default>
96
- <docblock line="1469">
97
  <description><![CDATA[Objects containing [mla_gallery] shortcodes]]></description>
98
  <long-description><![CDATA[<p>This array contains all of the objects containing one or more [mla_gallery] shortcodes
99
  and array(s) of which attachments each [mla_gallery] contains. The arrays are built once
100
  each page load and cached for subsequent calls.</p>]]></long-description>
101
- <tag line="1469" name="since" description="0.70"/>
102
- <tag line="1469" name="var" description="" type="array">
103
  <type by_reference="false">array</type>
104
  </tag>
105
  </docblock>
106
  </property>
107
- <property final="false" static="true" visibility="private" line="1663" namespace="global" package="Media Library Assistant">
108
  <name>$pdf_indirect_objects</name>
109
  <default><![CDATA[NULL]]></default>
110
- <docblock line="1654">
111
  <description><![CDATA[Array of PDF indirect objects]]></description>
112
- <long-description><![CDATA[<p>This array contains all of the indirect object offsets and lengths</p>]]></long-description>
113
- <tag line="1654" name="since" description="1.4x"/>
114
- <tag line="1654" name="var" description="" type="array">
 
 
115
  <type by_reference="false">array</type>
116
  </tag>
117
  </docblock>
118
  </property>
119
- <property final="false" static="true" visibility="private" line="2352" namespace="global" package="Media Library Assistant">
120
  <name>$utf8_chars</name>
121
  <default><![CDATA[array("\xC2\x80", "\xC2\x81", "\xC2\x82", "\xC2\x83", "\xC2\x84", "\xC2\x85", "\xC2\x86", "\xC2\x87", "\xC2\x88", "\xC2\x89", "\xC2\x8A", "\xC2\x8B", "\xC2\x8C", "\xC2\x8D", "\xC2\x8E", "\xC2\x8F", "\xC2\x90", "\xC2\x91", "\xC2\x92", "\xC2\x93", "\xC2\x94", "\xC2\x95", "\xC2\x96", "\xC2\x97", "\xC2\x98", "\xC2\x99", "\xC2\x9A", "\xC2\x9B", "\xC2\x9C", "\xC2\x9D", "\xC2\x9E", "\xC2\x9F", "\xC2\xA0", "\xC2\xA1", "\xC2\xA2", "\xC2\xA3", "\xC2\xA4", "\xC2\xA5", "\xC2\xA6", "\xC2\xA7", "\xC2\xA8", "\xC2\xA9", "\xC2\xAA", "\xC2\xAB", "\xC2\xAC", "\xC2\xAD", "\xC2\xAE", "\xC2\xAF", "\xC2\xB0", "\xC2\xB1", "\xC2\xB2", "\xC2\xB3", "\xC2\xB4", "\xC2\xB5", "\xC2\xB6", "\xC2\xB7", "\xC2\xB8", "\xC2\xB9", "\xC2\xBA", "\xC2\xBB", "\xC2\xBC", "\xC2\xBD", "\xC2\xBE", "\xC2\xBF", "\xC3\x80", "\xC3\x81", "\xC3\x82", "\xC3\x83", "\xC3\x84", "\xC3\x85", "\xC3\x86", "\xC3\x87", "\xC3\x88", "\xC3\x89", "\xC3\x8A", "\xC3\x8B", "\xC3\x8C", "\xC3\x8D", "\xC3\x8E", "\xC3\x8F", "\xC3\x90", "\xC3\x91", "\xC3\x92", "\xC3\x93", "\xC3\x94", "\xC3\x95", "\xC3\x96", "\xC3\x97", "\xC3\x98", "\xC3\x99", "\xC3\x9A", "\xC3\x9B", "\xC3\x9C", "\xC3\x9D", "\xC3\x9E", "\xC3\x9F", "\xC3\xA0", "\xC3\xA1", "\xC3\xA2", "\xC3\xA3", "\xC3\xA4", "\xC3\xA5", "\xC3\xA6", "\xC3\xA7", "\xC3\xA8", "\xC3\xA9", "\xC3\xAA", "\xC3\xAB", "\xC3\xAC", "\xC3\xAD", "\xC3\xAE", "\xC3\xAF", "\xC3\xB0", "\xC3\xB1", "\xC3\xB2", "\xC3\xB3", "\xC3\xB4", "\xC3\xB5", "\xC3\xB6", "\xC3\xB7", "\xC3\xB8", "\xC3\xB9", "\xC3\xBA", "\xC3\xBB", "\xC3\xBC", "\xC3\xBD", "\xC3\xBE", "\xC3\xBF")]]></default>
122
- <docblock line="2345">
123
  <description><![CDATA[UTF-8 replacements for invalid SQL characters]]></description>
124
  <long-description><![CDATA[]]></long-description>
125
- <tag line="2345" name="since" description="1.41"/>
126
- <tag line="2345" name="var" description="" type="array">
127
  <type by_reference="false">array</type>
128
  </tag>
129
  </docblock>
130
  </property>
131
- <property final="false" static="true" visibility="private" line="2410" namespace="global" package="Media Library Assistant">
132
  <name>$mla_iptc_records</name>
133
  <default><![CDATA[array("1#000" => "Model Version", "1#005" => "Destination", "1#020" => "File Format", "1#022" => "File Format Version", "1#030" => "Service Identifier", "1#040" => "Envelope Number", "1#050" => "Product ID", "1#060" => "Envelope Priority", "1#070" => "Date Sent", "1#080" => "Time Sent", "1#090" => "Coded Character Set", "1#100" => "UNO", "1#120" => "ARM Identifier", "1#122" => "ARM Version", "2#000" => "Record Version", "2#003" => "Object Type Reference", "2#004" => "Object Attribute Reference", "2#005" => "Object Name", "2#007" => "Edit Status", "2#008" => "Editorial Update", "2#010" => "Urgency", "2#012" => "Subject Reference", "2#015" => "Category", "2#020" => "Supplemental Category", "2#022" => "Fixture Identifier", "2#025" => "Keywords", "2#026" => "Content Location Code", "2#027" => "Content Location Name", "2#030" => "Release Date", "2#035" => "Release Time", "2#037" => "Expiration Date", "2#038" => "Expiration Time", "2#040" => "Special Instructions", "2#042" => "Action Advised", "2#045" => "Reference Service", "2#047" => "Reference Date", "2#050" => "Reference Number", "2#055" => "Date Created", "2#060" => "Time Created", "2#062" => "Digital Creation Date", "2#063" => "Digital Creation Time", "2#065" => "Originating Program", "2#070" => "Program Version", "2#075" => "Object Cycle", "2#080" => "By-line", "2#085" => "By-line Title", "2#090" => "City", "2#092" => "Sub-location", "2#095" => "Province or State", "2#100" => "Country or Primary Location Code", "2#101" => "Country or Primary Location Name", "2#103" => "Original Transmission Reference", "2#105" => "Headline", "2#110" => "Credit", "2#115" => "Source", "2#116" => "Copyright Notice", "2#118" => "Contact", "2#120" => "Caption or Abstract", "2#122" => "Caption Writer or Editor", "2#125" => "Rasterized Caption", "2#130" => "Image Type", "2#131" => "Image Orientation", "2#135" => "Language Identifier", "2#150" => "Audio Type", "2#151" => "Audio Sampling Rate", "2#152" => "Audio Sampling Resolution", "2#153" => "Audio Duration", "2#154" => "Audio Outcue", "2#200" => "ObjectData Preview File Format", "2#201" => "ObjectData Preview File Format Version", "2#202" => "ObjectData Preview Data", "7#010" => "Size Mode", "7#020" => "Max Subfile Size", "7#090" => "ObjectData Size Announced", "7#095" => "Maximum ObjectData Size", "8#010" => "Subfile", "9#010" => "Confirmed ObjectData Size")]]></default>
134
- <docblock line="2400">
135
  <description><![CDATA[IPTC Dataset identifiers and names]]></description>
136
  <long-description><![CDATA[<p>This array contains the identifiers and names of Datasets defined in
137
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
138
- <tag line="2400" name="since" description="0.90"/>
139
- <tag line="2400" name="var" description="" type="array">
140
  <type by_reference="false">array</type>
141
  </tag>
142
  </docblock>
143
  </property>
144
- <property final="false" static="true" visibility="public" line="2509" namespace="global" package="Media Library Assistant">
145
  <name>$mla_iptc_keys</name>
146
  <default><![CDATA[array('model-version' => '1#000', 'destination' => '1#005', 'file-format' => '1#020', 'file-format-version' => '1#022', 'service-identifier' => '1#030', 'envelope-number' => '1#040', 'product-id' => '1#050', 'envelope-priority' => '1#060', 'date-sent' => '1#070', 'time-sent' => '1#080', 'coded-character-set' => '1#090', 'uno' => '1#100', 'arm-identifier' => '1#120', 'arm-version' => '1#122', 'record-version' => '2#000', 'object-type-reference' => '2#003', 'object-attribute-reference' => '2#004', 'object-name' => '2#005', 'edit-status' => '2#007', 'editorial-update' => '2#008', 'urgency' => '2#010', 'subject-reference' => '2#012', 'category' => '2#015', 'supplemental-category' => '2#020', 'fixture-identifier' => '2#022', 'keywords' => '2#025', 'content-location-code' => '2#026', 'content-location-name' => '2#027', 'release-date' => '2#030', 'release-time' => '2#035', 'expiration-date' => '2#037', 'expiration-time' => '2#038', 'special-instructions' => '2#040', 'action-advised' => '2#042', 'reference-service' => '2#045', 'reference-date' => '2#047', 'reference-number' => '2#050', 'date-created' => '2#055', 'time-created' => '2#060', 'digital-creation-date' => '2#062', 'digital-creation-time' => '2#063', 'originating-program' => '2#065', 'program-version' => '2#070', 'object-cycle' => '2#075', 'by-line' => '2#080', 'by-line-title' => '2#085', 'city' => '2#090', 'sub-location' => '2#092', 'province-or-state' => '2#095', 'country-or-primary-location-code' => '2#100', 'country-or-primary-location-name' => '2#101', 'original-transmission-reference' => '2#103', 'headline' => '2#105', 'credit' => '2#110', 'source' => '2#115', 'copyright-notice' => '2#116', 'contact' => '2#118', 'caption-or-abstract' => '2#120', 'caption-writer-or-editor' => '2#122', 'rasterized-caption' => '2#125', 'image-type' => '2#130', 'image-orientation' => '2#131', 'language-identifier' => '2#135', 'audio-type' => '2#150', 'audio-sampling-rate' => '2#151', 'audio-sampling-resolution' => '2#152', 'audio-duration' => '2#153', 'audio-outcue' => '2#154', 'objectdata-preview-file-format' => '2#200', 'objectdata-preview-file-format-version' => '2#201', 'objectdata-preview-data' => '2#202', 'size-mode' => '7#010', 'max-subfile-size' => '7#020', 'objectdata-size-announced' => '7#090', 'maximum-objectdata-size' => '7#095', 'subfile' => '8#010', 'confirmed-objectdata-size' => '9#010')]]></default>
147
- <docblock line="2499">
148
  <description><![CDATA[IPTC Dataset friendly name/slug and identifiers]]></description>
149
  <long-description><![CDATA[<p>This array contains the sanitized names and identifiers of Datasets defined in
150
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
151
- <tag line="2499" name="since" description="0.90"/>
152
- <tag line="2499" name="var" description="" type="array">
153
  <type by_reference="false">array</type>
154
  </tag>
155
  </docblock>
156
  </property>
157
- <property final="false" static="true" visibility="private" line="2608" namespace="global" package="Media Library Assistant">
158
  <name>$mla_iptc_descriptions</name>
159
  <default><![CDATA[array("1#000" => "2 octet binary IIM version number", "1#005" => "Max 1024 characters of Destination (ISO routing information); repeatable", "1#020" => "2 octet binary file format number, see IPTC-NAA V4 Appendix A", "1#022" => "2 octet binary file format version number", "1#030" => "Max 10 characters of Service Identifier and product", "1#040" => "8 Character Envelope Number", "1#050" => "Max 32 characters subset of provider's overall service; repeatable", "1#060" => "1 numeric character of envelope handling priority (not urgency)", "1#070" => "8 numeric characters of Date Sent by service - CCYYMMDD", "1#080" => "11 characters of Time Sent by service - HHMMSS±HHMM", "1#090" => "Max 32 characters of control functions, etc.", "1#100" => "14 to 80 characters of eternal, globally unique identification for objects", "1#120" => "2 octet binary Abstract Relationship Model Identifier", "1#122" => "2 octet binary Abstract Relationship Model Version", "2#000" => "2 octet binary Information Interchange Model, Part II version number", "2#003" => "3 to 67 Characters of Object Type Reference number and optional text", "2#004" => "3 to 67 Characters of Object Attribute Reference number and optional text; repeatable", "2#005" => "Max 64 characters of the object name or shorthand reference", "2#007" => "Max 64 characters of the status of the objectdata", "2#008" => "2 numeric characters of the type of update this object provides", "2#010" => "1 numeric character of the editorial urgency of content", "2#012" => "13 to 236 characters of a structured definition of the subject matter; repeatable", "2#015" => "Max 3 characters of the subject of the objectdata, DEPRECATED", "2#020" => "Max 32 characters (each) of further refinement of subject, DEPRECATED; repeatable", "2#022" => "Max 32 characters identifying recurring, predictable content", "2#025" => "Max 64 characters (each) of tags; repeatable", "2#026" => "3 characters of ISO3166 country code or IPTC-assigned code; repeatable", "2#027" => "Max 64 characters of publishable country/geographical location name; repeatable", "2#030" => "8 numeric characters of Release Date - CCYYMMDD", "2#035" => "11 characters of Release Time (earliest use) - HHMMSS±HHMM", "2#037" => "8 numeric characters of Expiration Date (latest use) - CCYYMDD", "2#038" => "11 characters of Expiration Time (latest use) - HHMMSS±HHMM", "2#040" => "Max 256 Characters of editorial instructions, e.g., embargoes and warnings", "2#042" => "2 numeric characters of type of action this object provides to a previous object", "2#045" => "Max 10 characters of the Service ID (1#030) of a prior envelope; repeatable", "2#047" => "8 numeric characters of prior envelope Reference Date (1#070) - CCYYMMDD; repeatable", "2#050" => "8 characters of prior envelope Reference Number (1#040); repeatable", "2#055" => "8 numeric characters of intellectual content Date Created - CCYYMMDD", "2#060" => "11 characters of intellectual content Time Created - HHMMSS±HHMM", "2#062" => "8 numeric characters of digital representation creation date - CCYYMMDD", "2#063" => "11 characters of digital representation creation time - HHMMSS±HHMM", "2#065" => "Max 32 characters of the program used to create the objectdata", "2#070" => "Program Version - Max 10 characters of the version of the program used to create the objectdata", "2#075" => "1 character where a=morning, p=evening, b=both", "2#080" => "Max 32 Characters of the name of the objectdata creator, e.g., the writer, photographer; repeatable", "2#085" => "Max 32 characters of the title of the objectdata creator; repeatable", "2#090" => "Max 32 Characters of the city of objectdata origin", "2#092" => "Max 32 Characters of the location within the city of objectdata origin", "2#095" => "Max 32 Characters of the objectdata origin Province or State", "2#100" => "3 characters of ISO3166 or IPTC-assigned code for Country of objectdata origin", "2#101" => "Max 64 characters of publishable country/geographical location name of objectdata origin", "2#103" => "Max 32 characters of a code representing the location of original transmission", "2#105" => "Max 256 Characters of a publishable entry providing a synopsis of the contents of the objectdata", "2#110" => "Max 32 Characters that identifies the provider of the objectdata (Vs the owner/creator)", "2#115" => "Max 32 Characters that identifies the original owner of the intellectual content", "2#116" => "Max 128 Characters that contains any necessary copyright notice", "2#118" => "Max 128 characters that identifies the person or organisation which can provide further background information; repeatable", "2#120" => "Max 2000 Characters of a textual description of the objectdata", "2#122" => "Max 32 Characters that the identifies the person involved in the writing, editing or correcting the objectdata or caption/abstract; repeatable", "2#125" => "7360 binary octets of the rasterized caption - 1 bit per pixel, 460x128-pixel image", "2#130" => "2 characters of color composition type and information", "2#131" => "1 alphabetic character indicating the image area layout - P=portrait, L=landscape, S=square", "2#135" => "2 or 3 aphabetic characters containing the major national language of the object, according to the ISO 639:1988 codes", "2#150" => "2 characters identifying monaural/stereo and exact type of audio content", "2#151" => "6 numeric characters representing the audio sampling rate in hertz (Hz)", "2#152" => "2 numeric characters representing the number of bits in each audio sample", "2#153" => "6 numeric characters of the Audio Duration - HHMMSS", "2#154" => "Max 64 characters of the content of the end of an audio objectdata", "2#200" => "2 octet binary file format of the ObjectData Preview", "2#201" => "2 octet binary particular version of the ObjectData Preview File Format", "2#202" => "Max 256000 binary octets containing the ObjectData Preview data", "7#010" => "1 numeric character - 0=objectdata size not known, 1=objectdata size known at beginning of transfer", "7#020" => "4 octet binary maximum subfile dataset(s) size", "7#090" => "4 octet binary objectdata size if known at beginning of transfer", "7#095" => "4 octet binary largest possible objectdata size", "8#010" => "Subfile DataSet containing the objectdata itself; repeatable", "9#010" => "4 octet binary total objectdata size")]]></default>
160
- <docblock line="2598">
161
  <description><![CDATA[IPTC Dataset descriptions]]></description>
162
  <long-description><![CDATA[<p>This array contains the descriptions of Datasets defined in
163
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
164
- <tag line="2598" name="since" description="0.90"/>
165
- <tag line="2598" name="var" description="" type="array">
166
  <type by_reference="false">array</type>
167
  </tag>
168
  </docblock>
169
  </property>
170
- <property final="false" static="true" visibility="private" line="2707" namespace="global" package="Media Library Assistant">
171
  <name>$mla_iptc_formats</name>
172
  <default><![CDATA[array(0 => "No ObjectData", 1 => "IPTC-NAA Digital Newsphoto Parameter Record", 2 => "IPTC7901 Recommended Message Format", 3 => "Tagged Image File Format (Adobe/Aldus Image data)", 4 => "Illustrator (Adobe Graphics data)", 5 => "AppleSingle (Apple Computer Inc)", 6 => "NAA 89-3 (ANPA 1312)", 7 => "MacBinary II", 0 => "IPTC Unstructured Character Oriented File Format (UCOFF)", 0 => "United Press International ANPA 1312 variant", 10 => "United Press International Down-Load Message", 11 => "JPEG File Interchange (JFIF)", 12 => "Photo-CD Image-Pac (Eastman Kodak)", 13 => "Microsoft Bit Mapped Graphics File [*.BMP]", 14 => "Digital Audio File [*.WAV] (Microsoft & Creative Labs)", 15 => "Audio plus Moving Video [*.AVI] (Microsoft)", 16 => "PC DOS/Windows Executable Files [*.COM][*.EXE]", 17 => "Compressed Binary File [*.ZIP] (PKWare Inc)", 18 => "Audio Interchange File Format AIFF (Apple Computer Inc)", 19 => "RIFF Wave (Microsoft Corporation)", 20 => "Freehand (Macromedia/Aldus)", 21 => "Hypertext Markup Language - HTML (The Internet Society)", 22 => "MPEG 2 Audio Layer 2 (Musicom), ISO/IEC", 23 => "MPEG 2 Audio Layer 3, ISO/IEC", 24 => "Portable Document File (*.PDF) Adobe", 25 => "News Industry Text Format (NITF)", 26 => "Tape Archive (*.TAR)", 27 => "Tidningarnas Telegrambyrå NITF version (TTNITF DTD)", 28 => "Ritzaus Bureau NITF version (RBNITF DTD)", 29 => "Corel Draw [*.CDR]")]]></default>
173
- <docblock line="2697">
174
  <description><![CDATA[IPTC file format identifiers and descriptions]]></description>
175
  <long-description><![CDATA[<p>This array contains the file format identifiers and descriptions defined in
176
  the "IPTC-NAA Information Interchange Model Version No. 4.1" for dataset 1#020.</p>]]></long-description>
177
- <tag line="2697" name="since" description="0.90"/>
178
- <tag line="2697" name="var" description="" type="array">
179
  <type by_reference="false">array</type>
180
  </tag>
181
  </docblock>
182
  </property>
183
- <property final="false" static="true" visibility="private" line="2750" namespace="global" package="Media Library Assistant">
184
  <name>$mla_iptc_image_types</name>
185
  <default><![CDATA[array("M" => "Monochrome", "Y" => "Yellow Component", "M" => "Magenta Component", "C" => "Cyan Component", "K" => "Black Component", "R" => "Red Component", "G" => "Green Component", "B" => "Blue Component", "T" => "Text Only", "F" => "Full colour composite, frame sequential", "L" => "Full colour composite, line sequential", "P" => "Full colour composite, pixel sequential", "S" => "Full colour composite, special interleaving")]]></default>
186
- <docblock line="2740">
187
  <description><![CDATA[IPTC image type identifiers and descriptions]]></description>
188
  <long-description><![CDATA[<p>This array contains the image type identifiers and descriptions defined in
189
  the "IPTC-NAA Information Interchange Model Version No. 4.1" for dataset 2#130, octet 2.</p>]]></long-description>
190
- <tag line="2740" name="since" description="0.90"/>
191
- <tag line="2740" name="var" description="" type="array">
192
  <type by_reference="false">array</type>
193
  </tag>
194
  </docblock>
@@ -235,1070 +237,1530 @@ where "key" becomes the key part of the array.</p>]]></long-description>
235
  <type/>
236
  </argument>
237
  </method>
238
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="162" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
239
  <name>mla_parse_template</name>
240
  <full_name>mla_parse_template</full_name>
241
- <docblock line="150">
242
- <description><![CDATA[Expand a template, replacing place holders with their values]]></description>
243
  <long-description><![CDATA[<p>A simple parsing function for basic templating.</p>]]></long-description>
244
- <tag line="150" name="since" description="0.1"/>
245
- <tag line="150" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
246
  <type by_reference="false">string</type>
247
  </tag>
248
- <tag line="150" name="param" description="An associative array containing keys and values e.g. array('key' =&gt; 'value')" type="array" variable="$hash">
249
  <type by_reference="false">array</type>
250
  </tag>
251
- <tag line="150" name="return" description="Placeholders corresponding to the keys of the hash will be replaced with their values" type="string">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  <type by_reference="false">string</type>
253
  </tag>
254
  </docblock>
255
- <argument line="162">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
  <name>$tpl</name>
257
  <default><![CDATA[]]></default>
258
  <type/>
259
  </argument>
260
- <argument line="162">
261
- <name>$hash</name>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
  <default><![CDATA[]]></default>
263
  <type/>
264
  </argument>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
265
  </method>
266
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="181" package="Media Library Assistant">
267
  <name>mla_get_template_placeholders</name>
268
  <full_name>mla_get_template_placeholders</full_name>
269
- <docblock line="171">
270
- <description><![CDATA[Analyze a template, returning an array of the place holders it contains]]></description>
271
  <long-description><![CDATA[]]></long-description>
272
- <tag line="171" name="since" description="0.90"/>
273
- <tag line="171" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
274
  <type by_reference="false">string</type>
275
  </tag>
276
- <tag line="171" name="return" description="Placeholder information: each entry is an array with ['prefix'] =&gt; string, ['value'] =&gt; string, ['option'] =&gt; string 'single'|'export'" type="array">
 
 
 
277
  <type by_reference="false">array</type>
278
  </tag>
279
  </docblock>
280
- <argument line="181">
281
  <name>$tpl</name>
282
  <default><![CDATA[]]></default>
283
  <type/>
284
  </argument>
 
 
 
 
 
285
  </method>
286
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="234" package="Media Library Assistant">
287
  <name>mla_count_list_table_items</name>
288
  <full_name>mla_count_list_table_items</full_name>
289
- <docblock line="223">
290
  <description><![CDATA[Get the total number of attachment posts]]></description>
291
  <long-description><![CDATA[]]></long-description>
292
- <tag line="223" name="since" description="0.30"/>
293
- <tag line="223" name="param" description="Query variables, e.g., from $_REQUEST" type="array" variable="$request">
294
  <type by_reference="false">array</type>
295
  </tag>
296
- <tag line="223" name="param" description="(optional) number of rows to skip over to reach desired page" type="int" variable="$offset">
297
  <type by_reference="false">int</type>
298
  </tag>
299
- <tag line="223" name="param" description="(optional) number of rows on each page" type="int" variable="$count">
300
  <type by_reference="false">int</type>
301
  </tag>
302
- <tag line="223" name="return" description="Number of attachment posts" type="integer">
303
  <type by_reference="false">integer</type>
304
  </tag>
305
  </docblock>
306
- <argument line="234">
307
  <name>$request</name>
308
  <default><![CDATA[]]></default>
309
  <type/>
310
  </argument>
311
- <argument line="234">
312
  <name>$offset</name>
313
  <default><![CDATA[NULL]]></default>
314
  <type/>
315
  </argument>
316
- <argument line="234">
317
  <name>$count</name>
318
  <default><![CDATA[NULL]]></default>
319
  <type/>
320
  </argument>
321
  </method>
322
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="263" package="Media Library Assistant">
323
  <name>mla_query_list_table_items</name>
324
  <full_name>mla_query_list_table_items</full_name>
325
- <docblock line="249">
326
  <description><![CDATA[Retrieve attachment objects for list table display]]></description>
327
  <long-description><![CDATA[<p>Supports prepare_items in class-mla-list-table.php.
328
  Modeled after wp_edit_attachments_query in wp-admin/post.php</p>]]></long-description>
329
- <tag line="249" name="since" description="0.1"/>
330
- <tag line="249" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$request">
331
  <type by_reference="false">array</type>
332
  </tag>
333
- <tag line="249" name="param" description="number of rows to skip over to reach desired page" type="int" variable="$offset">
334
  <type by_reference="false">int</type>
335
  </tag>
336
- <tag line="249" name="param" description="number of rows on each page" type="int" variable="$count">
337
  <type by_reference="false">int</type>
338
  </tag>
339
- <tag line="249" name="return" description="attachment objects (posts) including parent data, meta data and references" type="array">
340
  <type by_reference="false">array</type>
341
  </tag>
342
  </docblock>
343
- <argument line="263">
344
  <name>$request</name>
345
  <default><![CDATA[]]></default>
346
  <type/>
347
  </argument>
348
- <argument line="263">
349
  <name>$offset</name>
350
  <default><![CDATA[]]></default>
351
  <type/>
352
  </argument>
353
- <argument line="263">
354
  <name>$count</name>
355
  <default><![CDATA[]]></default>
356
  <type/>
357
  </argument>
358
  </method>
359
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="309" package="Media Library Assistant">
360
  <name>mla_query_media_modal_items</name>
361
  <full_name>mla_query_media_modal_items</full_name>
362
- <docblock line="296">
363
  <description><![CDATA[Retrieve attachment objects for the WordPress Media Manager]]></description>
364
  <long-description><![CDATA[<p>Supports month-year and taxonomy-term filters as well as the enhanced search box</p>]]></long-description>
365
- <tag line="296" name="since" description="1.20"/>
366
- <tag line="296" name="param" description="query parameters from Media Manager" type="array" variable="$request">
367
  <type by_reference="false">array</type>
368
  </tag>
369
- <tag line="296" name="param" description="number of rows to skip over to reach desired page" type="int" variable="$offset">
370
  <type by_reference="false">int</type>
371
  </tag>
372
- <tag line="296" name="param" description="number of rows on each page" type="int" variable="$count">
373
  <type by_reference="false">int</type>
374
  </tag>
375
- <tag line="296" name="return" description="attachment objects (posts)" type="array">
376
  <type by_reference="false">array</type>
377
  </tag>
378
  </docblock>
379
- <argument line="309">
380
  <name>$request</name>
381
  <default><![CDATA[]]></default>
382
  <type/>
383
  </argument>
384
- <argument line="309">
385
  <name>$offset</name>
386
  <default><![CDATA[]]></default>
387
  <type/>
388
  </argument>
389
- <argument line="309">
390
  <name>$count</name>
391
  <default><![CDATA[]]></default>
392
  <type/>
393
  </argument>
394
  </method>
395
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="343" package="Media Library Assistant">
396
  <name>_prepare_list_table_query</name>
397
  <full_name>_prepare_list_table_query</full_name>
398
- <docblock line="329">
399
  <description><![CDATA[Sanitize and expand query arguments from request variables]]></description>
400
  <long-description><![CDATA[<p>Prepare the arguments for WP_Query.
401
  Modeled after wp_edit_attachments_query in wp-admin/post.php</p>]]></long-description>
402
- <tag line="329" name="since" description="0.1"/>
403
- <tag line="329" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$raw_request">
404
  <type by_reference="false">array</type>
405
  </tag>
406
- <tag line="329" name="param" description="Optional number of rows (default 0) to skip over to reach desired page" type="int" variable="$offset">
407
  <type by_reference="false">int</type>
408
  </tag>
409
- <tag line="329" name="param" description="Optional number of rows on each page (0 = all rows, default)" type="int" variable="$count">
410
  <type by_reference="false">int</type>
411
  </tag>
412
- <tag line="329" name="return" description="revised arguments suitable for WP_Query" type="array">
413
  <type by_reference="false">array</type>
414
  </tag>
415
  </docblock>
416
- <argument line="343">
417
  <name>$raw_request</name>
418
  <default><![CDATA[]]></default>
419
  <type/>
420
  </argument>
421
- <argument line="343">
422
  <name>$offset</name>
423
  <default><![CDATA[0]]></default>
424
  <type/>
425
  </argument>
426
- <argument line="343">
427
  <name>$count</name>
428
  <default><![CDATA[0]]></default>
429
  <type/>
430
  </argument>
431
  </method>
432
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="651" package="Media Library Assistant">
433
  <name>_execute_list_table_query</name>
434
  <full_name>_execute_list_table_query</full_name>
435
- <docblock line="642">
436
  <description><![CDATA[Add filters, run query, remove filters]]></description>
437
  <long-description><![CDATA[]]></long-description>
438
- <tag line="642" name="since" description="0.30"/>
439
- <tag line="642" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$request">
440
  <type by_reference="false">array</type>
441
  </tag>
442
- <tag line="642" name="return" description="WP_Query object with query results" type="object">
443
  <type by_reference="false">object</type>
444
  </tag>
445
  </docblock>
446
- <argument line="651">
447
  <name>$request</name>
448
  <default><![CDATA[]]></default>
449
  <type/>
450
  </argument>
451
  </method>
452
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="728" package="Media Library Assistant">
453
  <name>mla_query_posts_search_filter</name>
454
  <full_name>mla_query_posts_search_filter</full_name>
455
- <docblock line="716">
456
  <description><![CDATA[Adds a keyword search to the WHERE clause, if required]]></description>
457
  <long-description><![CDATA[<p>Defined as public because it's a filter.</p>]]></long-description>
458
- <tag line="716" name="since" description="0.60"/>
459
- <tag line="716" name="param" description="query clause before modification" type="string" variable="$search_string">
460
  <type by_reference="false">string</type>
461
  </tag>
462
- <tag line="716" name="param" description="WP_Query object" type="object" variable="$query_object">
463
  <type by_reference="false">object</type>
464
  </tag>
465
- <tag line="716" name="return" description="query clause after keyword search addition" type="string">
466
  <type by_reference="false">string</type>
467
  </tag>
468
  </docblock>
469
- <argument line="728">
470
  <name>$search_string</name>
471
  <default><![CDATA[]]></default>
472
  <type/>
473
  </argument>
474
- <argument line="728">
475
  <name>$query_object</name>
476
  <default><![CDATA[]]></default>
477
  <type/>
478
  </argument>
479
  </method>
480
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="839" package="Media Library Assistant">
481
  <name>mla_query_posts_join_filter</name>
482
  <full_name>mla_query_posts_join_filter</full_name>
483
- <docblock line="828">
484
  <description><![CDATA[Adds a JOIN clause, if required, to handle sorting/searching on custom fields or ALT Text]]></description>
485
  <long-description><![CDATA[<p>Defined as public because it's a filter.</p>]]></long-description>
486
- <tag line="828" name="since" description="0.30"/>
487
- <tag line="828" name="param" description="query clause before modification" type="string" variable="$join_clause">
488
  <type by_reference="false">string</type>
489
  </tag>
490
- <tag line="828" name="return" description="query clause after &quot;LEFT JOIN view ON post_id&quot; item modification" type="string">
491
  <type by_reference="false">string</type>
492
  </tag>
493
  </docblock>
494
- <argument line="839">
495
  <name>$join_clause</name>
496
  <default><![CDATA[]]></default>
497
  <type/>
498
  </argument>
499
  </method>
500
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="866" package="Media Library Assistant">
501
  <name>mla_query_posts_where_filter</name>
502
  <full_name>mla_query_posts_where_filter</full_name>
503
- <docblock line="854">
504
  <description><![CDATA[Adds a WHERE clause for detached items]]></description>
505
  <long-description><![CDATA[<p>Modeled after _edit_attachments_query_helper in wp-admin/post.php.
506
  Defined as public because it's a filter.</p>]]></long-description>
507
- <tag line="854" name="since" description="0.1"/>
508
- <tag line="854" name="param" description="query clause before modification" type="string" variable="$where_clause">
509
  <type by_reference="false">string</type>
510
  </tag>
511
- <tag line="854" name="return" description="query clause after &quot;detached&quot; item modification" type="string">
512
  <type by_reference="false">string</type>
513
  </tag>
514
  </docblock>
515
- <argument line="866">
516
  <name>$where_clause</name>
517
  <default><![CDATA[]]></default>
518
  <type/>
519
  </argument>
520
  </method>
521
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="914" package="Media Library Assistant">
522
  <name>mla_query_posts_orderby_filter</name>
523
  <full_name>mla_query_posts_orderby_filter</full_name>
524
- <docblock line="902">
525
  <description><![CDATA[Adds a ORDERBY clause, if required]]></description>
526
  <long-description><![CDATA[<p>Expands the range of sort options because the logic in WP_Query is limited.
527
  Defined as public because it's a filter.</p>]]></long-description>
528
- <tag line="902" name="since" description="0.30"/>
529
- <tag line="902" name="param" description="query clause before modification" type="string" variable="$orderby_clause">
530
  <type by_reference="false">string</type>
531
  </tag>
532
- <tag line="902" name="return" description="updated query clause" type="string">
533
  <type by_reference="false">string</type>
534
  </tag>
535
  </docblock>
536
- <argument line="914">
537
  <name>$orderby_clause</name>
538
  <default><![CDATA[]]></default>
539
  <type/>
540
  </argument>
541
  </method>
542
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="973" package="Media Library Assistant">
543
  <name>mla_get_attachment_by_id</name>
544
  <full_name>mla_get_attachment_by_id</full_name>
545
- <docblock line="961">
546
  <description><![CDATA[Retrieve an Attachment array given a $post_id]]></description>
547
  <long-description><![CDATA[<p>The (associative) array will contain every field that can be found in
548
  the posts and postmeta tables, and all references to the attachment.</p>]]></long-description>
549
- <tag line="961" name="since" description="0.1"/>
550
- <tag line="961" name="uses" description="\global\$post" refers="\global\$post"/>
551
- <tag line="961" name="param" description="The ID of the attachment post" type="int" variable="$post_id">
552
  <type by_reference="false">int</type>
553
  </tag>
554
- <tag line="961" name="return" description="NULL on failure else associative array" type="NULL|array">
555
  <type by_reference="false">NULL</type>
556
  <type by_reference="false">array</type>
557
  </tag>
558
  </docblock>
559
- <argument line="973">
560
  <name>$post_id</name>
561
  <default><![CDATA[]]></default>
562
  <type/>
563
  </argument>
564
  </method>
565
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1027" package="Media Library Assistant">
566
  <name>mla_fetch_attachment_parent_data</name>
567
  <full_name>mla_fetch_attachment_parent_data</full_name>
568
- <docblock line="1018">
569
  <description><![CDATA[Returns information about an attachment's parent, if found]]></description>
570
  <long-description><![CDATA[]]></long-description>
571
- <tag line="1018" name="since" description="0.1"/>
572
- <tag line="1018" name="param" description="post ID of attachment's parent, if any" type="int" variable="$parent_id">
573
  <type by_reference="false">int</type>
574
  </tag>
575
- <tag line="1018" name="return" description="Parent information; post_date, post_title and post_type" type="array">
576
  <type by_reference="false">array</type>
577
  </tag>
578
  </docblock>
579
- <argument line="1027">
580
  <name>$parent_id</name>
581
  <default><![CDATA[]]></default>
582
  <type/>
583
  </argument>
584
  </method>
585
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1063" package="Media Library Assistant">
586
  <name>mla_find_array_element</name>
587
  <full_name>mla_find_array_element</full_name>
588
- <docblock line="1048">
589
  <description><![CDATA[Finds the value of a key in a possibily nested array structure]]></description>
590
  <long-description><![CDATA[<p>Used primarily to extract fields from the _wp_attachment_metadata custom field.
591
  Could also be used with the ID3 metadata exposed in WordPress 3.6 and later.</p>]]></long-description>
592
- <tag line="1048" name="since" description="1.30"/>
593
- <tag line="1048" name="param" description="key value, e.g. array1.array2.element" type="string" variable="$needle">
594
  <type by_reference="false">string</type>
595
  </tag>
596
- <tag line="1048" name="param" description="PHP nested arrays" type="array" variable="$haystack">
597
  <type by_reference="false">array</type>
598
  </tag>
599
- <tag line="1048" name="param" description="format option 'text'|'single'|'export'|'array'|'multi'" type="string" variable="$option">
600
  <type by_reference="false">string</type>
601
  </tag>
602
- <tag line="1048" name="param" description="keep existing values - for 'multi' option" type="boolean" variable="$keep_existing">
603
  <type by_reference="false">boolean</type>
604
  </tag>
605
- <tag line="1048" name="return" description="value matching key(.key ...) or ''" type="string">
606
  <type by_reference="false">string</type>
607
  </tag>
608
  </docblock>
609
- <argument line="1063">
610
  <name>$needle</name>
611
  <default><![CDATA[]]></default>
612
  <type/>
613
  </argument>
614
- <argument line="1063">
615
  <name>$haystack</name>
616
  <default><![CDATA[]]></default>
617
  <type/>
618
  </argument>
619
- <argument line="1063">
620
  <name>$option</name>
621
  <default><![CDATA[]]></default>
622
  <type/>
623
  </argument>
624
- <argument line="1063">
625
  <name>$keep_existing</name>
626
  <default><![CDATA[false]]></default>
627
  <type/>
628
  </argument>
629
  </method>
630
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1115" package="Media Library Assistant">
631
  <name>mla_fetch_attachment_metadata</name>
632
  <full_name>mla_fetch_attachment_metadata</full_name>
633
- <docblock line="1102">
634
  <description><![CDATA[Fetch and filter meta data for an attachment]]></description>
635
  <long-description><![CDATA[<p>Returns a filtered array of a post's meta data. Internal values beginning with '<em>'
636
  are stripped out or converted to an 'mla</em>' equivalent. Array data is replaced with
637
  a string containing the first array element.</p>]]></long-description>
638
- <tag line="1102" name="since" description="0.1"/>
639
- <tag line="1102" name="param" description="post ID of attachment" type="int" variable="$post_id">
640
  <type by_reference="false">int</type>
641
  </tag>
642
- <tag line="1102" name="return" description="Meta data variables" type="array">
643
  <type by_reference="false">array</type>
644
  </tag>
645
  </docblock>
646
- <argument line="1115">
647
  <name>$post_id</name>
648
  <default><![CDATA[]]></default>
649
  <type/>
650
  </argument>
651
  </method>
652
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1187" package="Media Library Assistant">
653
  <name>mla_fetch_attachment_references</name>
654
  <full_name>mla_fetch_attachment_references</full_name>
655
- <docblock line="1174">
656
  <description><![CDATA[Find Featured Image and inserted image/link references to an attachment]]></description>
657
  <long-description><![CDATA[<p>Searches all post and page content to see if the attachment is used
658
  as a Featured Image or inserted in the post as an image or link.</p>]]></long-description>
659
- <tag line="1174" name="since" description="0.1"/>
660
- <tag line="1174" name="param" description="post ID of attachment" type="int" variable="$ID">
661
  <type by_reference="false">int</type>
662
  </tag>
663
- <tag line="1174" name="param" description="post ID of attachment's parent, if any" type="int" variable="$parent">
664
  <type by_reference="false">int</type>
665
  </tag>
666
- <tag line="1174" name="return" description="Reference information; see $references array comments" type="array">
667
  <type by_reference="false">array</type>
668
  </tag>
669
  </docblock>
670
- <argument line="1187">
671
  <name>$ID</name>
672
  <default><![CDATA[]]></default>
673
  <type/>
674
  </argument>
675
- <argument line="1187">
676
  <name>$parent</name>
677
  <default><![CDATA[]]></default>
678
  <type/>
679
  </argument>
680
  </method>
681
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1491" package="Media Library Assistant">
682
  <name>mla_flush_mla_galleries</name>
683
  <full_name>mla_flush_mla_galleries</full_name>
684
- <docblock line="1482">
685
  <description><![CDATA[Invalidates the $mla_galleries or $galleries array and cached values]]></description>
686
  <long-description><![CDATA[]]></long-description>
687
- <tag line="1482" name="since" description="1.00"/>
688
- <tag line="1482" name="param" description="name of the gallery's cache/option variable" type="string" variable="$option_name">
689
  <type by_reference="false">string</type>
690
  </tag>
691
- <tag line="1482" name="return" description="" type="void">
692
  <type by_reference="false">void</type>
693
  </tag>
694
  </docblock>
695
- <argument line="1491">
696
  <name>$option_name</name>
697
  <default><![CDATA[]]></default>
698
  <type/>
699
  </argument>
700
  </method>
701
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1515" package="Media Library Assistant">
702
  <name>mla_save_post_action</name>
703
  <full_name>mla_save_post_action</full_name>
704
- <docblock line="1506">
705
  <description><![CDATA[Invalidates $mla_galleries and $galleries arrays and cached values after post, page or attachment updates]]></description>
706
  <long-description><![CDATA[]]></long-description>
707
- <tag line="1506" name="since" description="1.00"/>
708
- <tag line="1506" name="param" description="ID of post/page/attachment; not used at this time" type="integer" variable="$post_id">
709
  <type by_reference="false">integer</type>
710
  </tag>
711
- <tag line="1506" name="return" description="" type="void">
712
  <type by_reference="false">void</type>
713
  </tag>
714
  </docblock>
715
- <argument line="1515">
716
  <name>$post_id</name>
717
  <default><![CDATA[]]></default>
718
  <type/>
719
  </argument>
720
  </method>
721
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1532" package="Media Library Assistant">
722
  <name>_build_mla_galleries</name>
723
  <full_name>_build_mla_galleries</full_name>
724
- <docblock line="1520">
725
  <description><![CDATA[Builds the $mla_galleries or $galleries array]]></description>
726
  <long-description><![CDATA[]]></long-description>
727
- <tag line="1520" name="since" description="0.70"/>
728
- <tag line="1520" name="param" description="name of the gallery's cache/option variable" type="string" variable="$option_name">
729
  <type by_reference="false">string</type>
730
  </tag>
731
- <tag line="1520" name="param" description="by reference to the private static galleries array variable" type="array" variable="$galleries_array">
732
  <type by_reference="false">array</type>
733
  </tag>
734
- <tag line="1520" name="param" description="the shortcode to be searched for and processed" type="string" variable="$shortcode">
735
  <type by_reference="false">string</type>
736
  </tag>
737
- <tag line="1520" name="param" description="true to exclude revisions from the search" type="boolean" variable="$exclude_revisions">
738
  <type by_reference="false">boolean</type>
739
  </tag>
740
- <tag line="1520" name="return" description="true if the galleries array is not empty" type="boolean">
741
  <type by_reference="false">boolean</type>
742
  </tag>
743
  </docblock>
744
- <argument line="1532">
745
  <name>$option_name</name>
746
  <default><![CDATA[]]></default>
747
  <type/>
748
  </argument>
749
- <argument line="1532">
750
  <name>$galleries_array</name>
751
  <default><![CDATA[]]></default>
752
  <type/>
753
  </argument>
754
- <argument line="1532">
755
  <name>$shortcode</name>
756
  <default><![CDATA[]]></default>
757
  <type/>
758
  </argument>
759
- <argument line="1532">
760
  <name>$exclude_revisions</name>
761
  <default><![CDATA[]]></default>
762
  <type/>
763
  </argument>
764
  </method>
765
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1641" package="Media Library Assistant">
766
  <name>_search_mla_galleries</name>
767
  <full_name>_search_mla_galleries</full_name>
768
- <docblock line="1630">
769
  <description><![CDATA[Search the $mla_galleries or $galleries array]]></description>
770
  <long-description><![CDATA[]]></long-description>
771
- <tag line="1630" name="since" description="0.70"/>
772
- <tag line="1630" name="param" description="by reference to the private static galleries array variable" type="array" variable="$galleries_array">
773
  <type by_reference="false">array</type>
774
  </tag>
775
- <tag line="1630" name="param" description="the attachment ID to be searched for and processed" type="int" variable="$attachment_id">
776
  <type by_reference="false">int</type>
777
  </tag>
778
- <tag line="1630" name="return" description="All posts/pages with one or more galleries that include the attachment. The array key is the parent_post ID; each entry contains post_title and post_type." type="array">
779
  <type by_reference="false">array</type>
780
  </tag>
781
  </docblock>
782
- <argument line="1641">
783
  <name>$galleries_array</name>
784
  <default><![CDATA[]]></default>
785
  <type/>
786
  </argument>
787
- <argument line="1641">
788
  <name>$attachment_id</name>
789
  <default><![CDATA[]]></default>
790
  <type/>
791
  </argument>
792
  </method>
793
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1675" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
794
  <name>_build_pdf_indirect_objects</name>
795
  <full_name>_build_pdf_indirect_objects</full_name>
796
- <docblock line="1665">
797
  <description><![CDATA[Build an array of indirect object definitions]]></description>
798
  <long-description><![CDATA[<p>Creates the array of indirect object offsets and lengths</p>]]></long-description>
799
- <tag line="1665" name="since" description="1.4x"/>
800
- <tag line="1665" name="param" description="The entire PDF document, passsed by reference" type="string" variable="$string">
801
  <type by_reference="false">string</type>
802
  </tag>
803
- <tag line="1665" name="return" description="" type="void">
804
  <type by_reference="false">void</type>
805
  </tag>
806
  </docblock>
807
- <argument line="1675">
808
  <name>$string</name>
809
  <default><![CDATA[]]></default>
810
  <type/>
811
  </argument>
812
  </method>
813
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1728" package="Media Library Assistant">
814
  <name>_find_pdf_indirect_dictionary</name>
815
  <full_name>_find_pdf_indirect_dictionary</full_name>
816
- <docblock line="1717">
817
  <description><![CDATA[Find the offset, length and contents of an indirect object containing a dictionary]]></description>
818
- <long-description><![CDATA[]]></long-description>
819
- <tag line="1717" name="since" description="1.4x"/>
820
- <tag line="1717" name="param" description="The entire PDF document, passsed by reference" type="string" variable="$string">
 
821
  <type by_reference="false">string</type>
822
  </tag>
823
- <tag line="1717" name="param" description="The object number" type="integer" variable="$object">
824
  <type by_reference="false">integer</type>
825
  </tag>
826
- <tag line="1717" name="param" description="The object generation number; default zero (0)" type="integer" variable="$generation">
827
  <type by_reference="false">integer</type>
828
  </tag>
829
- <tag line="1717" name="return" description="NULL on failure else array( 'start' =&gt; offset in the file, 'length' =&gt; object length, 'content' =&gt; dictionary contents )" type="mixed">
830
  <type by_reference="false">mixed</type>
831
  </tag>
832
  </docblock>
833
- <argument line="1728">
834
- <name>$string</name>
835
  <default><![CDATA[]]></default>
836
  <type/>
837
  </argument>
838
- <argument line="1728">
839
  <name>$object</name>
840
  <default><![CDATA[]]></default>
841
  <type/>
842
  </argument>
843
- <argument line="1728">
844
  <name>$generation</name>
845
  <default><![CDATA[0]]></default>
846
  <type/>
847
  </argument>
848
  </method>
849
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1770" package="Media Library Assistant">
850
  <name>_parse_iso8601_date</name>
851
  <full_name>_parse_iso8601_date</full_name>
852
- <docblock line="1761">
853
  <description><![CDATA[Parse a ISO 8601 Timestamp]]></description>
854
  <long-description><![CDATA[]]></long-description>
855
- <tag line="1761" name="since" description="1.4x"/>
856
- <tag line="1761" name="param" description="ISO string of the form YYYY-MM-DDTHH:MM:SS-HH:MM (inc time zone)" type="string" variable="$source_string">
857
  <type by_reference="false">string</type>
858
  </tag>
859
- <tag line="1761" name="return" description="formatted date string YYYY-MM-DD HH:mm:SS" type="string">
860
  <type by_reference="false">string</type>
861
  </tag>
862
  </docblock>
863
- <argument line="1770">
864
  <name>$source_string</name>
865
  <default><![CDATA[]]></default>
866
  <type/>
867
  </argument>
868
  </method>
869
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1792" package="Media Library Assistant">
870
  <name>_parse_pdf_date</name>
871
  <full_name>_parse_pdf_date</full_name>
872
- <docblock line="1783">
873
  <description><![CDATA[Parse a PDF date string]]></description>
874
  <long-description><![CDATA[]]></long-description>
875
- <tag line="1783" name="since" description="1.4x"/>
876
- <tag line="1783" name="param" description="PDF date string of the form D:YYYYMMDDHHmmSSOHH'mm" type="string" variable="$source_string">
877
  <type by_reference="false">string</type>
878
  </tag>
879
- <tag line="1783" name="return" description="formatted date string YYYY-MM-DD HH:mm:SS" type="string">
880
  <type by_reference="false">string</type>
881
  </tag>
882
  </docblock>
883
- <argument line="1792">
884
  <name>$source_string</name>
885
  <default><![CDATA[]]></default>
886
  <type/>
887
  </argument>
888
  </method>
889
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1814" package="Media Library Assistant">
890
  <name>_parse_pdf_UTF16BE</name>
891
  <full_name>_parse_pdf_UTF16BE</full_name>
892
- <docblock line="1805">
893
  <description><![CDATA[Parse a PDF Unicode (16-bit Big Endian) object]]></description>
894
  <long-description><![CDATA[]]></long-description>
895
- <tag line="1805" name="since" description="1.4x"/>
896
- <tag line="1805" name="param" description="PDF string of 16-bit characters" type="string" variable="$source_string">
897
  <type by_reference="false">string</type>
898
  </tag>
899
- <tag line="1805" name="return" description="UTF-8 encoded string" type="string">
900
  <type by_reference="false">string</type>
901
  </tag>
902
  </docblock>
903
- <argument line="1814">
904
  <name>$source_string</name>
905
  <default><![CDATA[]]></default>
906
  <type/>
907
  </argument>
908
  </method>
909
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1843" package="Media Library Assistant">
910
  <name>_parse_pdf_string</name>
911
  <full_name>_parse_pdf_string</full_name>
912
- <docblock line="1830">
913
  <description><![CDATA[Parse a PDF string object]]></description>
914
  <long-description><![CDATA[<p>Returns an array with one dictionary entry. The array also has a '/length' element containing
915
  the number of bytes occupied by the string in the source string, including the enclosing parentheses.</p>]]></long-description>
916
- <tag line="1830" name="since" description="1.4x"/>
917
- <tag line="1830" name="param" description="data within which the string occurs" type="string" variable="$source_string">
918
  <type by_reference="false">string</type>
919
  </tag>
920
- <tag line="1830" name="param" description="offset within the source string of the opening '(' character." type="integer" variable="$offset">
921
  <type by_reference="false">integer</type>
922
  </tag>
923
- <tag line="1830" name="return" description="( key =&gt; array( 'type' =&gt; type, 'value' =&gt; value, '/length' =&gt; length ) ) for the string" type="array">
924
  <type by_reference="false">array</type>
925
  </tag>
926
  </docblock>
927
- <argument line="1843">
928
  <name>$source_string</name>
929
  <default><![CDATA[]]></default>
930
  <type/>
931
  </argument>
932
- <argument line="1843">
933
  <name>$offset</name>
934
  <default><![CDATA[]]></default>
935
  <type/>
936
  </argument>
937
  </method>
938
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1936" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
939
  <name>_parse_pdf_dictionary</name>
940
  <full_name>_parse_pdf_dictionary</full_name>
941
- <docblock line="1922">
942
  <description><![CDATA[Parse a PDF dictionary object]]></description>
943
  <long-description><![CDATA[<p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
944
  indirect (object), name, array, dictionary, stream, and null.
945
  The array also has a '/length' element containing the number of bytes occupied by the
946
- dictionary in the source string, excluding the enclosing delimiters, if passed in.</p>]]></long-description>
947
- <tag line="1922" name="since" description="1.4x"/>
948
- <tag line="1922" name="param" description="data within which the string occurs" type="string" variable="$source_string">
949
  <type by_reference="false">string</type>
950
  </tag>
951
- <tag line="1922" name="param" description="offset within the source string of the opening '&lt;&lt;' characters or the first content character." type="integer" variable="$offset">
952
  <type by_reference="false">integer</type>
953
  </tag>
954
- <tag line="1922" name="return" description="( '/length' =&gt; length, key =&gt; array( 'type' =&gt; type, 'value' =&gt; value ) ) for each dictionary field" type="array">
955
  <type by_reference="false">array</type>
956
  </tag>
957
  </docblock>
958
- <argument line="1936">
959
  <name>$source_string</name>
960
  <default><![CDATA[]]></default>
961
  <type/>
962
  </argument>
963
- <argument line="1936">
964
  <name>$offset</name>
965
  <default><![CDATA[]]></default>
966
  <type/>
967
  </argument>
968
  </method>
969
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2049" package="Media Library Assistant">
970
  <name>_parse_xmp_metadata</name>
971
  <full_name>_parse_xmp_metadata</full_name>
972
- <docblock line="2035">
973
  <description><![CDATA[Parse an XMP object]]></description>
974
  <long-description><![CDATA[<p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
975
  indirect (object), name, array, dictionary, stream, and null.
976
  The array also has a '/length' element containing the number of bytes occupied by the
977
  dictionary in the source string, excluding the enclosing delimiters, if passed in.</p>]]></long-description>
978
- <tag line="2035" name="since" description="1.4x"/>
979
- <tag line="2035" name="param" description="data within which the string occurs" type="string" variable="$source_string">
980
  <type by_reference="false">string</type>
981
  </tag>
982
- <tag line="2035" name="param" description="offset within the source string of the opening '&lt;&lt;' characters or the first content character." type="integer" variable="$offset">
983
  <type by_reference="false">integer</type>
984
  </tag>
985
- <tag line="2035" name="return" description="( '/length' =&gt; length, key =&gt; array( 'type' =&gt; type, 'value' =&gt; value ) ) for each dictionary field" type="array">
986
- <type by_reference="false">array</type>
987
  </tag>
988
  </docblock>
989
- <argument line="2049">
990
- <name>$source_string</name>
991
  <default><![CDATA[]]></default>
992
  <type/>
993
  </argument>
994
- <argument line="2049">
995
- <name>$offset</name>
996
  <default><![CDATA[]]></default>
997
  <type/>
998
  </argument>
999
  </method>
1000
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2231" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1001
  <name>_extract_pdf_metadata</name>
1002
  <full_name>_extract_pdf_metadata</full_name>
1003
- <docblock line="2222">
1004
  <description><![CDATA[Extract Metadata from a PDF file]]></description>
1005
  <long-description><![CDATA[]]></long-description>
1006
- <tag line="2222" name="since" description="1.4x"/>
1007
- <tag line="2222" name="param" description="full path to the desired file" type="string" variable="$file_name">
1008
  <type by_reference="false">string</type>
1009
  </tag>
1010
- <tag line="2222" name="return" description="( key =&gt; value ) for each metadata field, in string format" type="array">
1011
  <type by_reference="false">array</type>
1012
  </tag>
1013
  </docblock>
1014
- <argument line="2231">
1015
  <name>$file_name</name>
1016
  <default><![CDATA[]]></default>
1017
  <type/>
1018
  </argument>
1019
  </method>
1020
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2380" package="Media Library Assistant">
1021
  <name>_bin_to_utf8</name>
1022
  <full_name>_bin_to_utf8</full_name>
1023
- <docblock line="2371">
1024
  <description><![CDATA[Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents]]></description>
1025
  <long-description><![CDATA[]]></long-description>
1026
- <tag line="2371" name="since" description="1.41"/>
1027
- <tag line="2371" name="param" description="unencoded string" type="string" variable="$string">
1028
  <type by_reference="false">string</type>
1029
  </tag>
1030
- <tag line="2371" name="return" description="UTF-8 encoded string" type="string">
1031
  <type by_reference="false">string</type>
1032
  </tag>
1033
  </docblock>
1034
- <argument line="2380">
1035
  <name>$string</name>
1036
  <default><![CDATA[]]></default>
1037
  <type/>
1038
  </argument>
1039
  </method>
1040
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2778" package="Media Library Assistant">
1041
  <name>mla_iptc_metadata_value</name>
1042
  <full_name>mla_iptc_metadata_value</full_name>
1043
- <docblock line="2766">
1044
  <description><![CDATA[Parse one IPTC metadata field]]></description>
1045
- <long-description><![CDATA[<p>Returns a string value, converting array data to a string as necessary.</p>]]></long-description>
1046
- <tag line="2766" name="since" description="1.41"/>
1047
- <tag line="2766" name="param" description="field name - IPTC Identifier or friendly name/slug" type="string" variable="$iptc_key">
1048
  <type by_reference="false">string</type>
1049
  </tag>
1050
- <tag line="2766" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1051
  <type by_reference="false">string</type>
1052
  </tag>
1053
- <tag line="2766" name="return" description="string/array representation of metadata value or an empty string" type="mixed">
1054
  <type by_reference="false">mixed</type>
1055
  </tag>
1056
  </docblock>
1057
- <argument line="2778">
1058
  <name>$iptc_key</name>
1059
  <default><![CDATA[]]></default>
1060
  <type/>
1061
  </argument>
1062
- <argument line="2778">
1063
  <name>$item_metadata</name>
1064
  <default><![CDATA[]]></default>
1065
  <type/>
1066
  </argument>
1067
  </method>
1068
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2811" package="Media Library Assistant">
1069
  <name>mla_exif_metadata_value</name>
1070
  <full_name>mla_exif_metadata_value</full_name>
1071
- <docblock line="2798">
1072
  <description><![CDATA[Parse one EXIF metadata field]]></description>
1073
- <long-description><![CDATA[<p>Returns a string value, converting array data to a string as necessary.
1074
- Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.</p>]]></long-description>
1075
- <tag line="2798" name="since" description="1.13"/>
1076
- <tag line="2798" name="param" description="field name" type="string" variable="$exif_key">
1077
  <type by_reference="false">string</type>
1078
  </tag>
1079
- <tag line="2798" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1080
  <type by_reference="false">string</type>
1081
  </tag>
1082
- <tag line="2798" name="return" description="string representation of metadata value or an empty string" type="string">
1083
- <type by_reference="false">string</type>
1084
  </tag>
1085
  </docblock>
1086
- <argument line="2811">
1087
  <name>$exif_key</name>
1088
  <default><![CDATA[]]></default>
1089
  <type/>
1090
  </argument>
1091
- <argument line="2811">
1092
  <name>$item_metadata</name>
1093
  <default><![CDATA[]]></default>
1094
  <type/>
1095
  </argument>
1096
  </method>
1097
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2874" package="Media Library Assistant">
1098
  <name>mla_pdf_metadata_value</name>
1099
  <full_name>mla_pdf_metadata_value</full_name>
1100
- <docblock line="2861">
1101
  <description><![CDATA[Parse one PDF metadata field]]></description>
1102
- <long-description><![CDATA[<p>Returns a string value, converting array data to a string as necessary.
1103
- Also handles the special pseudo-value 'ALL_PDF'.</p>]]></long-description>
1104
- <tag line="2861" name="since" description="1.4x"/>
1105
- <tag line="2861" name="param" description="field name" type="string" variable="$pdf_key">
1106
  <type by_reference="false">string</type>
1107
  </tag>
1108
- <tag line="2861" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1109
  <type by_reference="false">string</type>
1110
  </tag>
1111
- <tag line="2861" name="return" description="string representation of metadata value or an empty string" type="string">
1112
- <type by_reference="false">string</type>
1113
  </tag>
1114
  </docblock>
1115
- <argument line="2874">
1116
  <name>$pdf_key</name>
1117
  <default><![CDATA[]]></default>
1118
  <type/>
1119
  </argument>
1120
- <argument line="2874">
1121
  <name>$item_metadata</name>
1122
  <default><![CDATA[]]></default>
1123
  <type/>
1124
  </argument>
1125
  </method>
1126
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2917" package="Media Library Assistant">
1127
  <name>mla_fetch_attachment_image_metadata</name>
1128
  <full_name>mla_fetch_attachment_image_metadata</full_name>
1129
- <docblock line="2905">
1130
  <description><![CDATA[Fetch and filter IPTC and EXIF meta data for an image attachment]]></description>
1131
  <long-description><![CDATA[<p>Returns</p>]]></long-description>
1132
- <tag line="2905" name="since" description="0.90"/>
1133
- <tag line="2905" name="param" description="post ID of attachment" type="int" variable="$post_id">
1134
  <type by_reference="false">int</type>
1135
  </tag>
1136
- <tag line="2905" name="param" description="optional; if $post_id is zero, path to the image file." type="string" variable="$path">
1137
  <type by_reference="false">string</type>
1138
  </tag>
1139
- <tag line="2905" name="return" description="Meta data variables" type="array">
1140
  <type by_reference="false">array</type>
1141
  </tag>
1142
  </docblock>
1143
- <argument line="2917">
1144
  <name>$post_id</name>
1145
  <default><![CDATA[]]></default>
1146
  <type/>
1147
  </argument>
1148
- <argument line="2917">
1149
  <name>$path</name>
1150
  <default><![CDATA['']]></default>
1151
  <type/>
1152
  </argument>
1153
  </method>
1154
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2984" package="Media Library Assistant">
1155
  <name>mla_update_item_postmeta</name>
1156
  <full_name>mla_update_item_postmeta</full_name>
1157
- <docblock line="2974">
1158
  <description><![CDATA[Update custom field data for a single attachment.]]></description>
1159
  <long-description><![CDATA[]]></long-description>
1160
- <tag line="2974" name="since" description="1.40"/>
1161
- <tag line="2974" name="param" description="The ID of the attachment to be updated" type="int" variable="$post_id">
1162
  <type by_reference="false">int</type>
1163
  </tag>
1164
- <tag line="2974" name="param" description="Field name =&gt; value pairs" type="array" variable="$new_meta">
1165
  <type by_reference="false">array</type>
1166
  </tag>
1167
- <tag line="2974" name="return" description="success/failure message(s)" type="string">
1168
  <type by_reference="false">string</type>
1169
  </tag>
1170
  </docblock>
1171
- <argument line="2984">
1172
  <name>$post_id</name>
1173
  <default><![CDATA[]]></default>
1174
  <type/>
1175
  </argument>
1176
- <argument line="2984">
1177
  <name>$new_meta</name>
1178
  <default><![CDATA[]]></default>
1179
  <type/>
1180
  </argument>
1181
  </method>
1182
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="3112" package="Media Library Assistant">
1183
  <name>mla_update_single_item</name>
1184
  <full_name>mla_update_single_item</full_name>
1185
- <docblock line="3099">
1186
  <description><![CDATA[Update a single item; change the meta data
1187
  for a single attachment.]]></description>
1188
  <long-description><![CDATA[]]></long-description>
1189
- <tag line="3099" name="since" description="0.1"/>
1190
- <tag line="3099" name="param" description="The ID of the attachment to be updated" type="int" variable="$post_id">
1191
  <type by_reference="false">int</type>
1192
  </tag>
1193
- <tag line="3099" name="param" description="Field name =&gt; value pairs" type="array" variable="$new_data">
1194
  <type by_reference="false">array</type>
1195
  </tag>
1196
- <tag line="3099" name="param" description="Optional taxonomy term values, default null" type="array" variable="$tax_input">
1197
  <type by_reference="false">array</type>
1198
  </tag>
1199
- <tag line="3099" name="param" description="Optional taxonomy actions (add, remove, replace), default null" type="array" variable="$tax_actions">
1200
  <type by_reference="false">array</type>
1201
  </tag>
1202
- <tag line="3099" name="return" description="success/failure message and NULL content" type="array">
1203
  <type by_reference="false">array</type>
1204
  </tag>
1205
  </docblock>
1206
- <argument line="3112">
1207
  <name>$post_id</name>
1208
  <default><![CDATA[]]></default>
1209
  <type/>
1210
  </argument>
1211
- <argument line="3112">
1212
  <name>$new_data</name>
1213
  <default><![CDATA[]]></default>
1214
  <type/>
1215
  </argument>
1216
- <argument line="3112">
1217
  <name>$tax_input</name>
1218
  <default><![CDATA[NULL]]></default>
1219
  <type/>
1220
  </argument>
1221
- <argument line="3112">
1222
  <name>$tax_actions</name>
1223
  <default><![CDATA[NULL]]></default>
1224
  <type/>
1225
  </argument>
1226
  </method>
1227
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3326" package="Media Library Assistant">
1228
  <name>_remove_tags</name>
1229
  <full_name>_remove_tags</full_name>
1230
- <docblock line="3315">
1231
  <description><![CDATA[Remove tags from a term ids list]]></description>
1232
  <long-description><![CDATA[]]></long-description>
1233
- <tag line="3315" name="since" description="0.40"/>
1234
- <tag line="3315" name="param" description="The term ids currently assigned" type="array" variable="$terms_before">
1235
  <type by_reference="false">array</type>
1236
  </tag>
1237
- <tag line="3315" name="param" description="| string The term ids (array) or names (string) to remove" type="array" variable="$tags">
1238
  <type by_reference="false">array</type>
1239
  </tag>
1240
- <tag line="3315" name="param" description="The taxonomy object" type="object" variable="$taxonomy_obj">
1241
  <type by_reference="false">object</type>
1242
  </tag>
1243
- <tag line="3315" name="return" description="Term ids of the surviving tags" type="array">
1244
  <type by_reference="false">array</type>
1245
  </tag>
1246
  </docblock>
1247
- <argument line="3326">
1248
  <name>$terms_before</name>
1249
  <default><![CDATA[]]></default>
1250
  <type/>
1251
  </argument>
1252
- <argument line="3326">
1253
  <name>$tags</name>
1254
  <default><![CDATA[]]></default>
1255
  <type/>
1256
  </argument>
1257
- <argument line="3326">
1258
  <name>$taxonomy_obj</name>
1259
  <default><![CDATA[]]></default>
1260
  <type/>
1261
  </argument>
1262
  </method>
1263
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3369" package="Media Library Assistant">
1264
  <name>_hex_dump</name>
1265
  <full_name>_hex_dump</full_name>
1266
- <docblock line="3358">
1267
  <description><![CDATA[Format printable version of binary data]]></description>
1268
  <long-description><![CDATA[]]></long-description>
1269
- <tag line="3358" name="since" description="0.90"/>
1270
- <tag line="3358" name="param" description="Binary data" type="string" variable="$data">
1271
  <type by_reference="false">string</type>
1272
  </tag>
1273
- <tag line="3358" name="param" description="Bytes to format, default = 0 (all bytes)" type="integer" variable="$limit">
1274
  <type by_reference="false">integer</type>
1275
  </tag>
1276
- <tag line="3358" name="param" description="Bytes to format on each line" type="\intger" variable="$bytes_per_row">
1277
  <type by_reference="false">\intger</type>
1278
  </tag>
1279
- <tag line="3358" name="return" description="Printable representation of $data" type="string">
 
 
 
1280
  <type by_reference="false">string</type>
1281
  </tag>
1282
  </docblock>
1283
- <argument line="3369">
1284
  <name>$data</name>
1285
  <default><![CDATA[]]></default>
1286
  <type/>
1287
  </argument>
1288
- <argument line="3369">
1289
  <name>$limit</name>
1290
  <default><![CDATA[0]]></default>
1291
  <type/>
1292
  </argument>
1293
- <argument line="3369">
1294
  <name>$bytes_per_row</name>
1295
  <default><![CDATA[16]]></default>
1296
  <type/>
1297
  </argument>
 
 
 
 
 
1298
  </method>
1299
  </class>
1300
  <markers>
1301
- <todo line="1823">encode the rest</todo>
1302
  </markers>
1303
  </file>
1304
  <file path="includes\class-mla-edit-media.php" hash="ffa4ba62a4969d2e50e12b044ce0cace" package="Media Library Assistant">
@@ -1605,7 +2067,7 @@ The array is built once each page load and cached for subsequent calls.</p>]]></
1605
  </method>
1606
  </class>
1607
  </file>
1608
- <file path="includes\class-mla-list-table.php" hash="186ade38c36ccdb3e35d6ba2c07475e6" package="Media Library Assistant">
1609
  <docblock line="2">
1610
  <description><![CDATA[Media Library Assistant extended List Table class]]></description>
1611
  <long-description><![CDATA[]]></long-description>
@@ -2373,197 +2835,205 @@ is given special treatment when columns are processed.</p>]]></long-description>
2373
  <type/>
2374
  </argument>
2375
  </method>
2376
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1060" package="Media Library Assistant">
2377
- <name>_mla_submenu_arguments</name>
2378
- <full_name>_mla_submenu_arguments</full_name>
2379
  <docblock line="1053">
2380
  <description><![CDATA[Process $_REQUEST, building $submenu_arguments]]></description>
2381
  <long-description><![CDATA[]]></long-description>
2382
  <tag line="1053" name="since" description="1.42"/>
 
 
 
2383
  <tag line="1053" name="return" description="non-empty view, search, filter and sort arguments" type="array">
2384
  <type by_reference="false">array</type>
2385
  </tag>
2386
  </docblock>
 
 
 
 
 
2387
  </method>
2388
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1145" package="Media Library Assistant">
2389
  <name>pagination</name>
2390
  <full_name>pagination</full_name>
2391
- <docblock line="1137">
2392
  <description><![CDATA[Display the pagination, adding view, search and filter arguments]]></description>
2393
  <long-description><![CDATA[]]></long-description>
2394
- <tag line="1137" name="since" description="1.42"/>
2395
- <tag line="1137" name="param" description="'top' | 'bottom'" type="string" variable="$which">
2396
  <type by_reference="false">string</type>
2397
  </tag>
2398
- <tag line="1137" name="return" description="" type="void">
2399
  <type by_reference="false">void</type>
2400
  </tag>
2401
  </docblock>
2402
- <argument line="1145">
2403
  <name>$which</name>
2404
  <default><![CDATA[]]></default>
2405
  <type/>
2406
  </argument>
2407
  </method>
2408
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1159" package="Media Library Assistant">
2409
  <name>get_columns</name>
2410
  <full_name>get_columns</full_name>
2411
- <docblock line="1152">
2412
  <description><![CDATA[This method dictates the table's columns and titles]]></description>
2413
  <long-description><![CDATA[]]></long-description>
2414
- <tag line="1152" name="since" description="0.1"/>
2415
- <tag line="1152" name="return" description="Column information: 'slugs'=&gt;'Visible Titles'" type="array">
2416
  <type by_reference="false">array</type>
2417
  </tag>
2418
  </docblock>
2419
  </method>
2420
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1171" package="Media Library Assistant">
2421
  <name>get_hidden_columns</name>
2422
  <full_name>get_hidden_columns</full_name>
2423
- <docblock line="1163">
2424
  <description><![CDATA[Returns the list of currently hidden columns from a user option or
2425
  from default values if the option is not set]]></description>
2426
  <long-description><![CDATA[]]></long-description>
2427
- <tag line="1163" name="since" description="0.1"/>
2428
- <tag line="1163" name="return" description="Column information,e.g., array(0 =&gt; 'ID_parent, 1 =&gt; 'title_name')" type="array">
2429
  <type by_reference="false">array</type>
2430
  </tag>
2431
  </docblock>
2432
  </method>
2433
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1191" package="Media Library Assistant">
2434
  <name>get_sortable_columns</name>
2435
  <full_name>get_sortable_columns</full_name>
2436
- <docblock line="1181">
2437
  <description><![CDATA[Returns an array where the key is the column that needs to be sortable
2438
  and the value is db column to sort by.]]></description>
2439
  <long-description><![CDATA[<p>Also notes the current sort column,
2440
  if set.</p>]]></long-description>
2441
- <tag line="1181" name="since" description="0.1"/>
2442
- <tag line="1181" name="return" description="Sortable column information,e.g., 'slugs'=&gt;array('data_values',boolean)" type="array">
2443
  <type by_reference="false">array</type>
2444
  </tag>
2445
  </docblock>
2446
  </method>
2447
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1217" package="Media Library Assistant">
2448
  <name>print_column_headers</name>
2449
  <full_name>print_column_headers</full_name>
2450
- <docblock line="1210">
2451
  <description><![CDATA[Print column headers, adding view, search and filter arguments]]></description>
2452
  <long-description><![CDATA[]]></long-description>
2453
- <tag line="1210" name="since" description="1.42"/>
2454
- <tag line="1210" name="param" description="Whether to set the id attribute or not" type="bool" variable="$with_id">
2455
  <type by_reference="false">bool</type>
2456
  </tag>
2457
  </docblock>
2458
- <argument line="1217">
2459
  <name>$with_id</name>
2460
  <default><![CDATA[true]]></default>
2461
  <type/>
2462
  </argument>
2463
  </method>
2464
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1234" package="Media Library Assistant">
2465
  <name>_get_view</name>
2466
  <full_name>_get_view</full_name>
2467
- <docblock line="1224">
2468
  <description><![CDATA[Returns HTML markup for one view that can be used with this table]]></description>
2469
  <long-description><![CDATA[]]></long-description>
2470
- <tag line="1224" name="since" description="1.40"/>
2471
- <tag line="1224" name="param" description="View slug, key to MLA_POST_MIME_TYPES array" type="string" variable="$view_slug">
2472
  <type by_reference="false">string</type>
2473
  </tag>
2474
- <tag line="1224" name="param" description="Slug for current view" type="string" variable="$current_view">
2475
  <type by_reference="false">string</type>
2476
  </tag>
2477
- <tag line="1224" name="return" description="| false HTML for link to display the view, false if count = zero" type="string">
2478
  <type by_reference="false">string</type>
2479
  </tag>
2480
  </docblock>
2481
- <argument line="1234">
2482
  <name>$view_slug</name>
2483
  <default><![CDATA[]]></default>
2484
  <type/>
2485
  </argument>
2486
- <argument line="1234">
2487
  <name>$current_view</name>
2488
  <default><![CDATA[]]></default>
2489
  <type/>
2490
  </argument>
2491
  </method>
2492
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1344" package="Media Library Assistant">
2493
  <name>get_views</name>
2494
  <full_name>get_views</full_name>
2495
- <docblock line="1336">
2496
  <description><![CDATA[Returns an associative array listing all the views that can be used with this table.]]></description>
2497
  <long-description><![CDATA[<p>These are listed across the top of the page and managed by WordPress.</p>]]></long-description>
2498
- <tag line="1336" name="since" description="0.1"/>
2499
- <tag line="1336" name="return" description="View information,e.g., array ( id =&gt; link )" type="array">
2500
  <type by_reference="false">array</type>
2501
  </tag>
2502
  </docblock>
2503
  </method>
2504
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1392" package="Media Library Assistant">
2505
  <name>get_bulk_actions</name>
2506
  <full_name>get_bulk_actions</full_name>
2507
- <docblock line="1384">
2508
  <description><![CDATA[Get an associative array ( option_name => option_title ) with the list
2509
  of bulk actions available on this table.]]></description>
2510
  <long-description><![CDATA[]]></long-description>
2511
- <tag line="1384" name="since" description="0.1"/>
2512
- <tag line="1384" name="return" description="Contains all the bulk actions: 'slugs'=&gt;'Visible Titles'" type="array">
2513
  <type by_reference="false">array</type>
2514
  </tag>
2515
  </docblock>
2516
  </method>
2517
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1423" package="Media Library Assistant">
2518
  <name>extra_tablenav</name>
2519
  <full_name>extra_tablenav</full_name>
2520
- <docblock line="1412">
2521
  <description><![CDATA[Extra controls to be displayed between bulk actions and pagination]]></description>
2522
  <long-description><![CDATA[<p>Modeled after class-wp-posts-list-table.php in wp-admin/includes.</p>]]></long-description>
2523
- <tag line="1412" name="since" description="0.1"/>
2524
- <tag line="1412" name="param" description="'top' or 'bottom', i.e., above or below the table rows" type="string" variable="$which">
2525
  <type by_reference="false">string</type>
2526
  </tag>
2527
- <tag line="1412" name="return" description="Contains all the bulk actions: 'slugs'=&gt;'Visible Titles'" type="array">
2528
  <type by_reference="false">array</type>
2529
  </tag>
2530
  </docblock>
2531
- <argument line="1423">
2532
  <name>$which</name>
2533
  <default><![CDATA[]]></default>
2534
  <type/>
2535
  </argument>
2536
  </method>
2537
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1456" package="Media Library Assistant">
2538
  <name>prepare_items</name>
2539
  <full_name>prepare_items</full_name>
2540
- <docblock line="1444">
2541
  <description><![CDATA[Prepares the list of items for displaying]]></description>
2542
  <long-description><![CDATA[<p>This is where you prepare your data for display. This method will usually
2543
  be used to query the database, sort and filter the data, and generally
2544
  get it ready to be displayed. At a minimum, we should set $this->items and
2545
  $this->set_pagination_args().</p>]]></long-description>
2546
- <tag line="1444" name="since" description="0.1"/>
2547
- <tag line="1444" name="return" description="" type="void">
2548
  <type by_reference="false">void</type>
2549
  </tag>
2550
  </docblock>
2551
  </method>
2552
- <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1503" package="Media Library Assistant">
2553
  <name>single_row</name>
2554
  <full_name>single_row</full_name>
2555
- <docblock line="1494">
2556
  <description><![CDATA[Generates (echoes) content for a single row of the table]]></description>
2557
  <long-description><![CDATA[]]></long-description>
2558
- <tag line="1494" name="since" description=".20"/>
2559
- <tag line="1494" name="param" description="the current item" type="object" variable="$item">
2560
  <type by_reference="false">object</type>
2561
  </tag>
2562
- <tag line="1494" name="return" description="Echoes the row HTML" type="void">
2563
  <type by_reference="false">void</type>
2564
  </tag>
2565
  </docblock>
2566
- <argument line="1503">
2567
  <name>$item</name>
2568
  <default><![CDATA[]]></default>
2569
  <type/>
@@ -2571,7 +3041,7 @@ $this->set_pagination_args().</p>]]></long-description>
2571
  </method>
2572
  </class>
2573
  </file>
2574
- <file path="includes\class-mla-main.php" hash="930b6ae9a82fd50cd6fe275449577474" package="Media Library Assistant">
2575
  <docblock line="2">
2576
  <description><![CDATA[Top-level functions for the Media Library Assistant]]></description>
2577
  <long-description><![CDATA[]]></long-description>
@@ -2608,7 +3078,7 @@ of images and files held in the WordPress Media Library.]]></description>
2608
  <constant namespace="global" line="41" package="Media Library Assistant">
2609
  <name>CURRENT_MLA_VERSION</name>
2610
  <full_name>CURRENT_MLA_VERSION</full_name>
2611
- <value><![CDATA['1.43']]></value>
2612
  <docblock line="34">
2613
  <description><![CDATA[Current version number]]></description>
2614
  <long-description><![CDATA[]]></long-description>
@@ -2876,113 +3346,113 @@ add filter to clean up taxonomy submenu labels.</p>]]></long-description>
2876
  </tag>
2877
  </docblock>
2878
  </method>
2879
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="350" package="Media Library Assistant">
2880
  <name>mla_add_menu_options</name>
2881
  <full_name>mla_add_menu_options</full_name>
2882
- <docblock line="343">
2883
  <description><![CDATA[Add the "XX Entries per page" filter to the Screen Options tab]]></description>
2884
  <long-description><![CDATA[]]></long-description>
2885
- <tag line="343" name="since" description="0.1"/>
2886
- <tag line="343" name="return" description="" type="void">
2887
  <type by_reference="false">void</type>
2888
  </tag>
2889
  </docblock>
2890
  </method>
2891
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="369" package="Media Library Assistant">
2892
  <name>mla_add_help_tab</name>
2893
  <full_name>mla_add_help_tab</full_name>
2894
- <docblock line="362">
2895
  <description><![CDATA[Add contextual help tabs to all the MLA pages]]></description>
2896
  <long-description><![CDATA[]]></long-description>
2897
- <tag line="362" name="since" description="0.1"/>
2898
- <tag line="362" name="return" description="" type="void">
2899
  <type by_reference="false">void</type>
2900
  </tag>
2901
  </docblock>
2902
  </method>
2903
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="470" package="Media Library Assistant">
2904
  <name>mla_screen_options_show_screen_filter</name>
2905
  <full_name>mla_screen_options_show_screen_filter</full_name>
2906
- <docblock line="460">
2907
  <description><![CDATA[Only show screen options on the table-list screen]]></description>
2908
  <long-description><![CDATA[]]></long-description>
2909
- <tag line="460" name="since" description="0.1"/>
2910
- <tag line="460" name="param" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean" variable="$show_screen">
2911
  <type by_reference="false">boolean</type>
2912
  </tag>
2913
- <tag line="460" name="param" description="Name of the page being loaded" type="string" variable="$this_screen">
2914
  <type by_reference="false">string</type>
2915
  </tag>
2916
- <tag line="460" name="return" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean">
2917
  <type by_reference="false">boolean</type>
2918
  </tag>
2919
  </docblock>
2920
- <argument line="470">
2921
  <name>$show_screen</name>
2922
  <default><![CDATA[]]></default>
2923
  <type/>
2924
  </argument>
2925
- <argument line="470">
2926
  <name>$this_screen</name>
2927
  <default><![CDATA[]]></default>
2928
  <type/>
2929
  </argument>
2930
  </method>
2931
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="488" package="Media Library Assistant">
2932
  <name>mla_set_screen_option_filter</name>
2933
  <full_name>mla_set_screen_option_filter</full_name>
2934
- <docblock line="477">
2935
  <description><![CDATA[Save the "Entries per page" option set by this user]]></description>
2936
  <long-description><![CDATA[]]></long-description>
2937
- <tag line="477" name="since" description="0.1"/>
2938
- <tag line="477" name="param" description="false or value returned by previous filter" type="mixed" variable="$status">
2939
  <type by_reference="false">mixed</type>
2940
  </tag>
2941
- <tag line="477" name="param" description="Name of the option being changed" type="string" variable="$option">
2942
  <type by_reference="false">string</type>
2943
  </tag>
2944
- <tag line="477" name="param" description="New value of the option" type="string" variable="$value">
2945
  <type by_reference="false">string</type>
2946
  </tag>
2947
- <tag line="477" name="return" description="New value if this is our option, otherwise nothing" type="string|void">
2948
  <type by_reference="false">string</type>
2949
  <type by_reference="false">void</type>
2950
  </tag>
2951
  </docblock>
2952
- <argument line="488">
2953
  <name>$status</name>
2954
  <default><![CDATA[]]></default>
2955
  <type/>
2956
  </argument>
2957
- <argument line="488">
2958
  <name>$option</name>
2959
  <default><![CDATA[]]></default>
2960
  <type/>
2961
  </argument>
2962
- <argument line="488">
2963
  <name>$value</name>
2964
  <default><![CDATA[]]></default>
2965
  <type/>
2966
  </argument>
2967
  </method>
2968
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="507" package="Media Library Assistant">
2969
  <name>mla_edit_tax_redirect</name>
2970
  <full_name>mla_edit_tax_redirect</full_name>
2971
- <docblock line="496">
2972
  <description><![CDATA[Redirect to the Edit Tags/Categories page]]></description>
2973
  <long-description><![CDATA[<p>The custom taxonomy add/edit submenu entries go to "upload.php" by default.
2974
  This filter is the only way to redirect them to the correct WordPress page.
2975
  The filter is not required for WordPress 3.5 and later.</p>]]></long-description>
2976
- <tag line="496" name="since" description="0.1"/>
2977
- <tag line="496" name="return" description="" type="void">
2978
  <type by_reference="false">void</type>
2979
  </tag>
2980
  </docblock>
2981
  </method>
2982
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="540" package="Media Library Assistant">
2983
  <name>mla_parent_file_filter</name>
2984
  <full_name>mla_parent_file_filter</full_name>
2985
- <docblock line="524">
2986
  <description><![CDATA[Cleanup menus for Edit Tags/Categories page]]></description>
2987
  <long-description><![CDATA[<p>For WordPress before 3.5, the submenu entries for custom taxonomies
2988
  under the "Media" menu are not set up correctly by WordPress, so this
@@ -2990,190 +3460,190 @@ function cleans them up, redirecting the request to the right WordPress
2990
  page for editing/adding taxonomy terms.
2991
  For WordPress 3.5 and later, the function fixes the submenu bolding when
2992
  going to the Edit Media screen.</p>]]></long-description>
2993
- <tag line="524" name="since" description="0.1"/>
2994
- <tag line="524" name="param" description="The top-level menu page" type="array" variable="$parent_file">
2995
  <type by_reference="false">array</type>
2996
  </tag>
2997
- <tag line="524" name="return" description="The updated top-level menu page" type="string">
2998
  <type by_reference="false">string</type>
2999
  </tag>
3000
  </docblock>
3001
- <argument line="540">
3002
  <name>$parent_file</name>
3003
  <default><![CDATA[]]></default>
3004
  <type/>
3005
  </argument>
3006
  </method>
3007
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="583" package="Media Library Assistant">
3008
  <name>mla_render_admin_page</name>
3009
  <full_name>mla_render_admin_page</full_name>
3010
- <docblock line="576">
3011
  <description><![CDATA[Render the "Assistant" subpage in the Media section, using the list_table package]]></description>
3012
  <long-description><![CDATA[]]></long-description>
3013
- <tag line="576" name="since" description="0.1"/>
3014
- <tag line="576" name="return" description="" type="void">
3015
  <type by_reference="false">void</type>
3016
  </tag>
3017
  </docblock>
3018
  </method>
3019
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="920" package="Media Library Assistant">
3020
  <name>mla_inline_edit_action</name>
3021
  <full_name>mla_inline_edit_action</full_name>
3022
- <docblock line="911">
3023
  <description><![CDATA[Ajax handler for inline editing (quick and bulk edit)]]></description>
3024
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
3025
- <tag line="911" name="since" description="0.20"/>
3026
- <tag line="911" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
3027
  <type by_reference="false">void</type>
3028
  </tag>
3029
  </docblock>
3030
  </method>
3031
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1015" package="Media Library Assistant">
3032
  <name>_build_inline_edit_form</name>
3033
  <full_name>_build_inline_edit_form</full_name>
3034
- <docblock line="1004">
3035
  <description><![CDATA[Build the hidden row templates for inline editing (quick and bulk edit)]]></description>
3036
  <long-description><![CDATA[<p>inspired by inline_edit() in wp-admin\includes\class-wp-posts-list-table.php.</p>]]></long-description>
3037
- <tag line="1004" name="since" description="0.20"/>
3038
- <tag line="1004" name="param" description="MLA List Table object" type="object" variable="$MLAListTable">
3039
  <type by_reference="false">object</type>
3040
  </tag>
3041
- <tag line="1004" name="return" description="HTML &lt;form&gt; markup for hidden rows" type="string">
3042
  <type by_reference="false">string</type>
3043
  </tag>
3044
  </docblock>
3045
- <argument line="1015">
3046
  <name>$MLAListTable</name>
3047
  <default><![CDATA[]]></default>
3048
  <type/>
3049
  </argument>
3050
  </method>
3051
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1172" package="Media Library Assistant">
3052
  <name>_authors_dropdown</name>
3053
  <full_name>_authors_dropdown</full_name>
3054
- <docblock line="1161">
3055
  <description><![CDATA[Get the edit Authors dropdown box, if user has suitable permissions]]></description>
3056
  <long-description><![CDATA[]]></long-description>
3057
- <tag line="1161" name="since" description="0.20"/>
3058
- <tag line="1161" name="param" description="Optional User ID of the current author, default 0" type="integer" variable="$author">
3059
  <type by_reference="false">integer</type>
3060
  </tag>
3061
- <tag line="1161" name="param" description="Optional HTML name attribute, default 'post_author'" type="string" variable="$name">
3062
  <type by_reference="false">string</type>
3063
  </tag>
3064
- <tag line="1161" name="param" description="Optional HTML class attribute, default 'authors'" type="string" variable="$class">
3065
  <type by_reference="false">string</type>
3066
  </tag>
3067
- <tag line="1161" name="return" description="HTML markup for the dropdown field or False" type="string|false">
3068
  <type by_reference="false">string</type>
3069
  <type by_reference="false">false</type>
3070
  </tag>
3071
  </docblock>
3072
- <argument line="1172">
3073
  <name>$author</name>
3074
  <default><![CDATA[0]]></default>
3075
  <type/>
3076
  </argument>
3077
- <argument line="1172">
3078
  <name>$name</name>
3079
  <default><![CDATA['post_author']]></default>
3080
  <type/>
3081
  </argument>
3082
- <argument line="1172">
3083
  <name>$class</name>
3084
  <default><![CDATA['authors']]></default>
3085
  <type/>
3086
  </argument>
3087
  </method>
3088
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1206" package="Media Library Assistant">
3089
  <name>_current_bulk_action</name>
3090
  <full_name>_current_bulk_action</full_name>
3091
- <docblock line="1199">
3092
  <description><![CDATA[Get the current action selected from the bulk actions dropdown]]></description>
3093
  <long-description><![CDATA[]]></long-description>
3094
- <tag line="1199" name="since" description="0.1"/>
3095
- <tag line="1199" name="return" description="The action name or False if no action was selected" type="string|false">
3096
  <type by_reference="false">string</type>
3097
  <type by_reference="false">false</type>
3098
  </tag>
3099
  </docblock>
3100
  </method>
3101
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1235" package="Media Library Assistant">
3102
  <name>_delete_single_item</name>
3103
  <full_name>_delete_single_item</full_name>
3104
- <docblock line="1226">
3105
  <description><![CDATA[Delete a single item permanently]]></description>
3106
  <long-description><![CDATA[]]></long-description>
3107
- <tag line="1226" name="since" description="0.1"/>
3108
- <tag line="1226" name="param" description="The form POST data" type="array" variable="$post_id">
3109
  <type by_reference="false">array</type>
3110
  </tag>
3111
- <tag line="1226" name="return" description="success/failure message and NULL content" type="array">
3112
  <type by_reference="false">array</type>
3113
  </tag>
3114
  </docblock>
3115
- <argument line="1235">
3116
  <name>$post_id</name>
3117
  <default><![CDATA[]]></default>
3118
  <type/>
3119
  </argument>
3120
  </method>
3121
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1266" package="Media Library Assistant">
3122
  <name>_display_single_item</name>
3123
  <full_name>_display_single_item</full_name>
3124
- <docblock line="1254">
3125
  <description><![CDATA[Display a single item sub page; prepare the form to
3126
  change the meta data for a single attachment.]]></description>
3127
  <long-description><![CDATA[<p>This function is not used in WordPress 3.5 and later.</p>]]></long-description>
3128
- <tag line="1254" name="since" description="0.1"/>
3129
- <tag line="1254" name="param" description="The WordPress Post ID of the attachment item" type="int" variable="$post_id">
3130
  <type by_reference="false">int</type>
3131
  </tag>
3132
- <tag line="1254" name="return" description="message and/or HTML content" type="array">
3133
  <type by_reference="false">array</type>
3134
  </tag>
3135
  </docblock>
3136
- <argument line="1266">
3137
  <name>$post_id</name>
3138
  <default><![CDATA[]]></default>
3139
  <type/>
3140
  </argument>
3141
  </method>
3142
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1506" package="Media Library Assistant">
3143
  <name>_restore_single_item</name>
3144
  <full_name>_restore_single_item</full_name>
3145
- <docblock line="1497">
3146
  <description><![CDATA[Restore a single item from the Trash]]></description>
3147
  <long-description><![CDATA[]]></long-description>
3148
- <tag line="1497" name="since" description="0.1"/>
3149
- <tag line="1497" name="param" description="The form POST data" type="array" variable="$post_id">
3150
  <type by_reference="false">array</type>
3151
  </tag>
3152
- <tag line="1497" name="return" description="success/failure message and NULL content" type="array">
3153
  <type by_reference="false">array</type>
3154
  </tag>
3155
  </docblock>
3156
- <argument line="1506">
3157
  <name>$post_id</name>
3158
  <default><![CDATA[]]></default>
3159
  <type/>
3160
  </argument>
3161
  </method>
3162
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1542" package="Media Library Assistant">
3163
  <name>_trash_single_item</name>
3164
  <full_name>_trash_single_item</full_name>
3165
- <docblock line="1533">
3166
  <description><![CDATA[Move a single item to Trash]]></description>
3167
  <long-description><![CDATA[]]></long-description>
3168
- <tag line="1533" name="since" description="0.1"/>
3169
- <tag line="1533" name="param" description="The form POST data" type="array" variable="$post_id">
3170
  <type by_reference="false">array</type>
3171
  </tag>
3172
- <tag line="1533" name="return" description="success/failure message and NULL content" type="array">
3173
  <type by_reference="false">array</type>
3174
  </tag>
3175
  </docblock>
3176
- <argument line="1542">
3177
  <name>$post_id</name>
3178
  <default><![CDATA[]]></default>
3179
  <type/>
@@ -3408,7 +3878,7 @@ and mla_print_media_templates_action]]></description>
3408
  </method>
3409
  </class>
3410
  </file>
3411
- <file path="includes\class-mla-mime-types.php" hash="dae2503e9979ed6348d6014a96b4fc56" package="Media Library Assistant">
3412
  <docblock line="2">
3413
  <description><![CDATA[Media Library Assistant MIME Type Support]]></description>
3414
  <long-description><![CDATA[]]></long-description>
@@ -4024,7 +4494,7 @@ Defined as public because it's a filter.</p>]]></long-description>
4024
  <name>mla_parse_view_specification</name>
4025
  <full_name>mla_parse_view_specification</full_name>
4026
  <docblock line="817">
4027
- <description><![CDATA[Analyze a Library View/Post MIME Type specification, returning an array of the place holders it contains]]></description>
4028
  <long-description><![CDATA[]]></long-description>
4029
  <tag line="817" name="since" description="1.40"/>
4030
  <tag line="817" name="param" description="A specification, e.g., &quot;custom:Field,null&quot; or &quot;audio,application/vnd.*ms*&quot;" type="string" variable="$specification">
@@ -4634,7 +5104,7 @@ Defined as public because it's a filter.</p>]]></long-description>
4634
  </method>
4635
  </class>
4636
  </file>
4637
- <file path="includes\class-mla-objects.php" hash="52dfafc17c60fb76b734ba9792acff57" package="Media Library Assistant">
4638
  <docblock line="2">
4639
  <description><![CDATA[Media Library Assistant Custom Taxonomy objects]]></description>
4640
  <long-description><![CDATA[]]></long-description>
@@ -4735,7 +5205,7 @@ which returns a count of the attachments assigned a given term]]></description>
4735
  </method>
4736
  </class>
4737
  </file>
4738
- <file path="includes\class-mla-options.php" hash="b182e02f71dbf3a8e3ebae4e227a60cd" package="Media Library Assistant">
4739
  <docblock line="2">
4740
  <description><![CDATA[Manages the plugin option settings]]></description>
4741
  <long-description><![CDATA[]]></long-description>
@@ -4763,201 +5233,309 @@ and provides functions to get and put them from/to WordPress option variables]]>
4763
  </docblock>
4764
  </constant>
4765
  <constant namespace="global" line="27" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
4766
  <name>MLA_FEATURED_IN_TUNING</name>
4767
  <full_name>MLA_FEATURED_IN_TUNING</full_name>
4768
  <value><![CDATA['featured_in_tuning']]></value>
4769
- <docblock line="24">
4770
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
4771
  <long-description><![CDATA[]]></long-description>
4772
  </docblock>
4773
  </constant>
4774
- <constant namespace="global" line="32" package="Media Library Assistant">
4775
  <name>MLA_INSERTED_IN_TUNING</name>
4776
  <full_name>MLA_INSERTED_IN_TUNING</full_name>
4777
  <value><![CDATA['inserted_in_tuning']]></value>
4778
- <docblock line="29">
4779
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
4780
  <long-description><![CDATA[]]></long-description>
4781
  </docblock>
4782
  </constant>
4783
- <constant namespace="global" line="37" package="Media Library Assistant">
4784
  <name>MLA_GALLERY_IN_TUNING</name>
4785
  <full_name>MLA_GALLERY_IN_TUNING</full_name>
4786
  <value><![CDATA['gallery_in_tuning']]></value>
4787
- <docblock line="34">
4788
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
4789
  <long-description><![CDATA[]]></long-description>
4790
  </docblock>
4791
  </constant>
4792
- <constant namespace="global" line="42" package="Media Library Assistant">
4793
  <name>MLA_MLA_GALLERY_IN_TUNING</name>
4794
  <full_name>MLA_MLA_GALLERY_IN_TUNING</full_name>
4795
  <value><![CDATA['mla_gallery_in_tuning']]></value>
4796
- <docblock line="39">
4797
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
4798
  <long-description><![CDATA[]]></long-description>
4799
  </docblock>
4800
  </constant>
4801
- <constant namespace="global" line="47" package="Media Library Assistant">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4802
  <name>MLA_NEW_CUSTOM_RULE</name>
4803
  <full_name>MLA_NEW_CUSTOM_RULE</full_name>
4804
  <value><![CDATA['__NEW RULE__']]></value>
4805
- <docblock line="44">
4806
  <description><![CDATA[Provides a unique name for the Custom Field "new rule" key]]></description>
4807
  <long-description><![CDATA[]]></long-description>
4808
  </docblock>
4809
  </constant>
4810
- <constant namespace="global" line="52" package="Media Library Assistant">
4811
  <name>MLA_NEW_CUSTOM_FIELD</name>
4812
  <full_name>MLA_NEW_CUSTOM_FIELD</full_name>
4813
  <value><![CDATA['__NEW FIELD__']]></value>
4814
- <docblock line="49">
4815
  <description><![CDATA[Provides a unique name for the Custom Field "new field" key]]></description>
4816
  <long-description><![CDATA[]]></long-description>
4817
  </docblock>
4818
  </constant>
4819
- <constant namespace="global" line="57" package="Media Library Assistant">
4820
  <name>MLA_MEDIA_MODAL_TOOLBAR</name>
4821
  <full_name>MLA_MEDIA_MODAL_TOOLBAR</full_name>
4822
  <value><![CDATA['media_modal_toolbar']]></value>
4823
- <docblock line="54">
4824
  <description><![CDATA[Provides a unique name for the Media Manager toolbar option]]></description>
4825
  <long-description><![CDATA[]]></long-description>
4826
  </docblock>
4827
  </constant>
4828
- <constant namespace="global" line="62" package="Media Library Assistant">
4829
  <name>MLA_MEDIA_MODAL_MIMETYPES</name>
4830
  <full_name>MLA_MEDIA_MODAL_MIMETYPES</full_name>
4831
  <value><![CDATA['media_modal_mimetypes']]></value>
4832
- <docblock line="59">
4833
  <description><![CDATA[Provides a unique name for the Media Manager toolbar MIME Types option]]></description>
4834
  <long-description><![CDATA[]]></long-description>
4835
  </docblock>
4836
  </constant>
4837
- <constant namespace="global" line="67" package="Media Library Assistant">
4838
  <name>MLA_MEDIA_MODAL_MONTHS</name>
4839
  <full_name>MLA_MEDIA_MODAL_MONTHS</full_name>
4840
  <value><![CDATA['media_modal_months']]></value>
4841
- <docblock line="64">
4842
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Month and Year option]]></description>
4843
  <long-description><![CDATA[]]></long-description>
4844
  </docblock>
4845
  </constant>
4846
- <constant namespace="global" line="72" package="Media Library Assistant">
4847
  <name>MLA_MEDIA_MODAL_TERMS</name>
4848
  <full_name>MLA_MEDIA_MODAL_TERMS</full_name>
4849
  <value><![CDATA['media_modal_terms']]></value>
4850
- <docblock line="69">
4851
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Taxonomy Terms option]]></description>
4852
  <long-description><![CDATA[]]></long-description>
4853
  </docblock>
4854
  </constant>
4855
- <constant namespace="global" line="77" package="Media Library Assistant">
4856
  <name>MLA_MEDIA_MODAL_SEARCHBOX</name>
4857
  <full_name>MLA_MEDIA_MODAL_SEARCHBOX</full_name>
4858
  <value><![CDATA['media_modal_searchbox']]></value>
4859
- <docblock line="74">
4860
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Search Box option]]></description>
4861
  <long-description><![CDATA[]]></long-description>
4862
  </docblock>
4863
  </constant>
4864
- <constant namespace="global" line="82" package="Media Library Assistant">
4865
  <name>MLA_POST_MIME_TYPES</name>
4866
  <full_name>MLA_POST_MIME_TYPES</full_name>
4867
  <value><![CDATA['post_mime_types']]></value>
4868
- <docblock line="79">
4869
  <description><![CDATA[Provides a unique name for the Post MIME Types option]]></description>
4870
  <long-description><![CDATA[]]></long-description>
4871
  </docblock>
4872
  </constant>
4873
- <constant namespace="global" line="87" package="Media Library Assistant">
4874
  <name>MLA_ENABLE_POST_MIME_TYPES</name>
4875
  <full_name>MLA_ENABLE_POST_MIME_TYPES</full_name>
4876
  <value><![CDATA['enable_post_mime_types']]></value>
4877
- <docblock line="84">
4878
  <description><![CDATA[Provides a unique name for the Enable Post MIME Types option]]></description>
4879
  <long-description><![CDATA[]]></long-description>
4880
  </docblock>
4881
  </constant>
4882
- <constant namespace="global" line="92" package="Media Library Assistant">
4883
  <name>MLA_UPLOAD_MIMES</name>
4884
  <full_name>MLA_UPLOAD_MIMES</full_name>
4885
  <value><![CDATA['upload_mimes']]></value>
4886
- <docblock line="89">
4887
  <description><![CDATA[Provides a unique name for the Upload MIME Types option]]></description>
4888
  <long-description><![CDATA[]]></long-description>
4889
  </docblock>
4890
  </constant>
4891
- <constant namespace="global" line="97" package="Media Library Assistant">
4892
  <name>MLA_ENABLE_UPLOAD_MIMES</name>
4893
  <full_name>MLA_ENABLE_UPLOAD_MIMES</full_name>
4894
  <value><![CDATA['enable_upload_mimes']]></value>
4895
- <docblock line="94">
4896
  <description><![CDATA[Provides a unique name for the Enable Upload MIME Types option]]></description>
4897
  <long-description><![CDATA[]]></long-description>
4898
  </docblock>
4899
  </constant>
4900
- <constant namespace="global" line="102" package="Media Library Assistant">
4901
  <name>MLA_ENABLE_MLA_ICONS</name>
4902
  <full_name>MLA_ENABLE_MLA_ICONS</full_name>
4903
  <value><![CDATA['enable_mla_icons']]></value>
4904
- <docblock line="99">
4905
  <description><![CDATA[Provides a unique name for the Enable MLA Icons option]]></description>
4906
  <long-description><![CDATA[]]></long-description>
4907
  </docblock>
4908
  </constant>
4909
- <property final="false" static="true" visibility="public" line="113" namespace="global" package="Media Library Assistant">
4910
  <name>$process_featured_in</name>
4911
  <default><![CDATA[true]]></default>
4912
- <docblock line="104">
4913
  <description><![CDATA[Option setting for "Featured in" reporting]]></description>
4914
  <long-description><![CDATA[<p>This setting is false if the "Featured in" database access setting is "disabled", else true.</p>]]></long-description>
4915
- <tag line="104" name="since" description="1.00"/>
4916
- <tag line="104" name="var" description="" type="boolean">
4917
  <type by_reference="false">boolean</type>
4918
  </tag>
4919
  </docblock>
4920
  </property>
4921
- <property final="false" static="true" visibility="public" line="124" namespace="global" package="Media Library Assistant">
4922
  <name>$process_inserted_in</name>
4923
  <default><![CDATA[true]]></default>
4924
- <docblock line="115">
4925
  <description><![CDATA[Option setting for "Inserted in" reporting]]></description>
4926
  <long-description><![CDATA[<p>This setting is false if the "Inserted in" database access setting is "disabled", else true.</p>]]></long-description>
4927
- <tag line="115" name="since" description="1.00"/>
4928
- <tag line="115" name="var" description="" type="boolean">
4929
  <type by_reference="false">boolean</type>
4930
  </tag>
4931
  </docblock>
4932
  </property>
4933
- <property final="false" static="true" visibility="public" line="135" namespace="global" package="Media Library Assistant">
4934
  <name>$process_gallery_in</name>
4935
  <default><![CDATA[true]]></default>
4936
- <docblock line="126">
4937
  <description><![CDATA[Option setting for "Gallery in" reporting]]></description>
4938
  <long-description><![CDATA[<p>This setting is false if the "Gallery in" database access setting is "disabled", else true.</p>]]></long-description>
4939
- <tag line="126" name="since" description="1.00"/>
4940
- <tag line="126" name="var" description="" type="boolean">
4941
  <type by_reference="false">boolean</type>
4942
  </tag>
4943
  </docblock>
4944
  </property>
4945
- <property final="false" static="true" visibility="public" line="146" namespace="global" package="Media Library Assistant">
4946
  <name>$process_mla_gallery_in</name>
4947
  <default><![CDATA[true]]></default>
4948
- <docblock line="137">
4949
  <description><![CDATA[Option setting for "MLA Gallery in" reporting]]></description>
4950
  <long-description><![CDATA[<p>This setting is false if the "MLA Gallery in" database access setting is "disabled", else true.</p>]]></long-description>
4951
- <tag line="137" name="since" description="1.00"/>
4952
- <tag line="137" name="var" description="" type="boolean">
4953
  <type by_reference="false">boolean</type>
4954
  </tag>
4955
  </docblock>
4956
  </property>
4957
- <property final="false" static="true" visibility="public" line="173" namespace="global" package="Media Library Assistant">
4958
  <name>$mla_option_definitions</name>
4959
- <default><![CDATA[array(self::MLA_VERSION_OPTION => array('tab' => '', 'type' => 'hidden', 'std' => '0'), 'attachment_category' => array('tab' => '', 'name' => 'Attachment Categories', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to add support for Attachment Categories.'), 'attachment_tag' => array('tab' => '', 'name' => 'Attachment Tags', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to add support for Attachment Tags.'), 'where_used_heading' => array('tab' => 'general', 'name' => 'Where-used Reporting', 'type' => 'header'), 'exclude_revisions' => array('tab' => 'general', 'name' => 'Exclude Revisions', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to exclude revisions from where-used reporting.'), 'where_used_subheading' => array('tab' => 'general', 'name' => 'Where-used database access tuning', 'type' => 'subheader'), self::MLA_FEATURED_IN_TUNING => array('tab' => 'general', 'name' => 'Featured in', 'type' => 'select', 'std' => 'enabled', 'options' => array('enabled', 'disabled'), 'texts' => array('Enabled', 'Disabled'), 'help' => 'Search database posts and pages for Featured Image attachments.'), self::MLA_INSERTED_IN_TUNING => array('tab' => 'general', 'name' => 'Inserted in', 'type' => 'select', 'std' => 'base', 'options' => array('enabled', 'base', 'disabled'), 'texts' => array('Enabled', 'Base', 'Disabled'), 'help' => 'Search database posts and pages for attachments embedded in content.<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base name and extension only.'), self::MLA_GALLERY_IN_TUNING => array('tab' => 'general', 'name' => 'Gallery in', 'type' => 'select', 'std' => 'cached', 'options' => array('dynamic', 'refresh', 'cached', 'disabled'), 'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'), 'help' => 'Search database posts and pages for [gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'), self::MLA_MLA_GALLERY_IN_TUNING => array('tab' => 'general', 'name' => 'MLA Gallery in', 'type' => 'select', 'std' => 'cached', 'options' => array('dynamic', 'refresh', 'cached', 'disabled'), 'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'), 'help' => 'Search database posts and pages for [mla_gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'), 'taxonomy_heading' => array('tab' => 'general', 'name' => 'Taxonomy Support', 'type' => 'header'), 'taxonomy_support' => array('tab' => 'general', 'help' => 'Check the "Support" box to add the taxonomy to the Assistant and the Edit Media screen.<br>Check the "Inline Edit" box to display the taxonomy in the Quick Edit and Bulk Edit areas.<br>Use the "List Filter" option to select the taxonomy on which to filter the Assistant table listing.', 'std' => array('tax_support' => array('attachment_category' => 'checked', 'attachment_tag' => 'checked'), 'tax_quick_edit' => array('attachment_category' => 'checked', 'attachment_tag' => 'checked'), 'tax_filter' => 'attachment_category'), 'type' => 'custom', 'render' => 'mla_taxonomy_option_handler', 'update' => 'mla_taxonomy_option_handler', 'delete' => 'mla_taxonomy_option_handler', 'reset' => 'mla_taxonomy_option_handler'), 'attachments_column' => array('tab' => '', 'name' => 'Attachments Column', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to replace the Posts column with the Attachments Column.'), 'orderby_heading' => array('tab' => 'general', 'name' => 'Media/Assistant Table Defaults', 'type' => 'header'), 'default_orderby' => array('tab' => 'general', 'name' => 'Order By', 'type' => 'select', 'std' => 'title_name', 'options' => array('none', 'title_name'), 'texts' => array('None', 'Title/Name'), 'help' => 'Select the column for the sort order of the Assistant table listing.'), 'default_order' => array('tab' => 'general', 'name' => 'Order', 'type' => 'radio', 'std' => 'ASC', 'options' => array('ASC', 'DESC'), 'texts' => array('Ascending', 'Descending'), 'help' => 'Choose the sort order.'), 'table_views_width' => array('tab' => 'general', 'name' => 'Views Width', 'type' => 'text', 'std' => '', 'size' => 10, 'help' => 'Enter the width for the views list, in pixels (px) or percent (%)'), 'media_modal_heading' => array('tab' => 'general', 'name' => 'Media Manager Enhancements', 'type' => 'header'), self::MLA_MEDIA_MODAL_TOOLBAR => array('tab' => 'general', 'name' => 'Enable Media Manager Enhancements', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Media Manager Enhancements.'), self::MLA_MEDIA_MODAL_MIMETYPES => array('tab' => 'general', 'name' => 'Media Manager Enhanced MIME Type filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by more MIME Types, e.g., text, applications.'), self::MLA_MEDIA_MODAL_MONTHS => array('tab' => 'general', 'name' => 'Media Manager Month and Year filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by month and year uploaded.'), self::MLA_MEDIA_MODAL_TERMS => array('tab' => 'general', 'name' => 'Media Manager Category/Tag filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by taxonomy terms.'), self::MLA_MEDIA_MODAL_SEARCHBOX => array('tab' => 'general', 'name' => 'Media Manager Enhanced Search Media box', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to enable search box enhancements.'), 'template_heading' => array('tab' => 'mla_gallery', 'name' => 'Default [mla_gallery] Templates and Settings', 'type' => 'header'), 'default_style' => array('tab' => 'mla_gallery', 'name' => 'Style Template', 'type' => 'select', 'std' => 'default', 'options' => array(), 'texts' => array(), 'help' => 'Select the default style template for your [mla_gallery] shortcodes.'), 'default_markup' => array('tab' => 'mla_gallery', 'name' => 'Markup Template', 'type' => 'select', 'std' => 'default', 'options' => array(), 'texts' => array(), 'help' => 'Select the default markup template for your [mla_gallery] shortcodes.'), 'mla_gallery_columns' => array('tab' => 'mla_gallery', 'name' => 'Default columns', 'type' => 'text', 'std' => '3', 'size' => 3, 'help' => 'Enter the number of [mla_gallery] columns; must be a positive integer.'), 'mla_gallery_margin' => array('tab' => 'mla_gallery', 'name' => 'Default mla_margin', 'type' => 'text', 'std' => '1.5%', 'size' => 10, 'help' => 'Enter the CSS "margin" property value, in length (px, em, pt, etc.), percent (%), "auto" or "inherit".<br>&nbsp;&nbsp;Enter "none" to remove the property entirely.'), 'mla_gallery_itemwidth' => array('tab' => 'mla_gallery', 'name' => 'Default mla_itemwidth', 'type' => 'text', 'std' => 'calculate', 'size' => 10, 'help' => 'Enter the CSS "width" property value, in length (px, em, pt, etc.), percent (%), "auto" or "inherit".<br>&nbsp;&nbsp;Enter "calculate" (the default) to calculate the value taking the "margin" value into account.<br>&nbsp;&nbsp;Enter "exact" to calculate the value without considering the "margin" value.<br>&nbsp;&nbsp;Enter "none" to remove the property entirely.'), 'style_templates' => array('tab' => '', 'type' => 'hidden', 'std' => array()), 'markup_templates' => array('tab' => '', 'type' => 'hidden', 'std' => array()), 'enable_custom_field_mapping' => array('tab' => 'custom_field', 'name' => 'Enable custom field mapping when adding new media', 'type' => 'checkbox', 'std' => '', 'help' => 'Check this option to enable mapping when uploading new media (attachments).<br>&nbsp;&nbsp;Click Save Changes at the bottom of the screen if you change this option.<br>&nbsp;&nbsp;Does NOT affect the operation of the "Map" buttons on the bulk edit, single edit and settings screens.'), 'custom_field_mapping' => array('tab' => '', 'help' => '&nbsp;<br>Update the custom field mapping values above, then click Save Changes to make the updates permanent.<br>You can also make temporary updates and click a Map All Attachments button to apply the rule(s) to all attachments without saving any rule changes.', 'std' => array(), 'type' => 'custom', 'render' => 'mla_custom_field_option_handler', 'update' => 'mla_custom_field_option_handler', 'delete' => 'mla_custom_field_option_handler', 'reset' => 'mla_custom_field_option_handler'), 'enable_iptc_exif_mapping' => array('tab' => 'iptc_exif', 'name' => 'Enable IPTC/EXIF Mapping when adding new media', 'type' => 'checkbox', 'std' => '', 'help' => 'Check this option to enable mapping when uploading new media (attachments).<br>&nbsp;&nbsp;Does NOT affect the operation of the "Map" buttons on the bulk edit, single edit and settings screens.'), 'iptc_exif_standard_mapping' => array('tab' => '', 'help' => 'Update the standard field mapping values above, then click <strong>Save Changes</strong> to make the updates permanent.<br>You can also make temporary updates and click <strong>Map All Attachments, Standard Fields Now</strong> to apply the updates to all attachments without saving the rule changes.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_taxonomy_mapping' => array('tab' => '', 'help' => 'Update the taxonomy term mapping values above, then click <strong>Save Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_custom_mapping' => array('tab' => '', 'help' => '<strong>Update</strong> individual custom field mapping values above, or make several updates and click <strong>Save Changes</strong> below to apply them all at once.<br>You can also <strong>add a new rule</strong> for an existing field or <strong>add a new field</strong> and rule.<br>You can make temporary updates and click <strong>Map All Attachments, Custom Fields Now</strong> to apply the updates to all attachments without saving the rule changes.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_mapping' => array('tab' => '', 'help' => 'IPTC/EXIF Mapping help', 'std' => array('standard' => array('post_title' => array('name' => 'Title', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_name' => array('name' => 'Name/Slug', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'image_alt' => array('name' => 'Alternate Text', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_excerpt' => array('name' => 'Caption', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_content' => array('name' => 'Description', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true)), 'taxonomy' => array(), 'custom' => array()), 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), self::MLA_ENABLE_POST_MIME_TYPES => array('tab' => 'view', 'name' => 'Enable View and Post MIME Type Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Post MIME Type Support, then click <strong>Save Changes</strong> to record the new setting.'), self::MLA_POST_MIME_TYPES => array('tab' => '', 'type' => 'custom', 'render' => 'mla_post_mime_types_option_handler', 'update' => 'mla_post_mime_types_option_handler', 'delete' => 'mla_post_mime_types_option_handler', 'reset' => 'mla_post_mime_types_option_handler', 'help' => 'Post MIME Types help.', 'std' => array('all' => array('singular' => 'All', 'plural' => 'All', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'), 'image' => array('singular' => 'Image', 'plural' => 'Images', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All image subtypes'), 'audio' => array('singular' => 'Audio', 'plural' => 'Audio', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All audio subtypes'), 'video' => array('singular' => 'Video', 'plural' => 'Video', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All video subtypes'), 'text' => array('singular' => 'Text', 'plural' => 'Text', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All text subtypes'), 'application' => array('singular' => 'Application', 'plural' => 'Applications', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All application subtypes'), 'unattached' => array('singular' => 'Unattached', 'plural' => 'Unattached', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'), 'trash' => array('singular' => 'Trash', 'plural' => 'Trash', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'))), self::MLA_ENABLE_UPLOAD_MIMES => array('tab' => 'upload', 'name' => 'Enable Upload MIME Type Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Upload MIME Type Support, then click <strong>Save Changes</strong> to record the new setting.'), self::MLA_UPLOAD_MIMES => array('tab' => '', 'type' => 'custom', 'render' => 'mla_upload_mimes_option_handler', 'update' => 'mla_upload_mimes_option_handler', 'delete' => 'mla_upload_mimes_option_handler', 'reset' => 'mla_upload_mimes_option_handler', 'help' => 'Upload MIME Types help.', 'std' => false), self::MLA_ENABLE_MLA_ICONS => array('tab' => 'upload', 'name' => 'Enable MLA File Type Icons Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable MLA File Type Icons Support, then click <strong>Save Changes</strong> to record the new setting.'))]]></default>
4960
- <docblock line="148">
4961
  <description><![CDATA[$mla_option_definitions defines the database options and admin page areas for setting/updating them.]]></description>
4962
  <long-description><![CDATA[<p>Each option is defined by an array with the following elements:</p>
4963
 
@@ -4983,947 +5561,947 @@ reset => reset function for 'custom' options; returns nothing. Usage:
4983
  $message = ['reset']( 'reset', $key, $value, $_REQUEST );</p>]]></long-description>
4984
  </docblock>
4985
  </property>
4986
- <property final="false" static="true" visibility="private" line="684" namespace="global" package="Media Library Assistant">
4987
  <name>$mla_option_templates</name>
4988
  <default><![CDATA[null]]></default>
4989
- <docblock line="677">
4990
  <description><![CDATA[Style and Markup templates]]></description>
4991
  <long-description><![CDATA[]]></long-description>
4992
- <tag line="677" name="since" description="0.80"/>
4993
- <tag line="677" name="var" description="" type="array">
4994
  <type by_reference="false">array</type>
4995
  </tag>
4996
  </docblock>
4997
  </property>
4998
- <property final="false" static="true" visibility="private" line="1818" namespace="global" package="Media Library Assistant">
4999
  <name>$custom_field_data_sources</name>
5000
  <default><![CDATA[array('absolute_path', 'absolute_file_name', 'base_file', 'path', 'file_name', 'name_only', 'extension', 'file_size', 'upload_date', 'mime_type', 'dimensions', 'pixels', 'width', 'height', 'hwstring_small', 'size_keys', 'size_names', 'size_bytes', 'size_pixels', 'size_dimensions', 'size_name[size]', 'size_bytes[size]', 'size_pixels[size]', 'size_dimensions[size]', 'parent', 'parent_date', 'parent_type', 'parent_title', 'parent_issues', 'reference_issues', 'featured_in', 'featured_in_title', 'inserted_in', 'inserted_in_title', 'gallery_in', 'gallery_in_title', 'mla_gallery_in', 'mla_gallery_in_title', 'aperture', 'credit', 'camera', 'caption', 'created_timestamp', 'copyright', 'focal_length', 'iso', 'shutter_speed', 'title')]]></default>
5001
- <docblock line="1811">
5002
  <description><![CDATA[Array of Data Source names for custom field mapping]]></description>
5003
  <long-description><![CDATA[]]></long-description>
5004
- <tag line="1811" name="since" description="1.10"/>
5005
- <tag line="1811" name="var" description="" type="array">
5006
  <type by_reference="false">array</type>
5007
  </tag>
5008
  </docblock>
5009
  </property>
5010
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="658" package="Media Library Assistant">
5011
  <name>initialize</name>
5012
  <full_name>initialize</full_name>
5013
- <docblock line="651">
5014
  <description><![CDATA[Initialization function, similar to __construct()]]></description>
5015
  <long-description><![CDATA[]]></long-description>
5016
- <tag line="651" name="since" description="1.00"/>
5017
- <tag line="651" name="return" description="" type="void">
5018
  <type by_reference="false">void</type>
5019
  </tag>
5020
  </docblock>
5021
  </method>
5022
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="693" package="Media Library Assistant">
5023
  <name>_load_option_templates</name>
5024
  <full_name>_load_option_templates</full_name>
5025
- <docblock line="686">
5026
  <description><![CDATA[Load style and markup templates to $mla_templates]]></description>
5027
  <long-description><![CDATA[]]></long-description>
5028
- <tag line="686" name="since" description="0.80"/>
5029
- <tag line="686" name="return" description="" type="void">
5030
  <type by_reference="false">void</type>
5031
  </tag>
5032
  </docblock>
5033
  </method>
5034
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="741" package="Media Library Assistant">
5035
  <name>mla_fetch_gallery_template</name>
5036
  <full_name>mla_fetch_gallery_template</full_name>
5037
- <docblock line="731">
5038
  <description><![CDATA[Fetch style or markup template from $mla_templates]]></description>
5039
  <long-description><![CDATA[]]></long-description>
5040
- <tag line="731" name="since" description="0.80"/>
5041
- <tag line="731" name="param" description="Template name" type="string" variable="$key">
5042
  <type by_reference="false">string</type>
5043
  </tag>
5044
- <tag line="731" name="param" description="Template type; 'style' (default) or 'markup'" type="string" variable="$type">
5045
  <type by_reference="false">string</type>
5046
  </tag>
5047
- <tag line="731" name="return" description="requested template, false if not found or null if no templates" type="string|boolean|null">
5048
  <type by_reference="false">string</type>
5049
  <type by_reference="false">boolean</type>
5050
  <type by_reference="false">null</type>
5051
  </tag>
5052
  </docblock>
5053
- <argument line="741">
5054
  <name>$key</name>
5055
  <default><![CDATA[]]></default>
5056
  <type/>
5057
  </argument>
5058
- <argument line="741">
5059
  <name>$type</name>
5060
  <default><![CDATA['style']]></default>
5061
  <type/>
5062
  </argument>
5063
  </method>
5064
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="764" package="Media Library Assistant">
5065
  <name>mla_get_style_templates</name>
5066
  <full_name>mla_get_style_templates</full_name>
5067
- <docblock line="757">
5068
  <description><![CDATA[Get ALL style templates from $mla_templates, including 'default']]></description>
5069
  <long-description><![CDATA[]]></long-description>
5070
- <tag line="757" name="since" description="0.80"/>
5071
- <tag line="757" name="return" description="name =&gt; value for all style templates or null if no templates" type="array|null">
5072
  <type by_reference="false">array</type>
5073
  <type by_reference="false">null</type>
5074
  </tag>
5075
  </docblock>
5076
  </method>
5077
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="790" package="Media Library Assistant">
5078
  <name>mla_put_style_templates</name>
5079
  <full_name>mla_put_style_templates</full_name>
5080
- <docblock line="782">
5081
  <description><![CDATA[Put user-defined style templates to $mla_templates and database]]></description>
5082
  <long-description><![CDATA[]]></long-description>
5083
- <tag line="782" name="since" description="0.80"/>
5084
- <tag line="782" name="param" description="name =&gt; value for all user-defined style templates" type="array" variable="$templates">
5085
  <type by_reference="false">array</type>
5086
  </tag>
5087
- <tag line="782" name="return" description="true if success, false if failure" type="boolean">
5088
  <type by_reference="false">boolean</type>
5089
  </tag>
5090
  </docblock>
5091
- <argument line="790">
5092
  <name>$templates</name>
5093
  <default><![CDATA[]]></default>
5094
  <type/>
5095
  </argument>
5096
  </method>
5097
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="806" package="Media Library Assistant">
5098
  <name>mla_get_markup_templates</name>
5099
  <full_name>mla_get_markup_templates</full_name>
5100
- <docblock line="799">
5101
  <description><![CDATA[Get ALL markup templates from $mla_templates, including 'default']]></description>
5102
  <long-description><![CDATA[]]></long-description>
5103
- <tag line="799" name="since" description="0.80"/>
5104
- <tag line="799" name="return" description="name =&gt; value for all markup templates or null if no templates" type="array|null">
5105
  <type by_reference="false">array</type>
5106
  <type by_reference="false">null</type>
5107
  </tag>
5108
  </docblock>
5109
  </method>
5110
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="861" package="Media Library Assistant">
5111
  <name>mla_put_markup_templates</name>
5112
  <full_name>mla_put_markup_templates</full_name>
5113
- <docblock line="853">
5114
  <description><![CDATA[Put user-defined markup templates to $mla_templates and database]]></description>
5115
  <long-description><![CDATA[]]></long-description>
5116
- <tag line="853" name="since" description="0.80"/>
5117
- <tag line="853" name="param" description="name =&gt; value for all user-defined markup templates" type="array" variable="$templates">
5118
  <type by_reference="false">array</type>
5119
  </tag>
5120
- <tag line="853" name="return" description="true if success, false if failure" type="boolean">
5121
  <type by_reference="false">boolean</type>
5122
  </tag>
5123
  </docblock>
5124
- <argument line="861">
5125
  <name>$templates</name>
5126
  <default><![CDATA[]]></default>
5127
  <type/>
5128
  </argument>
5129
  </method>
5130
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="881" package="Media Library Assistant">
5131
  <name>mla_get_option</name>
5132
  <full_name>mla_get_option</full_name>
5133
- <docblock line="870">
5134
  <description><![CDATA[Return the stored value or default value of a defined MLA option]]></description>
5135
  <long-description><![CDATA[]]></long-description>
5136
- <tag line="870" name="since" description="0.1"/>
5137
- <tag line="870" name="param" description="Name of the desired option" type="string" variable="$option">
5138
  <type by_reference="false">string</type>
5139
  </tag>
5140
- <tag line="870" name="param" description="True to ignore current setting and return default values" type="boolean" variable="$get_default">
5141
  <type by_reference="false">boolean</type>
5142
  </tag>
5143
- <tag line="870" name="param" description="True to ignore default values and return only stored values" type="boolean" variable="$get_stored">
5144
  <type by_reference="false">boolean</type>
5145
  </tag>
5146
- <tag line="870" name="return" description="Value(s) for the option or false if the option is not a defined MLA option" type="mixed">
5147
  <type by_reference="false">mixed</type>
5148
  </tag>
5149
  </docblock>
5150
- <argument line="881">
5151
  <name>$option</name>
5152
  <default><![CDATA[]]></default>
5153
  <type/>
5154
  </argument>
5155
- <argument line="881">
5156
  <name>$get_default</name>
5157
  <default><![CDATA[false]]></default>
5158
  <type/>
5159
  </argument>
5160
- <argument line="881">
5161
  <name>$get_stored</name>
5162
  <default><![CDATA[false]]></default>
5163
  <type/>
5164
  </argument>
5165
  </method>
5166
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="908" package="Media Library Assistant">
5167
  <name>mla_update_option</name>
5168
  <full_name>mla_update_option</full_name>
5169
- <docblock line="898">
5170
  <description><![CDATA[Add or update the stored value of a defined MLA option]]></description>
5171
  <long-description><![CDATA[]]></long-description>
5172
- <tag line="898" name="since" description="0.1"/>
5173
- <tag line="898" name="param" description="Name of the desired option" type="string" variable="$option">
5174
  <type by_reference="false">string</type>
5175
  </tag>
5176
- <tag line="898" name="param" description="New value for the desired option" type="mixed" variable="$newvalue">
5177
  <type by_reference="false">mixed</type>
5178
  </tag>
5179
- <tag line="898" name="return" description="True if the value was changed or false if the update failed" type="boolean">
5180
  <type by_reference="false">boolean</type>
5181
  </tag>
5182
  </docblock>
5183
- <argument line="908">
5184
  <name>$option</name>
5185
  <default><![CDATA[]]></default>
5186
  <type/>
5187
  </argument>
5188
- <argument line="908">
5189
  <name>$newvalue</name>
5190
  <default><![CDATA[]]></default>
5191
  <type/>
5192
  </argument>
5193
  </method>
5194
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="924" package="Media Library Assistant">
5195
  <name>mla_delete_option</name>
5196
  <full_name>mla_delete_option</full_name>
5197
- <docblock line="915">
5198
  <description><![CDATA[Delete the stored value of a defined MLA option]]></description>
5199
  <long-description><![CDATA[]]></long-description>
5200
- <tag line="915" name="since" description="0.1"/>
5201
- <tag line="915" name="param" description="Name of the desired option" type="string" variable="$option">
5202
  <type by_reference="false">string</type>
5203
  </tag>
5204
- <tag line="915" name="return" description="True if the option was deleted, otherwise false" type="boolean">
5205
  <type by_reference="false">boolean</type>
5206
  </tag>
5207
  </docblock>
5208
- <argument line="924">
5209
  <name>$option</name>
5210
  <default><![CDATA[]]></default>
5211
  <type/>
5212
  </argument>
5213
  </method>
5214
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="945" package="Media Library Assistant">
5215
  <name>mla_taxonomy_support</name>
5216
  <full_name>mla_taxonomy_support</full_name>
5217
- <docblock line="932">
5218
  <description><![CDATA[Determine MLA support for a taxonomy, handling the special case where the
5219
  settings are being updated or reset.]]></description>
5220
  <long-description><![CDATA[]]></long-description>
5221
- <tag line="932" name="since" description="0.30"/>
5222
- <tag line="932" name="param" description="Taxonomy name, e.g., attachment_category" type="string" variable="$tax_name">
5223
  <type by_reference="false">string</type>
5224
  </tag>
5225
- <tag line="932" name="param" description="Optional. 'support' (default), 'quick-edit' or 'filter'" type="string" variable="$support_type">
5226
  <type by_reference="false">string</type>
5227
  </tag>
5228
- <tag line="932" name="return" description="true if the taxonomy is supported in this way else false string if $tax_name is '' and $support_type is 'filter', returns the taxonomy to filter by" type="boolean|string">
5229
  <type by_reference="false">boolean</type>
5230
  <type by_reference="false">string</type>
5231
  </tag>
5232
  </docblock>
5233
- <argument line="945">
5234
  <name>$tax_name</name>
5235
  <default><![CDATA[]]></default>
5236
  <type/>
5237
  </argument>
5238
- <argument line="945">
5239
  <name>$support_type</name>
5240
  <default><![CDATA['support']]></default>
5241
  <type/>
5242
  </argument>
5243
  </method>
5244
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1021" package="Media Library Assistant">
5245
  <name>mla_taxonomy_option_handler</name>
5246
  <full_name>mla_taxonomy_option_handler</full_name>
5247
- <docblock line="1008">
5248
  <description><![CDATA[Render and manage taxonomy support options, e.g., Categories and Post Tags]]></description>
5249
  <long-description><![CDATA[]]></long-description>
5250
- <tag line="1008" name="since" description="0.30"/>
5251
- <tag line="1008" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5252
- <tag line="1008" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
5253
  <type by_reference="false">string</type>
5254
  </tag>
5255
- <tag line="1008" name="param" description="option name, e.g., 'taxonomy_support'" type="string" variable="$key">
5256
  <type by_reference="false">string</type>
5257
  </tag>
5258
- <tag line="1008" name="param" description="option parameters" type="array" variable="$value">
5259
  <type by_reference="false">array</type>
5260
  </tag>
5261
- <tag line="1008" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
5262
  <type by_reference="false">array</type>
5263
  </tag>
5264
- <tag line="1008" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
5265
  <type by_reference="false">string</type>
5266
  </tag>
5267
  </docblock>
5268
- <argument line="1021">
5269
  <name>$action</name>
5270
  <default><![CDATA[]]></default>
5271
  <type/>
5272
  </argument>
5273
- <argument line="1021">
5274
  <name>$key</name>
5275
  <default><![CDATA[]]></default>
5276
  <type/>
5277
  </argument>
5278
- <argument line="1021">
5279
  <name>$value</name>
5280
  <default><![CDATA[]]></default>
5281
  <type/>
5282
  </argument>
5283
- <argument line="1021">
5284
  <name>$args</name>
5285
  <default><![CDATA[null]]></default>
5286
  <type/>
5287
  </argument>
5288
  </method>
5289
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1129" package="Media Library Assistant">
5290
  <name>mla_add_attachment_action</name>
5291
  <full_name>mla_add_attachment_action</full_name>
5292
- <docblock line="1120">
5293
  <description><![CDATA[Perform ITC/EXIF mapping on just-inserted attachment]]></description>
5294
  <long-description><![CDATA[]]></long-description>
5295
- <tag line="1120" name="since" description="1.00"/>
5296
- <tag line="1120" name="param" description="ID of just-inserted attachment" type="integer" variable="$post_id">
5297
  <type by_reference="false">integer</type>
5298
  </tag>
5299
- <tag line="1120" name="return" description="" type="void">
5300
  <type by_reference="false">void</type>
5301
  </tag>
5302
  </docblock>
5303
- <argument line="1129">
5304
  <name>$post_id</name>
5305
  <default><![CDATA[]]></default>
5306
  <type/>
5307
  </argument>
5308
  </method>
5309
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1149" package="Media Library Assistant">
5310
  <name>mla_update_attachment_metadata_filter</name>
5311
  <full_name>mla_update_attachment_metadata_filter</full_name>
5312
- <docblock line="1139">
5313
  <description><![CDATA[Perform Custom Field mapping on just-inserted or updated attachment]]></description>
5314
  <long-description><![CDATA[]]></long-description>
5315
- <tag line="1139" name="since" description="1.10"/>
5316
- <tag line="1139" name="param" description="Attachment metadata for just-inserted attachment" type="array" variable="$data">
5317
  <type by_reference="false">array</type>
5318
  </tag>
5319
- <tag line="1139" name="param" description="ID of just-inserted attachment" type="integer" variable="$post_id">
5320
  <type by_reference="false">integer</type>
5321
  </tag>
5322
- <tag line="1139" name="return" description="" type="void">
5323
  <type by_reference="false">void</type>
5324
  </tag>
5325
  </docblock>
5326
- <argument line="1149">
5327
  <name>$data</name>
5328
  <default><![CDATA[]]></default>
5329
  <type/>
5330
  </argument>
5331
- <argument line="1149">
5332
  <name>$post_id</name>
5333
  <default><![CDATA[]]></default>
5334
  <type/>
5335
  </argument>
5336
  </method>
5337
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1169" package="Media Library Assistant">
5338
  <name>mla_custom_field_option_value</name>
5339
  <full_name>mla_custom_field_option_value</full_name>
5340
- <docblock line="1160">
5341
  <description><![CDATA[Fetch custom field option value given a slug]]></description>
5342
  <long-description><![CDATA[]]></long-description>
5343
- <tag line="1160" name="since" description="1.10"/>
5344
- <tag line="1160" name="param" description="slug, e.g., 'c_file-size' for the 'File Size' field" type="string" variable="$slug">
5345
  <type by_reference="false">string</type>
5346
  </tag>
5347
- <tag line="1160" name="return" description="option value, e.g., array( 'name' =&gt; 'File Size', ... )" type="array">
5348
  <type by_reference="false">array</type>
5349
  </tag>
5350
  </docblock>
5351
- <argument line="1169">
5352
  <name>$slug</name>
5353
  <default><![CDATA[]]></default>
5354
  <type/>
5355
  </argument>
5356
  </method>
5357
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1189" package="Media Library Assistant">
5358
  <name>mla_custom_field_support</name>
5359
  <full_name>mla_custom_field_support</full_name>
5360
- <docblock line="1180">
5361
  <description><![CDATA[Evaluate file information for custom field mapping]]></description>
5362
  <long-description><![CDATA[]]></long-description>
5363
- <tag line="1180" name="since" description="1.10"/>
5364
- <tag line="1180" name="param" description="array format; 'default_columns' (default), 'default_hidden_columns', 'default_sortable_columns', 'quick_edit' or 'bulk_edit'" type="string" variable="$support_type">
5365
  <type by_reference="false">string</type>
5366
  </tag>
5367
- <tag line="1180" name="return" description="default, hidden, sortable quick_edit or bulk_edit colums in appropriate format" type="array">
5368
  <type by_reference="false">array</type>
5369
  </tag>
5370
  </docblock>
5371
- <argument line="1189">
5372
  <name>$support_type</name>
5373
  <default><![CDATA['default_columns']]></default>
5374
  <type/>
5375
  </argument>
5376
  </method>
5377
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1235" package="Media Library Assistant">
5378
  <name>_evaluate_file_information</name>
5379
  <full_name>_evaluate_file_information</full_name>
5380
- <docblock line="1223">
5381
  <description><![CDATA[Evaluate file information for custom field mapping]]></description>
5382
  <long-description><![CDATA[]]></long-description>
5383
- <tag line="1223" name="since" description="1.10"/>
5384
- <tag line="1223" name="param" description="absolute path the the uploads base directory" type="string" variable="$upload_dir">
5385
  <type by_reference="false">string</type>
5386
  </tag>
5387
- <tag line="1223" name="param" description="_wp_attached_file meta_value array, indexed by post_id" type="array" variable="$wp_attached_files">
5388
  <type by_reference="false">array</type>
5389
  </tag>
5390
- <tag line="1223" name="param" description="_wp_attachment_metadata meta_value array, indexed by post_id" type="array" variable="$wp_attachment_metadata">
5391
  <type by_reference="false">array</type>
5392
  </tag>
5393
- <tag line="1223" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
5394
  <type by_reference="false">integer</type>
5395
  </tag>
5396
- <tag line="1223" name="return" description="absolute_path_raw, absolute_path, absolute_file_name_raw, absolute_file_name, absolute_file, base_file, path, file_name, extension, dimensions, width, height, hwstring_small, array of intermediate sizes" type="array">
5397
  <type by_reference="false">array</type>
5398
  </tag>
5399
  </docblock>
5400
- <argument line="1235">
5401
  <name>$upload_dir</name>
5402
  <default><![CDATA[]]></default>
5403
  <type/>
5404
  </argument>
5405
- <argument line="1235">
5406
  <name>$wp_attached_files</name>
5407
  <default><![CDATA[]]></default>
5408
  <type/>
5409
  </argument>
5410
- <argument line="1235">
5411
  <name>$wp_attachment_metadata</name>
5412
  <default><![CDATA[]]></default>
5413
  <type/>
5414
  </argument>
5415
- <argument line="1235">
5416
  <name>$post_id</name>
5417
  <default><![CDATA[]]></default>
5418
  <type/>
5419
  </argument>
5420
  </method>
5421
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1304" package="Media Library Assistant">
5422
  <name>_evaluate_post_information</name>
5423
  <full_name>_evaluate_post_information</full_name>
5424
- <docblock line="1293">
5425
  <description><![CDATA[Evaluate post information for custom field mapping]]></description>
5426
  <long-description><![CDATA[]]></long-description>
5427
- <tag line="1293" name="since" description="1.40"/>
5428
- <tag line="1293" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
5429
  <type by_reference="false">integer</type>
5430
  </tag>
5431
- <tag line="1293" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
5432
  <type by_reference="false">string</type>
5433
  </tag>
5434
- <tag line="1293" name="param" description="data source name ( post_date or post_parent )" type="string" variable="$data_source">
5435
  <type by_reference="false">string</type>
5436
  </tag>
5437
- <tag line="1293" name="return" description="'post_date' =&gt; (string) upload date, 'post_parent' =&gt; (integer) ID of parent or zero )" type="mixed">
5438
  <type by_reference="false">mixed</type>
5439
  </tag>
5440
  </docblock>
5441
- <argument line="1304">
5442
  <name>$post_id</name>
5443
  <default><![CDATA[]]></default>
5444
  <type/>
5445
  </argument>
5446
- <argument line="1304">
5447
  <name>$category</name>
5448
  <default><![CDATA[]]></default>
5449
  <type/>
5450
  </argument>
5451
- <argument line="1304">
5452
  <name>$data_source</name>
5453
  <default><![CDATA[]]></default>
5454
  <type/>
5455
  </argument>
5456
  </method>
5457
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1340" package="Media Library Assistant">
5458
  <name>_evaluate_array_result</name>
5459
  <full_name>_evaluate_array_result</full_name>
5460
- <docblock line="1329">
5461
  <description><![CDATA[Evaluate post information for custom field mapping]]></description>
5462
  <long-description><![CDATA[]]></long-description>
5463
- <tag line="1329" name="since" description="1.40"/>
5464
- <tag line="1329" name="param" description="field value(s)" type="array" variable="$value">
5465
  <type by_reference="false">array</type>
5466
  </tag>
5467
- <tag line="1329" name="param" description="format option text|single|export|array|multi" type="string" variable="$option">
5468
  <type by_reference="false">string</type>
5469
  </tag>
5470
- <tag line="1329" name="param" description="keep existing value(s) - for 'multi' option" type="boolean" variable="$keep_existing">
5471
  <type by_reference="false">boolean</type>
5472
  </tag>
5473
- <tag line="1329" name="return" description="array for option = array|multi else string" type="mixed">
5474
  <type by_reference="false">mixed</type>
5475
  </tag>
5476
  </docblock>
5477
- <argument line="1340">
5478
  <name>$value</name>
5479
  <default><![CDATA[]]></default>
5480
  <type/>
5481
  </argument>
5482
- <argument line="1340">
5483
  <name>$option</name>
5484
  <default><![CDATA[]]></default>
5485
  <type/>
5486
  </argument>
5487
- <argument line="1340">
5488
  <name>$keep_existing</name>
5489
  <default><![CDATA[]]></default>
5490
  <type/>
5491
  </argument>
5492
  </method>
5493
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1376" package="Media Library Assistant">
5494
  <name>_evaluate_data_source</name>
5495
  <full_name>_evaluate_data_source</full_name>
5496
- <docblock line="1364">
5497
  <description><![CDATA[Evaluate custom field mapping data source]]></description>
5498
  <long-description><![CDATA[]]></long-description>
5499
- <tag line="1364" name="since" description="1.10"/>
5500
- <tag line="1364" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
5501
  <type by_reference="false">integer</type>
5502
  </tag>
5503
- <tag line="1364" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
5504
  <type by_reference="false">string</type>
5505
  </tag>
5506
- <tag line="1364" name="param" description="data source specification ( name, data_source, keep_existing, format, mla_column, quick_edit, bulk_edit, meta_name, no_null, option )" type="array" variable="$data_value">
5507
  <type by_reference="false">array</type>
5508
  </tag>
5509
- <tag line="1364" name="param" description="(optional) attachment_metadata, default NULL (use current postmeta database value)" type="array" variable="$attachment_metadata">
5510
  <type by_reference="false">array</type>
5511
  </tag>
5512
- <tag line="1364" name="return" description="data source value" type="string">
5513
  <type by_reference="false">string</type>
5514
  </tag>
5515
  </docblock>
5516
- <argument line="1376">
5517
  <name>$post_id</name>
5518
  <default><![CDATA[]]></default>
5519
  <type/>
5520
  </argument>
5521
- <argument line="1376">
5522
  <name>$category</name>
5523
  <default><![CDATA[]]></default>
5524
  <type/>
5525
  </argument>
5526
- <argument line="1376">
5527
  <name>$data_value</name>
5528
  <default><![CDATA[]]></default>
5529
  <type/>
5530
  </argument>
5531
- <argument line="1376">
5532
  <name>$attachment_metadata</name>
5533
  <default><![CDATA[NULL]]></default>
5534
  <type/>
5535
  </argument>
5536
  </method>
5537
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1716" package="Media Library Assistant">
5538
  <name>mla_evaluate_custom_field_mapping</name>
5539
  <full_name>mla_evaluate_custom_field_mapping</full_name>
5540
- <docblock line="1704">
5541
  <description><![CDATA[Evaluate custom field mapping updates for a post]]></description>
5542
  <long-description><![CDATA[]]></long-description>
5543
- <tag line="1704" name="since" description="1.10"/>
5544
- <tag line="1704" name="param" description="post ID to be evaluated" type="integer" variable="$post_id">
5545
  <type by_reference="false">integer</type>
5546
  </tag>
5547
- <tag line="1704" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
5548
  <type by_reference="false">string</type>
5549
  </tag>
5550
- <tag line="1704" name="param" description="(optional) custom_field_mapping values, default NULL (use current option value)" type="array" variable="$settings">
5551
  <type by_reference="false">array</type>
5552
  </tag>
5553
- <tag line="1704" name="param" description="(optional) attachment_metadata, default NULL (use current postmeta database value)" type="array" variable="$attachment_metadata">
5554
  <type by_reference="false">array</type>
5555
  </tag>
5556
- <tag line="1704" name="return" description="Updates suitable for MLAData::mla_update_single_item, if any" type="array">
5557
  <type by_reference="false">array</type>
5558
  </tag>
5559
  </docblock>
5560
- <argument line="1716">
5561
  <name>$post_id</name>
5562
  <default><![CDATA[]]></default>
5563
  <type/>
5564
  </argument>
5565
- <argument line="1716">
5566
  <name>$category</name>
5567
  <default><![CDATA[]]></default>
5568
  <type/>
5569
  </argument>
5570
- <argument line="1716">
5571
  <name>$settings</name>
5572
  <default><![CDATA[NULL]]></default>
5573
  <type/>
5574
  </argument>
5575
- <argument line="1716">
5576
  <name>$attachment_metadata</name>
5577
  <default><![CDATA[NULL]]></default>
5578
  <type/>
5579
  </argument>
5580
  </method>
5581
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1785" package="Media Library Assistant">
5582
  <name>_compose_custom_field_option_list</name>
5583
  <full_name>_compose_custom_field_option_list</full_name>
5584
- <docblock line="1774">
5585
  <description><![CDATA[Compose a Custom Field Options list with current selection]]></description>
5586
  <long-description><![CDATA[]]></long-description>
5587
- <tag line="1774" name="since" description="1.10"/>
5588
- <tag line="1774" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5589
- <tag line="1774" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
5590
  <type by_reference="false">string</type>
5591
  </tag>
5592
- <tag line="1774" name="param" description="optional list of terms to exclude from the list" type="array" variable="$blacklist">
5593
  <type by_reference="false">array</type>
5594
  </tag>
5595
- <tag line="1774" name="return" description="HTML markup with select field options" type="string">
5596
  <type by_reference="false">string</type>
5597
  </tag>
5598
  </docblock>
5599
- <argument line="1785">
5600
  <name>$selection</name>
5601
  <default><![CDATA['none']]></default>
5602
  <type/>
5603
  </argument>
5604
- <argument line="1785">
5605
  <name>$blacklist</name>
5606
  <default><![CDATA[array()]]></default>
5607
  <type/>
5608
  </argument>
5609
  </method>
5610
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1879" package="Media Library Assistant">
5611
  <name>_compose_data_source_option_list</name>
5612
  <full_name>_compose_data_source_option_list</full_name>
5613
- <docblock line="1869">
5614
  <description><![CDATA[Compose a (Custom Field) Data Source Options list with current selection]]></description>
5615
  <long-description><![CDATA[]]></long-description>
5616
- <tag line="1869" name="since" description="1.10"/>
5617
- <tag line="1869" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5618
- <tag line="1869" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
5619
  <type by_reference="false">string</type>
5620
  </tag>
5621
- <tag line="1869" name="return" description="HTML markup with select field options" type="string">
5622
  <type by_reference="false">string</type>
5623
  </tag>
5624
  </docblock>
5625
- <argument line="1879">
5626
  <name>$selection</name>
5627
  <default><![CDATA['none']]></default>
5628
  <type/>
5629
  </argument>
5630
  </method>
5631
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1937" package="Media Library Assistant">
5632
  <name>_update_custom_field_mapping</name>
5633
  <full_name>_update_custom_field_mapping</full_name>
5634
- <docblock line="1927">
5635
  <description><![CDATA[Update custom field mappings]]></description>
5636
  <long-description><![CDATA[]]></long-description>
5637
- <tag line="1927" name="since" description="1.10"/>
5638
- <tag line="1927" name="param" description="current custom_field_mapping values" type="array" variable="$current_values">
5639
  <type by_reference="false">array</type>
5640
  </tag>
5641
- <tag line="1927" name="param" description="new values" type="array" variable="$new_values">
5642
  <type by_reference="false">array</type>
5643
  </tag>
5644
- <tag line="1927" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
5645
  <type by_reference="false">array</type>
5646
  </tag>
5647
  </docblock>
5648
- <argument line="1937">
5649
  <name>$current_values</name>
5650
  <default><![CDATA[]]></default>
5651
  <type/>
5652
  </argument>
5653
- <argument line="1937">
5654
  <name>$new_values</name>
5655
  <default><![CDATA[]]></default>
5656
  <type/>
5657
  </argument>
5658
  </method>
5659
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2134" package="Media Library Assistant">
5660
  <name>mla_custom_field_option_handler</name>
5661
  <full_name>mla_custom_field_option_handler</full_name>
5662
- <docblock line="2121">
5663
  <description><![CDATA[Render and manage custom field mapping options]]></description>
5664
  <long-description><![CDATA[]]></long-description>
5665
- <tag line="2121" name="since" description="1.10"/>
5666
- <tag line="2121" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5667
- <tag line="2121" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
5668
  <type by_reference="false">string</type>
5669
  </tag>
5670
- <tag line="2121" name="param" description="option name, e.g., 'custom_field_mapping'" type="string" variable="$key">
5671
  <type by_reference="false">string</type>
5672
  </tag>
5673
- <tag line="2121" name="param" description="option parameters" type="array" variable="$value">
5674
  <type by_reference="false">array</type>
5675
  </tag>
5676
- <tag line="2121" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
5677
  <type by_reference="false">array</type>
5678
  </tag>
5679
- <tag line="2121" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
5680
  <type by_reference="false">string</type>
5681
  </tag>
5682
  </docblock>
5683
- <argument line="2134">
5684
  <name>$action</name>
5685
  <default><![CDATA[]]></default>
5686
  <type/>
5687
  </argument>
5688
- <argument line="2134">
5689
  <name>$key</name>
5690
  <default><![CDATA[]]></default>
5691
  <type/>
5692
  </argument>
5693
- <argument line="2134">
5694
  <name>$value</name>
5695
  <default><![CDATA[]]></default>
5696
  <type/>
5697
  </argument>
5698
- <argument line="2134">
5699
  <name>$args</name>
5700
  <default><![CDATA[null]]></default>
5701
  <type/>
5702
  </argument>
5703
  </method>
5704
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2326" package="Media Library Assistant">
5705
  <name>mla_evaluate_iptc_exif_mapping</name>
5706
  <full_name>mla_evaluate_iptc_exif_mapping</full_name>
5707
- <docblock line="2315">
5708
  <description><![CDATA[Evaluate IPTC/EXIF mapping updates for a post]]></description>
5709
  <long-description><![CDATA[]]></long-description>
5710
- <tag line="2315" name="since" description="1.00"/>
5711
- <tag line="2315" name="param" description="post object with current values" type="object" variable="$post">
5712
  <type by_reference="false">object</type>
5713
  </tag>
5714
- <tag line="2315" name="param" description="category to evaluate against, e.g., iptc_exif_standard_mapping or iptc_exif_mapping" type="string" variable="$category">
5715
  <type by_reference="false">string</type>
5716
  </tag>
5717
- <tag line="2315" name="param" description="(optional) iptc_exif_mapping values, default - current option value" type="array" variable="$settings">
5718
  <type by_reference="false">array</type>
5719
  </tag>
5720
- <tag line="2315" name="return" description="Updates suitable for MLAData::mla_update_single_item, if any" type="array">
5721
  <type by_reference="false">array</type>
5722
  </tag>
5723
  </docblock>
5724
- <argument line="2326">
5725
  <name>$post</name>
5726
  <default><![CDATA[]]></default>
5727
  <type/>
5728
  </argument>
5729
- <argument line="2326">
5730
  <name>$category</name>
5731
  <default><![CDATA[]]></default>
5732
  <type/>
5733
  </argument>
5734
- <argument line="2326">
5735
  <name>$settings</name>
5736
  <default><![CDATA[NULL]]></default>
5737
  <type/>
5738
  </argument>
5739
  </method>
5740
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2499" package="Media Library Assistant">
5741
  <name>_compose_iptc_option_list</name>
5742
  <full_name>_compose_iptc_option_list</full_name>
5743
- <docblock line="2489">
5744
  <description><![CDATA[Compose an IPTC Options list with current selection]]></description>
5745
  <long-description><![CDATA[]]></long-description>
5746
- <tag line="2489" name="since" description="1.00"/>
5747
- <tag line="2489" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5748
- <tag line="2489" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
5749
  <type by_reference="false">string</type>
5750
  </tag>
5751
- <tag line="2489" name="return" description="HTML markup with select field options" type="string">
5752
  <type by_reference="false">string</type>
5753
  </tag>
5754
  </docblock>
5755
- <argument line="2499">
5756
  <name>$selection</name>
5757
  <default><![CDATA['none']]></default>
5758
  <type/>
5759
  </argument>
5760
  </method>
5761
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2532" package="Media Library Assistant">
5762
  <name>_compose_parent_option_list</name>
5763
  <full_name>_compose_parent_option_list</full_name>
5764
- <docblock line="2521">
5765
  <description><![CDATA[Compose an hierarchical taxonomy Parent options list with current selection]]></description>
5766
  <long-description><![CDATA[]]></long-description>
5767
- <tag line="2521" name="since" description="1.00"/>
5768
- <tag line="2521" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5769
- <tag line="2521" name="param" description="taxonomy slug" type="string" variable="$taxonomy">
5770
  <type by_reference="false">string</type>
5771
  </tag>
5772
- <tag line="2521" name="param" description="current selection or 0 (zero, default)" type="integer" variable="$selection">
5773
  <type by_reference="false">integer</type>
5774
  </tag>
5775
- <tag line="2521" name="return" description="HTML markup with select field options" type="string">
5776
  <type by_reference="false">string</type>
5777
  </tag>
5778
  </docblock>
5779
- <argument line="2532">
5780
  <name>$taxonomy</name>
5781
  <default><![CDATA[]]></default>
5782
  <type/>
5783
  </argument>
5784
- <argument line="2532">
5785
  <name>$selection</name>
5786
  <default><![CDATA[0]]></default>
5787
  <type/>
5788
  </argument>
5789
  </method>
5790
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2566" package="Media Library Assistant">
5791
  <name>_update_iptc_exif_standard_mapping</name>
5792
  <full_name>_update_iptc_exif_standard_mapping</full_name>
5793
- <docblock line="2556">
5794
  <description><![CDATA[Update Standard field portion of IPTC/EXIF mappings]]></description>
5795
  <long-description><![CDATA[]]></long-description>
5796
- <tag line="2556" name="since" description="1.00"/>
5797
- <tag line="2556" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
5798
  <type by_reference="false">array</type>
5799
  </tag>
5800
- <tag line="2556" name="param" description="new values" type="array" variable="$new_values">
5801
  <type by_reference="false">array</type>
5802
  </tag>
5803
- <tag line="2556" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
5804
  <type by_reference="false">array</type>
5805
  </tag>
5806
  </docblock>
5807
- <argument line="2566">
5808
  <name>$current_values</name>
5809
  <default><![CDATA[]]></default>
5810
  <type/>
5811
  </argument>
5812
- <argument line="2566">
5813
  <name>$new_values</name>
5814
  <default><![CDATA[]]></default>
5815
  <type/>
5816
  </argument>
5817
  </method>
5818
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2645" package="Media Library Assistant">
5819
  <name>_update_iptc_exif_taxonomy_mapping</name>
5820
  <full_name>_update_iptc_exif_taxonomy_mapping</full_name>
5821
- <docblock line="2635">
5822
  <description><![CDATA[Update Taxonomy term portion of IPTC/EXIF mappings]]></description>
5823
  <long-description><![CDATA[]]></long-description>
5824
- <tag line="2635" name="since" description="1.00"/>
5825
- <tag line="2635" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
5826
  <type by_reference="false">array</type>
5827
  </tag>
5828
- <tag line="2635" name="param" description="new values" type="array" variable="$new_values">
5829
  <type by_reference="false">array</type>
5830
  </tag>
5831
- <tag line="2635" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
5832
  <type by_reference="false">array</type>
5833
  </tag>
5834
  </docblock>
5835
- <argument line="2645">
5836
  <name>$current_values</name>
5837
  <default><![CDATA[]]></default>
5838
  <type/>
5839
  </argument>
5840
- <argument line="2645">
5841
  <name>$new_values</name>
5842
  <default><![CDATA[]]></default>
5843
  <type/>
5844
  </argument>
5845
  </method>
5846
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2737" package="Media Library Assistant">
5847
  <name>_update_iptc_exif_custom_mapping</name>
5848
  <full_name>_update_iptc_exif_custom_mapping</full_name>
5849
- <docblock line="2727">
5850
  <description><![CDATA[Update Custom field portion of IPTC/EXIF mappings]]></description>
5851
  <long-description><![CDATA[]]></long-description>
5852
- <tag line="2727" name="since" description="1.00"/>
5853
- <tag line="2727" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
5854
  <type by_reference="false">array</type>
5855
  </tag>
5856
- <tag line="2727" name="param" description="new values" type="array" variable="$new_values">
5857
  <type by_reference="false">array</type>
5858
  </tag>
5859
- <tag line="2727" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
5860
  <type by_reference="false">array</type>
5861
  </tag>
5862
  </docblock>
5863
- <argument line="2737">
5864
  <name>$current_values</name>
5865
  <default><![CDATA[]]></default>
5866
  <type/>
5867
  </argument>
5868
- <argument line="2737">
5869
  <name>$new_values</name>
5870
  <default><![CDATA[]]></default>
5871
  <type/>
5872
  </argument>
5873
  </method>
5874
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2861" package="Media Library Assistant">
5875
  <name>_get_custom_field_names</name>
5876
  <full_name>_get_custom_field_names</full_name>
5877
- <docblock line="2851">
5878
  <description><![CDATA[Generate a list of all (post) Custom Field names]]></description>
5879
  <long-description><![CDATA[<p>The list will include any Custom Field and IPTC/EXIF rules that
5880
  haven't been mapped to any attachments, yet.</p>]]></long-description>
5881
- <tag line="2851" name="since" description="1.00"/>
5882
- <tag line="2851" name="return" description="Custom field names from the postmeta table and MLA rules" type="array">
5883
  <type by_reference="false">array</type>
5884
  </tag>
5885
  </docblock>
5886
  </method>
5887
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2905" package="Media Library Assistant">
5888
  <name>mla_iptc_exif_option_handler</name>
5889
  <full_name>mla_iptc_exif_option_handler</full_name>
5890
- <docblock line="2892">
5891
  <description><![CDATA[Render and manage iptc/exif support options]]></description>
5892
  <long-description><![CDATA[]]></long-description>
5893
- <tag line="2892" name="since" description="1.00"/>
5894
- <tag line="2892" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5895
- <tag line="2892" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
5896
  <type by_reference="false">string</type>
5897
  </tag>
5898
- <tag line="2892" name="param" description="option name, e.g., 'iptc_exif_mapping'" type="string" variable="$key">
5899
  <type by_reference="false">string</type>
5900
  </tag>
5901
- <tag line="2892" name="param" description="option parameters" type="array" variable="$value">
5902
  <type by_reference="false">array</type>
5903
  </tag>
5904
- <tag line="2892" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
5905
  <type by_reference="false">array</type>
5906
  </tag>
5907
- <tag line="2892" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
5908
  <type by_reference="false">string</type>
5909
  </tag>
5910
  </docblock>
5911
- <argument line="2905">
5912
  <name>$action</name>
5913
  <default><![CDATA[]]></default>
5914
  <type/>
5915
  </argument>
5916
- <argument line="2905">
5917
  <name>$key</name>
5918
  <default><![CDATA[]]></default>
5919
  <type/>
5920
  </argument>
5921
- <argument line="2905">
5922
  <name>$value</name>
5923
  <default><![CDATA[]]></default>
5924
  <type/>
5925
  </argument>
5926
- <argument line="2905">
5927
  <name>$args</name>
5928
  <default><![CDATA[null]]></default>
5929
  <type/>
@@ -5931,7 +6509,7 @@ haven't been mapped to any attachments, yet.</p>]]></long-description>
5931
  </method>
5932
  </class>
5933
  </file>
5934
- <file path="includes\class-mla-settings.php" hash="9078a7c67bbf4dba0cb2ceeb9b4253ba" package="Media Library Assistant">
5935
  <docblock line="2">
5936
  <description><![CDATA[Manages the settings page to edit the plugin option settings]]></description>
5937
  <long-description><![CDATA[]]></long-description>
@@ -6021,23 +6599,23 @@ haven't been mapped to any attachments, yet.</p>]]></long-description>
6021
  </tag>
6022
  </docblock>
6023
  </property>
6024
- <property final="false" static="true" visibility="private" line="795" namespace="global" package="Media Library Assistant">
6025
  <name>$page_template_array</name>
6026
  <default><![CDATA[null]]></default>
6027
- <docblock line="785">
6028
  <description><![CDATA[Template file for the Settings page(s) and parts]]></description>
6029
  <long-description><![CDATA[<p>This array contains all of the template parts for the Settings page(s). The array is built once
6030
  each page load and cached for subsequent use.</p>]]></long-description>
6031
- <tag line="785" name="since" description="0.80"/>
6032
- <tag line="785" name="var" description="" type="array">
6033
  <type by_reference="false">array</type>
6034
  </tag>
6035
  </docblock>
6036
  </property>
6037
- <property final="false" static="true" visibility="private" line="811" namespace="global" package="Media Library Assistant">
6038
  <name>$mla_tablist</name>
6039
  <default><![CDATA[array('general' => array('title' => 'General', 'render' => '_compose_general_tab'), 'view' => array('title' => 'Views', 'render' => '_compose_view_tab'), 'upload' => array('title' => 'Uploads', 'render' => '_compose_upload_tab'), 'mla_gallery' => array('title' => 'MLA Gallery', 'render' => '_compose_mla_gallery_tab'), 'custom_field' => array('title' => 'Custom Fields', 'render' => '_compose_custom_field_tab'), 'iptc_exif' => array('title' => 'IPTC/EXIF', 'render' => '_compose_iptc_exif_tab'), 'documentation' => array('title' => 'Documentation', 'render' => '_compose_documentation_tab'))]]></default>
6040
- <docblock line="797">
6041
  <description><![CDATA[Definitions for Settings page tab ids, titles and handlers
6042
  Each tab is defined by an array with the following elements:]]></description>
6043
  <long-description><![CDATA[<p>array key => HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)</p>
@@ -6045,8 +6623,8 @@ Each tab is defined by an array with the following elements:]]></description>
6045
  <p>title => tab label / heading text
6046
  render => rendering function for tab messages and content. Usage:
6047
  $tab_content = <a href="">'render'</a>;</p>]]></long-description>
6048
- <tag line="797" name="since" description="0.80"/>
6049
- <tag line="797" name="var" description="" type="array">
6050
  <type by_reference="false">array</type>
6051
  </tag>
6052
  </docblock>
@@ -6145,685 +6723,721 @@ add settings link in the Plugins section entry for MLA.]]></description>
6145
  </tag>
6146
  </docblock>
6147
  </method>
6148
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="337" package="Media Library Assistant">
6149
  <name>mla_add_menu_options_action</name>
6150
  <full_name>mla_add_menu_options_action</full_name>
6151
- <docblock line="330">
6152
  <description><![CDATA[Add the "XX Entries per page" filter to the Screen Options tab]]></description>
6153
  <long-description><![CDATA[]]></long-description>
6154
- <tag line="330" name="since" description="1.40"/>
6155
- <tag line="330" name="return" description="" type="void">
6156
  <type by_reference="false">void</type>
6157
  </tag>
6158
  </docblock>
6159
  </method>
6160
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="382" package="Media Library Assistant">
6161
  <name>mla_add_help_tab_action</name>
6162
  <full_name>mla_add_help_tab_action</full_name>
6163
- <docblock line="375">
6164
  <description><![CDATA[Add contextual help tabs to all the MLA pages]]></description>
6165
  <long-description><![CDATA[]]></long-description>
6166
- <tag line="375" name="since" description="1.40"/>
6167
- <tag line="375" name="return" description="" type="void">
6168
  <type by_reference="false">void</type>
6169
  </tag>
6170
  </docblock>
6171
  </method>
6172
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="453" package="Media Library Assistant">
6173
  <name>mla_screen_options_show_screen_filter</name>
6174
  <full_name>mla_screen_options_show_screen_filter</full_name>
6175
- <docblock line="443">
6176
  <description><![CDATA[Only show screen options on the View and Upload tabs]]></description>
6177
  <long-description><![CDATA[]]></long-description>
6178
- <tag line="443" name="since" description="1.40"/>
6179
- <tag line="443" name="param" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean" variable="$show_screen">
6180
  <type by_reference="false">boolean</type>
6181
  </tag>
6182
- <tag line="443" name="param" description="Name of the page being loaded" type="string" variable="$this_screen">
6183
  <type by_reference="false">string</type>
6184
  </tag>
6185
- <tag line="443" name="return" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean">
6186
  <type by_reference="false">boolean</type>
6187
  </tag>
6188
  </docblock>
6189
- <argument line="453">
6190
  <name>$show_screen</name>
6191
  <default><![CDATA[]]></default>
6192
  <type/>
6193
  </argument>
6194
- <argument line="453">
6195
  <name>$this_screen</name>
6196
  <default><![CDATA[]]></default>
6197
  <type/>
6198
  </argument>
6199
  </method>
6200
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="473" package="Media Library Assistant">
6201
  <name>mla_set_screen_option_filter</name>
6202
  <full_name>mla_set_screen_option_filter</full_name>
6203
- <docblock line="462">
6204
  <description><![CDATA[Save the "Views/Uploads per page" option set by this user]]></description>
6205
  <long-description><![CDATA[]]></long-description>
6206
- <tag line="462" name="since" description="1.40"/>
6207
- <tag line="462" name="param" description="false or value returned by previous filter" type="mixed" variable="$status">
6208
  <type by_reference="false">mixed</type>
6209
  </tag>
6210
- <tag line="462" name="param" description="Name of the option being changed" type="string" variable="$option">
6211
  <type by_reference="false">string</type>
6212
  </tag>
6213
- <tag line="462" name="param" description="New value of the option" type="string" variable="$value">
6214
  <type by_reference="false">string</type>
6215
  </tag>
6216
- <tag line="462" name="return" description="New value if this is our option, otherwise nothing" type="string|void">
6217
  <type by_reference="false">string</type>
6218
  <type by_reference="false">void</type>
6219
  </tag>
6220
  </docblock>
6221
- <argument line="473">
6222
  <name>$status</name>
6223
  <default><![CDATA[]]></default>
6224
  <type/>
6225
  </argument>
6226
- <argument line="473">
6227
  <name>$option</name>
6228
  <default><![CDATA[]]></default>
6229
  <type/>
6230
  </argument>
6231
- <argument line="473">
6232
  <name>$value</name>
6233
  <default><![CDATA[]]></default>
6234
  <type/>
6235
  </argument>
6236
  </method>
6237
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="489" package="Media Library Assistant">
6238
  <name>mla_inline_edit_view_action</name>
6239
  <full_name>mla_inline_edit_view_action</full_name>
6240
- <docblock line="480">
6241
  <description><![CDATA[Ajax handler for Post MIME Types inline editing (quick and bulk edit)]]></description>
6242
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
6243
- <tag line="480" name="since" description="1.40"/>
6244
- <tag line="480" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
6245
  <type by_reference="false">void</type>
6246
  </tag>
6247
  </docblock>
6248
  </method>
6249
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="531" package="Media Library Assistant">
6250
  <name>mla_inline_edit_upload_action</name>
6251
  <full_name>mla_inline_edit_upload_action</full_name>
6252
- <docblock line="522">
6253
  <description><![CDATA[Ajax handler for Upload MIME Types inline editing (quick and bulk edit)]]></description>
6254
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
6255
- <tag line="522" name="since" description="1.40"/>
6256
- <tag line="522" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
6257
  <type by_reference="false">void</type>
6258
  </tag>
6259
  </docblock>
6260
  </method>
6261
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="570" package="Media Library Assistant">
6262
  <name>mla_add_plugin_settings_link_filter</name>
6263
  <full_name>mla_add_plugin_settings_link_filter</full_name>
6264
- <docblock line="560">
6265
  <description><![CDATA[Add the "Settings" link to the MLA entry in the Plugins section]]></description>
6266
  <long-description><![CDATA[]]></long-description>
6267
- <tag line="560" name="since" description="0.1"/>
6268
- <tag line="560" name="param" description="array of links for the Plugin, e.g., &quot;Activate&quot;" type="array" variable="$links">
6269
  <type by_reference="false">array</type>
6270
  </tag>
6271
- <tag line="560" name="param" description="Directory and name of the plugin Index file" type="string" variable="$file">
6272
  <type by_reference="false">string</type>
6273
  </tag>
6274
- <tag line="560" name="return" description="Updated array of links for the Plugin" type="array">
6275
  <type by_reference="false">array</type>
6276
  </tag>
6277
  </docblock>
6278
- <argument line="570">
6279
  <name>$links</name>
6280
  <default><![CDATA[]]></default>
6281
  <type/>
6282
  </argument>
6283
- <argument line="570">
6284
  <name>$file</name>
6285
  <default><![CDATA[]]></default>
6286
  <type/>
6287
  </argument>
6288
  </method>
6289
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="590" package="Media Library Assistant">
6290
  <name>_update_option_row</name>
6291
  <full_name>_update_option_row</full_name>
6292
- <docblock line="579">
6293
  <description><![CDATA[Update or delete a single MLA option value]]></description>
6294
  <long-description><![CDATA[]]></long-description>
6295
- <tag line="579" name="since" description="0.80"/>
6296
- <tag line="579" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6297
- <tag line="579" name="param" description="HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)" type="string" variable="$key">
6298
  <type by_reference="false">string</type>
6299
  </tag>
6300
- <tag line="579" name="param" description="Option parameters, e.g., 'type', 'std'" type="array" variable="$value">
6301
  <type by_reference="false">array</type>
6302
  </tag>
6303
- <tag line="579" name="return" description="HTML markup for the option's table row" type="string">
6304
  <type by_reference="false">string</type>
6305
  </tag>
6306
  </docblock>
6307
- <argument line="590">
6308
  <name>$key</name>
6309
  <default><![CDATA[]]></default>
6310
  <type/>
6311
  </argument>
6312
- <argument line="590">
6313
  <name>$value</name>
6314
  <default><![CDATA[]]></default>
6315
  <type/>
6316
  </argument>
6317
  </method>
6318
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="668" package="Media Library Assistant">
6319
  <name>_compose_option_row</name>
6320
  <full_name>_compose_option_row</full_name>
6321
- <docblock line="657">
6322
  <description><![CDATA[Compose the table row for a single MLA option]]></description>
6323
  <long-description><![CDATA[]]></long-description>
6324
- <tag line="657" name="since" description="0.80"/>
6325
- <tag line="657" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6326
- <tag line="657" name="param" description="HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)" type="string" variable="$key">
6327
  <type by_reference="false">string</type>
6328
  </tag>
6329
- <tag line="657" name="param" description="Option parameters, e.g., 'type', 'std'" type="array" variable="$value">
6330
  <type by_reference="false">array</type>
6331
  </tag>
6332
- <tag line="657" name="return" description="HTML markup for the option's table row" type="string">
6333
  <type by_reference="false">string</type>
6334
  </tag>
6335
  </docblock>
6336
- <argument line="668">
6337
  <name>$key</name>
6338
  <default><![CDATA[]]></default>
6339
  <type/>
6340
  </argument>
6341
- <argument line="668">
6342
  <name>$value</name>
6343
  <default><![CDATA[]]></default>
6344
  <type/>
6345
  </argument>
6346
  </method>
6347
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="831" package="Media Library Assistant">
6348
  <name>_compose_settings_tabs</name>
6349
  <full_name>_compose_settings_tabs</full_name>
6350
- <docblock line="821">
6351
  <description><![CDATA[Compose the navigation tabs for the Settings subpage]]></description>
6352
  <long-description><![CDATA[]]></long-description>
6353
- <tag line="821" name="since" description="0.80"/>
6354
- <tag line="821" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6355
- <tag line="821" name="param" description="Optional data-tab-id value for the active tab, default 'general'" type="string" variable="$active_tab">
6356
  <type by_reference="false">string</type>
6357
  </tag>
6358
- <tag line="821" name="return" description="HTML markup for the Settings subpage navigation tabs" type="string">
6359
  <type by_reference="false">string</type>
6360
  </tag>
6361
  </docblock>
6362
- <argument line="831">
6363
  <name>$active_tab</name>
6364
  <default><![CDATA['general']]></default>
6365
  <type/>
6366
  </argument>
6367
  </method>
6368
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="857" package="Media Library Assistant">
6369
  <name>_compose_general_tab</name>
6370
  <full_name>_compose_general_tab</full_name>
6371
- <docblock line="849">
6372
  <description><![CDATA[Compose the General tab content for the Settings subpage]]></description>
6373
  <long-description><![CDATA[]]></long-description>
6374
- <tag line="849" name="since" description="0.80"/>
6375
- <tag line="849" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6376
- <tag line="849" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6377
  <type by_reference="false">array</type>
6378
  </tag>
6379
  </docblock>
6380
  </method>
6381
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="942" package="Media Library Assistant">
6382
  <name>_current_bulk_action</name>
6383
  <full_name>_current_bulk_action</full_name>
6384
- <docblock line="935">
6385
  <description><![CDATA[Get the current action selected from the bulk actions dropdown]]></description>
6386
  <long-description><![CDATA[]]></long-description>
6387
- <tag line="935" name="since" description="1.40"/>
6388
- <tag line="935" name="return" description="The action name or False if no action was selected" type="string|false">
6389
  <type by_reference="false">string</type>
6390
  <type by_reference="false">false</type>
6391
  </tag>
6392
  </docblock>
6393
  </method>
6394
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="972" package="Media Library Assistant">
6395
  <name>_compose_edit_view_tab</name>
6396
  <full_name>_compose_edit_view_tab</full_name>
6397
- <docblock line="962">
6398
  <description><![CDATA[Compose the Edit View tab content for the Settings subpage]]></description>
6399
  <long-description><![CDATA[]]></long-description>
6400
- <tag line="962" name="since" description="1.40"/>
6401
- <tag line="962" name="param" description="data values for the item" type="array" variable="$view">
6402
  <type by_reference="false">array</type>
6403
  </tag>
6404
- <tag line="962" name="param" description="Display template" type="string" variable="$template">
6405
  <type by_reference="false">string</type>
6406
  </tag>
6407
- <tag line="962" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6408
  <type by_reference="false">array</type>
6409
  </tag>
6410
  </docblock>
6411
- <argument line="972">
6412
  <name>$view</name>
6413
  <default><![CDATA[]]></default>
6414
  <type/>
6415
  </argument>
6416
- <argument line="972">
6417
  <name>$template</name>
6418
  <default><![CDATA[]]></default>
6419
  <type/>
6420
  </argument>
6421
  </method>
6422
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1004" package="Media Library Assistant">
6423
  <name>_compose_view_tab</name>
6424
  <full_name>_compose_view_tab</full_name>
6425
- <docblock line="997">
6426
  <description><![CDATA[Compose the Post MIME Type Views tab content for the Settings subpage]]></description>
6427
  <long-description><![CDATA[]]></long-description>
6428
- <tag line="997" name="since" description="1.40"/>
6429
- <tag line="997" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6430
  <type by_reference="false">array</type>
6431
  </tag>
6432
  </docblock>
6433
  </method>
6434
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1228" package="Media Library Assistant">
6435
  <name>mla_get_icon_type_dropdown</name>
6436
  <full_name>mla_get_icon_type_dropdown</full_name>
6437
- <docblock line="1217">
6438
  <description><![CDATA[Get an HTML select element representing a list of icon types]]></description>
6439
  <long-description><![CDATA[]]></long-description>
6440
- <tag line="1217" name="since" description="1.40"/>
6441
- <tag line="1217" name="param" description="Display template array" type="array" variable="$templates">
6442
  <type by_reference="false">array</type>
6443
  </tag>
6444
- <tag line="1217" name="param" description="HTML name attribute value" type="string" variable="$name">
6445
  <type by_reference="false">string</type>
6446
  </tag>
6447
- <tag line="1217" name="param" description="currently selected Icon Type" type="string" variable="$selection">
6448
  <type by_reference="false">string</type>
6449
  </tag>
6450
- <tag line="1217" name="return" description="HTML select element or empty string on failure." type="string">
6451
  <type by_reference="false">string</type>
6452
  </tag>
6453
  </docblock>
6454
- <argument line="1228">
6455
  <name>$templates</name>
6456
  <default><![CDATA[]]></default>
6457
  <type/>
6458
  </argument>
6459
- <argument line="1228">
6460
  <name>$name</name>
6461
  <default><![CDATA[]]></default>
6462
  <type/>
6463
  </argument>
6464
- <argument line="1228">
6465
  <name>$selection</name>
6466
  <default><![CDATA['.none.']]></default>
6467
  <type/>
6468
  </argument>
6469
  </method>
6470
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1269" package="Media Library Assistant">
6471
  <name>_compose_edit_upload_tab</name>
6472
  <full_name>_compose_edit_upload_tab</full_name>
6473
- <docblock line="1259">
6474
  <description><![CDATA[Compose the Edit Upload type tab content for the Settings subpage]]></description>
6475
  <long-description><![CDATA[]]></long-description>
6476
- <tag line="1259" name="since" description="1.40"/>
6477
- <tag line="1259" name="param" description="data values for the item" type="array" variable="$item">
6478
  <type by_reference="false">array</type>
6479
  </tag>
6480
- <tag line="1259" name="param" description="Display template array" type="string" variable="$templates">
6481
  <type by_reference="false">string</type>
6482
  </tag>
6483
- <tag line="1259" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6484
  <type by_reference="false">array</type>
6485
  </tag>
6486
  </docblock>
6487
- <argument line="1269">
6488
  <name>$item</name>
6489
  <default><![CDATA[]]></default>
6490
  <type/>
6491
  </argument>
6492
- <argument line="1269">
6493
  <name>$templates</name>
6494
  <default><![CDATA[]]></default>
6495
  <type/>
6496
  </argument>
6497
  </method>
6498
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1303" package="Media Library Assistant">
6499
  <name>_compose_optional_upload_tab</name>
6500
  <full_name>_compose_optional_upload_tab</full_name>
6501
- <docblock line="1294">
6502
  <description><![CDATA[Compose the Optional File Upload MIME Types tab content for the Settings subpage]]></description>
6503
  <long-description><![CDATA[]]></long-description>
6504
- <tag line="1294" name="since" description="1.40"/>
6505
- <tag line="1294" name="param" description="Display templates" type="string" variable="$page_template_array">
6506
  <type by_reference="false">string</type>
6507
  </tag>
6508
- <tag line="1294" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6509
  <type by_reference="false">array</type>
6510
  </tag>
6511
  </docblock>
6512
- <argument line="1303">
6513
  <name>$page_template_array</name>
6514
  <default><![CDATA[]]></default>
6515
  <type/>
6516
  </argument>
6517
  </method>
6518
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1369" package="Media Library Assistant">
6519
  <name>_process_optional_upload_mime</name>
6520
  <full_name>_process_optional_upload_mime</full_name>
6521
- <docblock line="1360">
6522
  <description><![CDATA[Process an Optional Upload MIME Type selection]]></description>
6523
  <long-description><![CDATA[]]></long-description>
6524
- <tag line="1360" name="since" description="1.40"/>
6525
- <tag line="1360" name="param" description="MLA Optional Upload MIME Type ID" type="\intger" variable="$ID">
6526
  <type by_reference="false">\intger</type>
6527
  </tag>
6528
- <tag line="1360" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6529
  <type by_reference="false">array</type>
6530
  </tag>
6531
  </docblock>
6532
- <argument line="1369">
6533
  <name>$ID</name>
6534
  <default><![CDATA[]]></default>
6535
  <type/>
6536
  </argument>
6537
  </method>
6538
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1389" package="Media Library Assistant">
6539
  <name>_compose_upload_tab</name>
6540
  <full_name>_compose_upload_tab</full_name>
6541
- <docblock line="1382">
6542
  <description><![CDATA[Compose the File Upload MIME Types tab content for the Settings subpage]]></description>
6543
  <long-description><![CDATA[]]></long-description>
6544
- <tag line="1382" name="since" description="1.40"/>
6545
- <tag line="1382" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6546
  <type by_reference="false">array</type>
6547
  </tag>
6548
  </docblock>
6549
  </method>
6550
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1642" package="Media Library Assistant">
6551
  <name>_compose_mla_gallery_tab</name>
6552
  <full_name>_compose_mla_gallery_tab</full_name>
6553
- <docblock line="1634">
6554
  <description><![CDATA[Compose the MLA Gallery tab content for the Settings subpage]]></description>
6555
  <long-description><![CDATA[]]></long-description>
6556
- <tag line="1634" name="since" description="0.80"/>
6557
- <tag line="1634" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6558
- <tag line="1634" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6559
  <type by_reference="false">array</type>
6560
  </tag>
6561
  </docblock>
6562
  </method>
6563
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1945" package="Media Library Assistant">
6564
  <name>_compose_custom_field_tab</name>
6565
  <full_name>_compose_custom_field_tab</full_name>
6566
- <docblock line="1937">
6567
  <description><![CDATA[Compose the Custom Field tab content for the Settings subpage]]></description>
6568
  <long-description><![CDATA[]]></long-description>
6569
- <tag line="1937" name="since" description="1.10"/>
6570
- <tag line="1937" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6571
- <tag line="1937" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6572
  <type by_reference="false">array</type>
6573
  </tag>
6574
  </docblock>
6575
  </method>
6576
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2051" package="Media Library Assistant">
6577
  <name>_compose_iptc_exif_tab</name>
6578
  <full_name>_compose_iptc_exif_tab</full_name>
6579
- <docblock line="2043">
6580
  <description><![CDATA[Compose the IPTC/EXIF tab content for the Settings subpage]]></description>
6581
  <long-description><![CDATA[]]></long-description>
6582
- <tag line="2043" name="since" description="1.00"/>
6583
- <tag line="2043" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6584
- <tag line="2043" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6585
  <type by_reference="false">array</type>
6586
  </tag>
6587
  </docblock>
6588
  </method>
6589
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2159" package="Media Library Assistant">
6590
  <name>_compose_documentation_tab</name>
6591
  <full_name>_compose_documentation_tab</full_name>
6592
- <docblock line="2151">
6593
  <description><![CDATA[Compose the Documentation tab content for the Settings subpage]]></description>
6594
  <long-description><![CDATA[]]></long-description>
6595
- <tag line="2151" name="since" description="0.80"/>
6596
- <tag line="2151" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6597
- <tag line="2151" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6598
  <type by_reference="false">array</type>
6599
  </tag>
6600
  </docblock>
6601
  </method>
6602
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2178" package="Media Library Assistant">
6603
  <name>mla_render_settings_page</name>
6604
  <full_name>mla_render_settings_page</full_name>
6605
- <docblock line="2171">
6606
  <description><![CDATA[Render (echo) the "Media Library Assistant" subpage in the Settings section]]></description>
6607
  <long-description><![CDATA[]]></long-description>
6608
- <tag line="2171" name="since" description="0.1"/>
6609
- <tag line="2171" name="return" description="Echoes HTML markup for the Settings subpage" type="void">
6610
  <type by_reference="false">void</type>
6611
  </tag>
6612
  </docblock>
6613
  </method>
6614
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2236" package="Media Library Assistant">
6615
  <name>_save_gallery_settings</name>
6616
  <full_name>_save_gallery_settings</full_name>
6617
- <docblock line="2227">
6618
  <description><![CDATA[Save MLA Gallery settings to the options table]]></description>
6619
  <long-description><![CDATA[]]></long-description>
6620
- <tag line="2227" name="since" description="0.80"/>
6621
- <tag line="2227" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6622
- <tag line="2227" name="return" description="Message(s) reflecting the results of the operation" type="array">
6623
  <type by_reference="false">array</type>
6624
  </tag>
6625
  </docblock>
6626
  </method>
6627
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2479" package="Media Library Assistant">
6628
  <name>_save_view_settings</name>
6629
  <full_name>_save_view_settings</full_name>
6630
- <docblock line="2470">
6631
  <description><![CDATA[Save View settings to the options table]]></description>
6632
  <long-description><![CDATA[]]></long-description>
6633
- <tag line="2470" name="since" description="1.40"/>
6634
- <tag line="2470" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6635
- <tag line="2470" name="return" description="Message(s) reflecting the results of the operation" type="array">
6636
  <type by_reference="false">array</type>
6637
  </tag>
6638
  </docblock>
6639
  </method>
6640
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2510" package="Media Library Assistant">
6641
  <name>_save_upload_settings</name>
6642
  <full_name>_save_upload_settings</full_name>
6643
- <docblock line="2501">
6644
  <description><![CDATA[Save Upload settings to the options table]]></description>
6645
  <long-description><![CDATA[]]></long-description>
6646
- <tag line="2501" name="since" description="1.40"/>
6647
- <tag line="2501" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6648
- <tag line="2501" name="return" description="Message(s) reflecting the results of the operation" type="array">
6649
  <type by_reference="false">array</type>
6650
  </tag>
6651
  </docblock>
6652
  </method>
6653
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2546" package="Media Library Assistant">
6654
  <name>_process_custom_field_mapping</name>
6655
  <full_name>_process_custom_field_mapping</full_name>
6656
- <docblock line="2535">
6657
  <description><![CDATA[Process custom field settings against all image attachments
6658
  without saving the settings to the mla_option]]></description>
6659
  <long-description><![CDATA[]]></long-description>
6660
- <tag line="2535" name="since" description="1.10"/>
6661
- <tag line="2535" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6662
- <tag line="2535" name="param" description="| NULL specific custom_field_mapping values" type="array" variable="$settings">
6663
  <type by_reference="false">array</type>
6664
  </tag>
6665
- <tag line="2535" name="return" description="Message(s) reflecting the results of the operation" type="array">
6666
  <type by_reference="false">array</type>
6667
  </tag>
6668
  </docblock>
6669
- <argument line="2546">
6670
  <name>$settings</name>
6671
  <default><![CDATA[NULL]]></default>
6672
  <type/>
6673
  </argument>
6674
  </method>
6675
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2598" package="Media Library Assistant">
6676
  <name>_delete_custom_field</name>
6677
  <full_name>_delete_custom_field</full_name>
6678
- <docblock line="2589">
6679
  <description><![CDATA[Delete a custom field from the wp_postmeta table]]></description>
6680
  <long-description><![CDATA[]]></long-description>
6681
- <tag line="2589" name="since" description="1.10"/>
6682
- <tag line="2589" name="param" description="specific custom_field_mapping rule" type="array" variable="$value">
6683
  <type by_reference="false">array</type>
6684
  </tag>
6685
- <tag line="2589" name="return" description="Message(s) reflecting the results of the operation" type="array">
6686
  <type by_reference="false">array</type>
6687
  </tag>
6688
  </docblock>
6689
- <argument line="2598">
6690
  <name>$value</name>
6691
  <default><![CDATA[]]></default>
6692
  <type/>
6693
  </argument>
6694
  </method>
6695
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2622" package="Media Library Assistant">
6696
  <name>_save_custom_field_settings</name>
6697
  <full_name>_save_custom_field_settings</full_name>
6698
- <docblock line="2612">
6699
  <description><![CDATA[Save custom field settings to the options table]]></description>
6700
  <long-description><![CDATA[]]></long-description>
6701
- <tag line="2612" name="since" description="1.10"/>
6702
- <tag line="2612" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6703
- <tag line="2612" name="param" description="| NULL specific custom_field_mapping values" type="array" variable="$new_values">
6704
  <type by_reference="false">array</type>
6705
  </tag>
6706
- <tag line="2612" name="return" description="Message(s) reflecting the results of the operation" type="array">
6707
  <type by_reference="false">array</type>
6708
  </tag>
6709
  </docblock>
6710
- <argument line="2622">
6711
  <name>$new_values</name>
6712
  <default><![CDATA[NULL]]></default>
6713
  <type/>
6714
  </argument>
6715
  </method>
6716
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2662" package="Media Library Assistant">
6717
  <name>_process_iptc_exif_standard</name>
6718
  <full_name>_process_iptc_exif_standard</full_name>
6719
- <docblock line="2652">
6720
  <description><![CDATA[Process IPTC/EXIF standard field settings against all image attachments
6721
  without saving the settings to the mla_option]]></description>
6722
  <long-description><![CDATA[]]></long-description>
6723
- <tag line="2652" name="since" description="1.00"/>
6724
- <tag line="2652" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6725
- <tag line="2652" name="return" description="Message(s) reflecting the results of the operation" type="array">
6726
  <type by_reference="false">array</type>
6727
  </tag>
6728
  </docblock>
6729
  </method>
6730
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2714" package="Media Library Assistant">
6731
  <name>_process_iptc_exif_taxonomy</name>
6732
  <full_name>_process_iptc_exif_taxonomy</full_name>
6733
- <docblock line="2704">
6734
  <description><![CDATA[Process IPTC/EXIF taxonomy term settings against all image attachments
6735
  without saving the settings to the mla_option]]></description>
6736
  <long-description><![CDATA[]]></long-description>
6737
- <tag line="2704" name="since" description="1.00"/>
6738
- <tag line="2704" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6739
- <tag line="2704" name="return" description="Message(s) reflecting the results of the operation" type="array">
6740
  <type by_reference="false">array</type>
6741
  </tag>
6742
  </docblock>
6743
  </method>
6744
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2767" package="Media Library Assistant">
6745
  <name>_process_iptc_exif_custom</name>
6746
  <full_name>_process_iptc_exif_custom</full_name>
6747
- <docblock line="2755">
6748
  <description><![CDATA[Process IPTC/EXIF custom field settings against all image attachments
6749
  without saving the settings to the mla_option]]></description>
6750
  <long-description><![CDATA[]]></long-description>
6751
- <tag line="2755" name="since" description="1.00"/>
6752
- <tag line="2755" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6753
- <tag line="2755" name="param" description="| NULL specific iptc_exif_custom_mapping values" type="array" variable="$settings">
6754
  <type by_reference="false">array</type>
6755
  </tag>
6756
- <tag line="2755" name="return" description="Message(s) reflecting the results of the operation" type="array">
6757
  <type by_reference="false">array</type>
6758
  </tag>
6759
  </docblock>
6760
- <argument line="2767">
6761
  <name>$settings</name>
6762
  <default><![CDATA[NULL]]></default>
6763
  <type/>
6764
  </argument>
6765
  </method>
6766
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2825" package="Media Library Assistant">
6767
  <name>_save_iptc_exif_custom_settings</name>
6768
  <full_name>_save_iptc_exif_custom_settings</full_name>
6769
- <docblock line="2816">
6770
  <description><![CDATA[Save IPTC/EXIF custom field settings to the options table]]></description>
6771
  <long-description><![CDATA[]]></long-description>
6772
- <tag line="2816" name="since" description="1.30"/>
6773
- <tag line="2816" name="param" description="specific iptc_exif_custom_mapping values" type="array" variable="$new_values">
6774
  <type by_reference="false">array</type>
6775
  </tag>
6776
- <tag line="2816" name="return" description="Message(s) reflecting the results of the operation" type="array">
6777
  <type by_reference="false">array</type>
6778
  </tag>
6779
  </docblock>
6780
- <argument line="2825">
6781
  <name>$new_values</name>
6782
  <default><![CDATA[]]></default>
6783
  <type/>
6784
  </argument>
6785
  </method>
6786
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2841" package="Media Library Assistant">
6787
  <name>_save_iptc_exif_settings</name>
6788
  <full_name>_save_iptc_exif_settings</full_name>
6789
- <docblock line="2832">
6790
  <description><![CDATA[Save IPTC/EXIF settings to the options table]]></description>
6791
  <long-description><![CDATA[]]></long-description>
6792
- <tag line="2832" name="since" description="1.00"/>
6793
- <tag line="2832" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6794
- <tag line="2832" name="return" description="Message(s) reflecting the results of the operation" type="array">
6795
  <type by_reference="false">array</type>
6796
  </tag>
6797
  </docblock>
6798
  </method>
6799
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2878" package="Media Library Assistant">
6800
  <name>_save_general_settings</name>
6801
  <full_name>_save_general_settings</full_name>
6802
- <docblock line="2869">
6803
  <description><![CDATA[Save General settings to the options table]]></description>
6804
  <long-description><![CDATA[]]></long-description>
6805
- <tag line="2869" name="since" description="0.1"/>
6806
- <tag line="2869" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6807
- <tag line="2869" name="return" description="Message(s) reflecting the results of the operation" type="array">
6808
  <type by_reference="false">array</type>
6809
  </tag>
6810
  </docblock>
6811
  </method>
6812
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2936" package="Media Library Assistant">
6813
  <name>_reset_general_settings</name>
6814
  <full_name>_reset_general_settings</full_name>
6815
- <docblock line="2929">
6816
  <description><![CDATA[Delete saved settings, restoring default values]]></description>
6817
  <long-description><![CDATA[]]></long-description>
6818
- <tag line="2929" name="since" description="0.1"/>
6819
- <tag line="2929" name="return" description="Message(s) reflecting the results of the operation" type="array">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6820
  <type by_reference="false">array</type>
6821
  </tag>
6822
  </docblock>
6823
  </method>
6824
  </class>
6825
  </file>
6826
- <file path="includes\class-mla-shortcodes.php" hash="064c833a1ee7a44a0e9fd3e10a3d19c0" package="Media Library Assistant">
6827
  <docblock line="2">
6828
  <description><![CDATA[Media Library Assistant Shortcode handler(s)]]></description>
6829
  <long-description><![CDATA[]]></long-description>
@@ -6864,10 +7478,10 @@ without saving the settings to the mla_option]]></description>
6864
  </tag>
6865
  </docblock>
6866
  </property>
6867
- <property final="false" static="true" visibility="private" line="1464" namespace="global" package="Media Library Assistant">
6868
  <name>$query_parameters</name>
6869
  <default><![CDATA[array()]]></default>
6870
- <docblock line="1450">
6871
  <description><![CDATA[WP_Query filter "parameters"]]></description>
6872
  <long-description><![CDATA[<p>This array defines parameters for the query's where and orderby filters,
6873
  mla_shortcode_query_posts_where_filter and mla_shortcode_query_posts_orderby_filter.
@@ -6875,20 +7489,20 @@ The parameters are set up in the mla_get_shortcode_attachments function, and
6875
  any further logic required to translate those values is contained in the filter.</p>
6876
 
6877
  <p>Array index values are: orderby, post_parent</p>]]></long-description>
6878
- <tag line="1450" name="since" description="1.13"/>
6879
- <tag line="1450" name="var" description="" type="array">
6880
  <type by_reference="false">array</type>
6881
  </tag>
6882
  </docblock>
6883
  </property>
6884
- <property final="false" static="true" visibility="private" line="1573" namespace="global" package="Media Library Assistant">
6885
  <name>$data_selection_parameters</name>
6886
  <default><![CDATA[array('order' => 'ASC', 'orderby' => 'menu_order,ID', 'id' => NULL, 'ids' => array(), 'include' => array(), 'exclude' => array(), 'post_parent' => NULL, 'author' => NULL, 'author_name' => '', 'cat' => 0, 'category_name' => '', 'category__and' => array(), 'category__in' => array(), 'category__not_in' => array(), 'tag' => '', 'tag_id' => 0, 'tag__and' => array(), 'tag__in' => array(), 'tag__not_in' => array(), 'tag_slug__and' => array(), 'tag_slug__in' => array(), 'tax_operator' => '', 'tax_include_children' => true, 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image', 'nopaging' => true, 'numberposts' => 0, 'posts_per_page' => 0, 'posts_per_archive_page' => 0, 'paged' => NULL, 'offset' => NULL, 'mla_paginate_current' => NULL, 'mla_paginate_total' => NULL, 'meta_key' => '', 'meta_value' => '', 'meta_value_num' => NULL, 'meta_compare' => '', 'meta_query' => '', 's' => '')]]></default>
6887
- <docblock line="1566">
6888
  <description><![CDATA[Data selection parameters for the WP_Query in [mla_gallery]]]></description>
6889
  <long-description><![CDATA[]]></long-description>
6890
- <tag line="1566" name="since" description="1.30"/>
6891
- <tag line="1566" name="var" description="" type="array">
6892
  <type by_reference="false">array</type>
6893
  </tag>
6894
  </docblock>
@@ -6939,305 +7553,305 @@ Enhancements include many additional selection parameters and full taxonomy supp
6939
  <type/>
6940
  </argument>
6941
  </method>
6942
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1140" package="Media Library Assistant">
6943
  <name>_process_shortcode_parameter</name>
6944
  <full_name>_process_shortcode_parameter</full_name>
6945
- <docblock line="1130">
6946
  <description><![CDATA[Handles brace/bracket escaping and parses template for a shortcode parameter]]></description>
6947
  <long-description><![CDATA[]]></long-description>
6948
- <tag line="1130" name="since" description="1.14"/>
6949
- <tag line="1130" name="param" description="raw shortcode parameter, e.g., &quot;text {+field+} {brackets} \\{braces\\}&quot;" type="string" variable="$text">
6950
  <type by_reference="false">string</type>
6951
  </tag>
6952
- <tag line="1130" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
6953
  <type by_reference="false">string</type>
6954
  </tag>
6955
- <tag line="1130" name="return" description="query specification with HTML escape sequences and line breaks removed" type="string">
6956
  <type by_reference="false">string</type>
6957
  </tag>
6958
  </docblock>
6959
- <argument line="1140">
6960
  <name>$text</name>
6961
  <default><![CDATA[]]></default>
6962
  <type/>
6963
  </argument>
6964
- <argument line="1140">
6965
  <name>$markup_values</name>
6966
  <default><![CDATA[]]></default>
6967
  <type/>
6968
  </argument>
6969
  </method>
6970
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1159" package="Media Library Assistant">
6971
  <name>_paginate_links</name>
6972
  <full_name>_paginate_links</full_name>
6973
- <docblock line="1146">
6974
  <description><![CDATA[Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links']]></description>
6975
  <long-description><![CDATA[]]></long-description>
6976
- <tag line="1146" name="since" description="1.42"/>
6977
- <tag line="1146" name="param" description="value(s) for mla_output_type parameter" type="array" variable="$output_parameters">
6978
  <type by_reference="false">array</type>
6979
  </tag>
6980
- <tag line="1146" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
6981
  <type by_reference="false">string</type>
6982
  </tag>
6983
- <tag line="1146" name="param" description="merged default and passed shortcode parameter values" type="string" variable="$arguments">
6984
  <type by_reference="false">string</type>
6985
  </tag>
6986
- <tag line="1146" name="param" description="number of attachments in the gallery, without pagination" type="integer" variable="$found_rows">
6987
  <type by_reference="false">integer</type>
6988
  </tag>
6989
- <tag line="1146" name="param" description="output text so far, may include debug values" type="string" variable="$output">
6990
  <type by_reference="false">string</type>
6991
  </tag>
6992
- <tag line="1146" name="return" description="false or string with HTML for pagination output types" type="mixed">
6993
  <type by_reference="false">mixed</type>
6994
  </tag>
6995
  </docblock>
6996
- <argument line="1159">
6997
  <name>$output_parameters</name>
6998
  <default><![CDATA[]]></default>
6999
  <type/>
7000
  </argument>
7001
- <argument line="1159">
7002
  <name>$markup_values</name>
7003
  <default><![CDATA[]]></default>
7004
  <type/>
7005
  </argument>
7006
- <argument line="1159">
7007
  <name>$arguments</name>
7008
  <default><![CDATA[]]></default>
7009
  <type/>
7010
  </argument>
7011
- <argument line="1159">
7012
  <name>$found_rows</name>
7013
  <default><![CDATA[]]></default>
7014
  <type/>
7015
  </argument>
7016
- <argument line="1159">
7017
  <name>$output</name>
7018
  <default><![CDATA['']]></default>
7019
  <type/>
7020
  </argument>
7021
  </method>
7022
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1288" package="Media Library Assistant">
7023
  <name>_process_pagination_output_types</name>
7024
  <full_name>_process_pagination_output_types</full_name>
7025
- <docblock line="1274">
7026
  <description><![CDATA[Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links']]></description>
7027
  <long-description><![CDATA[]]></long-description>
7028
- <tag line="1274" name="since" description="1.42"/>
7029
- <tag line="1274" name="param" description="value(s) for mla_output_type parameter" type="array" variable="$output_parameters">
7030
  <type by_reference="false">array</type>
7031
  </tag>
7032
- <tag line="1274" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
7033
  <type by_reference="false">string</type>
7034
  </tag>
7035
- <tag line="1274" name="param" description="merged default and passed shortcode parameter values" type="string" variable="$arguments">
7036
  <type by_reference="false">string</type>
7037
  </tag>
7038
- <tag line="1274" name="param" description="raw passed shortcode parameter values" type="string" variable="$attr">
7039
  <type by_reference="false">string</type>
7040
  </tag>
7041
- <tag line="1274" name="param" description="number of attachments in the gallery, without pagination" type="integer" variable="$found_rows">
7042
  <type by_reference="false">integer</type>
7043
  </tag>
7044
- <tag line="1274" name="param" description="output text so far, may include debug values" type="string" variable="$output">
7045
  <type by_reference="false">string</type>
7046
  </tag>
7047
- <tag line="1274" name="return" description="false or string with HTML for pagination output types" type="mixed">
7048
  <type by_reference="false">mixed</type>
7049
  </tag>
7050
  </docblock>
7051
- <argument line="1288">
7052
  <name>$output_parameters</name>
7053
  <default><![CDATA[]]></default>
7054
  <type/>
7055
  </argument>
7056
- <argument line="1288">
7057
  <name>$markup_values</name>
7058
  <default><![CDATA[]]></default>
7059
  <type/>
7060
  </argument>
7061
- <argument line="1288">
7062
  <name>$arguments</name>
7063
  <default><![CDATA[]]></default>
7064
  <type/>
7065
  </argument>
7066
- <argument line="1288">
7067
  <name>$attr</name>
7068
  <default><![CDATA[]]></default>
7069
  <type/>
7070
  </argument>
7071
- <argument line="1288">
7072
  <name>$found_rows</name>
7073
  <default><![CDATA[]]></default>
7074
  <type/>
7075
  </argument>
7076
- <argument line="1288">
7077
  <name>$output</name>
7078
  <default><![CDATA['']]></default>
7079
  <type/>
7080
  </argument>
7081
  </method>
7082
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1475" package="Media Library Assistant">
7083
  <name>_sanitize_query_specification</name>
7084
  <full_name>_sanitize_query_specification</full_name>
7085
- <docblock line="1466">
7086
  <description><![CDATA[Cleans up damage caused by the Visual Editor to the tax_query and meta_query specifications]]></description>
7087
  <long-description><![CDATA[]]></long-description>
7088
- <tag line="1466" name="since" description="1.14"/>
7089
- <tag line="1466" name="param" description="query specification; PHP nested arrays" type="string" variable="$specification">
7090
  <type by_reference="false">string</type>
7091
  </tag>
7092
- <tag line="1466" name="return" description="query specification with HTML escape sequences and line breaks removed" type="string">
7093
  <type by_reference="false">string</type>
7094
  </tag>
7095
  </docblock>
7096
- <argument line="1475">
7097
  <name>$specification</name>
7098
  <default><![CDATA[]]></default>
7099
  <type/>
7100
  </argument>
7101
  </method>
7102
- <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1492" package="Media Library Assistant">
7103
  <name>_validate_sql_orderby</name>
7104
  <full_name>_validate_sql_orderby</full_name>
7105
- <docblock line="1481">
7106
  <description><![CDATA[Translates query parameters to a valid SQL order by clause.]]></description>
7107
  <long-description><![CDATA[<p>Accepts one or more valid columns, with or without ASC/DESC.
7108
  Enhanced version of /wp-includes/formatting.php function sanitize_sql_orderby().</p>]]></long-description>
7109
- <tag line="1481" name="since" description="1.20"/>
7110
- <tag line="1481" name="param" description="Validated query parameters" type="array" variable="$query_parameters">
7111
  <type by_reference="false">array</type>
7112
  </tag>
7113
- <tag line="1481" name="return" description="Returns the orderby clause if present, false otherwise." type="string|bool">
7114
  <type by_reference="false">string</type>
7115
  <type by_reference="false">bool</type>
7116
  </tag>
7117
  </docblock>
7118
- <argument line="1492">
7119
  <name>$query_parameters</name>
7120
  <default><![CDATA[]]></default>
7121
  <type/>
7122
  </argument>
7123
  </method>
7124
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1640" package="Media Library Assistant">
7125
  <name>mla_get_shortcode_attachments</name>
7126
  <full_name>mla_get_shortcode_attachments</full_name>
7127
- <docblock line="1629">
7128
  <description><![CDATA[Parses shortcode parameters and returns the gallery objects]]></description>
7129
  <long-description><![CDATA[]]></long-description>
7130
- <tag line="1629" name="since" description=".50"/>
7131
- <tag line="1629" name="param" description="Post ID of the parent" type="int" variable="$post_parent">
7132
  <type by_reference="false">int</type>
7133
  </tag>
7134
- <tag line="1629" name="param" description="Attributes of the shortcode" type="array" variable="$attr">
7135
  <type by_reference="false">array</type>
7136
  </tag>
7137
- <tag line="1629" name="param" description="true to calculate and return ['found_posts'] as an array element" type="boolean" variable="$return_found_rows">
7138
  <type by_reference="false">boolean</type>
7139
  </tag>
7140
- <tag line="1629" name="return" description="List of attachments returned from WP_Query" type="array">
7141
  <type by_reference="false">array</type>
7142
  </tag>
7143
  </docblock>
7144
- <argument line="1640">
7145
  <name>$post_parent</name>
7146
  <default><![CDATA[]]></default>
7147
  <type/>
7148
  </argument>
7149
- <argument line="1640">
7150
  <name>$attr</name>
7151
  <default><![CDATA[]]></default>
7152
  <type/>
7153
  </argument>
7154
- <argument line="1640">
7155
  <name>$return_found_rows</name>
7156
  <default><![CDATA[false]]></default>
7157
  <type/>
7158
  </argument>
7159
  </method>
7160
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2029" package="Media Library Assistant">
7161
  <name>mla_shortcode_query_posts_where_filter</name>
7162
  <full_name>mla_shortcode_query_posts_where_filter</full_name>
7163
- <docblock line="2015">
7164
  <description><![CDATA[Filters the WHERE clause for shortcode queries]]></description>
7165
  <long-description><![CDATA[<p>Captures debug information. Adds whitespace to the post_type = 'attachment'
7166
  phrase to circumvent subsequent Role Scoper modification of the clause.
7167
  Handles post_parent "any" and "none" cases.
7168
  Defined as public because it's a filter.</p>]]></long-description>
7169
- <tag line="2015" name="since" description="0.70"/>
7170
- <tag line="2015" name="param" description="query clause before modification" type="string" variable="$where_clause">
7171
  <type by_reference="false">string</type>
7172
  </tag>
7173
- <tag line="2015" name="return" description="query clause after modification" type="string">
7174
  <type by_reference="false">string</type>
7175
  </tag>
7176
  </docblock>
7177
- <argument line="2029">
7178
  <name>$where_clause</name>
7179
  <default><![CDATA[]]></default>
7180
  <type/>
7181
  </argument>
7182
  </method>
7183
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2070" package="Media Library Assistant">
7184
  <name>mla_shortcode_query_posts_orderby_filter</name>
7185
  <full_name>mla_shortcode_query_posts_orderby_filter</full_name>
7186
- <docblock line="2058">
7187
  <description><![CDATA[Filters the ORDERBY clause for shortcode queries]]></description>
7188
  <long-description><![CDATA[<p>This is an enhanced version of the code found in wp-includes/query.php, function get_posts.
7189
  Defined as public because it's a filter.</p>]]></long-description>
7190
- <tag line="2058" name="since" description="1.20"/>
7191
- <tag line="2058" name="param" description="query clause before modification" type="string" variable="$orderby_clause">
7192
  <type by_reference="false">string</type>
7193
  </tag>
7194
- <tag line="2058" name="return" description="query clause after modification" type="string">
7195
  <type by_reference="false">string</type>
7196
  </tag>
7197
  </docblock>
7198
- <argument line="2070">
7199
  <name>$orderby_clause</name>
7200
  <default><![CDATA[]]></default>
7201
  <type/>
7202
  </argument>
7203
  </method>
7204
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2095" package="Media Library Assistant">
7205
  <name>mla_shortcode_query_posts_clauses_filter</name>
7206
  <full_name>mla_shortcode_query_posts_clauses_filter</full_name>
7207
- <docblock line="2083">
7208
  <description><![CDATA[Filters all clauses for shortcode queries, pre caching plugins]]></description>
7209
  <long-description><![CDATA[<p>This is for debug purposes only.
7210
  Defined as public because it's a filter.</p>]]></long-description>
7211
- <tag line="2083" name="since" description="1.30"/>
7212
- <tag line="2083" name="param" description="query clauses before modification" type="array" variable="$pieces">
7213
  <type by_reference="false">array</type>
7214
  </tag>
7215
- <tag line="2083" name="return" description="query clauses after modification (none)" type="array">
7216
  <type by_reference="false">array</type>
7217
  </tag>
7218
  </docblock>
7219
- <argument line="2095">
7220
  <name>$pieces</name>
7221
  <default><![CDATA[]]></default>
7222
  <type/>
7223
  </argument>
7224
  </method>
7225
- <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2113" package="Media Library Assistant">
7226
  <name>mla_shortcode_query_posts_clauses_request_filter</name>
7227
  <full_name>mla_shortcode_query_posts_clauses_request_filter</full_name>
7228
- <docblock line="2101">
7229
  <description><![CDATA[Filters all clauses for shortcode queries, post caching plugins]]></description>
7230
  <long-description><![CDATA[<p>This is for debug purposes only.
7231
  Defined as public because it's a filter.</p>]]></long-description>
7232
- <tag line="2101" name="since" description="1.30"/>
7233
- <tag line="2101" name="param" description="query clauses before modification" type="array" variable="$pieces">
7234
  <type by_reference="false">array</type>
7235
  </tag>
7236
- <tag line="2101" name="return" description="query clauses after modification (none)" type="array">
7237
  <type by_reference="false">array</type>
7238
  </tag>
7239
  </docblock>
7240
- <argument line="2113">
7241
  <name>$pieces</name>
7242
  <default><![CDATA[]]></default>
7243
  <type/>
@@ -7245,7 +7859,7 @@ Defined as public because it's a filter.</p>]]></long-description>
7245
  </method>
7246
  </class>
7247
  </file>
7248
- <file path="includes\class-mla-upload-list-table.php" hash="4472a89504be2a6daec5685171b84c9a" package="Media Library Assistant">
7249
  <docblock line="2">
7250
  <description><![CDATA[Media Library Assistant extended List Table class]]></description>
7251
  <long-description><![CDATA[]]></long-description>
@@ -8825,7 +9439,7 @@ $this->set_pagination_args().</p>]]></long-description>
8825
  </method>
8826
  </class>
8827
  </file>
8828
- <file path="includes\mla-plugin-loader.php" hash="24534e8b021aef6854fcc70b4e4bd692" package="Media Library Assistant">
8829
  <docblock line="2">
8830
  <description><![CDATA[Media Library Assistant Plugin Loader]]></description>
8831
  <long-description><![CDATA[<p>Defines constants and loads all of the classes and functions required to run the plugin.
@@ -8894,42 +9508,47 @@ This file is only loaded if the naming conflict tests in index.php are passed.</
8894
  </docblock>
8895
  </function>
8896
  </file>
8897
- <file path="index.php" hash="e24b2afe1afc4ff6bd68ed78294dc1f5" package="Media Library Assistant">
8898
  <docblock line="2">
8899
  <description><![CDATA[Provides several enhancements to the handling of images and files held in the WordPress Media Library]]></description>
8900
  <long-description><![CDATA[<p>This file contains several tests for name conflicts with other plugins. Only if the tests are passed
8901
  will the rest of the plugin be loaded and run.</p>]]></long-description>
8902
  <tag line="2" name="package" description="Media Library Assistant"/>
8903
- <tag line="2" name="version" description="1.43"/>
8904
  </docblock>
8905
- <include line="109" type="Require Once" package="Media Library Assistant">
8906
  <name>includes/mla-plugin-loader.php</name>
8907
  </include>
8908
- <constant namespace="global" line="35" package="Media Library Assistant">
8909
  <name>MLA_PLUGIN_PATH</name>
8910
  <full_name>\MLA_PLUGIN_PATH</full_name>
8911
  <value><![CDATA[plugin_dir_path(__FILE__)]]></value>
8912
- <docblock line="32">
8913
- <description><![CDATA[Provides path information to the plugin root in file system format.]]></description>
8914
  <long-description><![CDATA[]]></long-description>
8915
  </docblock>
8916
  </constant>
8917
- <constant namespace="global" line="45" package="Media Library Assistant">
8918
  <name>MLA_PLUGIN_URL</name>
8919
  <full_name>\MLA_PLUGIN_URL</full_name>
8920
  <value><![CDATA[plugin_dir_url(__FILE__)]]></value>
8921
- <docblock line="42">
8922
  <description><![CDATA[Provides path information to the plugin root in URL format.]]></description>
8923
  <long-description><![CDATA[]]></long-description>
8924
  </docblock>
8925
  </constant>
8926
- <function namespace="global" line="97" package="Media Library Assistant">
 
 
 
 
 
8927
  <name>mla_name_conflict_reporting_action</name>
8928
  <full_name>\mla_name_conflict_reporting_action</full_name>
8929
- <docblock line="92">
8930
  <description><![CDATA[Displays name conflict error messages at the top of the Dashboard]]></description>
8931
  <long-description><![CDATA[]]></long-description>
8932
- <tag line="92" name="since" description="0.20"/>
8933
  </docblock>
8934
  </function>
8935
  </file>
1
  <?xml version="1.0" encoding="utf-8"?>
2
  <project version="2.0.0a8" title="Media Library Assistant">
3
+ <file path="includes\class-mla-data.php" hash="2575837da4a45d84565d619b3cf2c869" package="Media Library Assistant">
4
  <docblock line="2">
5
  <description><![CDATA[Database and template file access for MLA needs]]></description>
6
  <long-description><![CDATA[]]></long-description>
40
  </tag>
41
  </docblock>
42
  </property>
43
+ <property final="false" static="true" visibility="private" line="983" namespace="global" package="Media Library Assistant">
44
  <name>$mla_list_table_items</name>
45
  <default><![CDATA[NULL]]></default>
46
+ <docblock line="976">
47
  <description><![CDATA[Cache the results of mla_count_list_table_items for reuse in mla_query_list_table_items]]></description>
48
  <long-description><![CDATA[]]></long-description>
49
+ <tag line="976" name="since" description="1.40"/>
50
+ <tag line="976" name="var" description="" type="array">
51
  <type by_reference="false">array</type>
52
  </tag>
53
  </docblock>
54
  </property>
55
+ <property final="false" static="true" visibility="private" line="1089" namespace="global" package="Media Library Assistant">
56
  <name>$query_parameters</name>
57
  <default><![CDATA[array()]]></default>
58
+ <docblock line="1076">
59
  <description><![CDATA[WP_Query filter "parameters"]]></description>
60
  <long-description><![CDATA[<p>This array defines parameters for the query's join, where and orderby filters.
61
  The parameters are set up in the _prepare_list_table_query function, and
62
  any further logic required to translate those values is contained in the filters.</p>
63
 
64
  <p>Array index values are: use_postmeta_view, postmeta_key, postmeta_value, patterns, detached, orderby, order, mla-metavalue, debug, s, mla_search_connector, mla_search_fields, sentence, exact</p>]]></long-description>
65
+ <tag line="1076" name="since" description="0.30"/>
66
+ <tag line="1076" name="var" description="" type="array">
67
  <type by_reference="false">array</type>
68
  </tag>
69
  </docblock>
70
  </property>
71
+ <property final="false" static="true" visibility="private" line="2234" namespace="global" package="Media Library Assistant">
72
  <name>$galleries</name>
73
  <default><![CDATA[null]]></default>
74
+ <docblock line="2215">
75
  <description><![CDATA[Objects containing [gallery] shortcodes]]></description>
76
  <long-description><![CDATA[<p>This array contains all of the objects containing one or more [gallery] shortcodes
77
  and array(s) of which attachments each [gallery] contains. The arrays are built once
84
  ['galleries'] array of [gallery] entries numbered from one (1), containing:
85
  galleries[X]['query'] contains a string with the arguments of the [gallery],
86
  galleries[X]['results'] contains an array ( ID ) of post_ids for the objects in the gallery.</p>]]></long-description>
87
+ <tag line="2215" name="since" description="0.70"/>
88
+ <tag line="2215" name="var" description="" type="array">
89
  <type by_reference="false">array</type>
90
  </tag>
91
  </docblock>
92
  </property>
93
+ <property final="false" static="true" visibility="private" line="2247" namespace="global" package="Media Library Assistant">
94
  <name>$mla_galleries</name>
95
  <default><![CDATA[null]]></default>
96
+ <docblock line="2236">
97
  <description><![CDATA[Objects containing [mla_gallery] shortcodes]]></description>
98
  <long-description><![CDATA[<p>This array contains all of the objects containing one or more [mla_gallery] shortcodes
99
  and array(s) of which attachments each [mla_gallery] contains. The arrays are built once
100
  each page load and cached for subsequent calls.</p>]]></long-description>
101
+ <tag line="2236" name="since" description="0.70"/>
102
+ <tag line="2236" name="var" description="" type="array">
103
  <type by_reference="false">array</type>
104
  </tag>
105
  </docblock>
106
  </property>
107
+ <property final="false" static="true" visibility="private" line="2432" namespace="global" package="Media Library Assistant">
108
  <name>$pdf_indirect_objects</name>
109
  <default><![CDATA[NULL]]></default>
110
+ <docblock line="2421">
111
  <description><![CDATA[Array of PDF indirect objects]]></description>
112
+ <long-description><![CDATA[<p>This array contains all of the indirect object offsets and lengths.
113
+ The array key is ( object ID * 1000 ) + object generation.
114
+ The array value is array( number, generation, start, optional /length )</p>]]></long-description>
115
+ <tag line="2421" name="since" description="1.50"/>
116
+ <tag line="2421" name="var" description="" type="array">
117
  <type by_reference="false">array</type>
118
  </tag>
119
  </docblock>
120
  </property>
121
+ <property final="false" static="true" visibility="private" line="3500" namespace="global" package="Media Library Assistant">
122
  <name>$utf8_chars</name>
123
  <default><![CDATA[array("\xC2\x80", "\xC2\x81", "\xC2\x82", "\xC2\x83", "\xC2\x84", "\xC2\x85", "\xC2\x86", "\xC2\x87", "\xC2\x88", "\xC2\x89", "\xC2\x8A", "\xC2\x8B", "\xC2\x8C", "\xC2\x8D", "\xC2\x8E", "\xC2\x8F", "\xC2\x90", "\xC2\x91", "\xC2\x92", "\xC2\x93", "\xC2\x94", "\xC2\x95", "\xC2\x96", "\xC2\x97", "\xC2\x98", "\xC2\x99", "\xC2\x9A", "\xC2\x9B", "\xC2\x9C", "\xC2\x9D", "\xC2\x9E", "\xC2\x9F", "\xC2\xA0", "\xC2\xA1", "\xC2\xA2", "\xC2\xA3", "\xC2\xA4", "\xC2\xA5", "\xC2\xA6", "\xC2\xA7", "\xC2\xA8", "\xC2\xA9", "\xC2\xAA", "\xC2\xAB", "\xC2\xAC", "\xC2\xAD", "\xC2\xAE", "\xC2\xAF", "\xC2\xB0", "\xC2\xB1", "\xC2\xB2", "\xC2\xB3", "\xC2\xB4", "\xC2\xB5", "\xC2\xB6", "\xC2\xB7", "\xC2\xB8", "\xC2\xB9", "\xC2\xBA", "\xC2\xBB", "\xC2\xBC", "\xC2\xBD", "\xC2\xBE", "\xC2\xBF", "\xC3\x80", "\xC3\x81", "\xC3\x82", "\xC3\x83", "\xC3\x84", "\xC3\x85", "\xC3\x86", "\xC3\x87", "\xC3\x88", "\xC3\x89", "\xC3\x8A", "\xC3\x8B", "\xC3\x8C", "\xC3\x8D", "\xC3\x8E", "\xC3\x8F", "\xC3\x90", "\xC3\x91", "\xC3\x92", "\xC3\x93", "\xC3\x94", "\xC3\x95", "\xC3\x96", "\xC3\x97", "\xC3\x98", "\xC3\x99", "\xC3\x9A", "\xC3\x9B", "\xC3\x9C", "\xC3\x9D", "\xC3\x9E", "\xC3\x9F", "\xC3\xA0", "\xC3\xA1", "\xC3\xA2", "\xC3\xA3", "\xC3\xA4", "\xC3\xA5", "\xC3\xA6", "\xC3\xA7", "\xC3\xA8", "\xC3\xA9", "\xC3\xAA", "\xC3\xAB", "\xC3\xAC", "\xC3\xAD", "\xC3\xAE", "\xC3\xAF", "\xC3\xB0", "\xC3\xB1", "\xC3\xB2", "\xC3\xB3", "\xC3\xB4", "\xC3\xB5", "\xC3\xB6", "\xC3\xB7", "\xC3\xB8", "\xC3\xB9", "\xC3\xBA", "\xC3\xBB", "\xC3\xBC", "\xC3\xBD", "\xC3\xBE", "\xC3\xBF")]]></default>
124
+ <docblock line="3493">
125
  <description><![CDATA[UTF-8 replacements for invalid SQL characters]]></description>
126
  <long-description><![CDATA[]]></long-description>
127
+ <tag line="3493" name="since" description="1.41"/>
128
+ <tag line="3493" name="var" description="" type="array">
129
  <type by_reference="false">array</type>
130
  </tag>
131
  </docblock>
132
  </property>
133
+ <property final="false" static="true" visibility="private" line="3558" namespace="global" package="Media Library Assistant">
134
  <name>$mla_iptc_records</name>
135
  <default><![CDATA[array("1#000" => "Model Version", "1#005" => "Destination", "1#020" => "File Format", "1#022" => "File Format Version", "1#030" => "Service Identifier", "1#040" => "Envelope Number", "1#050" => "Product ID", "1#060" => "Envelope Priority", "1#070" => "Date Sent", "1#080" => "Time Sent", "1#090" => "Coded Character Set", "1#100" => "UNO", "1#120" => "ARM Identifier", "1#122" => "ARM Version", "2#000" => "Record Version", "2#003" => "Object Type Reference", "2#004" => "Object Attribute Reference", "2#005" => "Object Name", "2#007" => "Edit Status", "2#008" => "Editorial Update", "2#010" => "Urgency", "2#012" => "Subject Reference", "2#015" => "Category", "2#020" => "Supplemental Category", "2#022" => "Fixture Identifier", "2#025" => "Keywords", "2#026" => "Content Location Code", "2#027" => "Content Location Name", "2#030" => "Release Date", "2#035" => "Release Time", "2#037" => "Expiration Date", "2#038" => "Expiration Time", "2#040" => "Special Instructions", "2#042" => "Action Advised", "2#045" => "Reference Service", "2#047" => "Reference Date", "2#050" => "Reference Number", "2#055" => "Date Created", "2#060" => "Time Created", "2#062" => "Digital Creation Date", "2#063" => "Digital Creation Time", "2#065" => "Originating Program", "2#070" => "Program Version", "2#075" => "Object Cycle", "2#080" => "By-line", "2#085" => "By-line Title", "2#090" => "City", "2#092" => "Sub-location", "2#095" => "Province or State", "2#100" => "Country or Primary Location Code", "2#101" => "Country or Primary Location Name", "2#103" => "Original Transmission Reference", "2#105" => "Headline", "2#110" => "Credit", "2#115" => "Source", "2#116" => "Copyright Notice", "2#118" => "Contact", "2#120" => "Caption or Abstract", "2#122" => "Caption Writer or Editor", "2#125" => "Rasterized Caption", "2#130" => "Image Type", "2#131" => "Image Orientation", "2#135" => "Language Identifier", "2#150" => "Audio Type", "2#151" => "Audio Sampling Rate", "2#152" => "Audio Sampling Resolution", "2#153" => "Audio Duration", "2#154" => "Audio Outcue", "2#200" => "ObjectData Preview File Format", "2#201" => "ObjectData Preview File Format Version", "2#202" => "ObjectData Preview Data", "7#010" => "Size Mode", "7#020" => "Max Subfile Size", "7#090" => "ObjectData Size Announced", "7#095" => "Maximum ObjectData Size", "8#010" => "Subfile", "9#010" => "Confirmed ObjectData Size")]]></default>
136
+ <docblock line="3548">
137
  <description><![CDATA[IPTC Dataset identifiers and names]]></description>
138
  <long-description><![CDATA[<p>This array contains the identifiers and names of Datasets defined in
139
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
140
+ <tag line="3548" name="since" description="0.90"/>
141
+ <tag line="3548" name="var" description="" type="array">
142
  <type by_reference="false">array</type>
143
  </tag>
144
  </docblock>
145
  </property>
146
+ <property final="false" static="true" visibility="public" line="3657" namespace="global" package="Media Library Assistant">
147
  <name>$mla_iptc_keys</name>
148
  <default><![CDATA[array('model-version' => '1#000', 'destination' => '1#005', 'file-format' => '1#020', 'file-format-version' => '1#022', 'service-identifier' => '1#030', 'envelope-number' => '1#040', 'product-id' => '1#050', 'envelope-priority' => '1#060', 'date-sent' => '1#070', 'time-sent' => '1#080', 'coded-character-set' => '1#090', 'uno' => '1#100', 'arm-identifier' => '1#120', 'arm-version' => '1#122', 'record-version' => '2#000', 'object-type-reference' => '2#003', 'object-attribute-reference' => '2#004', 'object-name' => '2#005', 'edit-status' => '2#007', 'editorial-update' => '2#008', 'urgency' => '2#010', 'subject-reference' => '2#012', 'category' => '2#015', 'supplemental-category' => '2#020', 'fixture-identifier' => '2#022', 'keywords' => '2#025', 'content-location-code' => '2#026', 'content-location-name' => '2#027', 'release-date' => '2#030', 'release-time' => '2#035', 'expiration-date' => '2#037', 'expiration-time' => '2#038', 'special-instructions' => '2#040', 'action-advised' => '2#042', 'reference-service' => '2#045', 'reference-date' => '2#047', 'reference-number' => '2#050', 'date-created' => '2#055', 'time-created' => '2#060', 'digital-creation-date' => '2#062', 'digital-creation-time' => '2#063', 'originating-program' => '2#065', 'program-version' => '2#070', 'object-cycle' => '2#075', 'by-line' => '2#080', 'by-line-title' => '2#085', 'city' => '2#090', 'sub-location' => '2#092', 'province-or-state' => '2#095', 'country-or-primary-location-code' => '2#100', 'country-or-primary-location-name' => '2#101', 'original-transmission-reference' => '2#103', 'headline' => '2#105', 'credit' => '2#110', 'source' => '2#115', 'copyright-notice' => '2#116', 'contact' => '2#118', 'caption-or-abstract' => '2#120', 'caption-writer-or-editor' => '2#122', 'rasterized-caption' => '2#125', 'image-type' => '2#130', 'image-orientation' => '2#131', 'language-identifier' => '2#135', 'audio-type' => '2#150', 'audio-sampling-rate' => '2#151', 'audio-sampling-resolution' => '2#152', 'audio-duration' => '2#153', 'audio-outcue' => '2#154', 'objectdata-preview-file-format' => '2#200', 'objectdata-preview-file-format-version' => '2#201', 'objectdata-preview-data' => '2#202', 'size-mode' => '7#010', 'max-subfile-size' => '7#020', 'objectdata-size-announced' => '7#090', 'maximum-objectdata-size' => '7#095', 'subfile' => '8#010', 'confirmed-objectdata-size' => '9#010')]]></default>
149
+ <docblock line="3647">
150
  <description><![CDATA[IPTC Dataset friendly name/slug and identifiers]]></description>
151
  <long-description><![CDATA[<p>This array contains the sanitized names and identifiers of Datasets defined in
152
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
153
+ <tag line="3647" name="since" description="0.90"/>
154
+ <tag line="3647" name="var" description="" type="array">
155
  <type by_reference="false">array</type>
156
  </tag>
157
  </docblock>
158
  </property>
159
+ <property final="false" static="true" visibility="private" line="3756" namespace="global" package="Media Library Assistant">
160
  <name>$mla_iptc_descriptions</name>
161
  <default><![CDATA[array("1#000" => "2 octet binary IIM version number", "1#005" => "Max 1024 characters of Destination (ISO routing information); repeatable", "1#020" => "2 octet binary file format number, see IPTC-NAA V4 Appendix A", "1#022" => "2 octet binary file format version number", "1#030" => "Max 10 characters of Service Identifier and product", "1#040" => "8 Character Envelope Number", "1#050" => "Max 32 characters subset of provider's overall service; repeatable", "1#060" => "1 numeric character of envelope handling priority (not urgency)", "1#070" => "8 numeric characters of Date Sent by service - CCYYMMDD", "1#080" => "11 characters of Time Sent by service - HHMMSS±HHMM", "1#090" => "Max 32 characters of control functions, etc.", "1#100" => "14 to 80 characters of eternal, globally unique identification for objects", "1#120" => "2 octet binary Abstract Relationship Model Identifier", "1#122" => "2 octet binary Abstract Relationship Model Version", "2#000" => "2 octet binary Information Interchange Model, Part II version number", "2#003" => "3 to 67 Characters of Object Type Reference number and optional text", "2#004" => "3 to 67 Characters of Object Attribute Reference number and optional text; repeatable", "2#005" => "Max 64 characters of the object name or shorthand reference", "2#007" => "Max 64 characters of the status of the objectdata", "2#008" => "2 numeric characters of the type of update this object provides", "2#010" => "1 numeric character of the editorial urgency of content", "2#012" => "13 to 236 characters of a structured definition of the subject matter; repeatable", "2#015" => "Max 3 characters of the subject of the objectdata, DEPRECATED", "2#020" => "Max 32 characters (each) of further refinement of subject, DEPRECATED; repeatable", "2#022" => "Max 32 characters identifying recurring, predictable content", "2#025" => "Max 64 characters (each) of tags; repeatable", "2#026" => "3 characters of ISO3166 country code or IPTC-assigned code; repeatable", "2#027" => "Max 64 characters of publishable country/geographical location name; repeatable", "2#030" => "8 numeric characters of Release Date - CCYYMMDD", "2#035" => "11 characters of Release Time (earliest use) - HHMMSS±HHMM", "2#037" => "8 numeric characters of Expiration Date (latest use) - CCYYMDD", "2#038" => "11 characters of Expiration Time (latest use) - HHMMSS±HHMM", "2#040" => "Max 256 Characters of editorial instructions, e.g., embargoes and warnings", "2#042" => "2 numeric characters of type of action this object provides to a previous object", "2#045" => "Max 10 characters of the Service ID (1#030) of a prior envelope; repeatable", "2#047" => "8 numeric characters of prior envelope Reference Date (1#070) - CCYYMMDD; repeatable", "2#050" => "8 characters of prior envelope Reference Number (1#040); repeatable", "2#055" => "8 numeric characters of intellectual content Date Created - CCYYMMDD", "2#060" => "11 characters of intellectual content Time Created - HHMMSS±HHMM", "2#062" => "8 numeric characters of digital representation creation date - CCYYMMDD", "2#063" => "11 characters of digital representation creation time - HHMMSS±HHMM", "2#065" => "Max 32 characters of the program used to create the objectdata", "2#070" => "Program Version - Max 10 characters of the version of the program used to create the objectdata", "2#075" => "1 character where a=morning, p=evening, b=both", "2#080" => "Max 32 Characters of the name of the objectdata creator, e.g., the writer, photographer; repeatable", "2#085" => "Max 32 characters of the title of the objectdata creator; repeatable", "2#090" => "Max 32 Characters of the city of objectdata origin", "2#092" => "Max 32 Characters of the location within the city of objectdata origin", "2#095" => "Max 32 Characters of the objectdata origin Province or State", "2#100" => "3 characters of ISO3166 or IPTC-assigned code for Country of objectdata origin", "2#101" => "Max 64 characters of publishable country/geographical location name of objectdata origin", "2#103" => "Max 32 characters of a code representing the location of original transmission", "2#105" => "Max 256 Characters of a publishable entry providing a synopsis of the contents of the objectdata", "2#110" => "Max 32 Characters that identifies the provider of the objectdata (Vs the owner/creator)", "2#115" => "Max 32 Characters that identifies the original owner of the intellectual content", "2#116" => "Max 128 Characters that contains any necessary copyright notice", "2#118" => "Max 128 characters that identifies the person or organisation which can provide further background information; repeatable", "2#120" => "Max 2000 Characters of a textual description of the objectdata", "2#122" => "Max 32 Characters that the identifies the person involved in the writing, editing or correcting the objectdata or caption/abstract; repeatable", "2#125" => "7360 binary octets of the rasterized caption - 1 bit per pixel, 460x128-pixel image", "2#130" => "2 characters of color composition type and information", "2#131" => "1 alphabetic character indicating the image area layout - P=portrait, L=landscape, S=square", "2#135" => "2 or 3 aphabetic characters containing the major national language of the object, according to the ISO 639:1988 codes", "2#150" => "2 characters identifying monaural/stereo and exact type of audio content", "2#151" => "6 numeric characters representing the audio sampling rate in hertz (Hz)", "2#152" => "2 numeric characters representing the number of bits in each audio sample", "2#153" => "6 numeric characters of the Audio Duration - HHMMSS", "2#154" => "Max 64 characters of the content of the end of an audio objectdata", "2#200" => "2 octet binary file format of the ObjectData Preview", "2#201" => "2 octet binary particular version of the ObjectData Preview File Format", "2#202" => "Max 256000 binary octets containing the ObjectData Preview data", "7#010" => "1 numeric character - 0=objectdata size not known, 1=objectdata size known at beginning of transfer", "7#020" => "4 octet binary maximum subfile dataset(s) size", "7#090" => "4 octet binary objectdata size if known at beginning of transfer", "7#095" => "4 octet binary largest possible objectdata size", "8#010" => "Subfile DataSet containing the objectdata itself; repeatable", "9#010" => "4 octet binary total objectdata size")]]></default>
162
+ <docblock line="3746">
163
  <description><![CDATA[IPTC Dataset descriptions]]></description>
164
  <long-description><![CDATA[<p>This array contains the descriptions of Datasets defined in
165
  the "IPTC-NAA Information Interchange Model Version No. 4.1".</p>]]></long-description>
166
+ <tag line="3746" name="since" description="0.90"/>
167
+ <tag line="3746" name="var" description="" type="array">
168
  <type by_reference="false">array</type>
169
  </tag>
170
  </docblock>
171
  </property>
172
+ <property final="false" static="true" visibility="private" line="3855" namespace="global" package="Media Library Assistant">
173
  <name>$mla_iptc_formats</name>
174
  <default><![CDATA[array(0 => "No ObjectData", 1 => "IPTC-NAA Digital Newsphoto Parameter Record", 2 => "IPTC7901 Recommended Message Format", 3 => "Tagged Image File Format (Adobe/Aldus Image data)", 4 => "Illustrator (Adobe Graphics data)", 5 => "AppleSingle (Apple Computer Inc)", 6 => "NAA 89-3 (ANPA 1312)", 7 => "MacBinary II", 0 => "IPTC Unstructured Character Oriented File Format (UCOFF)", 0 => "United Press International ANPA 1312 variant", 10 => "United Press International Down-Load Message", 11 => "JPEG File Interchange (JFIF)", 12 => "Photo-CD Image-Pac (Eastman Kodak)", 13 => "Microsoft Bit Mapped Graphics File [*.BMP]", 14 => "Digital Audio File [*.WAV] (Microsoft & Creative Labs)", 15 => "Audio plus Moving Video [*.AVI] (Microsoft)", 16 => "PC DOS/Windows Executable Files [*.COM][*.EXE]", 17 => "Compressed Binary File [*.ZIP] (PKWare Inc)", 18 => "Audio Interchange File Format AIFF (Apple Computer Inc)", 19 => "RIFF Wave (Microsoft Corporation)", 20 => "Freehand (Macromedia/Aldus)", 21 => "Hypertext Markup Language - HTML (The Internet Society)", 22 => "MPEG 2 Audio Layer 2 (Musicom), ISO/IEC", 23 => "MPEG 2 Audio Layer 3, ISO/IEC", 24 => "Portable Document File (*.PDF) Adobe", 25 => "News Industry Text Format (NITF)", 26 => "Tape Archive (*.TAR)", 27 => "Tidningarnas Telegrambyrå NITF version (TTNITF DTD)", 28 => "Ritzaus Bureau NITF version (RBNITF DTD)", 29 => "Corel Draw [*.CDR]")]]></default>
175
+ <docblock line="3845">
176
  <description><![CDATA[IPTC file format identifiers and descriptions]]></description>
177
  <long-description><![CDATA[<p>This array contains the file format identifiers and descriptions defined in
178
  the "IPTC-NAA Information Interchange Model Version No. 4.1" for dataset 1#020.</p>]]></long-description>
179
+ <tag line="3845" name="since" description="0.90"/>
180
+ <tag line="3845" name="var" description="" type="array">
181
  <type by_reference="false">array</type>
182
  </tag>
183
  </docblock>
184
  </property>
185
+ <property final="false" static="true" visibility="private" line="3898" namespace="global" package="Media Library Assistant">
186
  <name>$mla_iptc_image_types</name>
187
  <default><![CDATA[array("M" => "Monochrome", "Y" => "Yellow Component", "M" => "Magenta Component", "C" => "Cyan Component", "K" => "Black Component", "R" => "Red Component", "G" => "Green Component", "B" => "Blue Component", "T" => "Text Only", "F" => "Full colour composite, frame sequential", "L" => "Full colour composite, line sequential", "P" => "Full colour composite, pixel sequential", "S" => "Full colour composite, special interleaving")]]></default>
188
+ <docblock line="3888">
189
  <description><![CDATA[IPTC image type identifiers and descriptions]]></description>
190
  <long-description><![CDATA[<p>This array contains the image type identifiers and descriptions defined in
191
  the "IPTC-NAA Information Interchange Model Version No. 4.1" for dataset 2#130, octet 2.</p>]]></long-description>
192
+ <tag line="3888" name="since" description="0.90"/>
193
+ <tag line="3888" name="var" description="" type="array">
194
  <type by_reference="false">array</type>
195
  </tag>
196
  </docblock>
237
  <type/>
238
  </argument>
239
  </method>
240
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="159" package="Media Library Assistant">
241
+ <name>_find_template_substring</name>
242
+ <full_name>_find_template_substring</full_name>
243
+ <docblock line="150">
244
+ <description><![CDATA[Find a complete template, balancing opening and closing delimiters]]></description>
245
+ <long-description><![CDATA[]]></long-description>
246
+ <tag line="150" name="since" description="1.50"/>
247
+ <tag line="150" name="param" description="A string possibily starting with '[+template:'" type="string" variable="$tpl">
248
+ <type by_reference="false">string</type>
249
+ </tag>
250
+ <tag line="150" name="return" description="'' or template string starting with '[+template:' and ending with the matching '+]'" type="string">
251
+ <type by_reference="false">string</type>
252
+ </tag>
253
+ </docblock>
254
+ <argument line="159">
255
+ <name>$tpl</name>
256
+ <default><![CDATA[]]></default>
257
+ <type/>
258
+ </argument>
259
+ </method>
260
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="206" package="Media Library Assistant">
261
+ <name>mla_parse_array_template</name>
262
+ <full_name>mla_parse_array_template</full_name>
263
+ <docblock line="194">
264
+ <description><![CDATA[Expand a template, replacing placeholders with their values]]></description>
265
+ <long-description><![CDATA[<p>Will return an array of values if one or more of the placeholders returns an array.</p>]]></long-description>
266
+ <tag line="194" name="since" description="1.50"/>
267
+ <tag line="194" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
268
+ <type by_reference="false">string</type>
269
+ </tag>
270
+ <tag line="194" name="param" description="An associative array containing keys and values e.g. array('key' =&gt; 'value')" type="array" variable="$markup_values">
271
+ <type by_reference="false">array</type>
272
+ </tag>
273
+ <tag line="194" name="return" description="string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values." type="mixed">
274
+ <type by_reference="false">mixed</type>
275
+ </tag>
276
+ </docblock>
277
+ <argument line="206">
278
+ <name>$tpl</name>
279
+ <default><![CDATA[]]></default>
280
+ <type/>
281
+ </argument>
282
+ <argument line="206">
283
+ <name>$markup_values</name>
284
+ <default><![CDATA[]]></default>
285
+ <type/>
286
+ </argument>
287
+ </method>
288
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="287" package="Media Library Assistant">
289
  <name>mla_parse_template</name>
290
  <full_name>mla_parse_template</full_name>
291
+ <docblock line="275">
292
+ <description><![CDATA[Expand a template, replacing placeholders with their values]]></description>
293
  <long-description><![CDATA[<p>A simple parsing function for basic templating.</p>]]></long-description>
294
+ <tag line="275" name="since" description="0.1"/>
295
+ <tag line="275" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
296
+ <type by_reference="false">string</type>
297
+ </tag>
298
+ <tag line="275" name="param" description="An associative array containing keys and values e.g. array('key' =&gt; 'value')" type="array" variable="$markup_values">
299
+ <type by_reference="false">array</type>
300
+ </tag>
301
+ <tag line="275" name="return" description="Placeholders corresponding to the keys of the markup_values will be replaced with their values." type="\strng">
302
+ <type by_reference="false">\strng</type>
303
+ </tag>
304
+ </docblock>
305
+ <argument line="287">
306
+ <name>$tpl</name>
307
+ <default><![CDATA[]]></default>
308
+ <type/>
309
+ </argument>
310
+ <argument line="287">
311
+ <name>$markup_values</name>
312
+ <default><![CDATA[]]></default>
313
+ <type/>
314
+ </argument>
315
+ </method>
316
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="338" package="Media Library Assistant">
317
+ <name>_find_test_substring</name>
318
+ <full_name>_find_test_substring</full_name>
319
+ <docblock line="329">
320
+ <description><![CDATA[Find a complete (test) element, balancing opening and closing delimiters]]></description>
321
+ <long-description><![CDATA[]]></long-description>
322
+ <tag line="329" name="since" description="1.50"/>
323
+ <tag line="329" name="param" description="A string possibily starting with '('" type="string" variable="$tpl">
324
+ <type by_reference="false">string</type>
325
+ </tag>
326
+ <tag line="329" name="return" description="'' or template string starting with '(' and ending with the matching ')'" type="string">
327
+ <type by_reference="false">string</type>
328
+ </tag>
329
+ </docblock>
330
+ <argument line="338">
331
+ <name>$tpl</name>
332
+ <default><![CDATA[]]></default>
333
+ <type/>
334
+ </argument>
335
+ </method>
336
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="381" package="Media Library Assistant">
337
+ <name>_parse_field_level_template</name>
338
+ <full_name>_parse_field_level_template</full_name>
339
+ <docblock line="372">
340
+ <description><![CDATA[Convert field-level "template:" string into its component parts]]></description>
341
+ <long-description><![CDATA[]]></long-description>
342
+ <tag line="372" name="since" description="1.50"/>
343
+ <tag line="372" name="param" description="Template content with string, test and choice elements" type="string" variable="$tpl">
344
  <type by_reference="false">string</type>
345
  </tag>
346
+ <tag line="372" name="return" description="( node =&gt; array( type =&gt; &quot;string | test | choice | template&quot;, length =&gt; bytes, value =&gt; string | node(s) ) )" type="array">
347
  <type by_reference="false">array</type>
348
  </tag>
349
+ </docblock>
350
+ <argument line="381">
351
+ <name>$tpl</name>
352
+ <default><![CDATA[]]></default>
353
+ <type/>
354
+ </argument>
355
+ </method>
356
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="525" package="Media Library Assistant">
357
+ <name>_evaluate_template_array_node</name>
358
+ <full_name>_evaluate_template_array_node</full_name>
359
+ <docblock line="513">
360
+ <description><![CDATA[Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters]]></description>
361
+ <long-description><![CDATA[<p>Will return an array of values if one or more of the placeholders returns an array.</p>]]></long-description>
362
+ <tag line="513" name="since" description="1.50"/>
363
+ <tag line="513" name="param" description="A field-level template element node" type="array" variable="$node">
364
+ <type by_reference="false">array</type>
365
+ </tag>
366
+ <tag line="513" name="param" description="An array of markup substitution values" type="array" variable="$markup_values">
367
+ <type by_reference="false">array</type>
368
+ </tag>
369
+ <tag line="513" name="return" description="string or array, depending on placeholder values. Placeholders corresponding to the keys of the markup_values will be replaced with their values." type="mixed">
370
+ <type by_reference="false">mixed</type>
371
+ </tag>
372
+ </docblock>
373
+ <argument line="525">
374
+ <name>$node</name>
375
+ <default><![CDATA[]]></default>
376
+ <type/>
377
+ </argument>
378
+ <argument line="525">
379
+ <name>$markup_values</name>
380
+ <default><![CDATA[array()]]></default>
381
+ <type/>
382
+ </argument>
383
+ </method>
384
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="602" package="Media Library Assistant">
385
+ <name>_evaluate_template_node</name>
386
+ <full_name>_evaluate_template_node</full_name>
387
+ <docblock line="592">
388
+ <description><![CDATA[Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters]]></description>
389
+ <long-description><![CDATA[]]></long-description>
390
+ <tag line="592" name="since" description="1.50"/>
391
+ <tag line="592" name="param" description="A field-level template element node" type="array" variable="$node">
392
+ <type by_reference="false">array</type>
393
+ </tag>
394
+ <tag line="592" name="param" description="An array of markup substitution values" type="array" variable="$markup_values">
395
+ <type by_reference="false">array</type>
396
+ </tag>
397
+ <tag line="592" name="return" description="String with expanded values, if any" type="string">
398
  <type by_reference="false">string</type>
399
  </tag>
400
  </docblock>
401
+ <argument line="602">
402
+ <name>$node</name>
403
+ <default><![CDATA[]]></default>
404
+ <type/>
405
+ </argument>
406
+ <argument line="602">
407
+ <name>$markup_values</name>
408
+ <default><![CDATA[array()]]></default>
409
+ <type/>
410
+ </argument>
411
+ </method>
412
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="664" package="Media Library Assistant">
413
+ <name>_expand_field_level_template</name>
414
+ <full_name>_expand_field_level_template</full_name>
415
+ <docblock line="653">
416
+ <description><![CDATA[Analyze a field-level "template:" element, expanding Field-level Markup Substitution Parameters]]></description>
417
+ <long-description><![CDATA[]]></long-description>
418
+ <tag line="653" name="since" description="1.50"/>
419
+ <tag line="653" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
420
+ <type by_reference="false">string</type>
421
+ </tag>
422
+ <tag line="653" name="param" description="An array of markup substitution values" type="array" variable="$markup_values">
423
+ <type by_reference="false">array</type>
424
+ </tag>
425
+ <tag line="653" name="param" description="True to return array value(s), false to return a string" type="boolean" variable="$return_arrays">
426
+ <type by_reference="false">boolean</type>
427
+ </tag>
428
+ <tag line="653" name="return" description="Element with expanded string/array values, if any" type="mixed">
429
+ <type by_reference="false">mixed</type>
430
+ </tag>
431
+ </docblock>
432
+ <argument line="664">
433
  <name>$tpl</name>
434
  <default><![CDATA[]]></default>
435
  <type/>
436
  </argument>
437
+ <argument line="664">
438
+ <name>$markup_values</name>
439
+ <default><![CDATA[array()]]></default>
440
+ <type/>
441
+ </argument>
442
+ <argument line="664">
443
+ <name>$return_arrays</name>
444
+ <default><![CDATA[false]]></default>
445
+ <type/>
446
+ </argument>
447
+ </method>
448
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="706" package="Media Library Assistant">
449
+ <name>_process_field_level_array</name>
450
+ <full_name>_process_field_level_array</full_name>
451
+ <docblock line="695">
452
+ <description><![CDATA[Process an markup field array value according to the supplied data-format option]]></description>
453
+ <long-description><![CDATA[]]></long-description>
454
+ <tag line="695" name="since" description="1.50"/>
455
+ <tag line="695" name="param" description="an array of scalar values" type="array" variable="$record">
456
+ <type by_reference="false">array</type>
457
+ </tag>
458
+ <tag line="695" name="param" description="data option 'text'|'single'|'export'|'array'|'multi'" type="string" variable="$option">
459
+ <type by_reference="false">string</type>
460
+ </tag>
461
+ <tag line="695" name="param" description="Optional: for option 'multi', retain existing values" type="boolean" variable="$keep_existing">
462
+ <type by_reference="false">boolean</type>
463
+ </tag>
464
+ <tag line="695" name="return" description="( parameter =&gt; value ) for all field-level parameters and anything in $markup_values" type="array">
465
+ <type by_reference="false">array</type>
466
+ </tag>
467
+ </docblock>
468
+ <argument line="706">
469
+ <name>$record</name>
470
+ <default><![CDATA[]]></default>
471
+ <type/>
472
+ </argument>
473
+ <argument line="706">
474
+ <name>$option</name>
475
+ <default><![CDATA['text']]></default>
476
+ <type/>
477
+ </argument>
478
+ <argument line="706">
479
+ <name>$keep_existing</name>
480
+ <default><![CDATA[false]]></default>
481
+ <type/>
482
+ </argument>
483
+ </method>
484
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="750" package="Media Library Assistant">
485
+ <name>mla_expand_field_level_parameters</name>
486
+ <full_name>mla_expand_field_level_parameters</full_name>
487
+ <docblock line="732">
488
+ <description><![CDATA[Analyze a template, expanding Field-level Markup Substitution Parameters]]></description>
489
+ <long-description><![CDATA[<p>Field-level parameters must have one of the following prefix values:
490
+ template, request, query, custom, terms, meta, iptc, exif, pdf.
491
+ All but request and query require an attachment ID.</p>]]></long-description>
492
+ <tag line="732" name="since" description="1.50"/>
493
+ <tag line="732" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
494
+ <type by_reference="false">string</type>
495
+ </tag>
496
+ <tag line="732" name="param" description="Optional: an array of values from the query, if any, e.g. shortcode parameters" type="array" variable="$query">
497
+ <type by_reference="false">array</type>
498
+ </tag>
499
+ <tag line="732" name="param" description="Optional: an array of values to add to the returned array" type="array" variable="$markup_values">
500
+ <type by_reference="false">array</type>
501
+ </tag>
502
+ <tag line="732" name="param" description="Optional: attachment ID for attachment-specific placeholders" type="integer" variable="$post_id">
503
+ <type by_reference="false">integer</type>
504
+ </tag>
505
+ <tag line="732" name="param" description="Optional: for option 'multi', retain existing values" type="boolean" variable="$keep_existing">
506
+ <type by_reference="false">boolean</type>
507
+ </tag>
508
+ <tag line="732" name="param" description="Optional: default option value" type="string" variable="$default_option">
509
+ <type by_reference="false">string</type>
510
+ </tag>
511
+ <tag line="732" name="return" description="( parameter =&gt; value ) for all field-level parameters and anything in $markup_values" type="array">
512
+ <type by_reference="false">array</type>
513
+ </tag>
514
+ </docblock>
515
+ <argument line="750">
516
+ <name>$tpl</name>
517
  <default><![CDATA[]]></default>
518
  <type/>
519
  </argument>
520
+ <argument line="750">
521
+ <name>$query</name>
522
+ <default><![CDATA[NULL]]></default>
523
+ <type/>
524
+ </argument>
525
+ <argument line="750">
526
+ <name>$markup_values</name>
527
+ <default><![CDATA[array()]]></default>
528
+ <type/>
529
+ </argument>
530
+ <argument line="750">
531
+ <name>$post_id</name>
532
+ <default><![CDATA[0]]></default>
533
+ <type/>
534
+ </argument>
535
+ <argument line="750">
536
+ <name>$keep_existing</name>
537
+ <default><![CDATA[false]]></default>
538
+ <type/>
539
+ </argument>
540
+ <argument line="750">
541
+ <name>$default_option</name>
542
+ <default><![CDATA['text']]></default>
543
+ <type/>
544
+ </argument>
545
  </method>
546
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="904" package="Media Library Assistant">
547
  <name>mla_get_template_placeholders</name>
548
  <full_name>mla_get_template_placeholders</full_name>
549
+ <docblock line="893">
550
+ <description><![CDATA[Analyze a template, returning an array of the placeholders it contains]]></description>
551
  <long-description><![CDATA[]]></long-description>
552
+ <tag line="893" name="since" description="0.90"/>
553
+ <tag line="893" name="param" description="A formatting string containing [+placeholders+]" type="string" variable="$tpl">
554
  <type by_reference="false">string</type>
555
  </tag>
556
+ <tag line="893" name="param" description="Optional: default option value" type="string" variable="$default_option">
557
+ <type by_reference="false">string</type>
558
+ </tag>
559
+ <tag line="893" name="return" description="Placeholder information: each entry is an array with ['prefix'] =&gt; string, ['value'] =&gt; string, ['option'] =&gt; string 'text'|single'|'export'|'array'|'multi'" type="array">
560
  <type by_reference="false">array</type>
561
  </tag>
562
  </docblock>
563
+ <argument line="904">
564
  <name>$tpl</name>
565
  <default><![CDATA[]]></default>
566
  <type/>
567
  </argument>
568
+ <argument line="904">
569
+ <name>$default_option</name>
570
+ <default><![CDATA['text']]></default>
571
+ <type/>
572
+ </argument>
573
  </method>
574
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="996" package="Media Library Assistant">
575
  <name>mla_count_list_table_items</name>
576
  <full_name>mla_count_list_table_items</full_name>
577
+ <docblock line="985">
578
  <description><![CDATA[Get the total number of attachment posts]]></description>
579
  <long-description><![CDATA[]]></long-description>
580
+ <tag line="985" name="since" description="0.30"/>
581
+ <tag line="985" name="param" description="Query variables, e.g., from $_REQUEST" type="array" variable="$request">
582
  <type by_reference="false">array</type>
583
  </tag>
584
+ <tag line="985" name="param" description="(optional) number of rows to skip over to reach desired page" type="int" variable="$offset">
585
  <type by_reference="false">int</type>
586
  </tag>
587
+ <tag line="985" name="param" description="(optional) number of rows on each page" type="int" variable="$count">
588
  <type by_reference="false">int</type>
589
  </tag>
590
+ <tag line="985" name="return" description="Number of attachment posts" type="integer">
591
  <type by_reference="false">integer</type>
592
  </tag>
593
  </docblock>
594
+ <argument line="996">
595
  <name>$request</name>
596
  <default><![CDATA[]]></default>
597
  <type/>
598
  </argument>
599
+ <argument line="996">
600
  <name>$offset</name>
601
  <default><![CDATA[NULL]]></default>
602
  <type/>
603
  </argument>
604
+ <argument line="996">
605
  <name>$count</name>
606
  <default><![CDATA[NULL]]></default>
607
  <type/>
608
  </argument>
609
  </method>
610
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1025" package="Media Library Assistant">
611
  <name>mla_query_list_table_items</name>
612
  <full_name>mla_query_list_table_items</full_name>
613
+ <docblock line="1011">
614
  <description><![CDATA[Retrieve attachment objects for list table display]]></description>
615
  <long-description><![CDATA[<p>Supports prepare_items in class-mla-list-table.php.
616
  Modeled after wp_edit_attachments_query in wp-admin/post.php</p>]]></long-description>
617
+ <tag line="1011" name="since" description="0.1"/>
618
+ <tag line="1011" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$request">
619
  <type by_reference="false">array</type>
620
  </tag>
621
+ <tag line="1011" name="param" description="number of rows to skip over to reach desired page" type="int" variable="$offset">
622
  <type by_reference="false">int</type>
623
  </tag>
624
+ <tag line="1011" name="param" description="number of rows on each page" type="int" variable="$count">
625
  <type by_reference="false">int</type>
626
  </tag>
627
+ <tag line="1011" name="return" description="attachment objects (posts) including parent data, meta data and references" type="array">
628
  <type by_reference="false">array</type>
629
  </tag>
630
  </docblock>
631
+ <argument line="1025">
632
  <name>$request</name>
633
  <default><![CDATA[]]></default>
634
  <type/>
635
  </argument>
636
+ <argument line="1025">
637
  <name>$offset</name>
638
  <default><![CDATA[]]></default>
639
  <type/>
640
  </argument>
641
+ <argument line="1025">
642
  <name>$count</name>
643
  <default><![CDATA[]]></default>
644
  <type/>
645
  </argument>
646
  </method>
647
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1071" package="Media Library Assistant">
648
  <name>mla_query_media_modal_items</name>
649
  <full_name>mla_query_media_modal_items</full_name>
650
+ <docblock line="1058">
651
  <description><![CDATA[Retrieve attachment objects for the WordPress Media Manager]]></description>
652
  <long-description><![CDATA[<p>Supports month-year and taxonomy-term filters as well as the enhanced search box</p>]]></long-description>
653
+ <tag line="1058" name="since" description="1.20"/>
654
+ <tag line="1058" name="param" description="query parameters from Media Manager" type="array" variable="$request">
655
  <type by_reference="false">array</type>
656
  </tag>
657
+ <tag line="1058" name="param" description="number of rows to skip over to reach desired page" type="int" variable="$offset">
658
  <type by_reference="false">int</type>
659
  </tag>
660
+ <tag line="1058" name="param" description="number of rows on each page" type="int" variable="$count">
661
  <type by_reference="false">int</type>
662
  </tag>
663
+ <tag line="1058" name="return" description="attachment objects (posts)" type="array">
664
  <type by_reference="false">array</type>
665
  </tag>
666
  </docblock>
667
+ <argument line="1071">
668
  <name>$request</name>
669
  <default><![CDATA[]]></default>
670
  <type/>
671
  </argument>
672
+ <argument line="1071">
673
  <name>$offset</name>
674
  <default><![CDATA[]]></default>
675
  <type/>
676
  </argument>
677
+ <argument line="1071">
678
  <name>$count</name>
679
  <default><![CDATA[]]></default>
680
  <type/>
681
  </argument>
682
  </method>
683
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1105" package="Media Library Assistant">
684
  <name>_prepare_list_table_query</name>
685
  <full_name>_prepare_list_table_query</full_name>
686
+ <docblock line="1091">
687
  <description><![CDATA[Sanitize and expand query arguments from request variables]]></description>
688
  <long-description><![CDATA[<p>Prepare the arguments for WP_Query.
689
  Modeled after wp_edit_attachments_query in wp-admin/post.php</p>]]></long-description>
690
+ <tag line="1091" name="since" description="0.1"/>
691
+ <tag line="1091" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$raw_request">
692
  <type by_reference="false">array</type>
693
  </tag>
694
+ <tag line="1091" name="param" description="Optional number of rows (default 0) to skip over to reach desired page" type="int" variable="$offset">
695
  <type by_reference="false">int</type>
696
  </tag>
697
+ <tag line="1091" name="param" description="Optional number of rows on each page (0 = all rows, default)" type="int" variable="$count">
698
  <type by_reference="false">int</type>
699
  </tag>
700
+ <tag line="1091" name="return" description="revised arguments suitable for WP_Query" type="array">
701
  <type by_reference="false">array</type>
702
  </tag>
703
  </docblock>
704
+ <argument line="1105">
705
  <name>$raw_request</name>
706
  <default><![CDATA[]]></default>
707
  <type/>
708
  </argument>
709
+ <argument line="1105">
710
  <name>$offset</name>
711
  <default><![CDATA[0]]></default>
712
  <type/>
713
  </argument>
714
+ <argument line="1105">
715
  <name>$count</name>
716
  <default><![CDATA[0]]></default>
717
  <type/>
718
  </argument>
719
  </method>
720
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1414" package="Media Library Assistant">
721
  <name>_execute_list_table_query</name>
722
  <full_name>_execute_list_table_query</full_name>
723
+ <docblock line="1405">
724
  <description><![CDATA[Add filters, run query, remove filters]]></description>
725
  <long-description><![CDATA[]]></long-description>
726
+ <tag line="1405" name="since" description="0.30"/>
727
+ <tag line="1405" name="param" description="query parameters from web page, usually found in $_REQUEST" type="array" variable="$request">
728
  <type by_reference="false">array</type>
729
  </tag>
730
+ <tag line="1405" name="return" description="WP_Query object with query results" type="object">
731
  <type by_reference="false">object</type>
732
  </tag>
733
  </docblock>
734
+ <argument line="1414">
735
  <name>$request</name>
736
  <default><![CDATA[]]></default>
737
  <type/>
738
  </argument>
739
  </method>
740
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1491" package="Media Library Assistant">
741
  <name>mla_query_posts_search_filter</name>
742
  <full_name>mla_query_posts_search_filter</full_name>
743
+ <docblock line="1479">
744
  <description><![CDATA[Adds a keyword search to the WHERE clause, if required]]></description>
745
  <long-description><![CDATA[<p>Defined as public because it's a filter.</p>]]></long-description>
746
+ <tag line="1479" name="since" description="0.60"/>
747
+ <tag line="1479" name="param" description="query clause before modification" type="string" variable="$search_string">
748
  <type by_reference="false">string</type>
749
  </tag>
750
+ <tag line="1479" name="param" description="WP_Query object" type="object" variable="$query_object">
751
  <type by_reference="false">object</type>
752
  </tag>
753
+ <tag line="1479" name="return" description="query clause after keyword search addition" type="string">
754
  <type by_reference="false">string</type>
755
  </tag>
756
  </docblock>
757
+ <argument line="1491">
758
  <name>$search_string</name>
759
  <default><![CDATA[]]></default>
760
  <type/>
761
  </argument>
762
+ <argument line="1491">
763
  <name>$query_object</name>
764
  <default><![CDATA[]]></default>
765
  <type/>
766
  </argument>
767
  </method>
768
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1602" package="Media Library Assistant">
769
  <name>mla_query_posts_join_filter</name>
770
  <full_name>mla_query_posts_join_filter</full_name>
771
+ <docblock line="1591">
772
  <description><![CDATA[Adds a JOIN clause, if required, to handle sorting/searching on custom fields or ALT Text]]></description>
773
  <long-description><![CDATA[<p>Defined as public because it's a filter.</p>]]></long-description>
774
+ <tag line="1591" name="since" description="0.30"/>
775
+ <tag line="1591" name="param" description="query clause before modification" type="string" variable="$join_clause">
776
  <type by_reference="false">string</type>
777
  </tag>
778
+ <tag line="1591" name="return" description="query clause after &quot;LEFT JOIN view ON post_id&quot; item modification" type="string">
779
  <type by_reference="false">string</type>
780
  </tag>
781
  </docblock>
782
+ <argument line="1602">
783
  <name>$join_clause</name>
784
  <default><![CDATA[]]></default>
785
  <type/>
786
  </argument>
787
  </method>
788
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1629" package="Media Library Assistant">
789
  <name>mla_query_posts_where_filter</name>
790
  <full_name>mla_query_posts_where_filter</full_name>
791
+ <docblock line="1617">
792
  <description><![CDATA[Adds a WHERE clause for detached items]]></description>
793
  <long-description><![CDATA[<p>Modeled after _edit_attachments_query_helper in wp-admin/post.php.
794
  Defined as public because it's a filter.</p>]]></long-description>
795
+ <tag line="1617" name="since" description="0.1"/>
796
+ <tag line="1617" name="param" description="query clause before modification" type="string" variable="$where_clause">
797
  <type by_reference="false">string</type>
798
  </tag>
799
+ <tag line="1617" name="return" description="query clause after &quot;detached&quot; item modification" type="string">
800
  <type by_reference="false">string</type>
801
  </tag>
802
  </docblock>
803
+ <argument line="1629">
804
  <name>$where_clause</name>
805
  <default><![CDATA[]]></default>
806
  <type/>
807
  </argument>
808
  </method>
809
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1677" package="Media Library Assistant">
810
  <name>mla_query_posts_orderby_filter</name>
811
  <full_name>mla_query_posts_orderby_filter</full_name>
812
+ <docblock line="1665">
813
  <description><![CDATA[Adds a ORDERBY clause, if required]]></description>
814
  <long-description><![CDATA[<p>Expands the range of sort options because the logic in WP_Query is limited.
815
  Defined as public because it's a filter.</p>]]></long-description>
816
+ <tag line="1665" name="since" description="0.30"/>
817
+ <tag line="1665" name="param" description="query clause before modification" type="string" variable="$orderby_clause">
818
  <type by_reference="false">string</type>
819
  </tag>
820
+ <tag line="1665" name="return" description="updated query clause" type="string">
821
  <type by_reference="false">string</type>
822
  </tag>
823
  </docblock>
824
+ <argument line="1677">
825
  <name>$orderby_clause</name>
826
  <default><![CDATA[]]></default>
827
  <type/>
828
  </argument>
829
  </method>
830
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1736" package="Media Library Assistant">
831
  <name>mla_get_attachment_by_id</name>
832
  <full_name>mla_get_attachment_by_id</full_name>
833
+ <docblock line="1724">
834
  <description><![CDATA[Retrieve an Attachment array given a $post_id]]></description>
835
  <long-description><![CDATA[<p>The (associative) array will contain every field that can be found in
836
  the posts and postmeta tables, and all references to the attachment.</p>]]></long-description>
837
+ <tag line="1724" name="since" description="0.1"/>
838
+ <tag line="1724" name="uses" description="\global\$post" refers="\global\$post"/>
839
+ <tag line="1724" name="param" description="The ID of the attachment post" type="int" variable="$post_id">
840
  <type by_reference="false">int</type>
841
  </tag>
842
+ <tag line="1724" name="return" description="NULL on failure else associative array" type="NULL|array">
843
  <type by_reference="false">NULL</type>
844
  <type by_reference="false">array</type>
845
  </tag>
846
  </docblock>
847
+ <argument line="1736">
848
  <name>$post_id</name>
849
  <default><![CDATA[]]></default>
850
  <type/>
851
  </argument>
852
  </method>
853
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1790" package="Media Library Assistant">
854
  <name>mla_fetch_attachment_parent_data</name>
855
  <full_name>mla_fetch_attachment_parent_data</full_name>
856
+ <docblock line="1781">
857
  <description><![CDATA[Returns information about an attachment's parent, if found]]></description>
858
  <long-description><![CDATA[]]></long-description>
859
+ <tag line="1781" name="since" description="0.1"/>
860
+ <tag line="1781" name="param" description="post ID of attachment's parent, if any" type="int" variable="$parent_id">
861
  <type by_reference="false">int</type>
862
  </tag>
863
+ <tag line="1781" name="return" description="Parent information; post_date, post_title and post_type" type="array">
864
  <type by_reference="false">array</type>
865
  </tag>
866
  </docblock>
867
+ <argument line="1790">
868
  <name>$parent_id</name>
869
  <default><![CDATA[]]></default>
870
  <type/>
871
  </argument>
872
  </method>
873
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1826" package="Media Library Assistant">
874
  <name>mla_find_array_element</name>
875
  <full_name>mla_find_array_element</full_name>
876
+ <docblock line="1811">
877
  <description><![CDATA[Finds the value of a key in a possibily nested array structure]]></description>
878
  <long-description><![CDATA[<p>Used primarily to extract fields from the _wp_attachment_metadata custom field.
879
  Could also be used with the ID3 metadata exposed in WordPress 3.6 and later.</p>]]></long-description>
880
+ <tag line="1811" name="since" description="1.30"/>
881
+ <tag line="1811" name="param" description="key value, e.g. array1.array2.element" type="string" variable="$needle">
882
  <type by_reference="false">string</type>
883
  </tag>
884
+ <tag line="1811" name="param" description="PHP nested arrays" type="array" variable="$haystack">
885
  <type by_reference="false">array</type>
886
  </tag>
887
+ <tag line="1811" name="param" description="data option 'text'|'single'|'export'|'array'|'multi'" type="string" variable="$option">
888
  <type by_reference="false">string</type>
889
  </tag>
890
+ <tag line="1811" name="param" description="keep existing values - for 'multi' option" type="boolean" variable="$keep_existing">
891
  <type by_reference="false">boolean</type>
892
  </tag>
893
+ <tag line="1811" name="return" description="value matching key(.key ...) or ''" type="string">
894
  <type by_reference="false">string</type>
895
  </tag>
896
  </docblock>
897
+ <argument line="1826">
898
  <name>$needle</name>
899
  <default><![CDATA[]]></default>
900
  <type/>
901
  </argument>
902
+ <argument line="1826">
903
  <name>$haystack</name>
904
  <default><![CDATA[]]></default>
905
  <type/>
906
  </argument>
907
+ <argument line="1826">
908
  <name>$option</name>
909
  <default><![CDATA[]]></default>
910
  <type/>
911
  </argument>
912
+ <argument line="1826">
913
  <name>$keep_existing</name>
914
  <default><![CDATA[false]]></default>
915
  <type/>
916
  </argument>
917
  </method>
918
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1881" package="Media Library Assistant">
919
  <name>mla_fetch_attachment_metadata</name>
920
  <full_name>mla_fetch_attachment_metadata</full_name>
921
+ <docblock line="1868">
922
  <description><![CDATA[Fetch and filter meta data for an attachment]]></description>
923
  <long-description><![CDATA[<p>Returns a filtered array of a post's meta data. Internal values beginning with '<em>'
924
  are stripped out or converted to an 'mla</em>' equivalent. Array data is replaced with
925
  a string containing the first array element.</p>]]></long-description>
926
+ <tag line="1868" name="since" description="0.1"/>
927
+ <tag line="1868" name="param" description="post ID of attachment" type="int" variable="$post_id">
928
  <type by_reference="false">int</type>
929
  </tag>
930
+ <tag line="1868" name="return" description="Meta data variables" type="array">
931
  <type by_reference="false">array</type>
932
  </tag>
933
  </docblock>
934
+ <argument line="1881">
935
  <name>$post_id</name>
936
  <default><![CDATA[]]></default>
937
  <type/>
938
  </argument>
939
  </method>
940
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1953" package="Media Library Assistant">
941
  <name>mla_fetch_attachment_references</name>
942
  <full_name>mla_fetch_attachment_references</full_name>
943
+ <docblock line="1940">
944
  <description><![CDATA[Find Featured Image and inserted image/link references to an attachment]]></description>
945
  <long-description><![CDATA[<p>Searches all post and page content to see if the attachment is used
946
  as a Featured Image or inserted in the post as an image or link.</p>]]></long-description>
947
+ <tag line="1940" name="since" description="0.1"/>
948
+ <tag line="1940" name="param" description="post ID of attachment" type="int" variable="$ID">
949
  <type by_reference="false">int</type>
950
  </tag>
951
+ <tag line="1940" name="param" description="post ID of attachment's parent, if any" type="int" variable="$parent">
952
  <type by_reference="false">int</type>
953
  </tag>
954
+ <tag line="1940" name="return" description="Reference information; see $references array comments" type="array">
955
  <type by_reference="false">array</type>
956
  </tag>
957
  </docblock>
958
+ <argument line="1953">
959
  <name>$ID</name>
960
  <default><![CDATA[]]></default>
961
  <type/>
962
  </argument>
963
+ <argument line="1953">
964
  <name>$parent</name>
965
  <default><![CDATA[]]></default>
966
  <type/>
967
  </argument>
968
  </method>
969
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2258" package="Media Library Assistant">
970
  <name>mla_flush_mla_galleries</name>
971
  <full_name>mla_flush_mla_galleries</full_name>
972
+ <docblock line="2249">
973
  <description><![CDATA[Invalidates the $mla_galleries or $galleries array and cached values]]></description>
974
  <long-description><![CDATA[]]></long-description>
975
+ <tag line="2249" name="since" description="1.00"/>
976
+ <tag line="2249" name="param" description="name of the gallery's cache/option variable" type="string" variable="$option_name">
977
  <type by_reference="false">string</type>
978
  </tag>
979
+ <tag line="2249" name="return" description="" type="void">
980
  <type by_reference="false">void</type>
981
  </tag>
982
  </docblock>
983
+ <argument line="2258">
984
  <name>$option_name</name>
985
  <default><![CDATA[]]></default>
986
  <type/>
987
  </argument>
988
  </method>
989
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2282" package="Media Library Assistant">
990
  <name>mla_save_post_action</name>
991
  <full_name>mla_save_post_action</full_name>
992
+ <docblock line="2273">
993
  <description><![CDATA[Invalidates $mla_galleries and $galleries arrays and cached values after post, page or attachment updates]]></description>
994
  <long-description><![CDATA[]]></long-description>
995
+ <tag line="2273" name="since" description="1.00"/>
996
+ <tag line="2273" name="param" description="ID of post/page/attachment; not used at this time" type="integer" variable="$post_id">
997
  <type by_reference="false">integer</type>
998
  </tag>
999
+ <tag line="2273" name="return" description="" type="void">
1000
  <type by_reference="false">void</type>
1001
  </tag>
1002
  </docblock>
1003
+ <argument line="2282">
1004
  <name>$post_id</name>
1005
  <default><![CDATA[]]></default>
1006
  <type/>
1007
  </argument>
1008
  </method>
1009
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2299" package="Media Library Assistant">
1010
  <name>_build_mla_galleries</name>
1011
  <full_name>_build_mla_galleries</full_name>
1012
+ <docblock line="2287">
1013
  <description><![CDATA[Builds the $mla_galleries or $galleries array]]></description>
1014
  <long-description><![CDATA[]]></long-description>
1015
+ <tag line="2287" name="since" description="0.70"/>
1016
+ <tag line="2287" name="param" description="name of the gallery's cache/option variable" type="string" variable="$option_name">
1017
  <type by_reference="false">string</type>
1018
  </tag>
1019
+ <tag line="2287" name="param" description="by reference to the private static galleries array variable" type="array" variable="$galleries_array">
1020
  <type by_reference="false">array</type>
1021
  </tag>
1022
+ <tag line="2287" name="param" description="the shortcode to be searched for and processed" type="string" variable="$shortcode">
1023
  <type by_reference="false">string</type>
1024
  </tag>
1025
+ <tag line="2287" name="param" description="true to exclude revisions from the search" type="boolean" variable="$exclude_revisions">
1026
  <type by_reference="false">boolean</type>
1027
  </tag>
1028
+ <tag line="2287" name="return" description="true if the galleries array is not empty" type="boolean">
1029
  <type by_reference="false">boolean</type>
1030
  </tag>
1031
  </docblock>
1032
+ <argument line="2299">
1033
  <name>$option_name</name>
1034
  <default><![CDATA[]]></default>
1035
  <type/>
1036
  </argument>
1037
+ <argument line="2299">
1038
  <name>$galleries_array</name>
1039
  <default><![CDATA[]]></default>
1040
  <type/>
1041
  </argument>
1042
+ <argument line="2299">
1043
  <name>$shortcode</name>
1044
  <default><![CDATA[]]></default>
1045
  <type/>
1046
  </argument>
1047
+ <argument line="2299">
1048
  <name>$exclude_revisions</name>
1049
  <default><![CDATA[]]></default>
1050
  <type/>
1051
  </argument>
1052
  </method>
1053
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2408" package="Media Library Assistant">
1054
  <name>_search_mla_galleries</name>
1055
  <full_name>_search_mla_galleries</full_name>
1056
+ <docblock line="2397">
1057
  <description><![CDATA[Search the $mla_galleries or $galleries array]]></description>
1058
  <long-description><![CDATA[]]></long-description>
1059
+ <tag line="2397" name="since" description="0.70"/>
1060
+ <tag line="2397" name="param" description="by reference to the private static galleries array variable" type="array" variable="$galleries_array">
1061
  <type by_reference="false">array</type>
1062
  </tag>
1063
+ <tag line="2397" name="param" description="the attachment ID to be searched for and processed" type="int" variable="$attachment_id">
1064
  <type by_reference="false">int</type>
1065
  </tag>
1066
+ <tag line="2397" name="return" description="All posts/pages with one or more galleries that include the attachment. The array key is the parent_post ID; each entry contains post_title and post_type." type="array">
1067
  <type by_reference="false">array</type>
1068
  </tag>
1069
  </docblock>
1070
+ <argument line="2408">
1071
  <name>$galleries_array</name>
1072
  <default><![CDATA[]]></default>
1073
  <type/>
1074
  </argument>
1075
+ <argument line="2408">
1076
  <name>$attachment_id</name>
1077
  <default><![CDATA[]]></default>
1078
  <type/>
1079
  </argument>
1080
  </method>
1081
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2447" package="Media Library Assistant">
1082
+ <name>_parse_pdf_xref_subsection</name>
1083
+ <full_name>_parse_pdf_xref_subsection</full_name>
1084
+ <docblock line="2434">
1085
+ <description><![CDATA[Parse a cross-reference table subsection into the array of indirect object definitions]]></description>
1086
+ <long-description><![CDATA[<p>A cross-reference subsection is a sequence of 20-byte entries, each with offset and generation values.</p>]]></long-description>
1087
+ <tag line="2434" name="since" description="1.50"/>
1088
+ <tag line="2434" name="param" description="buffer containing the subsection" type="string" variable="$xref_section">
1089
+ <type by_reference="false">string</type>
1090
+ </tag>
1091
+ <tag line="2434" name="param" description="offset within the buffer of the first entry" type="integer" variable="$offset">
1092
+ <type by_reference="false">integer</type>
1093
+ </tag>
1094
+ <tag line="2434" name="param" description="number of the first object in the subsection" type="integer" variable="$object_id">
1095
+ <type by_reference="false">integer</type>
1096
+ </tag>
1097
+ <tag line="2434" name="param" description="number of entries in the subsection" type="integer" variable="$count">
1098
+ <type by_reference="false">integer</type>
1099
+ </tag>
1100
+ <tag line="2434" name="return" description="" type="void">
1101
+ <type by_reference="false">void</type>
1102
+ </tag>
1103
+ </docblock>
1104
+ <argument line="2447">
1105
+ <name>$xref_section</name>
1106
+ <default><![CDATA[]]></default>
1107
+ <type/>
1108
+ </argument>
1109
+ <argument line="2447">
1110
+ <name>$offset</name>
1111
+ <default><![CDATA[]]></default>
1112
+ <type/>
1113
+ </argument>
1114
+ <argument line="2447">
1115
+ <name>$object_id</name>
1116
+ <default><![CDATA[]]></default>
1117
+ <type/>
1118
+ </argument>
1119
+ <argument line="2447">
1120
+ <name>$count</name>
1121
+ <default><![CDATA[]]></default>
1122
+ <type/>
1123
+ </argument>
1124
+ </method>
1125
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2477" package="Media Library Assistant">
1126
+ <name>_parse_pdf_xref_section</name>
1127
+ <full_name>_parse_pdf_xref_section</full_name>
1128
+ <docblock line="2466">
1129
+ <description><![CDATA[Parse a cross-reference table section into the array of indirect object definitions]]></description>
1130
+ <long-description><![CDATA[<p>Creates the array of indirect object offsets and lengths</p>]]></long-description>
1131
+ <tag line="2466" name="since" description="1.50"/>
1132
+ <tag line="2466" name="param" description="full path and file name" type="string" variable="$file_name">
1133
+ <type by_reference="false">string</type>
1134
+ </tag>
1135
+ <tag line="2466" name="param" description="offset within the file of the xref id and count entry" type="integer" variable="$file_offset">
1136
+ <type by_reference="false">integer</type>
1137
+ </tag>
1138
+ <tag line="2466" name="return" description="length of the section" type="integer">
1139
+ <type by_reference="false">integer</type>
1140
+ </tag>
1141
+ </docblock>
1142
+ <argument line="2477">
1143
+ <name>$file_name</name>
1144
+ <default><![CDATA[]]></default>
1145
+ <type/>
1146
+ </argument>
1147
+ <argument line="2477">
1148
+ <name>$file_offset</name>
1149
+ <default><![CDATA[]]></default>
1150
+ <type/>
1151
+ </argument>
1152
+ </method>
1153
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2511" package="Media Library Assistant">
1154
+ <name>_parse_pdf_xref_stream</name>
1155
+ <full_name>_parse_pdf_xref_stream</full_name>
1156
+ <docblock line="2499">
1157
+ <description><![CDATA[Parse a cross-reference steam into the array of indirect object definitions]]></description>
1158
+ <long-description><![CDATA[<p>Creates the array of indirect object offsets and lengths</p>]]></long-description>
1159
+ <tag line="2499" name="since" description="1.50"/>
1160
+ <tag line="2499" name="param" description="full path and file name" type="string" variable="$file_name">
1161
+ <type by_reference="false">string</type>
1162
+ </tag>
1163
+ <tag line="2499" name="param" description="offset within the file of the xref id and count entry" type="integer" variable="$file_offset">
1164
+ <type by_reference="false">integer</type>
1165
+ </tag>
1166
+ <tag line="2499" name="param" description="&quot;/W&quot; entry, representing the size of the fields in a single entry" type="string" variable="$entry_parms_string">
1167
+ <type by_reference="false">string</type>
1168
+ </tag>
1169
+ <tag line="2499" name="return" description="length of the stream" type="integer">
1170
+ <type by_reference="false">integer</type>
1171
+ </tag>
1172
+ </docblock>
1173
+ <argument line="2511">
1174
+ <name>$file_name</name>
1175
+ <default><![CDATA[]]></default>
1176
+ <type/>
1177
+ </argument>
1178
+ <argument line="2511">
1179
+ <name>$file_offset</name>
1180
+ <default><![CDATA[]]></default>
1181
+ <type/>
1182
+ </argument>
1183
+ <argument line="2511">
1184
+ <name>$entry_parms_string</name>
1185
+ <default><![CDATA[]]></default>
1186
+ <type/>
1187
+ </argument>
1188
+ </method>
1189
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2585" package="Media Library Assistant">
1190
  <name>_build_pdf_indirect_objects</name>
1191
  <full_name>_build_pdf_indirect_objects</full_name>
1192
+ <docblock line="2575">
1193
  <description><![CDATA[Build an array of indirect object definitions]]></description>
1194
  <long-description><![CDATA[<p>Creates the array of indirect object offsets and lengths</p>]]></long-description>
1195
+ <tag line="2575" name="since" description="1.50"/>
1196
+ <tag line="2575" name="param" description="The entire PDF document, passsed by reference" type="string" variable="$string">
1197
  <type by_reference="false">string</type>
1198
  </tag>
1199
+ <tag line="2575" name="return" description="" type="void">
1200
  <type by_reference="false">void</type>
1201
  </tag>
1202
  </docblock>
1203
+ <argument line="2585">
1204
  <name>$string</name>
1205
  <default><![CDATA[]]></default>
1206
  <type/>
1207
  </argument>
1208
  </method>
1209
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2634" package="Media Library Assistant">
1210
  <name>_find_pdf_indirect_dictionary</name>
1211
  <full_name>_find_pdf_indirect_dictionary</full_name>
1212
+ <docblock line="2620">
1213
  <description><![CDATA[Find the offset, length and contents of an indirect object containing a dictionary]]></description>
1214
+ <long-description><![CDATA[<p>The function searches the entire file, if necessary, to find the last/most recent copy of the object.
1215
+ This is required because Adobe Acrobat does NOT increment the generation number when it reuses an object.</p>]]></long-description>
1216
+ <tag line="2620" name="since" description="1.50"/>
1217
+ <tag line="2620" name="param" description="full path and file name" type="string" variable="$file_name">
1218
  <type by_reference="false">string</type>
1219
  </tag>
1220
+ <tag line="2620" name="param" description="The object number" type="integer" variable="$object">
1221
  <type by_reference="false">integer</type>
1222
  </tag>
1223
+ <tag line="2620" name="param" description="The object generation number; default zero (0)" type="integer" variable="$generation">
1224
  <type by_reference="false">integer</type>
1225
  </tag>
1226
+ <tag line="2620" name="return" description="NULL on failure else array( 'start' =&gt; offset in the file, 'length' =&gt; object length, 'content' =&gt; dictionary contents )" type="mixed">
1227
  <type by_reference="false">mixed</type>
1228
  </tag>
1229
  </docblock>
1230
+ <argument line="2634">
1231
+ <name>$file_name</name>
1232
  <default><![CDATA[]]></default>
1233
  <type/>
1234
  </argument>
1235
+ <argument line="2634">
1236
  <name>$object</name>
1237
  <default><![CDATA[]]></default>
1238
  <type/>
1239
  </argument>
1240
+ <argument line="2634">
1241
  <name>$generation</name>
1242
  <default><![CDATA[0]]></default>
1243
  <type/>
1244
  </argument>
1245
  </method>
1246
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2730" package="Media Library Assistant">
1247
  <name>_parse_iso8601_date</name>
1248
  <full_name>_parse_iso8601_date</full_name>
1249
+ <docblock line="2721">
1250
  <description><![CDATA[Parse a ISO 8601 Timestamp]]></description>
1251
  <long-description><![CDATA[]]></long-description>
1252
+ <tag line="2721" name="since" description="1.50"/>
1253
+ <tag line="2721" name="param" description="ISO string of the form YYYY-MM-DDTHH:MM:SS-HH:MM (inc time zone)" type="string" variable="$source_string">
1254
  <type by_reference="false">string</type>
1255
  </tag>
1256
+ <tag line="2721" name="return" description="formatted date string YYYY-MM-DD HH:mm:SS" type="string">
1257
  <type by_reference="false">string</type>
1258
  </tag>
1259
  </docblock>
1260
+ <argument line="2730">
1261
  <name>$source_string</name>
1262
  <default><![CDATA[]]></default>
1263
  <type/>
1264
  </argument>
1265
  </method>
1266
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2752" package="Media Library Assistant">
1267
  <name>_parse_pdf_date</name>
1268
  <full_name>_parse_pdf_date</full_name>
1269
+ <docblock line="2743">
1270
  <description><![CDATA[Parse a PDF date string]]></description>
1271
  <long-description><![CDATA[]]></long-description>
1272
+ <tag line="2743" name="since" description="1.50"/>
1273
+ <tag line="2743" name="param" description="PDF date string of the form D:YYYYMMDDHHmmSSOHH'mm" type="string" variable="$source_string">
1274
  <type by_reference="false">string</type>
1275
  </tag>
1276
+ <tag line="2743" name="return" description="formatted date string YYYY-MM-DD HH:mm:SS" type="string">
1277
  <type by_reference="false">string</type>
1278
  </tag>
1279
  </docblock>
1280
+ <argument line="2752">
1281
  <name>$source_string</name>
1282
  <default><![CDATA[]]></default>
1283
  <type/>
1284
  </argument>
1285
  </method>
1286
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2774" package="Media Library Assistant">
1287
  <name>_parse_pdf_UTF16BE</name>
1288
  <full_name>_parse_pdf_UTF16BE</full_name>
1289
+ <docblock line="2765">
1290
  <description><![CDATA[Parse a PDF Unicode (16-bit Big Endian) object]]></description>
1291
  <long-description><![CDATA[]]></long-description>
1292
+ <tag line="2765" name="since" description="1.50"/>
1293
+ <tag line="2765" name="param" description="PDF string of 16-bit characters" type="string" variable="$source_string">
1294
  <type by_reference="false">string</type>
1295
  </tag>
1296
+ <tag line="2765" name="return" description="UTF-8 encoded string" type="string">
1297
  <type by_reference="false">string</type>
1298
  </tag>
1299
  </docblock>
1300
+ <argument line="2774">
1301
  <name>$source_string</name>
1302
  <default><![CDATA[]]></default>
1303
  <type/>
1304
  </argument>
1305
  </method>
1306
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2803" package="Media Library Assistant">
1307
  <name>_parse_pdf_string</name>
1308
  <full_name>_parse_pdf_string</full_name>
1309
+ <docblock line="2790">
1310
  <description><![CDATA[Parse a PDF string object]]></description>
1311
  <long-description><![CDATA[<p>Returns an array with one dictionary entry. The array also has a '/length' element containing
1312
  the number of bytes occupied by the string in the source string, including the enclosing parentheses.</p>]]></long-description>
1313
+ <tag line="2790" name="since" description="1.50"/>
1314
+ <tag line="2790" name="param" description="data within which the string occurs" type="string" variable="$source_string">
1315
  <type by_reference="false">string</type>
1316
  </tag>
1317
+ <tag line="2790" name="param" description="offset within the source string of the opening '(' character." type="integer" variable="$offset">
1318
  <type by_reference="false">integer</type>
1319
  </tag>
1320
+ <tag line="2790" name="return" description="( key =&gt; array( 'type' =&gt; type, 'value' =&gt; value, '/length' =&gt; length ) ) for the string" type="array">
1321
  <type by_reference="false">array</type>
1322
  </tag>
1323
  </docblock>
1324
+ <argument line="2803">
1325
  <name>$source_string</name>
1326
  <default><![CDATA[]]></default>
1327
  <type/>
1328
  </argument>
1329
+ <argument line="2803">
1330
  <name>$offset</name>
1331
  <default><![CDATA[]]></default>
1332
  <type/>
1333
  </argument>
1334
  </method>
1335
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2891" package="Media Library Assistant">
1336
+ <name>_parse_pdf_LPD_dictionary</name>
1337
+ <full_name>_parse_pdf_LPD_dictionary</full_name>
1338
+ <docblock line="2877">
1339
+ <description><![CDATA[Parse a PDF Linearization Parameter Dictionary object]]></description>
1340
+ <long-description><![CDATA[<p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1341
+ indirect (object), name, array, dictionary, stream, and null.
1342
+ The array also has a '/length' element containing the number of bytes occupied by the
1343
+ dictionary in the source string, excluding the enclosing delimiters, if passed in.</p>]]></long-description>
1344
+ <tag line="2877" name="since" description="1.50"/>
1345
+ <tag line="2877" name="param" description="data within which the object occurs, typically the start of a PDF document" type="string" variable="$source_string">
1346
+ <type by_reference="false">string</type>
1347
+ </tag>
1348
+ <tag line="2877" name="param" description="filesize of the PDF document, for validation purposes, or zero (0) to ignore filesize" type="integer" variable="$filesize">
1349
+ <type by_reference="false">integer</type>
1350
+ </tag>
1351
+ <tag line="2877" name="return" description="array of dictionary objects on success, false on failure" type="mixed">
1352
+ <type by_reference="false">mixed</type>
1353
+ </tag>
1354
+ </docblock>
1355
+ <argument line="2891">
1356
+ <name>$source_string</name>
1357
+ <default><![CDATA[]]></default>
1358
+ <type/>
1359
+ </argument>
1360
+ <argument line="2891">
1361
+ <name>$filesize</name>
1362
+ <default><![CDATA[]]></default>
1363
+ <type/>
1364
+ </argument>
1365
+ </method>
1366
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2915" package="Media Library Assistant">
1367
  <name>_parse_pdf_dictionary</name>
1368
  <full_name>_parse_pdf_dictionary</full_name>
1369
+ <docblock line="2901">
1370
  <description><![CDATA[Parse a PDF dictionary object]]></description>
1371
  <long-description><![CDATA[<p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1372
  indirect (object), name, array, dictionary, stream, and null.
1373
  The array also has a '/length' element containing the number of bytes occupied by the
1374
+ dictionary in the source string, excluding the enclosing delimiters.</p>]]></long-description>
1375
+ <tag line="2901" name="since" description="1.50"/>
1376
+ <tag line="2901" name="param" description="data within which the string occurs" type="string" variable="$source_string">
1377
  <type by_reference="false">string</type>
1378
  </tag>
1379
+ <tag line="2901" name="param" description="offset within the source string of the opening '&lt;&lt;' characters or the first content character." type="integer" variable="$offset">
1380
  <type by_reference="false">integer</type>
1381
  </tag>
1382
+ <tag line="2901" name="return" description="( '/length' =&gt; length, key =&gt; array( 'type' =&gt; type, 'value' =&gt; value ) ) for each dictionary field" type="array">
1383
  <type by_reference="false">array</type>
1384
  </tag>
1385
  </docblock>
1386
+ <argument line="2915">
1387
  <name>$source_string</name>
1388
  <default><![CDATA[]]></default>
1389
  <type/>
1390
  </argument>
1391
+ <argument line="2915">
1392
  <name>$offset</name>
1393
  <default><![CDATA[]]></default>
1394
  <type/>
1395
  </argument>
1396
  </method>
1397
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3049" package="Media Library Assistant">
1398
  <name>_parse_xmp_metadata</name>
1399
  <full_name>_parse_xmp_metadata</full_name>
1400
+ <docblock line="3035">
1401
  <description><![CDATA[Parse an XMP object]]></description>
1402
  <long-description><![CDATA[<p>Returns an array of dictionary contents, classified by object type: boolean, numeric, string, hex (string),
1403
  indirect (object), name, array, dictionary, stream, and null.
1404
  The array also has a '/length' element containing the number of bytes occupied by the
1405
  dictionary in the source string, excluding the enclosing delimiters, if passed in.</p>]]></long-description>
1406
+ <tag line="3035" name="since" description="1.50"/>
1407
+ <tag line="3035" name="param" description="full path and file name" type="string" variable="$file_name">
1408
  <type by_reference="false">string</type>
1409
  </tag>
1410
+ <tag line="3035" name="param" description="offset within the file of the search start point" type="integer" variable="$file_offset">
1411
  <type by_reference="false">integer</type>
1412
  </tag>
1413
+ <tag line="3035" name="return" description="array of metadata values or NULL on failure" type="mixed">
1414
+ <type by_reference="false">mixed</type>
1415
  </tag>
1416
  </docblock>
1417
+ <argument line="3049">
1418
+ <name>$file_name</name>
1419
  <default><![CDATA[]]></default>
1420
  <type/>
1421
  </argument>
1422
+ <argument line="3049">
1423
+ <name>$file_offset</name>
1424
  <default><![CDATA[]]></default>
1425
  <type/>
1426
  </argument>
1427
  </method>
1428
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3317" package="Media Library Assistant">
1429
+ <name>_extract_pdf_trailer</name>
1430
+ <full_name>_extract_pdf_trailer</full_name>
1431
+ <docblock line="3307">
1432
+ <description><![CDATA[Extract dictionary from traditional cross-reference + trailer documents]]></description>
1433
+ <long-description><![CDATA[]]></long-description>
1434
+ <tag line="3307" name="since" description="1.50"/>
1435
+ <tag line="3307" name="param" description="full path to the desired file" type="string" variable="$file_name">
1436
+ <type by_reference="false">string</type>
1437
+ </tag>
1438
+ <tag line="3307" name="param" description="offset within file of the cross-reference table" type="integer" variable="$file_offset">
1439
+ <type by_reference="false">integer</type>
1440
+ </tag>
1441
+ <tag line="3307" name="return" description="array of &quot;PDF dictionary arrays&quot;, newest first, or NULL on failure" type="mixed">
1442
+ <type by_reference="false">mixed</type>
1443
+ </tag>
1444
+ </docblock>
1445
+ <argument line="3317">
1446
+ <name>$file_name</name>
1447
+ <default><![CDATA[]]></default>
1448
+ <type/>
1449
+ </argument>
1450
+ <argument line="3317">
1451
+ <name>$file_offset</name>
1452
+ <default><![CDATA[]]></default>
1453
+ <type/>
1454
+ </argument>
1455
+ </method>
1456
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3401" package="Media Library Assistant">
1457
  <name>_extract_pdf_metadata</name>
1458
  <full_name>_extract_pdf_metadata</full_name>
1459
+ <docblock line="3392">
1460
  <description><![CDATA[Extract Metadata from a PDF file]]></description>
1461
  <long-description><![CDATA[]]></long-description>
1462
+ <tag line="3392" name="since" description="1.50"/>
1463
+ <tag line="3392" name="param" description="full path to the desired file" type="string" variable="$file_name">
1464
  <type by_reference="false">string</type>
1465
  </tag>
1466
+ <tag line="3392" name="return" description="( key =&gt; value ) for each metadata field, in string format" type="array">
1467
  <type by_reference="false">array</type>
1468
  </tag>
1469
  </docblock>
1470
+ <argument line="3401">
1471
  <name>$file_name</name>
1472
  <default><![CDATA[]]></default>
1473
  <type/>
1474
  </argument>
1475
  </method>
1476
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3528" package="Media Library Assistant">
1477
  <name>_bin_to_utf8</name>
1478
  <full_name>_bin_to_utf8</full_name>
1479
+ <docblock line="3519">
1480
  <description><![CDATA[Replace SQL incorrect characters (0x80 - 0xFF) with their UTF-8 equivalents]]></description>
1481
  <long-description><![CDATA[]]></long-description>
1482
+ <tag line="3519" name="since" description="1.41"/>
1483
+ <tag line="3519" name="param" description="unencoded string" type="string" variable="$string">
1484
  <type by_reference="false">string</type>
1485
  </tag>
1486
+ <tag line="3519" name="return" description="UTF-8 encoded string" type="string">
1487
  <type by_reference="false">string</type>
1488
  </tag>
1489
  </docblock>
1490
+ <argument line="3528">
1491
  <name>$string</name>
1492
  <default><![CDATA[]]></default>
1493
  <type/>
1494
  </argument>
1495
  </method>
1496
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="3924" package="Media Library Assistant">
1497
  <name>mla_iptc_metadata_value</name>
1498
  <full_name>mla_iptc_metadata_value</full_name>
1499
+ <docblock line="3914">
1500
  <description><![CDATA[Parse one IPTC metadata field]]></description>
1501
+ <long-description><![CDATA[]]></long-description>
1502
+ <tag line="3914" name="since" description="1.41"/>
1503
+ <tag line="3914" name="param" description="field name - IPTC Identifier or friendly name/slug" type="string" variable="$iptc_key">
1504
  <type by_reference="false">string</type>
1505
  </tag>
1506
+ <tag line="3914" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1507
  <type by_reference="false">string</type>
1508
  </tag>
1509
+ <tag line="3914" name="return" description="string/array representation of metadata value or an empty string" type="mixed">
1510
  <type by_reference="false">mixed</type>
1511
  </tag>
1512
  </docblock>
1513
+ <argument line="3924">
1514
  <name>$iptc_key</name>
1515
  <default><![CDATA[]]></default>
1516
  <type/>
1517
  </argument>
1518
+ <argument line="3924">
1519
  <name>$item_metadata</name>
1520
  <default><![CDATA[]]></default>
1521
  <type/>
1522
  </argument>
1523
  </method>
1524
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="3956" package="Media Library Assistant">
1525
  <name>mla_exif_metadata_value</name>
1526
  <full_name>mla_exif_metadata_value</full_name>
1527
+ <docblock line="3944">
1528
  <description><![CDATA[Parse one EXIF metadata field]]></description>
1529
+ <long-description><![CDATA[<p>Also handles the special pseudo-values 'ALL_EXIF' and 'ALL_IPTC'.</p>]]></long-description>
1530
+ <tag line="3944" name="since" description="1.13"/>
1531
+ <tag line="3944" name="param" description="field name" type="string" variable="$exif_key">
 
1532
  <type by_reference="false">string</type>
1533
  </tag>
1534
+ <tag line="3944" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1535
  <type by_reference="false">string</type>
1536
  </tag>
1537
+ <tag line="3944" name="return" description="string/array representation of metadata value or an empty string" type="mixed">
1538
+ <type by_reference="false">mixed</type>
1539
  </tag>
1540
  </docblock>
1541
+ <argument line="3956">
1542
  <name>$exif_key</name>
1543
  <default><![CDATA[]]></default>
1544
  <type/>
1545
  </argument>
1546
+ <argument line="3956">
1547
  <name>$item_metadata</name>
1548
  <default><![CDATA[]]></default>
1549
  <type/>
1550
  </argument>
1551
  </method>
1552
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="4015" package="Media Library Assistant">
1553
  <name>mla_pdf_metadata_value</name>
1554
  <full_name>mla_pdf_metadata_value</full_name>
1555
+ <docblock line="4003">
1556
  <description><![CDATA[Parse one PDF metadata field]]></description>
1557
+ <long-description><![CDATA[<p>Also handles the special pseudo-value 'ALL_PDF'.</p>]]></long-description>
1558
+ <tag line="4003" name="since" description="1.50"/>
1559
+ <tag line="4003" name="param" description="field name" type="string" variable="$pdf_key">
 
1560
  <type by_reference="false">string</type>
1561
  </tag>
1562
+ <tag line="4003" name="param" description="metadata array containing iptc, exif, and pdf metadata arrays" type="string" variable="$item_metadata">
1563
  <type by_reference="false">string</type>
1564
  </tag>
1565
+ <tag line="4003" name="return" description="string/array representation of metadata value or an empty string" type="mixed">
1566
+ <type by_reference="false">mixed</type>
1567
  </tag>
1568
  </docblock>
1569
+ <argument line="4015">
1570
  <name>$pdf_key</name>
1571
  <default><![CDATA[]]></default>
1572
  <type/>
1573
  </argument>
1574
+ <argument line="4015">
1575
  <name>$item_metadata</name>
1576
  <default><![CDATA[]]></default>
1577
  <type/>
1578
  </argument>
1579
  </method>
1580
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="4058" package="Media Library Assistant">
1581
  <name>mla_fetch_attachment_image_metadata</name>
1582
  <full_name>mla_fetch_attachment_image_metadata</full_name>
1583
+ <docblock line="4046">
1584
  <description><![CDATA[Fetch and filter IPTC and EXIF meta data for an image attachment]]></description>
1585
  <long-description><![CDATA[<p>Returns</p>]]></long-description>
1586
+ <tag line="4046" name="since" description="0.90"/>
1587
+ <tag line="4046" name="param" description="post ID of attachment" type="int" variable="$post_id">
1588
  <type by_reference="false">int</type>
1589
  </tag>
1590
+ <tag line="4046" name="param" description="optional; if $post_id is zero, path to the image file." type="string" variable="$path">
1591
  <type by_reference="false">string</type>
1592
  </tag>
1593
+ <tag line="4046" name="return" description="Meta data variables" type="array">
1594
  <type by_reference="false">array</type>
1595
  </tag>
1596
  </docblock>
1597
+ <argument line="4058">
1598
  <name>$post_id</name>
1599
  <default><![CDATA[]]></default>
1600
  <type/>
1601
  </argument>
1602
+ <argument line="4058">
1603
  <name>$path</name>
1604
  <default><![CDATA['']]></default>
1605
  <type/>
1606
  </argument>
1607
  </method>
1608
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="4126" package="Media Library Assistant">
1609
  <name>mla_update_item_postmeta</name>
1610
  <full_name>mla_update_item_postmeta</full_name>
1611
+ <docblock line="4116">
1612
  <description><![CDATA[Update custom field data for a single attachment.]]></description>
1613
  <long-description><![CDATA[]]></long-description>
1614
+ <tag line="4116" name="since" description="1.40"/>
1615
+ <tag line="4116" name="param" description="The ID of the attachment to be updated" type="int" variable="$post_id">
1616
  <type by_reference="false">int</type>
1617
  </tag>
1618
+ <tag line="4116" name="param" description="Field name =&gt; value pairs" type="array" variable="$new_meta">
1619
  <type by_reference="false">array</type>
1620
  </tag>
1621
+ <tag line="4116" name="return" description="success/failure message(s)" type="string">
1622
  <type by_reference="false">string</type>
1623
  </tag>
1624
  </docblock>
1625
+ <argument line="4126">
1626
  <name>$post_id</name>
1627
  <default><![CDATA[]]></default>
1628
  <type/>
1629
  </argument>
1630
+ <argument line="4126">
1631
  <name>$new_meta</name>
1632
  <default><![CDATA[]]></default>
1633
  <type/>
1634
  </argument>
1635
  </method>
1636
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="4254" package="Media Library Assistant">
1637
  <name>mla_update_single_item</name>
1638
  <full_name>mla_update_single_item</full_name>
1639
+ <docblock line="4241">
1640
  <description><![CDATA[Update a single item; change the meta data
1641
  for a single attachment.]]></description>
1642
  <long-description><![CDATA[]]></long-description>
1643
+ <tag line="4241" name="since" description="0.1"/>
1644
+ <tag line="4241" name="param" description="The ID of the attachment to be updated" type="int" variable="$post_id">
1645
  <type by_reference="false">int</type>
1646
  </tag>
1647
+ <tag line="4241" name="param" description="Field name =&gt; value pairs" type="array" variable="$new_data">
1648
  <type by_reference="false">array</type>
1649
  </tag>
1650
+ <tag line="4241" name="param" description="Optional taxonomy term values, default null" type="array" variable="$tax_input">
1651
  <type by_reference="false">array</type>
1652
  </tag>
1653
+ <tag line="4241" name="param" description="Optional taxonomy actions (add, remove, replace), default null" type="array" variable="$tax_actions">
1654
  <type by_reference="false">array</type>
1655
  </tag>
1656
+ <tag line="4241" name="return" description="success/failure message and NULL content" type="array">
1657
  <type by_reference="false">array</type>
1658
  </tag>
1659
  </docblock>
1660
+ <argument line="4254">
1661
  <name>$post_id</name>
1662
  <default><![CDATA[]]></default>
1663
  <type/>
1664
  </argument>
1665
+ <argument line="4254">
1666
  <name>$new_data</name>
1667
  <default><![CDATA[]]></default>
1668
  <type/>
1669
  </argument>
1670
+ <argument line="4254">
1671
  <name>$tax_input</name>
1672
  <default><![CDATA[NULL]]></default>
1673
  <type/>
1674
  </argument>
1675
+ <argument line="4254">
1676
  <name>$tax_actions</name>
1677
  <default><![CDATA[NULL]]></default>
1678
  <type/>
1679
  </argument>
1680
  </method>
1681
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="4467" package="Media Library Assistant">
1682
  <name>_remove_tags</name>
1683
  <full_name>_remove_tags</full_name>
1684
+ <docblock line="4456">
1685
  <description><![CDATA[Remove tags from a term ids list]]></description>
1686
  <long-description><![CDATA[]]></long-description>
1687
+ <tag line="4456" name="since" description="0.40"/>
1688
+ <tag line="4456" name="param" description="The term ids currently assigned" type="array" variable="$terms_before">
1689
  <type by_reference="false">array</type>
1690
  </tag>
1691
+ <tag line="4456" name="param" description="| string The term ids (array) or names (string) to remove" type="array" variable="$tags">
1692
  <type by_reference="false">array</type>
1693
  </tag>
1694
+ <tag line="4456" name="param" description="The taxonomy object" type="object" variable="$taxonomy_obj">
1695
  <type by_reference="false">object</type>
1696
  </tag>
1697
+ <tag line="4456" name="return" description="Term ids of the surviving tags" type="array">
1698
  <type by_reference="false">array</type>
1699
  </tag>
1700
  </docblock>
1701
+ <argument line="4467">
1702
  <name>$terms_before</name>
1703
  <default><![CDATA[]]></default>
1704
  <type/>
1705
  </argument>
1706
+ <argument line="4467">
1707
  <name>$tags</name>
1708
  <default><![CDATA[]]></default>
1709
  <type/>
1710
  </argument>
1711
+ <argument line="4467">
1712
  <name>$taxonomy_obj</name>
1713
  <default><![CDATA[]]></default>
1714
  <type/>
1715
  </argument>
1716
  </method>
1717
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="4511" package="Media Library Assistant">
1718
  <name>_hex_dump</name>
1719
  <full_name>_hex_dump</full_name>
1720
+ <docblock line="4499">
1721
  <description><![CDATA[Format printable version of binary data]]></description>
1722
  <long-description><![CDATA[]]></long-description>
1723
+ <tag line="4499" name="since" description="0.90"/>
1724
+ <tag line="4499" name="param" description="Binary data" type="string" variable="$data">
1725
  <type by_reference="false">string</type>
1726
  </tag>
1727
+ <tag line="4499" name="param" description="Bytes to format, default = 0 (all bytes)" type="integer" variable="$limit">
1728
  <type by_reference="false">integer</type>
1729
  </tag>
1730
+ <tag line="4499" name="param" description="Bytes to format on each line" type="\intger" variable="$bytes_per_row">
1731
  <type by_reference="false">\intger</type>
1732
  </tag>
1733
+ <tag line="4499" name="param" description="offset of initial byte, or -1 to suppress printing offset information" type="integer" variable="$offset">
1734
+ <type by_reference="false">integer</type>
1735
+ </tag>
1736
+ <tag line="4499" name="return" description="Printable representation of $data" type="string">
1737
  <type by_reference="false">string</type>
1738
  </tag>
1739
  </docblock>
1740
+ <argument line="4511">
1741
  <name>$data</name>
1742
  <default><![CDATA[]]></default>
1743
  <type/>
1744
  </argument>
1745
+ <argument line="4511">
1746
  <name>$limit</name>
1747
  <default><![CDATA[0]]></default>
1748
  <type/>
1749
  </argument>
1750
+ <argument line="4511">
1751
  <name>$bytes_per_row</name>
1752
  <default><![CDATA[16]]></default>
1753
  <type/>
1754
  </argument>
1755
+ <argument line="4511">
1756
+ <name>$offset</name>
1757
+ <default><![CDATA[-1]]></default>
1758
+ <type/>
1759
+ </argument>
1760
  </method>
1761
  </class>
1762
  <markers>
1763
+ <todo line="2783">encode the rest</todo>
1764
  </markers>
1765
  </file>
1766
  <file path="includes\class-mla-edit-media.php" hash="ffa4ba62a4969d2e50e12b044ce0cace" package="Media Library Assistant">
2067
  </method>
2068
  </class>
2069
  </file>
2070
+ <file path="includes\class-mla-list-table.php" hash="5a90b71280002569d10abfd4e2018d73" package="Media Library Assistant">
2071
  <docblock line="2">
2072
  <description><![CDATA[Media Library Assistant extended List Table class]]></description>
2073
  <long-description><![CDATA[]]></long-description>
2835
  <type/>
2836
  </argument>
2837
  </method>
2838
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1062" package="Media Library Assistant">
2839
+ <name>mla_submenu_arguments</name>
2840
+ <full_name>mla_submenu_arguments</full_name>
2841
  <docblock line="1053">
2842
  <description><![CDATA[Process $_REQUEST, building $submenu_arguments]]></description>
2843
  <long-description><![CDATA[]]></long-description>
2844
  <tag line="1053" name="since" description="1.42"/>
2845
+ <tag line="1053" name="param" description="Optional: Include the &quot;click filter&quot; values in the results" type="boolean" variable="$include_filters">
2846
+ <type by_reference="false">boolean</type>
2847
+ </tag>
2848
  <tag line="1053" name="return" description="non-empty view, search, filter and sort arguments" type="array">
2849
  <type by_reference="false">array</type>
2850
  </tag>
2851
  </docblock>
2852
+ <argument line="1062">
2853
+ <name>$include_filters</name>
2854
+ <default><![CDATA[true]]></default>
2855
+ <type/>
2856
+ </argument>
2857
  </method>
2858
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1151" package="Media Library Assistant">
2859
  <name>pagination</name>
2860
  <full_name>pagination</full_name>
2861
+ <docblock line="1143">
2862
  <description><![CDATA[Display the pagination, adding view, search and filter arguments]]></description>
2863
  <long-description><![CDATA[]]></long-description>
2864
+ <tag line="1143" name="since" description="1.42"/>
2865
+ <tag line="1143" name="param" description="'top' | 'bottom'" type="string" variable="$which">
2866
  <type by_reference="false">string</type>
2867
  </tag>
2868
+ <tag line="1143" name="return" description="" type="void">
2869
  <type by_reference="false">void</type>
2870
  </tag>
2871
  </docblock>
2872
+ <argument line="1151">
2873
  <name>$which</name>
2874
  <default><![CDATA[]]></default>
2875
  <type/>
2876
  </argument>
2877
  </method>
2878
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1165" package="Media Library Assistant">
2879
  <name>get_columns</name>
2880
  <full_name>get_columns</full_name>
2881
+ <docblock line="1158">
2882
  <description><![CDATA[This method dictates the table's columns and titles]]></description>
2883
  <long-description><![CDATA[]]></long-description>
2884
+ <tag line="1158" name="since" description="0.1"/>
2885
+ <tag line="1158" name="return" description="Column information: 'slugs'=&gt;'Visible Titles'" type="array">
2886
  <type by_reference="false">array</type>
2887
  </tag>
2888
  </docblock>
2889
  </method>
2890
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1177" package="Media Library Assistant">
2891
  <name>get_hidden_columns</name>
2892
  <full_name>get_hidden_columns</full_name>
2893
+ <docblock line="1169">
2894
  <description><![CDATA[Returns the list of currently hidden columns from a user option or
2895
  from default values if the option is not set]]></description>
2896
  <long-description><![CDATA[]]></long-description>
2897
+ <tag line="1169" name="since" description="0.1"/>
2898
+ <tag line="1169" name="return" description="Column information,e.g., array(0 =&gt; 'ID_parent, 1 =&gt; 'title_name')" type="array">
2899
  <type by_reference="false">array</type>
2900
  </tag>
2901
  </docblock>
2902
  </method>
2903
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1197" package="Media Library Assistant">
2904
  <name>get_sortable_columns</name>
2905
  <full_name>get_sortable_columns</full_name>
2906
+ <docblock line="1187">
2907
  <description><![CDATA[Returns an array where the key is the column that needs to be sortable
2908
  and the value is db column to sort by.]]></description>
2909
  <long-description><![CDATA[<p>Also notes the current sort column,
2910
  if set.</p>]]></long-description>
2911
+ <tag line="1187" name="since" description="0.1"/>
2912
+ <tag line="1187" name="return" description="Sortable column information,e.g., 'slugs'=&gt;array('data_values',boolean)" type="array">
2913
  <type by_reference="false">array</type>
2914
  </tag>
2915
  </docblock>
2916
  </method>
2917
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1223" package="Media Library Assistant">
2918
  <name>print_column_headers</name>
2919
  <full_name>print_column_headers</full_name>
2920
+ <docblock line="1216">
2921
  <description><![CDATA[Print column headers, adding view, search and filter arguments]]></description>
2922
  <long-description><![CDATA[]]></long-description>
2923
+ <tag line="1216" name="since" description="1.42"/>
2924
+ <tag line="1216" name="param" description="Whether to set the id attribute or not" type="bool" variable="$with_id">
2925
  <type by_reference="false">bool</type>
2926
  </tag>
2927
  </docblock>
2928
+ <argument line="1223">
2929
  <name>$with_id</name>
2930
  <default><![CDATA[true]]></default>
2931
  <type/>
2932
  </argument>
2933
  </method>
2934
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1240" package="Media Library Assistant">
2935
  <name>_get_view</name>
2936
  <full_name>_get_view</full_name>
2937
+ <docblock line="1230">
2938
  <description><![CDATA[Returns HTML markup for one view that can be used with this table]]></description>
2939
  <long-description><![CDATA[]]></long-description>
2940
+ <tag line="1230" name="since" description="1.40"/>
2941
+ <tag line="1230" name="param" description="View slug, key to MLA_POST_MIME_TYPES array" type="string" variable="$view_slug">
2942
  <type by_reference="false">string</type>
2943
  </tag>
2944
+ <tag line="1230" name="param" description="Slug for current view" type="string" variable="$current_view">
2945
  <type by_reference="false">string</type>
2946
  </tag>
2947
+ <tag line="1230" name="return" description="| false HTML for link to display the view, false if count = zero" type="string">
2948
  <type by_reference="false">string</type>
2949
  </tag>
2950
  </docblock>
2951
+ <argument line="1240">
2952
  <name>$view_slug</name>
2953
  <default><![CDATA[]]></default>
2954
  <type/>
2955
  </argument>
2956
+ <argument line="1240">
2957
  <name>$current_view</name>
2958
  <default><![CDATA[]]></default>
2959
  <type/>
2960
  </argument>
2961
  </method>
2962
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1350" package="Media Library Assistant">
2963
  <name>get_views</name>
2964
  <full_name>get_views</full_name>
2965
+ <docblock line="1342">
2966
  <description><![CDATA[Returns an associative array listing all the views that can be used with this table.]]></description>
2967
  <long-description><![CDATA[<p>These are listed across the top of the page and managed by WordPress.</p>]]></long-description>
2968
+ <tag line="1342" name="since" description="0.1"/>
2969
+ <tag line="1342" name="return" description="View information,e.g., array ( id =&gt; link )" type="array">
2970
  <type by_reference="false">array</type>
2971
  </tag>
2972
  </docblock>
2973
  </method>
2974
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1398" package="Media Library Assistant">
2975
  <name>get_bulk_actions</name>
2976
  <full_name>get_bulk_actions</full_name>
2977
+ <docblock line="1390">
2978
  <description><![CDATA[Get an associative array ( option_name => option_title ) with the list
2979
  of bulk actions available on this table.]]></description>
2980
  <long-description><![CDATA[]]></long-description>
2981
+ <tag line="1390" name="since" description="0.1"/>
2982
+ <tag line="1390" name="return" description="Contains all the bulk actions: 'slugs'=&gt;'Visible Titles'" type="array">
2983
  <type by_reference="false">array</type>
2984
  </tag>
2985
  </docblock>
2986
  </method>
2987
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1429" package="Media Library Assistant">
2988
  <name>extra_tablenav</name>
2989
  <full_name>extra_tablenav</full_name>
2990
+ <docblock line="1418">
2991
  <description><![CDATA[Extra controls to be displayed between bulk actions and pagination]]></description>
2992
  <long-description><![CDATA[<p>Modeled after class-wp-posts-list-table.php in wp-admin/includes.</p>]]></long-description>
2993
+ <tag line="1418" name="since" description="0.1"/>
2994
+ <tag line="1418" name="param" description="'top' or 'bottom', i.e., above or below the table rows" type="string" variable="$which">
2995
  <type by_reference="false">string</type>
2996
  </tag>
2997
+ <tag line="1418" name="return" description="Contains all the bulk actions: 'slugs'=&gt;'Visible Titles'" type="array">
2998
  <type by_reference="false">array</type>
2999
  </tag>
3000
  </docblock>
3001
+ <argument line="1429">
3002
  <name>$which</name>
3003
  <default><![CDATA[]]></default>
3004
  <type/>
3005
  </argument>
3006
  </method>
3007
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1466" package="Media Library Assistant">
3008
  <name>prepare_items</name>
3009
  <full_name>prepare_items</full_name>
3010
+ <docblock line="1454">
3011
  <description><![CDATA[Prepares the list of items for displaying]]></description>
3012
  <long-description><![CDATA[<p>This is where you prepare your data for display. This method will usually
3013
  be used to query the database, sort and filter the data, and generally
3014
  get it ready to be displayed. At a minimum, we should set $this->items and
3015
  $this->set_pagination_args().</p>]]></long-description>
3016
+ <tag line="1454" name="since" description="0.1"/>
3017
+ <tag line="1454" name="return" description="" type="void">
3018
  <type by_reference="false">void</type>
3019
  </tag>
3020
  </docblock>
3021
  </method>
3022
+ <method final="false" abstract="false" static="false" visibility="public" namespace="global" line="1513" package="Media Library Assistant">
3023
  <name>single_row</name>
3024
  <full_name>single_row</full_name>
3025
+ <docblock line="1504">
3026
  <description><![CDATA[Generates (echoes) content for a single row of the table]]></description>
3027
  <long-description><![CDATA[]]></long-description>
3028
+ <tag line="1504" name="since" description=".20"/>
3029
+ <tag line="1504" name="param" description="the current item" type="object" variable="$item">
3030
  <type by_reference="false">object</type>
3031
  </tag>
3032
+ <tag line="1504" name="return" description="Echoes the row HTML" type="void">
3033
  <type by_reference="false">void</type>
3034
  </tag>
3035
  </docblock>
3036
+ <argument line="1513">
3037
  <name>$item</name>
3038
  <default><![CDATA[]]></default>
3039
  <type/>
3041
  </method>
3042
  </class>
3043
  </file>
3044
+ <file path="includes\class-mla-main.php" hash="e5727fc114c04807546516c3e5927f74" package="Media Library Assistant">
3045
  <docblock line="2">
3046
  <description><![CDATA[Top-level functions for the Media Library Assistant]]></description>
3047
  <long-description><![CDATA[]]></long-description>
3078
  <constant namespace="global" line="41" package="Media Library Assistant">
3079
  <name>CURRENT_MLA_VERSION</name>
3080
  <full_name>CURRENT_MLA_VERSION</full_name>
3081
+ <value><![CDATA['1.50']]></value>
3082
  <docblock line="34">
3083
  <description><![CDATA[Current version number]]></description>
3084
  <long-description><![CDATA[]]></long-description>
3346
  </tag>
3347
  </docblock>
3348
  </method>
3349
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="367" package="Media Library Assistant">
3350
  <name>mla_add_menu_options</name>
3351
  <full_name>mla_add_menu_options</full_name>
3352
+ <docblock line="360">
3353
  <description><![CDATA[Add the "XX Entries per page" filter to the Screen Options tab]]></description>
3354
  <long-description><![CDATA[]]></long-description>
3355
+ <tag line="360" name="since" description="0.1"/>
3356
+ <tag line="360" name="return" description="" type="void">
3357
  <type by_reference="false">void</type>
3358
  </tag>
3359
  </docblock>
3360
  </method>
3361
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="386" package="Media Library Assistant">
3362
  <name>mla_add_help_tab</name>
3363
  <full_name>mla_add_help_tab</full_name>
3364
+ <docblock line="379">
3365
  <description><![CDATA[Add contextual help tabs to all the MLA pages]]></description>
3366
  <long-description><![CDATA[]]></long-description>
3367
+ <tag line="379" name="since" description="0.1"/>
3368
+ <tag line="379" name="return" description="" type="void">
3369
  <type by_reference="false">void</type>
3370
  </tag>
3371
  </docblock>
3372
  </method>
3373
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="487" package="Media Library Assistant">
3374
  <name>mla_screen_options_show_screen_filter</name>
3375
  <full_name>mla_screen_options_show_screen_filter</full_name>
3376
+ <docblock line="477">
3377
  <description><![CDATA[Only show screen options on the table-list screen]]></description>
3378
  <long-description><![CDATA[]]></long-description>
3379
+ <tag line="477" name="since" description="0.1"/>
3380
+ <tag line="477" name="param" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean" variable="$show_screen">
3381
  <type by_reference="false">boolean</type>
3382
  </tag>
3383
+ <tag line="477" name="param" description="Name of the page being loaded" type="string" variable="$this_screen">
3384
  <type by_reference="false">string</type>
3385
  </tag>
3386
+ <tag line="477" name="return" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean">
3387
  <type by_reference="false">boolean</type>
3388
  </tag>
3389
  </docblock>
3390
+ <argument line="487">
3391
  <name>$show_screen</name>
3392
  <default><![CDATA[]]></default>
3393
  <type/>
3394
  </argument>
3395
+ <argument line="487">
3396
  <name>$this_screen</name>
3397
  <default><![CDATA[]]></default>
3398
  <type/>
3399
  </argument>
3400
  </method>
3401
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="505" package="Media Library Assistant">
3402
  <name>mla_set_screen_option_filter</name>
3403
  <full_name>mla_set_screen_option_filter</full_name>
3404
+ <docblock line="494">
3405
  <description><![CDATA[Save the "Entries per page" option set by this user]]></description>
3406
  <long-description><![CDATA[]]></long-description>
3407
+ <tag line="494" name="since" description="0.1"/>
3408
+ <tag line="494" name="param" description="false or value returned by previous filter" type="mixed" variable="$status">
3409
  <type by_reference="false">mixed</type>
3410
  </tag>
3411
+ <tag line="494" name="param" description="Name of the option being changed" type="string" variable="$option">
3412
  <type by_reference="false">string</type>
3413
  </tag>
3414
+ <tag line="494" name="param" description="New value of the option" type="string" variable="$value">
3415
  <type by_reference="false">string</type>
3416
  </tag>
3417
+ <tag line="494" name="return" description="New value if this is our option, otherwise nothing" type="string|void">
3418
  <type by_reference="false">string</type>
3419
  <type by_reference="false">void</type>
3420
  </tag>
3421
  </docblock>
3422
+ <argument line="505">
3423
  <name>$status</name>
3424
  <default><![CDATA[]]></default>
3425
  <type/>
3426
  </argument>
3427
+ <argument line="505">
3428
  <name>$option</name>
3429
  <default><![CDATA[]]></default>
3430
  <type/>
3431
  </argument>
3432
+ <argument line="505">
3433
  <name>$value</name>
3434
  <default><![CDATA[]]></default>
3435
  <type/>
3436
  </argument>
3437
  </method>
3438
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="524" package="Media Library Assistant">
3439
  <name>mla_edit_tax_redirect</name>
3440
  <full_name>mla_edit_tax_redirect</full_name>
3441
+ <docblock line="513">
3442
  <description><![CDATA[Redirect to the Edit Tags/Categories page]]></description>
3443
  <long-description><![CDATA[<p>The custom taxonomy add/edit submenu entries go to "upload.php" by default.
3444
  This filter is the only way to redirect them to the correct WordPress page.
3445
  The filter is not required for WordPress 3.5 and later.</p>]]></long-description>
3446
+ <tag line="513" name="since" description="0.1"/>
3447
+ <tag line="513" name="return" description="" type="void">
3448
  <type by_reference="false">void</type>
3449
  </tag>
3450
  </docblock>
3451
  </method>
3452
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="557" package="Media Library Assistant">
3453
  <name>mla_parent_file_filter</name>
3454
  <full_name>mla_parent_file_filter</full_name>
3455
+ <docblock line="541">
3456
  <description><![CDATA[Cleanup menus for Edit Tags/Categories page]]></description>
3457
  <long-description><![CDATA[<p>For WordPress before 3.5, the submenu entries for custom taxonomies
3458
  under the "Media" menu are not set up correctly by WordPress, so this
3460
  page for editing/adding taxonomy terms.
3461
  For WordPress 3.5 and later, the function fixes the submenu bolding when
3462
  going to the Edit Media screen.</p>]]></long-description>
3463
+ <tag line="541" name="since" description="0.1"/>
3464
+ <tag line="541" name="param" description="The top-level menu page" type="array" variable="$parent_file">
3465
  <type by_reference="false">array</type>
3466
  </tag>
3467
+ <tag line="541" name="return" description="The updated top-level menu page" type="string">
3468
  <type by_reference="false">string</type>
3469
  </tag>
3470
  </docblock>
3471
+ <argument line="557">
3472
  <name>$parent_file</name>
3473
  <default><![CDATA[]]></default>
3474
  <type/>
3475
  </argument>
3476
  </method>
3477
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="610" package="Media Library Assistant">
3478
  <name>mla_render_admin_page</name>
3479
  <full_name>mla_render_admin_page</full_name>
3480
+ <docblock line="603">
3481
  <description><![CDATA[Render the "Assistant" subpage in the Media section, using the list_table package]]></description>
3482
  <long-description><![CDATA[]]></long-description>
3483
+ <tag line="603" name="since" description="0.1"/>
3484
+ <tag line="603" name="return" description="" type="void">
3485
  <type by_reference="false">void</type>
3486
  </tag>
3487
  </docblock>
3488
  </method>
3489
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="981" package="Media Library Assistant">
3490
  <name>mla_inline_edit_action</name>
3491
  <full_name>mla_inline_edit_action</full_name>
3492
+ <docblock line="972">
3493
  <description><![CDATA[Ajax handler for inline editing (quick and bulk edit)]]></description>
3494
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
3495
+ <tag line="972" name="since" description="0.20"/>
3496
+ <tag line="972" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
3497
  <type by_reference="false">void</type>
3498
  </tag>
3499
  </docblock>
3500
  </method>
3501
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1075" package="Media Library Assistant">
3502
  <name>_build_inline_edit_form</name>
3503
  <full_name>_build_inline_edit_form</full_name>
3504
+ <docblock line="1064">
3505
  <description><![CDATA[Build the hidden row templates for inline editing (quick and bulk edit)]]></description>
3506
  <long-description><![CDATA[<p>inspired by inline_edit() in wp-admin\includes\class-wp-posts-list-table.php.</p>]]></long-description>
3507
+ <tag line="1064" name="since" description="0.20"/>
3508
+ <tag line="1064" name="param" description="MLA List Table object" type="object" variable="$MLAListTable">
3509
  <type by_reference="false">object</type>
3510
  </tag>
3511
+ <tag line="1064" name="return" description="HTML &lt;form&gt; markup for hidden rows" type="string">
3512
  <type by_reference="false">string</type>
3513
  </tag>
3514
  </docblock>
3515
+ <argument line="1075">
3516
  <name>$MLAListTable</name>
3517
  <default><![CDATA[]]></default>
3518
  <type/>
3519
  </argument>
3520
  </method>
3521
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1232" package="Media Library Assistant">
3522
  <name>_authors_dropdown</name>
3523
  <full_name>_authors_dropdown</full_name>
3524
+ <docblock line="1221">
3525
  <description><![CDATA[Get the edit Authors dropdown box, if user has suitable permissions]]></description>
3526
  <long-description><![CDATA[]]></long-description>
3527
+ <tag line="1221" name="since" description="0.20"/>
3528
+ <tag line="1221" name="param" description="Optional User ID of the current author, default 0" type="integer" variable="$author">
3529
  <type by_reference="false">integer</type>
3530
  </tag>
3531
+ <tag line="1221" name="param" description="Optional HTML name attribute, default 'post_author'" type="string" variable="$name">
3532
  <type by_reference="false">string</type>
3533
  </tag>
3534
+ <tag line="1221" name="param" description="Optional HTML class attribute, default 'authors'" type="string" variable="$class">
3535
  <type by_reference="false">string</type>
3536
  </tag>
3537
+ <tag line="1221" name="return" description="HTML markup for the dropdown field or False" type="string|false">
3538
  <type by_reference="false">string</type>
3539
  <type by_reference="false">false</type>
3540
  </tag>
3541
  </docblock>
3542
+ <argument line="1232">
3543
  <name>$author</name>
3544
  <default><![CDATA[0]]></default>
3545
  <type/>
3546
  </argument>
3547
+ <argument line="1232">
3548
  <name>$name</name>
3549
  <default><![CDATA['post_author']]></default>
3550
  <type/>
3551
  </argument>
3552
+ <argument line="1232">
3553
  <name>$class</name>
3554
  <default><![CDATA['authors']]></default>
3555
  <type/>
3556
  </argument>
3557
  </method>
3558
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1266" package="Media Library Assistant">
3559
  <name>_current_bulk_action</name>
3560
  <full_name>_current_bulk_action</full_name>
3561
+ <docblock line="1259">
3562
  <description><![CDATA[Get the current action selected from the bulk actions dropdown]]></description>
3563
  <long-description><![CDATA[]]></long-description>
3564
+ <tag line="1259" name="since" description="0.1"/>
3565
+ <tag line="1259" name="return" description="The action name or False if no action was selected" type="string|false">
3566
  <type by_reference="false">string</type>
3567
  <type by_reference="false">false</type>
3568
  </tag>
3569
  </docblock>
3570
  </method>
3571
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1295" package="Media Library Assistant">
3572
  <name>_delete_single_item</name>
3573
  <full_name>_delete_single_item</full_name>
3574
+ <docblock line="1286">
3575
  <description><![CDATA[Delete a single item permanently]]></description>
3576
  <long-description><![CDATA[]]></long-description>
3577
+ <tag line="1286" name="since" description="0.1"/>
3578
+ <tag line="1286" name="param" description="The form POST data" type="array" variable="$post_id">
3579
  <type by_reference="false">array</type>
3580
  </tag>
3581
+ <tag line="1286" name="return" description="success/failure message and NULL content" type="array">
3582
  <type by_reference="false">array</type>
3583
  </tag>
3584
  </docblock>
3585
+ <argument line="1295">
3586
  <name>$post_id</name>
3587
  <default><![CDATA[]]></default>
3588
  <type/>
3589
  </argument>
3590
  </method>
3591
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1326" package="Media Library Assistant">
3592
  <name>_display_single_item</name>
3593
  <full_name>_display_single_item</full_name>
3594
+ <docblock line="1314">
3595
  <description><![CDATA[Display a single item sub page; prepare the form to
3596
  change the meta data for a single attachment.]]></description>
3597
  <long-description><![CDATA[<p>This function is not used in WordPress 3.5 and later.</p>]]></long-description>
3598
+ <tag line="1314" name="since" description="0.1"/>
3599
+ <tag line="1314" name="param" description="The WordPress Post ID of the attachment item" type="int" variable="$post_id">
3600
  <type by_reference="false">int</type>
3601
  </tag>
3602
+ <tag line="1314" name="return" description="message and/or HTML content" type="array">
3603
  <type by_reference="false">array</type>
3604
  </tag>
3605
  </docblock>
3606
+ <argument line="1326">
3607
  <name>$post_id</name>
3608
  <default><![CDATA[]]></default>
3609
  <type/>
3610
  </argument>
3611
  </method>
3612
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1566" package="Media Library Assistant">
3613
  <name>_restore_single_item</name>
3614
  <full_name>_restore_single_item</full_name>
3615
+ <docblock line="1557">
3616
  <description><![CDATA[Restore a single item from the Trash]]></description>
3617
  <long-description><![CDATA[]]></long-description>
3618
+ <tag line="1557" name="since" description="0.1"/>
3619
+ <tag line="1557" name="param" description="The form POST data" type="array" variable="$post_id">
3620
  <type by_reference="false">array</type>
3621
  </tag>
3622
+ <tag line="1557" name="return" description="success/failure message and NULL content" type="array">
3623
  <type by_reference="false">array</type>
3624
  </tag>
3625
  </docblock>
3626
+ <argument line="1566">
3627
  <name>$post_id</name>
3628
  <default><![CDATA[]]></default>
3629
  <type/>
3630
  </argument>
3631
  </method>
3632
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1602" package="Media Library Assistant">
3633
  <name>_trash_single_item</name>
3634
  <full_name>_trash_single_item</full_name>
3635
+ <docblock line="1593">
3636
  <description><![CDATA[Move a single item to Trash]]></description>
3637
  <long-description><![CDATA[]]></long-description>
3638
+ <tag line="1593" name="since" description="0.1"/>
3639
+ <tag line="1593" name="param" description="The form POST data" type="array" variable="$post_id">
3640
  <type by_reference="false">array</type>
3641
  </tag>
3642
+ <tag line="1593" name="return" description="success/failure message and NULL content" type="array">
3643
  <type by_reference="false">array</type>
3644
  </tag>
3645
  </docblock>
3646
+ <argument line="1602">
3647
  <name>$post_id</name>
3648
  <default><![CDATA[]]></default>
3649
  <type/>
3878
  </method>
3879
  </class>
3880
  </file>
3881
+ <file path="includes\class-mla-mime-types.php" hash="8e54430399c7b15598e524e0cae79a44" package="Media Library Assistant">
3882
  <docblock line="2">
3883
  <description><![CDATA[Media Library Assistant MIME Type Support]]></description>
3884
  <long-description><![CDATA[]]></long-description>
4494
  <name>mla_parse_view_specification</name>
4495
  <full_name>mla_parse_view_specification</full_name>
4496
  <docblock line="817">
4497
+ <description><![CDATA[Analyze a Library View/Post MIME Type specification, returning an array of the placeholders it contains]]></description>
4498
  <long-description><![CDATA[]]></long-description>
4499
  <tag line="817" name="since" description="1.40"/>
4500
  <tag line="817" name="param" description="A specification, e.g., &quot;custom:Field,null&quot; or &quot;audio,application/vnd.*ms*&quot;" type="string" variable="$specification">
5104
  </method>
5105
  </class>
5106
  </file>
5107
+ <file path="includes\class-mla-objects.php" hash="f9722ede4bbbf4aa3061a18150e5ac46" package="Media Library Assistant">
5108
  <docblock line="2">
5109
  <description><![CDATA[Media Library Assistant Custom Taxonomy objects]]></description>
5110
  <long-description><![CDATA[]]></long-description>
5205
  </method>
5206
  </class>
5207
  </file>
5208
+ <file path="includes\class-mla-options.php" hash="00e9a7aa62ec4d5613c98416d09ce8db" package="Media Library Assistant">
5209
  <docblock line="2">
5210
  <description><![CDATA[Manages the plugin option settings]]></description>
5211
  <long-description><![CDATA[]]></long-description>
5233
  </docblock>
5234
  </constant>
5235
  <constant namespace="global" line="27" package="Media Library Assistant">
5236
+ <name>MLA_EXCLUDE_REVISIONS</name>
5237
+ <full_name>MLA_EXCLUDE_REVISIONS</full_name>
5238
+ <value><![CDATA['exclude_revisions']]></value>
5239
+ <docblock line="24">
5240
+ <description><![CDATA[Provides a unique name for the exclude revisions option]]></description>
5241
+ <long-description><![CDATA[]]></long-description>
5242
+ </docblock>
5243
+ </constant>
5244
+ <constant namespace="global" line="32" package="Media Library Assistant">
5245
  <name>MLA_FEATURED_IN_TUNING</name>
5246
  <full_name>MLA_FEATURED_IN_TUNING</full_name>
5247
  <value><![CDATA['featured_in_tuning']]></value>
5248
+ <docblock line="29">
5249
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
5250
  <long-description><![CDATA[]]></long-description>
5251
  </docblock>
5252
  </constant>
5253
+ <constant namespace="global" line="37" package="Media Library Assistant">
5254
  <name>MLA_INSERTED_IN_TUNING</name>
5255
  <full_name>MLA_INSERTED_IN_TUNING</full_name>
5256
  <value><![CDATA['inserted_in_tuning']]></value>
5257
+ <docblock line="34">
5258
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
5259
  <long-description><![CDATA[]]></long-description>
5260
  </docblock>
5261
  </constant>
5262
+ <constant namespace="global" line="42" package="Media Library Assistant">
5263
  <name>MLA_GALLERY_IN_TUNING</name>
5264
  <full_name>MLA_GALLERY_IN_TUNING</full_name>
5265
  <value><![CDATA['gallery_in_tuning']]></value>
5266
+ <docblock line="39">
5267
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
5268
  <long-description><![CDATA[]]></long-description>
5269
  </docblock>
5270
  </constant>
5271
+ <constant namespace="global" line="47" package="Media Library Assistant">
5272
  <name>MLA_MLA_GALLERY_IN_TUNING</name>
5273
  <full_name>MLA_MLA_GALLERY_IN_TUNING</full_name>
5274
  <value><![CDATA['mla_gallery_in_tuning']]></value>
5275
+ <docblock line="44">
5276
  <description><![CDATA[Provides a unique name for a database tuning option]]></description>
5277
  <long-description><![CDATA[]]></long-description>
5278
  </docblock>
5279
  </constant>
5280
+ <constant namespace="global" line="52" package="Media Library Assistant">
5281
+ <name>MLA_TAXONOMY_SUPPORT</name>
5282
+ <full_name>MLA_TAXONOMY_SUPPORT</full_name>
5283
+ <value><![CDATA['taxonomy_support']]></value>
5284
+ <docblock line="49">
5285
+ <description><![CDATA[Provides a unique name for the taxonomy support option]]></description>
5286
+ <long-description><![CDATA[]]></long-description>
5287
+ </docblock>
5288
+ </constant>
5289
+ <constant namespace="global" line="57" package="Media Library Assistant">
5290
+ <name>MLA_SCREEN_PAGE_TITLE</name>
5291
+ <full_name>MLA_SCREEN_PAGE_TITLE</full_name>
5292
+ <value><![CDATA['admin_screen_page_title']]></value>
5293
+ <docblock line="54">
5294
+ <description><![CDATA[Provides a unique name for the admin screen page title option]]></description>
5295
+ <long-description><![CDATA[]]></long-description>
5296
+ </docblock>
5297
+ </constant>
5298
+ <constant namespace="global" line="62" package="Media Library Assistant">
5299
+ <name>MLA_SCREEN_MENU_TITLE</name>
5300
+ <full_name>MLA_SCREEN_MENU_TITLE</full_name>
5301
+ <value><![CDATA['admin_screen_menu_title']]></value>
5302
+ <docblock line="59">
5303
+ <description><![CDATA[Provides a unique name for the admin screen menu title option]]></description>
5304
+ <long-description><![CDATA[]]></long-description>
5305
+ </docblock>
5306
+ </constant>
5307
+ <constant namespace="global" line="67" package="Media Library Assistant">
5308
+ <name>MLA_SCREEN_ORDER</name>
5309
+ <full_name>MLA_SCREEN_ORDER</full_name>
5310
+ <value><![CDATA['admin_screen_menu_order']]></value>
5311
+ <docblock line="64">
5312
+ <description><![CDATA[Provides a unique name for the admin screen menu order option]]></description>
5313
+ <long-description><![CDATA[]]></long-description>
5314
+ </docblock>
5315
+ </constant>
5316
+ <constant namespace="global" line="72" package="Media Library Assistant">
5317
+ <name>MLA_SCREEN_DISPLAY_LIBRARY</name>
5318
+ <full_name>MLA_SCREEN_DISPLAY_LIBRARY</full_name>
5319
+ <value><![CDATA['admin_screen_display_default']]></value>
5320
+ <docblock line="69">
5321
+ <description><![CDATA[Provides a unique name for the admin screen remove Media/Library option]]></description>
5322
+ <long-description><![CDATA[]]></long-description>
5323
+ </docblock>
5324
+ </constant>
5325
+ <constant namespace="global" line="77" package="Media Library Assistant">
5326
+ <name>MLA_DEFAULT_ORDERBY</name>
5327
+ <full_name>MLA_DEFAULT_ORDERBY</full_name>
5328
+ <value><![CDATA['default_orderby']]></value>
5329
+ <docblock line="74">
5330
+ <description><![CDATA[Provides a unique name for the default orderby option]]></description>
5331
+ <long-description><![CDATA[]]></long-description>
5332
+ </docblock>
5333
+ </constant>
5334
+ <constant namespace="global" line="82" package="Media Library Assistant">
5335
+ <name>MLA_DEFAULT_ORDER</name>
5336
+ <full_name>MLA_DEFAULT_ORDER</full_name>
5337
+ <value><![CDATA['default_order']]></value>
5338
+ <docblock line="79">
5339
+ <description><![CDATA[Provides a unique name for the default order option]]></description>
5340
+ <long-description><![CDATA[]]></long-description>
5341
+ </docblock>
5342
+ </constant>
5343
+ <constant namespace="global" line="87" package="Media Library Assistant">
5344
+ <name>MLA_TABLE_VIEWS_WIDTH</name>
5345
+ <full_name>MLA_TABLE_VIEWS_WIDTH</full_name>
5346
+ <value><![CDATA['table_views_width']]></value>
5347
+ <docblock line="84">
5348
+ <description><![CDATA[Provides a unique name for the default table views width option]]></description>
5349
+ <long-description><![CDATA[]]></long-description>
5350
+ </docblock>
5351
+ </constant>
5352
+ <constant namespace="global" line="92" package="Media Library Assistant">
5353
+ <name>MLA_TAXONOMY_FILTER_DEPTH</name>
5354
+ <full_name>MLA_TAXONOMY_FILTER_DEPTH</full_name>
5355
+ <value><![CDATA['taxonomy_filter_depth']]></value>
5356
+ <docblock line="89">
5357
+ <description><![CDATA[Provides a unique name for the taxonomy filter maximum depth option]]></description>
5358
+ <long-description><![CDATA[]]></long-description>
5359
+ </docblock>
5360
+ </constant>
5361
+ <constant namespace="global" line="97" package="Media Library Assistant">
5362
+ <name>MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN</name>
5363
+ <full_name>MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN</full_name>
5364
+ <value><![CDATA['taxonomy_filter_include_children']]></value>
5365
+ <docblock line="94">
5366
+ <description><![CDATA[Provides a unique name for the taxonomy filter maximum depth option]]></description>
5367
+ <long-description><![CDATA[]]></long-description>
5368
+ </docblock>
5369
+ </constant>
5370
+ <constant namespace="global" line="102" package="Media Library Assistant">
5371
+ <name>MLA_EXIF_SIZE</name>
5372
+ <full_name>MLA_EXIF_SIZE</full_name>
5373
+ <value><![CDATA[30]]></value>
5374
+ <docblock line="99">
5375
+ <description><![CDATA[Provides a "size" attribute value for the EXIF/Template Value field]]></description>
5376
+ <long-description><![CDATA[]]></long-description>
5377
+ </docblock>
5378
+ </constant>
5379
+ <constant namespace="global" line="107" package="Media Library Assistant">
5380
  <name>MLA_NEW_CUSTOM_RULE</name>
5381
  <full_name>MLA_NEW_CUSTOM_RULE</full_name>
5382
  <value><![CDATA['__NEW RULE__']]></value>
5383
+ <docblock line="104">
5384
  <description><![CDATA[Provides a unique name for the Custom Field "new rule" key]]></description>
5385
  <long-description><![CDATA[]]></long-description>
5386
  </docblock>
5387
  </constant>
5388
+ <constant namespace="global" line="112" package="Media Library Assistant">
5389
  <name>MLA_NEW_CUSTOM_FIELD</name>
5390
  <full_name>MLA_NEW_CUSTOM_FIELD</full_name>
5391
  <value><![CDATA['__NEW FIELD__']]></value>
5392
+ <docblock line="109">
5393
  <description><![CDATA[Provides a unique name for the Custom Field "new field" key]]></description>
5394
  <long-description><![CDATA[]]></long-description>
5395
  </docblock>
5396
  </constant>
5397
+ <constant namespace="global" line="117" package="Media Library Assistant">
5398
  <name>MLA_MEDIA_MODAL_TOOLBAR</name>
5399
  <full_name>MLA_MEDIA_MODAL_TOOLBAR</full_name>
5400
  <value><![CDATA['media_modal_toolbar']]></value>
5401
+ <docblock line="114">
5402
  <description><![CDATA[Provides a unique name for the Media Manager toolbar option]]></description>
5403
  <long-description><![CDATA[]]></long-description>
5404
  </docblock>
5405
  </constant>
5406
+ <constant namespace="global" line="122" package="Media Library Assistant">
5407
  <name>MLA_MEDIA_MODAL_MIMETYPES</name>
5408
  <full_name>MLA_MEDIA_MODAL_MIMETYPES</full_name>
5409
  <value><![CDATA['media_modal_mimetypes']]></value>
5410
+ <docblock line="119">
5411
  <description><![CDATA[Provides a unique name for the Media Manager toolbar MIME Types option]]></description>
5412
  <long-description><![CDATA[]]></long-description>
5413
  </docblock>
5414
  </constant>
5415
+ <constant namespace="global" line="127" package="Media Library Assistant">
5416
  <name>MLA_MEDIA_MODAL_MONTHS</name>
5417
  <full_name>MLA_MEDIA_MODAL_MONTHS</full_name>
5418
  <value><![CDATA['media_modal_months']]></value>
5419
+ <docblock line="124">
5420
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Month and Year option]]></description>
5421
  <long-description><![CDATA[]]></long-description>
5422
  </docblock>
5423
  </constant>
5424
+ <constant namespace="global" line="132" package="Media Library Assistant">
5425
  <name>MLA_MEDIA_MODAL_TERMS</name>
5426
  <full_name>MLA_MEDIA_MODAL_TERMS</full_name>
5427
  <value><![CDATA['media_modal_terms']]></value>
5428
+ <docblock line="129">
5429
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Taxonomy Terms option]]></description>
5430
  <long-description><![CDATA[]]></long-description>
5431
  </docblock>
5432
  </constant>
5433
+ <constant namespace="global" line="137" package="Media Library Assistant">
5434
  <name>MLA_MEDIA_MODAL_SEARCHBOX</name>
5435
  <full_name>MLA_MEDIA_MODAL_SEARCHBOX</full_name>
5436
  <value><![CDATA['media_modal_searchbox']]></value>
5437
+ <docblock line="134">
5438
  <description><![CDATA[Provides a unique name for the Media Manager toolbar Search Box option]]></description>
5439
  <long-description><![CDATA[]]></long-description>
5440
  </docblock>
5441
  </constant>
5442
+ <constant namespace="global" line="142" package="Media Library Assistant">
5443
  <name>MLA_POST_MIME_TYPES</name>
5444
  <full_name>MLA_POST_MIME_TYPES</full_name>
5445
  <value><![CDATA['post_mime_types']]></value>
5446
+ <docblock line="139">
5447
  <description><![CDATA[Provides a unique name for the Post MIME Types option]]></description>
5448
  <long-description><![CDATA[]]></long-description>
5449
  </docblock>
5450
  </constant>
5451
+ <constant namespace="global" line="147" package="Media Library Assistant">
5452
  <name>MLA_ENABLE_POST_MIME_TYPES</name>
5453
  <full_name>MLA_ENABLE_POST_MIME_TYPES</full_name>
5454
  <value><![CDATA['enable_post_mime_types']]></value>
5455
+ <docblock line="144">
5456
  <description><![CDATA[Provides a unique name for the Enable Post MIME Types option]]></description>
5457
  <long-description><![CDATA[]]></long-description>
5458
  </docblock>
5459
  </constant>
5460
+ <constant namespace="global" line="152" package="Media Library Assistant">
5461
  <name>MLA_UPLOAD_MIMES</name>
5462
  <full_name>MLA_UPLOAD_MIMES</full_name>
5463
  <value><![CDATA['upload_mimes']]></value>
5464
+ <docblock line="149">
5465
  <description><![CDATA[Provides a unique name for the Upload MIME Types option]]></description>
5466
  <long-description><![CDATA[]]></long-description>
5467
  </docblock>
5468
  </constant>
5469
+ <constant namespace="global" line="157" package="Media Library Assistant">
5470
  <name>MLA_ENABLE_UPLOAD_MIMES</name>
5471
  <full_name>MLA_ENABLE_UPLOAD_MIMES</full_name>
5472
  <value><![CDATA['enable_upload_mimes']]></value>
5473
+ <docblock line="154">
5474
  <description><![CDATA[Provides a unique name for the Enable Upload MIME Types option]]></description>
5475
  <long-description><![CDATA[]]></long-description>
5476
  </docblock>
5477
  </constant>
5478
+ <constant namespace="global" line="162" package="Media Library Assistant">
5479
  <name>MLA_ENABLE_MLA_ICONS</name>
5480
  <full_name>MLA_ENABLE_MLA_ICONS</full_name>
5481
  <value><![CDATA['enable_mla_icons']]></value>
5482
+ <docblock line="159">
5483
  <description><![CDATA[Provides a unique name for the Enable MLA Icons option]]></description>
5484
  <long-description><![CDATA[]]></long-description>
5485
  </docblock>
5486
  </constant>
5487
+ <property final="false" static="true" visibility="public" line="173" namespace="global" package="Media Library Assistant">
5488
  <name>$process_featured_in</name>
5489
  <default><![CDATA[true]]></default>
5490
+ <docblock line="164">
5491
  <description><![CDATA[Option setting for "Featured in" reporting]]></description>
5492
  <long-description><![CDATA[<p>This setting is false if the "Featured in" database access setting is "disabled", else true.</p>]]></long-description>
5493
+ <tag line="164" name="since" description="1.00"/>
5494
+ <tag line="164" name="var" description="" type="boolean">
5495
  <type by_reference="false">boolean</type>
5496
  </tag>
5497
  </docblock>
5498
  </property>
5499
+ <property final="false" static="true" visibility="public" line="184" namespace="global" package="Media Library Assistant">
5500
  <name>$process_inserted_in</name>
5501
  <default><![CDATA[true]]></default>
5502
+ <docblock line="175">
5503
  <description><![CDATA[Option setting for "Inserted in" reporting]]></description>
5504
  <long-description><![CDATA[<p>This setting is false if the "Inserted in" database access setting is "disabled", else true.</p>]]></long-description>
5505
+ <tag line="175" name="since" description="1.00"/>
5506
+ <tag line="175" name="var" description="" type="boolean">
5507
  <type by_reference="false">boolean</type>
5508
  </tag>
5509
  </docblock>
5510
  </property>
5511
+ <property final="false" static="true" visibility="public" line="195" namespace="global" package="Media Library Assistant">
5512
  <name>$process_gallery_in</name>
5513
  <default><![CDATA[true]]></default>
5514
+ <docblock line="186">
5515
  <description><![CDATA[Option setting for "Gallery in" reporting]]></description>
5516
  <long-description><![CDATA[<p>This setting is false if the "Gallery in" database access setting is "disabled", else true.</p>]]></long-description>
5517
+ <tag line="186" name="since" description="1.00"/>
5518
+ <tag line="186" name="var" description="" type="boolean">
5519
  <type by_reference="false">boolean</type>
5520
  </tag>
5521
  </docblock>
5522
  </property>
5523
+ <property final="false" static="true" visibility="public" line="206" namespace="global" package="Media Library Assistant">
5524
  <name>$process_mla_gallery_in</name>
5525
  <default><![CDATA[true]]></default>
5526
+ <docblock line="197">
5527
  <description><![CDATA[Option setting for "MLA Gallery in" reporting]]></description>
5528
  <long-description><![CDATA[<p>This setting is false if the "MLA Gallery in" database access setting is "disabled", else true.</p>]]></long-description>
5529
+ <tag line="197" name="since" description="1.00"/>
5530
+ <tag line="197" name="var" description="" type="boolean">
5531
  <type by_reference="false">boolean</type>
5532
  </tag>
5533
  </docblock>
5534
  </property>
5535
+ <property final="false" static="true" visibility="public" line="233" namespace="global" package="Media Library Assistant">
5536
  <name>$mla_option_definitions</name>
5537
+ <default><![CDATA[array(self::MLA_VERSION_OPTION => array('tab' => '', 'type' => 'hidden', 'std' => '0'), 'attachment_category' => array('tab' => '', 'name' => 'Attachment Categories', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to add support for Attachment Categories.'), 'attachment_tag' => array('tab' => '', 'name' => 'Attachment Tags', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to add support for Attachment Tags.'), 'where_used_header' => array('tab' => 'general', 'name' => 'Where-used Reporting', 'type' => 'header'), self::MLA_EXCLUDE_REVISIONS => array('tab' => 'general', 'name' => 'Exclude Revisions', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to exclude revisions from where-used reporting.'), 'where_used_subheader' => array('tab' => 'general', 'name' => 'Where-used database access tuning', 'type' => 'subheader'), self::MLA_FEATURED_IN_TUNING => array('tab' => 'general', 'name' => 'Featured in', 'type' => 'select', 'std' => 'enabled', 'options' => array('enabled', 'disabled'), 'texts' => array('Enabled', 'Disabled'), 'help' => 'Search database posts and pages for Featured Image attachments.'), self::MLA_INSERTED_IN_TUNING => array('tab' => 'general', 'name' => 'Inserted in', 'type' => 'select', 'std' => 'base', 'options' => array('enabled', 'base', 'disabled'), 'texts' => array('Enabled', 'Base', 'Disabled'), 'help' => 'Search database posts and pages for attachments embedded in content.<br>&nbsp;&nbsp;Base = ignore intermediate size suffixes; use path, base name and extension only.'), self::MLA_GALLERY_IN_TUNING => array('tab' => 'general', 'name' => 'Gallery in', 'type' => 'select', 'std' => 'cached', 'options' => array('dynamic', 'refresh', 'cached', 'disabled'), 'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'), 'help' => 'Search database posts and pages for [gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'), self::MLA_MLA_GALLERY_IN_TUNING => array('tab' => 'general', 'name' => 'MLA Gallery in', 'type' => 'select', 'std' => 'cached', 'options' => array('dynamic', 'refresh', 'cached', 'disabled'), 'texts' => array('Dynamic', 'Refresh', 'Cached', 'Disabled'), 'help' => 'Search database posts and pages for [mla_gallery] shortcode results.<br>&nbsp;&nbsp;Dynamic = once every page load, Cached = once every login, Disabled = never.<br>&nbsp;&nbsp;Refresh = update references, then set to Cached.'), 'taxonomy_header' => array('tab' => 'general', 'name' => 'Taxonomy Support', 'type' => 'header'), self::MLA_TAXONOMY_SUPPORT => array('tab' => 'general', 'help' => 'Check the "Support" box to add the taxonomy to the Assistant and the Edit Media screen.<br>Check the "Inline Edit" box to display the taxonomy in the Quick Edit and Bulk Edit areas.<br>Use the "List Filter" option to select the taxonomy on which to filter the Assistant table listing.', 'std' => array('tax_support' => array('attachment_category' => 'checked', 'attachment_tag' => 'checked'), 'tax_quick_edit' => array('attachment_category' => 'checked', 'attachment_tag' => 'checked'), 'tax_filter' => 'attachment_category'), 'type' => 'custom', 'render' => 'mla_taxonomy_option_handler', 'update' => 'mla_taxonomy_option_handler', 'delete' => 'mla_taxonomy_option_handler', 'reset' => 'mla_taxonomy_option_handler'), 'attachments_column' => array('tab' => '', 'name' => 'Attachments Column', 'type' => 'hidden', 'std' => 'checked', 'help' => 'Check this option to replace the Posts column with the Attachments Column.'), 'media_assistant_header' => array('tab' => 'general', 'name' => 'Media/Assistant Screen Options', 'type' => 'header'), 'admin_sidebar_subheader' => array('tab' => 'general', 'name' => 'Admin Menu Options', 'type' => 'subheader'), self::MLA_SCREEN_PAGE_TITLE => array('tab' => 'general', 'name' => 'Page Title', 'type' => 'text', 'std' => 'Media Library Assistant', 'size' => 40, 'help' => 'Enter the title for the Media/Assistant submenu page'), self::MLA_SCREEN_MENU_TITLE => array('tab' => 'general', 'name' => 'Menu Title', 'type' => 'text', 'std' => 'Assistant', 'size' => 20, 'help' => 'Enter the title for the Media/Assistant submenu entry'), self::MLA_SCREEN_ORDER => array('tab' => 'general', 'name' => 'Submenu Order', 'type' => 'text', 'std' => '0', 'size' => 2, 'help' => 'Enter the position of the Media/Assistant submenu entry.<br>&nbsp;&nbsp;0 = natural order (at bottom),&nbsp;&nbsp;&nbsp;&nbsp;1 - 4 = at top<br>&nbsp;&nbsp;6-9 = after "Library",&nbsp;&nbsp;&nbsp;&nbsp;11-16 = after "Add New"'), self::MLA_SCREEN_DISPLAY_LIBRARY => array('tab' => 'general', 'name' => 'Display Media/Library', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to display/remove the WordPress Media/Library submenu entry.'), 'table_defaults_subheader' => array('tab' => 'general', 'name' => 'Table Defaults', 'type' => 'subheader'), self::MLA_DEFAULT_ORDERBY => array('tab' => 'general', 'name' => 'Order By', 'type' => 'select', 'std' => 'title_name', 'options' => array('none', 'title_name'), 'texts' => array('None', 'Title/Name'), 'help' => 'Select the column for the sort order of the Assistant table listing.'), self::MLA_DEFAULT_ORDER => array('tab' => 'general', 'name' => 'Order', 'type' => 'radio', 'std' => 'ASC', 'options' => array('ASC', 'DESC'), 'texts' => array('Ascending', 'Descending'), 'help' => 'Choose the sort order.'), self::MLA_TABLE_VIEWS_WIDTH => array('tab' => 'general', 'name' => 'Views Width', 'type' => 'text', 'std' => '', 'size' => 10, 'help' => 'Enter the width for the views list, in pixels (px) or percent (%)'), 'taxonomy_filter_subheader' => array('tab' => 'general', 'name' => 'Taxonomy Filter parameters', 'type' => 'subheader'), self::MLA_TAXONOMY_FILTER_DEPTH => array('tab' => 'general', 'name' => 'Maximum Depth', 'type' => 'text', 'std' => '3', 'size' => 2, 'help' => 'Enter the number of levels displayed for hierarchial taxonomies; enter zero for no limit.'), self::MLA_TAXONOMY_FILTER_INCLUDE_CHILDREN => array('tab' => 'general', 'name' => 'Include Children', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to include/exclude children for hierarchical taxonomies.'), 'media_modal_header' => array('tab' => 'general', 'name' => 'Media Manager Enhancements', 'type' => 'header'), self::MLA_MEDIA_MODAL_TOOLBAR => array('tab' => 'general', 'name' => 'Enable Media Manager Enhancements', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Media Manager Enhancements.'), self::MLA_MEDIA_MODAL_MIMETYPES => array('tab' => 'general', 'name' => 'Media Manager Enhanced MIME Type filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by more MIME Types, e.g., text, applications.'), self::MLA_MEDIA_MODAL_MONTHS => array('tab' => 'general', 'name' => 'Media Manager Month and Year filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by month and year uploaded.'), self::MLA_MEDIA_MODAL_TERMS => array('tab' => 'general', 'name' => 'Media Manager Category/Tag filter', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to filter by taxonomy terms.'), self::MLA_MEDIA_MODAL_SEARCHBOX => array('tab' => 'general', 'name' => 'Media Manager Enhanced Search Media box', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check this option to enable search box enhancements.'), 'template_header' => array('tab' => 'mla_gallery', 'name' => 'Default [mla_gallery] Templates and Settings', 'type' => 'header'), 'default_style' => array('tab' => 'mla_gallery', 'name' => 'Style Template', 'type' => 'select', 'std' => 'default', 'options' => array(), 'texts' => array(), 'help' => 'Select the default style template for your [mla_gallery] shortcodes.'), 'default_markup' => array('tab' => 'mla_gallery', 'name' => 'Markup Template', 'type' => 'select', 'std' => 'default', 'options' => array(), 'texts' => array(), 'help' => 'Select the default markup template for your [mla_gallery] shortcodes.'), 'mla_gallery_columns' => array('tab' => 'mla_gallery', 'name' => 'Default columns', 'type' => 'text', 'std' => '3', 'size' => 3, 'help' => 'Enter the number of [mla_gallery] columns; must be a positive integer.'), 'mla_gallery_margin' => array('tab' => 'mla_gallery', 'name' => 'Default mla_margin', 'type' => 'text', 'std' => '1.5%', 'size' => 10, 'help' => 'Enter the CSS "margin" property value, in length (px, em, pt, etc.), percent (%), "auto" or "inherit".<br>&nbsp;&nbsp;Enter "none" to remove the property entirely.'), 'mla_gallery_itemwidth' => array('tab' => 'mla_gallery', 'name' => 'Default mla_itemwidth', 'type' => 'text', 'std' => 'calculate', 'size' => 10, 'help' => 'Enter the CSS "width" property value, in length (px, em, pt, etc.), percent (%), "auto" or "inherit".<br>&nbsp;&nbsp;Enter "calculate" (the default) to calculate the value taking the "margin" value into account.<br>&nbsp;&nbsp;Enter "exact" to calculate the value without considering the "margin" value.<br>&nbsp;&nbsp;Enter "none" to remove the property entirely.'), 'style_templates' => array('tab' => '', 'type' => 'hidden', 'std' => array()), 'markup_templates' => array('tab' => '', 'type' => 'hidden', 'std' => array()), 'enable_custom_field_mapping' => array('tab' => 'custom_field', 'name' => 'Enable custom field mapping when adding new media', 'type' => 'checkbox', 'std' => '', 'help' => 'Check this option to enable mapping when uploading new media (attachments).<br>&nbsp;&nbsp;Click Save Changes at the bottom of the screen if you change this option.<br>&nbsp;&nbsp;Does NOT affect the operation of the "Map" buttons on the bulk edit, single edit and settings screens.'), 'custom_field_mapping' => array('tab' => '', 'help' => '&nbsp;<br>Update the custom field mapping values above, then click Save Changes to make the updates permanent.<br>You can also make temporary updates and click a Map All Attachments button to apply the rule(s) to all attachments without saving any rule changes.', 'std' => array(), 'type' => 'custom', 'render' => 'mla_custom_field_option_handler', 'update' => 'mla_custom_field_option_handler', 'delete' => 'mla_custom_field_option_handler', 'reset' => 'mla_custom_field_option_handler'), 'enable_iptc_exif_mapping' => array('tab' => 'iptc_exif', 'name' => 'Enable IPTC/EXIF Mapping when adding new media', 'type' => 'checkbox', 'std' => '', 'help' => 'Check this option to enable mapping when uploading new media (attachments).<br>&nbsp;&nbsp;Does NOT affect the operation of the "Map" buttons on the bulk edit, single edit and settings screens.'), 'iptc_exif_standard_mapping' => array('tab' => '', 'help' => 'Update the standard field mapping values above, then click <strong>Save Changes</strong> to make the updates permanent.<br>You can also make temporary updates and click <strong>Map All Attachments, Standard Fields Now</strong> to apply the updates to all attachments without saving the rule changes.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_taxonomy_mapping' => array('tab' => '', 'help' => 'Update the taxonomy term mapping values above, then click <strong>Save Changes</strong> or <strong>Map All Attachments, Taxonomy Terms Now</strong>.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_custom_mapping' => array('tab' => '', 'help' => '<strong>Update</strong> individual custom field mapping values above, or make several updates and click <strong>Save Changes</strong> below to apply them all at once.<br>You can also <strong>add a new rule</strong> for an existing field or <strong>add a new field</strong> and rule.<br>You can make temporary updates and click <strong>Map All Attachments, Custom Fields Now</strong> to apply the updates to all attachments without saving the rule changes.', 'std' => NULL, 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), 'iptc_exif_mapping' => array('tab' => '', 'help' => 'IPTC/EXIF Mapping help', 'std' => array('standard' => array('post_title' => array('name' => 'Title', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_name' => array('name' => 'Name/Slug', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'image_alt' => array('name' => 'Alternate Text', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_excerpt' => array('name' => 'Caption', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true), 'post_content' => array('name' => 'Description', 'iptc_value' => 'none', 'exif_value' => '', 'iptc_first' => true, 'keep_existing' => true)), 'taxonomy' => array(), 'custom' => array()), 'type' => 'custom', 'render' => 'mla_iptc_exif_option_handler', 'update' => 'mla_iptc_exif_option_handler', 'delete' => 'mla_iptc_exif_option_handler', 'reset' => 'mla_iptc_exif_option_handler'), self::MLA_ENABLE_POST_MIME_TYPES => array('tab' => 'view', 'name' => 'Enable View and Post MIME Type Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Post MIME Type Support, then click <strong>Save Changes</strong> to record the new setting.'), self::MLA_POST_MIME_TYPES => array('tab' => '', 'type' => 'custom', 'render' => 'mla_post_mime_types_option_handler', 'update' => 'mla_post_mime_types_option_handler', 'delete' => 'mla_post_mime_types_option_handler', 'reset' => 'mla_post_mime_types_option_handler', 'help' => 'Post MIME Types help.', 'std' => array('all' => array('singular' => 'All', 'plural' => 'All', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'), 'image' => array('singular' => 'Image', 'plural' => 'Images', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All image subtypes'), 'audio' => array('singular' => 'Audio', 'plural' => 'Audio', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All audio subtypes'), 'video' => array('singular' => 'Video', 'plural' => 'Video', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All video subtypes'), 'text' => array('singular' => 'Text', 'plural' => 'Text', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All text subtypes'), 'application' => array('singular' => 'Application', 'plural' => 'Applications', 'specification' => '', 'post_mime_type' => true, 'table_view' => true, 'menu_order' => 0, 'description' => 'All application subtypes'), 'unattached' => array('singular' => 'Unattached', 'plural' => 'Unattached', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'), 'trash' => array('singular' => 'Trash', 'plural' => 'Trash', 'specification' => '', 'post_mime_type' => false, 'table_view' => true, 'menu_order' => 0, 'description' => 'Built-in view'))), self::MLA_ENABLE_UPLOAD_MIMES => array('tab' => 'upload', 'name' => 'Enable Upload MIME Type Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable Upload MIME Type Support, then click <strong>Save Changes</strong> to record the new setting.'), self::MLA_UPLOAD_MIMES => array('tab' => '', 'type' => 'custom', 'render' => 'mla_upload_mimes_option_handler', 'update' => 'mla_upload_mimes_option_handler', 'delete' => 'mla_upload_mimes_option_handler', 'reset' => 'mla_upload_mimes_option_handler', 'help' => 'Upload MIME Types help.', 'std' => false), self::MLA_ENABLE_MLA_ICONS => array('tab' => 'upload', 'name' => 'Enable MLA File Type Icons Support', 'type' => 'checkbox', 'std' => 'checked', 'help' => 'Check/uncheck this option to enable/disable MLA File Type Icons Support, then click <strong>Save Changes</strong> to record the new setting.'))]]></default>
5538
+ <docblock line="208">
5539
  <description><![CDATA[$mla_option_definitions defines the database options and admin page areas for setting/updating them.]]></description>
5540
  <long-description><![CDATA[<p>Each option is defined by an array with the following elements:</p>
5541
 
5561
  $message = ['reset']( 'reset', $key, $value, $_REQUEST );</p>]]></long-description>
5562
  </docblock>
5563
  </property>
5564
+ <property final="false" static="true" visibility="private" line="805" namespace="global" package="Media Library Assistant">
5565
  <name>$mla_option_templates</name>
5566
  <default><![CDATA[null]]></default>
5567
+ <docblock line="798">
5568
  <description><![CDATA[Style and Markup templates]]></description>
5569
  <long-description><![CDATA[]]></long-description>
5570
+ <tag line="798" name="since" description="0.80"/>
5571
+ <tag line="798" name="var" description="" type="array">
5572
  <type by_reference="false">array</type>
5573
  </tag>
5574
  </docblock>
5575
  </property>
5576
+ <property final="false" static="true" visibility="private" line="1967" namespace="global" package="Media Library Assistant">
5577
  <name>$custom_field_data_sources</name>
5578
  <default><![CDATA[array('absolute_path', 'absolute_file_name', 'base_file', 'path', 'file_name', 'name_only', 'extension', 'file_size', 'upload_date', 'mime_type', 'dimensions', 'pixels', 'width', 'height', 'hwstring_small', 'size_keys', 'size_names', 'size_bytes', 'size_pixels', 'size_dimensions', 'size_name[size]', 'size_bytes[size]', 'size_pixels[size]', 'size_dimensions[size]', 'parent', 'parent_date', 'parent_type', 'parent_title', 'parent_issues', 'reference_issues', 'featured_in', 'featured_in_title', 'inserted_in', 'inserted_in_title', 'gallery_in', 'gallery_in_title', 'mla_gallery_in', 'mla_gallery_in_title', 'aperture', 'credit', 'camera', 'caption', 'created_timestamp', 'copyright', 'focal_length', 'iso', 'shutter_speed', 'title')]]></default>
5579
+ <docblock line="1960">
5580
  <description><![CDATA[Array of Data Source names for custom field mapping]]></description>
5581
  <long-description><![CDATA[]]></long-description>
5582
+ <tag line="1960" name="since" description="1.10"/>
5583
+ <tag line="1960" name="var" description="" type="array">
5584
  <type by_reference="false">array</type>
5585
  </tag>
5586
  </docblock>
5587
  </property>
5588
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="779" package="Media Library Assistant">
5589
  <name>initialize</name>
5590
  <full_name>initialize</full_name>
5591
+ <docblock line="772">
5592
  <description><![CDATA[Initialization function, similar to __construct()]]></description>
5593
  <long-description><![CDATA[]]></long-description>
5594
+ <tag line="772" name="since" description="1.00"/>
5595
+ <tag line="772" name="return" description="" type="void">
5596
  <type by_reference="false">void</type>
5597
  </tag>
5598
  </docblock>
5599
  </method>
5600
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="814" package="Media Library Assistant">
5601
  <name>_load_option_templates</name>
5602
  <full_name>_load_option_templates</full_name>
5603
+ <docblock line="807">
5604
  <description><![CDATA[Load style and markup templates to $mla_templates]]></description>
5605
  <long-description><![CDATA[]]></long-description>
5606
+ <tag line="807" name="since" description="0.80"/>
5607
+ <tag line="807" name="return" description="" type="void">
5608
  <type by_reference="false">void</type>
5609
  </tag>
5610
  </docblock>
5611
  </method>
5612
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="862" package="Media Library Assistant">
5613
  <name>mla_fetch_gallery_template</name>
5614
  <full_name>mla_fetch_gallery_template</full_name>
5615
+ <docblock line="852">
5616
  <description><![CDATA[Fetch style or markup template from $mla_templates]]></description>
5617
  <long-description><![CDATA[]]></long-description>
5618
+ <tag line="852" name="since" description="0.80"/>
5619
+ <tag line="852" name="param" description="Template name" type="string" variable="$key">
5620
  <type by_reference="false">string</type>
5621
  </tag>
5622
+ <tag line="852" name="param" description="Template type; 'style' (default) or 'markup'" type="string" variable="$type">
5623
  <type by_reference="false">string</type>
5624
  </tag>
5625
+ <tag line="852" name="return" description="requested template, false if not found or null if no templates" type="string|boolean|null">
5626
  <type by_reference="false">string</type>
5627
  <type by_reference="false">boolean</type>
5628
  <type by_reference="false">null</type>
5629
  </tag>
5630
  </docblock>
5631
+ <argument line="862">
5632
  <name>$key</name>
5633
  <default><![CDATA[]]></default>
5634
  <type/>
5635
  </argument>
5636
+ <argument line="862">
5637
  <name>$type</name>
5638
  <default><![CDATA['style']]></default>
5639
  <type/>
5640
  </argument>
5641
  </method>
5642
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="885" package="Media Library Assistant">
5643
  <name>mla_get_style_templates</name>
5644
  <full_name>mla_get_style_templates</full_name>
5645
+ <docblock line="878">
5646
  <description><![CDATA[Get ALL style templates from $mla_templates, including 'default']]></description>
5647
  <long-description><![CDATA[]]></long-description>
5648
+ <tag line="878" name="since" description="0.80"/>
5649
+ <tag line="878" name="return" description="name =&gt; value for all style templates or null if no templates" type="array|null">
5650
  <type by_reference="false">array</type>
5651
  <type by_reference="false">null</type>
5652
  </tag>
5653
  </docblock>
5654
  </method>
5655
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="911" package="Media Library Assistant">
5656
  <name>mla_put_style_templates</name>
5657
  <full_name>mla_put_style_templates</full_name>
5658
+ <docblock line="903">
5659
  <description><![CDATA[Put user-defined style templates to $mla_templates and database]]></description>
5660
  <long-description><![CDATA[]]></long-description>
5661
+ <tag line="903" name="since" description="0.80"/>
5662
+ <tag line="903" name="param" description="name =&gt; value for all user-defined style templates" type="array" variable="$templates">
5663
  <type by_reference="false">array</type>
5664
  </tag>
5665
+ <tag line="903" name="return" description="true if success, false if failure" type="boolean">
5666
  <type by_reference="false">boolean</type>
5667
  </tag>
5668
  </docblock>
5669
+ <argument line="911">
5670
  <name>$templates</name>
5671
  <default><![CDATA[]]></default>
5672
  <type/>
5673
  </argument>
5674
  </method>
5675
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="927" package="Media Library Assistant">
5676
  <name>mla_get_markup_templates</name>
5677
  <full_name>mla_get_markup_templates</full_name>
5678
+ <docblock line="920">
5679
  <description><![CDATA[Get ALL markup templates from $mla_templates, including 'default']]></description>
5680
  <long-description><![CDATA[]]></long-description>
5681
+ <tag line="920" name="since" description="0.80"/>
5682
+ <tag line="920" name="return" description="name =&gt; value for all markup templates or null if no templates" type="array|null">
5683
  <type by_reference="false">array</type>
5684
  <type by_reference="false">null</type>
5685
  </tag>
5686
  </docblock>
5687
  </method>
5688
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="982" package="Media Library Assistant">
5689
  <name>mla_put_markup_templates</name>
5690
  <full_name>mla_put_markup_templates</full_name>
5691
+ <docblock line="974">
5692
  <description><![CDATA[Put user-defined markup templates to $mla_templates and database]]></description>
5693
  <long-description><![CDATA[]]></long-description>
5694
+ <tag line="974" name="since" description="0.80"/>
5695
+ <tag line="974" name="param" description="name =&gt; value for all user-defined markup templates" type="array" variable="$templates">
5696
  <type by_reference="false">array</type>
5697
  </tag>
5698
+ <tag line="974" name="return" description="true if success, false if failure" type="boolean">
5699
  <type by_reference="false">boolean</type>
5700
  </tag>
5701
  </docblock>
5702
+ <argument line="982">
5703
  <name>$templates</name>
5704
  <default><![CDATA[]]></default>
5705
  <type/>
5706
  </argument>
5707
  </method>
5708
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1002" package="Media Library Assistant">
5709
  <name>mla_get_option</name>
5710
  <full_name>mla_get_option</full_name>
5711
+ <docblock line="991">
5712
  <description><![CDATA[Return the stored value or default value of a defined MLA option]]></description>
5713
  <long-description><![CDATA[]]></long-description>
5714
+ <tag line="991" name="since" description="0.1"/>
5715
+ <tag line="991" name="param" description="Name of the desired option" type="string" variable="$option">
5716
  <type by_reference="false">string</type>
5717
  </tag>
5718
+ <tag line="991" name="param" description="True to ignore current setting and return default values" type="boolean" variable="$get_default">
5719
  <type by_reference="false">boolean</type>
5720
  </tag>
5721
+ <tag line="991" name="param" description="True to ignore default values and return only stored values" type="boolean" variable="$get_stored">
5722
  <type by_reference="false">boolean</type>
5723
  </tag>
5724
+ <tag line="991" name="return" description="Value(s) for the option or false if the option is not a defined MLA option" type="mixed">
5725
  <type by_reference="false">mixed</type>
5726
  </tag>
5727
  </docblock>
5728
+ <argument line="1002">
5729
  <name>$option</name>
5730
  <default><![CDATA[]]></default>
5731
  <type/>
5732
  </argument>
5733
+ <argument line="1002">
5734
  <name>$get_default</name>
5735
  <default><![CDATA[false]]></default>
5736
  <type/>
5737
  </argument>
5738
+ <argument line="1002">
5739
  <name>$get_stored</name>
5740
  <default><![CDATA[false]]></default>
5741
  <type/>
5742
  </argument>
5743
  </method>
5744
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1029" package="Media Library Assistant">
5745
  <name>mla_update_option</name>
5746
  <full_name>mla_update_option</full_name>
5747
+ <docblock line="1019">
5748
  <description><![CDATA[Add or update the stored value of a defined MLA option]]></description>
5749
  <long-description><![CDATA[]]></long-description>
5750
+ <tag line="1019" name="since" description="0.1"/>
5751
+ <tag line="1019" name="param" description="Name of the desired option" type="string" variable="$option">
5752
  <type by_reference="false">string</type>
5753
  </tag>
5754
+ <tag line="1019" name="param" description="New value for the desired option" type="mixed" variable="$newvalue">
5755
  <type by_reference="false">mixed</type>
5756
  </tag>
5757
+ <tag line="1019" name="return" description="True if the value was changed or false if the update failed" type="boolean">
5758
  <type by_reference="false">boolean</type>
5759
  </tag>
5760
  </docblock>
5761
+ <argument line="1029">
5762
  <name>$option</name>
5763
  <default><![CDATA[]]></default>
5764
  <type/>
5765
  </argument>
5766
+ <argument line="1029">
5767
  <name>$newvalue</name>
5768
  <default><![CDATA[]]></default>
5769
  <type/>
5770
  </argument>
5771
  </method>
5772
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1045" package="Media Library Assistant">
5773
  <name>mla_delete_option</name>
5774
  <full_name>mla_delete_option</full_name>
5775
+ <docblock line="1036">
5776
  <description><![CDATA[Delete the stored value of a defined MLA option]]></description>
5777
  <long-description><![CDATA[]]></long-description>
5778
+ <tag line="1036" name="since" description="0.1"/>
5779
+ <tag line="1036" name="param" description="Name of the desired option" type="string" variable="$option">
5780
  <type by_reference="false">string</type>
5781
  </tag>
5782
+ <tag line="1036" name="return" description="True if the option was deleted, otherwise false" type="boolean">
5783
  <type by_reference="false">boolean</type>
5784
  </tag>
5785
  </docblock>
5786
+ <argument line="1045">
5787
  <name>$option</name>
5788
  <default><![CDATA[]]></default>
5789
  <type/>
5790
  </argument>
5791
  </method>
5792
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1066" package="Media Library Assistant">
5793
  <name>mla_taxonomy_support</name>
5794
  <full_name>mla_taxonomy_support</full_name>
5795
+ <docblock line="1053">
5796
  <description><![CDATA[Determine MLA support for a taxonomy, handling the special case where the
5797
  settings are being updated or reset.]]></description>
5798
  <long-description><![CDATA[]]></long-description>
5799
+ <tag line="1053" name="since" description="0.30"/>
5800
+ <tag line="1053" name="param" description="Taxonomy name, e.g., attachment_category" type="string" variable="$tax_name">
5801
  <type by_reference="false">string</type>
5802
  </tag>
5803
+ <tag line="1053" name="param" description="Optional. 'support' (default), 'quick-edit' or 'filter'" type="string" variable="$support_type">
5804
  <type by_reference="false">string</type>
5805
  </tag>
5806
+ <tag line="1053" name="return" description="true if the taxonomy is supported in this way else false string if $tax_name is '' and $support_type is 'filter', returns the taxonomy to filter by" type="boolean|string">
5807
  <type by_reference="false">boolean</type>
5808
  <type by_reference="false">string</type>
5809
  </tag>
5810
  </docblock>
5811
+ <argument line="1066">
5812
  <name>$tax_name</name>
5813
  <default><![CDATA[]]></default>
5814
  <type/>
5815
  </argument>
5816
+ <argument line="1066">
5817
  <name>$support_type</name>
5818
  <default><![CDATA['support']]></default>
5819
  <type/>
5820
  </argument>
5821
  </method>
5822
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1142" package="Media Library Assistant">
5823
  <name>mla_taxonomy_option_handler</name>
5824
  <full_name>mla_taxonomy_option_handler</full_name>
5825
+ <docblock line="1129">
5826
  <description><![CDATA[Render and manage taxonomy support options, e.g., Categories and Post Tags]]></description>
5827
  <long-description><![CDATA[]]></long-description>
5828
+ <tag line="1129" name="since" description="0.30"/>
5829
+ <tag line="1129" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
5830
+ <tag line="1129" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
5831
  <type by_reference="false">string</type>
5832
  </tag>
5833
+ <tag line="1129" name="param" description="option name, e.g., 'taxonomy_support'" type="string" variable="$key">
5834
  <type by_reference="false">string</type>
5835
  </tag>
5836
+ <tag line="1129" name="param" description="option parameters" type="array" variable="$value">
5837
  <type by_reference="false">array</type>
5838
  </tag>
5839
+ <tag line="1129" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
5840
  <type by_reference="false">array</type>
5841
  </tag>
5842
+ <tag line="1129" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
5843
  <type by_reference="false">string</type>
5844
  </tag>
5845
  </docblock>
5846
+ <argument line="1142">
5847
  <name>$action</name>
5848
  <default><![CDATA[]]></default>
5849
  <type/>
5850
  </argument>
5851
+ <argument line="1142">
5852
  <name>$key</name>
5853
  <default><![CDATA[]]></default>
5854
  <type/>
5855
  </argument>
5856
+ <argument line="1142">
5857
  <name>$value</name>
5858
  <default><![CDATA[]]></default>
5859
  <type/>
5860
  </argument>
5861
+ <argument line="1142">
5862
  <name>$args</name>
5863
  <default><![CDATA[null]]></default>
5864
  <type/>
5865
  </argument>
5866
  </method>
5867
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1250" package="Media Library Assistant">
5868
  <name>mla_add_attachment_action</name>
5869
  <full_name>mla_add_attachment_action</full_name>
5870
+ <docblock line="1241">
5871
  <description><![CDATA[Perform ITC/EXIF mapping on just-inserted attachment]]></description>
5872
  <long-description><![CDATA[]]></long-description>
5873
+ <tag line="1241" name="since" description="1.00"/>
5874
+ <tag line="1241" name="param" description="ID of just-inserted attachment" type="integer" variable="$post_id">
5875
  <type by_reference="false">integer</type>
5876
  </tag>
5877
+ <tag line="1241" name="return" description="" type="void">
5878
  <type by_reference="false">void</type>
5879
  </tag>
5880
  </docblock>
5881
+ <argument line="1250">
5882
  <name>$post_id</name>
5883
  <default><![CDATA[]]></default>
5884
  <type/>
5885
  </argument>
5886
  </method>
5887
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1270" package="Media Library Assistant">
5888
  <name>mla_update_attachment_metadata_filter</name>
5889
  <full_name>mla_update_attachment_metadata_filter</full_name>
5890
+ <docblock line="1260">
5891
  <description><![CDATA[Perform Custom Field mapping on just-inserted or updated attachment]]></description>
5892
  <long-description><![CDATA[]]></long-description>
5893
+ <tag line="1260" name="since" description="1.10"/>
5894
+ <tag line="1260" name="param" description="Attachment metadata for just-inserted attachment" type="array" variable="$data">
5895
  <type by_reference="false">array</type>
5896
  </tag>
5897
+ <tag line="1260" name="param" description="ID of just-inserted attachment" type="integer" variable="$post_id">
5898
  <type by_reference="false">integer</type>
5899
  </tag>
5900
+ <tag line="1260" name="return" description="" type="void">
5901
  <type by_reference="false">void</type>
5902
  </tag>
5903
  </docblock>
5904
+ <argument line="1270">
5905
  <name>$data</name>
5906
  <default><![CDATA[]]></default>
5907
  <type/>
5908
  </argument>
5909
+ <argument line="1270">
5910
  <name>$post_id</name>
5911
  <default><![CDATA[]]></default>
5912
  <type/>
5913
  </argument>
5914
  </method>
5915
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1290" package="Media Library Assistant">
5916
  <name>mla_custom_field_option_value</name>
5917
  <full_name>mla_custom_field_option_value</full_name>
5918
+ <docblock line="1281">
5919
  <description><![CDATA[Fetch custom field option value given a slug]]></description>
5920
  <long-description><![CDATA[]]></long-description>
5921
+ <tag line="1281" name="since" description="1.10"/>
5922
+ <tag line="1281" name="param" description="slug, e.g., 'c_file-size' for the 'File Size' field" type="string" variable="$slug">
5923
  <type by_reference="false">string</type>
5924
  </tag>
5925
+ <tag line="1281" name="return" description="option value, e.g., array( 'name' =&gt; 'File Size', ... )" type="array">
5926
  <type by_reference="false">array</type>
5927
  </tag>
5928
  </docblock>
5929
+ <argument line="1290">
5930
  <name>$slug</name>
5931
  <default><![CDATA[]]></default>
5932
  <type/>
5933
  </argument>
5934
  </method>
5935
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1310" package="Media Library Assistant">
5936
  <name>mla_custom_field_support</name>
5937
  <full_name>mla_custom_field_support</full_name>
5938
+ <docblock line="1301">
5939
  <description><![CDATA[Evaluate file information for custom field mapping]]></description>
5940
  <long-description><![CDATA[]]></long-description>
5941
+ <tag line="1301" name="since" description="1.10"/>
5942
+ <tag line="1301" name="param" description="array format; 'default_columns' (default), 'default_hidden_columns', 'default_sortable_columns', 'quick_edit' or 'bulk_edit'" type="string" variable="$support_type">
5943
  <type by_reference="false">string</type>
5944
  </tag>
5945
+ <tag line="1301" name="return" description="default, hidden, sortable quick_edit or bulk_edit colums in appropriate format" type="array">
5946
  <type by_reference="false">array</type>
5947
  </tag>
5948
  </docblock>
5949
+ <argument line="1310">
5950
  <name>$support_type</name>
5951
  <default><![CDATA['default_columns']]></default>
5952
  <type/>
5953
  </argument>
5954
  </method>
5955
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1356" package="Media Library Assistant">
5956
  <name>_evaluate_file_information</name>
5957
  <full_name>_evaluate_file_information</full_name>
5958
+ <docblock line="1344">
5959
  <description><![CDATA[Evaluate file information for custom field mapping]]></description>
5960
  <long-description><![CDATA[]]></long-description>
5961
+ <tag line="1344" name="since" description="1.10"/>
5962
+ <tag line="1344" name="param" description="absolute path the the uploads base directory" type="string" variable="$upload_dir">
5963
  <type by_reference="false">string</type>
5964
  </tag>
5965
+ <tag line="1344" name="param" description="_wp_attached_file meta_value array, indexed by post_id" type="array" variable="$wp_attached_files">
5966
  <type by_reference="false">array</type>
5967
  </tag>
5968
+ <tag line="1344" name="param" description="_wp_attachment_metadata meta_value array, indexed by post_id" type="array" variable="$wp_attachment_metadata">
5969
  <type by_reference="false">array</type>
5970
  </tag>
5971
+ <tag line="1344" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
5972
  <type by_reference="false">integer</type>
5973
  </tag>
5974
+ <tag line="1344" name="return" description="absolute_path_raw, absolute_path, absolute_file_name_raw, absolute_file_name, absolute_file, base_file, path, file_name, extension, dimensions, width, height, hwstring_small, array of intermediate sizes" type="array">
5975
  <type by_reference="false">array</type>
5976
  </tag>
5977
  </docblock>
5978
+ <argument line="1356">
5979
  <name>$upload_dir</name>
5980
  <default><![CDATA[]]></default>
5981
  <type/>
5982
  </argument>
5983
+ <argument line="1356">
5984
  <name>$wp_attached_files</name>
5985
  <default><![CDATA[]]></default>
5986
  <type/>
5987
  </argument>
5988
+ <argument line="1356">
5989
  <name>$wp_attachment_metadata</name>
5990
  <default><![CDATA[]]></default>
5991
  <type/>
5992
  </argument>
5993
+ <argument line="1356">
5994
  <name>$post_id</name>
5995
  <default><![CDATA[]]></default>
5996
  <type/>
5997
  </argument>
5998
  </method>
5999
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1425" package="Media Library Assistant">
6000
  <name>_evaluate_post_information</name>
6001
  <full_name>_evaluate_post_information</full_name>
6002
+ <docblock line="1414">
6003
  <description><![CDATA[Evaluate post information for custom field mapping]]></description>
6004
  <long-description><![CDATA[]]></long-description>
6005
+ <tag line="1414" name="since" description="1.40"/>
6006
+ <tag line="1414" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
6007
  <type by_reference="false">integer</type>
6008
  </tag>
6009
+ <tag line="1414" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
6010
  <type by_reference="false">string</type>
6011
  </tag>
6012
+ <tag line="1414" name="param" description="data source name ( post_date or post_parent )" type="string" variable="$data_source">
6013
  <type by_reference="false">string</type>
6014
  </tag>
6015
+ <tag line="1414" name="return" description="'post_date' =&gt; (string) upload date, 'post_parent' =&gt; (integer) ID of parent or zero )" type="mixed">
6016
  <type by_reference="false">mixed</type>
6017
  </tag>
6018
  </docblock>
6019
+ <argument line="1425">
6020
  <name>$post_id</name>
6021
  <default><![CDATA[]]></default>
6022
  <type/>
6023
  </argument>
6024
+ <argument line="1425">
6025
  <name>$category</name>
6026
  <default><![CDATA[]]></default>
6027
  <type/>
6028
  </argument>
6029
+ <argument line="1425">
6030
  <name>$data_source</name>
6031
  <default><![CDATA[]]></default>
6032
  <type/>
6033
  </argument>
6034
  </method>
6035
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1461" package="Media Library Assistant">
6036
  <name>_evaluate_array_result</name>
6037
  <full_name>_evaluate_array_result</full_name>
6038
+ <docblock line="1450">
6039
  <description><![CDATA[Evaluate post information for custom field mapping]]></description>
6040
  <long-description><![CDATA[]]></long-description>
6041
+ <tag line="1450" name="since" description="1.40"/>
6042
+ <tag line="1450" name="param" description="field value(s)" type="array" variable="$value">
6043
  <type by_reference="false">array</type>
6044
  </tag>
6045
+ <tag line="1450" name="param" description="format option text|single|export|array|multi" type="string" variable="$option">
6046
  <type by_reference="false">string</type>
6047
  </tag>
6048
+ <tag line="1450" name="param" description="keep existing value(s) - for 'multi' option" type="boolean" variable="$keep_existing">
6049
  <type by_reference="false">boolean</type>
6050
  </tag>
6051
+ <tag line="1450" name="return" description="array for option = array|multi else string" type="mixed">
6052
  <type by_reference="false">mixed</type>
6053
  </tag>
6054
  </docblock>
6055
+ <argument line="1461">
6056
  <name>$value</name>
6057
  <default><![CDATA[]]></default>
6058
  <type/>
6059
  </argument>
6060
+ <argument line="1461">
6061
  <name>$option</name>
6062
  <default><![CDATA[]]></default>
6063
  <type/>
6064
  </argument>
6065
+ <argument line="1461">
6066
  <name>$keep_existing</name>
6067
  <default><![CDATA[]]></default>
6068
  <type/>
6069
  </argument>
6070
  </method>
6071
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1497" package="Media Library Assistant">
6072
  <name>_evaluate_data_source</name>
6073
  <full_name>_evaluate_data_source</full_name>
6074
+ <docblock line="1485">
6075
  <description><![CDATA[Evaluate custom field mapping data source]]></description>
6076
  <long-description><![CDATA[]]></long-description>
6077
+ <tag line="1485" name="since" description="1.10"/>
6078
+ <tag line="1485" name="param" description="post-&gt;ID of attachment" type="integer" variable="$post_id">
6079
  <type by_reference="false">integer</type>
6080
  </tag>
6081
+ <tag line="1485" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
6082
  <type by_reference="false">string</type>
6083
  </tag>
6084
+ <tag line="1485" name="param" description="data source specification ( name, data_source, keep_existing, format, mla_column, quick_edit, bulk_edit, meta_name, no_null, option )" type="array" variable="$data_value">
6085
  <type by_reference="false">array</type>
6086
  </tag>
6087
+ <tag line="1485" name="param" description="(optional) attachment_metadata, default NULL (use current postmeta database value)" type="array" variable="$attachment_metadata">
6088
  <type by_reference="false">array</type>
6089
  </tag>
6090
+ <tag line="1485" name="return" description="data source value" type="string">
6091
  <type by_reference="false">string</type>
6092
  </tag>
6093
  </docblock>
6094
+ <argument line="1497">
6095
  <name>$post_id</name>
6096
  <default><![CDATA[]]></default>
6097
  <type/>
6098
  </argument>
6099
+ <argument line="1497">
6100
  <name>$category</name>
6101
  <default><![CDATA[]]></default>
6102
  <type/>
6103
  </argument>
6104
+ <argument line="1497">
6105
  <name>$data_value</name>
6106
  <default><![CDATA[]]></default>
6107
  <type/>
6108
  </argument>
6109
+ <argument line="1497">
6110
  <name>$attachment_metadata</name>
6111
  <default><![CDATA[NULL]]></default>
6112
  <type/>
6113
  </argument>
6114
  </method>
6115
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1865" package="Media Library Assistant">
6116
  <name>mla_evaluate_custom_field_mapping</name>
6117
  <full_name>mla_evaluate_custom_field_mapping</full_name>
6118
+ <docblock line="1853">
6119
  <description><![CDATA[Evaluate custom field mapping updates for a post]]></description>
6120
  <long-description><![CDATA[]]></long-description>
6121
+ <tag line="1853" name="since" description="1.10"/>
6122
+ <tag line="1853" name="param" description="post ID to be evaluated" type="integer" variable="$post_id">
6123
  <type by_reference="false">integer</type>
6124
  </tag>
6125
+ <tag line="1853" name="param" description="category/scope to evaluate against: custom_field_mapping or single_attachment_mapping" type="string" variable="$category">
6126
  <type by_reference="false">string</type>
6127
  </tag>
6128
+ <tag line="1853" name="param" description="(optional) custom_field_mapping values, default NULL (use current option value)" type="array" variable="$settings">
6129
  <type by_reference="false">array</type>
6130
  </tag>
6131
+ <tag line="1853" name="param" description="(optional) attachment_metadata, default NULL (use current postmeta database value)" type="array" variable="$attachment_metadata">
6132
  <type by_reference="false">array</type>
6133
  </tag>
6134
+ <tag line="1853" name="return" description="Updates suitable for MLAData::mla_update_single_item, if any" type="array">
6135
  <type by_reference="false">array</type>
6136
  </tag>
6137
  </docblock>
6138
+ <argument line="1865">
6139
  <name>$post_id</name>
6140
  <default><![CDATA[]]></default>
6141
  <type/>
6142
  </argument>
6143
+ <argument line="1865">
6144
  <name>$category</name>
6145
  <default><![CDATA[]]></default>
6146
  <type/>
6147
  </argument>
6148
+ <argument line="1865">
6149
  <name>$settings</name>
6150
  <default><![CDATA[NULL]]></default>
6151
  <type/>
6152
  </argument>
6153
+ <argument line="1865">
6154
  <name>$attachment_metadata</name>
6155
  <default><![CDATA[NULL]]></default>
6156
  <type/>
6157
  </argument>
6158
  </method>
6159
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1934" package="Media Library Assistant">
6160
  <name>_compose_custom_field_option_list</name>
6161
  <full_name>_compose_custom_field_option_list</full_name>
6162
+ <docblock line="1923">
6163
  <description><![CDATA[Compose a Custom Field Options list with current selection]]></description>
6164
  <long-description><![CDATA[]]></long-description>
6165
+ <tag line="1923" name="since" description="1.10"/>
6166
+ <tag line="1923" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6167
+ <tag line="1923" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
6168
  <type by_reference="false">string</type>
6169
  </tag>
6170
+ <tag line="1923" name="param" description="optional list of terms to exclude from the list" type="array" variable="$blacklist">
6171
  <type by_reference="false">array</type>
6172
  </tag>
6173
+ <tag line="1923" name="return" description="HTML markup with select field options" type="string">
6174
  <type by_reference="false">string</type>
6175
  </tag>
6176
  </docblock>
6177
+ <argument line="1934">
6178
  <name>$selection</name>
6179
  <default><![CDATA['none']]></default>
6180
  <type/>
6181
  </argument>
6182
+ <argument line="1934">
6183
  <name>$blacklist</name>
6184
  <default><![CDATA[array()]]></default>
6185
  <type/>
6186
  </argument>
6187
  </method>
6188
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2028" package="Media Library Assistant">
6189
  <name>_compose_data_source_option_list</name>
6190
  <full_name>_compose_data_source_option_list</full_name>
6191
+ <docblock line="2018">
6192
  <description><![CDATA[Compose a (Custom Field) Data Source Options list with current selection]]></description>
6193
  <long-description><![CDATA[]]></long-description>
6194
+ <tag line="2018" name="since" description="1.10"/>
6195
+ <tag line="2018" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6196
+ <tag line="2018" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
6197
  <type by_reference="false">string</type>
6198
  </tag>
6199
+ <tag line="2018" name="return" description="HTML markup with select field options" type="string">
6200
  <type by_reference="false">string</type>
6201
  </tag>
6202
  </docblock>
6203
+ <argument line="2028">
6204
  <name>$selection</name>
6205
  <default><![CDATA['none']]></default>
6206
  <type/>
6207
  </argument>
6208
  </method>
6209
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2093" package="Media Library Assistant">
6210
  <name>_update_custom_field_mapping</name>
6211
  <full_name>_update_custom_field_mapping</full_name>
6212
+ <docblock line="2083">
6213
  <description><![CDATA[Update custom field mappings]]></description>
6214
  <long-description><![CDATA[]]></long-description>
6215
+ <tag line="2083" name="since" description="1.10"/>
6216
+ <tag line="2083" name="param" description="current custom_field_mapping values" type="array" variable="$current_values">
6217
  <type by_reference="false">array</type>
6218
  </tag>
6219
+ <tag line="2083" name="param" description="new values" type="array" variable="$new_values">
6220
  <type by_reference="false">array</type>
6221
  </tag>
6222
+ <tag line="2083" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
6223
  <type by_reference="false">array</type>
6224
  </tag>
6225
  </docblock>
6226
+ <argument line="2093">
6227
  <name>$current_values</name>
6228
  <default><![CDATA[]]></default>
6229
  <type/>
6230
  </argument>
6231
+ <argument line="2093">
6232
  <name>$new_values</name>
6233
  <default><![CDATA[]]></default>
6234
  <type/>
6235
  </argument>
6236
  </method>
6237
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2291" package="Media Library Assistant">
6238
  <name>mla_custom_field_option_handler</name>
6239
  <full_name>mla_custom_field_option_handler</full_name>
6240
+ <docblock line="2278">
6241
  <description><![CDATA[Render and manage custom field mapping options]]></description>
6242
  <long-description><![CDATA[]]></long-description>
6243
+ <tag line="2278" name="since" description="1.10"/>
6244
+ <tag line="2278" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6245
+ <tag line="2278" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
6246
  <type by_reference="false">string</type>
6247
  </tag>
6248
+ <tag line="2278" name="param" description="option name, e.g., 'custom_field_mapping'" type="string" variable="$key">
6249
  <type by_reference="false">string</type>
6250
  </tag>
6251
+ <tag line="2278" name="param" description="option parameters" type="array" variable="$value">
6252
  <type by_reference="false">array</type>
6253
  </tag>
6254
+ <tag line="2278" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
6255
  <type by_reference="false">array</type>
6256
  </tag>
6257
+ <tag line="2278" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
6258
  <type by_reference="false">string</type>
6259
  </tag>
6260
  </docblock>
6261
+ <argument line="2291">
6262
  <name>$action</name>
6263
  <default><![CDATA[]]></default>
6264
  <type/>
6265
  </argument>
6266
+ <argument line="2291">
6267
  <name>$key</name>
6268
  <default><![CDATA[]]></default>
6269
  <type/>
6270
  </argument>
6271
+ <argument line="2291">
6272
  <name>$value</name>
6273
  <default><![CDATA[]]></default>
6274
  <type/>
6275
  </argument>
6276
+ <argument line="2291">
6277
  <name>$args</name>
6278
  <default><![CDATA[null]]></default>
6279
  <type/>
6280
  </argument>
6281
  </method>
6282
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2483" package="Media Library Assistant">
6283
  <name>mla_evaluate_iptc_exif_mapping</name>
6284
  <full_name>mla_evaluate_iptc_exif_mapping</full_name>
6285
+ <docblock line="2472">
6286
  <description><![CDATA[Evaluate IPTC/EXIF mapping updates for a post]]></description>
6287
  <long-description><![CDATA[]]></long-description>
6288
+ <tag line="2472" name="since" description="1.00"/>
6289
+ <tag line="2472" name="param" description="post object with current values" type="object" variable="$post">
6290
  <type by_reference="false">object</type>
6291
  </tag>
6292
+ <tag line="2472" name="param" description="category to evaluate against, e.g., iptc_exif_standard_mapping or iptc_exif_mapping" type="string" variable="$category">
6293
  <type by_reference="false">string</type>
6294
  </tag>
6295
+ <tag line="2472" name="param" description="(optional) iptc_exif_mapping values, default - current option value" type="array" variable="$settings">
6296
  <type by_reference="false">array</type>
6297
  </tag>
6298
+ <tag line="2472" name="return" description="Updates suitable for MLAData::mla_update_single_item, if any" type="array">
6299
  <type by_reference="false">array</type>
6300
  </tag>
6301
  </docblock>
6302
+ <argument line="2483">
6303
  <name>$post</name>
6304
  <default><![CDATA[]]></default>
6305
  <type/>
6306
  </argument>
6307
+ <argument line="2483">
6308
  <name>$category</name>
6309
  <default><![CDATA[]]></default>
6310
  <type/>
6311
  </argument>
6312
+ <argument line="2483">
6313
  <name>$settings</name>
6314
  <default><![CDATA[NULL]]></default>
6315
  <type/>
6316
  </argument>
6317
  </method>
6318
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2693" package="Media Library Assistant">
6319
  <name>_compose_iptc_option_list</name>
6320
  <full_name>_compose_iptc_option_list</full_name>
6321
+ <docblock line="2683">
6322
  <description><![CDATA[Compose an IPTC Options list with current selection]]></description>
6323
  <long-description><![CDATA[]]></long-description>
6324
+ <tag line="2683" name="since" description="1.00"/>
6325
+ <tag line="2683" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6326
+ <tag line="2683" name="param" description="current selection or 'none' (default)" type="string" variable="$selection">
6327
  <type by_reference="false">string</type>
6328
  </tag>
6329
+ <tag line="2683" name="return" description="HTML markup with select field options" type="string">
6330
  <type by_reference="false">string</type>
6331
  </tag>
6332
  </docblock>
6333
+ <argument line="2693">
6334
  <name>$selection</name>
6335
  <default><![CDATA['none']]></default>
6336
  <type/>
6337
  </argument>
6338
  </method>
6339
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2726" package="Media Library Assistant">
6340
  <name>_compose_parent_option_list</name>
6341
  <full_name>_compose_parent_option_list</full_name>
6342
+ <docblock line="2715">
6343
  <description><![CDATA[Compose an hierarchical taxonomy Parent options list with current selection]]></description>
6344
  <long-description><![CDATA[]]></long-description>
6345
+ <tag line="2715" name="since" description="1.00"/>
6346
+ <tag line="2715" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6347
+ <tag line="2715" name="param" description="taxonomy slug" type="string" variable="$taxonomy">
6348
  <type by_reference="false">string</type>
6349
  </tag>
6350
+ <tag line="2715" name="param" description="current selection or 0 (zero, default)" type="integer" variable="$selection">
6351
  <type by_reference="false">integer</type>
6352
  </tag>
6353
+ <tag line="2715" name="return" description="HTML markup with select field options" type="string">
6354
  <type by_reference="false">string</type>
6355
  </tag>
6356
  </docblock>
6357
+ <argument line="2726">
6358
  <name>$taxonomy</name>
6359
  <default><![CDATA[]]></default>
6360
  <type/>
6361
  </argument>
6362
+ <argument line="2726">
6363
  <name>$selection</name>
6364
  <default><![CDATA[0]]></default>
6365
  <type/>
6366
  </argument>
6367
  </method>
6368
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2760" package="Media Library Assistant">
6369
  <name>_update_iptc_exif_standard_mapping</name>
6370
  <full_name>_update_iptc_exif_standard_mapping</full_name>
6371
+ <docblock line="2750">
6372
  <description><![CDATA[Update Standard field portion of IPTC/EXIF mappings]]></description>
6373
  <long-description><![CDATA[]]></long-description>
6374
+ <tag line="2750" name="since" description="1.00"/>
6375
+ <tag line="2750" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
6376
  <type by_reference="false">array</type>
6377
  </tag>
6378
+ <tag line="2750" name="param" description="new values" type="array" variable="$new_values">
6379
  <type by_reference="false">array</type>
6380
  </tag>
6381
+ <tag line="2750" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
6382
  <type by_reference="false">array</type>
6383
  </tag>
6384
  </docblock>
6385
+ <argument line="2760">
6386
  <name>$current_values</name>
6387
  <default><![CDATA[]]></default>
6388
  <type/>
6389
  </argument>
6390
+ <argument line="2760">
6391
  <name>$new_values</name>
6392
  <default><![CDATA[]]></default>
6393
  <type/>
6394
  </argument>
6395
  </method>
6396
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2839" package="Media Library Assistant">
6397
  <name>_update_iptc_exif_taxonomy_mapping</name>
6398
  <full_name>_update_iptc_exif_taxonomy_mapping</full_name>
6399
+ <docblock line="2829">
6400
  <description><![CDATA[Update Taxonomy term portion of IPTC/EXIF mappings]]></description>
6401
  <long-description><![CDATA[]]></long-description>
6402
+ <tag line="2829" name="since" description="1.00"/>
6403
+ <tag line="2829" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
6404
  <type by_reference="false">array</type>
6405
  </tag>
6406
+ <tag line="2829" name="param" description="new values" type="array" variable="$new_values">
6407
  <type by_reference="false">array</type>
6408
  </tag>
6409
+ <tag line="2829" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
6410
  <type by_reference="false">array</type>
6411
  </tag>
6412
  </docblock>
6413
+ <argument line="2839">
6414
  <name>$current_values</name>
6415
  <default><![CDATA[]]></default>
6416
  <type/>
6417
  </argument>
6418
+ <argument line="2839">
6419
  <name>$new_values</name>
6420
  <default><![CDATA[]]></default>
6421
  <type/>
6422
  </argument>
6423
  </method>
6424
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2931" package="Media Library Assistant">
6425
  <name>_update_iptc_exif_custom_mapping</name>
6426
  <full_name>_update_iptc_exif_custom_mapping</full_name>
6427
+ <docblock line="2921">
6428
  <description><![CDATA[Update Custom field portion of IPTC/EXIF mappings]]></description>
6429
  <long-description><![CDATA[]]></long-description>
6430
+ <tag line="2921" name="since" description="1.00"/>
6431
+ <tag line="2921" name="param" description="current iptc_exif_mapping values" type="array" variable="$current_values">
6432
  <type by_reference="false">array</type>
6433
  </tag>
6434
+ <tag line="2921" name="param" description="new values" type="array" variable="$new_values">
6435
  <type by_reference="false">array</type>
6436
  </tag>
6437
+ <tag line="2921" name="return" description="( 'message' =&gt; HTML message(s) reflecting results, 'values' =&gt; updated iptc_exif_mapping values, 'changed' =&gt; true if any changes detected else false )" type="array">
6438
  <type by_reference="false">array</type>
6439
  </tag>
6440
  </docblock>
6441
+ <argument line="2931">
6442
  <name>$current_values</name>
6443
  <default><![CDATA[]]></default>
6444
  <type/>
6445
  </argument>
6446
+ <argument line="2931">
6447
  <name>$new_values</name>
6448
  <default><![CDATA[]]></default>
6449
  <type/>
6450
  </argument>
6451
  </method>
6452
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3055" package="Media Library Assistant">
6453
  <name>_get_custom_field_names</name>
6454
  <full_name>_get_custom_field_names</full_name>
6455
+ <docblock line="3045">
6456
  <description><![CDATA[Generate a list of all (post) Custom Field names]]></description>
6457
  <long-description><![CDATA[<p>The list will include any Custom Field and IPTC/EXIF rules that
6458
  haven't been mapped to any attachments, yet.</p>]]></long-description>
6459
+ <tag line="3045" name="since" description="1.00"/>
6460
+ <tag line="3045" name="return" description="Custom field names from the postmeta table and MLA rules" type="array">
6461
  <type by_reference="false">array</type>
6462
  </tag>
6463
  </docblock>
6464
  </method>
6465
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="3099" package="Media Library Assistant">
6466
  <name>mla_iptc_exif_option_handler</name>
6467
  <full_name>mla_iptc_exif_option_handler</full_name>
6468
+ <docblock line="3086">
6469
  <description><![CDATA[Render and manage iptc/exif support options]]></description>
6470
  <long-description><![CDATA[]]></long-description>
6471
+ <tag line="3086" name="since" description="1.00"/>
6472
+ <tag line="3086" name="uses" description="\global\$mla_option_templates" refers="\global\$mla_option_templates"/>
6473
+ <tag line="3086" name="param" description="'render', 'update', 'delete', or 'reset'" type="string" variable="$action">
6474
  <type by_reference="false">string</type>
6475
  </tag>
6476
+ <tag line="3086" name="param" description="option name, e.g., 'iptc_exif_mapping'" type="string" variable="$key">
6477
  <type by_reference="false">string</type>
6478
  </tag>
6479
+ <tag line="3086" name="param" description="option parameters" type="array" variable="$value">
6480
  <type by_reference="false">array</type>
6481
  </tag>
6482
+ <tag line="3086" name="param" description="Optional. null (default) for 'render' else option data, e.g., $_REQUEST" type="array" variable="$args">
6483
  <type by_reference="false">array</type>
6484
  </tag>
6485
+ <tag line="3086" name="return" description="HTML table row markup for 'render' else message(s) reflecting the results of the operation." type="string">
6486
  <type by_reference="false">string</type>
6487
  </tag>
6488
  </docblock>
6489
+ <argument line="3099">
6490
  <name>$action</name>
6491
  <default><![CDATA[]]></default>
6492
  <type/>
6493
  </argument>
6494
+ <argument line="3099">
6495
  <name>$key</name>
6496
  <default><![CDATA[]]></default>
6497
  <type/>
6498
  </argument>
6499
+ <argument line="3099">
6500
  <name>$value</name>
6501
  <default><![CDATA[]]></default>
6502
  <type/>
6503
  </argument>
6504
+ <argument line="3099">
6505
  <name>$args</name>
6506
  <default><![CDATA[null]]></default>
6507
  <type/>
6509
  </method>
6510
  </class>
6511
  </file>
6512
+ <file path="includes\class-mla-settings.php" hash="e805ac5cd13b8dd69b925b3d5a475a2c" package="Media Library Assistant">
6513
  <docblock line="2">
6514
  <description><![CDATA[Manages the settings page to edit the plugin option settings]]></description>
6515
  <long-description><![CDATA[]]></long-description>
6599
  </tag>
6600
  </docblock>
6601
  </property>
6602
+ <property final="false" static="true" visibility="private" line="803" namespace="global" package="Media Library Assistant">
6603
  <name>$page_template_array</name>
6604
  <default><![CDATA[null]]></default>
6605
+ <docblock line="793">
6606
  <description><![CDATA[Template file for the Settings page(s) and parts]]></description>
6607
  <long-description><![CDATA[<p>This array contains all of the template parts for the Settings page(s). The array is built once
6608
  each page load and cached for subsequent use.</p>]]></long-description>
6609
+ <tag line="793" name="since" description="0.80"/>
6610
+ <tag line="793" name="var" description="" type="array">
6611
  <type by_reference="false">array</type>
6612
  </tag>
6613
  </docblock>
6614
  </property>
6615
+ <property final="false" static="true" visibility="private" line="819" namespace="global" package="Media Library Assistant">
6616
  <name>$mla_tablist</name>
6617
  <default><![CDATA[array('general' => array('title' => 'General', 'render' => '_compose_general_tab'), 'view' => array('title' => 'Views', 'render' => '_compose_view_tab'), 'upload' => array('title' => 'Uploads', 'render' => '_compose_upload_tab'), 'mla_gallery' => array('title' => 'MLA Gallery', 'render' => '_compose_mla_gallery_tab'), 'custom_field' => array('title' => 'Custom Fields', 'render' => '_compose_custom_field_tab'), 'iptc_exif' => array('title' => 'IPTC/EXIF', 'render' => '_compose_iptc_exif_tab'), 'documentation' => array('title' => 'Documentation', 'render' => '_compose_documentation_tab'))]]></default>
6618
+ <docblock line="805">
6619
  <description><![CDATA[Definitions for Settings page tab ids, titles and handlers
6620
  Each tab is defined by an array with the following elements:]]></description>
6621
  <long-description><![CDATA[<p>array key => HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)</p>
6623
  <p>title => tab label / heading text
6624
  render => rendering function for tab messages and content. Usage:
6625
  $tab_content = <a href="">'render'</a>;</p>]]></long-description>
6626
+ <tag line="805" name="since" description="0.80"/>
6627
+ <tag line="805" name="var" description="" type="array">
6628
  <type by_reference="false">array</type>
6629
  </tag>
6630
  </docblock>
6723
  </tag>
6724
  </docblock>
6725
  </method>
6726
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="341" package="Media Library Assistant">
6727
  <name>mla_add_menu_options_action</name>
6728
  <full_name>mla_add_menu_options_action</full_name>
6729
+ <docblock line="334">
6730
  <description><![CDATA[Add the "XX Entries per page" filter to the Screen Options tab]]></description>
6731
  <long-description><![CDATA[]]></long-description>
6732
+ <tag line="334" name="since" description="1.40"/>
6733
+ <tag line="334" name="return" description="" type="void">
6734
  <type by_reference="false">void</type>
6735
  </tag>
6736
  </docblock>
6737
  </method>
6738
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="386" package="Media Library Assistant">
6739
  <name>mla_add_help_tab_action</name>
6740
  <full_name>mla_add_help_tab_action</full_name>
6741
+ <docblock line="379">
6742
  <description><![CDATA[Add contextual help tabs to all the MLA pages]]></description>
6743
  <long-description><![CDATA[]]></long-description>
6744
+ <tag line="379" name="since" description="1.40"/>
6745
+ <tag line="379" name="return" description="" type="void">
6746
  <type by_reference="false">void</type>
6747
  </tag>
6748
  </docblock>
6749
  </method>
6750
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="461" package="Media Library Assistant">
6751
  <name>mla_screen_options_show_screen_filter</name>
6752
  <full_name>mla_screen_options_show_screen_filter</full_name>
6753
+ <docblock line="451">
6754
  <description><![CDATA[Only show screen options on the View and Upload tabs]]></description>
6755
  <long-description><![CDATA[]]></long-description>
6756
+ <tag line="451" name="since" description="1.40"/>
6757
+ <tag line="451" name="param" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean" variable="$show_screen">
6758
  <type by_reference="false">boolean</type>
6759
  </tag>
6760
+ <tag line="451" name="param" description="Name of the page being loaded" type="string" variable="$this_screen">
6761
  <type by_reference="false">string</type>
6762
  </tag>
6763
+ <tag line="451" name="return" description="True to display &quot;Screen Options&quot;, false to suppress them" type="boolean">
6764
  <type by_reference="false">boolean</type>
6765
  </tag>
6766
  </docblock>
6767
+ <argument line="461">
6768
  <name>$show_screen</name>
6769
  <default><![CDATA[]]></default>
6770
  <type/>
6771
  </argument>
6772
+ <argument line="461">
6773
  <name>$this_screen</name>
6774
  <default><![CDATA[]]></default>
6775
  <type/>
6776
  </argument>
6777
  </method>
6778
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="481" package="Media Library Assistant">
6779
  <name>mla_set_screen_option_filter</name>
6780
  <full_name>mla_set_screen_option_filter</full_name>
6781
+ <docblock line="470">
6782
  <description><![CDATA[Save the "Views/Uploads per page" option set by this user]]></description>
6783
  <long-description><![CDATA[]]></long-description>
6784
+ <tag line="470" name="since" description="1.40"/>
6785
+ <tag line="470" name="param" description="false or value returned by previous filter" type="mixed" variable="$status">
6786
  <type by_reference="false">mixed</type>
6787
  </tag>
6788
+ <tag line="470" name="param" description="Name of the option being changed" type="string" variable="$option">
6789
  <type by_reference="false">string</type>
6790
  </tag>
6791
+ <tag line="470" name="param" description="New value of the option" type="string" variable="$value">
6792
  <type by_reference="false">string</type>
6793
  </tag>
6794
+ <tag line="470" name="return" description="New value if this is our option, otherwise nothing" type="string|void">
6795
  <type by_reference="false">string</type>
6796
  <type by_reference="false">void</type>
6797
  </tag>
6798
  </docblock>
6799
+ <argument line="481">
6800
  <name>$status</name>
6801
  <default><![CDATA[]]></default>
6802
  <type/>
6803
  </argument>
6804
+ <argument line="481">
6805
  <name>$option</name>
6806
  <default><![CDATA[]]></default>
6807
  <type/>
6808
  </argument>
6809
+ <argument line="481">
6810
  <name>$value</name>
6811
  <default><![CDATA[]]></default>
6812
  <type/>
6813
  </argument>
6814
  </method>
6815
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="497" package="Media Library Assistant">
6816
  <name>mla_inline_edit_view_action</name>
6817
  <full_name>mla_inline_edit_view_action</full_name>
6818
+ <docblock line="488">
6819
  <description><![CDATA[Ajax handler for Post MIME Types inline editing (quick and bulk edit)]]></description>
6820
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
6821
+ <tag line="488" name="since" description="1.40"/>
6822
+ <tag line="488" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
6823
  <type by_reference="false">void</type>
6824
  </tag>
6825
  </docblock>
6826
  </method>
6827
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="539" package="Media Library Assistant">
6828
  <name>mla_inline_edit_upload_action</name>
6829
  <full_name>mla_inline_edit_upload_action</full_name>
6830
+ <docblock line="530">
6831
  <description><![CDATA[Ajax handler for Upload MIME Types inline editing (quick and bulk edit)]]></description>
6832
  <long-description><![CDATA[<p>Adapted from wp_ajax_inline_save in /wp-admin/includes/ajax-actions.php</p>]]></long-description>
6833
+ <tag line="530" name="since" description="1.40"/>
6834
+ <tag line="530" name="return" description="echo HTML &lt;tr&gt; markup for updated row or error message, then die()" type="void">
6835
  <type by_reference="false">void</type>
6836
  </tag>
6837
  </docblock>
6838
  </method>
6839
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="578" package="Media Library Assistant">
6840
  <name>mla_add_plugin_settings_link_filter</name>
6841
  <full_name>mla_add_plugin_settings_link_filter</full_name>
6842
+ <docblock line="568">
6843
  <description><![CDATA[Add the "Settings" link to the MLA entry in the Plugins section]]></description>
6844
  <long-description><![CDATA[]]></long-description>
6845
+ <tag line="568" name="since" description="0.1"/>
6846
+ <tag line="568" name="param" description="array of links for the Plugin, e.g., &quot;Activate&quot;" type="array" variable="$links">
6847
  <type by_reference="false">array</type>
6848
  </tag>
6849
+ <tag line="568" name="param" description="Directory and name of the plugin Index file" type="string" variable="$file">
6850
  <type by_reference="false">string</type>
6851
  </tag>
6852
+ <tag line="568" name="return" description="Updated array of links for the Plugin" type="array">
6853
  <type by_reference="false">array</type>
6854
  </tag>
6855
  </docblock>
6856
+ <argument line="578">
6857
  <name>$links</name>
6858
  <default><![CDATA[]]></default>
6859
  <type/>
6860
  </argument>
6861
+ <argument line="578">
6862
  <name>$file</name>
6863
  <default><![CDATA[]]></default>
6864
  <type/>
6865
  </argument>
6866
  </method>
6867
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="598" package="Media Library Assistant">
6868
  <name>_update_option_row</name>
6869
  <full_name>_update_option_row</full_name>
6870
+ <docblock line="587">
6871
  <description><![CDATA[Update or delete a single MLA option value]]></description>
6872
  <long-description><![CDATA[]]></long-description>
6873
+ <tag line="587" name="since" description="0.80"/>
6874
+ <tag line="587" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
6875
+ <tag line="587" name="param" description="HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)" type="string" variable="$key">
6876
  <type by_reference="false">string</type>
6877
  </tag>
6878
+ <tag line="587" name="param" description="Option parameters, e.g., 'type', 'std'" type="array" variable="$value">
6879
  <type by_reference="false">array</type>
6880
  </tag>
6881
+ <tag line="587" name="return" description="HTML markup for the option's table row" type="string">
6882
  <type by_reference="false">string</type>
6883
  </tag>
6884
  </docblock>
6885
+ <argument line="598">
6886
  <name>$key</name>
6887
  <default><![CDATA[]]></default>
6888
  <type/>
6889
  </argument>
6890
+ <argument line="598">
6891
  <name>$value</name>
6892
  <default><![CDATA[]]></default>
6893
  <type/>
6894
  </argument>
6895
  </method>
6896
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="676" package="Media Library Assistant">
6897
  <name>_compose_option_row</name>
6898
  <full_name>_compose_option_row</full_name>
6899
+ <docblock line="665">
6900
  <description><![CDATA[Compose the table row for a single MLA option]]></description>
6901
  <long-description><![CDATA[]]></long-description>
6902
+ <tag line="665" name="since" description="0.80"/>
6903
+ <tag line="665" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6904
+ <tag line="665" name="param" description="HTML id/name attribute and option database key (OMIT MLA_OPTION_PREFIX)" type="string" variable="$key">
6905
  <type by_reference="false">string</type>
6906
  </tag>
6907
+ <tag line="665" name="param" description="Option parameters, e.g., 'type', 'std'" type="array" variable="$value">
6908
  <type by_reference="false">array</type>
6909
  </tag>
6910
+ <tag line="665" name="return" description="HTML markup for the option's table row" type="string">
6911
  <type by_reference="false">string</type>
6912
  </tag>
6913
  </docblock>
6914
+ <argument line="676">
6915
  <name>$key</name>
6916
  <default><![CDATA[]]></default>
6917
  <type/>
6918
  </argument>
6919
+ <argument line="676">
6920
  <name>$value</name>
6921
  <default><![CDATA[]]></default>
6922
  <type/>
6923
  </argument>
6924
  </method>
6925
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="839" package="Media Library Assistant">
6926
  <name>_compose_settings_tabs</name>
6927
  <full_name>_compose_settings_tabs</full_name>
6928
+ <docblock line="829">
6929
  <description><![CDATA[Compose the navigation tabs for the Settings subpage]]></description>
6930
  <long-description><![CDATA[]]></long-description>
6931
+ <tag line="829" name="since" description="0.80"/>
6932
+ <tag line="829" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6933
+ <tag line="829" name="param" description="Optional data-tab-id value for the active tab, default 'general'" type="string" variable="$active_tab">
6934
  <type by_reference="false">string</type>
6935
  </tag>
6936
+ <tag line="829" name="return" description="HTML markup for the Settings subpage navigation tabs" type="string">
6937
  <type by_reference="false">string</type>
6938
  </tag>
6939
  </docblock>
6940
+ <argument line="839">
6941
  <name>$active_tab</name>
6942
  <default><![CDATA['general']]></default>
6943
  <type/>
6944
  </argument>
6945
  </method>
6946
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="865" package="Media Library Assistant">
6947
  <name>_compose_general_tab</name>
6948
  <full_name>_compose_general_tab</full_name>
6949
+ <docblock line="857">
6950
  <description><![CDATA[Compose the General tab content for the Settings subpage]]></description>
6951
  <long-description><![CDATA[]]></long-description>
6952
+ <tag line="857" name="since" description="0.80"/>
6953
+ <tag line="857" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
6954
+ <tag line="857" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6955
  <type by_reference="false">array</type>
6956
  </tag>
6957
  </docblock>
6958
  </method>
6959
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="957" package="Media Library Assistant">
6960
  <name>_current_bulk_action</name>
6961
  <full_name>_current_bulk_action</full_name>
6962
+ <docblock line="950">
6963
  <description><![CDATA[Get the current action selected from the bulk actions dropdown]]></description>
6964
  <long-description><![CDATA[]]></long-description>
6965
+ <tag line="950" name="since" description="1.40"/>
6966
+ <tag line="950" name="return" description="The action name or False if no action was selected" type="string|false">
6967
  <type by_reference="false">string</type>
6968
  <type by_reference="false">false</type>
6969
  </tag>
6970
  </docblock>
6971
  </method>
6972
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="987" package="Media Library Assistant">
6973
  <name>_compose_edit_view_tab</name>
6974
  <full_name>_compose_edit_view_tab</full_name>
6975
+ <docblock line="977">
6976
  <description><![CDATA[Compose the Edit View tab content for the Settings subpage]]></description>
6977
  <long-description><![CDATA[]]></long-description>
6978
+ <tag line="977" name="since" description="1.40"/>
6979
+ <tag line="977" name="param" description="data values for the item" type="array" variable="$view">
6980
  <type by_reference="false">array</type>
6981
  </tag>
6982
+ <tag line="977" name="param" description="Display template" type="string" variable="$template">
6983
  <type by_reference="false">string</type>
6984
  </tag>
6985
+ <tag line="977" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
6986
  <type by_reference="false">array</type>
6987
  </tag>
6988
  </docblock>
6989
+ <argument line="987">
6990
  <name>$view</name>
6991
  <default><![CDATA[]]></default>
6992
  <type/>
6993
  </argument>
6994
+ <argument line="987">
6995
  <name>$template</name>
6996
  <default><![CDATA[]]></default>
6997
  <type/>
6998
  </argument>
6999
  </method>
7000
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1020" package="Media Library Assistant">
7001
  <name>_compose_view_tab</name>
7002
  <full_name>_compose_view_tab</full_name>
7003
+ <docblock line="1013">
7004
  <description><![CDATA[Compose the Post MIME Type Views tab content for the Settings subpage]]></description>
7005
  <long-description><![CDATA[]]></long-description>
7006
+ <tag line="1013" name="since" description="1.40"/>
7007
+ <tag line="1013" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7008
  <type by_reference="false">array</type>
7009
  </tag>
7010
  </docblock>
7011
  </method>
7012
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1246" package="Media Library Assistant">
7013
  <name>mla_get_icon_type_dropdown</name>
7014
  <full_name>mla_get_icon_type_dropdown</full_name>
7015
+ <docblock line="1235">
7016
  <description><![CDATA[Get an HTML select element representing a list of icon types]]></description>
7017
  <long-description><![CDATA[]]></long-description>
7018
+ <tag line="1235" name="since" description="1.40"/>
7019
+ <tag line="1235" name="param" description="Display template array" type="array" variable="$templates">
7020
  <type by_reference="false">array</type>
7021
  </tag>
7022
+ <tag line="1235" name="param" description="HTML name attribute value" type="string" variable="$name">
7023
  <type by_reference="false">string</type>
7024
  </tag>
7025
+ <tag line="1235" name="param" description="currently selected Icon Type" type="string" variable="$selection">
7026
  <type by_reference="false">string</type>
7027
  </tag>
7028
+ <tag line="1235" name="return" description="HTML select element or empty string on failure." type="string">
7029
  <type by_reference="false">string</type>
7030
  </tag>
7031
  </docblock>
7032
+ <argument line="1246">
7033
  <name>$templates</name>
7034
  <default><![CDATA[]]></default>
7035
  <type/>
7036
  </argument>
7037
+ <argument line="1246">
7038
  <name>$name</name>
7039
  <default><![CDATA[]]></default>
7040
  <type/>
7041
  </argument>
7042
+ <argument line="1246">
7043
  <name>$selection</name>
7044
  <default><![CDATA['.none.']]></default>
7045
  <type/>
7046
  </argument>
7047
  </method>
7048
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1287" package="Media Library Assistant">
7049
  <name>_compose_edit_upload_tab</name>
7050
  <full_name>_compose_edit_upload_tab</full_name>
7051
+ <docblock line="1277">
7052
  <description><![CDATA[Compose the Edit Upload type tab content for the Settings subpage]]></description>
7053
  <long-description><![CDATA[]]></long-description>
7054
+ <tag line="1277" name="since" description="1.40"/>
7055
+ <tag line="1277" name="param" description="data values for the item" type="array" variable="$item">
7056
  <type by_reference="false">array</type>
7057
  </tag>
7058
+ <tag line="1277" name="param" description="Display template array" type="string" variable="$templates">
7059
  <type by_reference="false">string</type>
7060
  </tag>
7061
+ <tag line="1277" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7062
  <type by_reference="false">array</type>
7063
  </tag>
7064
  </docblock>
7065
+ <argument line="1287">
7066
  <name>$item</name>
7067
  <default><![CDATA[]]></default>
7068
  <type/>
7069
  </argument>
7070
+ <argument line="1287">
7071
  <name>$templates</name>
7072
  <default><![CDATA[]]></default>
7073
  <type/>
7074
  </argument>
7075
  </method>
7076
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1322" package="Media Library Assistant">
7077
  <name>_compose_optional_upload_tab</name>
7078
  <full_name>_compose_optional_upload_tab</full_name>
7079
+ <docblock line="1313">
7080
  <description><![CDATA[Compose the Optional File Upload MIME Types tab content for the Settings subpage]]></description>
7081
  <long-description><![CDATA[]]></long-description>
7082
+ <tag line="1313" name="since" description="1.40"/>
7083
+ <tag line="1313" name="param" description="Display templates" type="string" variable="$page_template_array">
7084
  <type by_reference="false">string</type>
7085
  </tag>
7086
+ <tag line="1313" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7087
  <type by_reference="false">array</type>
7088
  </tag>
7089
  </docblock>
7090
+ <argument line="1322">
7091
  <name>$page_template_array</name>
7092
  <default><![CDATA[]]></default>
7093
  <type/>
7094
  </argument>
7095
  </method>
7096
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1388" package="Media Library Assistant">
7097
  <name>_process_optional_upload_mime</name>
7098
  <full_name>_process_optional_upload_mime</full_name>
7099
+ <docblock line="1379">
7100
  <description><![CDATA[Process an Optional Upload MIME Type selection]]></description>
7101
  <long-description><![CDATA[]]></long-description>
7102
+ <tag line="1379" name="since" description="1.40"/>
7103
+ <tag line="1379" name="param" description="MLA Optional Upload MIME Type ID" type="\intger" variable="$ID">
7104
  <type by_reference="false">\intger</type>
7105
  </tag>
7106
+ <tag line="1379" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7107
  <type by_reference="false">array</type>
7108
  </tag>
7109
  </docblock>
7110
+ <argument line="1388">
7111
  <name>$ID</name>
7112
  <default><![CDATA[]]></default>
7113
  <type/>
7114
  </argument>
7115
  </method>
7116
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1408" package="Media Library Assistant">
7117
  <name>_compose_upload_tab</name>
7118
  <full_name>_compose_upload_tab</full_name>
7119
+ <docblock line="1401">
7120
  <description><![CDATA[Compose the File Upload MIME Types tab content for the Settings subpage]]></description>
7121
  <long-description><![CDATA[]]></long-description>
7122
+ <tag line="1401" name="since" description="1.40"/>
7123
+ <tag line="1401" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7124
  <type by_reference="false">array</type>
7125
  </tag>
7126
  </docblock>
7127
  </method>
7128
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1663" package="Media Library Assistant">
7129
  <name>_compose_mla_gallery_tab</name>
7130
  <full_name>_compose_mla_gallery_tab</full_name>
7131
+ <docblock line="1655">
7132
  <description><![CDATA[Compose the MLA Gallery tab content for the Settings subpage]]></description>
7133
  <long-description><![CDATA[]]></long-description>
7134
+ <tag line="1655" name="since" description="0.80"/>
7135
+ <tag line="1655" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
7136
+ <tag line="1655" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7137
  <type by_reference="false">array</type>
7138
  </tag>
7139
  </docblock>
7140
  </method>
7141
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1967" package="Media Library Assistant">
7142
  <name>_compose_custom_field_tab</name>
7143
  <full_name>_compose_custom_field_tab</full_name>
7144
+ <docblock line="1959">
7145
  <description><![CDATA[Compose the Custom Field tab content for the Settings subpage]]></description>
7146
  <long-description><![CDATA[]]></long-description>
7147
+ <tag line="1959" name="since" description="1.10"/>
7148
+ <tag line="1959" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
7149
+ <tag line="1959" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7150
  <type by_reference="false">array</type>
7151
  </tag>
7152
  </docblock>
7153
  </method>
7154
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2074" package="Media Library Assistant">
7155
  <name>_compose_iptc_exif_tab</name>
7156
  <full_name>_compose_iptc_exif_tab</full_name>
7157
+ <docblock line="2066">
7158
  <description><![CDATA[Compose the IPTC/EXIF tab content for the Settings subpage]]></description>
7159
  <long-description><![CDATA[]]></long-description>
7160
+ <tag line="2066" name="since" description="1.00"/>
7161
+ <tag line="2066" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
7162
+ <tag line="2066" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7163
  <type by_reference="false">array</type>
7164
  </tag>
7165
  </docblock>
7166
  </method>
7167
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2183" package="Media Library Assistant">
7168
  <name>_compose_documentation_tab</name>
7169
  <full_name>_compose_documentation_tab</full_name>
7170
+ <docblock line="2175">
7171
  <description><![CDATA[Compose the Documentation tab content for the Settings subpage]]></description>
7172
  <long-description><![CDATA[]]></long-description>
7173
+ <tag line="2175" name="since" description="0.80"/>
7174
+ <tag line="2175" name="uses" description="\global\$page_template_array" refers="\global\$page_template_array"/>
7175
+ <tag line="2175" name="return" description="'message' =&gt; status/error messages, 'body' =&gt; tab content" type="array">
7176
  <type by_reference="false">array</type>
7177
  </tag>
7178
  </docblock>
7179
  </method>
7180
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="2202" package="Media Library Assistant">
7181
  <name>mla_render_settings_page</name>
7182
  <full_name>mla_render_settings_page</full_name>
7183
+ <docblock line="2195">
7184
  <description><![CDATA[Render (echo) the "Media Library Assistant" subpage in the Settings section]]></description>
7185
  <long-description><![CDATA[]]></long-description>
7186
+ <tag line="2195" name="since" description="0.1"/>
7187
+ <tag line="2195" name="return" description="Echoes HTML markup for the Settings subpage" type="void">
7188
  <type by_reference="false">void</type>
7189
  </tag>
7190
  </docblock>
7191
  </method>
7192
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2261" package="Media Library Assistant">
7193
  <name>_save_gallery_settings</name>
7194
  <full_name>_save_gallery_settings</full_name>
7195
+ <docblock line="2252">
7196
  <description><![CDATA[Save MLA Gallery settings to the options table]]></description>
7197
  <long-description><![CDATA[]]></long-description>
7198
+ <tag line="2252" name="since" description="0.80"/>
7199
+ <tag line="2252" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7200
+ <tag line="2252" name="return" description="Message(s) reflecting the results of the operation" type="array">
7201
  <type by_reference="false">array</type>
7202
  </tag>
7203
  </docblock>
7204
  </method>
7205
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2504" package="Media Library Assistant">
7206
  <name>_save_view_settings</name>
7207
  <full_name>_save_view_settings</full_name>
7208
+ <docblock line="2495">
7209
  <description><![CDATA[Save View settings to the options table]]></description>
7210
  <long-description><![CDATA[]]></long-description>
7211
+ <tag line="2495" name="since" description="1.40"/>
7212
+ <tag line="2495" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7213
+ <tag line="2495" name="return" description="Message(s) reflecting the results of the operation" type="array">
7214
  <type by_reference="false">array</type>
7215
  </tag>
7216
  </docblock>
7217
  </method>
7218
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2535" package="Media Library Assistant">
7219
  <name>_save_upload_settings</name>
7220
  <full_name>_save_upload_settings</full_name>
7221
+ <docblock line="2526">
7222
  <description><![CDATA[Save Upload settings to the options table]]></description>
7223
  <long-description><![CDATA[]]></long-description>
7224
+ <tag line="2526" name="since" description="1.40"/>
7225
+ <tag line="2526" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7226
+ <tag line="2526" name="return" description="Message(s) reflecting the results of the operation" type="array">
7227
  <type by_reference="false">array</type>
7228
  </tag>
7229
  </docblock>
7230
  </method>
7231
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2571" package="Media Library Assistant">
7232
  <name>_process_custom_field_mapping</name>
7233
  <full_name>_process_custom_field_mapping</full_name>
7234
+ <docblock line="2560">
7235
  <description><![CDATA[Process custom field settings against all image attachments
7236
  without saving the settings to the mla_option]]></description>
7237
  <long-description><![CDATA[]]></long-description>
7238
+ <tag line="2560" name="since" description="1.10"/>
7239
+ <tag line="2560" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7240
+ <tag line="2560" name="param" description="| NULL specific custom_field_mapping values" type="array" variable="$settings">
7241
  <type by_reference="false">array</type>
7242
  </tag>
7243
+ <tag line="2560" name="return" description="Message(s) reflecting the results of the operation" type="array">
7244
  <type by_reference="false">array</type>
7245
  </tag>
7246
  </docblock>
7247
+ <argument line="2571">
7248
  <name>$settings</name>
7249
  <default><![CDATA[NULL]]></default>
7250
  <type/>
7251
  </argument>
7252
  </method>
7253
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2623" package="Media Library Assistant">
7254
  <name>_delete_custom_field</name>
7255
  <full_name>_delete_custom_field</full_name>
7256
+ <docblock line="2614">
7257
  <description><![CDATA[Delete a custom field from the wp_postmeta table]]></description>
7258
  <long-description><![CDATA[]]></long-description>
7259
+ <tag line="2614" name="since" description="1.10"/>
7260
+ <tag line="2614" name="param" description="specific custom_field_mapping rule" type="array" variable="$value">
7261
  <type by_reference="false">array</type>
7262
  </tag>
7263
+ <tag line="2614" name="return" description="Message(s) reflecting the results of the operation" type="array">
7264
  <type by_reference="false">array</type>
7265
  </tag>
7266
  </docblock>
7267
+ <argument line="2623">
7268
  <name>$value</name>
7269
  <default><![CDATA[]]></default>
7270
  <type/>
7271
  </argument>
7272
  </method>
7273
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2647" package="Media Library Assistant">
7274
  <name>_save_custom_field_settings</name>
7275
  <full_name>_save_custom_field_settings</full_name>
7276
+ <docblock line="2637">
7277
  <description><![CDATA[Save custom field settings to the options table]]></description>
7278
  <long-description><![CDATA[]]></long-description>
7279
+ <tag line="2637" name="since" description="1.10"/>
7280
+ <tag line="2637" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7281
+ <tag line="2637" name="param" description="| NULL specific custom_field_mapping values" type="array" variable="$new_values">
7282
  <type by_reference="false">array</type>
7283
  </tag>
7284
+ <tag line="2637" name="return" description="Message(s) reflecting the results of the operation" type="array">
7285
  <type by_reference="false">array</type>
7286
  </tag>
7287
  </docblock>
7288
+ <argument line="2647">
7289
  <name>$new_values</name>
7290
  <default><![CDATA[NULL]]></default>
7291
  <type/>
7292
  </argument>
7293
  </method>
7294
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2687" package="Media Library Assistant">
7295
  <name>_process_iptc_exif_standard</name>
7296
  <full_name>_process_iptc_exif_standard</full_name>
7297
+ <docblock line="2677">
7298
  <description><![CDATA[Process IPTC/EXIF standard field settings against all image attachments
7299
  without saving the settings to the mla_option]]></description>
7300
  <long-description><![CDATA[]]></long-description>
7301
+ <tag line="2677" name="since" description="1.00"/>
7302
+ <tag line="2677" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7303
+ <tag line="2677" name="return" description="Message(s) reflecting the results of the operation" type="array">
7304
  <type by_reference="false">array</type>
7305
  </tag>
7306
  </docblock>
7307
  </method>
7308
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2739" package="Media Library Assistant">
7309
  <name>_process_iptc_exif_taxonomy</name>
7310
  <full_name>_process_iptc_exif_taxonomy</full_name>
7311
+ <docblock line="2729">
7312
  <description><![CDATA[Process IPTC/EXIF taxonomy term settings against all image attachments
7313
  without saving the settings to the mla_option]]></description>
7314
  <long-description><![CDATA[]]></long-description>
7315
+ <tag line="2729" name="since" description="1.00"/>
7316
+ <tag line="2729" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7317
+ <tag line="2729" name="return" description="Message(s) reflecting the results of the operation" type="array">
7318
  <type by_reference="false">array</type>
7319
  </tag>
7320
  </docblock>
7321
  </method>
7322
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2794" package="Media Library Assistant">
7323
  <name>_process_iptc_exif_custom</name>
7324
  <full_name>_process_iptc_exif_custom</full_name>
7325
+ <docblock line="2782">
7326
  <description><![CDATA[Process IPTC/EXIF custom field settings against all image attachments
7327
  without saving the settings to the mla_option]]></description>
7328
  <long-description><![CDATA[]]></long-description>
7329
+ <tag line="2782" name="since" description="1.00"/>
7330
+ <tag line="2782" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7331
+ <tag line="2782" name="param" description="| NULL specific iptc_exif_custom_mapping values" type="array" variable="$settings">
7332
  <type by_reference="false">array</type>
7333
  </tag>
7334
+ <tag line="2782" name="return" description="Message(s) reflecting the results of the operation" type="array">
7335
  <type by_reference="false">array</type>
7336
  </tag>
7337
  </docblock>
7338
+ <argument line="2794">
7339
  <name>$settings</name>
7340
  <default><![CDATA[NULL]]></default>
7341
  <type/>
7342
  </argument>
7343
  </method>
7344
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2854" package="Media Library Assistant">
7345
  <name>_save_iptc_exif_custom_settings</name>
7346
  <full_name>_save_iptc_exif_custom_settings</full_name>
7347
+ <docblock line="2845">
7348
  <description><![CDATA[Save IPTC/EXIF custom field settings to the options table]]></description>
7349
  <long-description><![CDATA[]]></long-description>
7350
+ <tag line="2845" name="since" description="1.30"/>
7351
+ <tag line="2845" name="param" description="specific iptc_exif_custom_mapping values" type="array" variable="$new_values">
7352
  <type by_reference="false">array</type>
7353
  </tag>
7354
+ <tag line="2845" name="return" description="Message(s) reflecting the results of the operation" type="array">
7355
  <type by_reference="false">array</type>
7356
  </tag>
7357
  </docblock>
7358
+ <argument line="2854">
7359
  <name>$new_values</name>
7360
  <default><![CDATA[]]></default>
7361
  <type/>
7362
  </argument>
7363
  </method>
7364
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2870" package="Media Library Assistant">
7365
  <name>_save_iptc_exif_settings</name>
7366
  <full_name>_save_iptc_exif_settings</full_name>
7367
+ <docblock line="2861">
7368
  <description><![CDATA[Save IPTC/EXIF settings to the options table]]></description>
7369
  <long-description><![CDATA[]]></long-description>
7370
+ <tag line="2861" name="since" description="1.00"/>
7371
+ <tag line="2861" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7372
+ <tag line="2861" name="return" description="Message(s) reflecting the results of the operation" type="array">
7373
  <type by_reference="false">array</type>
7374
  </tag>
7375
  </docblock>
7376
  </method>
7377
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2907" package="Media Library Assistant">
7378
  <name>_save_general_settings</name>
7379
  <full_name>_save_general_settings</full_name>
7380
+ <docblock line="2898">
7381
  <description><![CDATA[Save General settings to the options table]]></description>
7382
  <long-description><![CDATA[]]></long-description>
7383
+ <tag line="2898" name="since" description="0.1"/>
7384
+ <tag line="2898" name="uses" description="\global\$_REQUEST" refers="\global\$_REQUEST"/>
7385
+ <tag line="2898" name="return" description="Message(s) reflecting the results of the operation" type="array">
7386
  <type by_reference="false">array</type>
7387
  </tag>
7388
  </docblock>
7389
  </method>
7390
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="2965" package="Media Library Assistant">
7391
  <name>_reset_general_settings</name>
7392
  <full_name>_reset_general_settings</full_name>
7393
+ <docblock line="2958">
7394
  <description><![CDATA[Delete saved settings, restoring default values]]></description>
7395
  <long-description><![CDATA[]]></long-description>
7396
+ <tag line="2958" name="since" description="0.1"/>
7397
+ <tag line="2958" name="return" description="Message(s) reflecting the results of the operation" type="array">
7398
+ <type by_reference="false">array</type>
7399
+ </tag>
7400
+ </docblock>
7401
+ </method>
7402
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3005" package="Media Library Assistant">
7403
+ <name>_compose_import_settings</name>
7404
+ <full_name>_compose_import_settings</full_name>
7405
+ <docblock line="2998">
7406
+ <description><![CDATA[Compose HTML markup for the import settings if any settings files exist]]></description>
7407
+ <long-description><![CDATA[]]></long-description>
7408
+ <tag line="2998" name="since" description="1.50"/>
7409
+ <tag line="2998" name="return" description="HTML markup for the Import All Settings button and dropdown list, if any" type="string">
7410
+ <type by_reference="false">string</type>
7411
+ </tag>
7412
+ </docblock>
7413
+ </method>
7414
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3058" package="Media Library Assistant">
7415
+ <name>_export_settings</name>
7416
+ <full_name>_export_settings</full_name>
7417
+ <docblock line="3049">
7418
+ <description><![CDATA[Serialize option settings and write them to a file]]></description>
7419
+ <long-description><![CDATA[<p>Options with a default value, i.e., not stored in the database are NOT written to the file.</p>]]></long-description>
7420
+ <tag line="3049" name="since" description="1.50"/>
7421
+ <tag line="3049" name="return" description="Message(s) reflecting the results of the operation" type="array">
7422
+ <type by_reference="false">array</type>
7423
+ </tag>
7424
+ </docblock>
7425
+ </method>
7426
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="3138" package="Media Library Assistant">
7427
+ <name>_import_settings</name>
7428
+ <full_name>_import_settings</full_name>
7429
+ <docblock line="3131">
7430
+ <description><![CDATA[Read a serialized file of option settings and write them to the database]]></description>
7431
+ <long-description><![CDATA[]]></long-description>
7432
+ <tag line="3131" name="since" description="1.50"/>
7433
+ <tag line="3131" name="return" description="Message(s) reflecting the results of the operation" type="array">
7434
  <type by_reference="false">array</type>
7435
  </tag>
7436
  </docblock>
7437
  </method>
7438
  </class>
7439
  </file>
7440
+ <file path="includes\class-mla-shortcodes.php" hash="a87a2da7638583367c84bb39b5fafbf0" package="Media Library Assistant">
7441
  <docblock line="2">
7442
  <description><![CDATA[Media Library Assistant Shortcode handler(s)]]></description>
7443
  <long-description><![CDATA[]]></long-description>
7478
  </tag>
7479
  </docblock>
7480
  </property>
7481
+ <property final="false" static="true" visibility="private" line="1259" namespace="global" package="Media Library Assistant">
7482
  <name>$query_parameters</name>
7483
  <default><![CDATA[array()]]></default>
7484
+ <docblock line="1245">
7485
  <description><![CDATA[WP_Query filter "parameters"]]></description>
7486
  <long-description><![CDATA[<p>This array defines parameters for the query's where and orderby filters,
7487
  mla_shortcode_query_posts_where_filter and mla_shortcode_query_posts_orderby_filter.
7489
  any further logic required to translate those values is contained in the filter.</p>
7490
 
7491
  <p>Array index values are: orderby, post_parent</p>]]></long-description>
7492
+ <tag line="1245" name="since" description="1.13"/>
7493
+ <tag line="1245" name="var" description="" type="array">
7494
  <type by_reference="false">array</type>
7495
  </tag>
7496
  </docblock>
7497
  </property>
7498
+ <property final="false" static="true" visibility="private" line="1368" namespace="global" package="Media Library Assistant">
7499
  <name>$data_selection_parameters</name>
7500
  <default><![CDATA[array('order' => 'ASC', 'orderby' => 'menu_order,ID', 'id' => NULL, 'ids' => array(), 'include' => array(), 'exclude' => array(), 'post_parent' => NULL, 'author' => NULL, 'author_name' => '', 'cat' => 0, 'category_name' => '', 'category__and' => array(), 'category__in' => array(), 'category__not_in' => array(), 'tag' => '', 'tag_id' => 0, 'tag__and' => array(), 'tag__in' => array(), 'tag__not_in' => array(), 'tag_slug__and' => array(), 'tag_slug__in' => array(), 'tax_operator' => '', 'tax_include_children' => true, 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image', 'nopaging' => true, 'numberposts' => 0, 'posts_per_page' => 0, 'posts_per_archive_page' => 0, 'paged' => NULL, 'offset' => NULL, 'mla_paginate_current' => NULL, 'mla_paginate_total' => NULL, 'meta_key' => '', 'meta_value' => '', 'meta_value_num' => NULL, 'meta_compare' => '', 'meta_query' => '', 's' => '')]]></default>
7501
+ <docblock line="1361">
7502
  <description><![CDATA[Data selection parameters for the WP_Query in [mla_gallery]]]></description>
7503
  <long-description><![CDATA[]]></long-description>
7504
+ <tag line="1361" name="since" description="1.30"/>
7505
+ <tag line="1361" name="var" description="" type="array">
7506
  <type by_reference="false">array</type>
7507
  </tag>
7508
  </docblock>
7553
  <type/>
7554
  </argument>
7555
  </method>
7556
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="936" package="Media Library Assistant">
7557
  <name>_process_shortcode_parameter</name>
7558
  <full_name>_process_shortcode_parameter</full_name>
7559
+ <docblock line="926">
7560
  <description><![CDATA[Handles brace/bracket escaping and parses template for a shortcode parameter]]></description>
7561
  <long-description><![CDATA[]]></long-description>
7562
+ <tag line="926" name="since" description="1.14"/>
7563
+ <tag line="926" name="param" description="raw shortcode parameter, e.g., &quot;text {+field+} {brackets} \\{braces\\}&quot;" type="string" variable="$text">
7564
  <type by_reference="false">string</type>
7565
  </tag>
7566
+ <tag line="926" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
7567
  <type by_reference="false">string</type>
7568
  </tag>
7569
+ <tag line="926" name="return" description="query specification with HTML escape sequences and line breaks removed" type="string">
7570
  <type by_reference="false">string</type>
7571
  </tag>
7572
  </docblock>
7573
+ <argument line="936">
7574
  <name>$text</name>
7575
  <default><![CDATA[]]></default>
7576
  <type/>
7577
  </argument>
7578
+ <argument line="936">
7579
  <name>$markup_values</name>
7580
  <default><![CDATA[]]></default>
7581
  <type/>
7582
  </argument>
7583
  </method>
7584
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="955" package="Media Library Assistant">
7585
  <name>_paginate_links</name>
7586
  <full_name>_paginate_links</full_name>
7587
+ <docblock line="942">
7588
  <description><![CDATA[Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links']]></description>
7589
  <long-description><![CDATA[]]></long-description>
7590
+ <tag line="942" name="since" description="1.42"/>
7591
+ <tag line="942" name="param" description="value(s) for mla_output_type parameter" type="array" variable="$output_parameters">
7592
  <type by_reference="false">array</type>
7593
  </tag>
7594
+ <tag line="942" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
7595
  <type by_reference="false">string</type>
7596
  </tag>
7597
+ <tag line="942" name="param" description="merged default and passed shortcode parameter values" type="string" variable="$arguments">
7598
  <type by_reference="false">string</type>
7599
  </tag>
7600
+ <tag line="942" name="param" description="number of attachments in the gallery, without pagination" type="integer" variable="$found_rows">
7601
  <type by_reference="false">integer</type>
7602
  </tag>
7603
+ <tag line="942" name="param" description="output text so far, may include debug values" type="string" variable="$output">
7604
  <type by_reference="false">string</type>
7605
  </tag>
7606
+ <tag line="942" name="return" description="false or string with HTML for pagination output types" type="mixed">
7607
  <type by_reference="false">mixed</type>
7608
  </tag>
7609
  </docblock>
7610
+ <argument line="955">
7611
  <name>$output_parameters</name>
7612
  <default><![CDATA[]]></default>
7613
  <type/>
7614
  </argument>
7615
+ <argument line="955">
7616
  <name>$markup_values</name>
7617
  <default><![CDATA[]]></default>
7618
  <type/>
7619
  </argument>
7620
+ <argument line="955">
7621
  <name>$arguments</name>
7622
  <default><![CDATA[]]></default>
7623
  <type/>
7624
  </argument>
7625
+ <argument line="955">
7626
  <name>$found_rows</name>
7627
  <default><![CDATA[]]></default>
7628
  <type/>
7629
  </argument>
7630
+ <argument line="955">
7631
  <name>$output</name>
7632
  <default><![CDATA['']]></default>
7633
  <type/>
7634
  </argument>
7635
  </method>
7636
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1083" package="Media Library Assistant">
7637
  <name>_process_pagination_output_types</name>
7638
  <full_name>_process_pagination_output_types</full_name>
7639
+ <docblock line="1069">
7640
  <description><![CDATA[Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links']]></description>
7641
  <long-description><![CDATA[]]></long-description>
7642
+ <tag line="1069" name="since" description="1.42"/>
7643
+ <tag line="1069" name="param" description="value(s) for mla_output_type parameter" type="array" variable="$output_parameters">
7644
  <type by_reference="false">array</type>
7645
  </tag>
7646
+ <tag line="1069" name="param" description="template substitution values, e.g., ('instance' =&gt; '1', ... )" type="string" variable="$markup_values">
7647
  <type by_reference="false">string</type>
7648
  </tag>
7649
+ <tag line="1069" name="param" description="merged default and passed shortcode parameter values" type="string" variable="$arguments">
7650
  <type by_reference="false">string</type>
7651
  </tag>
7652
+ <tag line="1069" name="param" description="raw passed shortcode parameter values" type="string" variable="$attr">
7653
  <type by_reference="false">string</type>
7654
  </tag>
7655
+ <tag line="1069" name="param" description="number of attachments in the gallery, without pagination" type="integer" variable="$found_rows">
7656
  <type by_reference="false">integer</type>
7657
  </tag>
7658
+ <tag line="1069" name="param" description="output text so far, may include debug values" type="string" variable="$output">
7659
  <type by_reference="false">string</type>
7660
  </tag>
7661
+ <tag line="1069" name="return" description="false or string with HTML for pagination output types" type="mixed">
7662
  <type by_reference="false">mixed</type>
7663
  </tag>
7664
  </docblock>
7665
+ <argument line="1083">
7666
  <name>$output_parameters</name>
7667
  <default><![CDATA[]]></default>
7668
  <type/>
7669
  </argument>
7670
+ <argument line="1083">
7671
  <name>$markup_values</name>
7672
  <default><![CDATA[]]></default>
7673
  <type/>
7674
  </argument>
7675
+ <argument line="1083">
7676
  <name>$arguments</name>
7677
  <default><![CDATA[]]></default>
7678
  <type/>
7679
  </argument>
7680
+ <argument line="1083">
7681
  <name>$attr</name>
7682
  <default><![CDATA[]]></default>
7683
  <type/>
7684
  </argument>
7685
+ <argument line="1083">
7686
  <name>$found_rows</name>
7687
  <default><![CDATA[]]></default>
7688
  <type/>
7689
  </argument>
7690
+ <argument line="1083">
7691
  <name>$output</name>
7692
  <default><![CDATA['']]></default>
7693
  <type/>
7694
  </argument>
7695
  </method>
7696
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1270" package="Media Library Assistant">
7697
  <name>_sanitize_query_specification</name>
7698
  <full_name>_sanitize_query_specification</full_name>
7699
+ <docblock line="1261">
7700
  <description><![CDATA[Cleans up damage caused by the Visual Editor to the tax_query and meta_query specifications]]></description>
7701
  <long-description><![CDATA[]]></long-description>
7702
+ <tag line="1261" name="since" description="1.14"/>
7703
+ <tag line="1261" name="param" description="query specification; PHP nested arrays" type="string" variable="$specification">
7704
  <type by_reference="false">string</type>
7705
  </tag>
7706
+ <tag line="1261" name="return" description="query specification with HTML escape sequences and line breaks removed" type="string">
7707
  <type by_reference="false">string</type>
7708
  </tag>
7709
  </docblock>
7710
+ <argument line="1270">
7711
  <name>$specification</name>
7712
  <default><![CDATA[]]></default>
7713
  <type/>
7714
  </argument>
7715
  </method>
7716
+ <method final="false" abstract="false" static="true" visibility="private" namespace="global" line="1287" package="Media Library Assistant">
7717
  <name>_validate_sql_orderby</name>
7718
  <full_name>_validate_sql_orderby</full_name>
7719
+ <docblock line="1276">
7720
  <description><![CDATA[Translates query parameters to a valid SQL order by clause.]]></description>
7721
  <long-description><![CDATA[<p>Accepts one or more valid columns, with or without ASC/DESC.
7722
  Enhanced version of /wp-includes/formatting.php function sanitize_sql_orderby().</p>]]></long-description>
7723
+ <tag line="1276" name="since" description="1.20"/>
7724
+ <tag line="1276" name="param" description="Validated query parameters" type="array" variable="$query_parameters">
7725
  <type by_reference="false">array</type>
7726
  </tag>
7727
+ <tag line="1276" name="return" description="Returns the orderby clause if present, false otherwise." type="string|bool">
7728
  <type by_reference="false">string</type>
7729
  <type by_reference="false">bool</type>
7730
  </tag>
7731
  </docblock>
7732
+ <argument line="1287">
7733
  <name>$query_parameters</name>
7734
  <default><![CDATA[]]></default>
7735
  <type/>
7736
  </argument>
7737
  </method>
7738
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1435" package="Media Library Assistant">
7739
  <name>mla_get_shortcode_attachments</name>
7740
  <full_name>mla_get_shortcode_attachments</full_name>
7741
+ <docblock line="1424">
7742
  <description><![CDATA[Parses shortcode parameters and returns the gallery objects]]></description>
7743
  <long-description><![CDATA[]]></long-description>
7744
+ <tag line="1424" name="since" description=".50"/>
7745
+ <tag line="1424" name="param" description="Post ID of the parent" type="int" variable="$post_parent">
7746
  <type by_reference="false">int</type>
7747
  </tag>
7748
+ <tag line="1424" name="param" description="Attributes of the shortcode" type="array" variable="$attr">
7749
  <type by_reference="false">array</type>
7750
  </tag>
7751
+ <tag line="1424" name="param" description="true to calculate and return ['found_posts'] as an array element" type="boolean" variable="$return_found_rows">
7752
  <type by_reference="false">boolean</type>
7753
  </tag>
7754
+ <tag line="1424" name="return" description="List of attachments returned from WP_Query" type="array">
7755
  <type by_reference="false">array</type>
7756
  </tag>
7757
  </docblock>
7758
+ <argument line="1435">
7759
  <name>$post_parent</name>
7760
  <default><![CDATA[]]></default>
7761
  <type/>
7762
  </argument>
7763
+ <argument line="1435">
7764
  <name>$attr</name>
7765
  <default><![CDATA[]]></default>
7766
  <type/>
7767
  </argument>
7768
+ <argument line="1435">
7769
  <name>$return_found_rows</name>
7770
  <default><![CDATA[false]]></default>
7771
  <type/>
7772
  </argument>
7773
  </method>
7774
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1824" package="Media Library Assistant">
7775
  <name>mla_shortcode_query_posts_where_filter</name>
7776
  <full_name>mla_shortcode_query_posts_where_filter</full_name>
7777
+ <docblock line="1810">
7778
  <description><![CDATA[Filters the WHERE clause for shortcode queries]]></description>
7779
  <long-description><![CDATA[<p>Captures debug information. Adds whitespace to the post_type = 'attachment'
7780
  phrase to circumvent subsequent Role Scoper modification of the clause.
7781
  Handles post_parent "any" and "none" cases.
7782
  Defined as public because it's a filter.</p>]]></long-description>
7783
+ <tag line="1810" name="since" description="0.70"/>
7784
+ <tag line="1810" name="param" description="query clause before modification" type="string" variable="$where_clause">
7785
  <type by_reference="false">string</type>
7786
  </tag>
7787
+ <tag line="1810" name="return" description="query clause after modification" type="string">
7788
  <type by_reference="false">string</type>
7789
  </tag>
7790
  </docblock>
7791
+ <argument line="1824">
7792
  <name>$where_clause</name>
7793
  <default><![CDATA[]]></default>
7794
  <type/>
7795
  </argument>
7796
  </method>
7797
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1865" package="Media Library Assistant">
7798
  <name>mla_shortcode_query_posts_orderby_filter</name>
7799
  <full_name>mla_shortcode_query_posts_orderby_filter</full_name>
7800
+ <docblock line="1853">
7801
  <description><![CDATA[Filters the ORDERBY clause for shortcode queries]]></description>
7802
  <long-description><![CDATA[<p>This is an enhanced version of the code found in wp-includes/query.php, function get_posts.
7803
  Defined as public because it's a filter.</p>]]></long-description>
7804
+ <tag line="1853" name="since" description="1.20"/>
7805
+ <tag line="1853" name="param" description="query clause before modification" type="string" variable="$orderby_clause">
7806
  <type by_reference="false">string</type>
7807
  </tag>
7808
+ <tag line="1853" name="return" description="query clause after modification" type="string">
7809
  <type by_reference="false">string</type>
7810
  </tag>
7811
  </docblock>
7812
+ <argument line="1865">
7813
  <name>$orderby_clause</name>
7814
  <default><![CDATA[]]></default>
7815
  <type/>
7816
  </argument>
7817
  </method>
7818
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1890" package="Media Library Assistant">
7819
  <name>mla_shortcode_query_posts_clauses_filter</name>
7820
  <full_name>mla_shortcode_query_posts_clauses_filter</full_name>
7821
+ <docblock line="1878">
7822
  <description><![CDATA[Filters all clauses for shortcode queries, pre caching plugins]]></description>
7823
  <long-description><![CDATA[<p>This is for debug purposes only.
7824
  Defined as public because it's a filter.</p>]]></long-description>
7825
+ <tag line="1878" name="since" description="1.30"/>
7826
+ <tag line="1878" name="param" description="query clauses before modification" type="array" variable="$pieces">
7827
  <type by_reference="false">array</type>
7828
  </tag>
7829
+ <tag line="1878" name="return" description="query clauses after modification (none)" type="array">
7830
  <type by_reference="false">array</type>
7831
  </tag>
7832
  </docblock>
7833
+ <argument line="1890">
7834
  <name>$pieces</name>
7835
  <default><![CDATA[]]></default>
7836
  <type/>
7837
  </argument>
7838
  </method>
7839
+ <method final="false" abstract="false" static="true" visibility="public" namespace="global" line="1908" package="Media Library Assistant">
7840
  <name>mla_shortcode_query_posts_clauses_request_filter</name>
7841
  <full_name>mla_shortcode_query_posts_clauses_request_filter</full_name>
7842
+ <docblock line="1896">
7843
  <description><![CDATA[Filters all clauses for shortcode queries, post caching plugins]]></description>
7844
  <long-description><![CDATA[<p>This is for debug purposes only.
7845
  Defined as public because it's a filter.</p>]]></long-description>
7846
+ <tag line="1896" name="since" description="1.30"/>
7847
+ <tag line="1896" name="param" description="query clauses before modification" type="array" variable="$pieces">
7848
  <type by_reference="false">array</type>
7849
  </tag>
7850
+ <tag line="1896" name="return" description="query clauses after modification (none)" type="array">
7851
  <type by_reference="false">array</type>
7852
  </tag>
7853
  </docblock>
7854
+ <argument line="1908">
7855
  <name>$pieces</name>
7856
  <default><![CDATA[]]></default>
7857
  <type/>
7859
  </method>
7860
  </class>
7861
  </file>
7862
+ <file path="includes\class-mla-upload-list-table.php" hash="f7ba215328a778423cb7b855c72e5716" package="Media Library Assistant">
7863
  <docblock line="2">
7864
  <description><![CDATA[Media Library Assistant extended List Table class]]></description>
7865
  <long-description><![CDATA[]]></long-description>
9439
  </method>
9440
  </class>
9441
  </file>
9442
+ <file path="includes\mla-plugin-loader.php" hash="675bd493d49f57f11b3039517e46dd58" package="Media Library Assistant">
9443
  <docblock line="2">
9444
  <description><![CDATA[Media Library Assistant Plugin Loader]]></description>
9445
  <long-description><![CDATA[<p>Defines constants and loads all of the classes and functions required to run the plugin.
9508
  </docblock>
9509
  </function>
9510
  </file>
9511
+ <file path="index.php" hash="6149065d6dfab8fc7dbc9215bcb3d9d5" package="Media Library Assistant">
9512
  <docblock line="2">
9513
  <description><![CDATA[Provides several enhancements to the handling of images and files held in the WordPress Media Library]]></description>
9514
  <long-description><![CDATA[<p>This file contains several tests for name conflicts with other plugins. Only if the tests are passed
9515
  will the rest of the plugin be loaded and run.</p>]]></long-description>
9516
  <tag line="2" name="package" description="Media Library Assistant"/>
9517
+ <tag line="2" name="version" description="1.50"/>
9518
  </docblock>
9519
+ <include line="134" type="Require Once" package="Media Library Assistant">
9520
  <name>includes/mla-plugin-loader.php</name>
9521
  </include>
9522
+ <constant namespace="global" line="50" package="Media Library Assistant">
9523
  <name>MLA_PLUGIN_PATH</name>
9524
  <full_name>\MLA_PLUGIN_PATH</full_name>
9525
  <value><![CDATA[plugin_dir_path(__FILE__)]]></value>
9526
+ <docblock line="47">
9527
+ <description><![CDATA[Provides path information to the plugin root in file system format, including the trailing slash.]]></description>
9528
  <long-description><![CDATA[]]></long-description>
9529
  </docblock>
9530
  </constant>
9531
+ <constant namespace="global" line="60" package="Media Library Assistant">
9532
  <name>MLA_PLUGIN_URL</name>
9533
  <full_name>\MLA_PLUGIN_URL</full_name>
9534
  <value><![CDATA[plugin_dir_url(__FILE__)]]></value>
9535
+ <docblock line="57">
9536
  <description><![CDATA[Provides path information to the plugin root in URL format.]]></description>
9537
  <long-description><![CDATA[]]></long-description>
9538
  </docblock>
9539
  </constant>
9540
+ <constant namespace="global" line="69" package="Media Library Assistant">
9541
+ <name>MLA_BACKUP_DIR</name>
9542
+ <full_name>\MLA_BACKUP_DIR</full_name>
9543
+ <value><![CDATA[$content_dir . '/mla-backup/']]></value>
9544
+ </constant>
9545
+ <function namespace="global" line="122" package="Media Library Assistant">
9546
  <name>mla_name_conflict_reporting_action</name>
9547
  <full_name>\mla_name_conflict_reporting_action</full_name>
9548
+ <docblock line="117">
9549
  <description><![CDATA[Displays name conflict error messages at the top of the Dashboard]]></description>
9550
  <long-description><![CDATA[]]></long-description>
9551
+ <tag line="117" name="since" description="0.20"/>
9552
  </docblock>
9553
  </function>
9554
  </file>
readme.txt CHANGED
@@ -1,28 +1,30 @@
1
  === Plugin Name ===
2
  Contributors: dglingren
3
  Donate link: http://fairtradejudaica.org/make-a-difference/donate/
4
- Tags: attachment, attachments, documents, gallery, image, images, media, library, media library, media-tags, media tags, tags, media categories, categories, IPTC, EXIF, meta, metadata, photo, photos, photograph, photographs, photoblog, photo albums, lightroom, photoshop, MIME, mime-type, icon, upload, file extensions
5
  Requires at least: 3.3
6
  Tested up to: 3.6
7
- Stable tag: 1.43
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
- Enhances the Media Library; powerful [mla_gallery], taxonomy support, IPTC/EXIF processing, bulk & quick edit actions and where-used reporting.
12
 
13
  == Description ==
14
 
15
  The Media Library Assistant provides several enhancements for managing the Media Library, including:
16
 
17
- * The **`[mla_gallery]` shortcode**, used in a post, page or custom post type to add a gallery of images and/or other Media Library items (such as PDF documents). [MLA Gallery](http://wordpress.org/extend/plugins/media-library-assistant/other_notes/ "Complete Documentation") is a superset of the WordPress `[gallery]` shortcode; it is compatible with `[gallery]` and provides many enhancements. These include: 1) full query and display support for WordPress categories, tags, custom taxonomies and custom fields, 2) support for all post_mime_type values, not just images 3) media Library items need not be "attached" to the post, and 4) control over the styles, markup and content of each gallery using Style and Markup Templates.
 
 
18
 
19
  * **Attachment metadata** such as file size, image dimensions and where-used information can be assigned to WordPress custom fields. You can then use the custom fields in your `[mla_gallery]` display and you can add custom fields as sortable, searchable columns in the Media/Assistant submenu table.
20
 
21
- * **IPTC** and **EXIF** metadata can be assigned to standard WordPress fields, taxonomy terms and custom fields. You can update all existing attachments from the Settings page IPTC/EXIF tab, groups of existing attachments with a Bulk Action or one existing attachment from the Edit Media/Edit Single Item screen. Display **IPTC** and **EXIF** metadata with `[mla_gallery]` custom templates.
22
 
23
  * Complete control over **Post MIME Types, File Upload extensions/MIME Types and file type icon images**. Fifty four (54) additional upload types, 112 file type icon images and a searchable list of over 1,500 file extension/MIME type associations.
24
 
25
- * **Integrates with Photonic Gallery** (plugin), so you can add slideshows, thumbnail strips and special effects to your `[mla_gallery]` galleries.
26
 
27
  * **Enhanced Search Media box**. Search can be extended to the name/slug, ALT text and caption fields. The connector between search terms can be "and" or "or". Search by attachment ID is supported.
28
 
@@ -119,6 +121,23 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
119
 
120
  == Changelog ==
121
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
122
  = 1.43 =
123
  * New: For `[mla_gallery]`, a new `mla_output=paginate_links` parameter creates a paginated link list for galleries with multiple "gallery pages" ( e.g.: < Prev 1 … 3 4 5 6 7 … 9 Next > ). See the Settings/Media Library Assistant Documentation tab for complete information and examples.
124
  * New: For `[mla_gallery]`, `mla_prev_text` and `mla_next_text` can be used in place of `mla_link_text` with the `previous_link` and `next_link` output types.
@@ -184,120 +203,26 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
184
  * Fix: For `[mla_gallery]`, `mla_debug` now works with `mla_alt_shortcode`.
185
  * Fix: For `[mla_gallery]`, the default `caption` value is now available to the `mla_caption` parameter.
186
 
187
- = 1.30 =
188
- * New: **ALL** metadata fields, including the **new fields extracted from audio and video files in WordPress 3.6**, can be mapped to custom fields and added as sortable columns to the Media/Assistant submenu table.
189
- * New: For `[mla_gallery]`, field-level substitution parameters now include **ALL** metadata fields, including the **new fields extracted from audio and video files in WordPress 3.6**.
190
- * New: Use `[mla_gallery]` to determine which items are included in a gallery, then pass them on to another gallery-generating shortcode for formatting and display. The new `mla_alt_shortcode` and `mla_alt_ids_name` parameters let you use any gallery-generating shortcode that accepts a list of attachment ID values. For example, you can use the WordPress.com Jetpack Carousel and Tiled Galleries to create elegant mosaic layouts and immersive full-screen experiences. The "Other Notes" section here or the Documentation tab on the Settings/Media Library Assistant page of the plugin have details.
191
- * New: Improved User Interface for the "IPTC/EXIF" tab on the Settings/Media Library Assistant screen. The "Custom Fields" section of this screen is enhanced to match the "Custom Fields" Settings tab.
192
- * Fix: Media Manager enhanced Search Media box more reliably re-queries the server when search parameters change.
193
- * Fix: For `[mla_gallery]`, `posts_where` and `posts_orderby` filters now have a very low priority to run later and avoid conflicts with other plugins, e.g, "Post Types Order".
194
- * Fix: For `[mla_gallery]`, field-level "query" substitution parameters are now processed in all custom style and markup template parts.
195
- * Fix: For `[mla_gallery]`, empty style and markup template parts are now allowed; empty "Open:" markup will not cause reversion to default template.
196
- * Fix: Default `mla_style` settings now include "-- none --", to suppress generation of default inline CSS styles for the `[mla_gallery]` shortcodes.
197
- * Fix: Improved handling and display of Custom fields with multiple values.
198
- * Fix: For `[mla_gallery]`, `link=post` (added in WordPress 3.5) is now accepted to link gallery items to the corresponding attachment page. The `link=permalink` value continues to work as well.
199
- * Fix: Filtering the Media/Media Library Assistant table display on custom field values with leading spaces (i.e., format=commas) now works properly.
200
-
201
- = 1.20 =
202
- * New: The long-awaited enhancements to the WordPress (3.5+) Media Manager (Add Media, etc.). Filter your attachments by additional MIME types, month and year uploaded and/or taxonomy terms. Keyword search can be extended to the name/slug, ALT text and caption fields. The connector between search terms can be "and" or "or". Search by attachment ID or parent ID is supported. Enable/disable any or all enhancements on the Settings page.
203
- * New: In the `[mla_gallery]` shortcode, enhanced parameters for sorting the gallery results. For example, `orderby=caption` and `orderby=description` are now available to sort gallery results by the Caption (post_excerpt) and Description (post_content) fields. You can also sort on multiple fields, e.g., `orderby="author, date DESC"`, with field-level ASC/DESC control. The "Other Notes" section here or the Documentation tab on the Settings/Media Library Assistant page of the plugin have details.
204
- * New: For `[mla_gallery]`, field-level substitution parameters now include query arguments. You can pass any values you need to the Gallery Display Content parameters and to your custom style and markup templates.
205
- * New: Gallery Display Content parameters now include `mla_link_href`, so you can change the destination and arguments of the URL your gallery items link to.
206
- * New: Markup Substitution Parameters now include `site_url`.
207
- * New: If the search box contains (only) a numeric value it is interpreted as a search by attachment ID **or parent ID (post_parent)**. You can search for a numeric value in the text fields, e.g., title, by putting quotes around the value.
208
- * Fix: For `[mla_gallery]`, `numberposts` is now accepted as a synonym for `posts_per_page`. If both are present, `posts_per_page` wins.
209
- * Fix: For `[mla_gallery]`, handling of `id=0` and `post_parent=0` now match the WordPress `[gallery]` implementation, restricting the query to children of post '0', i.e., unattached media items.
210
- * Fix: Corrected handling of Photonic Gallery `pause` parameter to match Photonic 1.43 implementation. Pause will be `true` if any non-empty value other than 'false' or '0' is present.
211
- * Fix: A Donate button has been added to the top-right corner of the Settings/Media Library Assistant screen.
212
-
213
- = 1.14 =
214
- * New: In the `[mla_gallery]` shortcode, a new `mla_target` parameter allows you to specify the HTML `target` attribute in the gallery item links, e.g., `mla_target="_blank"` will open the items in a new window or tab.
215
- * New: In the `[mla_gallery]` shortcode, a new `tax_operator` parameter allows you to specify "AND" or "NOT IN" operators in the simple `tax_name=term(s)` version of taxonomy queries. See the Settings/Media Library Assistant Documentation page for details.
216
- * New: In the `[mla_gallery]` shortcode, `tax_query` corruption caused by the Visual mode of the post/page editor is now cleaned up before the query is submitted; Line breaks, HTML markup and escape sequences added by the Visual editor are removed.
217
- * Fix: IPTC/EXIF values containing an array, e.g., "2#025 keywords", will be converted to a comma-separated string before assignment to Standard fields or Custom fields.
218
- * Fix: Custom Field Mapping will always ignore rules with Data Source set to "-- None (select a value) --".
219
- * Fix: In the `[mla_gallery]` shortcode, the `orderby` parameter will override the explicit order in the `ids` parameter.
220
- * Fix: In the `[mla_gallery]` shortcode, the `ids` and `include` parameters no longer require `post_parent=all` to match items not attached to the current post/page.
221
- * Fix: The `[mla_gallery]' shortcode can now be called without a current post, e.g., from a PHP file that contains `do_shortcode("[mla_gallery]");`.
222
- * Fix: The value in the Attachments column in the edit taxonomy screen(s) is now correct. In previous versions this value was not correct if a term appeared in more than ten (10) attachments.
223
- * Fix: The Attachments column in the edit taxonomy screen(s) is now updated in response to the WordPress "Quick Edit" action for taxonomy terms. In previous versions the Attachments value was not returned and the Posts/Media value was used instead.
224
- * Fix: The Attachments column in the edit taxonomy screen(s) is now center-justified, following the standard set by the WordPress Posts/Media column. In previous versions it was left-justified.
225
- * Fix: Corrected `vertical-align` attribute in `.gallery-caption` style of the default `mla_style` template.
226
- * Fix: Better handling of minimum PHP and WordPress version violations; removed wp_die() calls.
227
-
228
- = 1.13 =
229
- * New: Any custom field can be added as a sortable, searchable (click on a value to filter the table display) column in the Media/Assistant submenu. Custom fields can also be added to the quick edit and bulk edit areas. Use the Settings/Media Library Assistant Custom Field tab to control all three uses.
230
- * New: Access to EXIF data expanded to include the COMPUTED, THUMBNAIL and COMMENT arrays. Pseudo-values `ALL_EXIF` and `ALL_IPTC` added. Details in the [Other Notes section](http://wordpress.org/extend/plugins/media-library-assistant/other_notes/ "Click here, then scroll down") and the Settings/Media Library Assistant Documentation tab.
231
- * New: For the `[mla_gallery]` shortcode, `mla_viewer=true` and related parameters can be coded to supply thumbnail images for non-image file types pdf, txt, doc, xls and ppt using the Google File Viewer.
232
- * New: For the `[mla_gallery]` shortcode, `post_parent=none` or `post_parent=any` can be coded to restrict gallery output to unattached or attached items respectively.
233
- * New: For the `[mla_gallery]` shortcode, `mla_style=none` parameter can be coded to suppress the inline CSS styles added to gallery output.
234
- * Fix: Corrected occasional error in field-level markup substitution using the `exif` prefix.
235
- * Fix: Corrected error in Custom Field Mapping of `_wp_attachment_metadata` during Media/Add New processing.
236
-
237
- = 1.12 =
238
- * One-off version for a private client.
239
-
240
- = 1.11 =
241
- * New: If the search box contains (only) a numeric value it is interpreted as a search by attachment ID. You can search for a numeric value in the text fields, e.g., title, by putting quotes around the value.
242
- * Fix: The edit taxonomy screen "Attachments" column is now computed correctly when adding new terms, avoiding fatal errors and other odd results.
243
- * Fix: Adopted new WordPress standard for JavaScript files, i.e., use ".min.js" for minified (production) files.
244
-
245
- = 1.10 =
246
- * New: Attachment metadata such as file size, dimensions and where-used status can be assigned to WordPress custom fields. These custom fields can be added to the Media/Assistant submenu table as sortable columns and displayed in `[mla_gallery]` shortcode output.
247
- * New: Integrates with Photonic Gallery (plugin), so you can add slideshows, thumbnail strips and special effects to your `[mla_gallery]` galleries.
248
- * Fix: Edit Media screen with appropriate message displayed after "Map ... Metadata" actions.
249
- * Fix: SQL View (supporting ALT Text sorting/searching) now created only when required and dropped immediately after use. Avoids conflicts with database backup/restore utilities.
250
- * Fix: "Map IPTC/EXIF Metadata" link moved from Image Metadata box to Save Metadata box.
251
- * Fix: Field-level debug information removed from bulk edit messages.
252
- * Fix: PHP Notice for NULL post metadata keys resolved.
253
- * Fix: PHP Notice for images without "sizes" metadata array resolved.
254
-
255
- = 1.00 =
256
- * New: IPTC and EXIF metadata can be assigned to standard WordPress fields, taxonomy terms and custom fields. You can update all existing attachments from the Settings page IPTC/EXIF tab, groups of existing attachments with a Bulk Action or one existing attachment from the Edit Media/Edit Single Item screen.
257
- * New: Where-used processing can be tuned or disabled on the Settings page, General tab.
258
- * New: "Gallery in" and "MLA Gallery in" results are cached for fifteen minutes, avoiding repetitive database access. The cache is automatically flushed when pages, posts or attachments are inserted or updates, and can be manually flushed or disabled on the Settings page, General tab.
259
- * New: Default `[mla_gallery]` style and markup templates can be specified on the Settings page.
260
- * New: `[mla_gallery]` parameter "mla_float" allows control of gallery item "float" attribute.
261
- * Fix: Field-level substitution parameters (custom fields, taxonomy terms, IPTC metadata and EXIF metadata) are now available for mla_link_text, mla_rollover_text and mla_caption parameters.
262
- * Fix: Attachment/Parent relationships are reported consistently on the edit pages and the Media/Assistant submenu table.
263
- * Fix: Defect in generating mla_debug messages has been corrected.
264
- * Fix: Default "Order by" option now includes "None".
265
- * Fix: For WordPress 3.5, Custom Field support for attachments enabled in admin_init action.
266
 
267
- = 0.90 =
268
  * `[mla_gallery]` support for custom fields, taxonomy terms and IPTC/EXIF metadata. Updated for WordPress 3.5!
269
-
270
- = 0.81 =
271
  * Improved default Style template, `[mla_gallery]` parameters "mla_itemwidth" and "mla_margin" for control of gallery item spacing. Quick edit support of WordPress standard Categories taxonomy has been fixed.
272
-
273
- = 0.80 =
274
  * MLA Gallery Style and Markup Templates for control over CSS styles, HTML markup and data content of `[mla_gallery]` shortcode output. Eight other enhancements and four fixes.
275
-
276
- = 0.71 =
277
  * Removed (!) Warning displays for empty Gallery in and MLA Gallery in column entries.
278
-
279
- = 0.70 =
280
  * New "Gallery in" and "MLA Gallery in" where-used reporting to see where items are returned by the `[gallery]` and `[mla_gallery]` shortcodes. Two other enhancements and two fixes.
281
-
282
- = 0.60 =
283
  * Enhanced Search Media box. Extend search to the name/slug, ALT text and caption fields. Connect search terms with "and" or "or". Five other enhancements and two fixes.
284
-
285
- = 0.50 =
286
  * New `[mla_gallery]` shortcode, a superset of the `[gallery]` shortcode that provides many enhancements. These include taxonomy support and all post_mime_type values (not just images). Media Library items need not be "attached" to the post.
287
-
288
- = 0.41 =
289
  * SQL View (supporting ALT Text sorting) now created for automatic plugin upgrades
290
-
291
- = 0.40 =
292
  * Bulk Edit area; add, remove or replace taxonomy terms for several attachments at once. Sort your media listing on ALT Text, exclude revisions from where-used reporting.
293
-
294
- = 0.30 =
295
  * Support ALL taxonomies, including the standard Categories and Tags, your custom taxonomies and the Assistant's pre-defined Att. Categories and Att. Tags. Add taxonomy columns to the Assistant admin screen, filter on any taxonomy, assign terms and list the attachments for a term.
296
-
297
- = 0.20 =
298
  * Quick Edit action for inline editing of attachment metadata
299
-
300
- = 0.11 =
301
  * Fixed "404 Not Found" errors when updating single items.
302
 
303
  = 0.1 =
@@ -305,24 +230,17 @@ All of the MLA source code has been annotated with "DocBlocks", a special type o
305
 
306
  == Upgrade Notice ==
307
 
308
- = 1.43 =
309
- Generalized pagination support with "mla_output=paginate_links". One other enhancement, five fixes.
310
 
311
  == Other Notes ==
312
 
313
  In this section, scroll down to see:
314
 
315
  * Acknowledgements
316
- * MLA Gallery Shortcode Documentation
317
- * Support for Alternative Gallery Output, e.g., Pagination
318
- * Support for Other Gallery-generating Shortcodes
319
- * MLA Gallery Style and Markup Template Documentation
320
- * Library Views/Post MIME Type Processing
321
- * File Extension/MIME Type Processing
322
- * Custom Field Processing Options
323
- * IPTC &amp; EXIF Processing Options
324
 
325
- **NOTE:** More complete documentation is included on the plugin's Settings page and the drop-down "Help" content in the admin screens.
326
 
327
  == Acknowledgements ==
328
 
@@ -343,212 +261,43 @@ The `[mla_gallery]` shortcode is used in a post, page or custom post type to add
343
  * Support for all post_mime_type values, not just images.
344
  * Media Library items need not be "attached" to the post. You can build a gallery with any combination of items in the Library using taxonomy terms, custom fields and more.
345
  * Control over the styles, markup and content of each gallery using the Style and Markup Templates documented below.
 
346
  * Combine [mla_gallery] data selection with other popular gallery-generating plugins to get the best of both.
347
 
348
- All of the options/parameters documented for the `[gallery]` shortcode are supported by the `[mla_gallery]` shortcode; you can find them in the WordPress Codex. Most of the parameters documented for the WP_Query class are also supported; see the WordPress Codex. Because the `[mla_gallery]` shortcode is designed to work with Media Library items, there are some parameter differences and extensions; these are documented below.
349
 
350
  <h4>Gallery Display Style</h4>
351
 
352
  Two parameters provide a way to apply custom style and markup templates to your `[mla_gallery]` display: These parameters replace the default style and/or markup templates with templates you define on the "MLA Gallery" tab of the Settings page.
353
 
354
- * mla_style
355
- * mla_markup
356
-
357
  Three parameters provide control over the placement, size and spacing of gallery items without requiring the use of custom Style templates.
358
 
359
- * mla_float
360
- * mla_margin
361
- * mla_itemwidth
362
-
363
  <h4>Gallery Display Content</h4>
364
 
365
- Twelve parameters provide an easy way to control the contents of gallery items without requiring the use of custom Markup templates.
366
-
367
- * mla_output (pagination support)
368
- * mla_link_attributes
369
- * mla_link_class
370
- * mla_link_href
371
- * mla_link_text
372
- * mla_nolink_text
373
- * mla_rollover_text
374
- * mla_image_attributes
375
- * mla_image_class
376
- * mla_image_alt
377
- * mla_caption
378
- * mla_target
379
 
380
  <h4>Google File Viewer Support</h4>
381
 
382
  Four parameters provide an easy way to generate thumbnail images for the non-image file types.
383
 
384
- * mla_viewer
385
- * mla_viewer_extensions
386
- * mla_viewer_page
387
- * mla_viewer_width
388
-
389
- <h4>Order, Orderby</h4>
390
-
391
- You can sort the gallery by one or more of these values:
392
-
393
- * none
394
- * ID
395
- * author
396
- * date
397
- * description, content
398
- * title
399
- * caption, excerpt
400
- * slug, name
401
- * modified
402
- * parent
403
- * menu_order
404
- * mime_type
405
- * comment_count
406
- * rand
407
- * &lt;keyname&gt;, meta_value, meta_value_num
408
- * post__in
409
-
410
- You can sort on more than one value, e.g., `orderby="author, date DESC"` and you can specify ASC/DESC on a value by value basis.
411
-
412
- <h4>Size</h4>
413
-
414
- The `[mla_gallery]` shortcode supports an additional Size value, "icon", which shows a 60x60 or 64x64 pixel thumbnail for image items and an appropriate icon for non-image items such as PDF or text files.
415
-
416
- <h4>Link</h4>
417
-
418
- For image attachments you can also specify the size of the image file you want to link to. Valid values include "thumbnail", "medium", "large" and any additional image size that was registered with add_image_size(). If the specified size is not available or if the attachment is not an image, the link will go directly to the attachment file.
419
-
420
- <h4>Post ID, "ids", Post Parent</h4>
421
-
422
- You can use the "post_parent" to override the default behavior. If you set "post_parent" to "current", only the items attached to the current post are displayed. If you set "post_parent" to "all", the query will not have a post ID or post_parent parameter. If you set "post_parent" to "any", only the attached items are displayed. If you set "post_parent" to "none", only the unattached items are displayed.
423
-
424
- <h4>Author, Author Name</h4>
425
-
426
- You can query by author's id or the "user_nicename" value (not the "display_name" value). Multiple author ID values are allowed, but only one author name value can be entered.
427
-
428
- <h4>Category and Tag Parameters</h4>
429
-
430
- The Category parameters search in the WordPress core "Categories" taxonomy. The Tag parameters search in the WordPress core "Tags" taxonomy.
431
-
432
- <h4>Taxonomy Parameters, "tax_operator"</h4>
433
-
434
- The `[mla_gallery]` shortcode supports the simple "{tax} (string)" values (deprecated as of WordPress version 3.1) as well as the more powerful "tax_query" value. For simple queries, enter the taxonomy name and the term(s) that must be matched. MLA enhances the simple taxonomy query form by providing an additional parameter, "tax_operator", which can be "IN", "NOT IN" or "AND". More complex queries can be specified by using "tax_query".
435
-
436
- <h4>Post MIME Type</h4>
437
-
438
- You can override the default to, for example, display PDF documents (`post_mime_type=application/pdf`) or all MIME types (`post_mime_type=all`). You can select several MIME types with a comma-separated list, e.g., `post_mime_type='audio,video'`. Wildcard specifications are also supported. For example, `post_mime_type='*/mpeg'` to select audio and video mpeg formats or `post_mime_type='application/*ms*'` to select all Microsoft application formats (Word, Excel, etc.).
439
-
440
- <h4>Pagination Parameters</h4>
441
-
442
- If you are working with a template that supports pagination you can use specific values for "posts_per_page", "posts_per_archive_page", "paged" and/or "offset" .
443
-
444
- The "paged=current" parameter is useful for "paginated single posts" (i.e. posts that include the <code>&lt;!--nextpage--&gt;</code> Quicktag one or more times). Simply make two ore more copies of your <code>[mla_gallery]</code> shortcode separated by the Quicktag and include the "paged=current' in each copy.
445
-
446
- The more complex task of dividing a large <code>[mla_gallery]</code> into two or more pages is supported by MLA's **Support for Alternative Gallery Output, e.g., Pagination**; see the section below.
447
-
448
- <h4>Custom Field Parameters</h4>
449
-
450
- The `[mla_gallery]` shortcode supports the simple custom field parameters as well as the more powerful "meta_query" parameters made available as of WordPress 3.1.
451
-
452
  == Support for Alternative Gallery Output, e.g., pagination ==
453
  The `[mla_gallery]` shortcode can be used to provide "Previous" and "Next" links that support moving among the individual items in a gallery or among gallery "pages". For example, if you have many items with a specific Att. Category or Att. Tag value you can build a single-image page with links to the previous/next item having that value. You can also build a page that shows a large gallery in groups, or "gallery pages", of ten items with links to the previous/next ten items or links to all of the gallery pages of items having that value.
454
 
455
- <h4>The <code>mla_output</code> parameter</h4>
456
-
457
- The **"mla_output"** parameter determines the type of output the shortcode will return. Explanation and examples of each output type are given later in this section. You can choose from six values:
458
 
459
  * `gallery`: The default value; returns the traditional gallery of image thumbnails, captions, etc.
460
- * `next_link`: returns a link to the next gallery item. The optional "<strong>,wrap</strong>" qualifier determines what happens at the end of the gallery. If you omit the qualifier, an empty string is returned for the "next_link" from the last item in the gallery. If you code the ",wrap" qualifier, the "next_link" from the last item will be to the first gallery item.
461
- * `previous_link`: returns a link to the previous gallery item. The optional "<strong>,wrap</strong>" qualifier determines what happens at the beginning of the gallery. If you omit the qualifier, an empty string is returned for the "previous_link" from the first gallery item. If you code the ",wrap" qualifier, "previous_link" from the first gallery item will be to the last gallery item.
462
- * `next_page`: returns a link to the next "page" of gallery items. The optional "<strong>,wrap</strong>" or "<strong>,last</strong>" qualifiers determine what happens at the end of the gallery. If you omit the qualifier, an empty string is returned for the "next_page" if there are no more items in the gallery. If you code the ",wrap" qualifier, the "next_page" from the last page of items will be to the first page of gallery items. If you code the ",last" qualifier, the "next_page" link will return to/remain on the last page of gallery items.
463
- * `previous_page`: returns a link to the previous "page" of gallery items. The optional "<strong>,wrap</strong>" or "<strong>,first</strong>" qualifiers determine what happens at the beginning of the gallery. If you omit the qualifier, an empty string is returned for the "previous_link" from the first page of gallery items. If you code the ",wrap" qualifier, "previous_page" from the first page of gallery items will be to the last page of gallery items. If you code the ",first" qualifier, the "previous_link" link will return to/remain on the first page of gallery items.
464
- * `paginate_links`: returns a link to gallery items at the start and end of the list and to pages around the current "gallery page" ( e.g.: &larr; Prev 1 … 3 4 5 6 7 … 9 Next &rarr; ). The optional "<strong>,show_all</strong>" qualifier will show all of the gallery pages instead of a short list around the current page. The optional "<strong>,prev_next</strong>" qualifier will include the "&larr; Prev" and "Next &rarr;" portions of the link list.
465
-
466
- <h4>Next and previous gallery items; the `next_link` and `previous_link` output types</h4>
467
-
468
- WordPress provides functions that generate links to the "<em>next/previous image attached to the current post</em>." These are not useful when your Media Library items are not images or are not attached to a specific post or page. If, for example, you use an `[mla_gallery]` shortcode to build a gallery of items with a specific Att. Tag value you can use the `next_link` and`previous_link` output types to move through single-item pages for the gallery.
469
-
470
- You can select images using the MLA Att. Tag taxonomy and have each gallery item link to a page (page_id=893 in this case) that displays a larger version of the single image:
471
-
472
- `
473
- [mla_gallery attachment_tag="sample" mla_caption="{+title+}" mla_link_href="{+site_url+}?page_id=893&current_id={+attachment_ID+}&attachment_tag={+query:attachment_tag+}"]
474
- `
475
-
476
- Note the use of `attachment_tag={+query:attachment_tag+}` in the href to pass the tag value from the gallery page to the single-image page. The single-image page would have three [mla+gallery] shortcodes; one to display the image and two for the "Previous Sample" and "Next Sample" links:
477
-
478
- `
479
- [mla_gallery columns=1 ids="{+request:current_id+}" size=medium]
480
-
481
- <div style="clear: both; float: left">
482
- [mla_gallery mla_output="previous_link,wrap" mla_link_text='← Previous Sample' attachment_tag="{+request:attachment_tag+}" id="{+request:current_id+}" mla_caption="{+title+}" mla_link_href="{+site_url+}?page_id=893&current_id={+attachment_ID+}&attachment_tag={+query:attachment_tag+}"]
483
- </div>
484
- <div style="float: right">
485
- [mla_gallery mla_output="next_link,wrap" mla_link_text='Next Sample →' attachment_tag="{+request:attachment_tag+}" id="{+request:current_id+}" mla_caption="{+title+}" mla_link_href="{+site_url+}?page_id=893&current_id={+attachment_ID+}&attachment_tag={+query:attachment_tag+}"]
486
- </div>
487
- `
488
-
489
- Consider the following points:
490
-
491
- 1.The "ids" parameter in the first [mla_gallery] takes the "current_id" value (for the single image to be displayed) from the HTML $_REQUEST array.
492
- 2.The "id" parameters in the second and third [mla_gallery] take the "current_id" value from the HTML $_REQUEST array. In these "galleries" the "current_id" is the item from which "previous" and "next" are calculated.
493
- 3.The "attachment_tag" parameters in the second and third [mla_gallery] take the their value from the HTML $_REQUEST array as well. The Att. Tag value is used to reconstruct the original gallery for the previous/next calculation.
494
-
495
- This example shows the power of the substitution parameters and in particular the "query" and "request" prefixes that can be used to pass information into an [mla_gallery] and from one page to the next. All of this without modifying PHP templates or requiring other code modifications!
496
-
497
- <h4>Next and previous gallery pages; the `next_page` and `previous_page` output types</h4>
498
-
499
- WordPress provides functions that generate links to the "<em>next/previous set of posts within the current query</em>." These are not useful because the "current query" is for posts/pages, <strong>not</strong> Media Library items. What's needed is a way to paginate an `[mla_gallery]` shortcode on a single post or page. If, for example, you use an `[mla_gallery]` shortcode to build a gallery of items with a specific Att. Tag value you can use the `next_page` and `previous_page` output types to move through the gallery in groups of, say, ten items per "gallery page".
500
-
501
- WordPress uses the "paged" parameter to indicate the current "<em>set of posts within the current query</em>." To avoid built-in WordPress logic that uses this parameter, MLA has its own "mla_paginate_current" parameter to indicate the current set of items within the gallery (the current gallery page). MLA will automatically manage this parameter for you, but you can also use it explicitly to handle special cases.
502
-
503
- <h4>Generalized paginated link list; the <code>paginate_links</code> output type</h4>
504
-
505
- WordPress provides a function that "<em>can be used to create paginated link list for any area</em>." The "paginate_links" output type is modeled on this function and lets you generate a list of links for moving among "gallery pages".
506
-
507
- There are five additional parameters unique to this output type:
508
-
509
- * mla_end_size
510
- * mla_mid_size
511
- * mla_prev_text
512
- * mla_next_text
513
- * mla_paginate_type
514
-
515
- If you code the "<strong>,show_all</strong>" qualifier, most of the above parameters have no effect; the "mla_paginate_type" parameter is the exception.
516
 
517
  == Support for Other Gallery-generating Shortcodes ==
518
 
519
- The [mla_gallery] shortcode can be used in combination with other gallery-generating shortcodes to give you the data selection power of [mla_gallery] and the formatting/display power of popular alternatives such as the WordPress.com Jetpack Carousel and Tiled Galleries modules. Any shortcode that accepts "ids=" or a similar parameter listing the attachment ID values for the gallery can be used. Two parameters implement this feature:
520
-
521
- * `mla_alt_shortcode`: the name of the shortcode to be called for gallery format and display
522
- * `mla_alt_ids_name`: (optional, default "ids") the name of the parameter used to pass a list of attachment ID values
523
-
524
- For example, if you want to select images using the MLA Att. Category taxonomy but want to display a "Tiled Mosaic" gallery, you can code:
525
 
526
  `[mla_gallery attachment_category=vegetable tax_operator="NOT IN" mla_alt_shortcode=gallery type="rectangular" mla_alt_ids_name=include]`
527
 
528
- This example selects all the images that are "NOT IN" the Att. Category "vegetable". The selected images are passed to the [gallery] shortcode in an "include" parameter, along with the "type=rectangular" parameter. The result is as if you had coded:
529
-
530
- `[gallery include="1,2,3" type="rectangular"]`
531
-
532
- In the above example, the "mla_alt_ids_name=include" parameter isn't really necessary, since the [gallery] shortcode accepts the "ids" parameter. It was included in the example just to show how the "mla_alt_ids_name" might be used for some other shortcode that requires a different name for the parameter.
533
-
534
- You can pass any parameters you need through the [mla_gallery] shortcode and on to the alternate shortcode you're using. Here's another example, using the Photonic Gallery plugin:
535
-
536
- `[mla_gallery attachment_tag=fauna orderby=rand mla_alt_shortcode=gallery type=default style=strip-below slideshow_height=320 slide_size=medium]`
537
-
538
- Here, [mla_gallery] selects the images with an Att. Tag of "fauna" and sorts them in a random order. It then calls on the [gallery] shortcode (which Photonic also uses):
539
-
540
- `[gallery ids="3,1,4,2,7" type=default style=strip-below slideshow_height=320 slide_size=medium]`
541
-
542
- Photonic recognizes the "type=default" parameter and takes over, using the other three parameters to format its results. This example is a less convenient but more flexible alternative to the native Photonic support built-in to [mla_gallery] (see next section).
543
-
544
- <strong>NOTE:</strong> When you use "mla_alt_shortcode" to pass format/display responsibility off to another shortcode you will lose the [mla_gallery] Gallery Display Style (e.g. "mla_float") and Gallery Display Content (e.g. "mla_caption") parameters. There is no reliable way for [mla_gallery] to pass this information on to the other shortcode you've specified.
545
-
546
- == Support for &ldquo;Photonic Gallery for Flickr, Picasa, SmugMug, 500px and Instagram&rdquo; ==
547
-
548
- The <a href="http://wordpress.org/extend/plugins/photonic/" title="Photonic Gallery plugin directory page" target="_blank">Photonic Gallery for Flickr, Picasa, SmugMug, 500px and Instagram</a> plugin adds several new parameters to the `[mla_gallery]` shortcode to enhance your galleries. All you have to do is install the plugin, then add a "style=" parameter to your `[mla_gallery]` shortcode to use the Photonic styling and markup in place of the native `[mla_gallery]` style and markup templates.
549
-
550
- You can use the "Photonic" screen of the Insert Media dialog to build the display portion of your shortcode parameters. After you click "Insert into post", change the shortcode name from "gallery" to "mla_gallery" and add the query parameters you need to select the attachments for the gallery. The `[mla_gallery]` code will compile the list of attachments for your gallery, then hand control over to Photonic to format the results.
551
-
552
  == MLA Gallery Style and Markup Templates ==
553
 
554
  The Style and Markup templates give you great flexibility for the content and format of each `[mla_gallery]`. You can define as many templates as you need.
@@ -557,159 +306,66 @@ Style templates provide gallery-specific CSS inline styles. Markup templates pro
557
 
558
  The MLA Gallery tab on the Settings page lets you add, change and delete custom templates. The default templates are also displayed on this tab for easy reference.
559
 
560
- In a template, substitution parameters are surrounded by opening ('[+') and closing ('+]') tags to separate them from the template text; see the default templates for many examples.
561
-
562
- <h4>Substitution parameters for style templates</h4>
563
-
564
- A complete list of the <strong>13 style substitution parameters</strong> is on the plugin's Settings page.
565
-
566
- <h4>Substitution parameters for markup templates</h4>
567
-
568
- A complete list of the <strong>16 markup substitution parameters</strong> is on the plugin's Settings page.
569
-
570
- <h4>Attachment-specific substitution parameters for markup templates</h4>
571
-
572
- A complete list of the <strong>35 attachment-specific substitution parameters</strong> is on the plugin's Settings page.
573
-
574
  <h3>Field-level Markup Substitution Parameters</h3>
575
 
576
- Field-level substitution parameters let you access query arguments, custom fields, taxonomy terms, and attachment metadata for display in an MLA gallery. For these parameters, the value you code within the surrounding the ('[+') and ('+]') delimiters has three parts; the prefix, the field name and, if desired, a formatting option.
577
-
578
- The <strong>prefix</strong> defines which type of field-level data you are accessing. It must immediately follow the opening ('[+') delimiter and end with a colon (':'). There can be no spaces in this part of the parameter.
579
-
580
- The <strong>field name</strong> defines which field-level data element you are accessing. It must immediately follow the colon (':'). There can be no spaces between the colon and the field name. Spaces are allowed within the field name to accommodate custom field names that contain them.
581
-
582
- If no formatting option is present, fields with multiple values are formatted as a comma-delimited text list. The formatting option, if present, immediately follows the field name using a comma (,) separator and ends with the closing delimiter ('+]'). There can be no spaces in this part of the parameter.
583
-
584
- The <strong>",single" option</strong> defines how to handle fields with multiple values. If this option is present, only the first value of the field will be returned. Use this option to limit the data returned for a custom field, taxonomy or metadata field that can have many values.
585
-
586
- The <strong>",export" option</strong> changed the display of array fields with multiple values. If this option is present, the PHP `var_export` function is used to return a string representation of all the elements in an array field.
587
 
588
- There are seven prefix values for field-level data. Prefix values must be coded as shown; all lowercase letters.
589
 
590
- * `request`: The parameters defined in the `$_REQUEST` array; the "query strings" sent from the browser. The PHP $_REQUEST variable is a superglobal Array that contains the contents of both $_GET, $_POST, and $_COOKIE arrays. It can be used to collect data sent with both the GET and POST methods. For example, if the URL is `http://www.mysite.com/mypage?myarg=myvalue` you can access the query string as `[+request:myarg+]`, which has the value "myvalue".
591
- * `query`: The parameters defined in the `[mla_gallery]` shortcode. For example, if your shortcode is `[mla gallery attachment_tag=my-tag div-class=some_class]` you can access the parameters as `[+query:attachment_tag+]` and `[+query:div-class+]` respectively. Only the parameters actually coded in the shortcode are accessible; default values for parameters not actually coded are not available. You can define your own parameters, e.g., `div-class`; they will be accessible as field-level data but will otherwise be ignored.
592
- * `custom`: WordPress custom fields, which you can define and populate on the Edit Media screen. The field name, or key, can contain spaces and some punctuation characters. You <strong>cannot use the plus sign ('+')</strong> in a field name you want to use with `[mla_gallery]`. Custom field names are case-sensitive; "client" and "Client" are not the same.
593
- * `terms`: WordPress Category, tag or custom taxonomy terms. For this category, you code the name of the taxonomy as the field name. The term(s) associated with the attachment will be displayed in the `[mla_gallery]`. Note that you must use the name/slug string for taxonomy, not the "title" string. For example, use "attachment-category" or "attachment-tag", not "Att. Category" or "Attachment Category".
 
 
 
 
 
594
 
595
- * `meta`: The WordPress "attachment metadata", if any, embedded in the image/audio/video file. For this category, you can code any of the field names embedded in the `_wp_attachment_metadata` array. The "Attachment Metadata" display in the Media/Edit Media screen will show you the names and values of these fields. Note that the fields available differ among image, audio and video attachments.
596
 
597
- * `iptc`: The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can code any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. You can also use the "friendly name" MLA defines for most of the IPTC fields; see the table of identifiers and friendly names in the MLA documentation. You can find more information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification</a>.
598
 
599
- * `exif`: The EXIF (EXchangeable Image File) metadata, if any, embedded in a JPEG DCT or TIFF Rev 6.0 image file.
600
- Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. It is also supported by many image editing programs such as Adobe PhotoShop.
601
- For this category, you can code any of the field names embedded in the image by the camera or editing software. The is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive. You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
602
 
603
- Two special exif "pseudo-values" are available; <strong>ALL_IPTC</strong> and <strong>ALL_EXIF</strong>. These return a string representation of all IPTC or EXIF data respectively. You can use these pseudo-values to examine the metadata in an image, find field names and see what values are embedded in the image.
604
 
605
- <h3>A Table-based Template Example</h3>
606
- <p>
607
- Here's a small example that shows a gallery using table markup. The Item markup section shows how to use the "terms", "custom", "iptc" and "exif" substitution parameters.
608
 
609
- </p>
610
- <h4>Style Template</h4>
611
 
612
- <style type='text/css'>
613
- #[+selector+] {
614
- margin: auto;
615
- }
616
- #[+selector+] .gallery-row {
617
- float: [+float+];
618
- margin-top: 10px;
619
- border-top: 1px solid #ddd;
620
- text-align: center;
621
- width: [+itemwidth+]%;
622
- }
623
- #[+selector+] .gallery-row td.gallery-icon {
624
- width: 60;
625
- height: 60;
626
- vertical-align: top;
627
- }
628
- #[+selector+] .gallery-row .gallery-icon img {
629
- border: 2px solid #cfcfcf;
630
- }
631
- #[+selector+] .gallery-caption {
632
- margin-left: 0;
633
- vertical-align: top;
634
- }
635
- </style>
636
 
637
- <h4>Markup Template</h4>
638
- <h5>Open</h5>
639
 
640
- <table id='[+selector+]' class='gallery galleryid-[+id+]<br />gallery-columns-[+columns+] gallery-size-[+size_class+]'>
641
 
642
- <h5>Row Open</h5>
 
 
 
643
 
644
- <tr class='gallery-row'>
645
 
646
- <h5>Item</h5>
647
 
648
- <td class='gallery-icon'>
649
- [+link+]
650
- </td>
651
- <td class='wp-caption-text gallery-caption'>
652
- <strong>[+title+]</strong><br />
653
- [+description+]<br />
654
- [+date+]<br />
655
- [+custom:client,single+]<br />
656
- [+terms:category+]<br />
657
- [+iptc:caption-or-abstract+]<br />
658
- [+iptc:2#025,single+]<br />
659
- [+exif:Artist+]
660
- </td>
661
 
662
- <h5>Row Close</h5>
663
-
664
- </tr>
665
-
666
- <h5>Close</h5>
667
-
668
- </table>
669
-
670
- == Library Views/Post MIME Type Processing ==
671
-
672
- WordPress uses Post MIME Types (a terrible name; they have nothing to do with Posts or Pages), to define the views for the Media/Library screen and the Media Manager/Add Media "media items" drop down list. MLA's Media/Assistant screen uses an enhanced version of the list, Table Views, to support views with multiple MIME Types (e.g., "audio,video") and wildcard specifications (e.g. "`*/*ms*`").
673
-
674
- The first time it is invoked, MLA will retrieve the current list of Post MIME Types and use it to initialize the list. MLA will add any custom items it finds added to the list by other plugins and code. Once the list is initialized, MLA's list will be used and other plugins and code will have no effect. You can disable MLA handling of the list by clearing the Enable View and Post MIME Type Support checkbox at the bottom of the screen and clicking "Save Changes".
675
-
676
- The Table View list adds several enhancements to the Post MIME Type list. In the Specification field you can select several MIME types with a comma-separated list, e.g., `post_mime_type='audio,video'`. Wildcard specifications are also supported. For example, `post_mime_type='*/mpeg'` to select audio and video mpeg formats or `post_mime_type='application/*ms*'` to select all Microsoft application formats (Word, Excel, etc.). In the Menu Order field you can enter numeric values to re-arrange the order in which the list entries are displayed in, for example, the Media/Assistant screen.
677
-
678
- The Table View list also supports custom field queries. You can choose from three forms of the custom field specification:
679
-
680
- * To return all items that have a non-NULL value in the field, simply enter the prefix "custom:" followed by the custom field name. For example, custom:My Featured Items
681
- * To return all items that have a NULL value in the field, enter the prefix "custom:" followed by the custom field name and then ",null". For example, custom:My Featured Items,null
682
- * To return all items that match one or more values, enter the prefix "custom:" followed by the custom field name and then "=" followed by a list of values. For example, custom:Color=red or custom:Color=red,green,blue. Wildcard specifications are also supported; for example, "*post" to match anything ending in "post" or "th*da*" to match values like "the date" and "this day".
683
-
684
- == File Extension/MIME Type and Icon Processing ==
685
-
686
- The file extension/MIME Type associations are used by WordPress to decide what kind of files can be uploaded to the Media Library and to fill in the post_mime_type value for files added to the Media Library. To upload a file, the file extension must be in this list and be active.
687
-
688
- WordPress maintains a list of "file types" which associate file extensions with type names used to select an icon image. For example, an "audio" file type is associated with an image of musical notes. There are nine of these types: archive, audio, code, default, document, interactive, spreadsheet, text and video. MLA has a much longer list; 112 icon types/images in all. If the "Enable MLA File Type Icons Support" checkbox at the bottom of the Settings screen, Uploads tab is checked, the enhanced icon images will be used in place of the WordPress images.
689
-
690
- The MLA icon images are slightly larger than the default images and square; 64x64 pixels. The images are drawn (with permission) from the Crystal Project Icons, created by Everaldo Coelho, founder of Yellowicon.
691
-
692
- If you come across a new file extension, or if the existing extension/MIME type association does not suit you, you can search the MLA list of over 1,500 alternatives. The list was compiled from several Internet sources and a vigorous attempt was made to get a Description for each choice. If you find a mistake or an entry missing from the list, let me know!
693
 
694
  ==Custom Field Processing Options==
695
 
696
- On the Custom Fields tab of the Settings screen you can define the rules for mapping several types of file and image metadata to WordPress custom fields. Custom field mapping can be applied automatically when an attachment is added to the Media Library. You can refresh the mapping for <strong><em>ALL</em></strong> attachments using the command buttons on the screen. You can selectively apply the mapping in the bulk edit area of the Media/Assistant submenu table and/or on the Edit Media screen for a single attachment.
697
-
698
- This is a powerful tool, but it comes at the price of additional database storage space processing time to maintain and retrieve the data. <strong><em>Think carefully about your needs before you use this tool.</em></strong> You can disable or delete any rules you create, so you might want to set up some rules for a special project or analysis of your library and then discard them when you're done. That said, the advantages of mapping metadata to custom fields are:
699
 
700
  * You can add the data to an [mla_gallery] with a field-level markup substitution parameter. For example, add the image dimensions or a list of all the intermediate sizes available for the image.
701
 
702
  * You can add the data as a sortable column to the Media/Assistant submenu table. For example, you can find all the "orphans" in your library by adding "reference_issues" and then sorting by that column.
703
 
704
- Most of the data elements are static, i.e., they do not change after the attachment is added to the Media Library. The parent/reference information (parent_type, parent_name, parent_issues, reference_issues) is dynamic; it will change as you define galleries, insert images in posts, define featured images, etc. Because of the database processing required to update this information, <strong><em>parent and reference data are NOT automatically refreshed</em></strong>. If you use these elements, you must manually refresh them with the "map data" buttons on the Settings screen, the bulk edit area or the Edit Media screen.
705
-
706
- Several of the data elements are sourced from the WordPress "image_meta" array. The credit, caption, copyright and title elements are taken from the IPTC/EXIF metadata (if any), but they go through a number of filtering rules that are not easy to replicate with the MLA IPTC/EXIF processing rules. You may find these "image_meta" elements more useful than the raw IPTC/EXIF metadata.
707
-
708
  <h4>Data sources for custom field mapping</h4>
709
 
710
- <strong>NOTE:</strong> Sorting by custom fields in the Media/Assistant submenu is by string values. For numeric data this can cause odd-looking results, e.g., dimensions of "1200x768" will sort before "640x480". The "file_size", "pixels", "width" and "height" data sources are converted to strings and padded on the left with spaces if you use the "commas" format. This padding makes them sort more sensibly.
711
 
712
- A complete list of the <strong>42 data source elements</strong> is on the plugin's Settings page. In addition, you can map any of the fields found in the attachment's WordPress metadata array to a custom field.
713
 
714
  ==IPTC &amp; EXIF Processing Options==
715
 
@@ -723,37 +379,8 @@ The Media Library Assistant has powerful tools for copying image metadata to:
723
 
724
  You can define the rules for mapping metadata on the "IPTC/EXIF" tab of the Settings page. You can choose to automatically apply the rules when new media are added to the Library (or not). You can click the "Map IPTC/EXIF metadata" button on the Edit Media/Edit Single Item screen or in the bulk edit area to selectively apply the rules to one or more images. You can click the "Map All Attachments Now" to apply the rules to <strong>all of the images in your library</strong> at one time.
725
 
726
- <h4>Mapping tables</h4>
727
-
728
- The three mapping tables on the IPTC/EXIF tab have the following columns:
729
-
730
- * `Field Title`: The standard field title, taxonomy name or custom field name. In the Custom Field table you can define a new field by entering its name in the blank box at the bottom of the list; the value will be saved when you click "Save Changes" at the bottom of the screen.
731
-
732
- * `IPTC Value`: The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can select any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. The dropdown list has the identifier and the "friendly name" MLA defines for most of the IPTC fields; see the table of identifiers and friendly names in the table below. You can find more information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification</a>.
733
-
734
- * `EXIF Value`: The EXIF (EXchangeable Image File) metadata, if any, embedded in a JPEG DCT or TIFF Rev 6.0 image file. Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. For this category, you can code any of the field names embedded in the image by the camera or editing software. The is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive. You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
735
- <br />&nbsp;<br />
736
- MLA uses a standard PHP function, <a href="http://php.net/manual/en/function.exif-read-data.php" title="PHP Manual page for exif_read_data" target="_blank">exif_read_data</a>, to extract EXIF data from images. The function returns three arrays in addition to the raw EXIF data; COMPUTED, THUMBNAIL and COMMENT. You can access the array elements by prefacing the element you want with the array name. For example, the user comment text is available as "COMPUTED.UserComment" and "COMPUTED.UserCommentEncoding". You can also get "COMPUTED.Copyright" and its two parts (if present), "COMPUTED.Copyright.Photographer" and "COMPUTED.Copyright.Editor". The THUMBNAIL and COMMENT arrays work in a similar fashion.
737
- <br />&nbsp;<br />
738
- Two special exif "pseudo-values" are available; <strong>ALL_IPTC</strong> and <strong>ALL_EXIF</strong>. These return a string representation of all IPTC or EXIF data respectively. You can use these pseudo-values to examine the metadata in an image, find field names and see what values are embedded in the image.
739
-
740
- * `Priority`: If both the IPTC Value and the EXIF Value are non-blank for a particular image, you can select which of the values will be used for the mapping.
741
-
742
- * `Existing Text`: Images already in the Media Library will have non-blank values in many fields and may have existing terms in a taxonomy. You can select "Keep" to retain these values or "Replace" to always map a metadata value into the field. For a taxonomy, "Keep" will retain any terms already assigned to the item and "Replace" will delete any existing terms before assigning metadata values as terms.
743
-
744
- * `Parent`: For hierarchical taxonomies such as Categories you can select one of the existing terms in the taxonomy as the parent term for any terms you are mapping from metadata values. For example, you could define "IPTC Keywords" as a parent and then assign all of the 2#025 values under that parent term.
745
-
746
- <h4>Map All Attachments Now</h4>
747
-
748
- To the right of each table heading is a "Map All Attachments Now" button. When you click one of these buttons, the mapping rules in that table are applied to <strong>all of the images in the Media Library.</strong> This is a great way to bring your media items up to date, but it is <strong>not reversible</strong>, so think carefully before you click!
749
- Each button applies the rules in just one category, so you can update taxonomy terms without disturbing standard or custom field values.
750
-
751
- These buttons <strong>do not</strong> save any rules changes you've made, so you can make a temporary rule change and process your attachments without disturbing the standing rules.
752
-
753
- <h4>Other mapping techniques</h4>
754
-
755
- There are two other ways you can perform metadata mapping to one or more existing Media Library images:
756
 
757
- * `Single Item Edit/Edit Media screen`: For WordPress 3.5 and later, you can click the "Map IPTC/EXIF metadata" link in the "Image Metadata" postbox to apply the standing mapping rules to a single attachment. For WordPress 3.4.x and earlier, you can click the "Map IPTC/EXIF metadata" button on the Single Item Edit screen to apply the standing mapping rules.
758
 
759
- * `Bulk Action edit area`: To perform mapping for a group of attachments you can use the Bulk Action facility on the main Assistant screen. Check the attachments you want to map, select "edit" from the Bulk Actions dropdown list and click "Apply". The bulk edit area will open with a list of the checked attachments in the left-hand column. You can click the "Map IPTC/EXIF metadata" button in the lower left corner of the area to apply the standing mapping rules to the attachments in the list.
1
  === Plugin Name ===
2
  Contributors: dglingren
3
  Donate link: http://fairtradejudaica.org/make-a-difference/donate/
4
+ Tags: attachment, attachments, documents, gallery, image, images, media, library, media library, media-tags, media tags, tags, media categories, categories, IPTC, EXIF, GPS, PDF, meta, metadata, photo, photos, photograph, photographs, photoblog, photo albums, lightroom, photoshop, MIME, mime-type, icon, upload, file extensions
5
  Requires at least: 3.3
6
  Tested up to: 3.6
7
+ Stable tag: 1.50
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ Enhances the Media Library; powerful [mla_gallery], taxonomy support, IPTC/EXIF/PDF processing, bulk/quick edit actions and where-used reporting.
12
 
13
  == Description ==
14
 
15
  The Media Library Assistant provides several enhancements for managing the Media Library, including:
16
 
17
+ * The **`[mla_gallery]` shortcode**, used in a post, page or custom post type to add a gallery of images and/or other Media Library items (such as PDF documents). MLA Gallery is a superset of the WordPress `[gallery]` shortcode; it is compatible with `[gallery]` and provides many enhancements. These include: 1) full query and display support for WordPress categories, tags, custom taxonomies and custom fields, 2) support for all post_mime_type values, not just images 3) media Library items need not be "attached" to the post, and 4) control over the styles, markup and content of each gallery using Style and Markup Templates.
18
+
19
+ * Powerful **Content Templates**, which let you compose a value from multiple data sources, mix literal text with data values, test for empty values and choose among two or more alternatives or suppress output entirely.
20
 
21
  * **Attachment metadata** such as file size, image dimensions and where-used information can be assigned to WordPress custom fields. You can then use the custom fields in your `[mla_gallery]` display and you can add custom fields as sortable, searchable columns in the Media/Assistant submenu table.
22
 
23
+ * **IPTC**, **EXIF (including GPS)** and **PDF** metadata can be assigned to standard WordPress fields, taxonomy terms and custom fields. You can update all existing attachments from the Settings page IPTC/EXIF tab, groups of existing attachments with a Bulk Action or one existing attachment from the Edit Media/Edit Single Item screen. Display **IPTC**, **EXIF** and **PDF** metadata with `[mla_gallery]` custom templates.
24
 
25
  * Complete control over **Post MIME Types, File Upload extensions/MIME Types and file type icon images**. Fifty four (54) additional upload types, 112 file type icon images and a searchable list of over 1,500 file extension/MIME type associations.
26
 
27
+ * **Integrates with Photonic Gallery, Jetpack and other plugins**, so you can add slideshows, thumbnail strips and special effects to your `[mla_gallery]` galleries.
28
 
29
  * **Enhanced Search Media box**. Search can be extended to the name/slug, ALT text and caption fields. The connector between search terms can be "and" or "or". Search by attachment ID is supported.
30
 
121
 
122
  == Changelog ==
123
 
124
+ = 1.50 =
125
+ * New: **PDF metadata support**, including the traditional Document Information Dictionary and the newer, more extensive XMP metadata. Include this information in your `[mla_gallery]` display and map it to standard fields, taxonomy terms and custom fields.
126
+ * New: **Content Templates**, which let you compose a value from multiple substitution parameters, combine text and data values, test for empty values and choose among two or more alternatives or suppress output entirely.
127
+ * New: **GPS Metadata** is extracted from EXIF metadata and converted to a variety of convenient formats. Include this information in your `[mla_gallery]` display and map it to standard fields, taxonomy terms and custom fields.
128
+ * New: You can **customize the position, label and title** of the Media/Assistant submenu screen. You can also **remove the default Media/Library** submenu screen.
129
+ * New: On the Settings/Media Library Assistant General tab you can **export and import ALL of your MLA settings** to a simple text file. Backup your settings before making big changes, move settings between sites, etc.
130
+ * New: On the Settings/Media Library Assistant General tab you can **set the depth and child handling for the filter-by taxonomy** on the Media/Assistant submenu.
131
+ * New: On the Media/Assistant submenu, **search, filter and sort values are retained when a "Filter by" value is set** by clicking on an active link in the table.
132
+ * New: On the Media/Assistant submenu, a **"Clear Filter by" button** allows you to clear the filter-by value while retaining other search, filter and sort values.
133
+ * Fix: On the Media/Assistant submenu, the **"Filter by" values are retained** when the Bulk Actions Apply button and the Filter button are clicked.
134
+ * Fix: On the Media/Assistant submenu, **bulk edit of `post_parent`, `post_author` and custom fields** now updates every item in the list, not just the first item.
135
+ * Fix: On the Media/Assistant submenu, "where-used" information for files whose name is a subset of another file's name has been corrected. For example, where-used values for file "abc.jpg" was previously reported in the results for file "bc.jpg" in certain cases.
136
+ * Fix: On the Media/Assistant submenu, "Empty Trash" button/function has been implemented.
137
+ * Fix: PHP Warnings are no longer issued when plugins such as "Codepress Admin Columns" use the HTTP "page" query variable in unexpected ways.
138
+ * Fix: Initialization functions now have a higher priority value, so they run later. This improves features such as discovery of custom taxonomies created in theme `functions.php` files that use the `init` hook.
139
+ * Fix: Hyperlinks to Document tab from other Settings/MediaLibrary Assistant tabs have been changed to more reliable absolute href values.
140
+
141
  = 1.43 =
142
  * New: For `[mla_gallery]`, a new `mla_output=paginate_links` parameter creates a paginated link list for galleries with multiple "gallery pages" ( e.g.: < Prev 1 … 3 4 5 6 7 … 9 Next > ). See the Settings/Media Library Assistant Documentation tab for complete information and examples.
143
  * New: For `[mla_gallery]`, `mla_prev_text` and `mla_next_text` can be used in place of `mla_link_text` with the `previous_link` and `next_link` output types.
203
  * Fix: For `[mla_gallery]`, `mla_debug` now works with `mla_alt_shortcode`.
204
  * Fix: For `[mla_gallery]`, the default `caption` value is now available to the `mla_caption` parameter.
205
 
206
+ = 1.00 - 1.30 =
207
+ * New "mla_alt_shortcode" parameter combines [mla_gallery] with other gallery display shortcodes, e.g., Jetpack Carousel and Tiled Mosaic. Support for new 3.6 audio/video metadata. One other enhancement, eight fixes.
208
+ * Media Manager (Add Media, etc.) enhancements: filter by more MIME types, date, taxonomy terms; enhanced search box for name/slug, ALT text, caption and attachment ID. New [mla_gallery] sort options. Four other enhancements, four fixes.
209
+ * New [mla_gallery] mla_target and tax_operator parameters, tax_query cleanup and ids/include fix. Attachments column fix. IPTC/EXIF and Custom Field mapping fixes. Three other fixes.
210
+ * Search by attachment ID, avoid fatal errors and other odd results when adding taxonomy terms. One other fix.
211
+ * Map attachment metadata to custom fields; add them to [mla_gallery] display and as sortable columns on the Media/Assistant submenu table. Get Photonic Gallery (plugin) integration and six other fixes.
212
+ where-used reporting. Specify default `[mla_gallery]` style and markup templates. Five other fixes.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
 
214
+ = 0.11 - 0.90 =
215
  * `[mla_gallery]` support for custom fields, taxonomy terms and IPTC/EXIF metadata. Updated for WordPress 3.5!
 
 
216
  * Improved default Style template, `[mla_gallery]` parameters "mla_itemwidth" and "mla_margin" for control of gallery item spacing. Quick edit support of WordPress standard Categories taxonomy has been fixed.
 
 
217
  * MLA Gallery Style and Markup Templates for control over CSS styles, HTML markup and data content of `[mla_gallery]` shortcode output. Eight other enhancements and four fixes.
 
 
218
  * Removed (!) Warning displays for empty Gallery in and MLA Gallery in column entries.
 
 
219
  * New "Gallery in" and "MLA Gallery in" where-used reporting to see where items are returned by the `[gallery]` and `[mla_gallery]` shortcodes. Two other enhancements and two fixes.
 
 
220
  * Enhanced Search Media box. Extend search to the name/slug, ALT text and caption fields. Connect search terms with "and" or "or". Five other enhancements and two fixes.
 
 
221
  * New `[mla_gallery]` shortcode, a superset of the `[gallery]` shortcode that provides many enhancements. These include taxonomy support and all post_mime_type values (not just images). Media Library items need not be "attached" to the post.
 
 
222
  * SQL View (supporting ALT Text sorting) now created for automatic plugin upgrades
 
 
223
  * Bulk Edit area; add, remove or replace taxonomy terms for several attachments at once. Sort your media listing on ALT Text, exclude revisions from where-used reporting.
 
 
224
  * Support ALL taxonomies, including the standard Categories and Tags, your custom taxonomies and the Assistant's pre-defined Att. Categories and Att. Tags. Add taxonomy columns to the Assistant admin screen, filter on any taxonomy, assign terms and list the attachments for a term.
 
 
225
  * Quick Edit action for inline editing of attachment metadata
 
 
226
  * Fixed "404 Not Found" errors when updating single items.
227
 
228
  = 0.1 =
230
 
231
  == Upgrade Notice ==
232
 
233
+ = 1.50 =
234
+ PDF and GPS Metadata support. Content Templates; mix literal text with data values, test for empty values and choose among two or more alternatives for [mla_gallery] and data mapping. Five other enhancements, seven fixes.
235
 
236
  == Other Notes ==
237
 
238
  In this section, scroll down to see:
239
 
240
  * Acknowledgements
241
+ * Highlights from the documentation, including new and unique plugin features
 
 
 
 
 
 
 
242
 
243
+ **NOTE:** Complete documentation is included in the Documentation tab on the Settings/Media Library Assistant admin screen and the drop-down "Help" content in the admin screens.
244
 
245
  == Acknowledgements ==
246
 
261
  * Support for all post_mime_type values, not just images.
262
  * Media Library items need not be "attached" to the post. You can build a gallery with any combination of items in the Library using taxonomy terms, custom fields and more.
263
  * Control over the styles, markup and content of each gallery using the Style and Markup Templates documented below.
264
+ * Access to a wide range of content using the Attachment-specific and Field-level Substitution parameters documented below. A powerful Content Template facility lets you assemble content from multiple sources and vary the results depending on which data elements contain non-empty values for a given gallery item.
265
  * Combine [mla_gallery] data selection with other popular gallery-generating plugins to get the best of both.
266
 
267
+ All of the options/parameters documented for the `[gallery]` shortcode are supported by the `[mla_gallery]` shortcode; you can find them in the WordPress Codex. Most of the parameters documented for the WP_Query class are also supported; see the WordPress Codex. Because the `[mla_gallery]` shortcode is designed to work with Media Library items, there are some parameter differences and extensions; full documentation comes on the Settings/Media Library Assistant screen of the plugin.
268
 
269
  <h4>Gallery Display Style</h4>
270
 
271
  Two parameters provide a way to apply custom style and markup templates to your `[mla_gallery]` display: These parameters replace the default style and/or markup templates with templates you define on the "MLA Gallery" tab of the Settings page.
272
 
 
 
 
273
  Three parameters provide control over the placement, size and spacing of gallery items without requiring the use of custom Style templates.
274
 
 
 
 
 
275
  <h4>Gallery Display Content</h4>
276
 
277
+ Twelve parameters provide pagination support and an easy way to control the contents of gallery items without requiring the use of custom Markup templates.
 
 
 
 
 
 
 
 
 
 
 
 
 
278
 
279
  <h4>Google File Viewer Support</h4>
280
 
281
  Four parameters provide an easy way to generate thumbnail images for the non-image file types.
282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
283
  == Support for Alternative Gallery Output, e.g., pagination ==
284
  The `[mla_gallery]` shortcode can be used to provide "Previous" and "Next" links that support moving among the individual items in a gallery or among gallery "pages". For example, if you have many items with a specific Att. Category or Att. Tag value you can build a single-image page with links to the previous/next item having that value. You can also build a page that shows a large gallery in groups, or "gallery pages", of ten items with links to the previous/next ten items or links to all of the gallery pages of items having that value.
285
 
286
+ The **"mla_output"** parameter determines the type of output the shortcode will return. You can choose from six values:
 
 
287
 
288
  * `gallery`: The default value; returns the traditional gallery of image thumbnails, captions, etc.
289
+ * `next_link`: returns a link to the next gallery item.
290
+ * `previous_link`: returns a link to the previous gallery item.
291
+ * `next_page`: returns a link to the next "page" of gallery items.
292
+ * `previous_page`: returns a link to the previous "page" of gallery items.
293
+ * `paginate_links`: returns a link to gallery items at the start and end of the list and to pages around the current "gallery page" ( e.g.: &larr; Prev 1 … 3 4 5 6 7 … 9 Next &rarr; ).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
 
295
  == Support for Other Gallery-generating Shortcodes ==
296
 
297
+ The [mla_gallery] shortcode can be used in combination with other gallery-generating shortcodes to give you the data selection power of [mla_gallery] and the formatting/display power of popular alternatives such as the WordPress.com Jetpack Carousel and Tiled Galleries modules. Any shortcode that accepts "ids=" or a similar parameter listing the attachment ID values for the gallery can be used. For example, if you want to select images using the MLA Att. Category taxonomy but want to display a Jetpack "Tiled Mosaic" gallery, you can code:
 
 
 
 
 
298
 
299
  `[mla_gallery attachment_category=vegetable tax_operator="NOT IN" mla_alt_shortcode=gallery type="rectangular" mla_alt_ids_name=include]`
300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  == MLA Gallery Style and Markup Templates ==
302
 
303
  The Style and Markup templates give you great flexibility for the content and format of each `[mla_gallery]`. You can define as many templates as you need.
306
 
307
  The MLA Gallery tab on the Settings page lets you add, change and delete custom templates. The default templates are also displayed on this tab for easy reference.
308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  <h3>Field-level Markup Substitution Parameters</h3>
310
 
311
+ Field-level substitution parameters let you access query arguments, custom fields, taxonomy terms, and attachment metadata for display in an MLA gallery. Formatting options let you control what happens when a field has multiple values.
 
 
 
 
 
 
 
 
 
 
312
 
313
+ There are nine prefix values for field-level data.
314
 
315
+ * `request`: The parameters defined in the `$_REQUEST` array; the "query strings" sent from the browser.
316
+ * `query`: The parameters defined in the `[mla_gallery]` shortcode.
317
+ * `custom`: WordPress custom fields, which you can define and populate on the Edit Media screen.
318
+ * `terms`: WordPress Category, tag or custom taxonomy terms.
319
+ * `meta`: The WordPress "attachment metadata", if any, embedded in the image/audio/video file. For this category, you can code any of the field names embedded in the `_wp_attachment_metadata` array.
320
+ * `pdf`: The Document Information Dictionary (D.I.D.)and XMP metadata, if any, embedded in a PDF file. For this category, you can code any of the nine D.I.D. entries (Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, Trapped). For many documents there is also a rich collection of additional metadata stored in XMP Metadata Streams.
321
+ * `iptc`: The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file.
322
+ * `exif`: The EXIF (EXchangeable Image File) metadata, if any, embedded in a JPEG DCT or TIFF Rev 6.0 image file.
323
+ * `template: A Content Template, which lets you compose a value from multiple substitution parameters and test for empty values, choosing among two or more alternatives or suppressing output entirely. See the plugin documentation for details.
324
 
325
+ <h4>NEW! Metadata in PDF documents</h4>
326
 
327
+ Metadata in PDF documents comes from two sources. Early versions of the PDF specification defined a Document Information Dictionary (D.I.D.) containing up to nine (optional) fields: Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate and Trapped.</td>
328
 
329
+ More recent versions of the specification add a second source of metadata, Metadata Streams, holding data defined by the Extensible Metadata Platform (XMP) framework. XMP metadata varies from document to document but is often extensive. MLA provides access to this data in three ways:
 
 
330
 
331
+ 1. If a D.I.D. field is not stored in the document, MLA will copy appropriate values from the XMP data into the empty field to populate it as often as possible. For example, the "creator" value(s) in the "dc" namespace ("dc.creator") might be copied to an empty "Author" field, or the "dc.subject" value(s) might be copied to an empty Keywords field.
332
 
333
+ 2. Additional values in the "xmp", "xmpMM", "xmpRights", "xap", "xapMM", "dc", "pdf" and "pdfx" namespaces are copied up to the root level for easier access. For example, the "pdfx.SourceModified" value can be accessed as "SourceModified", without the "pdfx." portion of the compound name.
 
 
334
 
335
+ 3. Other namespaces in the document are copied to arrays at the root level. For example, some documents contain information in the "photoshop" namespace, such as "photoshop.CaptionWriter" and "photoshop.AuthorsPosition". The native values of some fields, e.g., "dc.creator", can be an array.
 
336
 
337
+ A special "pseudo value", "ALL_PDF", returns a string representation of all the metadata. You can use this pseudo-value to examine the metadata in a document, find field names and see what values are present.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
338
 
339
+ == NEW! Content Templates ==
 
340
 
341
+ Content Templates (templates) are one of the Field-level Markup Substitution Parameters, indicated by a prefix value ( `[+template: ... +]` ). Within a template you can have any combination of four elements:
342
 
343
+ * `String`: text and/or field-level substitution parameters, e.g., `[+template: Base File - [+base_file+] +]`
344
+ * `Conditional`: text and/or field-level substitution parameters that will be tested for missing values. Any field-level substitution parameter that is not valid, is empty or contains only whitespace will cause the entire conditional to be eliminated. Conditional elements are enclosed in parentheses. For example, `[+template: (ITPC Title: [+iptc:object-name+] ) +]`. If the IPTC field is missing or blank both it and the preceding "ITPC Title: " literal are eliminated.
345
+ * `Choice`: two or more alternatives from which the first valid, non-empty value will be taken. Choice elements are separated by vertical bars ("|"), e.g., `[+template: Summary: ([+caption+]|[+description+]|[+title+]) +]`
346
+ * `Template`: another template. There is no particular advantage to nesting templates, but it works.
347
 
348
+ The conditional and choice elements are the key to templates' power, particularly with custom fields and metadata such as ITPC and EXIF. With the conditional element you can combine literal text with a substitution value and eliminate the text if the value is missing. With the choice element you can specify multiple sources for a value and decide the order in which they are tested. In the choice example above the text "Description: " will always be used, followed by the attachment's caption (if present) or the description value or the literal "none" if both of the other values are missing.
349
 
350
+ Conditional, choice and template elements can be nested as needed. For example, a conditional element can have a choice element within it or a choice alternative could include a conditional. Here's an example:
351
 
352
+ `[+template: Terms: (([+terms:category+], [+terms:post_tag+])|[+ terms: category +]|[+terms:post_tag +]|none)+]`
 
 
 
 
 
 
 
 
 
 
 
 
353
 
354
+ This template has a String, "Terms: " and a Conditional, "(([+terms: … none)". This Conditional separates the "Terms: " literal from the first alternative in the Choice. Within the Conditional is a Choice having four alternatives. The first alternative is a Conditional, which will be empty unless both categories and tags are present. The second and third alternatives handle the cases where one of the two taxonomies has terms, and the final alternative is used when neither categories nor tags are present.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
355
 
356
  ==Custom Field Processing Options==
357
 
358
+ On the Custom Fields tab of the Settings screen you can define the rules for mapping several types of file and image metadata to WordPress custom fields. Custom field mapping can be applied automatically when an attachment is added to the Media Library. You can refresh the mapping for <strong><em>ALL</em></strong> attachments using the command buttons on the screen. You can selectively apply the mapping in the bulk edit area of the Media/Assistant submenu table and/or on the Edit Media screen for a single attachment. The advantages of mapping metadata to custom fields are:
 
 
359
 
360
  * You can add the data to an [mla_gallery] with a field-level markup substitution parameter. For example, add the image dimensions or a list of all the intermediate sizes available for the image.
361
 
362
  * You can add the data as a sortable column to the Media/Assistant submenu table. For example, you can find all the "orphans" in your library by adding "reference_issues" and then sorting by that column.
363
 
 
 
 
 
364
  <h4>Data sources for custom field mapping</h4>
365
 
366
+ A complete list of the <strong>42 data source elements</strong> is on the plugin's Settings page. In addition, you can map any of the fields found in the attachment's WordPress metadata array to a custom field.
367
 
368
+ **NEW!** You can use a template to compose a custom field from alternative data sources, depending on which fields are populated for a given attachment. For example, "`[+pdf:Keywords+]|[+iptc:2#025+]|none`" will use the PDF Keywords field, if populated, then the IPTC keywords field, if populated, or the literal "none" if neither field contains a value. With this template you can get keywords from both PDF documents and images in a single field.
369
 
370
  ==IPTC &amp; EXIF Processing Options==
371
 
379
 
380
  You can define the rules for mapping metadata on the "IPTC/EXIF" tab of the Settings page. You can choose to automatically apply the rules when new media are added to the Library (or not). You can click the "Map IPTC/EXIF metadata" button on the Edit Media/Edit Single Item screen or in the bulk edit area to selectively apply the rules to one or more images. You can click the "Map All Attachments Now" to apply the rules to <strong>all of the images in your library</strong> at one time.
381
 
382
+ You can use a template to compose a value from multiple data sources, e.g., `Taken with [+meta:camera+] at [+dimensions+] using ISO [+exif:ISOSpeedRatings,single+] and [+exif:ExposureTime+] exposure time`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
383
 
384
+ You can use a template to compose a value from alternative data sources, depending on which fields are populated for a given attachment. For example, `[+iptc:2#020+]|[+iptc:2#025+]|none` will use the IPTC supplemental-category field, if populated, then the IPTC keywords field, if populated, or the literal "none" if neither IPTC field contains a value.
385
 
386
+ Using a template in the "Standard field mapping" or "Custom field mapping" tables will yield a text result. For example, multiple IPTC keywords would be converted into a comma-delimited list as a string. In the "Taxonomy term mapping" table the template will deliver an array result if the fields inside the template have multiple values. For example, you can code `[+iptc:2#020+][+iptc:2#025+]` to store each of the IPTC supplemental-category <em><strong>and</strong></em> keywords values (there is no "|" in the template) as a separate taxonomy term.
tpls/admin-display-settings-page.tpl CHANGED
@@ -52,6 +52,10 @@
52
  [+options+]
53
  </select><div style="font-size:8pt;padding-bottom:10px;">&nbsp;&nbsp;[+help+]</div>
54
  </td></tr>
 
 
 
 
55
  <!-- template="select-option" -->
56
  <option [+selected+] value="[+value+]">[+text+]</option>
57
  <!-- template="text" -->
@@ -99,7 +103,9 @@
99
  [+options_list+]
100
  </table>
101
  <p class="submit" style="padding-bottom: 0;">
102
- <input name="mla-general-options-save" type="submit" class="button-primary" value="Save Changes" />
 
 
103
  <input name="mla-general-options-reset" type="submit" class="button-primary" value="Delete General options and restore default settings" style="float:right;"/>
104
  </p>
105
  [+_wpnonce+]
@@ -220,7 +226,7 @@ If you click any of the "Map All Attachments" buttons, the rule currently displa
220
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area you can bypass the mapping logic by leaving the Data Source value as "-- None (select a value) --".
221
  </p>
222
  <p>
223
- You can find more information about all of these topics on the <a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_custom_field_mapping" title="Custom Field Processing Options documentation">Documentation tab</a>.
224
  </p>
225
  <p>
226
  <strong>NOTE:</strong> Check the box in the "MLA Column" column to make the field a sortable, searchable column in the Media/Assistant submenu table. The "file_size", "pixels", "width" and "height" data sources will sort more sensibly if you use the "Commas" format. Check the "Quick Edit" or "Bulk Edit" box to add the field to the quick edit or bulk edit areas of the Media/Assistant submenu.
@@ -252,7 +258,7 @@ You can find more information about all of these topics on the <a href="http:/wp
252
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area go to the "Custom Fields" tab and follow the instructions there.
253
  </p>
254
  <p>
255
- You can find more information about all of these topics on the <a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_iptc_exif_mapping" title="IPTC &amp; EXIF Processing Options documentation">Documentation tab</a>.
256
  </p>
257
  <form action="[+form_url+]" method="post" class="mla-display-settings-page" id="mla-display-settings-iptc-exif-tab">
258
  &nbsp;<br />
52
  [+options+]
53
  </select><div style="font-size:8pt;padding-bottom:10px;">&nbsp;&nbsp;[+help+]</div>
54
  </td></tr>
55
+ <!-- template="select-only" -->
56
+ <select name="[+key+]" id="[+key+]">
57
+ [+options+]
58
+ </select>
59
  <!-- template="select-option" -->
60
  <option [+selected+] value="[+value+]">[+text+]</option>
61
  <!-- template="text" -->
103
  [+options_list+]
104
  </table>
105
  <p class="submit" style="padding-bottom: 0;">
106
+ <input name="mla-general-options-save" type="submit" class="button-primary" value="Save Changes" />&nbsp;&nbsp;
107
+ <input name="mla-general-options-export" type="submit" class="button-primary" value="Export ALL Settings" />
108
+ [+import_settings+]
109
  <input name="mla-general-options-reset" type="submit" class="button-primary" value="Delete General options and restore default settings" style="float:right;"/>
110
  </p>
111
  [+_wpnonce+]
226
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area you can bypass the mapping logic by leaving the Data Source value as "-- None (select a value) --".
227
  </p>
228
  <p>
229
+ You can find more information about all of these topics on the <a href="[+settingsURL+]?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_custom_field_mapping" title="Custom Field Processing Options documentation">Documentation tab</a>.
230
  </p>
231
  <p>
232
  <strong>NOTE:</strong> Check the box in the "MLA Column" column to make the field a sortable, searchable column in the Media/Assistant submenu table. The "file_size", "pixels", "width" and "height" data sources will sort more sensibly if you use the "Commas" format. Check the "Quick Edit" or "Bulk Edit" box to add the field to the quick edit or bulk edit areas of the Media/Assistant submenu.
258
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area go to the "Custom Fields" tab and follow the instructions there.
259
  </p>
260
  <p>
261
+ You can find more information about all of these topics on the <a href="[+settingsURL+]?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_iptc_exif_mapping" title="IPTC &amp; EXIF Processing Options documentation">Documentation tab</a>.
262
  </p>
263
  <form action="[+form_url+]" method="post" class="mla-display-settings-page" id="mla-display-settings-iptc-exif-tab">
264
  &nbsp;<br />
tpls/admin-display-settings-upload-tab.tpl CHANGED
@@ -99,7 +99,7 @@
99
 
100
  <!-- template="before-table" -->
101
  <h3>File Extension and MIME Type Processing</h3>
102
- <p>On this tab you can manage the list of file extension/MIME Type associations, which are used by WordPress to decide what kind of files can be uploaded to the Media Library and to fill in the <strong><em>post_mime_type</em></strong> value. To upload a file, the file extension must be in this list and be active. You can find more information in the <a href="/wp-admin/options-general.php?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_uploads">Documentation tab</a> or by clicking the <strong>"Help"</strong> tab in the upper-right corner of this screen.</p>
103
  <div id="ajax-response"></div>
104
  <form action="[+form_url+]" method="get" id="mla-search-uploads-form">
105
  <input type="hidden" name="page" value="mla-settings-menu-upload" />
99
 
100
  <!-- template="before-table" -->
101
  <h3>File Extension and MIME Type Processing</h3>
102
+ <p>On this tab you can manage the list of file extension/MIME Type associations, which are used by WordPress to decide what kind of files can be uploaded to the Media Library and to fill in the <strong><em>post_mime_type</em></strong> value. To upload a file, the file extension must be in this list and be active. You can find more information in the <a href="[+settingsURL+]?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_uploads">Documentation tab</a> or by clicking the <strong>"Help"</strong> tab in the upper-right corner of this screen.</p>
103
  <div id="ajax-response"></div>
104
  <form action="[+form_url+]" method="get" id="mla-search-uploads-form">
105
  <input type="hidden" name="page" value="mla-settings-menu-upload" />
tpls/admin-display-settings-view-tab.tpl CHANGED
@@ -85,7 +85,7 @@
85
 
86
  <!-- template="before-table" -->
87
  <h3>Library Views/Post MIME Type Processing</h3>
88
- <p>On this tab you can manage the list of "Post MIME Types", which are used by WordPress to define the views for the <em><strong>Media/Library</strong></em> screen and the <em><strong>Media Manager/Add Media</strong></em> "media items" drop down list. MLA's <em><strong>Media/Assistant</strong></em> screen uses an enhanced version of the list, <em>Table Views</em>, to support views with multiple MIME Types (e.g., "audio,video") and wildcard specifications (e.g. "*/*ms*"). You can find more information in the <a href="/wp-admin/options-general.php?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_views">Documentation tab</a> or by clicking the <strong>"Help"</strong> tab in the upper-right corner of this screen.</p>
89
  <div id="ajax-response"></div>
90
  <form action="[+form_url+]" method="get" id="mla-search-views-form">
91
  <input type="hidden" name="page" value="mla-settings-menu-view" />
85
 
86
  <!-- template="before-table" -->
87
  <h3>Library Views/Post MIME Type Processing</h3>
88
+ <p>On this tab you can manage the list of "Post MIME Types", which are used by WordPress to define the views for the <em><strong>Media/Library</strong></em> screen and the <em><strong>Media Manager/Add Media</strong></em> "media items" drop down list. MLA's <em><strong>Media/Assistant</strong></em> screen uses an enhanced version of the list, <em>Table Views</em>, to support views with multiple MIME Types (e.g., "audio,video") and wildcard specifications (e.g. "*/*ms*"). You can find more information in the <a href="[+settingsURL+]?page=mla-settings-menu-documentation&amp;mla_tab=documentation#mla_views">Documentation tab</a> or by clicking the <strong>"Help"</strong> tab in the upper-right corner of this screen.</p>
89
  <div id="ajax-response"></div>
90
  <form action="[+form_url+]" method="get" id="mla-search-views-form">
91
  <input type="hidden" name="page" value="mla-settings-menu-view" />
tpls/documentation-settings-tab.tpl CHANGED
@@ -45,13 +45,18 @@
45
  <a href="#mla_markup_parameters"><strong>Substitution parameters for markup templates</strong></a>
46
  </li>
47
  <li>
48
- <a href="#mla_attachment_parameters"><strong>Attachment-specific substitution parameters for markup templates</strong></a>
49
  </li>
50
  <li>
51
  <a href="#mla_variable_parameters"><strong>Field-level markup substitution parameters</strong></a>
52
  </li>
53
  <li>
54
- <a href="#mla_table_example"><strong>A table-based template example</strong></a>
 
 
 
 
 
55
  </li>
56
  <li>
57
  <a href="#mla_views"><strong>Library Views/Post MIME Type Processing</strong></a>
@@ -72,6 +77,9 @@
72
  <a href="#mla_iptc_exif_mapping"><strong>IPTC &amp; EXIF Processing Options</strong></a>
73
  </li>
74
  <li>
 
 
 
75
  <a href="#mla_iptc_identifiers"><strong>IPTC identifiers and friendly names</strong></a>
76
  </li>
77
  </ul>
@@ -94,6 +102,7 @@ The <code>[mla_gallery]</code> shortcode is used in a post, page or custom post
94
  <li>Support for all post_mime_type values, not just images.</li>
95
  <li>Media Library items need not be "attached" to the post. You can build a gallery with any combination of items in the Library using taxonomy terms, custom fields and more.</li>
96
  <li>Control over the styles, markup and content of each gallery using the Style and Markup Templates documented below.</li>
 
97
  <li>You can combine <code>[mla_gallery]</code> data selection with other popular gallery-generating plugins to get the best of both.
98
  </li>
99
  </ul>
@@ -199,7 +208,7 @@ Twelve <code>[mla_gallery]</code> parameters provide an easy way to control the
199
  <tr>
200
  </table>
201
  <p>
202
- All but the "mla_target" parameter support the <a href="#mla_markup_parameters">Markup</a> and <a href="#mla_attachment_parameters">Attachment-specific</a> substitution arguments defined for Markup Templates. For example, if you code "<code>mla_rollover_text='{+date+} : {+description+}'</code>, the rollover text will contain the upload date, a colon, and the full description of each gallery item. Simply add "{+" before the substitution parameter name and add "+}" after the name. Note that the enclosing delimiters are different than those used in the templates, since the WordPress shortcode parser reserves square brackets ("[" and "]") for its own use.
203
  </p>
204
  <p>
205
  The "mla_link_href" parameter is a great way to change the destination your gallery item links to or add arguments to the link for later processing. For example, to make a gallery item link back to the page/post it is attached to, you can code: <code>mla_link_href='{+site_url+}/?page_id={+parent+}'</code>. You can also add arguments to the link, e.g., <code>mla_link_href='{+link_url+}&amp;amp;myarg=myvalue'</code>. Note the use of the HTML entity name "&amp;amp;" to put an ampersand in the value; the WordPress "visual" post editor will replace "&", "<" and ">" with "&amp;amp;", "&amp;lt;" and "&amp;gt;" whether you like it not. The <strong>only</strong> markup parameter modified by this parameter is "link". Other markup parameters such as "pagelink", "filelink" and "link_url" are not modified.
@@ -371,10 +380,10 @@ Note that the "tag_id" parameter requires exactly one tag ID; multiple IDs are n
371
  </p>
372
  <h4>Taxonomy Parameters, "tax_operator"</h4>
373
  <p>
374
- The <code>[mla_gallery]</code> shortcode supports the simple "{tax} (string)" values (deprecated as of WordPress version 3.1) as well as the more powerful "<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters" title="WordPress Codex Documentation for tax_query" target="_blank">tax_query</a>" value.
375
  </p>
376
  <p>
377
- For simple queries, enter the taxonomy name and the term(s) that must be matched, e.g.:
378
  </p>
379
  <ul class="mla_settings">
380
  <li><code>[mla_gallery attachment_category='separate-category,another-category']</code></li>
@@ -980,7 +989,10 @@ In a template, substitution parameters are surrounded by opening ('[+') and clos
980
  <p>
981
  <a href="#backtotop">Go to Top</a>
982
  </p>
983
- <h4>Attachment-specific substitution parameters for markup templates</h4>
 
 
 
984
  <table>
985
  <tr>
986
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">index</td>
@@ -1134,13 +1146,14 @@ In a template, substitution parameters are surrounded by opening ('[+') and clos
1134
  </p>
1135
  <h3>Field-level Markup Substitution Parameters</h3>
1136
  <p>
1137
- Field-level substitution parameters let you access query arguments, custom fields, taxonomy terms, IPTC metadata and EXIF metadata for display in an MLA gallery. For these parameters, the value you code within the surrounding the ('[+') and ('+]') delimiters has three parts; the prefix, the field name and, if desired, a formatting option.
1138
  </p>
1139
  <p>
1140
  The <strong>prefix</strong> defines which type of field-level data you are accessing. It must immediately follow the opening ('[+') delimiter and end with a colon (':'). There can be no spaces in this part of the parameter.
1141
  </p>
1142
  <p>
1143
- The <strong>field name</strong> defines which field-level data element you are accessing. It must immediately follow the colon (':'). There can be no spaces between the colon and the field name. Spaces are allowed within the field name to accommodate custom field names that contain them. <strong>Compound names</strong> are used to access elements within arrays, e.g., &quot;<strong>sizes.thumbnail.file</strong>&quot; is used to specify the file name for the thumbnail version of an image.</p>
 
1144
  <p>
1145
  If no formatting option is present, fields with multiple values are formatted as a comma-delimited text list. The formatting option, if present, immediately follows the field name using a comma (,) separator and ends with the closing delimiter ('+]'). There can be no spaces in this part of the parameter.</p>
1146
  <p>
@@ -1150,7 +1163,7 @@ The <strong>",single" option</strong> defines how to handle fields with multiple
1150
  The <strong>",export" option</strong> changes the display of array fields with multiple values. If this option is present, the PHP <code>var_export</code> function is used to return a string representation of all the elements in an array field. For example, if you code <code>[+meta:sizes.thumbnail,export+]</code> the result will be "array ('file' => '20120313-ASK_5605-150x150.jpg', 'width' => 150, 'height' => 150, 'mime-type' => 'image/jpeg'".
1151
  </p>
1152
  <p>
1153
- There are seven prefix values for field-level data. Prefix values must be coded as shown; all lowercase letters.
1154
  </p>
1155
  <table>
1156
  <tr>
@@ -1173,12 +1186,19 @@ There are seven prefix values for field-level data. Prefix values must be coded
1173
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">meta</td>
1174
  <td>WordPress attachment metadata, if any, embedded in the image/audio/video file. For this category, you can code any of the field names embedded in the _wp_attachment_metadata array. The "Attachment Metadata" display in the Media/Edit Media screen will show you the names and values of these fields. Note that the fields available differ among image, audio and video attachments.</td>
1175
  </tr>
 
 
 
 
 
 
 
1176
  <tr>
1177
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">iptc</td>
1178
  <td>
1179
- The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can code any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. You can also use the "friendly name" MLA defines for most of the IPTC fields; see the <a href="#mla_iptc_identifiers">table of identifiers and friendly names</a> below. <br />
1180
  &nbsp;<br />
1181
- You can find more information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification</a>.</td>
1182
  </tr>
1183
  <tr>
1184
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">exif</td>
@@ -1187,7 +1207,7 @@ There are seven prefix values for field-level data. Prefix values must be coded
1187
  Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. It is also supported by many image editing programs such as Adobe PhotoShop.
1188
  For this category, you can code any of the field names embedded in the image by the camera or editing software. There is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive.
1189
  <br />&nbsp;<br />
1190
- You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
1191
  <br />&nbsp;<br />
1192
  MLA uses a standard PHP function, <a href="http://php.net/manual/en/function.exif-read-data.php" title="PHP Manual page for exif_read_data" target="_blank">exif_read_data</a>, to extract EXIF data from images. The function returns three arrays in addition to the raw EXIF data; COMPUTED, THUMBNAIL and COMMENT. You can access the array elements by prefacing the element you want with the array name. For example, the user comment text is available as "COMPUTED.UserComment" and "COMPUTED.UserCommentEncoding". You can also get "COMPUTED.Copyright" and its two parts (if present), "COMPUTED.Copyright.Photographer" and "COMPUTED.Copyright.Editor". The THUMBNAIL and COMMENT arrays work in a similar fashion.
1193
  <br />&nbsp;<br />
@@ -1195,14 +1215,142 @@ There are seven prefix values for field-level data. Prefix values must be coded
1195
  <br />&nbsp;<br />
1196
  The ALL_EXIF value is altered in two ways. First, values of more than 256 characters are truncated to 256 characters. This prevents large fields such as image thumbnails from dominating the display. Second, array values are shown once, at their expanded level. For example the "COMPUTED" array is displayed as 'COMPUTED' => '(ARRAY)' and then 'COMPUTED.Width' => "2816", etc.</td>
1197
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1198
  </table>
1199
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1200
  <a name="mla_table_example"></a>
1201
  &nbsp;
1202
  <p>
1203
  <a href="#backtotop">Go to Top</a>
1204
  </p>
1205
- <h3>A Table-based Template Example</h3>
1206
  <p>
1207
  Here's a small example that shows a gallery using <code>&lt;table&gt;</code> markup.
1208
  The Item markup section shows how to use the "terms", "custom", "iptc" and "exif" substitution parameters.
@@ -1426,6 +1574,9 @@ The parent/reference information (parent_type, parent_name, parent_issues, refer
1426
  Several of the data elements are sourced from the WordPress "image_meta" array. The credit, caption, copyright and title elements are taken from the IPTC/EXIF metadata (if any), but they go through a number of filtering rules that are not easy to replicate with the MLA IPTC/EXIF processing rules. You may find these "image_meta" elements more useful than the raw IPTC/EXIF metadata.
1427
  </p>
1428
  <p>
 
 
 
1429
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area you can bypass the mapping logic by leaving the Data Source value as "-- None (select a value) --".
1430
  </p>
1431
  <a name="mla_custom_field_parameters"></a>
@@ -1441,7 +1592,11 @@ If you just want to add a custom field to the Media/Assistant submenu, the quick
1441
  </tr>
1442
  <tr>
1443
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">-- Metadata (see below) --</td>
1444
- <td>WordPress attachment metadata, from the <em>_wp_attachment_metadata</em> array. Enter the field you want in the text box below the dropdown list. More coding guidelines are given below this table.</td>
 
 
 
 
1445
  </tr>
1446
  <tr>
1447
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">absolute_path</td>
@@ -1632,10 +1787,10 @@ If you just want to add a custom field to the Media/Assistant submenu, the quick
1632
  </table>
1633
  <h4>Existing Text dropdown</h4>
1634
  <p>
1635
- If the custom field already has values for one or more items, you can use "Keep" to retain them or "Replace" to delete them. For format options other than "Multiple", "Keep" means that an item with a non-blank value in the field will be unchanged, and new values will be stored only in those items that do not have an existing value. For the "Multiple" option, the existing value(s) will be retained and any new values will be added as separate instances.
1636
  </p>
1637
  <p>
1638
- You can combine "Keep" and "Multiple" in useful ways. For example, to create a "Used in" custom field, you could first define a rule to map the "Featured in" data source with the "Replace", "Multiple" and "Delete NULL values" parameters. Then, map the same field using the "Inserted in" data source with the "Keep" and "Multiple" parameters. That will add the Inserted in values to the Featured in values giving you a single column with both results.
1639
  </p>
1640
  <h4>Format dropdown</h4>
1641
  <p>
@@ -1674,12 +1829,12 @@ Commas
1674
  Four data sources, "file_size", "pixels", "width" and "height", are <strong>always</strong> padded on the left with spaces, even if you use the "Native" format.
1675
  <h4>Option dropdown</h4>
1676
  <p>
1677
- Several data sources can return more than one value. For example, the "Inserted in" source can return a list of posts/pages that contain references to Media Library items. The format option dropdown can further refine your specification where multiple values exist. There are four options:
1678
  </p>
1679
  <table>
1680
  <tr>
1681
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Text</td>
1682
- <td>stores a list of the data source values, separated by commas</td>
1683
  </tr>
1684
  <tr>
1685
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Single</td>
@@ -1690,24 +1845,43 @@ Several data sources can return more than one value. For example, the "Inserted
1690
  <td>for single values, same as Text. For multiple values, stores all the field names and values (including nested arrays). For example, the below audio data would be returned in Export format as "array ('dataformat' => 'mp4', 'codec' => 'ISO/IEC 14496-3 AAC', 'sample_rate' => 48000, 'channels' => 2, 'bits_per_sample' => 16, 'lossless' => false, 'channelmode' => 'stereo')".</td>
1691
  </tr>
1692
  <tr>
1693
- <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Multiple</td>
 
 
 
 
1694
  <td>stores each unique value in a separate instance (database row) of the custom field. This is the most flexible format, as explained below.</td>
1695
  </tr>
1696
  </table>
1697
  <p>
1698
- The "Multiple" option takes advantage of WordPress' ability to store multiple values for a given custom field name (key) as distinct instances (database rows). For example, consider an image that has been inserted in two different posts, "First Post" and "Second Post". The "Text" option would store both titles in a single custom field instance; "First Post,Second Post". The "Multiple" option would store two instances, "First Post" and "Second Post". If the custom field is added to the Media/Assistant submenu table as a column, you could click on either of the two values to filter the table listing by value. That would show you all the items inserted in First Post or all the items inserted in Second Post.
1699
  </p>
1700
  <h4>Delete NULL values Checkbox</h4>
1701
  <p>
1702
  The "Delete NULL values" checkbox lets you control what happens if the data source you've selected does not have a value for every attachment. If the checkbox is cleared (not checked), a single space character will be stored for each attachment if the data source value is empty. If the checkbox is set (checked), there will be no entry/row at all in the metadata table for empty data source values and the custom field will not appear in the Edit Media screen for those attachments. This saves space but might confuse other applications that expect a value to be present for all attachments.
1703
  </p>
1704
  <p>
1705
- If you use the "Multiple" format option you will almost certainly want to use the "Delete NULL values" option as well.
1706
  </p>
1707
  <h4>Custom field mapping for metadata fields</h4>
1708
  <p>
1709
  If you select "<strong>-- Metadata (see below) --</strong>" as the data source you must specify the name of the field you want in the text box below the data source dropdown box. Any of the fields in the <em>_wp_attachment_metadata</em> array may be named, including the new audio/video fields available with WordPress 3.6 and later. For example, "length_formatted" will return the length of a video attachment. You can specify fields within an array with a compound name, e.g., "audio.sample_rate" to get the sampling rate field from the "audio" array of a video attachment. If you simply specify "audio", you will get the values of every array element, e.g., "mp4,ISO/IEC 14496 AAC,48000,2,16,false,stereo".
1710
  </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1711
  <a name="mla_iptc_exif_mapping"></a>
1712
  &nbsp;
1713
  <p>
@@ -1736,13 +1910,17 @@ The three mapping tables on the IPTC/EXIF tab have the following columns:
1736
  <dt>IPTC Value</dt>
1737
  <dd>The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can select any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. The dropdown list has the identifier and the "friendly name" MLA defines for most of the IPTC fields; see the table of identifiers and friendly names in the table below. You can find more information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification</a>.
1738
  </dd>
1739
- <dt>EXIF Value</dt>
1740
  <dd>The EXIF (EXchangeable Image File) metadata, if any, embedded in a JPEG DCT or TIFF Rev 6.0 image file.
1741
  Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. For this category, you can code any of the field names embedded in the image by the camera or editing software. There is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive. You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="Exchangeable image file format Wikipedia article" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
1742
- <br />&nbsp;<br />
1743
- MLA uses a standard PHP function, <a href="http://php.net/manual/en/function.exif-read-data.php" title="PHP Manual page for exif_read_data" target="_blank">exif_read_data</a>, to extract EXIF data from images. The function returns three arrays in addition to the raw EXIF data; COMPUTED, THUMBNAIL and COMMENT. You can access the array elements by prefacing the element you want with the array name. For example, the user comment text is available as "COMPUTED.UserComment" and "COMPUTED.UserCommentEncoding". You can also get "COMPUTED.Copyright" and its two parts (if present), "COMPUTED.Copyright.Photographer" and "COMPUTED.Copyright.Editor". The THUMBNAIL and COMMENT arrays work in a similar fashion.
1744
- <br />&nbsp;<br />
1745
- Two special exif "pseudo-values" are available; <strong>ALL_IPTC</strong> and <strong>ALL_EXIF</strong>. These return a string representation (in &quot;export&quot; format) of all IPTC or EXIF data respectively. You can use these pseudo-values to examine the metadata in an image, find field names and see what values are embedded in the image.
 
 
 
 
1746
  </dd>
1747
  <dt>Priority</dt>
1748
  <dd>If both the IPTC Value and the EXIF Value are non-blank for a particular image, you can select which of the values will be used for the mapping.
@@ -1754,6 +1932,25 @@ The three mapping tables on the IPTC/EXIF tab have the following columns:
1754
  <dd>For hierarchical taxonomies such as Categories you can select one of the existing terms in the taxonomy as the parent term for any terms you are mapping from metadata values. For example, you could define "IPTC Keywords" as a parent and then assign all of the 2#025 values under that parent term.
1755
  </dd>
1756
  </dl>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1757
  <h4>Map All Attachments Now</h4>
1758
  <p>
1759
  To the right of each table heading is a "Map All Attachments Now" button. When you click one of these buttons, the mapping rules in that table are applied to <strong><em>ALL of the images in the Media Library</em></strong>. This is a great way to bring your media items up to date, but it is <strong><em>NOT REVERSIBLE</em></strong>, so think carefully before you click!
@@ -1791,8 +1988,188 @@ The priority order for mapping the post_content value from non-blank IPTC/EXIF m
1791
  <ol style="line-height: 1.25em; margin-left: 20px ">
1792
  <li>EXIF "ImageDescription" (if different from post_title)</li>
1793
  <li>IPTC 2#120 "caption-or-abstract" (if different from post_title)</li>
 
1794
  </ol>
1795
  </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1796
  <a name="mla_iptc_identifiers"></a>
1797
  &nbsp;
1798
  <p>
45
  <a href="#mla_markup_parameters"><strong>Substitution parameters for markup templates</strong></a>
46
  </li>
47
  <li>
48
+ <a href="#mla_attachment_parameters"><strong>Attachment-specific substitution parameters for the markup template Item part</strong></a>
49
  </li>
50
  <li>
51
  <a href="#mla_variable_parameters"><strong>Field-level markup substitution parameters</strong></a>
52
  </li>
53
  <li>
54
+ <a href="#pdf_metadata"><strong>Metadata in PDF documents</strong></a>
55
+ </li>
56
+ <li>
57
+ <a href="#mla_template_parameters"><strong>Content Templates</strong></a>
58
+ <li>
59
+ <a href="#mla_table_example"><strong>A table-based Style and Markup template example</strong></a>
60
  </li>
61
  <li>
62
  <a href="#mla_views"><strong>Library Views/Post MIME Type Processing</strong></a>
77
  <a href="#mla_iptc_exif_mapping"><strong>IPTC &amp; EXIF Processing Options</strong></a>
78
  </li>
79
  <li>
80
+ <a href="#mla_gps_values"><strong>Enhanced GPS values</strong></a>
81
+ </li>
82
+ <li>
83
  <a href="#mla_iptc_identifiers"><strong>IPTC identifiers and friendly names</strong></a>
84
  </li>
85
  </ul>
102
  <li>Support for all post_mime_type values, not just images.</li>
103
  <li>Media Library items need not be "attached" to the post. You can build a gallery with any combination of items in the Library using taxonomy terms, custom fields and more.</li>
104
  <li>Control over the styles, markup and content of each gallery using the Style and Markup Templates documented below.</li>
105
+ <li>Access to a wide range of content using the Attachment-specific and Field-level Substitution parameters documented below. A powerful Content Template facility lets you assemble content from multiple sources and vary the results depending on which data elements contain non-empty values for a given gallery item.</li>
106
  <li>You can combine <code>[mla_gallery]</code> data selection with other popular gallery-generating plugins to get the best of both.
107
  </li>
108
  </ul>
208
  <tr>
209
  </table>
210
  <p>
211
+ All but the "mla_target" parameter support the <a href="#mla_markup_parameters">Markup</a>, <a href="#mla_attachment_parameters">Attachment-specific</a>, <a href="#mla_variable_parameters">Field-level</a> and <a href="#mla_template_parameters">Content Template</a> substitution arguments defined for Markup Templates. For example, if you code "<code>mla_rollover_text='{+date+} : {+description+}'</code>, the rollover text will contain the upload date, a colon, and the full description of each gallery item. Simply add "{+" before the substitution parameter name and add "+}" after the name. Note that the enclosing delimiters are different than those used in the templates, since the WordPress shortcode parser reserves square brackets ("[" and "]") for its own use.
212
  </p>
213
  <p>
214
  The "mla_link_href" parameter is a great way to change the destination your gallery item links to or add arguments to the link for later processing. For example, to make a gallery item link back to the page/post it is attached to, you can code: <code>mla_link_href='{+site_url+}/?page_id={+parent+}'</code>. You can also add arguments to the link, e.g., <code>mla_link_href='{+link_url+}&amp;amp;myarg=myvalue'</code>. Note the use of the HTML entity name "&amp;amp;" to put an ampersand in the value; the WordPress "visual" post editor will replace "&", "<" and ">" with "&amp;amp;", "&amp;lt;" and "&amp;gt;" whether you like it not. The <strong>only</strong> markup parameter modified by this parameter is "link". Other markup parameters such as "pagelink", "filelink" and "link_url" are not modified.
380
  </p>
381
  <h4>Taxonomy Parameters, "tax_operator"</h4>
382
  <p>
383
+ The <code>[mla_gallery]</code> shortcode supports the simple "{tax} (string)" values (deprecated as of WordPress version 3.1) as well as the more powerful "<a href="http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters" title="WordPress Codex Documentation for tax_query" target="_blank">tax_query</a>" value. Use these queries for your custom taxonomies (and for the MLA attachment_category and attachment_tag taxonomies); use the above Category and Tag parameters for the WordPress-provided taxonomies.
384
  </p>
385
  <p>
386
+ For simple queries, enter the custom taxonomy name and the term(s) that must be matched, e.g.:
387
  </p>
388
  <ul class="mla_settings">
389
  <li><code>[mla_gallery attachment_category='separate-category,another-category']</code></li>
989
  <p>
990
  <a href="#backtotop">Go to Top</a>
991
  </p>
992
+ <h4>Attachment-specific substitution parameters for the markup template Item part</h4>
993
+ <p>
994
+ These substitution parameters are only available in the "Item" part of the markup template, since they require an attachment for their data source.
995
+ </p>
996
  <table>
997
  <tr>
998
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">index</td>
1146
  </p>
1147
  <h3>Field-level Markup Substitution Parameters</h3>
1148
  <p>
1149
+ Field-level substitution parameters let you access query arguments, custom fields, taxonomy terms and attachment metadata for display in an MLA gallery. For these parameters, the value you code within the surrounding the ('[+') and ('+]') delimiters has three parts; the prefix, the field name (or template content) and, if desired, a formatting option.
1150
  </p>
1151
  <p>
1152
  The <strong>prefix</strong> defines which type of field-level data you are accessing. It must immediately follow the opening ('[+') delimiter and end with a colon (':'). There can be no spaces in this part of the parameter.
1153
  </p>
1154
  <p>
1155
+ The <strong>field name</strong> defines which field-level data element you are accessing. It must immediately follow the colon (':'). There can be no spaces between the colon and the field name. Spaces are allowed within the field name to accommodate custom field names that contain them. <strong>Compound names</strong> are used to access elements within arrays, e.g., &quot;<strong>sizes.thumbnail.file</strong>&quot; is used to specify the file name for the thumbnail version of an image. For the "template" prefix, the field name is replaced by the template content; see the <a href="#mla_template_parameters">Content Templates</a> section for details.
1156
+ </p>
1157
  <p>
1158
  If no formatting option is present, fields with multiple values are formatted as a comma-delimited text list. The formatting option, if present, immediately follows the field name using a comma (,) separator and ends with the closing delimiter ('+]'). There can be no spaces in this part of the parameter.</p>
1159
  <p>
1163
  The <strong>",export" option</strong> changes the display of array fields with multiple values. If this option is present, the PHP <code>var_export</code> function is used to return a string representation of all the elements in an array field. For example, if you code <code>[+meta:sizes.thumbnail,export+]</code> the result will be "array ('file' => '20120313-ASK_5605-150x150.jpg', 'width' => 150, 'height' => 150, 'mime-type' => 'image/jpeg'".
1164
  </p>
1165
  <p>
1166
+ There are nine prefix values for field-level data. Prefix values must be coded as shown; all lowercase letters.
1167
  </p>
1168
  <table>
1169
  <tr>
1186
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">meta</td>
1187
  <td>WordPress attachment metadata, if any, embedded in the image/audio/video file. For this category, you can code any of the field names embedded in the _wp_attachment_metadata array. The "Attachment Metadata" display in the Media/Edit Media screen will show you the names and values of these fields. Note that the fields available differ among image, audio and video attachments.</td>
1188
  </tr>
1189
+ <tr>
1190
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">pdf</td>
1191
+ <td>
1192
+ The Document Information Dictionary (D.I.D.)and XMP metadata, if any, embedded in a PDF file. For this category, you can code any of the nine D.I.D. entries (Title, Author, Subject, Keywords, Creator, Producer, CreationDate, ModDate, Trapped). For many documents there is also a rich collection of additional metadata stored in XMP Metadata Streams; see the <a href="#pdf_metadata">Metadata in PDF documents</a> section below for details on accessing PDF metadata.<br />
1193
+ &nbsp;<br />
1194
+ You can find more PDF information at the <a href="http://www.adobe.com/devnet/pdf.html" title="Adobe PDF Technology Center" target="_blank">Adobe PDF Technology Center</a>.<br />&nbsp;</td>
1195
+ </tr>
1196
  <tr>
1197
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">iptc</td>
1198
  <td>
1199
+ The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can code any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. You can also use the "friendly name" MLA defines for most of the IPTC fields; see the <a href="#mla_iptc_identifiers">table of identifiers and friendly names</a> below.<br />
1200
  &nbsp;<br />
1201
+ You can find more IPTC information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification (PDF)" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification (PDF document)</a>.<br />&nbsp;</td>
1202
  </tr>
1203
  <tr>
1204
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">exif</td>
1207
  Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. It is also supported by many image editing programs such as Adobe PhotoShop.
1208
  For this category, you can code any of the field names embedded in the image by the camera or editing software. There is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive.
1209
  <br />&nbsp;<br />
1210
+ You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="Exchangeable image file format Wikipedia article" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
1211
  <br />&nbsp;<br />
1212
  MLA uses a standard PHP function, <a href="http://php.net/manual/en/function.exif-read-data.php" title="PHP Manual page for exif_read_data" target="_blank">exif_read_data</a>, to extract EXIF data from images. The function returns three arrays in addition to the raw EXIF data; COMPUTED, THUMBNAIL and COMMENT. You can access the array elements by prefacing the element you want with the array name. For example, the user comment text is available as "COMPUTED.UserComment" and "COMPUTED.UserCommentEncoding". You can also get "COMPUTED.Copyright" and its two parts (if present), "COMPUTED.Copyright.Photographer" and "COMPUTED.Copyright.Editor". The THUMBNAIL and COMMENT arrays work in a similar fashion.
1213
  <br />&nbsp;<br />
1215
  <br />&nbsp;<br />
1216
  The ALL_EXIF value is altered in two ways. First, values of more than 256 characters are truncated to 256 characters. This prevents large fields such as image thumbnails from dominating the display. Second, array values are shown once, at their expanded level. For example the "COMPUTED" array is displayed as 'COMPUTED' => '(ARRAY)' and then 'COMPUTED.Width' => "2816", etc.</td>
1217
  </tr>
1218
+ <tr>
1219
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">template</td>
1220
+ <td>A Content Template, which lets you compose a value from multiple substitution parameters and test for empty values, choosing among two or more alternatives or suppressing output entirely. See the <a href="#mla_template_parameters">Content Templates</a> section for details.</td> Note that the formatting option is not supported for templates.
1221
+ </tr>
1222
+ </table>
1223
+ <a name="pdf_metadata"></a>
1224
+ &nbsp;<br />
1225
+ <h4>Metadata in PDF documents</h4>
1226
+ <p>
1227
+ Metadata in PDF documents comes from two sources. Early versions of the PDF specification defined a Document Information Dictionary (D.I.D.) containing up to nine (optional) fields:
1228
+ </p>
1229
+ <table>
1230
+ <tr>
1231
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Title</td>
1232
+ <td>The document's title</td>
1233
+ </tr>
1234
+ <tr>
1235
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Author</td>
1236
+ <td>The name of the person who created the document</td>
1237
+ </tr>
1238
+ <tr>
1239
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Subject</td>
1240
+ <td>The subject of the document</td>
1241
+ </tr>
1242
+ <tr>
1243
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Keywords</td>
1244
+ <td>Keywords associated with the document</td>
1245
+ </tr>
1246
+ <tr>
1247
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Creator</td>
1248
+ <td>If the document was converted to PDF from another format, the name of the application (for example, Adobe FrameMaker&reg;) that created the original document from which it was converted</td>
1249
+ </tr>
1250
+ <tr>
1251
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Producer</td>
1252
+ <td>If the document was converted to PDF from another format, the name of the application (for example, Acrobat Distiller) that converted it to PDF</td>
1253
+ </tr>
1254
+ <tr>
1255
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">CreationDate</td>
1256
+ <td>The date and time the document was created, in human-readable form</td>
1257
+ </tr>
1258
+ <tr>
1259
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">ModDate</td>
1260
+ <td>The date and time the document was most recently modified, in human-readable form</td>
1261
+ </tr>
1262
+ <tr>
1263
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Trapped</td>
1264
+ <td>A keyword (True, False, Unknown) indicating whether the document has been modified to include trapping information</td>
1265
+ </tr>
1266
+ </table>
1267
+ <p>
1268
+ More recent versions of the specification add a second source of metadata, Metadata Streams, holding data defined by the <a href="https://www.adobe.com/products/xmp/" title="Adobe XMP site" target="_blank">Extensible Metadata Platform (XMP)</a> framework. XMP metadata varies from document to document but is often extensive. MLA provides access to this data in three ways:
1269
+ <ol>
1270
+ <li>
1271
+ If a D.I.D. field is not stored in the document, MLA will copy appropriate values from the XMP data into the empty field to populate it as often as possible. For example, the "creator" value(s) in the "dc" namespace ("dc.creator") might be copied to an empty "Author" field, or the "dc.subject" value(s) might be copied to an empty Keywords field.
1272
+ </li>
1273
+ <li>
1274
+ Additional values in the "xmp", "xmpMM", "xmpRights", "xap", "xapMM", "dc", "pdf" and "pdfx" namespaces are copied up to the root level for easier access. For example, the "pdfx.SourceModified" value can be accessed as "SourceModified", without the "pdfx." portion of the compound name.
1275
+ </li>
1276
+ <li>
1277
+ Other namespaces in the document are copied to arrays at the root level. For example, some documents contain information in the "photoshop" namespace, such as "photoshop.CaptionWriter" and "photoshop.AuthorsPosition". The native values of some fields, e.g., "dc.creator", can be an array.
1278
+ </li>
1279
+ </ol>
1280
+ </p>
1281
+ <p>
1282
+ MLA adds five fields of its own to the metadata information:
1283
+ </p>
1284
+ <table>
1285
+ <tr>
1286
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">PDF_Version</td>
1287
+ <td>the version of the PDF specification to which the file conforms. For a file conforming to PDF 1.7, this would be PDF−1.7</td>
1288
+ </tr>
1289
+ <tr>
1290
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">PDF_Version</td>
1291
+ <td>the numeric portion of the PDF_Version. For a file conforming to PDF 1.7, this would be 1.7</td>
1292
+ </tr>
1293
+ <tr>
1294
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">xmptk</td>
1295
+ <td>the XMP software used to create the metadata</td>
1296
+ </tr>
1297
+ <tr>
1298
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">xmlns</td>
1299
+ <td>an array of the namespaces found in the document, such as <code>'dc' => 'http://purl.org/dc/elements/1.1/'</code></td>
1300
+ </tr>
1301
+ <tr>
1302
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">ALL_PDF</td>
1303
+ <td>a special "pseudo value" that returns a string representation of all the metadata. You can use this pseudo-value to examine the metadata in a document, find field names and see what values are present.</td>
1304
+ </tr>
1305
+ </table>
1306
+ <a name="mla_template_parameters"></a>
1307
+ &nbsp;
1308
+ <p>
1309
+ <a href="#backtotop">Go to Top</a>
1310
+ </p>
1311
+ <h3>Content Templates</h3>
1312
+ <p>
1313
+ Content Templates (templates) are one of the Field-level Markup Substitution Parameters, indicated by a prefix value ( <code>[+template: ... +]</code> ). Within a template you can have any combination of four elements:
1314
+ </p>
1315
+ <table>
1316
+ <tr>
1317
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">String</td>
1318
+ <td>text and/or field-level substitution parameters, e.g., <code>[+template: Base File - [+base_file+] +]</code></td>
1319
+ </tr>
1320
+ <tr>
1321
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Conditional</td>
1322
+ <td>text and/or field-level substitution parameters that will be tested for missing values. Any field-level substitution parameter that is not valid, is empty or contains only whitespace will cause the entire conditional to be eliminated. Conditional elements are enclosed in parentheses. For example, <code>[+template: (ITPC Title: [+iptc:object-name+] ) +]</code>. If the IPTC field is missing or blank both it and the preceding "ITPC Title: " literal are eliminated.</td>
1323
+ </tr>
1324
+ <tr>
1325
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Choice</td>
1326
+ <td>two or more alternatives from which the first valid, non-empty value will be taken. Choice elements are separated by vertical bars ("|"), e.g., <code>[+template: Summary: ([+caption+]|[+description+]|[+title+]) +]</code></td>
1327
+ </tr>
1328
+ <tr>
1329
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Template</td>
1330
+ <td>another template. There is no particular advantage to nesting templates, but it works.</td>
1331
+ </tr>
1332
  </table>
1333
+ <p>
1334
+ The conditional and choice elements are the key to templates' power, particularly with custom fields and metadata such as ITPC and EXIF. With the conditional element you can combine literal text with a substitution value and eliminate the text if the value is missing. With the choice element you can specify multiple sources for a value and decide the order in which they are tested. In the choice example above the text "Description: " will always be used, followed by the attachment's caption (if present) or the description value or the literal "none" if both of the other values are missing. In other words, each alternative of the choice element is evaluated as a conditional element; no need for more parentheses.
1335
+ </p>
1336
+ <p>
1337
+ Conditional, choice and template elements can be nested as needed. For example, a conditional element can have a choice element within it or a choice alternative could include a conditional. Here's an example:
1338
+ <p>
1339
+ <code>[+template: Terms: (([+terms:category+], [+terms:post_tag+])|[+ terms: category +]|[+terms:post_tag +]|none)+]</code>
1340
+ </p>
1341
+ <p>
1342
+ This template has a String, "Terms: " and a Conditional, "(([+terms: … none)". This Conditional separates the "Terms: " literal from the first alternative in the Choice. Within the Conditional is a Choice having four alternatives. The first alternative is a Conditional, which will be empty unless both categories and tags are present. The second and third alternatives handle the cases where one of the two taxonomies has terms, and the final alternative is used when neither categories nor tags are present.
1343
+ </p>
1344
+ <h4>Special characters inside templates</h4>
1345
+ <p>
1346
+ The conditional and choice elements require delimiters, "(", ")" and "|". If you want to put any of these three characters in your template, preface them with two backslash characters, e.g., "\\(". If you need a backslash in your template, code it as four backslash characters, i.e., "\\\\". The doubling of backslash characters is required because of the way WordPress processes shortcode parameters.
1347
+ </p>
1348
  <a name="mla_table_example"></a>
1349
  &nbsp;
1350
  <p>
1351
  <a href="#backtotop">Go to Top</a>
1352
  </p>
1353
+ <h3>A Table-based Style and Markup Template Example</h3>
1354
  <p>
1355
  Here's a small example that shows a gallery using <code>&lt;table&gt;</code> markup.
1356
  The Item markup section shows how to use the "terms", "custom", "iptc" and "exif" substitution parameters.
1574
  Several of the data elements are sourced from the WordPress "image_meta" array. The credit, caption, copyright and title elements are taken from the IPTC/EXIF metadata (if any), but they go through a number of filtering rules that are not easy to replicate with the MLA IPTC/EXIF processing rules. You may find these "image_meta" elements more useful than the raw IPTC/EXIF metadata.
1575
  </p>
1576
  <p>
1577
+ You can also use a <a href="#mla_template_parameters">Content Template</a> to compose custom field values from multiple sources, test for non-empty content and choose from alternative sources.
1578
+ </p>
1579
+ <p>
1580
  If you just want to add a custom field to the Media/Assistant submenu, the quick edit area and/or the bulk edit area you can bypass the mapping logic by leaving the Data Source value as "-- None (select a value) --".
1581
  </p>
1582
  <a name="mla_custom_field_parameters"></a>
1592
  </tr>
1593
  <tr>
1594
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">-- Metadata (see below) --</td>
1595
+ <td>WordPress attachment metadata, from the <em>_wp_attachment_metadata</em> array. Enter the field you want in the text box below the dropdown list. More coding guidelines are given below this table in the "Custom field mapping for metadata fields" section.</td>
1596
+ </tr>
1597
+ <tr>
1598
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">-- Template (see below) --</td>
1599
+ <td>A Content Template; enter the template text (without the "template:" prefix) in the text box below the dropdown list. More coding guidelines are given below this table in the "Custom field mapping for Content Templates" section.</td>
1600
  </tr>
1601
  <tr>
1602
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">absolute_path</td>
1787
  </table>
1788
  <h4>Existing Text dropdown</h4>
1789
  <p>
1790
+ If the custom field already has values for one or more items, you can use "Keep" to retain them or "Replace" to delete them. For options other than "Multi", "Keep" means that an item with a non-blank value in the field will be unchanged, and new values will be stored only in those items that do not have an existing value. For the "Multi" option, the existing value(s) will be retained and any new values will be added as separate instances.
1791
  </p>
1792
  <p>
1793
+ You can combine "Keep" and "Multi" in useful ways. For example, you might enter some values manually or source them from another plugin or application. Then, map the same field using an MLA data source with the "Keep" and "Multi" parameters. That will add the MLA values to the values you already entered, giving you a single column with both results.
1794
  </p>
1795
  <h4>Format dropdown</h4>
1796
  <p>
1829
  Four data sources, "file_size", "pixels", "width" and "height", are <strong>always</strong> padded on the left with spaces, even if you use the "Native" format.
1830
  <h4>Option dropdown</h4>
1831
  <p>
1832
+ Several data sources can return more than one value. For example, the "Inserted in" source can return a list of posts/pages that contain references to Media Library items. The format option dropdown can further refine your specification where multiple values exist. There are five options:
1833
  </p>
1834
  <table>
1835
  <tr>
1836
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Text</td>
1837
+ <td>(the default) stores a list of the data source values, separated by commas</td>
1838
  </tr>
1839
  <tr>
1840
  <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Single</td>
1845
  <td>for single values, same as Text. For multiple values, stores all the field names and values (including nested arrays). For example, the below audio data would be returned in Export format as "array ('dataformat' => 'mp4', 'codec' => 'ISO/IEC 14496-3 AAC', 'sample_rate' => 48000, 'channels' => 2, 'bits_per_sample' => 16, 'lossless' => false, 'channelmode' => 'stereo')".</td>
1846
  </tr>
1847
  <tr>
1848
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Array</td>
1849
+ <td>stores an array of values in a single instance (database row) of the custom field.</td>
1850
+ </tr>
1851
+ <tr>
1852
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Multi</td>
1853
  <td>stores each unique value in a separate instance (database row) of the custom field. This is the most flexible format, as explained below.</td>
1854
  </tr>
1855
  </table>
1856
  <p>
1857
+ The "Multi" option takes advantage of WordPress' ability to store multiple values for a given custom field name (key) as distinct instances (database rows). For example, consider an image that has been inserted in two different posts, "First Post" and "Second Post". The "Text" option would store both titles in a single custom field instance; "First Post,Second Post". The "Multi" option would store two instances, "First Post" and "Second Post". If the custom field is added to the Media/Assistant submenu table as a column, you could click on either of the two values to filter the table listing by value. That would show you all the items inserted in First Post or all the items inserted in Second Post.
1858
  </p>
1859
  <h4>Delete NULL values Checkbox</h4>
1860
  <p>
1861
  The "Delete NULL values" checkbox lets you control what happens if the data source you've selected does not have a value for every attachment. If the checkbox is cleared (not checked), a single space character will be stored for each attachment if the data source value is empty. If the checkbox is set (checked), there will be no entry/row at all in the metadata table for empty data source values and the custom field will not appear in the Edit Media screen for those attachments. This saves space but might confuse other applications that expect a value to be present for all attachments.
1862
  </p>
1863
  <p>
1864
+ If you use the "Multi" option you will almost certainly want to use the "Delete NULL values" option as well.
1865
  </p>
1866
  <h4>Custom field mapping for metadata fields</h4>
1867
  <p>
1868
  If you select "<strong>-- Metadata (see below) --</strong>" as the data source you must specify the name of the field you want in the text box below the data source dropdown box. Any of the fields in the <em>_wp_attachment_metadata</em> array may be named, including the new audio/video fields available with WordPress 3.6 and later. For example, "length_formatted" will return the length of a video attachment. You can specify fields within an array with a compound name, e.g., "audio.sample_rate" to get the sampling rate field from the "audio" array of a video attachment. If you simply specify "audio", you will get the values of every array element, e.g., "mp4,ISO/IEC 14496 AAC,48000,2,16,false,stereo".
1869
  </p>
1870
+ <h4>Custom field mapping with Content Templates</h4>
1871
+ <p>
1872
+ If you select "<strong>-- Template (see below) --</strong>" as the data source you must enter your template in the text box below the data source dropdown box. Do not code the "template:" prefix, just enter the template text.
1873
+ </p>
1874
+ <p>
1875
+ Within a template, all of the data sources listed above are available. For example, you can code <code>[+pixels+]</code> or <code>[+size_keys,single+]</code>.
1876
+ </p>
1877
+ <p>
1878
+ You can use a template to compose a custom field from multiple data sources, e.g., "<code>Taken with [+meta:camera+] at [+dimensions+] using ISO [+exif:ISOSpeedRatings,single+] and [+exif:ExposureTime+] exposure time</code>".
1879
+ <p>
1880
+ </p>
1881
+ You can use a template to compose a custom field from alternative data sources, depending on which fields are populated for a given attachment. For example, "<code>[+pdf:Keywords+]|[+iptc:2#025+]|none</code>" will use the PDF Keywords field, if populated, then the IPTC keywords field, if populated, or the literal "none" if neither field contains a value. With this template you can get keywords from both PDF documents and images in a single field.
1882
+ <p>
1883
+ Using a template with the Option Dropdown "Text" or "Single" values will yield a text result. For example, multiple IPTC keywords would be converted into a comma-delimited list as a string. If you combine a template with the "Export", "Array" or "Multi" values the template will deliver an array result if the fields inside the template have multiple values. For example, with "Multi" you can code "<code>[+iptc:2#020<strong>,array</strong>+][+iptc:2#025<strong>,array</strong>+]</code>" to store each of the IPTC supplemental-category <em><strong>and</strong></em> keywords values (there is no "|" in the template) in a separate custom field value. Note the use of the <strong>,array</strong> formatting option in each field; this is required to get an array result for the field.
1884
+ </p>
1885
  <a name="mla_iptc_exif_mapping"></a>
1886
  &nbsp;
1887
  <p>
1910
  <dt>IPTC Value</dt>
1911
  <dd>The IPTC (International Press Telecommunications Council) metadata, if any, embedded in the image file. For this category, you can select any of the IPTC DataSet tag and field identifiers, e.g., "2#025" for the Keywords field. The dropdown list has the identifier and the "friendly name" MLA defines for most of the IPTC fields; see the table of identifiers and friendly names in the table below. You can find more information in the <a href="http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf" title="IPTC-NAA Information Interchange Model Version No. 4.1 specification" target="_blank">IPTC-NAA Information Interchange Model Version No. 4.1 specification</a>.
1912
  </dd>
1913
+ <dt>EXIF/Template Value</dt>
1914
  <dd>The EXIF (EXchangeable Image File) metadata, if any, embedded in a JPEG DCT or TIFF Rev 6.0 image file.
1915
  Though the specification is not currently maintained by any industry or standards organization, almost all camera manufacturers use it. For this category, you can code any of the field names embedded in the image by the camera or editing software. There is no official list of standard field names, so you just have to know the names your camera and software use; field names are case-sensitive. You can find more information in the <a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format" title="Exchangeable image file format Wikipedia article" target="_blank">Exchangeable image file format</a> article on Wikipedia. You can find External Links to EXIF standards and tag listings at the end of the Wikipedia article.
1916
+ <br />&nbsp;<br />
1917
+ MLA uses a standard PHP function, <a href="http://php.net/manual/en/function.exif-read-data.php" title="PHP Manual page for exif_read_data" target="_blank">exif_read_data</a>, to extract EXIF data from images. The function returns three arrays in addition to the raw EXIF data; COMPUTED, THUMBNAIL and COMMENT. You can access the array elements by prefacing the element you want with the array name. For example, the user comment text is available as "COMPUTED.UserComment" and "COMPUTED.UserCommentEncoding". You can also get "COMPUTED.Copyright" and its two parts (if present), "COMPUTED.Copyright.Photographer" and "COMPUTED.Copyright.Editor". The THUMBNAIL and COMMENT arrays work in a similar fashion.
1918
+ <br />&nbsp;<br />
1919
+ MLA provides enhanced access to GPS values within the EXIF metadata; more details are given in the <a href="#mla_gps_values">Enhanced GPS values</a> section below.
1920
+ <br />&nbsp;<br />
1921
+ Two special exif "pseudo-values" are available; <strong>ALL_IPTC</strong> and <strong>ALL_EXIF</strong>. These return a string representation (in &quot;export&quot; format) of all IPTC or EXIF data respectively. You can use these pseudo-values to examine the metadata in an image, find field names and see what values are embedded in the image.
1922
+ <br />&nbsp;<br />
1923
+ You can also enter a Content Template here by coding the "template:" prefix at the beginning of the value. Do <strong>not</strong> add the "[+" and "+]" delimeters; the prefix is all you need. More information about using templates here is given below.
1924
  </dd>
1925
  <dt>Priority</dt>
1926
  <dd>If both the IPTC Value and the EXIF Value are non-blank for a particular image, you can select which of the values will be used for the mapping.
1932
  <dd>For hierarchical taxonomies such as Categories you can select one of the existing terms in the taxonomy as the parent term for any terms you are mapping from metadata values. For example, you could define "IPTC Keywords" as a parent and then assign all of the 2#025 values under that parent term.
1933
  </dd>
1934
  </dl>
1935
+ <h4>EXIF/Template mapping with Content Templates</h4>
1936
+ <p>
1937
+ If you code the "template:" prefix at the beginning of the EXIF/Template value you have all the power of Content Templates at your disposal. Do <strong>not</strong> add the "[+" and "+]" delimeters; the prefix is all you need.
1938
+ </p>
1939
+ <p>
1940
+ Within a template, all of the <a href="#mla_custom_field_parameters">Data sources for custom field mapping</a> are available. For example, you can code <code>[+pixels+]</code> or <code>[+size_keys,single+]</code>.
1941
+ </p>
1942
+ <p>
1943
+ You can use a template to compose a value from multiple data sources, e.g., "<code>Taken with [+meta:camera+] at [+dimensions+] using ISO [+exif:ISOSpeedRatings,single+] and [+exif:ExposureTime+] exposure time</code>".
1944
+ <p>
1945
+ </p>
1946
+ You can use a template to compose a value from alternative data sources, depending on which fields are populated for a given attachment. For example, "<code>[+iptc:2#020+]|[+iptc:2#025+]|none</code>" will use the IPTC supplemental-category field, if populated, then the IPTC keywords field, if populated, or the literal "none" if neither IPTC field contains a value.
1947
+ </p>
1948
+ <p>
1949
+ Using a template in the "Standard field mapping" or "Custom field mapping" tables will yield a text result. For example, multiple IPTC keywords would be converted into a comma-delimited list as a string. In the "Taxonomy term mapping" table the template will deliver an array result if the fields inside the template have multiple values. For example, you can code "<code>[+iptc:2#020+][+iptc:2#025+]</code>" to store each of the IPTC supplemental-category <em><strong>and</strong></em> keywords values (there is no "|" in the template) as a separate taxonomy term.
1950
+ </p>
1951
+ <p>
1952
+ Note that the <strong>,array</strong> formatting option is <strong>not</strong> required to get an array result for the field in a Taxonomy term mapping template; it is assumed. If you want a <strong>text</strong>, <strong>single</strong> or <strong>export</strong> result you can add one of those formatting options to your field specification.
1953
+ </p>
1954
  <h4>Map All Attachments Now</h4>
1955
  <p>
1956
  To the right of each table heading is a "Map All Attachments Now" button. When you click one of these buttons, the mapping rules in that table are applied to <strong><em>ALL of the images in the Media Library</em></strong>. This is a great way to bring your media items up to date, but it is <strong><em>NOT REVERSIBLE</em></strong>, so think carefully before you click!
1988
  <ol style="line-height: 1.25em; margin-left: 20px ">
1989
  <li>EXIF "ImageDescription" (if different from post_title)</li>
1990
  <li>IPTC 2#120 "caption-or-abstract" (if different from post_title)</li>
1991
+ <a name="mla_gps_values"></a>
1992
  </ol>
1993
  </p>
1994
+ <h4>Enhanced GPS values</h4>
1995
+ <p>
1996
+ There are three basic forms of writing geographic coordinates; they are explained in a Wikipedia article, <a href="http://en.wikipedia.org/wiki/Geographic_coordinate_conversion" title="Wikipedia on Geographic coordinate conversion" target="_blank">Geographic coordinate conversion</a>. The <a href="http://www.cipa.jp/english/hyoujunka/kikaku/pdf/DC-008-2010_E.pdf" title="EXIF Version 2.3 specification" target="_blank">Exif Standard version 2.3</a> (PDF) document explains the structure and defines the rules for 32 GPS elements.
1997
+ </p>
1998
+ <p>
1999
+ The native format of this data is somewhat complicated, so MLA converts the most common elements into a variety of convenient formats. You can use the enhanced values as-is or use them in a Content Template to compose the format(s) you need. You can access the native values with the names defined in the EXIF specification, e.g., "GPSLatitude". The enhanced values are provided in th "GPS" array and accessed with compound names, e.g., "GPS.Latitude". The MLA enhanced values are:</p>
2000
+ <table>
2001
+ <tr style="font-weight: bold"><td>Field</td><td>Example</td><td>Content</td></tr>
2002
+ <tr>
2003
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Version</td>
2004
+ <td style="padding-right: 10px; vertical-align: top">2.2.0.0</td>
2005
+ <td style="padding-right: 10px; vertical-align: top">The version of the GPS Information specification</td>
2006
+ </tr>
2007
+ <tr>
2008
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeRef</td>
2009
+ <td style="padding-right: 10px; vertical-align: top">N or S</td>
2010
+ <td style="padding-right: 10px; vertical-align: top">Indicates whether the latitude is north or south latitude</td>
2011
+ </tr>
2012
+ <tr>
2013
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeRefS</td>
2014
+ <td style="padding-right: 10px; vertical-align: top">empty or "-"</td>
2015
+ <td style="padding-right: 10px; vertical-align: top">Blank for north, "-" for south</td>
2016
+ </tr>
2017
+ <tr>
2018
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Latitude</td>
2019
+ <td style="padding-right: 10px; vertical-align: top">44d 7' 34.0167" N</td>
2020
+ <td style="padding-right: 10px; vertical-align: top">Latitude expressed as degrees, minutes and seconds</td>
2021
+ </tr>
2022
+ <tr>
2023
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeD</td>
2024
+ <td style="padding-right: 10px; vertical-align: top">44</td>
2025
+ <td style="padding-right: 10px; vertical-align: top">Degree portion of Latitude</td>
2026
+ </tr>
2027
+ <tr>
2028
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeM</td>
2029
+ <td style="padding-right: 10px; vertical-align: top">7</td>
2030
+ <td style="padding-right: 10px; vertical-align: top">Minute portion of Latitude</td>
2031
+ </tr>
2032
+ <tr>
2033
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeS</td>
2034
+ <td style="padding-right: 10px; vertical-align: top">34.0167</td>
2035
+ <td style="padding-right: 10px; vertical-align: top">Second portion of Latitude</td>
2036
+ </tr>
2037
+ <tr>
2038
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeDM</td>
2039
+ <td style="padding-right: 10px; vertical-align: top">44 7.5669N</td>
2040
+ <td style="padding-right: 10px; vertical-align: top">Latitude expressed as degrees and decimal minutes (MinDec)</td>
2041
+ </tr>
2042
+ <tr>
2043
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeDD</td>
2044
+ <td style="padding-right: 10px; vertical-align: top">44.126116N</td>
2045
+ <td style="padding-right: 10px; vertical-align: top">Latitude expressed as decimal degrees</td>
2046
+ </tr>
2047
+ <tr>
2048
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeMinDec</td>
2049
+ <td style="padding-right: 10px; vertical-align: top">7.5669</td>
2050
+ <td style="padding-right: 10px; vertical-align: top">Decimal Minutes portion of Latitude</td>
2051
+ </tr>
2052
+ <tr>
2053
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LatitudeDegDec</td>
2054
+ <td style="padding-right: 10px; vertical-align: top">.126116</td>
2055
+ <td style="padding-right: 10px; vertical-align: top">Decimal Degrees portion of Latitude</td>
2056
+ </tr>
2057
+ <tr>
2058
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeRef</td>
2059
+ <td style="padding-right: 10px; vertical-align: top">E or W</td>
2060
+ <td style="padding-right: 10px; vertical-align: top">Indicates whether the Longitude is east or west longitude</td>
2061
+ </tr>
2062
+ <tr>
2063
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeRefS</td>
2064
+ <td style="padding-right: 10px; vertical-align: top">empty or "-"</td>
2065
+ <td style="padding-right: 10px; vertical-align: top">Blank for east, "-" for west</td>
2066
+ </tr>
2067
+ <tr>
2068
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Longitude</td>
2069
+ <td style="padding-right: 10px; vertical-align: top">145d 5' 9.2055" E</td>
2070
+ <td style="padding-right: 10px; vertical-align: top">Longitude expressed as degrees, minutes and seconds</td>
2071
+ </tr>
2072
+ <tr>
2073
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeD</td>
2074
+ <td style="padding-right: 10px; vertical-align: top">145</td>
2075
+ <td style="padding-right: 10px; vertical-align: top">Degree portion of Longitude</td>
2076
+ </tr>
2077
+ <tr>
2078
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeM</td>
2079
+ <td style="padding-right: 10px; vertical-align: top">5</td>
2080
+ <td style="padding-right: 10px; vertical-align: top">Minute portion of Longitude</td>
2081
+ </tr>
2082
+ <tr>
2083
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeS</td>
2084
+ <td style="padding-right: 10px; vertical-align: top">9.2055</td>
2085
+ <td style="padding-right: 10px; vertical-align: top">Second portion of Longitude</td>
2086
+ </tr>
2087
+ <tr>
2088
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeDM</td>
2089
+ <td style="padding-right: 10px; vertical-align: top">145 5.1534E</td>
2090
+ <td style="padding-right: 10px; vertical-align: top">Longitude expressed as degrees and decimal minutes (MinDec)</td>
2091
+ </tr>
2092
+ <tr>
2093
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeDD</td>
2094
+ <td style="padding-right: 10px; vertical-align: top">145.085890E</td>
2095
+ <td style="padding-right: 10px; vertical-align: top">Longitude expressed as decimal degrees</td>
2096
+ </tr>
2097
+ <tr>
2098
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeMinDec</td>
2099
+ <td style="padding-right: 10px; vertical-align: top">5.1534</td>
2100
+ <td style="padding-right: 10px; vertical-align: top">Decimal Minutes portion of Longitude</td>
2101
+ </tr>
2102
+ <tr>
2103
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">LongitudeDegDec</td>
2104
+ <td style="padding-right: 10px; vertical-align: top">.085890</td>
2105
+ <td style="padding-right: 10px; vertical-align: top">Decimal Degrees portion of Longitude</td>
2106
+ </tr>
2107
+ <tr>
2108
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">AltitudeRef</td>
2109
+ <td style="padding-right: 10px; vertical-align: top">0 or 1</td>
2110
+ <td style="padding-right: 10px; vertical-align: top">0 = above sea level, 1 = below sea level</td>
2111
+ </tr>
2112
+ <tr>
2113
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">AltitudeRefS</td>
2114
+ <td style="padding-right: 10px; vertical-align: top">blank or "-"</td>
2115
+ <td style="padding-right: 10px; vertical-align: top">Blank above sea level, "-" below sea level</td>
2116
+ </tr>
2117
+ <tr>
2118
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">Altitude</td>
2119
+ <td style="padding-right: 10px; vertical-align: top">247.0825</td>
2120
+ <td style="padding-right: 10px; vertical-align: top">Altitude in meters</td>
2121
+ </tr>
2122
+ <tr>
2123
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">AltitudeFeet</td>
2124
+ <td style="padding-right: 10px; vertical-align: top">810.64</td>
2125
+ <td style="padding-right: 10px; vertical-align: top">Altitude in feet</td>
2126
+ </tr>
2127
+ <tr>
2128
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">TimeStamp</td>
2129
+ <td style="padding-right: 10px; vertical-align: top">01:00:34</td>
2130
+ <td style="padding-right: 10px; vertical-align: top">The time as UTC (Coordinated Universal Time)</td>
2131
+ </tr>
2132
+ <tr>
2133
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">TimeStampH</td>
2134
+ <td style="padding-right: 10px; vertical-align: top">01</td>
2135
+ <td style="padding-right: 10px; vertical-align: top">The hours portion of TimeStamp</td>
2136
+ </tr>
2137
+ <tr>
2138
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">TimeStampM</td>
2139
+ <td style="padding-right: 10px; vertical-align: top">00</td>
2140
+ <td style="padding-right: 10px; vertical-align: top">The minutes portion of TimeStamp</td>
2141
+ </tr>
2142
+ <tr>
2143
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">TimeStampS</td>
2144
+ <td style="padding-right: 10px; vertical-align: top">34</td>
2145
+ <td style="padding-right: 10px; vertical-align: top">The seconds portion of TimeStamp</td>
2146
+ </tr>
2147
+ <tr>
2148
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">DateStamp</td>
2149
+ <td style="padding-right: 10px; vertical-align: top">2013:08:09</td>
2150
+ <td style="padding-right: 10px; vertical-align: top">The date as UTC (Coordinated Universal Time)</td>
2151
+ </tr>
2152
+ <tr>
2153
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">DateStampY</td>
2154
+ <td style="padding-right: 10px; vertical-align: top">2013</td>
2155
+ <td style="padding-right: 10px; vertical-align: top">The year portion of DateStamp</td>
2156
+ </tr>
2157
+ <tr>
2158
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">DateStampM</td>
2159
+ <td style="padding-right: 10px; vertical-align: top">08</td>
2160
+ <td style="padding-right: 10px; vertical-align: top">The month portion of DateStamp</td>
2161
+ </tr>
2162
+ <tr>
2163
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">DateStampD</td>
2164
+ <td style="padding-right: 10px; vertical-align: top">09</td>
2165
+ <td style="padding-right: 10px; vertical-align: top">The day portion of DateStamp</td>
2166
+ </tr>
2167
+ <tr>
2168
+ <td style="padding-right: 10px; vertical-align: top; font-weight:bold">MapDatum</td>
2169
+ <td style="padding-right: 10px; vertical-align: top">WGS-84</td>
2170
+ <td style="padding-right: 10px; vertical-align: top">The geodetic survey data used by the GPS receiver</td>
2171
+ </tr>
2172
+ </table>
2173
  <a name="mla_iptc_identifiers"></a>
2174
  &nbsp;
2175
  <p>
tpls/help-for-settings_page_mla-settings-menu-upload-edit.tpl CHANGED
@@ -4,5 +4,5 @@
4
  <p>Remember to click the &#8220;Update&#8221; button to save your work. You may instead click the &#8220;Cancel&#8221; button to discard any changes.</p>
5
  <!-- template="sidebar" -->
6
  <p><strong>For more information:</strong></p>
7
- <p><a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&mla_tab=documentation#mla_uploads" target="_blank">Documentation on Upload MIME Types</a></p>
8
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
4
  <p>Remember to click the &#8220;Update&#8221; button to save your work. You may instead click the &#8220;Cancel&#8221; button to discard any changes.</p>
5
  <!-- template="sidebar" -->
6
  <p><strong>For more information:</strong></p>
7
+ <p><a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_uploads" target="_blank">Documentation on Upload MIME Types</a></p>
8
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
tpls/help-for-settings_page_mla-settings-menu-upload-optional.tpl CHANGED
@@ -23,5 +23,5 @@
23
  <p>Hovering over a row in the Extension column reveals action links such as Select. Clicking "Select" will copy the extension, MIME Type and Description values in that row to the Uploads list, creating a new custom item or converting an existing core/mla item to custom with the new values.</p>
24
  <!-- template="sidebar" -->
25
  <p><strong>For more information:</strong></p>
26
- <p><a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&mla_tab=documentation#mla_optional_uploads" target="_blank">Documentation on Searching for Upload MIME Types</a></p>
27
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
23
  <p>Hovering over a row in the Extension column reveals action links such as Select. Clicking "Select" will copy the extension, MIME Type and Description values in that row to the Uploads list, creating a new custom item or converting an existing core/mla item to custom with the new values.</p>
24
  <!-- template="sidebar" -->
25
  <p><strong>For more information:</strong></p>
26
+ <p><a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_optional_uploads" target="_blank">Documentation on Searching for Upload MIME Types</a></p>
27
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
tpls/help-for-settings_page_mla-settings-menu-upload.tpl CHANGED
@@ -42,5 +42,5 @@
42
  <p><strong>NOTE:</strong> This option does <em><strong>NOT</strong></em> enable or disable uploading files; it simply turns off MLA support for managing the list of extensions and MIME types.</p>
43
  <!-- template="sidebar" -->
44
  <p><strong>For more information:</strong></p>
45
- <p><a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&mla_tab=documentation#mla_uploads" target="_blank">Documentation on Upload MIME Types</a></p>
46
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
42
  <p><strong>NOTE:</strong> This option does <em><strong>NOT</strong></em> enable or disable uploading files; it simply turns off MLA support for managing the list of extensions and MIME types.</p>
43
  <!-- template="sidebar" -->
44
  <p><strong>For more information:</strong></p>
45
+ <p><a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_uploads" target="_blank">Documentation on Upload MIME Types</a></p>
46
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
tpls/help-for-settings_page_mla-settings-menu-view-edit.tpl CHANGED
@@ -4,5 +4,5 @@
4
  <p>Remember to click the &#8220;Update&#8221; button to save your work. You may instead click the &#8220;Cancel&#8221; button to discard any changes.</p>
5
  <!-- template="sidebar" -->
6
  <p><strong>For more information:</strong></p>
7
- <p><a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&mla_tab=documentation#mla_views" target="_blank">Documentation on MIME Type Views</a></p>
8
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
4
  <p>Remember to click the &#8220;Update&#8221; button to save your work. You may instead click the &#8220;Cancel&#8221; button to discard any changes.</p>
5
  <!-- template="sidebar" -->
6
  <p><strong>For more information:</strong></p>
7
+ <p><a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_views" target="_blank">Documentation on MIME Type Views</a></p>
8
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
tpls/help-for-settings_page_mla-settings-menu-view.tpl CHANGED
@@ -21,5 +21,5 @@
21
  <p>If you have some other plugin or mechanism for handling the Post MIME Type items, you can disable MLA support entirely. Clear the checkbox at the bottom-left corner of the screen and click "Save Changes". The Views table will be replaced by a "disabled" screen and a checkbox that lets you turn MLA support back on when you want it.</p>
22
  <!-- template="sidebar" -->
23
  <p><strong>For more information:</strong></p>
24
- <p><a href="http:/wp-admin/options-general.php?page=mla-settings-menu-documentation&mla_tab=documentation#mla_views" target="_blank">Documentation on MIME Type Views</a></p>
25
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
21
  <p>If you have some other plugin or mechanism for handling the Post MIME Type items, you can disable MLA support entirely. Clear the checkbox at the bottom-left corner of the screen and click "Save Changes". The Views table will be replaced by a "disabled" screen and a checkbox that lets you turn MLA support back on when you want it.</p>
22
  <!-- template="sidebar" -->
23
  <p><strong>For more information:</strong></p>
24
+ <p><a href="[+settingsURL+]?page=mla-settings-menu-documentation&mla_tab=documentation#mla_views" target="_blank">Documentation on MIME Type Views</a></p>
25
  <p><a href="http://wordpress.org/support/plugin/media-library-assistant" target="_blank">Support Forum</a></p>
tpls/mla-option-templates.tpl CHANGED
@@ -291,7 +291,7 @@
291
  IPTC Value
292
  </th>
293
  <th scope="col" style="text-align:center">
294
- EXIF Value
295
  </th>
296
  <th scope="col" style="text-align:left">
297
  Priority
@@ -321,7 +321,7 @@
321
  IPTC Value
322
  </th>
323
  <th scope="col" style="text-align:center">
324
- EXIF Value
325
  </th>
326
  <th scope="col" style="text-align:center">
327
  Priority
@@ -354,7 +354,7 @@
354
  IPTC Value
355
  </th>
356
  <th scope="col" style="text-align:center">
357
- EXIF Value
358
  </th>
359
  <th scope="col" style="text-align:left">
360
  Priority
291
  IPTC Value
292
  </th>
293
  <th scope="col" style="text-align:center">
294
+ EXIF/Template Value
295
  </th>
296
  <th scope="col" style="text-align:left">
297
  Priority
321
  IPTC Value
322
  </th>
323
  <th scope="col" style="text-align:center">
324
+ EXIF/Template Value
325
  </th>
326
  <th scope="col" style="text-align:center">
327
  Priority
354
  IPTC Value
355
  </th>
356
  <th scope="col" style="text-align:center">
357
+ EXIF/Template Value
358
  </th>
359
  <th scope="col" style="text-align:left">
360
  Priority