# MLAShortcode_Support

Class MLA (Media Library Assistant) Shortcode Support provides the functions that implement the [mla_gallery] and [mla_tag_cloud] shortcodes. It also implements the mla_get_shortcode_attachments() and mla_get_terms() database access functions.

package | Media Library Assistant
since | 2.20

### Methods

## Compose one level of an mla_term_list

    _compose_term_list(string &$list, array &$links, array &$terms, array &$markup_values, array &$arguments, array &$attr) : void

static

Adds shortcode output text and term-specific links to arrays passed by reference.

since | 2.25

### Arguments

#### $list

`string`

Shortcode output text, by reference

#### $links

`array`

Term-specific links for flat/array output, by reference

#### $terms

`array`

Term objects, by reference

#### $markup_values

`array`

Style and list-level substitution parameters, by reference

#### $arguments

`array`

Shortcode parameters, including defaults, by reference

#### $attr

`array`

Shortcode parameters, explicit, by reference

## Add level to term children and count them, all levels.

    _count_term_children(object &$parent, integer $depth) : integer

static

Recalculates term counts by including items from child terms. Assumes all relevant children are already in the $terms argument.

since | 2.25

### Arguments

#### $parent

`object`

Parent Term objects, by reference

#### $depth

`integer`

Maximum depth of parent/child relationship

### Response

`integer`

Total number of children, all levels

## Find a term that matches $child_of

    _find_child_of(array &$parents, integer $parent_id) : mixed

static

since | 2.25

### Arguments

#### $parents

`array`

Potential parent Term objects, by reference

#### $parent_id

`integer`

Term_id of the desired parent

### Response

`mixed`

Term object of the desired parent else false

## Find the term(s) that match $include_tree

    _find_include_tree(array &$terms, array $include_tree) : mixed

static

since | 2.25

### Arguments

#### $terms

`array`

Potential term objects, by reference

#### $include_tree

`array`

term_id(s) of the desired terms

### Response

`mixed`

Term object(s) of the desired terms else false

## Filters the image src result, returning an icon to represent an attachment.

    _get_attachment_icon_src(array|false $image, integer $attachment_id)

static

since | 2.52

### Arguments

#### $image

`array|false`

Either array with src, width & height, icon src, or false.

#### $attachment_id

`integer`

Image attachment ID.

## Walk a list of terms and find hierarchy, preserving source order.

    _get_term_tree(array &$terms, array $arguments = array()) : array

static

since | 2.25

### Arguments

#### $terms

`array`

Term objects, by reference

#### $arguments

`array`

Shortcode arguments, including defaults

### Response

`array`

