# MLA_WPML

Class MLA (Media Library Assistant) WPML provides admin mode support for the WPML Multilingual CMS family of plugins, including WPML Media

package | Media Library Assistant
since | 2.11

### Methods

## Adds a term and its translations to $relevant_terms

    _add_relevant_term( $term,  $translations = NULL,  $skip_cache = false)

static

since | 2.11
uses |

### Arguments

#### $term

``

#### $translations

``

#### $skip_cache

``

## Compute Term Synchronization replacement $tax_inputs

    _apply_synch_input(string $language) : array

static

Assumes the "current post" in $existing_terms is the source and $existing_terms contains the target translation

since | 2.11
uses |

### Arguments

#### $language

`string`

the target translation code

### Response

`array`

$tax_inputs for Term Synchronization

## Filter the $tax_input array to a specific language

    _apply_tax_input(integer $post_id, string $post_language = NULL) : array

static

since | 2.11
uses |

### Arguments

#### $post_id

`integer`

ID of the post to be updated

#### $post_language

`string`

explicit language_code; optional

### Response

`array`

language-specific $tax_inputs

## Apply Term Synchronization

    _apply_term_synchronization(integer $post_id) : array

static

since | 2.15
uses |

### Arguments

#### $post_id

`integer`

the item we're synchronizing to

### Response

`array`

$tax_inputs for Term Synchronization

## Build the $existing_terms array

    _build_existing_terms(integer $post_id)

static

Takes each translatable taxonomy and builds an array of language-specific term_id to term_id/term_name mappings for terms already assigned to the item translation.

since | 2.11
uses |

### Arguments

#### $post_id

`integer`

ID of the current post

## Build the $tax_input array

    _build_tax_input(integer $post_id, array $tax_inputs = NULL, array $tax_actions = NULL)

static

Takes each term from the $tax_inputs parameter and builds an array of language-specific term_id to term_id/term_name mappings for all languages.

since | 2.11
uses |

### Arguments

#### $post_id

`integer`

ID of the current post

#### $tax_inputs

`array`

'tax_input' request parameter

#### $tax_actions

`array`

'tax_action' request parameter

## Finds a $relevant_term (if defined) given a key and (optional) a language

    _get_relevant_term(string $field, mixed $value, string $taxonomy, string $language = NULL, boolean $test_only = false,  $skip_cache = false)

static

since | 2.11
uses |

### Arguments

#### $field

`string`

to search in; 'id', 'name', or 'term_taxonomy_id'

#### $value

`mixed`

to search for; integer, string or integer

#### $taxonomy

`string`

to search in; slug

#### $language

`string`

code; string; optional

#### $test_only

`boolean`

false (default) to add missing term, true to leave term out

#### $skip_cache

``

## Delete saved settings, restoring default values

    _reset_language_settings() : array

static

since | 2.11

### Response

`array`

Message(s) reflecting the results of the operation

## Save Language settings to the options table

    _save_language_settings() : array

static

since | 2.11
uses |

### Response

`array`

Message(s) reflecting the results of the operation

## Update the $existing_terms array

    _update_existing_terms(integer $post_id) : array

static

Takes each translatable taxonomy and rebuilds the array of language-specific term_id to term_id/term_name mappings for the "current translation" represented by the $post_id.

since | 2.11
uses |

### Arguments

#### $post_id

`integer`

ID of the current post

### Response

`array`

( taxonomy => term assignments ) before the update

## Add the plugin's admin-mode filter/action handlers

    admin_init() : void

static

since | 2.11

## Captures "before update" term assignments from the Media/Edit Media screen

    attachment_fields_to_save(\WP_Post $post, array $attachment)

static

since | 2.13

### Arguments

#### $post

`\WP_Post`

The WP_Post object.

#### $attachment

`array`

An array of attachment metadata.

## Filters taxonomy updates by language for Bulk Edit during Add New Media and the Media/Edit Media screen

    edit_attachment( $post_id)

static

since | 2.11

### Arguments

#### $post_id

``

## Initialization function, similar to __construct()

    initialize() : void

static

This function contains add_action and add_filter calls.

since | 2.11

