function wpuxss_eml_enqueue_media() { global $wpuxss_eml_version, $wpuxss_eml_dir, $wp_version, $current_screen; if (!is_admin()) { return; } $media_library_mode = get_user_option('media_library_mode', get_current_user_id()) ? get_user_option('media_library_mode', get_current_user_id()) : 'grid'; $wpuxss_eml_lib_options = get_option('wpuxss_eml_lib_options'); $wpuxss_eml_tax_options = get_option('wpuxss_eml_tax_options'); $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies', array()); $media_taxonomies = get_object_taxonomies('attachment', 'object'); $media_taxonomy_names = array_keys($media_taxonomies); $media_taxonomies_ready_for_script = array(); $filter_taxonomy_names_ready_for_script = array(); $compat_taxonomies_to_hide = array(); $terms = get_terms($media_taxonomy_names, array('fields' => 'all', 'get' => 'all')); $terms_id_tt_id_ready_for_script = wpuxss_eml_get_media_term_pairs($terms, 'id=>tt_id'); $terms_id_name_ready_for_script = wpuxss_eml_get_media_term_pairs($terms, 'id=>name'); foreach ($media_taxonomies as $taxonomy) { $taxonomy_terms = array(); ob_start(); wp_terms_checklist(0, array('taxonomy' => $taxonomy->name, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Uploader_Filter())); $html = ''; if (ob_get_contents() != false) { $html = ob_get_contents(); } ob_end_clean(); $html = str_replace('}{', '},{', $html); $html = '[' . $html . ']'; $taxonomy_terms = json_decode($html, true); $media_taxonomies_ready_for_script[$taxonomy->name] = array('singular_name' => $taxonomy->labels->singular_name, 'plural_name' => $taxonomy->labels->name, 'term_list' => $taxonomy_terms, 'terms' => $terms_id_name_ready_for_script); if ((bool) $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter']) { $filter_taxonomy_names_ready_for_script[] = $taxonomy->name; } if (!(bool) $wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit']) { $compat_taxonomies_to_hide[] = $taxonomy->name; } } // generic scripts wp_enqueue_script('wpuxss-eml-media-models-script', $wpuxss_eml_dir . 'js/eml-media-models.js', array('media-models'), $wpuxss_eml_version, true); wp_enqueue_script('wpuxss-eml-media-views-script', $wpuxss_eml_dir . 'js/eml-media-views.js', array('media-views'), $wpuxss_eml_version, true); // TODO: // wp_enqueue_script( // 'wpuxss-eml-tags-box-script', // '/wp-admin/js/tags-box.js', // array(), // $wpuxss_eml_version, // true // ); $media_models_l10n = array('media_orderby' => $wpuxss_eml_lib_options['media_orderby'], 'media_order' => $wpuxss_eml_lib_options['media_order'], 'bulk_edit_nonce' => wp_create_nonce('eml-bulk-edit-nonce')); wp_localize_script('wpuxss-eml-media-models-script', 'wpuxss_eml_media_models_l10n', $media_models_l10n); $media_views_l10n = array('terms' => $terms_id_tt_id_ready_for_script, 'taxonomies' => $media_taxonomies_ready_for_script, 'filter_taxonomies' => $filter_taxonomy_names_ready_for_script, 'compat_taxonomies' => $media_taxonomy_names, 'compat_taxonomies_to_hide' => $compat_taxonomies_to_hide, 'is_tax_compat' => count($media_taxonomy_names) - count($compat_taxonomies_to_hide) > 0 ? 1 : 0, 'force_filters' => $wpuxss_eml_tax_options['force_filters'], 'wp_version' => $wp_version, 'uncategorized' => __('All Uncategorized', 'enhanced-media-library'), 'filter_by' => __('Filter by', 'enhanced-media-library'), 'in' => __('All', 'enhanced-media-library'), 'not_in' => __('Not in', 'enhanced-media-library'), 'reset_filters' => __('Reset All Filters', 'enhanced-media-library'), 'current_screen' => isset($current_screen) ? $current_screen->id : ''); wp_localize_script('wpuxss-eml-media-views-script', 'wpuxss_eml_media_views_l10n', $media_views_l10n); if (wpuxss_eml_enhance_media_shortcodes()) { wp_enqueue_script('wpuxss-eml-enhanced-medialist-script', $wpuxss_eml_dir . 'js/eml-enhanced-medialist.js', array('media-views'), $wpuxss_eml_version, true); wp_enqueue_script('wpuxss-eml-media-editor-script', $wpuxss_eml_dir . 'js/eml-media-editor.js', array('media-editor', 'media-views', 'wpuxss-eml-enhanced-medialist-script'), $wpuxss_eml_version, true); $enhanced_medialist_l10n = array('uploaded_to' => __('Uploaded to post #', 'enhanced-media-library'), 'based_on' => __('Based On', 'enhanced-media-library')); wp_localize_script('wpuxss-eml-enhanced-medialist-script', 'wpuxss_eml_enhanced_medialist_l10n', $enhanced_medialist_l10n); } // scripts for grid view :: /wp-admin/upload.php if (isset($current_screen) && 'upload' === $current_screen->base && 'grid' === $media_library_mode) { wp_enqueue_script('wpuxss-eml-media-grid-script', $wpuxss_eml_dir . 'js/eml-media-grid.js', array('media'), $wpuxss_eml_version, true); } }
function wpuxss_eml_enqueue_media() { global $wpuxss_eml_version, $wpuxss_eml_dir, $wp_version, $current_screen; if (!is_admin()) { return; } $media_library_mode = get_user_option('media_library_mode', get_current_user_id()) ? get_user_option('media_library_mode', get_current_user_id()) : 'grid'; $wpuxss_eml_tax_options = get_option('wpuxss_eml_tax_options'); // taxonomies for passing to media uploader's filter $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies'); if (empty($wpuxss_eml_taxonomies)) { $wpuxss_eml_taxonomies = array(); } $all_taxonomies_array = array(); // all attachment taxonomies $taxonomies_array = array(); // attachment taxonomies excluding those without grid view filter $compat_taxonomies_to_hide = array(); $compat_taxonomies_to_show = array(); $compat_taxonomies = array(); foreach (get_object_taxonomies('attachment', 'object') as $taxonomy) { $terms_array = array(); $terms = array(); if ($wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'] && function_exists('wp_terms_checklist')) { ob_start(); wp_terms_checklist(0, array('taxonomy' => $taxonomy->name, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Uploader_Filter())); $html = ''; if (ob_get_contents() != false) { $html = ob_get_contents(); } ob_end_clean(); $html = str_replace('}{', '},{', $html); $html = '[' . $html . ']'; $terms = json_decode($html, true); $terms = array_filter($terms); if (!empty($terms)) { $taxonomies_array[$taxonomy->name] = array('singular_name' => $taxonomy->labels->singular_name, 'plural_name' => $taxonomy->labels->name, 'term_list' => $terms); } } $all_terms = get_terms($taxonomy->name, array('fields' => 'id=>name', 'get' => 'all')); $all_taxonomies_array[$taxonomy->name] = array('singular_name' => $taxonomy->labels->singular_name, 'plural_name' => $taxonomy->labels->name, 'terms' => $all_terms); if (!$wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit']) { $compat_taxonomies_to_hide[] = $taxonomy->name; } elseif ($wpuxss_eml_tax_options['edit_all_as_hierarchical'] || $taxonomy->hierarchical) { $compat_taxonomies_to_show[] = $taxonomy->name; } $compat_taxonomies[] = $taxonomy->name; } //endforeach // generic scripts wp_enqueue_script('wpuxss-eml-media-models-script', $wpuxss_eml_dir . 'js/eml-media-models.js', array('media-models'), $wpuxss_eml_version, true); wp_enqueue_script('wpuxss-eml-media-views-script', $wpuxss_eml_dir . 'js/eml-media-views.js', array('media-views'), $wpuxss_eml_version, true); // TODO: // wp_enqueue_script( // 'wpuxss-eml-tags-box-script', // '/wp-admin/js/tags-box.js', // array(), // $wpuxss_eml_version, // true // ); $media_models_l10n = array('media_orderby' => $wpuxss_eml_tax_options['media_orderby'], 'media_order' => $wpuxss_eml_tax_options['media_order']); wp_localize_script('wpuxss-eml-media-models-script', 'wpuxss_eml_media_models_l10n', $media_models_l10n); $media_views_l10n = array('taxonomies' => $taxonomies_array, 'compat_taxonomies' => $compat_taxonomies, 'compat_taxonomies_to_hide' => $compat_taxonomies_to_hide, 'is_tax_compat' => count($compat_taxonomies_to_show) ? 1 : 0, 'force_filters' => $wpuxss_eml_tax_options['force_filters'], 'wp_version' => $wp_version, 'uncategorized' => __('All Uncategorized', 'eml'), 'filter_by' => __('Filter by ', 'eml'), 'in' => __('All ', 'eml'), 'not_in' => __('Not in ', 'eml'), 'reset_filters' => __('Reset All Filters', 'eml'), 'current_screen' => isset($current_screen) ? $current_screen->id : ''); wp_localize_script('wpuxss-eml-media-views-script', 'wpuxss_eml_media_views_l10n', $media_views_l10n); if (wpuxss_eml_enhance_media_shortcodes()) { wp_enqueue_script('wpuxss-eml-enhanced-medialist-script', $wpuxss_eml_dir . 'js/eml-enhanced-medialist.js', array('media-views'), $wpuxss_eml_version, true); wp_enqueue_script('wpuxss-eml-media-editor-script', $wpuxss_eml_dir . 'js/eml-media-editor.js', array('media-editor', 'media-views', 'wpuxss-eml-enhanced-medialist-script'), $wpuxss_eml_version, true); $enhanced_medialist_l10n = array('all_taxonomies' => $all_taxonomies_array, 'uploaded_to' => __('Uploaded to post #', 'eml'), 'based_on' => __('Based On', 'eml')); wp_localize_script('wpuxss-eml-enhanced-medialist-script', 'wpuxss_eml_enhanced_medialist_l10n', $enhanced_medialist_l10n); } // scripts for grid view :: /wp-admin/upload.php if (isset($current_screen) && 'upload' === $current_screen->base && 'grid' === $media_library_mode) { wp_enqueue_script('wpuxss-eml-media-grid-script', $wpuxss_eml_dir . 'js/eml-media-grid.js', array('media'), $wpuxss_eml_version, true); } }