( [taxonomy] => array( [root terms] => array( [fields], array( 'children' => [child terms] )

## Add count of children to parent count.

    _pad_term_counts( &$terms,  $taxonomy,  $post_types = NULL,  $post_stati = NULL) : null

static

Recalculates term counts by including items from child terms. Assumes all relevant children are already in the $terms argument.

since | 2.20

### Arguments

#### $terms

``

#### $taxonomy

``

#### $post_types

``

#### $post_stati

``

### Response

`null`

Will break from function if conditions are not met.

## Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links'

    _paginate_links( $output_parameters,  $markup_values,  $arguments,  $found_rows,  $output = '') : mixed

static

since | 2.20

### Arguments

#### $output_parameters

``

#### $markup_values

``

#### $arguments

``

#### $found_rows

``

#### $output

``

### Response

`mixed`

false or string with HTML for pagination output types

## Handles pagnation output types 'previous_page', 'next_page', and 'paginate_links'

    _process_pagination_output_types( $output_parameters,  $markup_values,  $arguments,  $attr,  $found_rows,  $output = '') : mixed

static

since | 2.20

### Arguments

#### $output_parameters

``

#### $markup_values

``

#### $arguments

``

#### $attr

``

#### $found_rows

``

#### $output

``

### Response

`mixed`

false or string with HTML for pagination output types

## Handles brace/bracket escaping and parses template for a shortcode parameter

    _process_shortcode_parameter( $text,  $markup_values) : string

static

since | 2.20

### Arguments

#### $text

``

#### $markup_values

``

### Response

`string`

parameter with brackets, braces, substitution parameters and templates processed

## Computes image dimensions for scalable graphics, e.g., SVG

    _registered_dimensions() : array

static

since | 2.20

### Response

`array`

## Remove the term(s) that match $exclude_tree

    _remove_exclude_tree(array &$terms, array $exclude_tree) : void

static

since | 2.25

### Arguments

#### $terms

`array`

Potential term objects, by reference

#### $exclude_tree

`array`

term_id(s) of the desired terms

## Cleans up damage caused by the Visual Editor to the tax_query and meta_query specifications

    _sanitize_query_specification( $specification) : string

static

since | 2.20

### Arguments

#### $specification

``

### Response

`string`

query specification with HTML escape sequences and line breaks removed

## Make sure $attr is an array, repair line-break damage, merge with $content

    _validate_attributes(mixed $attr, string $content = NULL) : array

static

since | 2.20

### Arguments

#### $attr

`mixed`

Array or string containing shortcode attributes

#### $content

`string`

Optional content for enclosing shortcodes

### Response

`array`

clean attributes array

## Translates query parameters to a valid SQL order by clause.

    _validate_sql_orderby( $query_parameters,  $table_prefix = NULL,  $allowed_keys = NULL,  $binary_keys = array()) : string|boolean

static

Accepts one or more valid columns, with or without ASC/DESC. Enhanced version of /wp-includes/formatting.php function sanitize_sql_orderby().

since | 2.20

### Arguments

#### $query_parameters

``

#### $table_prefix

``

#### $allowed_keys

``

#### $binary_keys

``

### Response

`string|boolean`

Returns the orderby clause if present, false otherwise.

## The MLA Gallery shortcode.

    mla_gallery_shortcode(array $attr, string $content = NULL) : string

static

This is a superset of the WordPress Gallery shortcode for displaying images on a post, page or custom post type. It is adapted from /wp-includes/media.php gallery_shortcode. Enhancements include many additional selection parameters and full taxonomy support.

since | 2.20

### Arguments

#### $attr

`array`

Attributes of the shortcode

#### $content

`string`

Optional content for enclosing shortcodes

### Response

`string`

HTML content to display gallery.

## Parses shortcode parameters and returns the gallery objects

    mla_get_shortcode_attachments( $post_parent,  $attr,  $return_found_rows = NULL) : array

static

since | 2.20

### Arguments

#### $post_parent

``

#### $attr

``

#### $return_found_rows

``

### Response

`array`

List of attachments returned from WP_Query

## Retrieve the terms in one or more taxonomies.

    mla_get_terms( $attr) : array

static

Alternative to WordPress /wp-includes/taxonomy.php function get_terms() that provides an accurate count of attachments associated with each term.

taxonomy - string containing one or more (comma-delimited) taxonomy names or an array of taxonomy names. Default 'post_tag'.

post_mime_type - MIME type(s) of the items to include in the term-specific counts. Default 'all'.

post_type - The post type(s) of the items to include in the term-specific counts. The default is "attachment".

post_status - The post status value(s) of the items to include in the term-specific counts. The default is "inherit".

ids - A comma-separated list of attachment ID values for an item-specific cloud.

include - An array, comma- or space-delimited string of term ids to include in the return array.

exclude - An array, comma- or space-delimited string of term ids to exclude from the return array. If 'include' is non-empty, 'exclude' is ignored.

parent - term_id of the terms' immediate parent; 0 for top-level terms.

minimum - minimum number of attachments a term must have to be included. Default 0.

no_count - 'true', 'false' (default) to suppress term-specific attachment-counting process.

number - maximum number of term objects to return. Terms are ordered by count, descending and then by term_id before this value is applied. Default 0.

orderby - 'count', 'id', 'name' (default), 'none', 'random', 'slug'

order - 'ASC' (default), 'DESC'

no_orderby - 'true', 'false' (default) to suppress ALL sorting clauses else false.

preserve_case - 'true', 'false' (default) to make orderby case-sensitive.

pad_counts - 'true', 'false' (default) to to include the count of all children in their parents' count.

limit - final number of term objects to return, for pagination. Default 0.

offset - number of term objects to skip, for pagination. Default 0.

fields - string with fields for the SQL SELECT clause, e.g., 't.term_id, t.name, t.slug, COUNT(p.ID) AS `count`'

since | 2.20

### Arguments

#### $attr

``

### Response

`array`

array of term objects, empty if none found

## Verify the presence of Ghostscript for mla_viewer

    mla_ghostscript_present( $explicit_path = '',  $ghostscript_only = false) : boolean

static

since | 2.20

### Arguments

#### $explicit_path

``

#### $ghostscript_only

``

### Response

`boolean`

true if Ghostscript available else false

## Filters all clauses for shortcode queries, pre caching plugins

    mla_shortcode_query_posts_clauses_filter( $pieces) : array

static

This is for debug purposes only. Defined as public because it's a filter.

since | 2.20

### Arguments

#### $pieces

``

### Response

`array`

query clauses after modification (none)

## Filters all clauses for shortcode queries, post caching plugins

    mla_shortcode_query_posts_clauses_request_filter( $pieces) : array

static

This is for debug purposes only. Defined as public because it's a filter.

since | 2.20

### Arguments

#### $pieces

``

### Response

`array`

query clauses after modification (none)

## Filters the JOIN clause for shortcode queries

    mla_shortcode_query_posts_join_filter( $join_clause) : string

static

Defined as public because it's a filter.

since | 2.20

### Arguments

#### $join_clause

``

### Response

`string`

query clause after item modification

## Filters the ORDERBY clause for shortcode queries

    mla_shortcode_query_posts_orderby_filter( $orderby_clause) : string

static

This is an enhanced version of the code found in wp-includes/query.php, function get_posts. Defined as public because it's a filter.

since | 2.20

### Arguments

#### $orderby_clause

``

### Response

`string`

query clause after modification

## Filters the WHERE clause for shortcode queries

    mla_shortcode_query_posts_where_filter( $where_clause) : string

static

Captures debug information. Adds whitespace to the post_type = 'attachment' phrase to circumvent subsequent Role Scoper modification of the clause. Handles post_parent "any" and "none" cases. Defined as public because it's a filter.

since | 2.20

### Arguments

#### $where_clause

``

### Response

`string`

query clause after modification

## The MLA Tag Cloud support function.

    mla_tag_cloud(array $attr) : string

static

This is an alternative to the WordPress wp_tag_cloud function, with additional options to customize the hyperlink behind each term.

since | 2.20

### Arguments

#### $attr

`array`

Attributes of the shortcode.

### Response

`string`

HTML content to display the tag cloud.

## The MLA Tag Cloud shortcode.

    mla_tag_cloud_shortcode(array $attr, string $content = NULL) : string

static

This is an interface to the mla_tag_cloud function.

since | 2.20

### Arguments

#### $attr

`array`

Attributes of the shortcode.

#### $content

`string`

Optional content for enclosing shortcodes

### Response

`string`

HTML content to display the tag cloud.

## The MLA Term List support function.

    mla_term_list(array $attr) : string

static

This is an alternative to the WordPress wp_list_categories, wp_dropdown_categories and wp_terms_checklist functions, with additional options to customize the hyperlink behind each term.

since | 2.25

### Arguments

#### $attr

`array`

Attributes of the shortcode.

### Response

`string`

HTML content to display the term list, dropdown control or checklist.

## The MLA Term List shortcode.

    mla_term_list_shortcode(array $attr, string $content = NULL) : string

static

This is an interface to the mla_term_list function.

since | 2.25

### Arguments

#### $attr

`array`

Attributes of the shortcode.

#### $content

`string`

Optional content for enclosing shortcodes

### Response

`string`

HTML content to display the term list.

### Properties

## Turn debug collection and display on or off

    mla_debug : boolean

static

since |
var |

### Type(s)

`boolean`

## Default values when global $post is not set

    empty_post : array

static

since |
var |

### Type(s)

`array`

## These are the default parameters for term list display

    term_list_item_specific_arguments : array

static

since |
var |

### Type(s)

`array`

## WP_Query filter "parameters"

    query_parameters : array

static

This array defines parameters for the query's join, where and orderby filters. The parameters are set up in the mla_get_shortcode_attachments function, and any further logic required to translate those values is contained in the filter.

Array index values are: orderby, post_parent

since |
var |

### Type(s)

`array`

## Data selection parameters for the WP_Query in [mla_gallery]

    mla_get_shortcode_attachments_parameters : array

static

since |
var |

### Type(s)

`array`

## Data selection parameters for the WP_Query in [mla_gallery]

    mla_get_shortcode_dynamic_attachments_parameters : array

static

since |
var |

### Type(s)

`array`

## Data selection parameters for [mla_tag_cloud], [mla_term_list]

    mla_get_terms_parameters : array

static

since |
var |

### Type(s)

`array`