## Force "All languages" mode for IPTC/EXIF mapping, which uses mla_get_shortcode_attachments

    mla_begin_mapping( $source,  $post_id = NULL)

static

since | 2.20

### Arguments

#### $source

``

#### $post_id

``

## Remove "All languages" filter

    mla_end_mapping() : void

static

since | 2.20

## Adds the "Language" tab to the Settings/Media Library Assistant list

    mla_get_options_tablist( $results,  $mla_tablist,  $tab) : array

static

since | 2.11

### Arguments

#### $results

``

#### $mla_tablist

``

#### $tab

``

### Response

`array`

updated tablist or single tab element

## Captures the Bulk Edit, "Upload New Media" parameters

    mla_list_table_bulk_action_initial_request(array $request, string $bulk_action, array $custom_field_map) : array

static

since | 2.11

### Arguments

#### $request

`array`

bulk action request parameters, including ['mla_bulk_action_do_cleanup'].

#### $bulk_action

`string`

the requested action.

#### $custom_field_map

`array`

[ slug => field_name ]

### Response

`array`

updated bulk action request parameters

## Converts Bulk Edit taxonomy inputs to language-specific values

    mla_list_table_bulk_action_item_request(array $request, string $bulk_action, integer $post_id, array $custom_field_map) : array

static

since | 2.11

### Arguments

#### $request

`array`

bulk action request parameters, including ['mla_bulk_action_do_cleanup'].

#### $bulk_action

`string`

the requested action.

#### $post_id

`integer`

the affected attachment.

#### $custom_field_map

`array`

[ slug => field_name ]

### Response

`array`

updated bulk action request parameters

## Add a duplicate translation for an item, then redirect to the Media/Edit Media screen

    mla_list_table_custom_admin_action(string $mla_admin_action, integer $mla_item_ID)

static

since | 2.11

### Arguments

#### $mla_admin_action

`string`

the requested action.

#### $mla_item_ID

`integer`

zero (0), or the affected attachment.

## Captures the Quick Edit "before update" term assignments

    mla_list_table_inline_action(array $item_content, integer $post_id) : object

static

since | 2.11

### Arguments

#### $item_content

`array`

NULL, to indicate no handler.

#### $post_id

`integer`

the affected attachment.

### Response

`object`

updated $item_content. NULL if no handler, otherwise ( 'message' => error or status message(s), 'body' => '', 'prevent_default' => true to bypass the MLA handler )

## Localize $mla_language_option_definitions array

    mla_localize_language_option_definitions() : void

static

Localization must be done at runtime, and these calls cannot be placed in the "public static" array definition itself.

since | 2.11

## Manages the creation of new taxonomy terms from metadata values

    mla_mapping_new_text( $new_text,  $setting_key,  $post_id,  $category,  $attachment_metadata) : array

static

since | 2.20

### Arguments

#### $new_text

``

#### $setting_key

``

#### $post_id

``

#### $category

``

#### $attachment_metadata

``

### Response

`array`

updated rule EXIF/Template value

## Saves the current mapping rule for term creation

    mla_mapping_rule( $setting_value,  $post_id,  $category,  $attachment_metadata)

static

since | 2.20

### Arguments

#### $setting_value

``

#### $post_id

``

#### $category

``

#### $attachment_metadata

``

## Captures the existing term assignments before the Media Manager Modal Window ATTACHMENT DETAILS taxonomy meta boxes updates

    mla_media_modal_begin_update_compat_fields( $post)

static

since | 2.11

### Arguments

#### $post

``

## Applies Term Synchronization after the Media Manager Modal Window taxonomy updates

    mla_media_modal_end_update_compat_fields( $results,  $taxonomies,  $post)

static

since | 2.11

### Arguments

#### $results

``

#### $taxonomies

``

#### $post

``

## Applies Term Assignment to the terms assigned to one Media Manager Modal Window ATTACHMENT DETAILS taxonomy

    mla_media_modal_update_compat_fields_terms( $terms,  $key,  $value,  $post_id)

static

since | 2.11

### Arguments

#### $terms

``

#### $key

``

#### $value

``

#### $post_id

``

