/**
  * Return terms in all languages when "Activate languages and translations for media"
  * is disabled
  *
  * @since 2.22
  *
  * @param	array	( 'class' => $class_array, 'value' => $value_array, 'text' => $text_array )
  */
 public static function mla_media_modal_terms_options($term_values)
 {
     global $polylang;
     static $in_process = false;
     // Avoid recursion loop
     if ($in_process) {
         return $term_values;
     }
     /*
      * Check Polylang Languages/Settings "Activate languages and translations for media" option
      */
     if (isset($polylang->options['media_support']) && !$polylang->options['media_support']) {
         $in_process = true;
         $dropdown_options = array('pll_get_terms_not_translated' => true);
         $term_values = MLAModal::mla_terms_options(MLA_List_Table::mla_get_taxonomy_filter_dropdown(0, $dropdown_options));
         $in_process = false;
     }
     /*
      * $class_array => HTML class attribute value for each option
      * $value_array => HTML value attribute value for each option
      * $text_array => HTML text content for each option
      */
     return $term_values;
 }
 /**
  * Adds settings values to be passed to the Media Manager in /wp-includes/js/media-views.js.
  * Declared public because it is a filter.
  *
  * @since 1.20
  *
  * @param	array	associative array with setting => value pairs
  * @param	object || NULL	current post object, if available
  *
  * @return	array	updated $settings array
  */
 public static function mla_media_view_settings_filter($settings, $post)
 {
     /*
      * If we know what screen we're on we can test our enabling options
      */
     self::$mla_media_modal_settings['screen'] = 'modal';
     if (function_exists('get_current_screen')) {
         $screen = get_current_screen();
         if (is_object($screen) && 'upload' == $screen->base) {
             self::$mla_media_modal_settings['screen'] = 'grid';
         }
     }
     $default_types = MLACore::mla_get_option(MLACoreOptions::MLA_POST_MIME_TYPES, true);
     self::$mla_media_modal_settings['comma'] = _x(',', 'tag_delimiter', 'media-library-assistant');
     self::$mla_media_modal_settings['ajaxNonce'] = wp_create_nonce(MLACore::MLA_ADMIN_NONCE_ACTION, MLACore::MLA_ADMIN_NONCE_NAME);
     self::$mla_media_modal_settings['allMimeTypes'] = MLAMime::mla_pluck_table_views();
     self::$mla_media_modal_settings['allMimeTypes']['detached'] = $default_types['detached']['plural'];
     self::$mla_media_modal_settings['allMimeTypes']['attached'] = $default_types['attached']['plural'];
     /*
      * Trash items are allowed in the Media/Library Grid view
      */
     if (EMPTY_TRASH_DAYS && MEDIA_TRASH) {
         self::$mla_media_modal_settings['allMimeTypes']['trash'] = $default_types['trash']['plural'];
     }
     self::$mla_media_modal_settings['months'] = self::_months_dropdown('attachment');
     self::$mla_media_modal_settings['termsTaxonomy'] = MLACore::mla_taxonomy_support('', 'filter');
     $terms_options = self::mla_terms_options(MLA_List_Table::mla_get_taxonomy_filter_dropdown());
     self::$mla_media_modal_settings['termsClass'] = $terms_options['class'];
     self::$mla_media_modal_settings['termsValue'] = $terms_options['value'];
     self::$mla_media_modal_settings['termsText'] = $terms_options['text'];
     $current_version = get_bloginfo('version');
     if (version_compare($current_version, '3.9', '<') && version_compare($current_version, '3.6', '>=')) {
         self::$mla_media_modal_settings['termsIndent'] = '-';
     }
     self::$mla_media_modal_settings['enableMediaGrid'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_GRID_TOOLBAR);
     self::$mla_media_modal_settings['enableMediaModal'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_TOOLBAR);
     self::$mla_media_modal_settings['enableDetailsCategory'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_DETAILS_CATEGORY_METABOX);
     self::$mla_media_modal_settings['enableDetailsTag'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_DETAILS_TAG_METABOX);
     self::$mla_media_modal_settings['enableMimeTypes'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_MIMETYPES);
     self::$mla_media_modal_settings['enableMonthsDropdown'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_MONTHS);
     self::$mla_media_modal_settings['enableSearchBox'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_SEARCHBOX);
     self::$mla_media_modal_settings['enableSearchBoxControls'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_SEARCHBOX_CONTROLS);
     $supported_taxonomies = MLACore::mla_supported_taxonomies('support');
     self::$mla_media_modal_settings['enableTermsDropdown'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_TERMS) && !empty($supported_taxonomies);
     self::$mla_media_modal_settings['enableTermsAutofill'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_DETAILS_AUTOFILL) && !empty($supported_taxonomies);
     $supported_taxonomies = MLACore::mla_supported_taxonomies('term-search');
     self::$mla_media_modal_settings['enableTermsSearch'] = 'checked' == MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_TERMS_SEARCH) && !empty($supported_taxonomies);
     /*
      * Compile a list of the enhanced taxonomies
      */
     self::$mla_media_modal_settings['enhancedTaxonomies'] = array();
     foreach (get_taxonomies(array('show_ui' => true), 'objects') as $key => $value) {
         if (MLACore::mla_taxonomy_support($key)) {
             if (!($use_checklist = $value->hierarchical)) {
                 $use_checklist = MLACore::mla_taxonomy_support($key, 'flat-checklist');
             }
             /*
              * Make sure the appropriate MMMW Enhancement option has been checked
              */
             if ($use_checklist) {
                 if ('checked' === MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_DETAILS_CATEGORY_METABOX)) {
                     self::$mla_media_modal_settings['enhancedTaxonomies'][] = $key;
                 }
             } else {
                 if ('checked' === MLACore::mla_get_option(MLACoreOptions::MLA_MEDIA_MODAL_DETAILS_TAG_METABOX)) {
                     self::$mla_media_modal_settings['enhancedTaxonomies'][] = $key;
                 }
             }
         }
         // taxonomy_support
     }
     // each taxonomy
     /*
      * Set and filter the initial values for toolbar controls
      */
     $search_defaults = MLACore::mla_get_option(MLACoreOptions::MLA_SEARCH_MEDIA_FILTER_DEFAULTS);
     $initial_values = array('filterMime' => 'all', 'filterUploaded' => 'all', 'filterMonth' => 0, 'filterTerm' => 0, 'searchConnector' => $search_defaults['search_connector'], 'searchFields' => $search_defaults['search_fields'], 'searchValue' => '');
     $initial_values = apply_filters('mla_media_modal_initial_filters', $initial_values, $post);
     // No supported taxonomies implies no "terms" search
     $supported_taxonomies = MLACore::mla_supported_taxonomies('support');
     if (empty($supported_taxonomies)) {
         $index = array_search('terms', $initial_values['searchFields']);
         if (false !== $index) {
             unset($initial_values['searchFields'][$index]);
         }
     }
     /*
      * Except for filterMime/post_mime_type, these will be passed
      * back to the server in the query['s'] field.
      */
     self::$mla_media_modal_settings['query']['initial']['filterMime'] = $initial_values['filterMime'];
     // post_mime_type 'image'; //
     self::$mla_media_modal_settings['query']['initial']['filterUploaded'] = $initial_values['filterUploaded'];
     // post_mime_type 'image'; //
     self::$mla_media_modal_settings['query']['initial']['filterMonth'] = $initial_values['filterMonth'];
     // mla_filter_month '201404'; //
     self::$mla_media_modal_settings['query']['initial']['filterTerm'] = $initial_values['filterTerm'];
     // mla_filter_term '175'; //
     self::$mla_media_modal_settings['query']['initial']['searchConnector'] = $initial_values['searchConnector'];
     // mla_search_connector 'OR'; //
     self::$mla_media_modal_settings['query']['initial']['searchFields'] = $initial_values['searchFields'];
     // mla_search_fields array( 'excerpt', 'title', 'content' ); //
     self::$mla_media_modal_settings['query']['initial']['searchValue'] = $initial_values['searchValue'];
     // mla_search_value 'col'; //
     //self::$mla_media_modal_settings['query']['initial']['termsSearch'] = $initial_values['termsSearch']; // mla_terms_search
     self::$mla_media_modal_settings['query']['initial']['searchClicks'] = 0;
     // mla_search_clicks, to force transmission
     $settings = array_merge($settings, array('mla_settings' => self::$mla_media_modal_settings));
     return apply_filters('mla_media_modal_settings', $settings, $post);
 }
 /**
  * Adds settings values to be passed to the Media Manager in /wp-includes/js/media-views.js.
  * Declared public because it is a filter.
  *
  * @since 1.20
  *
  * @param	array	associative array with setting => value pairs
  * @param	object || NULL	current post object, if available
  *
  * @return	array	updated $settings array
  */
 public static function mla_media_view_settings_filter($settings, $post)
 {
     self::$mla_media_modal_settings['ajaxNonce'] = wp_create_nonce(MLA::MLA_ADMIN_NONCE);
     self::$mla_media_modal_settings['mimeTypes'] = MLAMime::mla_pluck_table_views();
     self::$mla_media_modal_settings['mimeTypes']['detached'] = 'Unattached';
     self::$mla_media_modal_settings['months'] = self::_months_dropdown('attachment');
     $terms_options = self::_terms_options(MLA_List_Table::mla_get_taxonomy_filter_dropdown());
     self::$mla_media_modal_settings['termsClass'] = $terms_options['class'];
     self::$mla_media_modal_settings['termsValue'] = $terms_options['value'];
     self::$mla_media_modal_settings['termsText'] = $terms_options['text'];
     self::$mla_media_modal_settings['enableMimeTypes'] = 'checked' == MLAOptions::mla_get_option(MLAOptions::MLA_MEDIA_MODAL_MIMETYPES);
     self::$mla_media_modal_settings['enableMonthsDropdown'] = 'checked' == MLAOptions::mla_get_option(MLAOptions::MLA_MEDIA_MODAL_MONTHS);
     self::$mla_media_modal_settings['enableTermsDropdown'] = 'checked' == MLAOptions::mla_get_option(MLAOptions::MLA_MEDIA_MODAL_TERMS);
     self::$mla_media_modal_settings['enableSearchBox'] = 'checked' == MLAOptions::mla_get_option(MLAOptions::MLA_MEDIA_MODAL_SEARCHBOX);
     /*
      * These will be passed back to the server in the query['s'] field.
      */
     self::$mla_media_modal_settings['filterMonth'] = 0;
     self::$mla_media_modal_settings['filterTerm'] = 0;
     self::$mla_media_modal_settings['searchConnector'] = 'AND';
     self::$mla_media_modal_settings['searchFields'] = array('title', 'content');
     self::$mla_media_modal_settings['searchValue'] = '';
     $settings = array_merge($settings, array('mla_settings' => self::$mla_media_modal_settings));
     return $settings;
 }