/** * 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; }