## Renders the Settings/Media Library Assistant "Language" tab

    mla_render_language_tab() : array

static

since | 2.11

### Response

`array`

( 'message' => '', 'body' => '' )

## Copy attachment metadata to duplicated items

    mla_update_attachment_metadata_postfilter( $data,  $post_id,  $options) : array

static

This filter is called AFTER MLA mapping rules are applied during wp_update_attachment_metadata() processing. The postfilter gives you an opportunity to record or update the metadata after the mapping.

since | 2.20

### Arguments

#### $data

``

#### $post_id

``

#### $options

``

### Response

`array`

updated attachment metadata

## Applies Term Synchronization after item updates

    mla_updated_single_item(integer $post_id, integer $result)

static

since | 2.15

### Arguments

#### $post_id

`integer`

ID of the item that was updated.

#### $result

`integer`

Zero if the update failed else ID of the item that was updated.

## Modify and extend the substitution values used for the Bulk Edit on Upload form.

    mla_upload_bulk_edit_form_values(array $page_values)

static

since | 2.20

### Arguments

#### $page_values

`array`

[ parameter_name => parameter_value ] pairs

## Adds translation update message for display at the top of the Edit Media screen

    post_updated_messages( $messages) : array

static

since | 2.11

### Arguments

#### $messages

``

### Response

`array`

updated messages

## Force "All languages" mode for IPTC/EXIF mapping, which uses mla_get_shortcode_attachments

    pre_wpml_is_translated_post_type_filter( $translated,  $type)

static

since | 2.20

### Arguments

#### $translated

``

#### $type

``

## Copies taxonomy terms from the source item to the new translated item

    wpml_media_create_duplicate_attachment( $attachment_id,  $duplicated_attachment_id)

static

since | 2.11

### Arguments

#### $attachment_id

``

#### $duplicated_attachment_id

``

### Properties

## Custom Field Map during Bulk Edit, "Upload New Media"

    bulk_edit_map : array

static

since |
var | [ id ] => field name

### Type(s)

`array`

## Bulk Edit parameters during "Upload New Media"

    bulk_edit_request : array

static

since |
var | [ field ] => new value

### Type(s)

`array`

## Current mapping rule for term creation

    current_mapping_rule : array

static

since |
var | mapping rule

### Type(s)

`array`

## Taxonomy terms and translations

    relevant_terms : array

static

NOTE: WPML uses term_taxonomy_id as the "element_id" in its translations; Polylang uses term_id as the "element_id".

since |
var | [ $term_taxonomy_id ] => array( $term, $details, $translations )

### Type(s)

`array`

## Taxonomy terms for the current item translation in the database

    existing_terms : array

static

since |
var | ['element_id'] => $post_id; [ 'language_code' ] => WPML item language or default language, e.g., 'en' [ 'slug' ] => Polylang item language or default language, e.g., 'en' [ $language ][ translation_details ] [ $language ][ $taxonomy ][ $term_taxonomy_id ] => $term

### Type(s)

`array`

## Replacement tax_input values in all languages

    tax_input : array

static

since |
var | ['tax_input_post_id'] => $post_id; [ $language ][ $taxonomy ] => array of integer term_ids (hierarchical) [ $language ][ $taxonomy ] => comma-delimited string of term names (flat)

### Type(s)

`array`

## WPML Option settings to restore when always_translate_media is changed in Bulk Edit on Upload area

    wpml_content_defaults : array

static

since |
var | NULL or ( always_translate_media, duplicate_media, duplicate_featured )

### Type(s)

`array`

## Duplicates created during media upload

    duplicate_attachments : array

static

since |
var | [ $post_id ] => $language;

### Type(s)

`array`

## True while fixing and mapping duplicates

    updating_duplicates : boolean

static

since |
var |

### Type(s)

`boolean`

## $mla_language_option_definitions defines the language-specific database options and admin page areas for setting/updating them

    mla_language_option_definitions :

static

The array must be populated at runtime in MLA_WPML::mla_localize_language_option_definitions(), because localization calls cannot be placed in the "public static" array definition itself.

Each option is defined by an array with the elements documented in class-mla-options.php

### Type(s)

``