Enhanced Media Library - Version 2.0.4

Version Description

Release Date - March 05, 2015

Download this release

Release Info

Developer webbistro
Plugin Icon 128x128 Enhanced Media Library
Version 2.0.4
Comparing to
See all releases

Code changes from version 2.0.3 to 2.0.4

core/class-eml-media-list-table.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * EML custom media table
5
+ *
6
+ * Extends wp-admin/includes/class-wp-media-list-table.php
7
+ *
8
+ * Features added:
9
+ * All Uncategorized
10
+ *
11
+ * @since 2.0.4
12
+ * @created 21/02/15
13
+ */
14
+
15
+ class WPUXSS_EML_Media_List_Table extends WP_Media_List_Table {
16
+
17
+ public function __construct( $args = array() )
18
+ {
19
+ $this->uncategorized = ( isset( $_REQUEST['attachment-filter'] ) && 'uncategorized' === $_REQUEST['attachment-filter'] );
20
+
21
+ parent::__construct();
22
+ }
23
+
24
+
25
+ protected function get_views()
26
+ {
27
+ global $wpdb, $post_mime_types, $avail_post_mime_types;
28
+
29
+ $type_links = array();
30
+ $_num_posts = (array) wp_count_attachments();
31
+ $_total_posts = array_sum($_num_posts) - $_num_posts['trash'];
32
+ $total_orphans = $wpdb->get_var( "SELECT COUNT( * ) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status != 'trash' AND post_parent < 1" );
33
+ $matches = wp_match_mime_types(array_keys($post_mime_types), array_keys($_num_posts));
34
+ foreach ( $matches as $type => $reals )
35
+ foreach ( $reals as $real )
36
+ $num_posts[$type] = ( isset( $num_posts[$type] ) ) ? $num_posts[$type] + $_num_posts[$real] : $_num_posts[$real];
37
+
38
+ $selected = empty( $_GET['attachment-filter'] ) ? ' selected="selected"' : '';
39
+ $type_links['all'] = "<option value=''$selected>" . sprintf( _nx( 'All (%s)', 'All (%s)', $_total_posts, 'uploaded files' ), number_format_i18n( $_total_posts ) ) . '</option>';
40
+ foreach ( $post_mime_types as $mime_type => $label ) {
41
+ if ( !wp_match_mime_types($mime_type, $avail_post_mime_types) )
42
+ continue;
43
+
44
+ $selected = '';
45
+ if ( !empty( $_GET['attachment-filter'] ) && strpos( $_GET['attachment-filter'], 'post_mime_type:' ) === 0 && wp_match_mime_types( $mime_type, str_replace( 'post_mime_type:', '', $_GET['attachment-filter'] ) ) )
46
+ $selected = ' selected="selected"';
47
+ if ( !empty( $num_posts[$mime_type] ) )
48
+ $type_links[$mime_type] = '<option value="post_mime_type:' . sanitize_mime_type( $mime_type ) . '"' . $selected . '>' . sprintf( translate_nooped_plural( $label[2], $num_posts[$mime_type] ), number_format_i18n( $num_posts[$mime_type] )) . '</option>';
49
+ }
50
+ $type_links['detached'] = '<option value="detached"' . ( $this->detached ? ' selected="selected"' : '' ) . '>' . sprintf( _nx( 'Unattached (%s)', 'Unattached (%s)', $total_orphans, 'detached files' ), number_format_i18n( $total_orphans ) ) . '</option>';
51
+
52
+ $type_links['uncategorized'] = '<option value="uncategorized"' . ( $this->uncategorized ? ' selected="selected"' : '' ) . '>' . __( 'All Uncategorized', 'eml' ) . '</option>';
53
+
54
+ if ( !empty($_num_posts['trash']) )
55
+ $type_links['trash'] = '<option value="trash"' . ( (isset($_GET['attachment-filter']) && $_GET['attachment-filter'] == 'trash' ) ? ' selected="selected"' : '') . '>' . sprintf( _nx( 'Trash (%s)', 'Trash (%s)', $_num_posts['trash'], 'uploaded files' ), number_format_i18n( $_num_posts['trash'] ) ) . '</option>';
56
+
57
+ return $type_links;
58
+ }
59
+
60
+ protected function extra_tablenav( $which )
61
+ {
62
+ if ( 'bar' !== $which ) {
63
+ return;
64
+ }
65
+ ?>
66
+ <div class="actions">
67
+ <?php
68
+ if ( ! is_singular() ) {
69
+ if ( ! $this->is_trash ) {
70
+ $this->months_dropdown( 'attachment' );
71
+ }
72
+
73
+ /** This action is documented in wp-admin/includes/class-wp-posts-list-table.php */
74
+ do_action( 'restrict_manage_posts' );
75
+ submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) );
76
+
77
+ submit_button( __( 'Reset All Filters' ), 'button', 'filter_action', false, array( 'id' => 'eml-reset-filters-query-submit', 'disabled' => 'disabled' ) );
78
+ }
79
+
80
+ if ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
81
+ submit_button( __( 'Empty Trash' ), 'apply', 'delete_all', false );
82
+ }
83
+ ?>
84
+ </div>
85
+ <?php
86
+ }
87
+
88
+ }
core/eml-upload.php ADDED
@@ -0,0 +1,306 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * EML custom upload.php
5
+ *
6
+ * Based on wp-admin/upload.php
7
+ *
8
+ * Uses custom media table class WPUXSS_EML_Media_List_Table
9
+ *
10
+ * @since 2.0.4
11
+ * @created 21/02/15
12
+ */
13
+
14
+
15
+ // EML customization here
16
+ require_once( ABSPATH . 'wp-admin/admin.php' );
17
+
18
+ if ( !current_user_can('upload_files') )
19
+ wp_die( __( 'You do not have permission to upload files.' ) );
20
+
21
+ $mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
22
+ $modes = array( 'grid', 'list' );
23
+
24
+ if ( isset( $_GET['mode'] ) && in_array( $_GET['mode'], $modes ) ) {
25
+ $mode = $_GET['mode'];
26
+ update_user_option( get_current_user_id(), 'media_library_mode', $mode );
27
+ }
28
+
29
+ if ( 'grid' === $mode ) {
30
+ wp_enqueue_media();
31
+ wp_enqueue_script( 'media-grid' );
32
+ wp_enqueue_script( 'media' );
33
+ wp_localize_script( 'media-grid', '_wpMediaGridSettings', array(
34
+ 'adminUrl' => parse_url( self_admin_url(), PHP_URL_PATH ),
35
+ ) );
36
+
37
+ get_current_screen()->add_help_tab( array(
38
+ 'id' => 'overview',
39
+ 'title' => __( 'Overview' ),
40
+ 'content' =>
41
+ '<p>' . __( 'All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first.' ) . '</p>' .
42
+ '<p>' . __( 'You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media.' ) . '</p>' .
43
+ '<p>' . __( 'To delete media items, click the Bulk Select button at the top of the screen. Select any items you wish to delete, then click the Delete Selected button. Clicking the Cancel Selection button takes you back to viewing your media.' ) . '</p>'
44
+ ) );
45
+
46
+ get_current_screen()->add_help_tab( array(
47
+ 'id' => 'attachment-details',
48
+ 'title' => __( 'Attachment Details' ),
49
+ 'content' =>
50
+ '<p>' . __( 'Clicking an item will display an Attachment Details dialog, which allows you to preview media and make quick edits. Any changes you make to the attachment details will be automatically saved.' ) . '</p>' .
51
+ '<p>' . __( 'Use the arrow buttons at the top of the dialog, or the left and right arrow keys on your keyboard, to navigate between media items quickly.' ) . '</p>' .
52
+ '<p>' . __( 'You can also delete individual items and access the extended edit screen from the details dialog.' ) . '</p>'
53
+ ) );
54
+
55
+ get_current_screen()->set_help_sidebar(
56
+ '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
57
+ '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
58
+ '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
59
+ );
60
+
61
+ $title = __('Media Library');
62
+ $parent_file = 'upload.php';
63
+
64
+ require_once( ABSPATH . 'wp-admin/admin-header.php' );
65
+ ?>
66
+ <div class="wrap" id="wp-media-grid">
67
+ <h2>
68
+ <?php
69
+ echo esc_html( $title );
70
+ if ( current_user_can( 'upload_files' ) ) { ?>
71
+ <a href="media-new.php" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'file' ); ?></a><?php
72
+ }
73
+ ?>
74
+ </h2>
75
+ <div class="error hide-if-js">
76
+ <p><?php _e( 'The grid view for the Media Library requires JavaScript. <a href="upload.php?mode=list">Switch to the list view</a>.' ); ?></p>
77
+ </div>
78
+ </div>
79
+ <?php
80
+ include( ABSPATH . 'wp-admin/admin-footer.php' );
81
+ exit;
82
+ }
83
+
84
+ // EML customization here
85
+ if ( isset( $GLOBALS['hook_suffix'] ) )
86
+ $args['screen'] = get_current_screen();
87
+ else
88
+ $args['screen'] = null;
89
+
90
+ $wp_list_table = new WPUXSS_EML_Media_List_Table( $args );
91
+ // EML customization end
92
+
93
+ $pagenum = $wp_list_table->get_pagenum();
94
+
95
+ // Handle bulk actions
96
+ $doaction = $wp_list_table->current_action();
97
+
98
+ if ( $doaction ) {
99
+ check_admin_referer('bulk-media');
100
+
101
+ if ( 'delete_all' == $doaction ) {
102
+ $post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type='attachment' AND post_status = 'trash'" );
103
+ $doaction = 'delete';
104
+ } elseif ( isset( $_REQUEST['media'] ) ) {
105
+ $post_ids = $_REQUEST['media'];
106
+ } elseif ( isset( $_REQUEST['ids'] ) ) {
107
+ $post_ids = explode( ',', $_REQUEST['ids'] );
108
+ }
109
+
110
+ $location = 'upload.php';
111
+ if ( $referer = wp_get_referer() ) {
112
+ if ( false !== strpos( $referer, 'upload.php' ) )
113
+ $location = remove_query_arg( array( 'trashed', 'untrashed', 'deleted', 'message', 'ids', 'posted' ), $referer );
114
+ }
115
+
116
+ switch ( $doaction ) {
117
+ case 'attach':
118
+ $parent_id = (int) $_REQUEST['found_post_id'];
119
+ if ( !$parent_id )
120
+ return;
121
+
122
+ $parent = get_post( $parent_id );
123
+ if ( !current_user_can( 'edit_post', $parent_id ) )
124
+ wp_die( __( 'You are not allowed to edit this post.' ) );
125
+
126
+ $attach = array();
127
+ foreach ( (array) $_REQUEST['media'] as $att_id ) {
128
+ $att_id = (int) $att_id;
129
+
130
+ if ( !current_user_can( 'edit_post', $att_id ) )
131
+ continue;
132
+
133
+ $attach[] = $att_id;
134
+ }
135
+
136
+ if ( ! empty( $attach ) ) {
137
+ $attach_string = implode( ',', $attach );
138
+ $attached = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $attach_string )", $parent_id ) );
139
+ foreach ( $attach as $att_id ) {
140
+ clean_attachment_cache( $att_id );
141
+ }
142
+ }
143
+
144
+ if ( isset( $attached ) ) {
145
+ $location = 'upload.php';
146
+ if ( $referer = wp_get_referer() ) {
147
+ if ( false !== strpos( $referer, 'upload.php' ) )
148
+ $location = $referer;
149
+ }
150
+
151
+ $location = add_query_arg( array( 'attached' => $attached ) , $location );
152
+ wp_redirect( $location );
153
+ exit;
154
+ }
155
+ break;
156
+ case 'trash':
157
+ if ( !isset( $post_ids ) )
158
+ break;
159
+ foreach ( (array) $post_ids as $post_id ) {
160
+ if ( !current_user_can( 'delete_post', $post_id ) )
161
+ wp_die( __( 'You are not allowed to move this post to the trash.' ) );
162
+
163
+ if ( !wp_trash_post( $post_id ) )
164
+ wp_die( __( 'Error in moving to trash.' ) );
165
+ }
166
+ $location = add_query_arg( array( 'trashed' => count( $post_ids ), 'ids' => join( ',', $post_ids ) ), $location );
167
+ break;
168
+ case 'untrash':
169
+ if ( !isset( $post_ids ) )
170
+ break;
171
+ foreach ( (array) $post_ids as $post_id ) {
172
+ if ( !current_user_can( 'delete_post', $post_id ) )
173
+ wp_die( __( 'You are not allowed to move this post out of the trash.' ) );
174
+
175
+ if ( !wp_untrash_post( $post_id ) )
176
+ wp_die( __( 'Error in restoring from trash.' ) );
177
+ }
178
+ $location = add_query_arg( 'untrashed', count( $post_ids ), $location );
179
+ break;
180
+ case 'delete':
181
+ if ( !isset( $post_ids ) )
182
+ break;
183
+ foreach ( (array) $post_ids as $post_id_del ) {
184
+ if ( !current_user_can( 'delete_post', $post_id_del ) )
185
+ wp_die( __( 'You are not allowed to delete this post.' ) );
186
+
187
+ if ( !wp_delete_attachment( $post_id_del ) )
188
+ wp_die( __( 'Error in deleting.' ) );
189
+ }
190
+ $location = add_query_arg( 'deleted', count( $post_ids ), $location );
191
+ break;
192
+ }
193
+
194
+ wp_redirect( $location );
195
+ exit;
196
+ } elseif ( ! empty( $_GET['_wp_http_referer'] ) ) {
197
+ wp_redirect( remove_query_arg( array( '_wp_http_referer', '_wpnonce' ), wp_unslash( $_SERVER['REQUEST_URI'] ) ) );
198
+ exit;
199
+ }
200
+
201
+ $wp_list_table->prepare_items();
202
+
203
+ $title = __('Media Library');
204
+ $parent_file = 'upload.php';
205
+
206
+ wp_enqueue_script( 'media' );
207
+
208
+ add_screen_option( 'per_page', array('label' => _x( 'Media items', 'items per page (screen options)' )) );
209
+
210
+ get_current_screen()->add_help_tab( array(
211
+ 'id' => 'overview',
212
+ 'title' => __('Overview'),
213
+ 'content' =>
214
+ '<p>' . __( 'All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen.' ) . '</p>' .
215
+ '<p>' . __( 'You can narrow the list by file type/status using the text link filters at the top of the screen. You also can refine the list by date using the dropdown menu above the media table.' ) . '</p>' .
216
+ '<p>' . __( 'You can view your media in a simple visual grid or a list with columns. Switch between these views using the icons to the left above the media.' ) . '</p>'
217
+ ) );
218
+ get_current_screen()->add_help_tab( array(
219
+ 'id' => 'actions-links',
220
+ 'title' => __('Available Actions'),
221
+ 'content' =>
222
+ '<p>' . __( 'Hovering over a row reveals action links: Edit, Delete Permanently, and View. Clicking Edit or on the media file&#8217;s name displays a simple screen to edit that individual file&#8217;s metadata. Clicking Delete Permanently will delete the file from the media library (as well as from any posts to which it is currently attached). View will take you to the display page for that file.' ) . '</p>'
223
+ ) );
224
+ get_current_screen()->add_help_tab( array(
225
+ 'id' => 'attaching-files',
226
+ 'title' => __('Attaching Files'),
227
+ 'content' =>
228
+ '<p>' . __( 'If a media file has not been attached to any post, you will see that in the Attached To column, and can click on Attach File to launch a small popup that will allow you to search for a post and attach the file.' ) . '</p>'
229
+ ) );
230
+
231
+ get_current_screen()->set_help_sidebar(
232
+ '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
233
+ '<p>' . __( '<a href="http://codex.wordpress.org/Media_Library_Screen" target="_blank">Documentation on Media Library</a>' ) . '</p>' .
234
+ '<p>' . __( '<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
235
+ );
236
+
237
+ require_once( ABSPATH . 'wp-admin/admin-header.php' );
238
+ ?>
239
+
240
+ <div class="wrap">
241
+ <h2>
242
+ <?php
243
+ echo esc_html( $title );
244
+ if ( current_user_can( 'upload_files' ) ) { ?>
245
+ <a href="media-new.php" class="add-new-h2"><?php echo esc_html_x('Add New', 'file'); ?></a><?php
246
+ }
247
+ if ( ! empty( $_REQUEST['s'] ) )
248
+ printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() ); ?>
249
+ </h2>
250
+
251
+ <?php
252
+ $message = '';
253
+ if ( ! empty( $_GET['posted'] ) ) {
254
+ $message = __('Media attachment updated.');
255
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']);
256
+ }
257
+
258
+ if ( ! empty( $_GET['attached'] ) && $attached = absint( $_GET['attached'] ) ) {
259
+ $message = sprintf( _n('Reattached %d attachment.', 'Reattached %d attachments.', $attached), $attached );
260
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('attached'), $_SERVER['REQUEST_URI']);
261
+ }
262
+
263
+ if ( ! empty( $_GET['deleted'] ) && $deleted = absint( $_GET['deleted'] ) ) {
264
+ $message = sprintf( _n( 'Media attachment permanently deleted.', '%d media attachments permanently deleted.', $deleted ), number_format_i18n( $_GET['deleted'] ) );
265
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('deleted'), $_SERVER['REQUEST_URI']);
266
+ }
267
+
268
+ if ( ! empty( $_GET['trashed'] ) && $trashed = absint( $_GET['trashed'] ) ) {
269
+ $message = sprintf( _n( 'Media attachment moved to the trash.', '%d media attachments moved to the trash.', $trashed ), number_format_i18n( $_GET['trashed'] ) );
270
+ $message .= ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.(isset($_GET['ids']) ? $_GET['ids'] : ''), "bulk-media" ) ) . '">' . __('Undo') . '</a>';
271
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('trashed'), $_SERVER['REQUEST_URI']);
272
+ }
273
+
274
+ if ( ! empty( $_GET['untrashed'] ) && $untrashed = absint( $_GET['untrashed'] ) ) {
275
+ $message = sprintf( _n( 'Media attachment restored from the trash.', '%d media attachments restored from the trash.', $untrashed ), number_format_i18n( $_GET['untrashed'] ) );
276
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('untrashed'), $_SERVER['REQUEST_URI']);
277
+ }
278
+
279
+ $messages[1] = __('Media attachment updated.');
280
+ $messages[2] = __('Media permanently deleted.');
281
+ $messages[3] = __('Error saving media attachment.');
282
+ $messages[4] = __('Media moved to the trash.') . ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.(isset($_GET['ids']) ? $_GET['ids'] : ''), "bulk-media" ) ) . '">' . __('Undo') . '</a>';
283
+ $messages[5] = __('Media restored from the trash.');
284
+
285
+ if ( ! empty( $_GET['message'] ) && isset( $messages[ $_GET['message'] ] ) ) {
286
+ $message = $messages[ $_GET['message'] ];
287
+ $_SERVER['REQUEST_URI'] = remove_query_arg(array('message'), $_SERVER['REQUEST_URI']);
288
+ }
289
+
290
+ if ( !empty($message) ) { ?>
291
+ <div id="message" class="updated"><p><?php echo $message; ?></p></div>
292
+ <?php } ?>
293
+
294
+ <form id="posts-filter" action="" method="get">
295
+
296
+ <?php $wp_list_table->views(); ?>
297
+
298
+ <?php $wp_list_table->display(); ?>
299
+
300
+ <div id="ajax-response"></div>
301
+ <?php find_posts_div(); ?>
302
+ </form>
303
+ </div>
304
+
305
+ <?php
306
+ include( ABSPATH . 'wp-admin/admin-footer.php' );
core/mime-types.php CHANGED
@@ -11,45 +11,48 @@
11
  * @created 15/10/13
12
  */
13
 
14
- function wpuxss_eml_mimes_validate($input)
15
- {
16
- if ( !$input ) $input = array();
17
 
18
- if ( isset($_REQUEST['wpuxss_eml_restore_mimes_backup']) )
19
- {
20
- $_REQUEST['_wp_http_referer'] .= '&settings-restored=true';
21
- $wpuxss_eml_mimes_backup = get_option('wpuxss_eml_mimes_backup');
22
- $input = $wpuxss_eml_mimes_backup;
23
- }
24
- else
25
- {
26
- foreach ( $input as $type => $mime )
27
  {
28
- $sanitized_type = wpuxss_eml_sanitize_extension($type);
29
-
30
- if ( $sanitized_type !== $type )
 
 
 
 
31
  {
32
- $input[$sanitized_type] = $input[$type];
33
- unset($input[$type]);
34
- $type = $sanitized_type;
35
- }
36
-
37
- if ( !isset($input[$type]['filter']) )
38
- $input[$type]['filter'] = 0;
39
-
40
- if ( !isset($input[$type]['upload']) )
41
- $input[$type]['upload'] = 0;
42
 
43
- $input[$type]['filter'] = intval($input[$type]['filter']);
44
- $input[$type]['upload'] = intval($input[$type]['upload']);
45
-
46
- $input[$type]['mime'] = sanitize_mime_type($mime['mime']);
47
- $input[$type]['singular'] = sanitize_text_field($mime['singular']);
48
- $input[$type]['plural'] = sanitize_text_field($mime['plural']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  }
 
 
50
  }
51
-
52
- return $input;
53
  }
54
 
55
 
@@ -64,12 +67,15 @@ function wpuxss_eml_mimes_validate($input)
64
  * @created 24/10/13
65
  */
66
 
67
- function wpuxss_eml_sanitize_extension( $key )
68
- {
69
- $raw_key = $key;
70
- $key = strtolower( $key );
71
- $key = preg_replace( '/[^a-z0-9|]/', '', $key );
72
- return apply_filters( 'sanitize_key', $key, $raw_key );
 
 
 
73
  }
74
 
75
 
@@ -84,24 +90,27 @@ function wpuxss_eml_sanitize_extension( $key )
84
 
85
  add_filter('post_mime_types', 'wpuxss_eml_post_mime_types');
86
 
87
- function wpuxss_eml_post_mime_types( $post_mime_types )
88
- {
89
- $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
90
 
91
- if ( !empty($wpuxss_eml_mimes) )
92
- {
93
- foreach ( $wpuxss_eml_mimes as $type => $mime )
 
 
94
  {
95
- if ( $mime['filter'] == 1 )
96
- $post_mime_types[$mime['mime']] = array(
97
- $mime['singular'],
98
- 'Manage ' . $mime['singular'],
99
- _n_noop($mime['singular'] . ' <span class="count">(%s)</span>', $mime['plural'] . ' <span class="count">(%s)</span>')
100
- );
 
 
 
101
  }
 
 
102
  }
103
-
104
- return $post_mime_types;
105
  }
106
 
107
 
@@ -116,28 +125,31 @@ function wpuxss_eml_post_mime_types( $post_mime_types )
116
 
117
  add_filter('upload_mimes', 'wpuxss_eml_upload_mimes');
118
 
119
- function wpuxss_eml_upload_mimes ( $existing_mimes=array() )
120
- {
121
- $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
122
 
123
- if ( !empty($wpuxss_eml_mimes) )
124
- {
125
- foreach ( $wpuxss_eml_mimes as $type => $mime )
126
  {
127
- if ( $mime['upload'] == 1 )
128
  {
129
- if ( !isset($existing_mimes[$type]) )
130
- $existing_mimes[$type] = $mime['mime'];
 
 
 
 
 
 
 
 
131
  }
132
- else
133
- {
134
- if ( isset($existing_mimes[$type]) )
135
- unset($existing_mimes[$type]);
136
- }
137
  }
 
 
138
  }
139
-
140
- return $existing_mimes;
141
  }
142
 
143
 
@@ -152,26 +164,29 @@ function wpuxss_eml_upload_mimes ( $existing_mimes=array() )
152
 
153
  add_filter( 'mime_types', 'wpuxss_eml_mime_types' );
154
 
155
- function wpuxss_eml_mime_types( $existing_mimes )
156
- {
157
- $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
158
 
159
- if ( !empty($wpuxss_eml_mimes) )
160
- {
161
- foreach ( $wpuxss_eml_mimes as $type => $mime )
162
- {
163
- if ( !isset($existing_mimes[$type]) )
164
- $existing_mimes[$type] = $mime['mime'];
165
- }
166
 
167
- foreach ( $existing_mimes as $type => $mime )
168
  {
169
- if ( !isset($wpuxss_eml_mimes[$type]) && isset($existing_mimes[$type]) )
170
- unset($existing_mimes[$type]);
 
 
 
 
 
 
 
 
 
171
  }
 
 
172
  }
173
-
174
- return $existing_mimes;
175
  }
176
 
177
  ?>
11
  * @created 15/10/13
12
  */
13
 
14
+ if ( ! function_exists( 'wpuxss_eml_mimes_validate' ) ) {
 
 
15
 
16
+ function wpuxss_eml_mimes_validate($input) {
17
+
18
+ if ( !$input ) $input = array();
19
+
20
+ if ( isset($_REQUEST['wpuxss_eml_restore_mimes_backup']) )
 
 
 
 
21
  {
22
+ $_REQUEST['_wp_http_referer'] .= '&settings-restored=true';
23
+ $wpuxss_eml_mimes_backup = get_option('wpuxss_eml_mimes_backup');
24
+ $input = $wpuxss_eml_mimes_backup;
25
+ }
26
+ else
27
+ {
28
+ foreach ( $input as $type => $mime )
29
  {
30
+ $sanitized_type = wpuxss_eml_sanitize_extension($type);
 
 
 
 
 
 
 
 
 
31
 
32
+ if ( $sanitized_type !== $type )
33
+ {
34
+ $input[$sanitized_type] = $input[$type];
35
+ unset($input[$type]);
36
+ $type = $sanitized_type;
37
+ }
38
+
39
+ if ( !isset($input[$type]['filter']) )
40
+ $input[$type]['filter'] = 0;
41
+
42
+ if ( !isset($input[$type]['upload']) )
43
+ $input[$type]['upload'] = 0;
44
+
45
+ $input[$type]['filter'] = intval($input[$type]['filter']);
46
+ $input[$type]['upload'] = intval($input[$type]['upload']);
47
+
48
+ $input[$type]['mime'] = sanitize_mime_type($mime['mime']);
49
+ $input[$type]['singular'] = sanitize_text_field($mime['singular']);
50
+ $input[$type]['plural'] = sanitize_text_field($mime['plural']);
51
+ }
52
  }
53
+
54
+ return $input;
55
  }
 
 
56
  }
57
 
58
 
67
  * @created 24/10/13
68
  */
69
 
70
+ if ( ! function_exists( 'wpuxss_eml_sanitize_extension' ) ) {
71
+
72
+ function wpuxss_eml_sanitize_extension( $key ) {
73
+
74
+ $raw_key = $key;
75
+ $key = strtolower( $key );
76
+ $key = preg_replace( '/[^a-z0-9|]/', '', $key );
77
+ return apply_filters( 'sanitize_key', $key, $raw_key );
78
+ }
79
  }
80
 
81
 
90
 
91
  add_filter('post_mime_types', 'wpuxss_eml_post_mime_types');
92
 
93
+ if ( ! function_exists( 'wpuxss_eml_post_mime_types' ) ) {
 
 
94
 
95
+ function wpuxss_eml_post_mime_types( $post_mime_types ) {
96
+
97
+ $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
98
+
99
+ if ( !empty($wpuxss_eml_mimes) )
100
  {
101
+ foreach ( $wpuxss_eml_mimes as $type => $mime )
102
+ {
103
+ if ( $mime['filter'] == 1 )
104
+ $post_mime_types[$mime['mime']] = array(
105
+ $mime['singular'],
106
+ 'Manage ' . $mime['singular'],
107
+ _n_noop($mime['singular'] . ' <span class="count">(%s)</span>', $mime['plural'] . ' <span class="count">(%s)</span>')
108
+ );
109
+ }
110
  }
111
+
112
+ return $post_mime_types;
113
  }
 
 
114
  }
115
 
116
 
125
 
126
  add_filter('upload_mimes', 'wpuxss_eml_upload_mimes');
127
 
128
+ if ( ! function_exists( 'wpuxss_eml_upload_mimes' ) ) {
129
+
130
+ function wpuxss_eml_upload_mimes ( $existing_mimes=array() ) {
131
 
132
+ $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
133
+
134
+ if ( !empty($wpuxss_eml_mimes) )
135
  {
136
+ foreach ( $wpuxss_eml_mimes as $type => $mime )
137
  {
138
+ if ( $mime['upload'] == 1 )
139
+ {
140
+ if ( !isset($existing_mimes[$type]) )
141
+ $existing_mimes[$type] = $mime['mime'];
142
+ }
143
+ else
144
+ {
145
+ if ( isset($existing_mimes[$type]) )
146
+ unset($existing_mimes[$type]);
147
+ }
148
  }
 
 
 
 
 
149
  }
150
+
151
+ return $existing_mimes;
152
  }
 
 
153
  }
154
 
155
 
164
 
165
  add_filter( 'mime_types', 'wpuxss_eml_mime_types' );
166
 
167
+ if ( ! function_exists( 'wpuxss_eml_mime_types' ) ) {
 
 
168
 
169
+ function wpuxss_eml_mime_types( $existing_mimes ) {
170
+
171
+ $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
 
 
 
 
172
 
173
+ if ( !empty($wpuxss_eml_mimes) )
174
  {
175
+ foreach ( $wpuxss_eml_mimes as $type => $mime )
176
+ {
177
+ if ( !isset($existing_mimes[$type]) )
178
+ $existing_mimes[$type] = $mime['mime'];
179
+ }
180
+
181
+ foreach ( $existing_mimes as $type => $mime )
182
+ {
183
+ if ( !isset($wpuxss_eml_mimes[$type]) && isset($existing_mimes[$type]) )
184
+ unset($existing_mimes[$type]);
185
+ }
186
  }
187
+
188
+ return $existing_mimes;
189
  }
 
 
190
  }
191
 
192
  ?>
core/options-pages.php CHANGED
@@ -12,28 +12,37 @@
12
 
13
  add_action( 'admin_init', 'wpuxss_eml_on_admin_init' );
14
 
15
- function wpuxss_eml_on_admin_init()
16
- {
17
-
18
- // plugin settings: taxonomies
19
- register_setting(
20
- 'wpuxss_eml_taxonomies', //option_group
21
- 'wpuxss_eml_taxonomies', //option_name
22
- 'wpuxss_eml_taxonomies_validate' //sanitize_callback
23
- );
24
-
25
- // plugin settings: mime types
26
- register_setting(
27
- 'wpuxss_eml_mimes', //option_group
28
- 'wpuxss_eml_mimes', //option_name
29
- 'wpuxss_eml_mimes_validate' //sanitize_callback
30
- );
31
-
32
- // plugin settings: mime types backup
33
- register_setting(
34
- 'wpuxss_eml_mimes_backup', //option_group
35
- 'wpuxss_eml_mimes_backup' //option_name
36
- );
 
 
 
 
 
 
 
 
 
37
  }
38
 
39
 
@@ -48,35 +57,50 @@ function wpuxss_eml_on_admin_init()
48
 
49
  add_action('admin_menu', 'wpuxss_eml_admin_menu');
50
 
51
- function wpuxss_eml_admin_menu()
52
- {
53
- add_utility_page(
54
- __('Media Settings','eml'), //page_title
55
- __('Media Settings','eml'), //menu_title
56
- 'manage_options', //capability
57
- 'eml-taxonomies-options', //page
58
- 'wpuxss_eml_print_taxonomies_options' //callback
59
- );
60
-
61
- $eml_taxonomies_options_suffix = add_submenu_page(
62
- 'eml-taxonomies-options',
63
- __('Taxonomies','eml'),
64
- __('Taxonomies','eml'),
65
- 'manage_options',
66
- 'eml-taxonomies-options'
67
- );
68
 
69
- $eml_mimetype_options_suffix = add_submenu_page(
70
- 'eml-taxonomies-options',
71
- __('MIME Types','eml'),
72
- __('MIME Types','eml'),
73
- 'manage_options',
74
- 'eml-mimetype-options',
75
- 'wpuxss_eml_print_mimetypes_options'
76
- );
77
-
78
- add_action('admin_print_scripts-' . $eml_taxonomies_options_suffix, 'wpuxss_eml_admin_settings_pages_scripts');
79
- add_action('admin_print_scripts-' . $eml_mimetype_options_suffix, 'wpuxss_eml_admin_settings_pages_scripts');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  }
81
 
82
 
@@ -89,48 +113,52 @@ function wpuxss_eml_admin_menu()
89
  * @created 28/10/13
90
  */
91
 
92
- function wpuxss_eml_admin_settings_pages_scripts()
93
- {
94
- global $wpuxss_eml_version,
95
- $wpuxss_eml_dir;
96
-
97
- wp_enqueue_script(
98
- 'wpuxss-eml-options-script',
99
- $wpuxss_eml_dir . 'js/eml-options.js',
100
- array('jquery'),
101
- $wpuxss_eml_version,
102
- true
103
- );
104
-
105
- $i18n_data = array(
106
- 'edit' => __( 'Edit', 'eml' ),
107
- 'close' => __( 'Close', 'eml' ),
108
- 'view' => __( 'View', 'eml' ),
109
- 'update' => __( 'Update', 'eml' ),
110
- 'add_new' => __( 'Add New', 'eml' ),
111
- 'new' => __( 'New', 'eml' ),
112
- 'name' => __( 'Name', 'eml' ),
113
- 'parent' => __( 'Parent', 'eml' ),
114
- 'all' => __( 'All', 'eml' ),
115
- 'search' => __( 'Search', 'eml' ),
116
 
117
- 'tax_deletion_confirm' => __( 'Taxonomy will be deleted permanently! Your media files will remain intacted, but all the connections with this taxonomy and its terms will be lost.', 'eml' ),
118
- 'tax_error_duplicate' => __( 'There is already a taxonomy with the same name. Please chose other one.', 'eml' ),
119
- 'tax_new' => __( 'New Taxonomy', 'eml' ),
120
- 'tax_error_empty_both' => __( 'Please choose Singular and Plural names for all your new taxomonies.', 'eml' ),
121
- 'tax_error_empty_singular' => __( 'Please choose Singilar name for all your new taxomonies.', 'eml' ),
122
- 'tax_error_empty_plural' => __( 'Please choose Plural Name for all your new taxomonies.', 'eml' ),
123
 
124
- 'mime_deletion_confirm' => __( 'Warning! All your custom MIME Types will be deleted by this operation.', 'eml' ),
125
- 'mime_error_empty_fields' => __( 'Please fill into all fields.', 'eml' ),
126
- 'mime_error_duplicate' => __( 'Duplicate extensions or MIME types. Please chose other one.', 'eml' )
127
- );
128
-
129
- wp_localize_script(
130
- 'wpuxss-eml-options-script',
131
- 'wpuxss_eml_i18n_data',
132
- $i18n_data
133
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  }
135
 
136
 
@@ -144,265 +172,314 @@ function wpuxss_eml_admin_settings_pages_scripts()
144
  * @created 28/09/13
145
  */
146
 
147
- function wpuxss_eml_print_taxonomies_options()
148
- {
149
- if (!current_user_can('manage_options'))
150
- wp_die( __('You do not have sufficient permissions to access this page.','eml') );
151
-
152
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
153
- $taxonomies = get_taxonomies(array(),'names');
154
- ?>
155
 
156
- <div id="wpuxss-eml-global-options-wrap" class="wrap">
157
- <?php screen_icon('options-general'); ?>
158
- <h2><?php _e('Taxonomies','eml'); ?></h2>
159
-
160
- <?php settings_errors(); ?>
161
 
162
- <div id="poststuff">
 
 
 
 
 
163
 
164
- <div id="post-body" class="metabox-holder columns-2">
165
-
166
- <div id="postbox-container-2" class="postbox-container">
167
-
168
- <form id="wpuxss-eml-form-taxonomies" method="post" action="options.php">
169
-
170
- <?php settings_fields( 'wpuxss_eml_taxonomies' ); ?>
171
-
172
- <div class="postbox">
173
-
174
- <h3 class="hndle"><?php _e('Media Taxonomies','eml'); ?></h3>
175
-
176
- <div class="inside">
 
 
177
 
178
- <p><?php _e('Assign following taxonomies to Media Library:','eml'); ?></p>
179
 
180
- <?php
181
 
182
- $html = '';
183
- foreach ( get_taxonomies(array(),'object') as $taxonomy )
184
- {
185
- if ( (in_array('attachment',$taxonomy->object_type) && count($taxonomy->object_type) == 1) || empty($taxonomy->object_type) )
 
 
 
186
  {
187
- $assigned = intval($wpuxss_eml_taxonomies[$taxonomy->name]['assigned']);
188
- $eml_media = intval($wpuxss_eml_taxonomies[$taxonomy->name]['eml_media']);
189
-
190
- if ($eml_media)
191
- $li_class = 'wpuxss-eml-taxonomy';
192
- else
193
- $li_class = 'wpuxss-non-eml-taxonomy';
194
-
195
- $html .= '<li class="' . $li_class . '" id="' . $taxonomy->name . '">';
196
-
197
- $html .= '<input class="wpuxss-eml-assigned" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][assigned]" type="checkbox" value="1" ' . checked( true, $assigned, false ) . ' title="' . __('Assign Taxonomy','eml') . '" />';
198
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][eml_media]" type="hidden" value="' . $eml_media . '" />';
199
- $html .= ' <label>' . $taxonomy->label . '</label>';
200
- $html .= '<a class="wpuxss-eml-button-edit" title="' . __('Edit Taxonomy','eml') . '" href="javascript:;">' . __('Edit','eml') . ' &darr;</a>';
201
- if ( $wpuxss_eml_taxonomies[$taxonomy->name]['eml_media'] == 1 )
202
  {
203
- $html .= '<a class="wpuxss-eml-button-remove" title="' . __('Delete Taxonomy','eml') . '" href="javascript:;">&ndash;</a>';
204
-
205
- $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
206
 
207
- $html .= '<div class="wpuxss-eml-labels-edit">';
208
- $html .= '<h4>' . __('Labels','eml') . '</h4>';
209
- $html .= '<ul>';
210
- $html .= '<li><label>' . __('Singular','eml') . '</label><input type="text" class="wpuxss-eml-singular_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][singular_name]" value="' . esc_html($taxonomy->labels->singular_name) . '" /></li>';
211
- $html .= '<li><label>' . __('Plural','eml') . '</label><input type="text" class="wpuxss-eml-name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][name]" value="' . esc_html($taxonomy->labels->name) . '" /></li>';
212
- $html .= '<li><label>' . __('Menu Name','eml') . '</label><input type="text" class="wpuxss-eml-menu_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][menu_name]" value="' . esc_html($taxonomy->labels->menu_name) . '" /></li>';
213
- $html .= '<li><label>' . __('All','eml') . '</label><input type="text" class="wpuxss-eml-all_items" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][all_items]" value="' . esc_html($taxonomy->labels->all_items) . '" /></li>';
214
- $html .= '<li><label>' . __('Edit','eml') . '</label><input type="text" class="wpuxss-eml-edit_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][edit_item]" value="' . esc_html($taxonomy->labels->edit_item) . '" /></li>';
215
- $html .= '<li><label>' . __('View','eml') . '</label><input type="text" class="wpuxss-eml-view_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][view_item]" value="' . esc_html($taxonomy->labels->view_item) . '" /></li>';
216
- $html .= '<li><label>' . __('Update','eml') . '</label><input type="text" class="wpuxss-eml-update_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][update_item]" value="' . esc_html($taxonomy->labels->update_item) . '" /></li>';
217
- $html .= '<li><label>' . __('Add New','eml') . '</label><input type="text" class="wpuxss-eml-add_new_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][add_new_item]" value="' . esc_html($taxonomy->labels->add_new_item) . '" /></li>';
218
- $html .= '<li><label>' . __('New','eml') . '</label><input type="text" class="wpuxss-eml-new_item_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][new_item_name]" value="' . esc_html($taxonomy->labels->new_item_name) . '" /></li>';
219
- $html .= '<li><label>' . __('Parent','eml') . '</label><input type="text" class="wpuxss-eml-parent_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][parent_item]" value="' . esc_html($taxonomy->labels->parent_item) . '" /></li>';
220
- $html .= '<li><label>' . __('Search','eml') . '</label><input type="text" class="wpuxss-eml-search_items" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][search_items]" value="' . esc_html($taxonomy->labels->search_items) . '" /></li>';
221
- $html .= '</ul>';
222
- $html .= '</div>';
223
 
224
- $html .= '<div class="wpuxss-eml-settings-edit">';
225
- $html .= '<h4>' . __('Settings','eml') . '</h4>';
226
- $html .= '<ul>';
227
- $html .= '<li><label>' . __('Taxonomy Name','eml') . '</label><input type="text" class="wpuxss-eml-taxonomy-name" name="" value="' . esc_attr($taxonomy->name) . '" disabled="disabled" /></li>';
228
- $html .= '<li><label>' . __('Hierarchical','eml') . '</label><input type="checkbox" class="wpuxss-eml-hierarchical" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" value="1" ' . checked( 1, $taxonomy->hierarchical, false ) . ' /></li>';
229
- $html .= '<li><label>' . __('Column in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_admin_column" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" value="1" ' . checked( 1, $taxonomy->show_admin_column, false ) . ' /></li>';
230
- $html .= '<li><label>' . __('Filter in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
231
- $html .= '<li><label>' . __('Filter in Grid View / Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
232
- $html .= '<li><label>' . __('Show in Nav Menu','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_in_nav_menus" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" value="1" ' . checked( 1, $taxonomy->show_in_nav_menus, false ) . ' /></li>';
233
- $html .= '<li><label>' . __('Remember terms order (sort)','eml') . '</label><input type="checkbox" class="wpuxss-eml-sort" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" value="1" ' . checked( 1, $taxonomy->sort, false ) . ' /></li>';
234
- $html .= '<li><label>' . __('Rewrite Slug','eml') . '</label><input type="text" class="wpuxss-eml-slug" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][rewrite][slug]" value="' . esc_attr($taxonomy->rewrite['slug']) . '" /></li>';
235
- $html .= '<li><label>' . __('Slug with Front','eml') . '</label><input type="checkbox" class="wpuxss-eml-rewrite-with-front" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][rewrite][with_front]" value="1" ' . checked( 1, $taxonomy->rewrite['with_front'], false ) . ' /></li>';
236
- $html .= '</ul>';
237
- $html .= '</div>';
238
-
239
- $html .= '</div>';
240
- }
241
- else
242
- {
243
- $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
244
-
245
- $html .= '<div class="wpuxss-eml-settings-edit">';
246
- $html .= '<h4>' . __('Settings','eml') . '</h4>';
247
- $html .= '<ul>';
248
- $html .= '<li><label>' . __('Filter in Media Library','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
249
- $html .= '<li><label>' . __('Filter in Media Popup / Grid View','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
250
- $html .= '</ul>';
251
-
252
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_admin_column'] . '" />';
253
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_in_nav_menus'] . '" />';
254
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['hierarchical'] . '" />';
255
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['sort'] . '" />';
256
- $html .= '</div>';
257
-
258
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  }
260
- $html .= '</li>';
261
  }
262
- }
263
-
264
- $html .= '<li class="wpuxss-eml-clone" style="display:none">';
265
- $html .= '<input class="wpuxss-eml-assigned" name="" type="checkbox" class="wpuxss-eml-assigned" value="1" checked="checked" title="' . __('Assign Taxonomy','eml') . '" />';
266
- $html .= '<input name="" type="hidden" class="wpuxss-eml-eml_media" value="1" />';
267
- $html .= ' <label class="wpuxss-eml-taxonomy-label">' . __('New Taxonomy','eml') . '</label>';
268
-
269
- $html .= '<a class="wpuxss-eml-button-remove" title="' . __('Delete Taxonomy','eml') . '" href="javascript:;">&ndash;</a>';
270
-
271
- $html .= '<div class="wpuxss-eml-taxonomy-edit">';
272
-
273
- $html .= '<div class="wpuxss-eml-labels-edit">';
274
- $html .= '<h4>' . __('Labels','eml') . '</h4>';
275
- $html .= '<ul>';
276
- $html .= '<li><label>' . __('Singular','eml') . '</label><input type="text" class="wpuxss-eml-singular_name" name="" value="" /></li>';
277
- $html .= '<li><label>' . __('Plural','eml') . '</label><input type="text" class="wpuxss-eml-name" name="" value="" /></li>';
278
- $html .= '<li><label>' . __('Menu Name','eml') . '</label><input type="text" class="wpuxss-eml-menu_name" name="" value="" /></li>';
279
- $html .= '<li><label>' . __('All','eml') . '</label><input type="text" class="wpuxss-eml-all_items" name="" value="" /></li>';
280
- $html .= '<li><label>' . __('Edit','eml') . '</label><input type="text" class="wpuxss-eml-edit_item" name="" value="" /></li>';
281
- $html .= '<li><label>' . __('View','eml') . '</label><input type="text" class="wpuxss-eml-view_item" name="" value="" /></li>';
282
- $html .= '<li><label>' . __('Update','eml') . '</label><input type="text" class="wpuxss-eml-update_item" name="" value="" /></li>';
283
- $html .= '<li><label>' . __('Add New','eml') . '</label><input type="text" class="wpuxss-eml-add_new_item" name="" value="" /></li>';
284
- $html .= '<li><label>' . __('New','eml') . '</label><input type="text" class="wpuxss-eml-new_item_name" name="" value="" /></li>';
285
- $html .= '<li><label>' . __('Parent','eml') . '</label><input type="text" class="wpuxss-eml-parent_item" name="" value="" /></li>';
286
- $html .= '<li><label>' . __('Search','eml') . '</label><input type="text" class="wpuxss-eml-search_items" name="" value="" /></li>';
287
- $html .= '</ul>';
288
- $html .= '</div>';
289
-
290
- $html .= '<div class="wpuxss-eml-settings-edit">';
291
- $html .= '<h4>' . __('Settings','eml') . '</h4>';
292
- $html .= '<ul>';
293
- $html .= '<li><label>' . __('Taxonomy Name','eml') . '</label><input type="text" class="wpuxss-eml-taxonomy-name" name="" value="" disabled="disabled" /></li>';
294
- $html .= '<li><label>' . __('Hierarchical','eml') . '</label><input type="checkbox" class="wpuxss-eml-hierarchical" name="" value="1" checked="checked" /></li>';
295
- $html .= '<li><label>' . __('Column in Media Library','eml') . '</label><input class="wpuxss-eml-show_admin_column" type="checkbox" name="" value="1" /></li>';
296
- $html .= '<li><label>' . __('Filter in Media Library','eml') . '</label><input class="wpuxss-eml-admin_filter" type="checkbox" name="" value="1" /></li>';
297
- $html .= '<li><label>' . __('Filter in Media Popup / Grid View','eml') . '</label><input class="wpuxss-eml-media_uploader_filter" type="checkbox" name="" value="1" /></li>';
298
- $html .= '<li><label>' . __('Show in Nav Menu','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_in_nav_menus" name="" value="1" /></li>';
299
- $html .= '<li><label>' . __('Remember terms order (sort)','eml') . '</label><input type="checkbox" class="wpuxss-eml-sort" name="" value="1" /></li>';
300
- $html .= '<li><label>' . __('Rewrite Slug','eml') . '</label><input type="text" class="wpuxss-eml-slug" name="" value="" /></li>';
301
- $html .= '<li><label>' . __('Slug with Front','eml') . '</label><input type="checkbox" class="wpuxss-eml-rewrite-with-front" name="" value="1" checked="checked" /></li>';
302
- $html .= '</ul>';
303
- $html .= '</div>';
304
 
305
- $html .= '</div>';
306
- $html .= '</li>';
307
-
308
- if ( !empty($html) )
309
- {
310
- ?>
311
- <ul class="wpuxss-eml-settings-list wpuxss-eml-media-taxonomy-list">
312
- <?php echo $html; ?>
313
- </ul>
314
- <div class="wpuxss-eml-button-container-right"><a class="add-new-h2 wpuxss-eml-button-create-taxonomy" href="javascript:;">+ <?php _e('Add New Taxonomy','eml'); ?></a></div>
315
- <?php
316
- }
317
-
318
- submit_button();
319
- ?>
320
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </div>
322
-
323
- </div>
324
-
325
- <div class="postbox">
326
-
327
- <h3 class="hndle"><?php _e('Non-Media Taxonomies','eml'); ?></h3>
328
 
329
- <div class="inside">
330
-
331
- <p><?php _e('Assign following taxonomies to Media Library:','eml'); ?></p>
332
 
333
- <?php
334
- $unuse = array('revision','nav_menu_item','attachment');
335
- foreach ( get_post_types(array(),'object') as $post_type )
336
- {
337
- if ( !in_array($post_type->name,$unuse) )
 
 
 
338
  {
339
- $taxonomies = get_object_taxonomies($post_type->name,'object');
340
- if ( !empty($taxonomies) )
341
  {
342
- $html = '';
343
- foreach ( $taxonomies as $taxonomy )
344
  {
345
- if ( $taxonomy->name != 'post_format' )
346
- {
347
- $html .= '<li>';
348
- $html .= '<input class="wpuxss-eml-assigned" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][assigned]" type="checkbox" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['assigned'], false ) . ' title="' . __('Assign Taxonomy','eml') . '" />';
349
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][eml_media]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['eml_media'] . '" />';
350
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_admin_column'] . '" />';
351
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_in_nav_menus'] . '" />';
352
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['hierarchical'] . '" />';
353
- $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['sort'] . '" />';
354
- $html .= ' <label>' . $taxonomy->label . '</label>';
355
- $html .= '<a class="wpuxss-eml-button-edit" title="' . __('Edit Taxonomy','eml') . '" href="javascript:;">' . __('Edit','eml') . ' &darr;</a>';
356
- $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
357
-
358
- $html .= '<h4>' . __('Settings','eml') . '</h4>';
359
- $html .= '<ul>';
360
- $html .= '<li><label>' . __('Filter in Media Library','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
361
- $html .= '<li><label>' . __('Filter in Media Popup / Grid View','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
362
- $html .= '</ul>';
363
-
364
- $html .= '</div>';
365
- $html .= '</li>';
366
-
367
- }
368
- }
369
- if ( !empty($html) )
370
- {
371
- ?>
372
- <h4><?php echo $post_type->label; ?></h4>
373
- <ul class="wpuxss-eml-settings-list wpuxss-eml-non-media-taxonomy-list">
374
- <?php echo $html; ?>
375
- </ul>
376
- <?php
 
 
 
377
  }
378
  }
379
  }
380
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
381
 
382
- submit_button();
383
- ?>
384
 
385
  </div>
386
-
387
- </div>
 
 
388
 
389
- </form>
390
 
391
- </div>
392
-
393
- <div id="postbox-container-1" class="postbox-container">
394
-
395
- <?php wpuxss_eml_print_credits(); ?>
396
 
397
  </div>
398
-
399
  </div>
400
 
401
  </div>
402
-
403
- </div>
404
-
405
- <?php
406
  }
407
 
408
 
@@ -416,126 +493,125 @@ function wpuxss_eml_print_taxonomies_options()
416
  * @created 28/09/13
417
  */
418
 
419
- function wpuxss_eml_print_mimetypes_options()
420
- {
421
- if (!current_user_can('manage_options'))
422
- wp_die( __('You do not have sufficient permissions to access this page.','eml') );
423
-
424
- $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
425
- $wpuxss_eml_mimes_backup = get_option('wpuxss_eml_mimes_backup');
426
- ?>
427
 
428
- <div id="wpuxss-eml-global-options-wrap" class="wrap">
429
- <?php screen_icon('options-general'); ?>
430
- <h2>
431
- <?php _e('MIME Types','eml'); ?>
432
- <a class="add-new-h2 wpuxss-eml-button-create-mime" href="javascript:;">+ <?php _e('Add New MIME Type','eml'); ?></a>
433
- </h2>
434
 
435
- <?php settings_errors(); ?>
436
-
437
- <div id="poststuff">
 
 
 
438
 
439
- <div id="post-body" class="metabox-holder columns-2">
440
-
441
- <div id="postbox-container-2" class="postbox-container">
442
-
443
- <form method="post" action="options.php" id="wpuxss-eml-form-mimetypes">
 
 
 
 
 
 
 
444
 
445
- <?php settings_fields( 'wpuxss_eml_mimes' ); ?>
446
-
447
- <table class="wpuxss-eml-mime-type-list wp-list-table widefat" cellspacing="0">
448
- <thead>
449
- <tr>
450
- <th scope="col" class="manage-column wpuxss-eml-column-extension"><?php _e('Extension','eml'); ?></th>
451
- <th scope="col" class="manage-column wpuxss-eml-column-mime"><?php _e('MIME Type','eml'); ?></th>
452
- <th scope="col" class="manage-column wpuxss-eml-column-singular"><?php _e('Singular Label','eml'); ?></th>
453
- <th scope="col" class="manage-column wpuxss-eml-column-plural"><?php _e('Plural Label','eml'); ?></th>
454
- <th scope="col" class="manage-column wpuxss-eml-column-filter"><?php _e('Add Filter','eml'); ?></th>
455
- <th scope="col" class="manage-column wpuxss-eml-column-upload"><?php _e('Allow Upload','eml'); ?></th>
456
- <th scope="col" class="manage-column wpuxss-eml-column-delete"></th>
457
- </tr>
458
- </thead>
459
 
460
-
461
- <tbody>
462
-
463
- <?php
464
- $allowed_mimes = get_allowed_mime_types();
465
- $all_mimes = wp_get_mime_types();
466
- ksort( $all_mimes, SORT_STRING );
467
-
468
- foreach ( $all_mimes as $type => $mime )
469
- {
470
- if ( isset($wpuxss_eml_mimes[$type]) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
471
  {
472
- $label = '<code>'. str_replace( '|', '</code>, <code>', $type ) .'</code>';
473
-
474
- $allowed = false;
475
- if ( array_key_exists( $type,$allowed_mimes ) )
476
- $allowed = true;
477
- ?>
478
-
479
- <tr>
480
- <td id="<?php echo $type; ?>"><?php echo $label; ?></td>
481
- <td><code><?php echo $mime; ?></code><input type="hidden" class="wpuxss-eml-mime" name="wpuxss_eml_mimes[<?php echo $type; ?>][mime]" value="<?php echo $wpuxss_eml_mimes[$type]['mime']; ?>" /></td>
482
- <td><input type="text" name="wpuxss_eml_mimes[<?php echo $type; ?>][singular]" value="<?php echo esc_html($wpuxss_eml_mimes[$type]['singular']); ?>" /></td>
483
- <td><input type="text" name="wpuxss_eml_mimes[<?php echo $type; ?>][plural]" value="<?php echo esc_html($wpuxss_eml_mimes[$type]['plural']); ?>" /></td>
484
- <td class="checkbox_td"><input type="checkbox" name="wpuxss_eml_mimes[<?php echo $type; ?>][filter]" title="<?php _e('Add Filter','eml'); ?>" value="1" <?php checked(1, $wpuxss_eml_mimes[$type]['filter']); ?> /></td>
485
- <td class="checkbox_td"><input type="checkbox" name="wpuxss_eml_mimes[<?php echo $type; ?>][upload]" title="<?php _e('Allow Upload','eml'); ?>" value="1" <?php checked(true, $allowed); ?> /></td>
486
- <td><a class="wpuxss-eml-button-remove" title="Delete MIME Type" href="javascript:;">&ndash;</a></td>
487
- </tr>
488
-
489
- <?php
 
490
  }
491
- }
492
- ?>
493
-
494
- <tr class="wpuxss-eml-clone" style="display:none;">
495
- <td><input type="text" class="wpuxss-eml-type" placeholder="jpg|jpeg|jpe" /></td>
496
- <td><input type="text" class="wpuxss-eml-mime" placeholder="image/jpeg" /></td>
497
- <td><input type="text" class="wpuxss-eml-singular" placeholder="Image" /></td>
498
- <td><input type="text" class="wpuxss-eml-plural" placeholder="Images" /></td>
499
- <td class="checkbox_td"><input type="checkbox" class="wpuxss-eml-filter" title="<?php _e('Add Filter','eml'); ?>" value="1" /></td>
500
- <td class="checkbox_td"><input type="checkbox" class="wpuxss-eml-upload" title="<?php _e('Allow Upload','eml'); ?>" value="1" /></td>
501
- <td><a class="wpuxss-eml-button-remove" title="<?php _e('Delete MIME Type','eml'); ?>" href="javascript:;">&ndash;</a></td>
502
- </tr>
 
 
 
 
 
 
 
 
 
 
 
 
503
 
504
- </tbody>
505
- <tfoot>
506
- <tr>
507
- <th scope="col" class="manage-column wpuxss-eml-column-extension"><?php _e('Extension','eml'); ?></th>
508
- <th scope="col" class="manage-column wpuxss-eml-column-mime"><?php _e('MIME Type','eml'); ?></th>
509
- <th scope="col" class="manage-column wpuxss-eml-column-singular"><?php _e('Singular Label','eml'); ?></th>
510
- <th scope="col" class="manage-column wpuxss-eml-column-plural"><?php _e('Plural Label','eml'); ?></th>
511
- <th scope="col" class="manage-column wpuxss-eml-column-filter"><?php _e('Add Filter','eml'); ?></th>
512
- <th scope="col" class="manage-column wpuxss-eml-column-upload"><?php _e('Allow Upload','eml'); ?></th>
513
- <th scope="col" class="manage-column wpuxss-eml-column-delete"></th>
514
- </tr>
515
- </tfoot>
516
- </table>
517
 
518
- <?php submit_button(__('Restore default MIME Types','eml'),'secondary','wpuxss_eml_restore_mimes_backup'); ?>
519
-
520
- <?php submit_button(); ?>
521
-
522
- </form>
523
 
524
- </div>
525
-
526
- <div id="postbox-container-1" class="postbox-container">
527
-
528
- <?php wpuxss_eml_print_credits(); ?>
529
 
530
  </div>
531
-
532
  </div>
533
 
534
  </div>
535
-
536
- </div>
537
-
538
- <?php
539
  }
540
 
541
 
@@ -549,44 +625,45 @@ function wpuxss_eml_print_mimetypes_options()
549
  * @created 28/09/13
550
  */
551
 
552
- function wpuxss_eml_print_credits()
553
- {
554
- global $wpuxss_eml_version;
555
- ?>
556
 
557
- <div class="postbox" id="wpuxss-credits">
558
-
559
- <h3 class="hndle">Enhanced Media Library <?php echo $wpuxss_eml_version; ?></h3>
560
-
561
- <div class="inside">
562
-
563
- <h4>Changelog</h4>
564
- <p>What's new in <a href="http://wordpress.org/plugins/enhanced-media-library/changelog/">version <?php echo $wpuxss_eml_version; ?></a>.</p>
565
-
566
- <h4>Enhanced Media Library PRO</h4>
567
- <p>More features under the hood <a href="http://www.wpuxsolutions.com/plugins/enhanced-media-library/">www.wpuxsolutions.com</a>.</p>
568
-
569
- <h4>Support</h4>
570
- <p>Feel free to ask for help on <a href="http://www.wpuxsolutions.com/support/">www.wpuxsolutions.com</a>. Support is free for both versions of the plugin.</p>
571
-
572
- <h4>Plugin rating</h4>
573
- <p>Please <a href="http://wordpress.org/support/view/plugin-reviews/enhanced-media-library">vote for the plugin</a>. Thanks!</p>
574
 
575
- <h4>Other plugins you may find useful</h4>
576
- <ul>
577
- <li><a href="http://wordpress.org/plugins/toolbar-publish-button/">Toolbar Publish Button</a></li>
578
- </ul>
579
-
580
- <div class="author">
581
- <span><a href="http://www.wpuxsolutions.com/">wpUXsolutions</a> by <a class="logo-webbistro" href="http://twitter.com/webbistro"><span class="icon-webbistro">@</span>webbistro</a></span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
582
  </div>
583
-
584
  </div>
585
-
586
- </div>
587
-
588
- <?php
589
  }
590
 
591
-
592
  ?>
12
 
13
  add_action( 'admin_init', 'wpuxss_eml_on_admin_init' );
14
 
15
+ if( ! function_exists('wpuxss_eml_on_admin_init') ) {
16
+
17
+ function wpuxss_eml_on_admin_init() {
18
+
19
+ // plugin settings: taxonomies
20
+ register_setting(
21
+ 'wpuxss_eml_taxonomies', //option_group
22
+ 'wpuxss_eml_taxonomies', //option_name
23
+ 'wpuxss_eml_taxonomies_validate' //sanitize_callback
24
+ );
25
+
26
+ // plugin settings: common options
27
+ register_setting(
28
+ 'wpuxss_eml_taxonomies', //option_group
29
+ 'wpuxss_eml_tax_options', //option_name
30
+ 'wpuxss_eml_tax_options_validate' //sanitize_callback
31
+ );
32
+
33
+ // plugin settings: mime types
34
+ register_setting(
35
+ 'wpuxss_eml_mimes', //option_group
36
+ 'wpuxss_eml_mimes', //option_name
37
+ 'wpuxss_eml_mimes_validate' //sanitize_callback
38
+ );
39
+
40
+ // plugin settings: mime types backup
41
+ register_setting(
42
+ 'wpuxss_eml_mimes_backup', //option_group
43
+ 'wpuxss_eml_mimes_backup' //option_name
44
+ );
45
+ }
46
  }
47
 
48
 
57
 
58
  add_action('admin_menu', 'wpuxss_eml_admin_menu');
59
 
60
+ if( ! function_exists('wpuxss_eml_admin_menu') ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
 
62
+ function wpuxss_eml_admin_menu() {
63
+
64
+ remove_submenu_page( 'options-general.php', 'options-media.php' );
65
+
66
+ add_utility_page(
67
+ __('Media Settings','eml'), //page_title
68
+ __('Media Settings','eml'), //menu_title
69
+ 'manage_options', //capability
70
+ 'options-media.php', //page
71
+ '', //callback
72
+ 'dashicons-admin-media'
73
+ );
74
+
75
+ add_submenu_page(
76
+ 'options-media.php',
77
+ __('Media Settings','eml'),
78
+ __('Settings','eml'),
79
+ 'manage_options',
80
+ 'options-media.php'
81
+ );
82
+
83
+ $eml_taxonomies_options_suffix = add_submenu_page(
84
+ 'options-media.php',
85
+ __('Taxonomies','eml'),
86
+ __('Taxonomies','eml'),
87
+ 'manage_options',
88
+ 'eml-taxonomies-options',
89
+ 'wpuxss_eml_print_taxonomies_options'
90
+ );
91
+
92
+ $eml_mimetype_options_suffix = add_submenu_page(
93
+ 'options-media.php',
94
+ __('MIME Types','eml'),
95
+ __('MIME Types','eml'),
96
+ 'manage_options',
97
+ 'eml-mimetype-options',
98
+ 'wpuxss_eml_print_mimetypes_options'
99
+ );
100
+
101
+ add_action('admin_print_scripts-' . $eml_taxonomies_options_suffix, 'wpuxss_eml_admin_settings_pages_scripts');
102
+ add_action('admin_print_scripts-' . $eml_mimetype_options_suffix, 'wpuxss_eml_admin_settings_pages_scripts');
103
+ }
104
  }
105
 
106
 
113
  * @created 28/10/13
114
  */
115
 
116
+ if( ! function_exists('wpuxss_eml_admin_settings_pages_scripts') ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
 
118
+ function wpuxss_eml_admin_settings_pages_scripts() {
 
 
 
 
 
119
 
120
+ global $wpuxss_eml_version,
121
+ $wpuxss_eml_dir;
122
+
123
+ wp_enqueue_script(
124
+ 'wpuxss-eml-options-script',
125
+ $wpuxss_eml_dir . 'js/eml-options.js',
126
+ array('jquery'),
127
+ $wpuxss_eml_version,
128
+ true
129
+ );
130
+
131
+ $i18n_data = array(
132
+ 'edit' => __( 'Edit', 'eml' ),
133
+ 'close' => __( 'Close', 'eml' ),
134
+ 'view' => __( 'View', 'eml' ),
135
+ 'update' => __( 'Update', 'eml' ),
136
+ 'add_new' => __( 'Add New', 'eml' ),
137
+ 'new' => __( 'New', 'eml' ),
138
+ 'name' => __( 'Name', 'eml' ),
139
+ 'parent' => __( 'Parent', 'eml' ),
140
+ 'all' => __( 'All', 'eml' ),
141
+ 'search' => __( 'Search', 'eml' ),
142
+
143
+ 'tax_deletion_confirm' => __( 'Taxonomy will be deleted permanently! Your media files will remain intacted, but all the connections with this taxonomy and its terms will be lost.', 'eml' ),
144
+ 'tax_error_duplicate' => __( 'There is already a taxonomy with the same name. Please chose other one.', 'eml' ),
145
+ 'tax_new' => __( 'New Taxonomy', 'eml' ),
146
+ 'tax_error_empty_both' => __( 'Please choose Singular and Plural names for all your new taxomonies.', 'eml' ),
147
+ 'tax_error_empty_singular' => __( 'Please choose Singilar name for all your new taxomonies.', 'eml' ),
148
+ 'tax_error_empty_plural' => __( 'Please choose Plural Name for all your new taxomonies.', 'eml' ),
149
+
150
+ 'mime_deletion_confirm' => __( 'Warning! All your custom MIME Types will be deleted by this operation.', 'eml' ),
151
+ 'mime_error_empty_fields' => __( 'Please fill into all fields.', 'eml' ),
152
+ 'mime_error_duplicate' => __( 'Duplicate extensions or MIME types. Please chose other one.', 'eml' )
153
+ );
154
+
155
+ // TODO: revise l10n
156
+ wp_localize_script(
157
+ 'wpuxss-eml-options-script',
158
+ 'wpuxss_eml_i18n_data',
159
+ $i18n_data
160
+ );
161
+ }
162
  }
163
 
164
 
172
  * @created 28/09/13
173
  */
174
 
175
+ if( ! function_exists('wpuxss_eml_print_taxonomies_options') ) {
 
 
 
 
 
 
 
176
 
177
+ function wpuxss_eml_print_taxonomies_options() {
 
 
 
 
178
 
179
+ if (!current_user_can('manage_options'))
180
+ wp_die( __('You do not have sufficient permissions to access this page.','eml') );
181
+
182
+ $wpuxss_eml_taxonomies = get_option( 'wpuxss_eml_taxonomies' );
183
+ $taxonomies = get_taxonomies( array(),'names' );
184
+ ?>
185
 
186
+ <div id="wpuxss-eml-global-options-wrap" class="wrap">
187
+ <?php screen_icon('options-general'); ?>
188
+ <h2><?php _e('Taxonomies','eml'); ?></h2>
189
+
190
+ <?php settings_errors(); ?>
191
+
192
+ <div id="poststuff">
193
+
194
+ <div id="post-body" class="metabox-holder columns-2">
195
+
196
+ <div id="postbox-container-2" class="postbox-container">
197
+
198
+ <form id="wpuxss-eml-form-taxonomies" method="post" action="options.php">
199
+
200
+ <?php settings_fields( 'wpuxss_eml_taxonomies' ); ?>
201
 
202
+ <div class="postbox">
203
 
204
+ <h3 class="hndle"><?php _e('Media Taxonomies','eml'); ?></h3>
205
 
206
+ <div class="inside">
207
+
208
+ <p><?php _e('Assign following taxonomies to Media Library:','eml'); ?></p>
209
+
210
+ <?php $html = '';
211
+
212
+ foreach ( get_taxonomies(array(),'object') as $taxonomy )
213
  {
214
+ if ( (in_array('attachment',$taxonomy->object_type) && count($taxonomy->object_type) == 1) || empty($taxonomy->object_type) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  {
216
+ $assigned = intval($wpuxss_eml_taxonomies[$taxonomy->name]['assigned']);
217
+ $eml_media = intval($wpuxss_eml_taxonomies[$taxonomy->name]['eml_media']);
 
218
 
219
+ if ( $eml_media )
220
+ $li_class = 'wpuxss-eml-taxonomy';
221
+ else
222
+ $li_class = 'wpuxss-non-eml-taxonomy';
 
 
 
 
 
 
 
 
 
 
 
 
223
 
224
+ $html .= '<li class="' . $li_class . '" id="' . $taxonomy->name . '">';
225
+
226
+ $html .= '<input class="wpuxss-eml-assigned" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][assigned]" type="checkbox" value="1" ' . checked( true, $assigned, false ) . ' title="' . __('Assign Taxonomy','eml') . '" />';
227
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][eml_media]" type="hidden" value="' . $eml_media . '" />';
228
+ $html .= ' <label>' . $taxonomy->label . '</label>';
229
+ $html .= '<a class="wpuxss-eml-button-edit" title="' . __('Edit Taxonomy','eml') . '" href="javascript:;">' . __('Edit','eml') . ' &darr;</a>';
230
+ if ( $eml_media )
231
+ {
232
+ $html .= '<a class="wpuxss-eml-button-remove" title="' . __('Delete Taxonomy','eml') . '" href="javascript:;">&ndash;</a>';
233
+
234
+ $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
235
+
236
+ $html .= '<div class="wpuxss-eml-labels-edit">';
237
+ $html .= '<h4>' . __('Labels','eml') . '</h4>';
238
+ $html .= '<ul>';
239
+ $html .= '<li><label>' . __('Singular','eml') . '</label><input type="text" class="wpuxss-eml-singular_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][singular_name]" value="' . esc_html($taxonomy->labels->singular_name) . '" /></li>';
240
+ $html .= '<li><label>' . __('Plural','eml') . '</label><input type="text" class="wpuxss-eml-name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][name]" value="' . esc_html($taxonomy->labels->name) . '" /></li>';
241
+ $html .= '<li><label>' . __('Menu Name','eml') . '</label><input type="text" class="wpuxss-eml-menu_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][menu_name]" value="' . esc_html($taxonomy->labels->menu_name) . '" /></li>';
242
+ $html .= '<li><label>' . __('All','eml') . '</label><input type="text" class="wpuxss-eml-all_items" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][all_items]" value="' . esc_html($taxonomy->labels->all_items) . '" /></li>';
243
+ $html .= '<li><label>' . __('Edit','eml') . '</label><input type="text" class="wpuxss-eml-edit_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][edit_item]" value="' . esc_html($taxonomy->labels->edit_item) . '" /></li>';
244
+ $html .= '<li><label>' . __('View','eml') . '</label><input type="text" class="wpuxss-eml-view_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][view_item]" value="' . esc_html($taxonomy->labels->view_item) . '" /></li>';
245
+ $html .= '<li><label>' . __('Update','eml') . '</label><input type="text" class="wpuxss-eml-update_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][update_item]" value="' . esc_html($taxonomy->labels->update_item) . '" /></li>';
246
+ $html .= '<li><label>' . __('Add New','eml') . '</label><input type="text" class="wpuxss-eml-add_new_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][add_new_item]" value="' . esc_html($taxonomy->labels->add_new_item) . '" /></li>';
247
+ $html .= '<li><label>' . __('New','eml') . '</label><input type="text" class="wpuxss-eml-new_item_name" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][new_item_name]" value="' . esc_html($taxonomy->labels->new_item_name) . '" /></li>';
248
+ $html .= '<li><label>' . __('Parent','eml') . '</label><input type="text" class="wpuxss-eml-parent_item" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][parent_item]" value="' . esc_html($taxonomy->labels->parent_item) . '" /></li>';
249
+ $html .= '<li><label>' . __('Search','eml') . '</label><input type="text" class="wpuxss-eml-search_items" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][labels][search_items]" value="' . esc_html($taxonomy->labels->search_items) . '" /></li>';
250
+ $html .= '</ul>';
251
+ $html .= '</div>';
252
+
253
+ $html .= '<div class="wpuxss-eml-settings-edit">';
254
+ $html .= '<h4>' . __('Settings','eml') . '</h4>';
255
+ $html .= '<ul>';
256
+ $html .= '<li><label>' . __('Taxonomy Name','eml') . '</label><input type="text" class="wpuxss-eml-taxonomy-name" name="" value="' . esc_attr($taxonomy->name) . '" disabled="disabled" /></li>';
257
+ $html .= '<li><label>' . __('Hierarchical','eml') . '</label><input type="checkbox" class="wpuxss-eml-hierarchical" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" value="1" ' . checked( 1, $taxonomy->hierarchical, false ) . ' /></li>';
258
+ $html .= '<li><label>' . __('Column in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_admin_column" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" value="1" ' . checked( 1, $taxonomy->show_admin_column, false ) . ' /></li>';
259
+ $html .= '<li><label>' . __('Filter in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
260
+ $html .= '<li><label>' . __('Filter in Grid View / Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
261
+ $html .= '<li><label>' . __('Edit in Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_popup_taxonomy_edit" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_popup_taxonomy_edit]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit'], false ) . ' /></li>';
262
+ $html .= '<li><label>' . __('Show in Nav Menu','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_in_nav_menus" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" value="1" ' . checked( 1, $taxonomy->show_in_nav_menus, false ) . ' /></li>';
263
+ $html .= '<li><label>' . __('Remember terms order (sort)','eml') . '</label><input type="checkbox" class="wpuxss-eml-sort" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" value="1" ' . checked( 1, $taxonomy->sort, false ) . ' /></li>';
264
+ $html .= '<li><label>' . __('Rewrite Slug','eml') . '</label><input type="text" class="wpuxss-eml-slug" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][rewrite][slug]" value="' . esc_attr($taxonomy->rewrite['slug']) . '" /></li>';
265
+ $html .= '<li><label>' . __('Slug with Front','eml') . '</label><input type="checkbox" class="wpuxss-eml-rewrite-with-front" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][rewrite][with_front]" value="1" ' . checked( 1, $taxonomy->rewrite['with_front'], false ) . ' /></li>';
266
+ $html .= '</ul>';
267
+ $html .= '</div>';
268
+
269
+ $html .= '</div>';
270
+ }
271
+ else
272
+ {
273
+ $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
274
+
275
+ $html .= '<div class="wpuxss-eml-settings-edit">';
276
+ $html .= '<h4>' . __('Settings','eml') . '</h4>';
277
+ $html .= '<ul>';
278
+ $html .= '<li><label>' . __('Filter in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
279
+ $html .= '<li><label>' . __('Filter in Grid View / Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
280
+ $html .= '<li><label>' . __('Edit in Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_popup_taxonomy_edit" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_popup_taxonomy_edit]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit'], false ) . ' /></li>';
281
+ $html .= '</ul>';
282
+
283
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_admin_column'] . '" />';
284
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_in_nav_menus'] . '" />';
285
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['hierarchical'] . '" />';
286
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['sort'] . '" />';
287
+ $html .= '</div>';
288
+
289
+ $html .= '</div>';
290
+ }
291
+ $html .= '</li>';
292
  }
 
293
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
 
295
+ $html .= '<li class="wpuxss-eml-clone" style="display:none">';
296
+ $html .= '<input class="wpuxss-eml-assigned" name="" type="checkbox" class="wpuxss-eml-assigned" value="1" checked="checked" title="' . __('Assign Taxonomy','eml') . '" />';
297
+ $html .= '<input name="" type="hidden" class="wpuxss-eml-eml_media" value="1" />';
298
+ $html .= ' <label class="wpuxss-eml-taxonomy-label">' . __('New Taxonomy','eml') . '</label>';
299
+
300
+ $html .= '<a class="wpuxss-eml-button-remove" title="' . __('Delete Taxonomy','eml') . '" href="javascript:;">&ndash;</a>';
301
+
302
+ $html .= '<div class="wpuxss-eml-taxonomy-edit">';
303
+
304
+ $html .= '<div class="wpuxss-eml-labels-edit">';
305
+ $html .= '<h4>' . __('Labels','eml') . '</h4>';
306
+ $html .= '<ul>';
307
+ $html .= '<li><label>' . __('Singular','eml') . '</label><input type="text" class="wpuxss-eml-singular_name" name="" value="" /></li>';
308
+ $html .= '<li><label>' . __('Plural','eml') . '</label><input type="text" class="wpuxss-eml-name" name="" value="" /></li>';
309
+ $html .= '<li><label>' . __('Menu Name','eml') . '</label><input type="text" class="wpuxss-eml-menu_name" name="" value="" /></li>';
310
+ $html .= '<li><label>' . __('All','eml') . '</label><input type="text" class="wpuxss-eml-all_items" name="" value="" /></li>';
311
+ $html .= '<li><label>' . __('Edit','eml') . '</label><input type="text" class="wpuxss-eml-edit_item" name="" value="" /></li>';
312
+ $html .= '<li><label>' . __('View','eml') . '</label><input type="text" class="wpuxss-eml-view_item" name="" value="" /></li>';
313
+ $html .= '<li><label>' . __('Update','eml') . '</label><input type="text" class="wpuxss-eml-update_item" name="" value="" /></li>';
314
+ $html .= '<li><label>' . __('Add New','eml') . '</label><input type="text" class="wpuxss-eml-add_new_item" name="" value="" /></li>';
315
+ $html .= '<li><label>' . __('New','eml') . '</label><input type="text" class="wpuxss-eml-new_item_name" name="" value="" /></li>';
316
+ $html .= '<li><label>' . __('Parent','eml') . '</label><input type="text" class="wpuxss-eml-parent_item" name="" value="" /></li>';
317
+ $html .= '<li><label>' . __('Search','eml') . '</label><input type="text" class="wpuxss-eml-search_items" name="" value="" /></li>';
318
+ $html .= '</ul>';
319
+ $html .= '</div>';
320
+
321
+ $html .= '<div class="wpuxss-eml-settings-edit">';
322
+ $html .= '<h4>' . __('Settings','eml') . '</h4>';
323
+ $html .= '<ul>';
324
+ $html .= '<li><label>' . __('Taxonomy Name','eml') . '</label><input type="text" class="wpuxss-eml-taxonomy-name" name="" value="" disabled="disabled" /></li>';
325
+ $html .= '<li><label>' . __('Hierarchical','eml') . '</label><input type="checkbox" class="wpuxss-eml-hierarchical" name="" value="1" checked="checked" /></li>';
326
+ $html .= '<li><label>' . __('Column in List View','eml') . '</label><input class="wpuxss-eml-show_admin_column" type="checkbox" name="" value="1" /></li>';
327
+ $html .= '<li><label>' . __('Filter in List View','eml') . '</label><input class="wpuxss-eml-admin_filter" type="checkbox" name="" value="1" /></li>';
328
+ $html .= '<li><label>' . __('Filter in Grid View / Media Popup','eml') . '</label><input class="wpuxss-eml-media_uploader_filter" type="checkbox" name="" value="1" /></li>';
329
+ $html .= '<li><label>' . __('Edit in Media Popup','eml') . '</label><input class="wpuxss-eml-media_popup_taxonomy_edit" type="checkbox" name="" value="1" /></li>';
330
+ $html .= '<li><label>' . __('Show in Nav Menu','eml') . '</label><input type="checkbox" class="wpuxss-eml-show_in_nav_menus" name="" value="1" /></li>';
331
+ $html .= '<li><label>' . __('Remember terms order (sort)','eml') . '</label><input type="checkbox" class="wpuxss-eml-sort" name="" value="1" /></li>';
332
+ $html .= '<li><label>' . __('Rewrite Slug','eml') . '</label><input type="text" class="wpuxss-eml-slug" name="" value="" /></li>';
333
+ $html .= '<li><label>' . __('Slug with Front','eml') . '</label><input type="checkbox" class="wpuxss-eml-rewrite-with-front" name="" value="1" checked="checked" /></li>';
334
+ $html .= '</ul>';
335
+ $html .= '</div>';
336
+
337
+ $html .= '</div>';
338
+ $html .= '</li>';
339
+
340
+ if ( !empty($html) )
341
+ {
342
+ ?> <ul class="wpuxss-eml-settings-list wpuxss-eml-media-taxonomy-list">
343
+ <?php echo $html; ?>
344
+ </ul>
345
+ <div class="wpuxss-eml-button-container-right"><a class="add-new-h2 wpuxss-eml-button-create-taxonomy" href="javascript:;">+ <?php _e('Add New Taxonomy','eml'); ?></a></div>
346
+ <?php }
347
+
348
+ submit_button();
349
+ ?>
350
+ </div>
351
+
352
  </div>
 
 
 
 
 
 
353
 
354
+ <div class="postbox">
 
 
355
 
356
+ <h3 class="hndle"><?php _e('Non-Media Taxonomies','eml'); ?></h3>
357
+
358
+ <div class="inside">
359
+
360
+ <p><?php _e('Assign following taxonomies to Media Library:','eml'); ?></p>
361
+
362
+ <?php $unuse = array('revision','nav_menu_item','attachment');
363
+ foreach ( get_post_types(array(),'object') as $post_type )
364
  {
365
+ if ( !in_array($post_type->name,$unuse) )
 
366
  {
367
+ $taxonomies = get_object_taxonomies($post_type->name,'object');
368
+ if ( !empty($taxonomies) )
369
  {
370
+ $html = '';
371
+ foreach ( $taxonomies as $taxonomy )
372
+ {
373
+ if ( $taxonomy->name != 'post_format' )
374
+ {
375
+ $html .= '<li>';
376
+ $html .= '<input class="wpuxss-eml-assigned" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][assigned]" type="checkbox" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['assigned'], false ) . ' title="' . __('Assign Taxonomy','eml') . '" />';
377
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][eml_media]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['eml_media'] . '" />';
378
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_admin_column]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_admin_column'] . '" />';
379
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][show_in_nav_menus]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['show_in_nav_menus'] . '" />';
380
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][hierarchical]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['hierarchical'] . '" />';
381
+ $html .= '<input name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][sort]" type="hidden" value="' . $wpuxss_eml_taxonomies[$taxonomy->name]['sort'] . '" />';
382
+ $html .= ' <label>' . $taxonomy->label . '</label>';
383
+ $html .= '<a class="wpuxss-eml-button-edit" title="' . __('Edit Taxonomy','eml') . '" href="javascript:;">' . __('Edit','eml') . ' &darr;</a>';
384
+ $html .= '<div class="wpuxss-eml-taxonomy-edit" style="display:none;">';
385
+
386
+ $html .= '<h4>' . __('Settings','eml') . '</h4>';
387
+ $html .= '<ul>';
388
+ $html .= '<li><label>' . __('Filter in List View','eml') . '</label><input type="checkbox" class="wpuxss-eml-admin_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][admin_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'], false ) . ' /></li>';
389
+ $html .= '<li><label>' . __('Filter in Grid View / Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_uploader_filter" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_uploader_filter]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'], false ) . ' /></li>';
390
+ $html .= '<li><label>' . __('Edit in Media Popup','eml') . '</label><input type="checkbox" class="wpuxss-eml-media_popup_taxonomy_edit" name="wpuxss_eml_taxonomies[' . $taxonomy->name . '][media_popup_taxonomy_edit]" value="1" ' . checked( 1, $wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit'], false ) . ' /></li>';
391
+ $html .= '</ul>';
392
+
393
+ $html .= '</div>';
394
+ $html .= '</li>';
395
+
396
+ }
397
+ }
398
+ if ( !empty($html) )
399
+ {
400
+ ?> <h4><?php echo $post_type->label; ?></h4>
401
+ <ul class="wpuxss-eml-settings-list wpuxss-eml-non-media-taxonomy-list">
402
+ <?php echo $html; ?>
403
+ </ul>
404
+ <?php }
405
  }
406
  }
407
  }
408
+
409
+ submit_button();
410
+ ?>
411
+ </div>
412
+
413
+ </div>
414
+
415
+ <h2><?php _e('Options','eml'); ?></h2>
416
+
417
+ <div class="postbox">
418
+
419
+ <div class="inside">
420
+
421
+ <?php $wpuxss_eml_tax_options = get_option( 'wpuxss_eml_tax_options' ); ?>
422
+
423
+ <table class="form-table">
424
+ <tr>
425
+ <th scope="row"><?php _e('Taxonomy archive pages','eml'); ?></th>
426
+ <td>
427
+ <fieldset>
428
+ <legend class="screen-reader-text"><span><?php _e('Taxonomy archive pages','eml'); ?></span></legend>
429
+ <label for="wpuxss_eml_tax_options[tax_archives]"><input name="wpuxss_eml_tax_options[tax_archives]" type="hidden" value="0" /><input name="wpuxss_eml_tax_options[tax_archives]" type="checkbox" value="1" <?php checked( true, $wpuxss_eml_tax_options['tax_archives'], true ); ?> /> <?php _e('Turn on media taxonomy archive pages on the front-end','eml'); ?></label>
430
+ <p class="description"><?php _e( 'Re-save your permalink settings after this option change to make it work.', 'eml' ); ?></p>
431
+ </fieldset>
432
+ </td>
433
+ </tr>
434
+
435
+ <tr>
436
+ <th scope="row"><?php _e('Assign all like hierarchical','eml'); ?></th>
437
+ <td>
438
+ <fieldset>
439
+ <legend class="screen-reader-text"><span><?php _e('Show non-hierarchical taxonomies like hierarchical in Grid View / Media Popup','eml'); ?></span></legend>
440
+ <label for="wpuxss_eml_tax_options[edit_all_as_hierarchical]"><input name="wpuxss_eml_tax_options[edit_all_as_hierarchical]" type="hidden" value="0" /><input name="wpuxss_eml_tax_options[edit_all_as_hierarchical]" type="checkbox" value="1" <?php checked( true, $wpuxss_eml_tax_options['edit_all_as_hierarchical'], true ); ?> /> <?php _e('Show non-hierarchical taxonomies like hierarchical in Grid View / Media Popup','eml'); ?></label>
441
+ </fieldset>
442
+ </td>
443
+ </tr>
444
+
445
+ <tr>
446
+ <th scope="row"><?php _e('Force filters','eml'); ?></th>
447
+ <td>
448
+ <fieldset>
449
+ <legend class="screen-reader-text"><span><?php _e('Force filters','eml'); ?></span></legend>
450
+ <label for="wpuxss_eml_tax_options[force_filters]"><input name="wpuxss_eml_tax_options[force_filters]" type="hidden" value="0" /><input name="wpuxss_eml_tax_options[force_filters]" type="checkbox" value="1" <?php checked( true, $wpuxss_eml_tax_options['force_filters'], true ); ?> /> <?php _e('Show media filters for ANY Media Popup.','eml'); ?></label>
451
+ <p class="description"><?php _e( 'May be useful for those who need forcing filters for third-party plugins or themes.', 'eml' ); ?></p>
452
+ </fieldset>
453
+ </td>
454
+ </tr>
455
+ </table>
456
+
457
+ <?php submit_button(); ?>
458
 
459
+ </div>
 
460
 
461
  </div>
462
+
463
+ <?php do_action( 'wpuxss_eml_extend_taxonomies_option_page' ); ?>
464
+
465
+ </form>
466
 
467
+ </div>
468
 
469
+ <div id="postbox-container-1" class="postbox-container">
470
+
471
+ <?php wpuxss_eml_print_credits(); ?>
472
+
473
+ </div>
474
 
475
  </div>
476
+
477
  </div>
478
 
479
  </div>
480
+
481
+ <?php
482
+ }
 
483
  }
484
 
485
 
493
  * @created 28/09/13
494
  */
495
 
496
+ if( ! function_exists('wpuxss_eml_print_mimetypes_options') ) {
 
 
 
 
 
 
 
497
 
498
+ function wpuxss_eml_print_mimetypes_options() {
 
 
 
 
 
499
 
500
+ if (!current_user_can('manage_options'))
501
+ wp_die( __('You do not have sufficient permissions to access this page.','eml') );
502
+
503
+ $wpuxss_eml_mimes = get_option('wpuxss_eml_mimes');
504
+ $wpuxss_eml_mimes_backup = get_option('wpuxss_eml_mimes_backup');
505
+ ?>
506
 
507
+ <div id="wpuxss-eml-global-options-wrap" class="wrap">
508
+ <?php screen_icon('options-general'); ?>
509
+ <h2>
510
+ <?php _e('MIME Types','eml'); ?>
511
+ <a class="add-new-h2 wpuxss-eml-button-create-mime" href="javascript:;">+ <?php _e('Add New MIME Type','eml'); ?></a>
512
+ </h2>
513
+
514
+ <?php settings_errors(); ?>
515
+
516
+ <div id="poststuff">
517
+
518
+ <div id="post-body" class="metabox-holder columns-2">
519
 
520
+ <div id="postbox-container-2" class="postbox-container">
 
 
 
 
 
 
 
 
 
 
 
 
 
521
 
522
+ <form method="post" action="options.php" id="wpuxss-eml-form-mimetypes">
523
+
524
+ <?php settings_fields( 'wpuxss_eml_mimes' ); ?>
525
+
526
+ <table class="wpuxss-eml-mime-type-list wp-list-table widefat" cellspacing="0">
527
+ <thead>
528
+ <tr>
529
+ <th scope="col" class="manage-column wpuxss-eml-column-extension"><?php _e('Extension','eml'); ?></th>
530
+ <th scope="col" class="manage-column wpuxss-eml-column-mime"><?php _e('MIME Type','eml'); ?></th>
531
+ <th scope="col" class="manage-column wpuxss-eml-column-singular"><?php _e('Singular Label','eml'); ?></th>
532
+ <th scope="col" class="manage-column wpuxss-eml-column-plural"><?php _e('Plural Label','eml'); ?></th>
533
+ <th scope="col" class="manage-column wpuxss-eml-column-filter"><?php _e('Add Filter','eml'); ?></th>
534
+ <th scope="col" class="manage-column wpuxss-eml-column-upload"><?php _e('Allow Upload','eml'); ?></th>
535
+ <th scope="col" class="manage-column wpuxss-eml-column-delete"></th>
536
+ </tr>
537
+ </thead>
538
+
539
+
540
+ <tbody>
541
+
542
+ <?php $allowed_mimes = get_allowed_mime_types();
543
+ $all_mimes = wp_get_mime_types();
544
+ ksort( $all_mimes, SORT_STRING );
545
+
546
+ foreach ( $all_mimes as $type => $mime )
547
  {
548
+ if ( isset($wpuxss_eml_mimes[$type]) )
549
+ {
550
+ $label = '<code>'. str_replace( '|', '</code>, <code>', $type ) .'</code>';
551
+
552
+ $allowed = false;
553
+ if ( array_key_exists( $type,$allowed_mimes ) )
554
+ $allowed = true;
555
+ ?>
556
+ <tr>
557
+ <td id="<?php echo $type; ?>"><?php echo $label; ?></td>
558
+ <td><code><?php echo $mime; ?></code><input type="hidden" class="wpuxss-eml-mime" name="wpuxss_eml_mimes[<?php echo $type; ?>][mime]" value="<?php echo $wpuxss_eml_mimes[$type]['mime']; ?>" /></td>
559
+ <td><input type="text" name="wpuxss_eml_mimes[<?php echo $type; ?>][singular]" value="<?php echo esc_html($wpuxss_eml_mimes[$type]['singular']); ?>" /></td>
560
+ <td><input type="text" name="wpuxss_eml_mimes[<?php echo $type; ?>][plural]" value="<?php echo esc_html($wpuxss_eml_mimes[$type]['plural']); ?>" /></td>
561
+ <td class="checkbox_td"><input type="checkbox" name="wpuxss_eml_mimes[<?php echo $type; ?>][filter]" title="<?php _e('Add Filter','eml'); ?>" value="1" <?php checked(1, $wpuxss_eml_mimes[$type]['filter']); ?> /></td>
562
+ <td class="checkbox_td"><input type="checkbox" name="wpuxss_eml_mimes[<?php echo $type; ?>][upload]" title="<?php _e('Allow Upload','eml'); ?>" value="1" <?php checked(true, $allowed); ?> /></td>
563
+ <td><a class="wpuxss-eml-button-remove" title="Delete MIME Type" href="javascript:;">&ndash;</a></td>
564
+ </tr>
565
+
566
+ <?php }
567
  }
568
+ ?>
569
+ <tr class="wpuxss-eml-clone" style="display:none;">
570
+ <td><input type="text" class="wpuxss-eml-type" placeholder="jpg|jpeg|jpe" /></td>
571
+ <td><input type="text" class="wpuxss-eml-mime" placeholder="image/jpeg" /></td>
572
+ <td><input type="text" class="wpuxss-eml-singular" placeholder="Image" /></td>
573
+ <td><input type="text" class="wpuxss-eml-plural" placeholder="Images" /></td>
574
+ <td class="checkbox_td"><input type="checkbox" class="wpuxss-eml-filter" title="<?php _e('Add Filter','eml'); ?>" value="1" /></td>
575
+ <td class="checkbox_td"><input type="checkbox" class="wpuxss-eml-upload" title="<?php _e('Allow Upload','eml'); ?>" value="1" /></td>
576
+ <td><a class="wpuxss-eml-button-remove" title="<?php _e('Delete MIME Type','eml'); ?>" href="javascript:;">&ndash;</a></td>
577
+ </tr>
578
+
579
+ </tbody>
580
+ <tfoot>
581
+ <tr>
582
+ <th scope="col" class="manage-column wpuxss-eml-column-extension"><?php _e('Extension','eml'); ?></th>
583
+ <th scope="col" class="manage-column wpuxss-eml-column-mime"><?php _e('MIME Type','eml'); ?></th>
584
+ <th scope="col" class="manage-column wpuxss-eml-column-singular"><?php _e('Singular Label','eml'); ?></th>
585
+ <th scope="col" class="manage-column wpuxss-eml-column-plural"><?php _e('Plural Label','eml'); ?></th>
586
+ <th scope="col" class="manage-column wpuxss-eml-column-filter"><?php _e('Add Filter','eml'); ?></th>
587
+ <th scope="col" class="manage-column wpuxss-eml-column-upload"><?php _e('Allow Upload','eml'); ?></th>
588
+ <th scope="col" class="manage-column wpuxss-eml-column-delete"></th>
589
+ </tr>
590
+ </tfoot>
591
+ </table>
592
 
593
+ <?php submit_button(__('Restore default MIME Types','eml'),'secondary','wpuxss_eml_restore_mimes_backup'); ?>
594
+
595
+ <?php submit_button(); ?>
596
+
597
+ </form>
 
 
 
 
 
 
 
 
598
 
599
+ </div>
 
 
 
 
600
 
601
+ <div id="postbox-container-1" class="postbox-container">
602
+
603
+ <?php wpuxss_eml_print_credits(); ?>
604
+
605
+ </div>
606
 
607
  </div>
608
+
609
  </div>
610
 
611
  </div>
612
+
613
+ <?php
614
+ }
 
615
  }
616
 
617
 
625
  * @created 28/09/13
626
  */
627
 
628
+ if( ! function_exists('wpuxss_eml_print_credits') ) {
 
 
 
629
 
630
+ function wpuxss_eml_print_credits() {
631
+
632
+ global $wpuxss_eml_version; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
633
 
634
+ <div class="postbox" id="wpuxss-credits">
635
+
636
+ <h3 class="hndle">Enhanced Media Library <?php echo $wpuxss_eml_version; ?></h3>
637
+
638
+ <div class="inside">
639
+
640
+ <h4>Changelog</h4>
641
+ <p>What's new in <a href="http://wordpress.org/plugins/enhanced-media-library/changelog/">version <?php echo $wpuxss_eml_version; ?></a>.</p>
642
+
643
+ <h4>Enhanced Media Library PRO</h4>
644
+ <p>More features under the hood <a href="http://www.wpuxsolutions.com/plugins/enhanced-media-library/">www.wpuxsolutions.com</a>.</p>
645
+
646
+ <h4>Support</h4>
647
+ <p>Feel free to ask for help on <a href="http://www.wpuxsolutions.com/support/">www.wpuxsolutions.com</a>. Support is free for both versions of the plugin.</p>
648
+
649
+ <h4>Plugin rating</h4>
650
+ <p>Please <a href="http://wordpress.org/support/view/plugin-reviews/enhanced-media-library">vote for the plugin</a>. Thanks!</p>
651
+
652
+ <h4>Other plugins you may find useful</h4>
653
+ <ul>
654
+ <li><a href="http://wordpress.org/plugins/toolbar-publish-button/">Toolbar Publish Button</a></li>
655
+ </ul>
656
+
657
+ <div class="author">
658
+ <span><a href="http://www.wpuxsolutions.com/">wpUXsolutions</a> by <a class="logo-webbistro" href="http://twitter.com/webbistro"><span class="icon-webbistro">@</span>webbistro</a></span>
659
+ </div>
660
+
661
  </div>
662
+
663
  </div>
664
+
665
+ <?php
666
+ }
 
667
  }
668
 
 
669
  ?>
core/taxonomies.php CHANGED
@@ -13,10 +13,10 @@
13
  * @created 05/08/14
14
  */
15
 
16
- if( ! function_exists( 'unregister_taxonomy_for_object_type' ) )
17
- {
18
- function unregister_taxonomy_for_object_type( $taxonomy, $object_type )
19
- {
20
  global $wp_taxonomies;
21
 
22
  if ( ! isset( $wp_taxonomies[ $taxonomy ] ) )
@@ -44,85 +44,117 @@ if( ! function_exists( 'unregister_taxonomy_for_object_type' ) )
44
  * @since 1.0
45
  * @created 28/09/13
46
  */
47
-
48
- function wpuxss_eml_taxonomies_validate($input)
49
- {
50
- if ( !$input ) $input = array();
51
-
52
- foreach ( $input as $taxonomy => $params )
53
- {
54
- $sanitized_taxonomy = sanitize_key($taxonomy);
55
-
56
- if ( $sanitized_taxonomy !== $taxonomy )
57
- {
58
- $input[$sanitized_taxonomy] = $input[$taxonomy];
59
- unset($input[$taxonomy]);
60
- $taxonomy = $sanitized_taxonomy;
61
- }
62
-
63
- if ( !isset($params['hierarchical']) )
64
- $input[$taxonomy]['hierarchical'] = 0;
65
-
66
- if ( !isset($params['sort']) )
67
- $input[$taxonomy]['sort'] = 0;
68
-
69
- if ( !isset($params['show_admin_column']) )
70
- $input[$taxonomy]['show_admin_column'] = 0;
71
-
72
- if ( !isset($params['show_in_nav_menus']) )
73
- $input[$taxonomy]['show_in_nav_menus'] = 0;
74
 
75
- if ( !isset($params['assigned']) )
76
- $input[$taxonomy]['assigned'] = 0;
77
 
78
- if ( !isset($params['admin_filter']) )
79
- $input[$taxonomy]['admin_filter'] = 0;
80
-
81
- if ( !isset($params['media_uploader_filter']) )
82
- $input[$taxonomy]['media_uploader_filter'] = 0;
 
 
83
 
84
- if ( !isset($params['rewrite']['with_front']) )
85
- $input[$taxonomy]['rewrite']['with_front'] = 0;
 
 
 
 
86
 
87
- $input[$taxonomy]['hierarchical'] = intval($input[$taxonomy]['hierarchical']);
88
- $input[$taxonomy]['sort'] = intval($input[$taxonomy]['sort']);
89
- $input[$taxonomy]['show_admin_column'] = intval($input[$taxonomy]['show_admin_column']);
90
- $input[$taxonomy]['show_in_nav_menus'] = intval($input[$taxonomy]['show_in_nav_menus']);
91
- $input[$taxonomy]['assigned'] = intval($input[$taxonomy]['assigned']);
92
- $input[$taxonomy]['admin_filter'] = intval($input[$taxonomy]['admin_filter']);
93
- $input[$taxonomy]['media_uploader_filter'] = intval($input[$taxonomy]['media_uploader_filter']);
94
- $input[$taxonomy]['rewrite']['with_front'] = intval($input[$taxonomy]['rewrite']['with_front']);
95
-
96
- if ( isset($params['labels']) )
97
- {
98
- $default_labels = array(
99
- 'menu_name' => $params['labels']['name'],
100
- 'all_items' => 'All ' . $params['labels']['name'],
101
- 'edit_item' => 'Edit ' . $params['labels']['singular_name'],
102
- 'view_item' => 'View ' . $params['labels']['singular_name'],
103
- 'update_item' => 'Update ' . $params['labels']['singular_name'],
104
- 'add_new_item' => 'Add New ' . $params['labels']['singular_name'],
105
- 'new_item_name' => 'New ' . $params['labels']['singular_name'] . ' Name',
106
- 'parent_item' => 'Parent ' . $params['labels']['singular_name'],
107
- 'search_items' => 'Search ' . $params['labels']['name']
108
- );
109
 
110
- foreach ( $params['labels'] as $label => $value )
111
  {
112
- $input[$taxonomy]['labels'][$label] = sanitize_text_field($value);
 
 
 
 
 
 
 
 
 
 
113
 
114
- if ( empty($value) && isset($default_labels[$label]) )
115
  {
116
- $input[$taxonomy]['labels'][$label] = sanitize_text_field($default_labels[$label]);
 
 
 
 
 
117
  }
118
  }
119
  }
120
-
121
- if ( isset($params['rewrite']['slug']) )
122
- $input[$taxonomy]['rewrite']['slug'] = sanitize_key($params['rewrite']['slug']);
123
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
124
 
125
- return $input;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
 
128
 
@@ -139,72 +171,117 @@ function wpuxss_eml_taxonomies_validate($input)
139
 
140
  add_action( 'wp_ajax_query-attachments', 'wpuxss_eml_ajax_query_attachments', 0 );
141
 
142
- function wpuxss_eml_ajax_query_attachments() {
143
-
144
- global $wp_version;
145
-
146
- if ( ! current_user_can( 'upload_files' ) )
147
- wp_send_json_error();
 
 
 
 
 
148
 
149
- $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
 
 
150
 
151
- if ( version_compare( $wp_version, '4.1', '<' ) ) {
152
-
153
- if ( isset( $query['year'] ) && $query['year'] &&
154
- isset( $query['monthnum'] ) && $query['monthnum'] ) {
155
-
156
- $query['m'] = $query['year'] . $query['monthnum'];
157
- } else {
 
158
 
159
- $query['m'] = '';
 
 
 
 
 
 
 
 
 
160
  }
 
 
161
 
162
- $query = array_intersect_key( $query, array_flip( array(
163
- 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
164
- 'post_parent', 'post__in', 'post__not_in', 'm'
165
- ) ) );
166
- } else {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
 
168
- $query = array_intersect_key( $query, array_flip( array(
169
- 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
170
- 'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
171
- ) ) );
172
- }
173
 
174
- $query['tax_query'] = array( 'relation' => 'AND' );
175
-
176
- foreach ( get_object_taxonomies('attachment','names') as $taxonomy )
177
- {
178
- if ( isset( $_REQUEST['query'][$taxonomy] ) && is_numeric( $_REQUEST['query'][$taxonomy] ) )
179
- {
180
- array_push($query['tax_query'],array(
181
- 'taxonomy' => $taxonomy,
182
- 'field' => 'id',
183
- 'terms' => $_REQUEST['query'][$taxonomy]
184
- ));
185
  }
186
- }
187
-
188
- $query['post_type'] = 'attachment';
189
 
190
- if ( MEDIA_TRASH
191
- && ! empty( $_REQUEST['query']['post_status'] )
192
- && 'trash' === $_REQUEST['query']['post_status'] ) {
193
- $query['post_status'] = 'trash';
194
- } else {
195
- $query['post_status'] = 'inherit';
 
 
 
 
196
  }
197
-
198
- if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
199
- $query['post_status'] .= ',private';
200
-
201
- $query = apply_filters( 'ajax_query_attachments_args', $query );
202
- $query = new WP_Query( $query );
203
-
204
- $posts = array_map( 'wp_prepare_attachment_for_js', $query->posts );
205
- $posts = array_filter( $posts );
206
-
207
- wp_send_json_success( $posts );
208
  }
209
 
210
 
@@ -213,7 +290,7 @@ function wpuxss_eml_ajax_query_attachments() {
213
  /**
214
  * wpuxss_eml_restrict_manage_posts
215
  *
216
- * Filter media by category
217
  *
218
  * @since 1.0
219
  * @created 11/08/13
@@ -221,108 +298,275 @@ function wpuxss_eml_ajax_query_attachments() {
221
 
222
  add_action('restrict_manage_posts','wpuxss_eml_restrict_manage_posts');
223
 
224
- function wpuxss_eml_restrict_manage_posts()
225
- {
226
- global $pagenow,
227
- $wp_query;
228
 
 
 
 
 
 
 
229
 
230
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
231
 
232
- if ( 'upload.php' == $pagenow )
233
- {
234
- foreach ( get_object_taxonomies('attachment','object') as $taxonomy )
235
  {
236
- if ( $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'] )
237
- {
238
- $selected = 0;
 
 
 
 
 
 
 
 
239
 
240
- foreach ( $wp_query->tax_query->queries as $taxonomy_var )
241
- {
242
- if ( $taxonomy_var['taxonomy'] == $taxonomy->name && $taxonomy_var['field'] == 'slug' )
243
- {
244
- $term = get_term_by('slug', $taxonomy_var['terms'][0], $taxonomy->name);
245
- if ($term) $selected = $term->term_id;
246
- }
 
 
 
 
 
 
 
 
 
247
  }
248
-
249
- wp_dropdown_categories(
250
- array(
251
- 'show_option_all' => $taxonomy->labels->all_items,
252
- 'taxonomy' => $taxonomy->name,
253
- 'name' => $taxonomy->name,
254
- 'orderby' => 'name',
255
- 'selected' => $selected,
256
- 'hierarchical' => true,
257
- 'show_count' => false,
258
- 'hide_empty' => false,
259
- 'hide_if_empty' => true
260
- )
261
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
262
  }
 
 
 
 
 
 
 
 
 
 
 
263
  }
 
264
  }
265
  }
266
 
267
 
268
 
269
 
 
270
  /**
271
- * wpuxss_eml_parse_query
272
  *
273
- * @since 1.0
274
- * @created 11/08/13
275
  */
276
 
277
- add_filter('parse_query', 'wpuxss_eml_parse_query');
278
 
279
- function wpuxss_eml_parse_query($query)
280
- {
281
- global $pagenow;
282
 
283
- if ( 'upload.php' === $pagenow )
284
- {
285
- $qv = &$query->query_vars;
286
 
287
- foreach ( get_object_taxonomies('attachment','object') as $taxonomy )
 
 
 
 
288
  {
289
- if ( isset( $qv['taxonomy']) && isset($qv['term'] ) )
 
 
290
  {
291
- $tax = $qv['taxonomy'];
292
-
293
- if ( $tax == 'category' )
294
- $tax = 'category_name';
295
-
296
- if ( $tax == 'post_tag' )
297
- $tax = 'tag';
298
-
299
- $qv[$tax] = $qv['term'];
300
- unset($qv['taxonomy']);
301
- unset($qv['term']);
302
  }
303
 
304
- if ( isset($_REQUEST[$taxonomy->name]) && $_REQUEST[$taxonomy->name] && is_numeric($_REQUEST[$taxonomy->name]) )
 
 
305
  {
306
- $tax = $taxonomy->name;
307
-
308
- if ( $tax == 'category' )
309
- $tax = 'category_name';
310
 
311
- if ( $tax == 'post_tag' )
312
- $tax = 'tag';
313
-
314
- $term = get_term_by('id', $_REQUEST[$taxonomy->name], $taxonomy->name);
315
-
316
- if ($term)
317
- $qv[$tax] = $term->slug;
318
- }
319
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
320
  }
321
  }
322
 
323
 
324
 
325
 
 
326
  /**
327
  * wpuxss_eml_attachment_fields_to_edit
328
  *
@@ -334,53 +578,58 @@ function wpuxss_eml_parse_query($query)
334
 
335
  add_filter( 'attachment_fields_to_edit', 'wpuxss_eml_attachment_fields_to_edit', 10, 2 );
336
 
337
- function wpuxss_eml_attachment_fields_to_edit( $form_fields, $post ) {
338
 
339
- foreach ( get_attachment_taxonomies($post) as $taxonomy ) {
340
-
341
- $t = (array) get_taxonomy($taxonomy);
342
- if ( ! $t['show_ui'] )
343
- continue;
344
- if ( empty($t['label']) )
345
- $t['label'] = $taxonomy;
346
- if ( empty($t['args']) )
347
- $t['args'] = array();
348
-
349
- $terms = get_object_term_cache($post->ID, $taxonomy);
350
- if ( false === $terms )
351
- $terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
352
-
353
- $values = array();
354
 
355
- foreach ( $terms as $term )
356
- $values[] = $term->slug;
357
-
358
- $t['value'] = join(', ', $values);
359
- $t['show_in_edit'] = false;
360
 
361
- if ( $t['hierarchical'] && function_exists( 'wp_terms_checklist' ) )
362
- {
363
- ob_start();
364
 
365
- wp_terms_checklist( $post->ID, array( 'taxonomy' => $taxonomy, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Checklist() ) );
 
 
 
 
 
 
 
 
 
 
366
 
367
- if ( ob_get_contents() != false )
368
- $html = '<ul class="term-list">' . ob_get_contents() . '</ul>';
369
- else
370
- $html = '<ul class="term-list"><li>No ' . $t['label'] . ' found.</li></ul>';
371
-
372
- ob_end_clean();
373
 
374
- unset( $t['value'] );
 
 
 
 
375
 
376
- $t['input'] = 'html';
377
- $t['html'] = $html;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  }
379
 
380
- $form_fields[$taxonomy] = $t;
381
  }
382
-
383
- return $form_fields;
384
  }
385
 
386
 
@@ -395,39 +644,40 @@ function wpuxss_eml_attachment_fields_to_edit( $form_fields, $post ) {
395
  * @created 09/09/13
396
  */
397
 
398
- class Walker_Media_Taxonomy_Checklist extends Walker
399
- {
400
- var $tree_type = 'category';
401
- var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
402
-
403
- function start_lvl( &$output, $depth = 0, $args = array() )
404
- {
405
- $indent = str_repeat("\t", $depth);
406
- $output .= "$indent<ul class='children'>\n";
407
- }
408
-
409
- function end_lvl( &$output, $depth = 0, $args = array() )
410
- {
411
- $indent = str_repeat("\t", $depth);
412
- $output .= "$indent</ul>\n";
413
- }
414
-
415
- function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 )
416
- {
417
- extract($args);
418
 
419
- if ( empty($taxonomy) )
420
- $taxonomy = 'category';
421
-
422
- $name = 'tax_input['.$taxonomy.']';
423
-
424
- $class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
425
- $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . '<label class="selectit"><input value="' . $category->slug . '" type="checkbox" name="'.$name.'['. $category->slug.']" id="in-'.$taxonomy.'-' . $category->term_id . '"' . checked( in_array( $category->term_id, $selected_cats ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . ' /> ' . esc_html( apply_filters('the_category', $category->name )) . '</label>';
426
- }
427
-
428
- function end_el( &$output, $category, $depth = 0, $args = array() )
429
- {
430
- $output .= "</li>\n";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
431
  }
432
  }
433
 
@@ -442,33 +692,36 @@ class Walker_Media_Taxonomy_Checklist extends Walker
442
  * @since 1.0.1
443
  * @created 05/11/13
444
  */
445
-
446
- class Walker_Media_Taxonomy_Uploader_Filter extends Walker
447
- {
448
- var $tree_type = 'category';
449
- var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
450
-
451
- function start_lvl( &$output, $depth = 0, $args = array() )
452
- {
453
- $output .= "";
454
- }
455
-
456
- function end_lvl( &$output, $depth = 0, $args = array() )
457
- {
458
- $output .= "";
459
- }
460
 
461
- function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 )
462
- {
463
- extract($args);
464
-
465
- $indent = str_repeat('&nbsp;&nbsp;&nbsp;', $depth);
466
- $output .= $category->term_id . '>' . $indent . esc_html( apply_filters('the_category', $category->name )) . '|';
467
- }
468
-
469
- function end_el( &$output, $category, $depth = 0, $args = array() )
470
- {
 
 
 
 
471
  $output .= "";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
472
  }
473
  }
474
 
@@ -487,57 +740,66 @@ class Walker_Media_Taxonomy_Uploader_Filter extends Walker
487
 
488
  add_action( 'wp_ajax_save-attachment-compat', 'wpuxss_eml_save_attachment_compat', 0 );
489
 
490
- function wpuxss_eml_save_attachment_compat()
491
- {
492
- if ( ! isset( $_REQUEST['id'] ) )
493
- wp_send_json_error();
494
-
495
- if ( ! $id = absint( $_REQUEST['id'] ) )
496
- wp_send_json_error();
497
-
498
- if ( empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][ $id ] ) )
499
- wp_send_json_error();
500
- $attachment_data = $_REQUEST['attachments'][ $id ];
501
-
502
- check_ajax_referer( 'update-post_' . $id, 'nonce' );
503
-
504
- if ( ! current_user_can( 'edit_post', $id ) )
505
- wp_send_json_error();
506
-
507
- $post = get_post( $id, ARRAY_A );
508
-
509
- if ( 'attachment' != $post['post_type'] )
510
- wp_send_json_error();
511
-
512
- /** This filter is documented in wp-admin/includes/media.php */
513
- $post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );
514
-
515
- if ( isset( $post['errors'] ) ) {
516
- $errors = $post['errors']; // @todo return me and display me!
517
- unset( $post['errors'] );
518
- }
519
-
520
- wp_update_post( $post );
521
-
522
- foreach ( get_attachment_taxonomies( $post ) as $taxonomy )
523
- {
524
- if ( isset( $attachment_data[ $taxonomy ] ) )
525
- wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
526
- else if ( isset($_REQUEST['tax_input']) && isset( $_REQUEST['tax_input'][ $taxonomy ] ) )
527
- wp_set_object_terms( $id, $_REQUEST['tax_input'][ $taxonomy ], $taxonomy, false );
528
- else
529
- wp_set_object_terms( $id, '', $taxonomy, false );
530
- }
531
-
532
- if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
533
- wp_send_json_error();
 
 
 
 
534
 
535
- wp_send_json_success( $attachment );
 
 
 
 
536
  }
537
 
538
 
539
 
540
 
 
541
  /**
542
  * wpuxss_eml_pre_get_posts
543
  *
@@ -549,19 +811,25 @@ function wpuxss_eml_save_attachment_compat()
549
 
550
  add_action( 'pre_get_posts', 'wpuxss_eml_pre_get_posts', 99 );
551
 
552
- function wpuxss_eml_pre_get_posts( $query )
553
- {
554
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
555
-
556
- if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
557
 
558
- foreach ( $wpuxss_eml_taxonomies as $taxonomy => $params )
559
- {
560
- if ( $params['assigned'] && $params['eml_media'] && $query->is_main_query() && is_tax($taxonomy) && !is_admin() )
561
- {
562
- $query->set( 'post_type', 'attachment' );
563
- $query->set( 'post_status', 'inherit' );
564
- }
 
 
 
 
 
 
 
 
565
  }
566
  }
567
 
13
  * @created 05/08/14
14
  */
15
 
16
+ if( ! function_exists( 'unregister_taxonomy_for_object_type' ) ) {
17
+
18
+ function unregister_taxonomy_for_object_type( $taxonomy, $object_type ) {
19
+
20
  global $wp_taxonomies;
21
 
22
  if ( ! isset( $wp_taxonomies[ $taxonomy ] ) )
44
  * @since 1.0
45
  * @created 28/09/13
46
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
+ if( ! function_exists( 'wpuxss_eml_taxonomies_validate' ) ) {
 
49
 
50
+ function wpuxss_eml_taxonomies_validate($input) {
51
+
52
+ if ( !$input ) $input = array();
53
+
54
+ foreach ( $input as $taxonomy => $params )
55
+ {
56
+ $sanitized_taxonomy = sanitize_key($taxonomy);
57
 
58
+ if ( $sanitized_taxonomy !== $taxonomy )
59
+ {
60
+ $input[$sanitized_taxonomy] = $input[$taxonomy];
61
+ unset($input[$taxonomy]);
62
+ $taxonomy = $sanitized_taxonomy;
63
+ }
64
 
65
+ $input[$taxonomy]['hierarchical'] = isset($params['hierarchical']) ? 1: 0;
66
+ $input[$taxonomy]['sort'] = isset($params['sort']) ? 1: 0;
67
+ $input[$taxonomy]['show_admin_column'] = isset($params['show_admin_column']) ? 1: 0;
68
+ $input[$taxonomy]['show_in_nav_menus'] = isset($params['show_in_nav_menus']) ? 1: 0;
69
+ $input[$taxonomy]['assigned'] = isset($params['assigned']) ? 1: 0;
70
+ $input[$taxonomy]['admin_filter'] = isset($params['admin_filter']) ? 1: 0;
71
+ $input[$taxonomy]['media_uploader_filter'] = isset($params['media_uploader_filter']) ? 1: 0;
72
+ $input[$taxonomy]['media_popup_taxonomy_edit'] = isset($params['media_popup_taxonomy_edit']) ? 1: 0;
73
+ $input[$taxonomy]['rewrite']['with_front'] = isset($params['rewrite']['with_front']) ? 1: 0;
74
+ $input[$taxonomy]['rewrite']['slug'] = isset($params['rewrite']['slug']) ? wpuxss_eml_sanitize_slug( $params['rewrite']['slug'], $taxonomy ) : '';
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
+ if ( isset($params['labels']) )
77
  {
78
+ $default_labels = array(
79
+ 'menu_name' => $params['labels']['name'],
80
+ 'all_items' => 'All ' . $params['labels']['name'],
81
+ 'edit_item' => 'Edit ' . $params['labels']['singular_name'],
82
+ 'view_item' => 'View ' . $params['labels']['singular_name'],
83
+ 'update_item' => 'Update ' . $params['labels']['singular_name'],
84
+ 'add_new_item' => 'Add New ' . $params['labels']['singular_name'],
85
+ 'new_item_name' => 'New ' . $params['labels']['singular_name'] . ' Name',
86
+ 'parent_item' => 'Parent ' . $params['labels']['singular_name'],
87
+ 'search_items' => 'Search ' . $params['labels']['name']
88
+ );
89
 
90
+ foreach ( $params['labels'] as $label => $value )
91
  {
92
+ $input[$taxonomy]['labels'][$label] = sanitize_text_field($value);
93
+
94
+ if ( empty($value) && isset($default_labels[$label]) )
95
+ {
96
+ $input[$taxonomy]['labels'][$label] = sanitize_text_field($default_labels[$label]);
97
+ }
98
  }
99
  }
100
  }
101
+
102
+ return $input;
 
103
  }
104
+ }
105
+
106
+
107
+
108
+
109
+
110
+ /**
111
+ * wpuxss_eml_sanitize_slug
112
+ *
113
+ * @since 2.0.4
114
+ * @created 07/02/15
115
+ */
116
+
117
+ if( ! function_exists( 'wpuxss_eml_sanitize_slug' ) ) {
118
+
119
+ function wpuxss_eml_sanitize_slug( $slug, $fallback_slug = '' ) {
120
+
121
+ $slug_array = explode ( '/', $slug );
122
+ $slug_array = array_filter( $slug_array );
123
+ $slug_array = array_map ( 'remove_accents', $slug_array );
124
+ $slug_array = array_map ( 'sanitize_title_with_dashes', $slug_array );
125
 
126
+ $slug = implode ( '/', $slug_array );
127
+
128
+ if ( '' === $slug || false === $slug )
129
+ $slug = $fallback_slug;
130
+
131
+ return $slug;
132
+ }
133
+ }
134
+
135
+
136
+
137
+
138
+
139
+
140
+ /**
141
+ * wpuxss_eml_tax_options_validate
142
+ *
143
+ * @type callback function
144
+ * @since 2.0.4
145
+ * @created 28/01/15
146
+ */
147
+
148
+ if( ! function_exists( 'wpuxss_eml_tax_options_validate' ) ) {
149
+
150
+ function wpuxss_eml_tax_options_validate( $input ) {
151
+
152
+ foreach ( (array)$input as $key => $option ) {
153
+ $input[$key] = intval( $option );
154
+ }
155
+
156
+ return $input;
157
+ }
158
  }
159
 
160
 
171
 
172
  add_action( 'wp_ajax_query-attachments', 'wpuxss_eml_ajax_query_attachments', 0 );
173
 
174
+
175
+ if( ! function_exists( 'wpuxss_eml_ajax_query_attachments' ) ) {
176
+
177
+ function wpuxss_eml_ajax_query_attachments() {
178
+
179
+ global $wp_version;
180
+
181
+ if ( ! current_user_can( 'upload_files' ) )
182
+ wp_send_json_error();
183
+
184
+ $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
185
 
186
+ $uncategorized = ( isset( $query['uncategorized'] ) && $query['uncategorized'] ) ? 1 : 0;
187
+
188
+ if ( version_compare( $wp_version, '4.1', '<' ) ) {
189
 
190
+ if ( isset( $query['year'] ) && $query['year'] &&
191
+ isset( $query['monthnum'] ) && $query['monthnum'] ) {
192
+
193
+ $query['m'] = $query['year'] . $query['monthnum'];
194
+ } else {
195
+
196
+ $query['m'] = '';
197
+ }
198
 
199
+ $query = array_intersect_key( $query, array_flip( array(
200
+ 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
201
+ 'post_parent', 'post__in', 'post__not_in', 'm'
202
+ ) ) );
203
+ } else {
204
+
205
+ $query = array_intersect_key( $query, array_flip( array(
206
+ 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
207
+ 'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
208
+ ) ) );
209
  }
210
+
211
+ $query['tax_query'] = array( 'relation' => 'AND' );
212
 
213
+ foreach ( get_object_taxonomies( 'attachment', 'names' ) as $taxonomy )
214
+ {
215
+ if ( $uncategorized )
216
+ {
217
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
218
+
219
+ $query['tax_query'][] = array(
220
+ 'taxonomy' => $taxonomy,
221
+ 'field' => 'id',
222
+ 'terms' => $terms,
223
+ 'operator' => 'NOT IN',
224
+ );
225
+ }
226
+ else
227
+ {
228
+ if ( isset( $_REQUEST['query'][$taxonomy] ) )
229
+ {
230
+ if( is_numeric( $_REQUEST['query'][$taxonomy] ) )
231
+ {
232
+ $query['tax_query'][] = array(
233
+ 'taxonomy' => $taxonomy,
234
+ 'field' => 'id',
235
+ 'terms' => $_REQUEST['query'][$taxonomy]
236
+ );
237
+ }
238
+ elseif ( 'not_in' === $_REQUEST['query'][$taxonomy] )
239
+ {
240
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
241
+
242
+ $query['tax_query'][] = array(
243
+ 'taxonomy' => $taxonomy,
244
+ 'field' => 'id',
245
+ 'terms' => $terms,
246
+ 'operator' => 'NOT IN',
247
+ );
248
+ }
249
+ elseif ( 'in' === $_REQUEST['query'][$taxonomy] )
250
+ {
251
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
252
+
253
+ $query['tax_query'][] = array(
254
+ 'taxonomy' => $taxonomy,
255
+ 'field' => 'id',
256
+ 'terms' => $terms,
257
+ 'operator' => 'IN',
258
+ );
259
+ }
260
+ }
261
+ }
262
+ } // endforeach
263
 
264
+ $query['post_type'] = 'attachment';
 
 
 
 
265
 
266
+ if ( MEDIA_TRASH
267
+ && ! empty( $_REQUEST['query']['post_status'] )
268
+ && 'trash' === $_REQUEST['query']['post_status'] ) {
269
+ $query['post_status'] = 'trash';
270
+ } else {
271
+ $query['post_status'] = 'inherit';
 
 
 
 
 
272
  }
 
 
 
273
 
274
+ if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
275
+ $query['post_status'] .= ',private';
276
+
277
+ $query = apply_filters( 'ajax_query_attachments_args', $query );
278
+ $query = new WP_Query( $query );
279
+
280
+ $posts = array_map( 'wp_prepare_attachment_for_js', $query->posts );
281
+ $posts = array_filter( $posts );
282
+
283
+ wp_send_json_success( $posts );
284
  }
 
 
 
 
 
 
 
 
 
 
 
285
  }
286
 
287
 
290
  /**
291
  * wpuxss_eml_restrict_manage_posts
292
  *
293
+ * Adds taxonomy filters to Media Library List Views
294
  *
295
  * @since 1.0
296
  * @created 11/08/13
298
 
299
  add_action('restrict_manage_posts','wpuxss_eml_restrict_manage_posts');
300
 
301
+ if( ! function_exists( 'wpuxss_eml_restrict_manage_posts' ) ) {
 
 
 
302
 
303
+ function wpuxss_eml_restrict_manage_posts() {
304
+
305
+ global $current_screen;
306
+
307
+
308
+ $media_library_mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
309
 
 
310
 
311
+ if ( isset( $current_screen ) && 'upload' === $current_screen->base && 'list' === $media_library_mode )
 
 
312
  {
313
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
314
+
315
+ $uncategorized = ( isset( $_REQUEST['attachment-filter'] ) && 'uncategorized' === $_REQUEST['attachment-filter'] ) ? 1 : 0;
316
+
317
+ foreach ( get_object_taxonomies( 'attachment', 'object' ) as $taxonomy )
318
+ {
319
+ if ( $wpuxss_eml_taxonomies[$taxonomy->name]['admin_filter'] )
320
+ {
321
+ echo "<label for='{$taxonomy->name}' class='screen-reader-text'>" . __('Filter by ','eml') . "{$taxonomy->labels->singular_name}</label>";
322
+
323
+ $selected = ( ! $uncategorized && isset( $_REQUEST[$taxonomy->name] ) ) ? $_REQUEST[$taxonomy->name] : 0;
324
 
325
+ wpuxss_eml_dropdown_terms(
326
+ array(
327
+ 'show_option_all' => __( 'Filter by ', 'eml' ) . $taxonomy->labels->singular_name,
328
+ 'show_option_in' => '— ' . __( 'All ', 'eml' ) . $taxonomy->labels->name . ' —',
329
+ 'show_option_not_in' => '— ' . __( 'Not in ', 'eml' ) . $taxonomy->labels->singular_name . ' —',
330
+ 'taxonomy' => $taxonomy->name,
331
+ 'name' => $taxonomy->name,
332
+ 'orderby' => 'name',
333
+ 'selected' => $selected,
334
+ 'hierarchical' => true,
335
+ 'show_count' => false,
336
+ 'hide_empty' => false,
337
+ 'hide_if_empty' => true,
338
+ 'class' => 'eml-attachment-filters'
339
+ )
340
+ );
341
  }
342
+ } // endforeach
343
+ }
344
+ }
345
+ }
346
+
347
+
348
+
349
+
350
+
351
+ /**
352
+ * wpuxss_eml_custom_media
353
+ *
354
+ * Replaces upload.php with the custom one
355
+ *
356
+ * @since 2.0.4
357
+ * @created 21/02/15
358
+ */
359
+
360
+ add_action( 'load-upload.php', 'wpuxss_eml_custom_media' );
361
+
362
+ if( ! function_exists( 'wpuxss_eml_custom_media' ) ) {
363
+
364
+ function wpuxss_eml_custom_media() {
365
+
366
+ require_once( ABSPATH . 'wp-admin/includes/class-wp-media-list-table.php' );
367
+ require_once( 'class-eml-media-list-table.php' );
368
+ require_once( 'eml-upload.php' );
369
+
370
+ exit();
371
+ }
372
+ }
373
+
374
+
375
+
376
+
377
+
378
+ /**
379
+ * wpuxss_eml_dropdown_terms
380
+ *
381
+ * Based on wp_dropdown_categories()
382
+ *
383
+ * @since 2.0.4
384
+ * @created 12/02/15
385
+ */
386
+
387
+ if( ! function_exists( 'wpuxss_eml_dropdown_terms' ) ) {
388
+
389
+ function wpuxss_eml_dropdown_terms( $args = '' ) {
390
+
391
+ $defaults = array(
392
+ 'show_option_all' => '',
393
+ 'show_option_in' => '',
394
+ 'show_option_not_in' => '',
395
+ 'orderby' => 'id',
396
+ 'order' => 'ASC',
397
+ 'show_count' => 0,
398
+ 'hide_empty' => 1,
399
+ 'child_of' => 0,
400
+ 'exclude' => '',
401
+ 'echo' => 1,
402
+ 'selected' => 0,
403
+ 'hierarchical' => 0,
404
+ 'name' => '',
405
+ 'id' => '',
406
+ 'class' => 'postform',
407
+ 'depth' => 0,
408
+ 'tab_index' => 0,
409
+ 'taxonomy' => 'category',
410
+ 'hide_if_empty' => false,
411
+ );
412
+
413
+ $r = wp_parse_args( $args, $defaults );
414
+
415
+ $terms = get_terms( $r['taxonomy'], $r );
416
+ $name = esc_attr( $r['name'] );
417
+ $class = esc_attr( $r['class'] );
418
+ $id = $r['id'] ? esc_attr( $r['id'] ) : $name;
419
+
420
+ if ( ! $r['hide_if_empty'] || ! empty( $terms ) )
421
+ {
422
+ $output = "<select name='$name' id='$id' class='$class'>\n";
423
+ $show_option_all = $r['show_option_all'];
424
+ $selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : '';
425
+ $output .= "\t<option value='0'$selected>$show_option_all</option>\n";
426
+ }
427
+ else
428
+ {
429
+ $output = '';
430
+ }
431
+
432
+ if ( ! empty( $terms ) )
433
+ {
434
+ if ( $r['show_option_in'] )
435
+ {
436
+ $show_option_in = $r['show_option_in'];
437
+ $selected = ( 'in' === strval($r['selected']) ) ? " selected='selected'" : '';
438
+ $output .= "\t<option value='in'$selected>$show_option_in</option>\n";
439
+ }
440
+
441
+ if ( $r['show_option_not_in'] )
442
+ {
443
+ $show_option_not_in = $r['show_option_not_in'];
444
+ $selected = ( 'not_in' === strval($r['selected']) ) ? " selected='selected'" : '';
445
+ $output .= "\t<option value='not_in'$selected>$show_option_not_in</option>\n";
446
+ }
447
+
448
+ if ( $r['hierarchical'] )
449
+ {
450
+ $depth = $r['depth']; // Walk the full depth.
451
+ }
452
+ else
453
+ {
454
+ $depth = -1; // Flat.
455
  }
456
+ $output .= walk_category_dropdown_tree( $terms, $depth, $r );
457
+ }
458
+
459
+ if ( ! $r['hide_if_empty'] || ! empty( $terms ) )
460
+ {
461
+ $output .= "</select>\n";
462
+ }
463
+
464
+ if ( $r['echo'] )
465
+ {
466
+ echo $output;
467
  }
468
+ return $output;
469
  }
470
  }
471
 
472
 
473
 
474
 
475
+
476
  /**
477
+ * wpuxss_eml_parse_tax_query
478
  *
479
+ * @since 2.0.4
480
+ * @created 19/02/13
481
  */
482
 
483
+ add_action( 'parse_tax_query', 'wpuxss_eml_parse_tax_query' );
484
 
485
+ if( ! function_exists( 'wpuxss_eml_parse_tax_query' ) ) {
 
 
486
 
487
+ function wpuxss_eml_parse_tax_query( $query ) {
488
+
489
+ global $current_screen;
490
 
491
+
492
+ $media_library_mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
493
+
494
+
495
+ if ( isset( $current_screen ) && 'upload' === $current_screen->base && 'list' === $media_library_mode )
496
  {
497
+ $uncategorized = ( isset( $_REQUEST['attachment-filter'] ) && 'uncategorized' === $_REQUEST['attachment-filter'] ) ? 1 : 0;
498
+
499
+ if ( isset( $_REQUEST['category'] ) )
500
  {
501
+ $query->query['category'] = $query->query_vars['category'] = $_REQUEST['category'];
 
 
 
 
 
 
 
 
 
 
502
  }
503
 
504
+ $tax_query = array( 'relation' => 'AND' );
505
+
506
+ foreach ( get_object_taxonomies( 'attachment','names' ) as $taxonomy )
507
  {
508
+ if ( $uncategorized )
509
+ {
510
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
 
511
 
512
+ $tax_query[] = array(
513
+ 'taxonomy' => $taxonomy,
514
+ 'field' => 'id',
515
+ 'terms' => $terms,
516
+ 'operator' => 'NOT IN',
517
+ );
518
+
519
+ if ( isset( $query->query[$taxonomy] ) ) unset( $query->query[$taxonomy] );
520
+ if ( isset( $query->query_vars[$taxonomy] ) ) unset( $query->query_vars[$taxonomy] );
521
+ }
522
+ else
523
+ {
524
+ if ( isset( $query->query[$taxonomy] ) && $query->query[$taxonomy] )
525
+ {
526
+ if( is_numeric( $query->query[$taxonomy] ) )
527
+ {
528
+ $tax_query[] = array(
529
+ 'taxonomy' => $taxonomy,
530
+ 'field' => 'term_id',
531
+ 'terms' => array( $query->query[$taxonomy] )
532
+ );
533
+ }
534
+ elseif ( 'not_in' === $query->query[$taxonomy] )
535
+ {
536
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
537
+
538
+ $tax_query[] = array(
539
+ 'taxonomy' => $taxonomy,
540
+ 'field' => 'term_id',
541
+ 'terms' => $terms,
542
+ 'operator' => 'NOT IN',
543
+ );
544
+ }
545
+ elseif ( 'in' === $query->query[$taxonomy] )
546
+ {
547
+ $terms = get_terms( $taxonomy, array('fields'=>'ids','get'=>'all') );
548
+
549
+ $tax_query[] = array(
550
+ 'taxonomy' => $taxonomy,
551
+ 'field' => 'id',
552
+ 'terms' => $terms,
553
+ 'operator' => 'IN',
554
+ );
555
+ }
556
+ }
557
+ }
558
+ } // endforeach
559
+
560
+ $query->tax_query = new WP_Tax_Query( $tax_query );
561
+
562
+ } // endif
563
  }
564
  }
565
 
566
 
567
 
568
 
569
+
570
  /**
571
  * wpuxss_eml_attachment_fields_to_edit
572
  *
578
 
579
  add_filter( 'attachment_fields_to_edit', 'wpuxss_eml_attachment_fields_to_edit', 10, 2 );
580
 
581
+ if( ! function_exists( 'wpuxss_eml_attachment_fields_to_edit' ) ) {
582
 
583
+ function wpuxss_eml_attachment_fields_to_edit( $form_fields, $post ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
584
 
585
+ $wpuxss_eml_tax_options = get_option('wpuxss_eml_tax_options');
 
 
 
 
586
 
587
+ foreach ( get_attachment_taxonomies($post) as $taxonomy ) {
 
 
588
 
589
+ $t = (array) get_taxonomy($taxonomy);
590
+ if ( ! $t['show_ui'] )
591
+ continue;
592
+ if ( empty($t['label']) )
593
+ $t['label'] = $taxonomy;
594
+ if ( empty($t['args']) )
595
+ $t['args'] = array();
596
+
597
+ $terms = get_object_term_cache($post->ID, $taxonomy);
598
+ if ( false === $terms )
599
+ $terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
600
 
601
+ $values = array();
 
 
 
 
 
602
 
603
+ foreach ( $terms as $term )
604
+ $values[] = $term->slug;
605
+
606
+ $t['value'] = join(', ', $values);
607
+ $t['show_in_edit'] = false;
608
 
609
+ if ( ( $wpuxss_eml_tax_options['edit_all_as_hierarchical'] || $t['hierarchical'] ) && function_exists( 'wp_terms_checklist' ) )
610
+ {
611
+ ob_start();
612
+
613
+ wp_terms_checklist( $post->ID, array( 'taxonomy' => $taxonomy, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Checklist() ) );
614
+
615
+ if ( ob_get_contents() != false )
616
+ $html = '<ul class="term-list">' . ob_get_contents() . '</ul>';
617
+ else
618
+ $html = '<ul class="term-list"><li>No ' . $t['label'] . ' found.</li></ul>';
619
+
620
+ ob_end_clean();
621
+
622
+ unset( $t['value'] );
623
+
624
+ $t['input'] = 'html';
625
+ $t['html'] = $html;
626
+ }
627
+
628
+ $form_fields[$taxonomy] = $t;
629
  }
630
 
631
+ return $form_fields;
632
  }
 
 
633
  }
634
 
635
 
644
  * @created 09/09/13
645
  */
646
 
647
+ if( ! class_exists('Walker_Media_Taxonomy_Checklist') ) {
648
+
649
+ class Walker_Media_Taxonomy_Checklist extends Walker {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
650
 
651
+ var $tree_type = 'category';
652
+ var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
653
+
654
+ function start_lvl( &$output, $depth = 0, $args = array() )
655
+ {
656
+ $indent = str_repeat("\t", $depth);
657
+ $output .= "$indent<ul class='children'>\n";
658
+ }
659
+
660
+ function end_lvl( &$output, $depth = 0, $args = array() )
661
+ {
662
+ $indent = str_repeat("\t", $depth);
663
+ $output .= "$indent</ul>\n";
664
+ }
665
+
666
+ function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 )
667
+ {
668
+ extract($args);
669
+
670
+ if ( empty($taxonomy) )
671
+ $taxonomy = 'category';
672
+
673
+ $class = in_array( $category->term_id, $popular_cats ) ? ' class="popular-category"' : '';
674
+ $output .= "\n<li id='{$taxonomy}-{$category->term_id}'$class>" . "<label class='selectit'><input value='0' type='hidden' name='tax_input[{$taxonomy}][{$category->term_id}]' /><input value='1' type='checkbox' name='tax_input[{$taxonomy}][{$category->term_id}]' id='in-{$taxonomy}-{$category->term_id}'" . checked( in_array( $category->term_id, $selected_cats ), true, false ) . disabled( empty( $args['disabled'] ), false, false ) . " />" . esc_html( apply_filters('the_category', $category->name )) . "</label>";
675
+ }
676
+
677
+ function end_el( &$output, $category, $depth = 0, $args = array() )
678
+ {
679
+ $output .= "</li>\n";
680
+ }
681
  }
682
  }
683
 
692
  * @since 1.0.1
693
  * @created 05/11/13
694
  */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
 
696
+ if( ! class_exists('Walker_Media_Taxonomy_Uploader_Filter') ) {
697
+
698
+ class Walker_Media_Taxonomy_Uploader_Filter extends Walker {
699
+
700
+ var $tree_type = 'category';
701
+ var $db_fields = array ('parent' => 'parent', 'id' => 'term_id');
702
+
703
+ function start_lvl( &$output, $depth = 0, $args = array() )
704
+ {
705
+ $output .= "";
706
+ }
707
+
708
+ function end_lvl( &$output, $depth = 0, $args = array() )
709
+ {
710
  $output .= "";
711
+ }
712
+
713
+ function start_el( &$output, $category, $depth = 0, $args = array(), $id = 0 )
714
+ {
715
+ extract($args);
716
+
717
+ $indent = str_repeat('&nbsp;&nbsp;&nbsp;', $depth);
718
+ $output .= $category->term_id . '>' . $indent . esc_html( apply_filters('the_category', $category->name )) . '|';
719
+ }
720
+
721
+ function end_el( &$output, $category, $depth = 0, $args = array() )
722
+ {
723
+ $output .= "";
724
+ }
725
  }
726
  }
727
 
740
 
741
  add_action( 'wp_ajax_save-attachment-compat', 'wpuxss_eml_save_attachment_compat', 0 );
742
 
743
+ if( ! function_exists('wpuxss_eml_save_attachment_compat') ) {
744
+
745
+ function wpuxss_eml_save_attachment_compat() {
746
+
747
+ if ( ! isset( $_REQUEST['id'] ) )
748
+ wp_send_json_error();
749
+
750
+ if ( ! $id = absint( $_REQUEST['id'] ) )
751
+ wp_send_json_error();
752
+
753
+ if ( empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][ $id ] ) )
754
+ wp_send_json_error();
755
+ $attachment_data = $_REQUEST['attachments'][ $id ];
756
+
757
+ check_ajax_referer( 'update-post_' . $id, 'nonce' );
758
+
759
+ if ( ! current_user_can( 'edit_post', $id ) )
760
+ wp_send_json_error();
761
+
762
+ $post = get_post( $id, ARRAY_A );
763
+
764
+ if ( 'attachment' != $post['post_type'] )
765
+ wp_send_json_error();
766
+
767
+ /** This filter is documented in wp-admin/includes/media.php */
768
+ $post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );
769
+
770
+ if ( isset( $post['errors'] ) ) {
771
+ $errors = $post['errors']; // @todo return me and display me!
772
+ unset( $post['errors'] );
773
+ }
774
+
775
+ wp_update_post( $post );
776
+
777
+ foreach ( get_attachment_taxonomies( $post ) as $taxonomy )
778
+ {
779
+ if ( isset( $attachment_data[ $taxonomy ] ) )
780
+ {
781
+ wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
782
+ }
783
+ elseif ( isset( $_REQUEST['tax_input'] ) && isset( $_REQUEST['tax_input'][ $taxonomy ] ) )
784
+ {
785
+ $term_ids = array_keys( $_REQUEST['tax_input'][ $taxonomy ], 1 );
786
+ $term_ids = array_map( 'intval', $term_ids );
787
+
788
+ wp_set_object_terms( $id, $term_ids, $taxonomy, false );
789
+ }
790
+ }
791
 
792
+ if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
793
+ wp_send_json_error();
794
+
795
+ wp_send_json_success( $attachment );
796
+ }
797
  }
798
 
799
 
800
 
801
 
802
+
803
  /**
804
  * wpuxss_eml_pre_get_posts
805
  *
811
 
812
  add_action( 'pre_get_posts', 'wpuxss_eml_pre_get_posts', 99 );
813
 
814
+ if( ! function_exists('wpuxss_eml_pre_get_posts') ) {
815
+
816
+ function wpuxss_eml_pre_get_posts( $query ) {
 
 
817
 
818
+ $wpuxss_eml_tax_options = get_option('wpuxss_eml_tax_options');
819
+
820
+ if ( $wpuxss_eml_tax_options['tax_archives'] )
821
+ {
822
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
823
+
824
+ foreach ( (array) $wpuxss_eml_taxonomies as $taxonomy => $params )
825
+ {
826
+ if ( $params['assigned'] && $params['eml_media'] && $query->is_main_query() && is_tax($taxonomy) && !is_admin() )
827
+ {
828
+ $query->set( 'post_type', 'attachment' );
829
+ $query->set( 'post_status', 'inherit' );
830
+ }
831
+ }
832
+ }
833
  }
834
  }
835
 
css/eml-admin.css CHANGED
@@ -1,10 +1,6 @@
1
 
2
  /* == Attachment Fields == */
3
 
4
- body.eml-media-css .compat-item .field input[type="checkbox"] {
5
- width: auto;
6
- }
7
-
8
  body.eml-media-css .term-list {
9
  background-color: #fff;
10
  border: 1px solid #dfdfdf;
@@ -36,6 +32,19 @@ body.eml-media-css .term-list .children {
36
  margin: 5px 0 0 20px;
37
  }
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
 
41
 
@@ -120,6 +129,17 @@ body.eml-media-css .attachments-browser .uploader-inline {
120
 
121
 
122
 
 
 
 
 
 
 
 
 
 
 
 
123
  /* == ACF compatibility == */
124
 
125
  body.eml-media-css .media-modal.acf-expanded .attachments-browser .media-toolbar {
@@ -258,6 +278,20 @@ body.eml-media-css .media-modal.acf-expanded .attachments-browser .media-toolbar
258
  margin: 20px 0 0;
259
  }
260
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
 
262
 
263
 
1
 
2
  /* == Attachment Fields == */
3
 
 
 
 
 
4
  body.eml-media-css .term-list {
5
  background-color: #fff;
6
  border: 1px solid #dfdfdf;
32
  margin: 5px 0 0 20px;
33
  }
34
 
35
+ body.eml-media-css .compat-item .eml-tax-label {
36
+ width: 100%;
37
+ float: none;
38
+ text-align: left;
39
+ }
40
+ body.eml-media-css .compat-item .eml-tax-label span {
41
+ text-align: left;
42
+ }
43
+ body.eml-media-css .compat-item .eml-tax-field {
44
+ width: 100%;
45
+ float: none;
46
+ }
47
+
48
 
49
 
50
 
129
 
130
 
131
 
132
+ /* == Filters == */
133
+
134
+ body.eml-media-css .attachments-browser .media-toolbar-secondary select.attachment-filters {
135
+ margin-right: 4px;
136
+ }
137
+
138
+
139
+
140
+
141
+
142
+
143
  /* == ACF compatibility == */
144
 
145
  body.eml-media-css .media-modal.acf-expanded .attachments-browser .media-toolbar {
278
  margin: 20px 0 0;
279
  }
280
 
281
+ #post-query-submit {
282
+ margin: 1px 8px 0 5px;
283
+ }
284
+ #eml-reset-filters-query-submit {
285
+ margin: 1px 8px 0 0;
286
+ }
287
+
288
+ #reset-all-filters {
289
+ vertical-align: middle;
290
+ }
291
+ .mode-select #reset-all-filters {
292
+ margin: 11px 0 0;
293
+ }
294
+
295
 
296
 
297
 
enhanced-media-library.php CHANGED
@@ -3,51 +3,42 @@
3
  Plugin Name: Enhanced Media Library
4
  Plugin URI: http://wpUXsolutions.com
5
  Description: This plugin will be handy for those who need to manage a lot of media files.
6
- Version: 2.0.3
7
  Author: wpUXsolutions
8
  Author URI: http://wpUXsolutions.com
9
  Text Domain: eml
10
  Domain Path: /languages
11
  License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
12
 
13
- Copyright 2013-2014 wpUXsolutions (email : wpUXsolutions@gmail.com)
14
  */
15
 
16
 
17
 
18
 
19
- global $wp_version;
 
 
 
20
 
21
 
22
 
 
23
 
24
- $wpuxss_eml_version = '2.0.3';
25
- $wpuxss_eml_old_version = get_option('wpuxss_eml_version', false);
26
- $wpuxss_eml_dir = plugin_dir_url( __FILE__ );
27
- $wpuxss_eml_path = plugin_dir_path( __FILE__ );
28
 
29
 
30
 
 
 
31
 
32
  include_once( 'core/mime-types.php' );
33
  include_once( 'core/taxonomies.php' );
34
 
35
- if( is_admin() ) {
36
-
37
  include_once( 'core/options-pages.php' );
38
  }
39
-
40
-
41
-
42
-
43
- /**
44
- * Load plugin text domain
45
- *
46
- * @since 2.0
47
- * @created 10/09/14
48
- */
49
-
50
- load_textdomain( 'eml', $wpuxss_eml_path . 'languages/eml-' . get_locale() . '.mo' );
51
 
52
 
53
 
@@ -58,39 +49,47 @@ load_textdomain( 'eml', $wpuxss_eml_path . 'languages/eml-' . get_locale() . '.m
58
  * @since 1.0
59
  * @created 03/08/13
60
  */
61
-
62
  add_action('init', 'wpuxss_eml_on_init', 12);
63
 
64
- function wpuxss_eml_on_init() {
65
-
66
- // on activation
67
- wpuxss_eml_on_activation();
68
-
69
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
70
- if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
71
-
72
- // register eml taxonomies
73
- foreach ( $wpuxss_eml_taxonomies as $taxonomy => $params )
74
- {
75
- if ( $params['eml_media'] && !empty($params['labels']['singular_name']) && !empty($params['labels']['name']) )
 
 
 
 
 
76
  {
77
- register_taxonomy(
78
- $taxonomy,
79
- 'attachment',
80
- array(
81
- 'labels' => $params['labels'],
82
- 'public' => true,
83
- 'show_admin_column' => $params['show_admin_column'],
84
- 'show_in_nav_menus' => $params['show_in_nav_menus'],
85
- 'hierarchical' => $params['hierarchical'],
86
- 'update_count_callback' => '_update_generic_term_count',
87
- 'sort' => $params['sort'],
88
- 'rewrite' => array(
89
- 'slug' => $params['rewrite']['slug'],
90
- 'with_front' => $params['rewrite']['with_front']
91
- )
92
- )
93
- );
 
 
 
94
  }
95
  }
96
  }
@@ -104,59 +103,65 @@ function wpuxss_eml_on_init() {
104
  * @since 1.0
105
  * @created 03/11/13
106
  */
 
 
107
  add_action( 'wp_loaded', 'wpuxss_eml_on_wp_loaded' );
108
 
109
- function wpuxss_eml_on_wp_loaded() {
110
 
111
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
112
- if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
113
- $taxonomies = get_taxonomies(array(),'object');
114
 
115
- // discover 'foreign' taxonomies
116
- foreach ( $taxonomies as $taxonomy => $params )
117
- {
118
- if ( !empty($params->object_type) && !array_key_exists($taxonomy,$wpuxss_eml_taxonomies) && !in_array('revision',$params->object_type) && !in_array('nav_menu_item',$params->object_type) && $taxonomy != 'post_format' )
 
 
119
  {
120
- $wpuxss_eml_taxonomies[$taxonomy] = array(
121
- 'eml_media' => 0,
122
- 'admin_filter' => 0,
123
- 'media_uploader_filter' => 0,
124
- 'show_admin_column' => isset($params->show_admin_column) ? $params->show_admin_column : 0,
125
- 'show_in_nav_menus' => isset($params->show_in_nav_menus) ? $params->show_in_nav_menus : 0,
126
- 'hierarchical' => $params->hierarchical ? 1 : 0,
127
- 'sort' => isset($params->sort) ? $params->sort : 0
128
- );
129
-
130
- if ( in_array('attachment',$params->object_type) )
131
- $wpuxss_eml_taxonomies[$taxonomy]['assigned'] = 1;
132
- else
133
- $wpuxss_eml_taxonomies[$taxonomy]['assigned'] = 0;
 
 
 
 
134
  }
135
- }
136
-
137
- // assign/unassign taxonomies to atachment
138
- foreach ( $wpuxss_eml_taxonomies as $taxonomy => $params )
139
- {
140
- if ( $params['assigned'] )
141
- register_taxonomy_for_object_type( $taxonomy, 'attachment' );
142
-
143
- if ( ! $params['assigned'] )
144
- unregister_taxonomy_for_object_type( $taxonomy, 'attachment' );
145
- }
146
 
147
- // update_count_callback for attachment taxonomies if needed
148
- foreach ( $taxonomies as $taxonomy => $params )
149
- {
150
- if ( in_array('attachment',$params->object_type) )
151
  {
152
- global $wp_taxonomies;
 
153
 
154
- if ( !isset($wp_taxonomies[$taxonomy]->update_count_callback) || empty($wp_taxonomies[$taxonomy]->update_count_callback) )
155
- $wp_taxonomies[$taxonomy]->update_count_callback = '_update_generic_term_count';
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
-
159
- update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
160
  }
161
 
162
 
@@ -172,20 +177,39 @@ function wpuxss_eml_on_wp_loaded() {
172
 
173
  add_action( 'admin_enqueue_scripts', 'wpuxss_eml_admin_enqueue_scripts' );
174
 
175
- function wpuxss_eml_admin_enqueue_scripts() {
176
-
177
- global $wpuxss_eml_version,
178
- $wpuxss_eml_dir;
179
-
180
-
181
- // admin styles
182
- wp_enqueue_style(
183
- 'wpuxss-eml-admin-custom-style',
184
- $wpuxss_eml_dir . 'css/eml-admin.css',
185
- false,
186
- $wpuxss_eml_version,
187
- 'all'
188
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189
  }
190
 
191
 
@@ -200,142 +224,173 @@ function wpuxss_eml_admin_enqueue_scripts() {
200
 
201
  add_action( 'wp_enqueue_media', 'wpuxss_eml_enqueue_media' );
202
 
203
- function wpuxss_eml_enqueue_media() {
204
-
205
- global $wpuxss_eml_version,
206
- $wpuxss_eml_dir,
207
- $wp_version,
208
- $current_screen;
209
-
210
-
211
- if ( ! is_admin() ) {
212
- return;
213
- }
214
-
215
-
216
- $media_library_mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
217
-
218
 
219
- // taxonomies for passing to media uploader's filter
220
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
221
- if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
 
 
 
 
 
 
 
 
 
 
 
 
 
222
 
223
- $taxonomies_array = array();
224
- foreach ( get_object_taxonomies('attachment','object') as $taxonomy )
225
- {
226
- $terms_array = array();
227
- $terms = array();
 
 
 
228
 
229
- if ( $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'] && function_exists( 'wp_terms_checklist' ) )
230
  {
231
-
232
- ob_start();
233
-
234
- wp_terms_checklist( 0, array( 'taxonomy' => $taxonomy->name, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Uploader_Filter() ) );
235
-
236
- $html = '';
237
- if ( ob_get_contents() != false )
238
- $html = ob_get_contents();
239
 
240
- ob_end_clean();
241
-
242
- $terms = array_filter( explode('|', $html) );
243
-
244
- if ( !empty($terms) )
245
  {
246
- foreach ($terms as $term)
 
 
 
 
 
 
 
 
 
 
 
 
247
  {
248
- $term = explode('>', $term);
249
- array_push($terms_array, array('term_id' => $term[0], 'term_name' => $term[1]));
 
 
 
 
 
 
 
 
250
  }
251
- $taxonomies_array[$taxonomy->name] = array(
252
- 'list_title' => $taxonomy->labels->all_items,
253
- 'term_list' => $terms_array
254
- );
255
  }
256
- }
257
- }
258
-
259
-
260
- // generic scripts
261
-
262
- wp_enqueue_script(
263
- 'wpuxss-eml-media-models-script',
264
- $wpuxss_eml_dir . 'js/eml-media-models.js',
265
- array('media-models'),
266
- $wpuxss_eml_version,
267
- true
268
- );
269
-
270
- wp_enqueue_script(
271
- 'wpuxss-eml-media-views-script',
272
- $wpuxss_eml_dir . 'js/eml-media-views.js',
273
- array('media-views'),
274
- $wpuxss_eml_version,
275
- true
276
- );
277
-
278
-
279
- wp_localize_script(
280
- 'wpuxss-eml-media-views-script',
281
- 'wpuxss_eml_taxonomies',
282
- $taxonomies_array
283
- );
284
-
285
- wp_localize_script(
286
- 'wpuxss-eml-media-views-script',
287
- 'wp_version',
288
- $wp_version
289
- );
290
-
291
-
292
- // scripts for grid view :: /wp-admin/upload.php
293
- if ( isset( $current_screen ) && 'upload' === $current_screen->base && 'grid' === $media_library_mode )
294
- {
295
- wp_enqueue_script(
296
- 'wpuxss-eml-media-grid-script',
297
- $wpuxss_eml_dir . 'js/eml-media-grid.js',
298
- array('media'),
299
- $wpuxss_eml_version,
300
- true
301
- );
302
- }
303
-
304
- // scripts for Appearance -> Header
305
- if ( isset( $current_screen ) && 'appearance_page_custom-header' === $current_screen->base ) {
306
 
307
  wp_enqueue_script(
308
- 'wpuxss-eml-custom-header-script',
309
- $wpuxss_eml_dir . 'js/eml-custom-header.js',
310
- array('custom-header'),
311
  $wpuxss_eml_version,
312
  true
313
- );
314
- }
315
 
316
- // scripts for Appearance -> Background
317
- if ( isset( $current_screen ) && 'appearance_page_custom-background' === $current_screen->base ) {
318
-
319
  wp_enqueue_script(
320
- 'wpuxss-eml-custom-background-script',
321
- $wpuxss_eml_dir . 'js/eml-custom-background.js',
322
- array('custom-background'),
323
  $wpuxss_eml_version,
324
  true
325
  );
326
- }
327
 
328
 
329
- // scripts for /wp-admin/customize.php
330
- if ( isset( $current_screen ) && 'customize' === $current_screen->base )
331
- {
332
- wp_enqueue_script(
333
- 'wpuxss-eml-customize-controls-script',
334
- $wpuxss_eml_dir . 'js/eml-customize-controls.js',
335
- array('customize-controls'),
336
- $wpuxss_eml_version,
337
- true
338
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  }
340
  }
341
 
@@ -345,86 +400,123 @@ function wpuxss_eml_enqueue_media() {
345
  /**
346
  * wpuxss_eml_on_activation
347
  *
348
- * @since 1.0
349
- * @created 28/09/13
350
- */
351
 
352
- function wpuxss_eml_on_activation() {
353
-
354
- global $wpuxss_eml_version,
355
- $wpuxss_eml_old_version;
 
356
 
 
357
 
358
- if ( version_compare( $wpuxss_eml_version, $wpuxss_eml_old_version, '<>' ) ) {
359
- update_option('wpuxss_eml_version', $wpuxss_eml_version );
360
- }
361
-
362
- if ( empty($wpuxss_eml_old_version) ||
363
- version_compare( $wpuxss_eml_old_version, '0.0.3', '==' ) )
364
- {
365
- $wpuxss_eml_taxonomies['media_category'] = array(
366
- 'assigned' => 1,
367
- 'eml_media' => 1,
368
- 'admin_filter' => 1,
369
- 'media_uploader_filter' => 1,
370
- 'labels' => array(
371
- 'name' => 'Media Categories',
372
- 'singular_name' => 'Media Category',
373
- 'menu_name' => 'Media Categories',
374
- 'all_items' => 'All Media Categories',
375
- 'edit_item' => 'Edit Media Category',
376
- 'view_item' => 'View Media Category',
377
- 'update_item' => 'Update Media Category',
378
- 'add_new_item' => 'Add New Media Category',
379
- 'new_item_name' => 'New Media Category Name',
380
- 'parent_item' => 'Parent Media Category',
381
- 'parent_item_colon' => 'Parent Media Category:',
382
- 'search_items' => 'Search Media Categories'
383
- ),
384
- 'public' => true,
385
- 'show_admin_column' => true,
386
- 'show_in_nav_menus' => true,
387
- 'hierarchical' => true,
388
- 'rewrite' => array( 'slug' => 'media_category', 'with_front' => 1 ),
389
- 'sort' => 0
390
- );
391
-
392
- $allowed_mimes = get_allowed_mime_types();
393
-
394
- foreach ( wp_get_mime_types() as $type => $mime )
395
  {
396
- $wpuxss_eml_mimes[$type] = array(
397
- 'mime' => $mime,
398
- 'singular' => $mime,
399
- 'plural' => $mime,
400
- 'filter' => 0,
401
- 'upload' => isset($allowed_mimes[$type]) ? 1 : 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
402
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
403
  }
404
 
405
- $wpuxss_eml_mimes['pdf']['singular'] = 'PDF';
406
- $wpuxss_eml_mimes['pdf']['plural'] = 'PDFs';
407
- $wpuxss_eml_mimes['pdf']['filter'] = 1;
408
-
409
- update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
410
- update_option( 'wpuxss_eml_mimes', $wpuxss_eml_mimes );
411
- update_option( 'wpuxss_eml_mimes_backup', $wpuxss_eml_mimes );
412
- }
413
-
414
- if ( ! empty( $wpuxss_eml_old_version ) &&
415
- version_compare( $wpuxss_eml_old_version, '2.0.2', '<' ) ) {
416
-
417
- $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
418
-
419
- foreach( (array) $wpuxss_eml_taxonomies as $taxonomy => $params ) {
420
-
421
- if ( $params['eml_media'] ) {
422
 
423
- $wpuxss_eml_taxonomies[$taxonomy]['rewrite']['with_front'] = 1;
 
 
 
 
 
424
  }
 
 
425
  }
426
 
427
- update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
428
  }
429
  }
430
 
3
  Plugin Name: Enhanced Media Library
4
  Plugin URI: http://wpUXsolutions.com
5
  Description: This plugin will be handy for those who need to manage a lot of media files.
6
+ Version: 2.0.4
7
  Author: wpUXsolutions
8
  Author URI: http://wpUXsolutions.com
9
  Text Domain: eml
10
  Domain Path: /languages
11
  License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
12
 
13
+ Copyright 2013-2015 wpUXsolutions (email : wpUXsolutions@gmail.com)
14
  */
15
 
16
 
17
 
18
 
19
+ global $wp_version,
20
+ $wpuxss_eml_version,
21
+ $wpuxss_eml_dir,
22
+ $wpuxss_eml_path;
23
 
24
 
25
 
26
+ $wpuxss_eml_version = '2.0.4';
27
 
 
 
 
 
28
 
29
 
30
 
31
+
32
+ register_activation_hook( __FILE__, 'wpuxss_eml_on_activation' );
33
 
34
  include_once( 'core/mime-types.php' );
35
  include_once( 'core/taxonomies.php' );
36
 
37
+ if( is_admin() ) {
38
+
39
  include_once( 'core/options-pages.php' );
40
  }
41
+
 
 
 
 
 
 
 
 
 
 
 
42
 
43
 
44
 
49
  * @since 1.0
50
  * @created 03/08/13
51
  */
52
+
53
  add_action('init', 'wpuxss_eml_on_init', 12);
54
 
55
+ if ( ! function_exists( 'wpuxss_eml_on_init' ) ) {
56
+
57
+ function wpuxss_eml_on_init() {
58
+
59
+ global $wpuxss_eml_dir,
60
+ $wpuxss_eml_path;
61
+
62
+
63
+ $wpuxss_eml_dir = plugin_dir_url( __FILE__ );
64
+ $wpuxss_eml_path = plugin_dir_path( __FILE__ );
65
+
66
+
67
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
68
+ if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
69
+
70
+ // register eml taxonomies
71
+ foreach ( $wpuxss_eml_taxonomies as $taxonomy => $params )
72
  {
73
+ if ( $params['eml_media'] && !empty($params['labels']['singular_name']) && !empty($params['labels']['name']) )
74
+ {
75
+ register_taxonomy(
76
+ $taxonomy,
77
+ 'attachment',
78
+ array(
79
+ 'labels' => $params['labels'],
80
+ 'public' => true,
81
+ 'show_admin_column' => $params['show_admin_column'],
82
+ 'show_in_nav_menus' => $params['show_in_nav_menus'],
83
+ 'hierarchical' => $params['hierarchical'],
84
+ 'update_count_callback' => '_update_generic_term_count',
85
+ 'sort' => $params['sort'],
86
+ 'rewrite' => array(
87
+ 'slug' => $params['rewrite']['slug'],
88
+ 'with_front' => $params['rewrite']['with_front']
89
+ )
90
+ )
91
+ );
92
+ }
93
  }
94
  }
95
  }
103
  * @since 1.0
104
  * @created 03/11/13
105
  */
106
+
107
+
108
  add_action( 'wp_loaded', 'wpuxss_eml_on_wp_loaded' );
109
 
110
+ if ( ! function_exists( 'wpuxss_eml_on_wp_loaded' ) ) {
111
 
112
+ function wpuxss_eml_on_wp_loaded() {
 
 
113
 
114
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
115
+ if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
116
+ $taxonomies = get_taxonomies(array(),'object');
117
+
118
+ // discover 'foreign' taxonomies
119
+ foreach ( $taxonomies as $taxonomy => $params )
120
  {
121
+ if ( !empty($params->object_type) && !array_key_exists($taxonomy,$wpuxss_eml_taxonomies) && !in_array('revision',$params->object_type) && !in_array('nav_menu_item',$params->object_type) && $taxonomy != 'post_format' )
122
+ {
123
+ $wpuxss_eml_taxonomies[$taxonomy] = array(
124
+ 'eml_media' => 0,
125
+ 'admin_filter' => 0,
126
+ 'media_uploader_filter' => 0,
127
+ 'media_popup_taxonomy_edit' => 0,
128
+ 'show_admin_column' => isset($params->show_admin_column) ? $params->show_admin_column : 0,
129
+ 'show_in_nav_menus' => isset($params->show_in_nav_menus) ? $params->show_in_nav_menus : 0,
130
+ 'hierarchical' => $params->hierarchical ? 1 : 0,
131
+ 'sort' => isset($params->sort) ? $params->sort : 0
132
+ );
133
+
134
+ if ( in_array('attachment',$params->object_type) )
135
+ $wpuxss_eml_taxonomies[$taxonomy]['assigned'] = 1;
136
+ else
137
+ $wpuxss_eml_taxonomies[$taxonomy]['assigned'] = 0;
138
+ }
139
  }
 
 
 
 
 
 
 
 
 
 
 
140
 
141
+ // assign/unassign taxonomies to atachment
142
+ foreach ( $wpuxss_eml_taxonomies as $taxonomy => $params )
 
 
143
  {
144
+ if ( $params['assigned'] )
145
+ register_taxonomy_for_object_type( $taxonomy, 'attachment' );
146
 
147
+ if ( ! $params['assigned'] )
148
+ unregister_taxonomy_for_object_type( $taxonomy, 'attachment' );
149
  }
150
+
151
+ global $wp_taxonomies;
152
+
153
+ // update_count_callback for attachment taxonomies if needed
154
+ foreach ( $taxonomies as $taxonomy => $params )
155
+ {
156
+ if ( in_array('attachment',$params->object_type) )
157
+ {
158
+ if ( !isset($wp_taxonomies[$taxonomy]->update_count_callback) || empty($wp_taxonomies[$taxonomy]->update_count_callback) )
159
+ $wp_taxonomies[$taxonomy]->update_count_callback = '_update_generic_term_count';
160
+ }
161
+ }
162
+
163
+ update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
164
  }
 
 
165
  }
166
 
167
 
177
 
178
  add_action( 'admin_enqueue_scripts', 'wpuxss_eml_admin_enqueue_scripts' );
179
 
180
+ if ( ! function_exists( 'wpuxss_eml_admin_enqueue_scripts' ) ) {
181
+
182
+ function wpuxss_eml_admin_enqueue_scripts() {
183
+
184
+ global $wpuxss_eml_version,
185
+ $wpuxss_eml_dir,
186
+ $current_screen;
187
+
188
+
189
+ $media_library_mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
190
+
191
+
192
+ // admin styles
193
+ wp_enqueue_style(
194
+ 'wpuxss-eml-admin-custom-style',
195
+ $wpuxss_eml_dir . 'css/eml-admin.css',
196
+ false,
197
+ $wpuxss_eml_version,
198
+ 'all'
199
+ );
200
+
201
+ // scripts for list view :: /wp-admin/upload.php
202
+ if ( isset( $current_screen ) && 'upload' === $current_screen->base && 'list' === $media_library_mode )
203
+ {
204
+ wp_enqueue_script(
205
+ 'wpuxss-eml-media-list-script',
206
+ $wpuxss_eml_dir . 'js/eml-media-list.js',
207
+ array('jquery'),
208
+ $wpuxss_eml_version,
209
+ true
210
+ );
211
+ }
212
+ }
213
  }
214
 
215
 
224
 
225
  add_action( 'wp_enqueue_media', 'wpuxss_eml_enqueue_media' );
226
 
227
+ if ( ! function_exists( 'wpuxss_eml_enqueue_media' ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
 
229
+ function wpuxss_eml_enqueue_media() {
230
+
231
+ global $wpuxss_eml_version,
232
+ $wpuxss_eml_dir,
233
+ $wp_version,
234
+ $current_screen;
235
+
236
+
237
+ if ( ! is_admin() ) {
238
+ return;
239
+ }
240
+
241
+
242
+ $media_library_mode = get_user_option( 'media_library_mode', get_current_user_id() ) ? get_user_option( 'media_library_mode', get_current_user_id() ) : 'grid';
243
+
244
+ $wpuxss_eml_tax_options = get_option('wpuxss_eml_tax_options');
245
 
246
+ // taxonomies for passing to media uploader's filter
247
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
248
+ if ( empty($wpuxss_eml_taxonomies) ) $wpuxss_eml_taxonomies = array();
249
+
250
+ $taxonomies_array = array();
251
+ $compat_taxonomies_to_hide = array();
252
+ $compat_taxonomies_to_show = array();
253
+ $compat_taxonomies = array();
254
 
255
+ foreach ( get_object_taxonomies('attachment','object') as $taxonomy )
256
  {
257
+ $terms_array = array();
258
+ $terms = array();
 
 
 
 
 
 
259
 
260
+ if ( $wpuxss_eml_taxonomies[$taxonomy->name]['media_uploader_filter'] && function_exists( 'wp_terms_checklist' ) )
 
 
 
 
261
  {
262
+ ob_start();
263
+
264
+ wp_terms_checklist( 0, array( 'taxonomy' => $taxonomy->name, 'checked_ontop' => false, 'walker' => new Walker_Media_Taxonomy_Uploader_Filter() ) );
265
+
266
+ $html = '';
267
+ if ( ob_get_contents() != false )
268
+ $html = ob_get_contents();
269
+
270
+ ob_end_clean();
271
+
272
+ $terms = array_filter( explode('|', $html) );
273
+
274
+ if ( !empty($terms) )
275
  {
276
+ foreach ($terms as $term)
277
+ {
278
+ $term = explode('>', $term);
279
+ array_push($terms_array, array('term_id' => $term[0], 'term_name' => $term[1]));
280
+ }
281
+ $taxonomies_array[$taxonomy->name] = array(
282
+ 'singular_name' => $taxonomy->labels->singular_name,
283
+ 'plural_name' => $taxonomy->labels->name,
284
+ 'term_list' => $terms_array
285
+ );
286
  }
 
 
 
 
287
  }
288
+
289
+ if ( ! $wpuxss_eml_taxonomies[$taxonomy->name]['media_popup_taxonomy_edit'] ) {
290
+ $compat_taxonomies_to_hide[] = $taxonomy->name;
291
+ }
292
+ elseif ( $wpuxss_eml_tax_options['edit_all_as_hierarchical'] || $taxonomy->hierarchical ) {
293
+ $compat_taxonomies_to_show[] = $taxonomy->name;
294
+ }
295
+
296
+ $compat_taxonomies[] = $taxonomy->name;
297
+
298
+ } //endforeach
299
+
300
+
301
+ // generic scripts
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
 
303
  wp_enqueue_script(
304
+ 'wpuxss-eml-media-models-script',
305
+ $wpuxss_eml_dir . 'js/eml-media-models.js',
306
+ array('media-models'),
307
  $wpuxss_eml_version,
308
  true
309
+ );
 
310
 
 
 
 
311
  wp_enqueue_script(
312
+ 'wpuxss-eml-media-views-script',
313
+ $wpuxss_eml_dir . 'js/eml-media-views.js',
314
+ array('media-views'),
315
  $wpuxss_eml_version,
316
  true
317
  );
 
318
 
319
 
320
+ wp_localize_script(
321
+ 'wpuxss-eml-media-models-script',
322
+ 'wpuxss_eml_attachments_edit_nonce',
323
+ wp_create_nonce( 'eml-attachments-edit-nonce' )
 
 
 
 
 
324
  );
325
+
326
+ $media_views_l10n = array(
327
+ 'taxonomies' => $taxonomies_array,
328
+ 'compat_taxonomies' => $compat_taxonomies,
329
+ 'compat_taxonomies_to_hide' => $compat_taxonomies_to_hide,
330
+ 'is_tax_compat' => count( $compat_taxonomies_to_show ) ? 1 : 0,
331
+ 'force_filters' => $wpuxss_eml_tax_options['force_filters'],
332
+ 'wp_version' => $wp_version,
333
+ 'uncategorized' => __( 'All Uncategorized', 'eml' ),
334
+ 'filter_by' => __( 'Filter by ', 'eml' ),
335
+ 'in' => __( 'All ', 'eml' ),
336
+ 'not_in' => __( 'Not in ', 'eml' ),
337
+ 'reset_filters' => __( 'Reset All Filters', 'eml' )
338
+ );
339
+
340
+ wp_localize_script(
341
+ 'wpuxss-eml-media-views-script',
342
+ 'wpuxss_eml_media_views_l10n',
343
+ $media_views_l10n
344
+ );
345
+
346
+ // scripts for grid view :: /wp-admin/upload.php
347
+ if ( isset( $current_screen ) && 'upload' === $current_screen->base && 'grid' === $media_library_mode )
348
+ {
349
+ wp_enqueue_script(
350
+ 'wpuxss-eml-media-grid-script',
351
+ $wpuxss_eml_dir . 'js/eml-media-grid.js',
352
+ array('media'),
353
+ $wpuxss_eml_version,
354
+ true
355
+ );
356
+ }
357
+
358
+ // scripts for Appearance -> Header
359
+ if ( isset( $current_screen ) && 'appearance_page_custom-header' === $current_screen->base ) {
360
+
361
+ wp_enqueue_script(
362
+ 'wpuxss-eml-custom-header-script',
363
+ $wpuxss_eml_dir . 'js/eml-custom-header.js',
364
+ array('custom-header'),
365
+ $wpuxss_eml_version,
366
+ true
367
+ );
368
+ }
369
+
370
+ // scripts for Appearance -> Background
371
+ if ( isset( $current_screen ) && 'appearance_page_custom-background' === $current_screen->base ) {
372
+
373
+ wp_enqueue_script(
374
+ 'wpuxss-eml-custom-background-script',
375
+ $wpuxss_eml_dir . 'js/eml-custom-background.js',
376
+ array('custom-background'),
377
+ $wpuxss_eml_version,
378
+ true
379
+ );
380
+ }
381
+
382
+
383
+ // scripts for /wp-admin/customize.php
384
+ if ( isset( $current_screen ) && 'customize' === $current_screen->base )
385
+ {
386
+ wp_enqueue_script(
387
+ 'wpuxss-eml-customize-controls-script',
388
+ $wpuxss_eml_dir . 'js/eml-customize-controls.js',
389
+ array('customize-controls'),
390
+ $wpuxss_eml_version,
391
+ true
392
+ );
393
+ }
394
  }
395
  }
396
 
400
  /**
401
  * wpuxss_eml_on_activation
402
  *
403
+ * @since 2.0.4
404
+ * @created 30/01/15
405
+ */
406
 
407
+ if ( ! function_exists( 'wpuxss_eml_on_activation' ) ) {
408
+
409
+ function wpuxss_eml_on_activation() {
410
+
411
+ global $wpuxss_eml_version;
412
 
413
+ $wpuxss_eml_old_version = get_option('wpuxss_eml_version', false);
414
 
415
+ if ( version_compare( $wpuxss_eml_version, $wpuxss_eml_old_version, '<>' ) )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
416
  {
417
+ update_option('wpuxss_eml_version', $wpuxss_eml_version );
418
+ }
419
+
420
+ if ( empty($wpuxss_eml_old_version) )
421
+ {
422
+ $wpuxss_eml_taxonomies['media_category'] = array(
423
+ 'assigned' => 1,
424
+ 'eml_media' => 1,
425
+ 'public' => 1,
426
+
427
+ 'labels' => array(
428
+ 'name' => 'Media Categories',
429
+ 'singular_name' => 'Media Category',
430
+ 'menu_name' => 'Media Categories',
431
+ 'all_items' => 'All Media Categories',
432
+ 'edit_item' => 'Edit Media Category',
433
+ 'view_item' => 'View Media Category',
434
+ 'update_item' => 'Update Media Category',
435
+ 'add_new_item' => 'Add New Media Category',
436
+ 'new_item_name' => 'New Media Category Name',
437
+ 'parent_item' => 'Parent Media Category',
438
+ 'parent_item_colon' => 'Parent Media Category:',
439
+ 'search_items' => 'Search Media Categories'
440
+ ),
441
+
442
+ 'hierarchical' => 1,
443
+
444
+ 'show_admin_column' => 1,
445
+ 'admin_filter' => 1, // list view filter
446
+ 'media_uploader_filter' => 1, // grid view filter
447
+ 'media_popup_taxonomy_edit' => 0,
448
+
449
+ 'show_in_nav_menus' => 1,
450
+ 'sort' => 0,
451
+ 'rewrite' => array(
452
+ 'slug' => 'media_category',
453
+ 'with_front' => 1
454
+ )
455
  );
456
+
457
+ $wpuxss_eml_tax_options = array(
458
+ 'tax_archives' => 1,
459
+ 'edit_all_as_hierarchical' => 0,
460
+ 'force_filters' => 0
461
+ );
462
+
463
+ $allowed_mimes = get_allowed_mime_types();
464
+
465
+ foreach ( wp_get_mime_types() as $type => $mime )
466
+ {
467
+ $wpuxss_eml_mimes[$type] = array(
468
+ 'mime' => $mime,
469
+ 'singular' => $mime,
470
+ 'plural' => $mime,
471
+ 'filter' => 0,
472
+ 'upload' => isset($allowed_mimes[$type]) ? 1 : 0
473
+ );
474
+ }
475
+
476
+ $wpuxss_eml_mimes['pdf']['singular'] = 'PDF';
477
+ $wpuxss_eml_mimes['pdf']['plural'] = 'PDFs';
478
+ $wpuxss_eml_mimes['pdf']['filter'] = 1;
479
+
480
+ update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
481
+ update_option( 'wpuxss_eml_mimes', $wpuxss_eml_mimes );
482
+ update_option( 'wpuxss_eml_mimes_backup', $wpuxss_eml_mimes );
483
+
484
+ return;
485
  }
486
 
487
+ if ( version_compare( $wpuxss_eml_old_version, '2.0.2', '<' ) )
488
+ {
489
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
 
491
+ foreach( (array) $wpuxss_eml_taxonomies as $taxonomy => $params )
492
+ {
493
+ if ( $params['eml_media'] )
494
+ {
495
+ $wpuxss_eml_taxonomies[$taxonomy]['rewrite']['with_front'] = 1;
496
+ }
497
  }
498
+
499
+ update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
500
  }
501
 
502
+ if ( version_compare( $wpuxss_eml_old_version, '2.0.4', '<' ) )
503
+ {
504
+ $wpuxss_eml_taxonomies = get_option('wpuxss_eml_taxonomies');
505
+
506
+ foreach( (array) $wpuxss_eml_taxonomies as $taxonomy => $params )
507
+ {
508
+ $wpuxss_eml_taxonomies[$taxonomy]['media_popup_taxonomy_edit'] = 0;
509
+ }
510
+
511
+ $wpuxss_eml_tax_options = array(
512
+ 'tax_archives' => 1,
513
+ 'edit_all_as_hierarchical' => 0,
514
+ 'force_filters' => 0
515
+ );
516
+
517
+ update_option( 'wpuxss_eml_taxonomies', $wpuxss_eml_taxonomies );
518
+ update_option( 'wpuxss_eml_tax_options', $wpuxss_eml_tax_options );
519
+ }
520
  }
521
  }
522
 
js/eml-media-list.js ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ( function( $ ) {
2
+
3
+ $( document ).ready( function()
4
+ {
5
+ var $mainFilter = $('select[name="attachment-filter"]'),
6
+ $dataFilter = $('select#filter-by-date'),
7
+ $taxFilters = $('select.eml-attachment-filters'),
8
+ $resetFilters = $('#eml-reset-filters-query-submit');
9
+
10
+
11
+ if ( ! $mainFilter.prop( 'selectedIndex' ) &&
12
+ ! $dataFilter.prop( 'selectedIndex' ) &&
13
+ ! $taxFilters.filter( function() { return $(this).prop( 'selectedIndex' ) } ).get().length )
14
+ {
15
+ $resetFilters.prop( 'disabled', true );
16
+ }
17
+ else
18
+ {
19
+ $resetFilters.prop( 'disabled', false );
20
+ }
21
+
22
+
23
+ $( document ).on( 'change', 'select[name="attachment-filter"]', {
24
+ checkFilter : $mainFilter,
25
+ resetFilter : $taxFilters
26
+ }, resetFilters );
27
+
28
+ $( document ).on( 'change', 'select.eml-attachment-filters', {
29
+ checkFilter : $mainFilter,
30
+ resetFilter : $mainFilter
31
+ }, resetFilters );
32
+
33
+ $( document ).on( 'click', '#eml-reset-filters-query-submit', function() {
34
+
35
+ $mainFilter.prop( 'selectedIndex', 0 );
36
+ $taxFilters.prop( 'selectedIndex', 0 );
37
+ $dataFilter.prop( 'selectedIndex', 0 );
38
+ });
39
+
40
+ });
41
+
42
+ function resetFilters( event )
43
+ {
44
+ if ( 'uncategorized' == event.data.checkFilter.val() )
45
+ {
46
+ event.data.resetFilter.prop( 'selectedIndex', 0 );
47
+ }
48
+ }
49
+
50
+ })( jQuery );
js/eml-media-models.js CHANGED
@@ -6,9 +6,9 @@ window.wp = window.wp || {};
6
  Attachments = media.model.Attachments,
7
  Query = media.model.Query;
8
 
9
-
10
 
11
-
 
12
  _.extend( Query.prototype, {
13
 
14
  initialize: function( models, options ) {
6
  Attachments = media.model.Attachments,
7
  Query = media.model.Query;
8
 
 
9
 
10
+
11
+
12
  _.extend( Query.prototype, {
13
 
14
  initialize: function( models, options ) {
js/eml-media-views.js CHANGED
@@ -1,4 +1,5 @@
1
  window.wp = window.wp || {};
 
2
 
3
  ( function( $, _ ) {
4
 
@@ -7,8 +8,17 @@ window.wp = window.wp || {};
7
  original = {};
8
 
9
 
 
 
 
 
 
 
10
 
11
-
 
 
 
12
  _.extend( media.controller.Library.prototype, {
13
 
14
  uploading: function( attachment ) {
@@ -36,7 +46,7 @@ window.wp = window.wp || {};
36
  Filters.$el.val( 'all' ).change();
37
  }
38
 
39
- $.each( wpuxss_eml_taxonomies, function( taxonomy, values ) {
40
 
41
  taxFilter = content.get().toolbar.get( taxonomy+'-filter' );
42
 
@@ -46,14 +56,14 @@ window.wp = window.wp || {};
46
  });
47
  }
48
 
49
- if ( wp_version < '4.0' || this.get( 'autoSelect' ) ) {
50
 
51
  if ( wp.Uploader.queue.length == 1 && selection.length ) {
52
  selection.reset();
53
  }
54
  selection.add( attachment );
55
- selection.trigger( 'selection:unsingle' );
56
- selection.trigger( 'selection:single' );
57
  }
58
  }
59
  });
@@ -61,6 +71,10 @@ window.wp = window.wp || {};
61
 
62
 
63
 
 
 
 
 
64
  var newEvents = { 'click input' : 'preSave' };
65
  _.extend( newEvents, media.view.AttachmentCompat.prototype.events );
66
 
@@ -77,7 +91,8 @@ window.wp = window.wp || {};
77
 
78
  render: function() {
79
 
80
- var compat = this.model.get('compat');
 
81
 
82
  if ( ! compat || ! compat.item ) {
83
  return;
@@ -90,6 +105,24 @@ window.wp = window.wp || {};
90
  this.views.detach();
91
  this.$el.html( compat.item );
92
  this.views.render();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  return this;
94
  }
95
  });
@@ -97,17 +130,34 @@ window.wp = window.wp || {};
97
 
98
 
99
 
 
 
 
100
  _.extend( media.view.AttachmentFilters.prototype, {
101
 
102
  change: function() {
103
 
104
  var filter = this.filters[ this.el.value ],
105
- selection = this.controller.state().get( 'selection' );
 
 
 
 
 
 
106
 
107
  if ( filter && selection.length && ! wp.Uploader.queue.length ) {
108
  selection.reset();
109
  }
110
 
 
 
 
 
 
 
 
 
111
  if ( filter ) {
112
  this.model.set( filter.props );
113
  }
@@ -116,7 +166,66 @@ window.wp = window.wp || {};
116
 
117
 
118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
 
 
 
120
  media.view.AttachmentFilters.Taxonomy = media.view.AttachmentFilters.extend({
121
 
122
  id: function() {
@@ -142,27 +251,82 @@ window.wp = window.wp || {};
142
 
143
  filters[ term_id ] = {
144
  text: term_name,
145
- priority: key+2
 
146
  };
147
 
148
- filters[term_id]['props'] = {};
149
  filters[term_id]['props'][self.options.taxonomy] = term_id;
 
 
 
 
150
  });
151
 
152
  filters.all = {
153
- text: self.options.termListTitle,
 
154
  priority: 1
155
  };
156
 
157
- filters['all']['props'] = {};
158
  filters['all']['props'][self.options.taxonomy] = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
 
160
  this.filters = filters;
 
 
 
 
 
 
 
 
 
 
 
 
161
  }
162
  });
163
 
164
 
165
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  original.AttachmentsBrowser = {
167
 
168
  initialize: media.view.AttachmentsBrowser.prototype.initialize,
@@ -188,10 +352,11 @@ window.wp = window.wp || {};
188
  var $browser = this.$el,
189
  $attachments = $browser.find('.attachments'),
190
  $uploader = $browser.find('.uploader-inline'),
191
- $toolbar = $browser.find('.media-toolbar');
 
192
 
193
 
194
- if ( wp_version < '4.0' ) {
195
 
196
  if ( 'absolute' == $attachments.css( 'position' ) &&
197
  $browser.height() > $toolbar.height() + 20 ) {
@@ -230,9 +395,20 @@ window.wp = window.wp || {};
230
  $toolbar.find('.media-toolbar-secondary').prepend( $toolbar.find('.instructions') );
231
  }
232
 
233
- if ( this.controller.isModeActive( 'eml-grid' ) ) {
 
 
234
 
235
- $browser.css( 'top', $toolbar.outerHeight() + 20 + 'px' );
 
 
 
 
 
 
 
 
 
236
  $toolbar.css( 'top', - $toolbar.outerHeight() - 30 + 'px' );
237
  }
238
  },
@@ -245,10 +421,34 @@ window.wp = window.wp || {};
245
 
246
  original.AttachmentsBrowser.createToolbar.apply( this, arguments );
247
 
248
- if ( -1 !== $.inArray( filters, [ 'uploaded', 'all', 'eml' ] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
249
 
250
- if ( wp_version >= '4.0' && ! this.controller.isModeActive( 'grid' ) ) {
251
-
252
  this.toolbar.set( 'dateFilterLabel', new media.view.Label({
253
  value: l10n.filterByDate,
254
  attributes: {
@@ -262,22 +462,37 @@ window.wp = window.wp || {};
262
  priority: -75
263
  }).render() );
264
  }
265
- }
266
-
267
- $.each( wpuxss_eml_taxonomies, function( taxonomy, values ) {
268
-
269
- if ( values.term_list && -1 !== $.inArray( filters, [ 'uploaded', 'all', 'eml' ] ) ) {
270
 
271
- self.toolbar.set( taxonomy+'-filter', new media.view.AttachmentFilters.Taxonomy({
272
- controller: self.controller,
273
- model: self.collection.props,
274
- priority: -80 + 10*i++,
275
- taxonomy: taxonomy,
276
- termList: values.term_list,
277
- termListTitle: values.list_title,
278
- }).render() );
279
- }
280
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
281
  }
282
  });
283
 
@@ -319,6 +534,5 @@ window.wp = window.wp || {};
319
 
320
  // TODO: move to the PHP side
321
  $('body').addClass('eml-media-css');
322
-
323
-
324
  })( jQuery, _ );
1
  window.wp = window.wp || {};
2
+ window.eml = { l10n: {} };
3
 
4
  ( function( $, _ ) {
5
 
8
  original = {};
9
 
10
 
11
+
12
+
13
+ _.extend( eml.l10n, wpuxss_eml_media_views_l10n );
14
+
15
+
16
+
17
 
18
+ /**
19
+ * media.controller.Library
20
+ *
21
+ */
22
  _.extend( media.controller.Library.prototype, {
23
 
24
  uploading: function( attachment ) {
46
  Filters.$el.val( 'all' ).change();
47
  }
48
 
49
+ $.each( eml.l10n.taxonomies, function( taxonomy, values ) {
50
 
51
  taxFilter = content.get().toolbar.get( taxonomy+'-filter' );
52
 
56
  });
57
  }
58
 
59
+ if ( eml.l10n.wp_version < '4.0' || this.get( 'autoSelect' ) ) {
60
 
61
  if ( wp.Uploader.queue.length == 1 && selection.length ) {
62
  selection.reset();
63
  }
64
  selection.add( attachment );
65
+ selection.trigger( 'selection:unsingle', selection.model, selection );
66
+ selection.trigger( 'selection:single', selection.model, selection );
67
  }
68
  }
69
  });
71
 
72
 
73
 
74
+ /**
75
+ * media.view.AttachmentCompat
76
+ *
77
+ */
78
  var newEvents = { 'click input' : 'preSave' };
79
  _.extend( newEvents, media.view.AttachmentCompat.prototype.events );
80
 
91
 
92
  render: function() {
93
 
94
+ var compat = this.model.get('compat'),
95
+ $compat_el = this.$el;
96
 
97
  if ( ! compat || ! compat.item ) {
98
  return;
105
  this.views.detach();
106
  this.$el.html( compat.item );
107
  this.views.render();
108
+
109
+
110
+ // TODO: find a better solution
111
+ if ( this.controller.isModeActive( 'select' ) && 'edit-attachment' != this.controller.state().get('id') ) {
112
+
113
+ $.each( eml.l10n.compat_taxonomies_to_hide, function( id, taxonomy ) {
114
+ $compat_el.find( '.compat-field-'+taxonomy ).remove();
115
+ });
116
+ }
117
+
118
+
119
+ // TODO: find a better solution
120
+ $.each( eml.l10n.compat_taxonomies, function( id, taxonomy ) {
121
+
122
+ $compat_el.find( '.compat-field-'+taxonomy+' .label' ).addClass( 'eml-tax-label' );
123
+ $compat_el.find( '.compat-field-'+taxonomy+' .field' ).addClass( 'eml-tax-field' );
124
+ });
125
+
126
  return this;
127
  }
128
  });
130
 
131
 
132
 
133
+ /**
134
+ * media.view.AttachmentFilters
135
+ */
136
  _.extend( media.view.AttachmentFilters.prototype, {
137
 
138
  change: function() {
139
 
140
  var filter = this.filters[ this.el.value ],
141
+ selection = this.controller.state().get( 'selection' ),
142
+
143
+ $mainFilter = this.controller.$el.find( 'select#media-attachment-filters' ),
144
+ $dateFilter = this.controller.$el.find( 'select#media-attachment-date-filters' ),
145
+ $taxFilters = this.controller.$el.find( 'select.eml-attachment-filters' ),
146
+ resetFilterButton = this.controller.content.get().toolbar.get( 'resetFilterButton' );
147
+
148
 
149
  if ( filter && selection.length && ! wp.Uploader.queue.length ) {
150
  selection.reset();
151
  }
152
 
153
+ if ( ! $mainFilter.prop( 'selectedIndex' ) &&
154
+ ! $dateFilter.prop( 'selectedIndex' ) &&
155
+ ! $taxFilters.filter( function() { return $(this).prop( 'selectedIndex' ) } ).get().length ) {
156
+ resetFilterButton.model.set( 'disabled', true )
157
+ } else {
158
+ resetFilterButton.model.set( 'disabled', false )
159
+ }
160
+
161
  if ( filter ) {
162
  this.model.set( filter.props );
163
  }
166
 
167
 
168
 
169
+
170
+ /**
171
+ * media.view.AttachmentFilters.All
172
+ */
173
+ original.AttachmentFilters = {
174
+
175
+ All: {
176
+ createFilters: media.view.AttachmentFilters.All.prototype.createFilters
177
+ }
178
+ };
179
+
180
+ _.extend( media.view.AttachmentFilters.All.prototype, {
181
+
182
+ createFilters: function() {
183
+
184
+ original.AttachmentFilters.All.createFilters.apply( this, arguments );
185
+
186
+ _.each( this.filters, function( filter, key )
187
+ {
188
+ filter.props['uncategorized'] = null;
189
+ })
190
+
191
+ this.filters.uncategorized = {
192
+ text: eml.l10n.uncategorized,
193
+ props: {
194
+ uploadedTo : null,
195
+ uncategorized : true,
196
+ status : null,
197
+ type : null,
198
+ orderby : 'date',
199
+ order : 'DESC'
200
+ },
201
+ priority: 60
202
+ };
203
+ },
204
+
205
+ change: function() {
206
+
207
+ var filter = this.filters[ this.el.value ],
208
+ $taxFilters = this.controller.$el.find( 'select.eml-attachment-filters' );
209
+
210
+ media.view.AttachmentFilters.prototype.change.apply( this, arguments );
211
+
212
+ if ( filter && filter.props.uncategorized &&
213
+ $taxFilters.filter( function() { return $(this).prop( 'selectedIndex' ) } ).get().length ) {
214
+
215
+ $taxFilters.each( function() {
216
+ if ( this.value != 'all' )
217
+ $( this ).val( 'all' ).change();
218
+ });
219
+ }
220
+ }
221
+ });
222
+
223
+
224
+
225
 
226
+ /**
227
+ * media.view.AttachmentFilters.Taxonomy
228
+ */
229
  media.view.AttachmentFilters.Taxonomy = media.view.AttachmentFilters.extend({
230
 
231
  id: function() {
251
 
252
  filters[ term_id ] = {
253
  text: term_name,
254
+ props: {},
255
+ priority: key+4
256
  };
257
 
 
258
  filters[term_id]['props'][self.options.taxonomy] = term_id;
259
+
260
+ // TODO: for future sorting inside a ctegory
261
+ // filters[term_id]['props']['orderby'] = 'menuOrder';
262
+ // filters[term_id]['props']['order'] = 'ASC';
263
  });
264
 
265
  filters.all = {
266
+ text: eml.l10n.filter_by + self.options.singularName,
267
+ props: {},
268
  priority: 1
269
  };
270
 
 
271
  filters['all']['props'][self.options.taxonomy] = null;
272
+
273
+ // TODO: for future sorting inside a ctegory
274
+ // filters['all']['props']['orderby'] = 'menuOrder';
275
+ // filters['all']['props']['order'] = 'ASC';
276
+
277
+ filters.in = {
278
+ text: '— ' + eml.l10n.in + self.options.pluralName + ' —',
279
+ props: {},
280
+ priority: 2
281
+ };
282
+
283
+ filters['in']['props'][self.options.taxonomy] = 'in';
284
+
285
+ filters.not_in = {
286
+ text: '— ' + eml.l10n.not_in + self.options.singularName + ' —',
287
+ props: {},
288
+ priority: 3
289
+ };
290
+
291
+ filters['not_in']['props'][self.options.taxonomy] = 'not_in';
292
 
293
  this.filters = filters;
294
+ },
295
+
296
+ change: function() {
297
+
298
+ var filter = this.filters[ this.el.value ],
299
+ $mainFilter = this.controller.$el.find( 'select#media-attachment-filters' );
300
+
301
+ media.view.AttachmentFilters.prototype.change.apply( this, arguments );
302
+
303
+ if ( filter && 1 != filter.priority && 'uncategorized' == $mainFilter.val() ) {
304
+ $mainFilter.val( 'all' ).change();
305
+ }
306
  }
307
  });
308
 
309
 
310
 
311
+ media.view.Button.resetFilters = media.view.Button.extend({
312
+
313
+ id: 'reset-all-filters',
314
+
315
+ click: function( event ) {
316
+
317
+ if ( '#' === this.attributes.href ) {
318
+ event.preventDefault();
319
+ }
320
+
321
+ $.each( $('select.attachment-filters'), function() {
322
+ if ( this.value != 'all' )
323
+ $(this).val( 'all' ).change();
324
+ });
325
+ }
326
+ });
327
+
328
+
329
+
330
  original.AttachmentsBrowser = {
331
 
332
  initialize: media.view.AttachmentsBrowser.prototype.initialize,
352
  var $browser = this.$el,
353
  $attachments = $browser.find('.attachments'),
354
  $uploader = $browser.find('.uploader-inline'),
355
+ $toolbar = $browser.find('.media-toolbar'),
356
+ $messages = $('.eml-media-css .updated:visible, .eml-media-css .error:visible');
357
 
358
 
359
+ if ( eml.l10n.wp_version < '4.0' ) {
360
 
361
  if ( 'absolute' == $attachments.css( 'position' ) &&
362
  $browser.height() > $toolbar.height() + 20 ) {
395
  $toolbar.find('.media-toolbar-secondary').prepend( $toolbar.find('.instructions') );
396
  }
397
 
398
+ if ( this.controller.isModeActive( 'eml-grid' ) )
399
+ {
400
+ var messagesOuterHeight = 0;
401
 
402
+ if ( ! _.isUndefined( $messages ) )
403
+ {
404
+ $messages.each( function() {
405
+ messagesOuterHeight += $(this).outerHeight( true );
406
+ });
407
+
408
+ messagesOuterHeight = messagesOuterHeight ? messagesOuterHeight - 20 : 0;
409
+ }
410
+
411
+ $browser.css( 'top', $toolbar.outerHeight() + messagesOuterHeight + 20 + 'px' );
412
  $toolbar.css( 'top', - $toolbar.outerHeight() - 30 + 'px' );
413
  }
414
  },
421
 
422
  original.AttachmentsBrowser.createToolbar.apply( this, arguments );
423
 
424
+ if ( -1 !== $.inArray( this.options.filters, [ 'uploaded', 'all' ] ) || parseInt( eml.l10n.force_filters ) )
425
+ {
426
+ this.toolbar.set( 'filtersLabel', new media.view.Label({
427
+ value: l10n.filterByType,
428
+ attributes: {
429
+ 'for': 'media-attachment-filters'
430
+ },
431
+ priority: -80
432
+ }).render() );
433
+
434
+ if ( 'uploaded' === this.options.filters ) {
435
+ this.toolbar.set( 'filters', new media.view.AttachmentFilters.Uploaded({
436
+ controller: this.controller,
437
+ model: this.collection.props,
438
+ priority: -80
439
+ }).render() );
440
+ } else {
441
+ Filters = new media.view.AttachmentFilters.All({
442
+ controller: this.controller,
443
+ model: this.collection.props,
444
+ priority: -80
445
+ });
446
+
447
+ this.toolbar.set( 'filters', Filters.render() );
448
+ }
449
 
450
+ if ( eml.l10n.wp_version >= '4.0' )
451
+ {
452
  this.toolbar.set( 'dateFilterLabel', new media.view.Label({
453
  value: l10n.filterByDate,
454
  attributes: {
462
  priority: -75
463
  }).render() );
464
  }
465
+
466
+ $.each( eml.l10n.taxonomies, function( taxonomy, values ) {
 
 
 
467
 
468
+ if ( values.term_list ) {
469
+
470
+ self.toolbar.set( taxonomy+'FilterLabel', new media.view.Label({
471
+ value: eml.l10n.filter_by + values.singular_name,
472
+ attributes: {
473
+ 'for': 'media-attachment-' + taxonomy + '-filters',
474
+ },
475
+ priority: -70 + i++
476
+ }).render() );
477
+ self.toolbar.set( taxonomy+'-filter', new media.view.AttachmentFilters.Taxonomy({
478
+ controller: self.controller,
479
+ model: self.collection.props,
480
+ priority: -70 + i++,
481
+ taxonomy: taxonomy,
482
+ termList: values.term_list,
483
+ singularName: values.singular_name,
484
+ pluralName: values.plural_name
485
+ }).render() );
486
+ }
487
+ });
488
+
489
+ this.toolbar.set( 'resetFilterButton', new media.view.Button.resetFilters({
490
+ controller: this.controller,
491
+ text: eml.l10n.reset_filters,
492
+ disabled: true,
493
+ priority: -70 + i
494
+ }).render() );
495
+ }
496
  }
497
  });
498
 
534
 
535
  // TODO: move to the PHP side
536
  $('body').addClass('eml-media-css');
537
+
 
538
  })( jQuery, _ );
js/eml-options.js CHANGED
@@ -172,6 +172,7 @@
172
 
173
  taxonomy_edit_box.find('.wpuxss-eml-admin_filter').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][admin_filter]');
174
  taxonomy_edit_box.find('.wpuxss-eml-media_uploader_filter').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][media_uploader_filter]');
 
175
 
176
  $(this).closest('.wpuxss-eml-clone-taxonomy').find('.wpuxss-eml-assigned').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][assigned]');
177
  $(this).closest('.wpuxss-eml-clone-taxonomy').find('.wpuxss-eml-eml_media').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][eml_media]');
172
 
173
  taxonomy_edit_box.find('.wpuxss-eml-admin_filter').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][admin_filter]');
174
  taxonomy_edit_box.find('.wpuxss-eml-media_uploader_filter').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][media_uploader_filter]');
175
+ taxonomy_edit_box.find('.wpuxss-eml-media_popup_taxonomy_edit').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][media_popup_taxonomy_edit]');
176
 
177
  $(this).closest('.wpuxss-eml-clone-taxonomy').find('.wpuxss-eml-assigned').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][assigned]');
178
  $(this).closest('.wpuxss-eml-clone-taxonomy').find('.wpuxss-eml-eml_media').attr('name','wpuxss_eml_taxonomies['+taxonomy_name+'][eml_media]');
languages/eml-nl_NL.mo CHANGED
Binary file
languages/eml-nl_NL.po CHANGED
@@ -2,8 +2,8 @@ msgid ""
2
  msgstr ""
3
  "Project-Id-Version: Enhanced Media Library v1.0.4\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/enhanced-media-library\n"
5
- "POT-Creation-Date: 2014-09-04 18:35:44+00:00\n"
6
- "PO-Revision-Date: 2014-09-11 14:35+0200\n"
7
  "Last-Translator: WordPress UX Solutions <wordpressuxsolutions@gmail.com>\n"
8
  "Language-Team: De B.A.A.T. <de_baat@de-baat.nl>\n"
9
  "Language: nl_NL\n"
@@ -11,7 +11,7 @@ msgstr ""
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
- "X-Generator: Poedit 1.6.9\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
@@ -19,89 +19,350 @@ msgstr ""
19
  "X-Textdomain-Support: yes\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
- # @ eml
23
- #: core/options-pages.php:15
24
- msgid "Enhanced Media Library Options"
25
- msgstr "Enhanced Media Library Opties"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  # @ eml
28
- #: core/options-pages.php:16
 
29
  msgid "Media Settings"
30
  msgstr "Media Instellingen"
31
 
32
  # @ eml
33
- #: core/options-pages.php:24 core/options-pages.php:25
34
- #: core/options-pages.php:119
 
 
 
 
 
 
 
35
  msgid "Taxonomies"
36
  msgstr "Taxonomies"
37
 
38
  # @ eml
39
- #: core/options-pages.php:32 core/options-pages.php:33
40
- #: core/options-pages.php:388
41
  msgid "MIME Types"
42
  msgstr "MIME Types"
43
 
44
  # @ eml
45
- #: core/options-pages.php:67 core/options-pages.php:161
46
- #: core/options-pages.php:175 core/options-pages.php:239
47
- #: core/options-pages.php:312
48
  msgid "Edit"
49
  msgstr "Bewerk"
50
 
51
  # @ eml
52
- #: core/options-pages.php:68
53
  msgid "Close"
54
  msgstr "Sluit"
55
 
56
  # @ eml
57
- #: core/options-pages.php:69 core/options-pages.php:176
58
- #: core/options-pages.php:240
59
  msgid "View"
60
  msgstr "Bekijk"
61
 
62
  # @ eml
63
- #: core/options-pages.php:70 core/options-pages.php:177
64
- #: core/options-pages.php:241
65
  msgid "Update"
66
  msgstr "Werk bij"
67
 
68
  # @ eml
69
- #: core/options-pages.php:71 core/options-pages.php:178
70
- #: core/options-pages.php:242
71
  msgid "Add New"
72
  msgstr "Voeg Nieuw Toe"
73
 
74
  # @ eml
75
- #: core/options-pages.php:72 core/options-pages.php:179
76
- #: core/options-pages.php:243
77
  msgid "New"
78
  msgstr "Nieuw"
79
 
80
  # @ eml
81
- #: core/options-pages.php:73
82
  msgid "Name"
83
  msgstr "Naam"
84
 
85
  # @ eml
86
- #: core/options-pages.php:74 core/options-pages.php:180
87
- #: core/options-pages.php:244
88
  msgid "Parent"
89
  msgstr "Parent"
90
 
91
  # @ eml
92
- #: core/options-pages.php:75 core/options-pages.php:174
93
- #: core/options-pages.php:238
94
  msgid "All"
95
  msgstr "Allemaal"
96
 
97
  # @ eml
98
- #: core/options-pages.php:76 core/options-pages.php:181
99
- #: core/options-pages.php:245
100
  msgid "Search"
101
  msgstr "Zoek"
102
 
103
  # @ eml
104
- #: core/options-pages.php:78
105
  msgid ""
106
  "Taxonomy will be deleted permanently! Your media files will remain intacted, "
107
  "but all the connections with this taxonomy and its terms will be lost."
@@ -110,204 +371,452 @@ msgstr ""
110
  "alle connecties met deze taxonomy en de termen zullen verdwenen zijn."
111
 
112
  # @ eml
113
- #: core/options-pages.php:79
114
  msgid "There is already a taxonomy with the same name. Please chose other one."
115
  msgstr "Er is al een taxonomy met deze naam. Kies aub een andere."
116
 
117
  # @ eml
118
- #: core/options-pages.php:80 core/options-pages.php:226
119
  msgid "New Taxonomy"
120
  msgstr "Nieuwe Taxonomy"
121
 
122
  # @ eml
123
- #: core/options-pages.php:81
124
  msgid "Please choose Singular and Plural names for all your new taxomonies."
125
  msgstr ""
126
  "Kies aub Enkelvoudige en Meervoudige namen voor al je nieuwe taxonomies."
127
 
128
  # @ eml
129
- #: core/options-pages.php:82
130
  msgid "Please choose Singilar name for all your new taxomonies."
131
  msgstr "Kies aub Enkelvoudige naam voor al je nieuwe taxonomies."
132
 
133
  # @ eml
134
- #: core/options-pages.php:83
135
  msgid "Please choose Plural Name for all your new taxomonies."
136
  msgstr "Kies aub Meervoudige naam voor al je nieuwe taxonomies."
137
 
138
  # @ eml
139
- #: core/options-pages.php:85
140
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
141
  msgstr ""
142
  "Waarschuwing! Al je persoonlijke MIME Types zullen door deze operatie "
143
  "verwijderd worden."
144
 
145
  # @ eml
146
- #: core/options-pages.php:86
147
  msgid "Please fill into all fields."
148
  msgstr "Vul aub alle velden in."
149
 
150
  # @ eml
151
- #: core/options-pages.php:87
152
  msgid "Duplicate extensions or MIME types. Please chose other one."
153
  msgstr "Dubbele extensies of MIME types. Kies aub een andere."
154
 
155
  # @ eml
156
- #: core/options-pages.php:111 core/options-pages.php:379
 
157
  msgid "You do not have sufficient permissions to access this page."
158
  msgstr "U hebt onvoldoende toegangsrechten voor deze pagina."
159
 
160
  # @ eml
161
- #: core/options-pages.php:135
162
  msgid "Media Taxonomies"
163
  msgstr "Media Taxonomies"
164
 
165
  # @ eml
166
- #: core/options-pages.php:139 core/options-pages.php:288
167
  msgid "Assign following taxonomies to Media Library:"
168
  msgstr "Ken de volgende taxonomies toe aan de Media Library:"
169
 
170
  # @ eml
171
- #: core/options-pages.php:158 core/options-pages.php:224
172
- #: core/options-pages.php:305
173
  msgid "Assign Taxonomy"
174
  msgstr "Toekennen Taxonomie"
175
 
176
  # @ eml
177
- #: core/options-pages.php:161 core/options-pages.php:312
178
  msgid "Edit Taxonomy"
179
  msgstr "Bewerk Taxonomie"
180
 
181
  # @ eml
182
- #: core/options-pages.php:164 core/options-pages.php:228
183
  msgid "Delete Taxonomy"
184
  msgstr "Verwijder Taxonomie"
185
 
186
  # @ eml
187
- #: core/options-pages.php:169 core/options-pages.php:233
188
  msgid "Labels"
189
  msgstr "Labels"
190
 
191
  # @ eml
192
- #: core/options-pages.php:171 core/options-pages.php:235
193
  msgid "Singular"
194
  msgstr "Enkelvoud"
195
 
196
  # @ eml
197
- #: core/options-pages.php:172 core/options-pages.php:236
198
  msgid "Plural"
199
  msgstr "Meervoud"
200
 
201
  # @ eml
202
- #: core/options-pages.php:173 core/options-pages.php:237
203
  msgid "Menu Name"
204
  msgstr "Menu Naam"
205
 
206
- # @ eml
207
- #: core/options-pages.php:186 core/options-pages.php:205
208
- #: core/options-pages.php:250 core/options-pages.php:315
209
- msgid "Settings"
210
- msgstr "Instellingen"
211
 
212
  # @ eml
213
- #: core/options-pages.php:188 core/options-pages.php:252
214
  msgid "Hierarchical"
215
  msgstr "Hiërarchisch"
216
 
217
- # @ eml
218
- #: core/options-pages.php:189 core/options-pages.php:253
219
- msgid "Column in Media Library"
220
- msgstr "Kolom in Media Library"
221
 
222
- # @ eml
223
- #: core/options-pages.php:190 core/options-pages.php:207
224
- #: core/options-pages.php:254 core/options-pages.php:317
225
- msgid "Filter in Media Library"
226
- msgstr "Filter in Media Library"
227
 
228
- # @ eml
229
- #: core/options-pages.php:191 core/options-pages.php:208
230
- #: core/options-pages.php:255 core/options-pages.php:318
231
- #, fuzzy
232
- msgid "Filter in Media Popup / Grid View"
233
- msgstr "Filter in Media Uploader"
 
 
 
234
 
235
  # @ eml
236
- #: core/options-pages.php:192 core/options-pages.php:256
237
  msgid "Show in Nav Menu"
238
  msgstr "Toon in Nav Menu"
239
 
240
  # @ eml
241
- #: core/options-pages.php:193 core/options-pages.php:257
242
  msgid "Remember terms order (sort)"
243
  msgstr "Onthoudt termen volgorde (sorteer)"
244
 
245
- # @ eml
246
- #: core/options-pages.php:194 core/options-pages.php:258
247
- msgid "Slug"
248
- msgstr "Slug"
 
 
 
249
 
250
  # @ eml
251
- #: core/options-pages.php:271
252
  msgid "Add New Taxonomy"
253
  msgstr "Voeg Nieuwe Taxonomie Toe"
254
 
255
  # @ eml
256
- #: core/options-pages.php:284
257
  msgid "Non-Media Taxonomies"
258
  msgstr "Niet-Media Taxonomies"
259
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  # @ eml
261
- #: core/options-pages.php:389
262
  msgid "Add New MIME Type"
263
  msgstr "Voeg Nieuw MIME Type Toe"
264
 
265
  # @ eml
266
- #: core/options-pages.php:407 core/options-pages.php:464
267
  msgid "Extension"
268
  msgstr "Extensie"
269
 
270
  # @ eml
271
- #: core/options-pages.php:408 core/options-pages.php:465
272
  msgid "MIME Type"
273
  msgstr "MIME Type"
274
 
275
  # @ eml
276
- #: core/options-pages.php:409 core/options-pages.php:466
277
  msgid "Singular Label"
278
  msgstr "Enkelvoud Label"
279
 
280
  # @ eml
281
- #: core/options-pages.php:410 core/options-pages.php:467
282
  msgid "Plural Label"
283
  msgstr "Meervoud Label"
284
 
285
  # @ eml
286
- #: core/options-pages.php:411 core/options-pages.php:441
287
- #: core/options-pages.php:456 core/options-pages.php:468
288
  msgid "Add Filter"
289
  msgstr "Voeg Filter Toe"
290
 
291
  # @ eml
292
- #: core/options-pages.php:412 core/options-pages.php:442
293
- #: core/options-pages.php:457 core/options-pages.php:469
294
  msgid "Allow Upload"
295
  msgstr "Sta Upload Toe"
296
 
297
  # @ eml
298
- #: core/options-pages.php:458
299
  msgid "Delete MIME Type"
300
  msgstr "Verwijder MIME Type"
301
 
302
  # @ eml
303
- #: core/options-pages.php:475
304
  msgid "Restore default MIME Types"
305
  msgstr "Herstel default MIME Types"
306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
307
  # @ eml
308
  #. Plugin Name of the plugin/theme
309
  msgid "Enhanced Media Library"
310
- msgstr "Enhanced Media Library"
 
 
 
 
311
 
312
  # @ eml
313
  #. Description of the plugin/theme
@@ -316,6 +825,27 @@ msgid ""
316
  msgstr ""
317
  "Deze plug-in is handig voor iedereen die veel media bestanden moet beheren."
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  # @ eml
320
  #~ msgid "http://wordpressuxsolutions.com"
321
  #~ msgstr "http://wordpressuxsolutions.com"
2
  msgstr ""
3
  "Project-Id-Version: Enhanced Media Library v1.0.4\n"
4
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/enhanced-media-library\n"
5
+ "POT-Creation-Date: 2015-03-04 00:13+0200\n"
6
+ "PO-Revision-Date: 2015-03-05 04:58+0200\n"
7
  "Last-Translator: WordPress UX Solutions <wordpressuxsolutions@gmail.com>\n"
8
  "Language-Team: De B.A.A.T. <de_baat@de-baat.nl>\n"
9
  "Language: nl_NL\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
+ "X-Generator: Poedit 1.7.4\n"
15
  "X-Poedit-SourceCharset: utf-8\n"
16
  "X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
17
  "_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
19
  "X-Textdomain-Support: yes\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
 
22
+ #: core/class-eml-media-list-table.php:39
23
+ #, php-format
24
+ msgctxt "uploaded files"
25
+ msgid "All (%s)"
26
+ msgid_plural "All (%s)"
27
+ msgstr[0] ""
28
+ msgstr[1] ""
29
+
30
+ #: core/class-eml-media-list-table.php:50
31
+ #, php-format
32
+ msgctxt "detached files"
33
+ msgid "Unattached (%s)"
34
+ msgid_plural "Unattached (%s)"
35
+ msgstr[0] ""
36
+ msgstr[1] ""
37
+
38
+ #: core/class-eml-media-list-table.php:52 enhanced-media-library.php:377
39
+ msgid "All Uncategorized"
40
+ msgstr ""
41
+
42
+ #: core/class-eml-media-list-table.php:55
43
+ #, php-format
44
+ msgctxt "uploaded files"
45
+ msgid "Trash (%s)"
46
+ msgid_plural "Trash (%s)"
47
+ msgstr[0] ""
48
+ msgstr[1] ""
49
+
50
+ #: core/class-eml-media-list-table.php:75
51
+ msgid "Filter"
52
+ msgstr ""
53
+
54
+ #: core/class-eml-media-list-table.php:77 enhanced-media-library.php:381
55
+ msgid "Reset All Filters"
56
+ msgstr ""
57
+
58
+ #: core/class-eml-media-list-table.php:81
59
+ msgid "Empty Trash"
60
+ msgstr ""
61
+
62
+ #: core/eml-upload.php:19
63
+ msgid "You do not have permission to upload files."
64
+ msgstr ""
65
+
66
+ #: core/eml-upload.php:39 core/eml-upload.php:212
67
+ msgid "Overview"
68
+ msgstr ""
69
+
70
+ #: core/eml-upload.php:41
71
+ msgid ""
72
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with "
73
+ "the most recent uploads listed first."
74
+ msgstr ""
75
+
76
+ #: core/eml-upload.php:42 core/eml-upload.php:216
77
+ msgid ""
78
+ "You can view your media in a simple visual grid or a list with columns. "
79
+ "Switch between these views using the icons to the left above the media."
80
+ msgstr ""
81
+
82
+ #: core/eml-upload.php:43
83
+ msgid ""
84
+ "To delete media items, click the Bulk Select button at the top of the "
85
+ "screen. Select any items you wish to delete, then click the Delete Selected "
86
+ "button. Clicking the Cancel Selection button takes you back to viewing your "
87
+ "media."
88
+ msgstr ""
89
+
90
+ #: core/eml-upload.php:48
91
+ msgid "Attachment Details"
92
+ msgstr ""
93
+
94
+ #: core/eml-upload.php:50
95
+ msgid ""
96
+ "Clicking an item will display an Attachment Details dialog, which allows you "
97
+ "to preview media and make quick edits. Any changes you make to the "
98
+ "attachment details will be automatically saved."
99
+ msgstr ""
100
+
101
+ #: core/eml-upload.php:51
102
+ msgid ""
103
+ "Use the arrow buttons at the top of the dialog, or the left and right arrow "
104
+ "keys on your keyboard, to navigate between media items quickly."
105
+ msgstr ""
106
+
107
+ #: core/eml-upload.php:52
108
+ msgid ""
109
+ "You can also delete individual items and access the extended edit screen "
110
+ "from the details dialog."
111
+ msgstr ""
112
+
113
+ #: core/eml-upload.php:56 core/eml-upload.php:232
114
+ msgid "For more information:"
115
+ msgstr ""
116
+
117
+ #: core/eml-upload.php:57 core/eml-upload.php:233
118
+ msgid ""
119
+ "<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank"
120
+ "\">Documentation on Media Library</a>"
121
+ msgstr ""
122
+
123
+ #: core/eml-upload.php:58 core/eml-upload.php:234
124
+ msgid ""
125
+ "<a href=\"https://wordpress.org/support/\" target=\"_blank\">Support Forums</"
126
+ "a>"
127
+ msgstr ""
128
+
129
+ #: core/eml-upload.php:61 core/eml-upload.php:203
130
+ msgid "Media Library"
131
+ msgstr ""
132
+
133
+ #: core/eml-upload.php:71 core/eml-upload.php:245
134
+ msgctxt "file"
135
+ msgid "Add New"
136
+ msgstr ""
137
+
138
+ #: core/eml-upload.php:76
139
+ msgid ""
140
+ "The grid view for the Media Library requires JavaScript. <a href=\"upload."
141
+ "php?mode=list\">Switch to the list view</a>."
142
+ msgstr ""
143
+
144
+ #: core/eml-upload.php:124
145
+ msgid "You are not allowed to edit this post."
146
+ msgstr ""
147
+
148
+ #: core/eml-upload.php:161
149
+ msgid "You are not allowed to move this post to the trash."
150
+ msgstr ""
151
+
152
+ #: core/eml-upload.php:164
153
+ msgid "Error in moving to trash."
154
+ msgstr ""
155
+
156
+ #: core/eml-upload.php:173
157
+ msgid "You are not allowed to move this post out of the trash."
158
+ msgstr ""
159
+
160
+ #: core/eml-upload.php:176
161
+ msgid "Error in restoring from trash."
162
+ msgstr ""
163
+
164
+ #: core/eml-upload.php:185
165
+ msgid "You are not allowed to delete this post."
166
+ msgstr ""
167
+
168
+ #: core/eml-upload.php:188
169
+ msgid "Error in deleting."
170
+ msgstr ""
171
+
172
+ #: core/eml-upload.php:208
173
+ msgctxt "items per page (screen options)"
174
+ msgid "Media items"
175
+ msgstr ""
176
+
177
+ #: core/eml-upload.php:214
178
+ msgid ""
179
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with "
180
+ "the most recent uploads listed first. You can use the Screen Options tab to "
181
+ "customize the display of this screen."
182
+ msgstr ""
183
+
184
+ #: core/eml-upload.php:215
185
+ msgid ""
186
+ "You can narrow the list by file type/status using the text link filters at "
187
+ "the top of the screen. You also can refine the list by date using the "
188
+ "dropdown menu above the media table."
189
+ msgstr ""
190
+
191
+ #: core/eml-upload.php:220
192
+ msgid "Available Actions"
193
+ msgstr ""
194
+
195
+ #: core/eml-upload.php:222
196
+ msgid ""
197
+ "Hovering over a row reveals action links: Edit, Delete Permanently, and "
198
+ "View. Clicking Edit or on the media file&#8217;s name displays a simple "
199
+ "screen to edit that individual file&#8217;s metadata. Clicking Delete "
200
+ "Permanently will delete the file from the media library (as well as from any "
201
+ "posts to which it is currently attached). View will take you to the display "
202
+ "page for that file."
203
+ msgstr ""
204
+
205
+ #: core/eml-upload.php:226
206
+ msgid "Attaching Files"
207
+ msgstr ""
208
+
209
+ #: core/eml-upload.php:228
210
+ msgid ""
211
+ "If a media file has not been attached to any post, you will see that in the "
212
+ "Attached To column, and can click on Attach File to launch a small popup "
213
+ "that will allow you to search for a post and attach the file."
214
+ msgstr ""
215
+
216
+ #: core/eml-upload.php:248
217
+ #, php-format
218
+ msgid "Search results for &#8220;%s&#8221;"
219
+ msgstr ""
220
+
221
+ #: core/eml-upload.php:254 core/eml-upload.php:279
222
+ msgid "Media attachment updated."
223
+ msgstr ""
224
+
225
+ #: core/eml-upload.php:259
226
+ #, php-format
227
+ msgid "Reattached %d attachment."
228
+ msgid_plural "Reattached %d attachments."
229
+ msgstr[0] ""
230
+ msgstr[1] ""
231
+
232
+ #: core/eml-upload.php:264
233
+ #, php-format
234
+ msgid "Media attachment permanently deleted."
235
+ msgid_plural "%d media attachments permanently deleted."
236
+ msgstr[0] ""
237
+ msgstr[1] ""
238
+
239
+ #: core/eml-upload.php:269
240
+ #, php-format
241
+ msgid "Media attachment moved to the trash."
242
+ msgid_plural "%d media attachments moved to the trash."
243
+ msgstr[0] ""
244
+ msgstr[1] ""
245
+
246
+ #: core/eml-upload.php:270 core/eml-upload.php:282
247
+ msgid "Undo"
248
+ msgstr ""
249
+
250
+ #: core/eml-upload.php:275
251
+ #, php-format
252
+ msgid "Media attachment restored from the trash."
253
+ msgid_plural "%d media attachments restored from the trash."
254
+ msgstr[0] ""
255
+ msgstr[1] ""
256
+
257
+ #: core/eml-upload.php:280
258
+ msgid "Media permanently deleted."
259
+ msgstr ""
260
+
261
+ #: core/eml-upload.php:281
262
+ msgid "Error saving media attachment."
263
+ msgstr ""
264
+
265
+ #: core/eml-upload.php:282
266
+ msgid "Media moved to the trash."
267
+ msgstr ""
268
+
269
+ #: core/eml-upload.php:283
270
+ msgid "Media restored from the trash."
271
+ msgstr ""
272
+
273
+ #: core/mime-types.php:107
274
+ #, php-format
275
+ msgid " <span class=\"count\">(%s)</span>"
276
+ msgid_plural " <span class=\"count\">(%s)</span>"
277
+ msgstr[0] ""
278
+ msgstr[1] ""
279
 
280
  # @ eml
281
+ #: core/options-pages.php:67 core/options-pages.php:68
282
+ #: core/options-pages.php:77
283
  msgid "Media Settings"
284
  msgstr "Media Instellingen"
285
 
286
  # @ eml
287
+ #: core/options-pages.php:78 core/options-pages.php:254
288
+ #: core/options-pages.php:276 core/options-pages.php:322
289
+ #: core/options-pages.php:386
290
+ msgid "Settings"
291
+ msgstr "Instellingen"
292
+
293
+ # @ eml
294
+ #: core/options-pages.php:85 core/options-pages.php:86
295
+ #: core/options-pages.php:188
296
  msgid "Taxonomies"
297
  msgstr "Taxonomies"
298
 
299
  # @ eml
300
+ #: core/options-pages.php:94 core/options-pages.php:95
301
+ #: core/options-pages.php:510
302
  msgid "MIME Types"
303
  msgstr "MIME Types"
304
 
305
  # @ eml
306
+ #: core/options-pages.php:132 core/options-pages.php:229
307
+ #: core/options-pages.php:243 core/options-pages.php:311
308
+ #: core/options-pages.php:383
309
  msgid "Edit"
310
  msgstr "Bewerk"
311
 
312
  # @ eml
313
+ #: core/options-pages.php:133 pro/enhanced-media-library-pro.php:166
314
  msgid "Close"
315
  msgstr "Sluit"
316
 
317
  # @ eml
318
+ #: core/options-pages.php:134 core/options-pages.php:244
319
+ #: core/options-pages.php:312
320
  msgid "View"
321
  msgstr "Bekijk"
322
 
323
  # @ eml
324
+ #: core/options-pages.php:135 core/options-pages.php:245
325
+ #: core/options-pages.php:313
326
  msgid "Update"
327
  msgstr "Werk bij"
328
 
329
  # @ eml
330
+ #: core/options-pages.php:136 core/options-pages.php:246
331
+ #: core/options-pages.php:314
332
  msgid "Add New"
333
  msgstr "Voeg Nieuw Toe"
334
 
335
  # @ eml
336
+ #: core/options-pages.php:137 core/options-pages.php:247
337
+ #: core/options-pages.php:315
338
  msgid "New"
339
  msgstr "Nieuw"
340
 
341
  # @ eml
342
+ #: core/options-pages.php:138
343
  msgid "Name"
344
  msgstr "Naam"
345
 
346
  # @ eml
347
+ #: core/options-pages.php:139 core/options-pages.php:248
348
+ #: core/options-pages.php:316
349
  msgid "Parent"
350
  msgstr "Parent"
351
 
352
  # @ eml
353
+ #: core/options-pages.php:140 core/options-pages.php:242
354
+ #: core/options-pages.php:310
355
  msgid "All"
356
  msgstr "Allemaal"
357
 
358
  # @ eml
359
+ #: core/options-pages.php:141 core/options-pages.php:249
360
+ #: core/options-pages.php:317
361
  msgid "Search"
362
  msgstr "Zoek"
363
 
364
  # @ eml
365
+ #: core/options-pages.php:143
366
  msgid ""
367
  "Taxonomy will be deleted permanently! Your media files will remain intacted, "
368
  "but all the connections with this taxonomy and its terms will be lost."
371
  "alle connecties met deze taxonomy en de termen zullen verdwenen zijn."
372
 
373
  # @ eml
374
+ #: core/options-pages.php:144
375
  msgid "There is already a taxonomy with the same name. Please chose other one."
376
  msgstr "Er is al een taxonomy met deze naam. Kies aub een andere."
377
 
378
  # @ eml
379
+ #: core/options-pages.php:145 core/options-pages.php:298
380
  msgid "New Taxonomy"
381
  msgstr "Nieuwe Taxonomy"
382
 
383
  # @ eml
384
+ #: core/options-pages.php:146
385
  msgid "Please choose Singular and Plural names for all your new taxomonies."
386
  msgstr ""
387
  "Kies aub Enkelvoudige en Meervoudige namen voor al je nieuwe taxonomies."
388
 
389
  # @ eml
390
+ #: core/options-pages.php:147
391
  msgid "Please choose Singilar name for all your new taxomonies."
392
  msgstr "Kies aub Enkelvoudige naam voor al je nieuwe taxonomies."
393
 
394
  # @ eml
395
+ #: core/options-pages.php:148
396
  msgid "Please choose Plural Name for all your new taxomonies."
397
  msgstr "Kies aub Meervoudige naam voor al je nieuwe taxonomies."
398
 
399
  # @ eml
400
+ #: core/options-pages.php:150
401
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
402
  msgstr ""
403
  "Waarschuwing! Al je persoonlijke MIME Types zullen door deze operatie "
404
  "verwijderd worden."
405
 
406
  # @ eml
407
+ #: core/options-pages.php:151
408
  msgid "Please fill into all fields."
409
  msgstr "Vul aub alle velden in."
410
 
411
  # @ eml
412
+ #: core/options-pages.php:152
413
  msgid "Duplicate extensions or MIME types. Please chose other one."
414
  msgstr "Dubbele extensies of MIME types. Kies aub een andere."
415
 
416
  # @ eml
417
+ #: core/options-pages.php:180 core/options-pages.php:501
418
+ #: pro/core/options-pages.php:170
419
  msgid "You do not have sufficient permissions to access this page."
420
  msgstr "U hebt onvoldoende toegangsrechten voor deze pagina."
421
 
422
  # @ eml
423
+ #: core/options-pages.php:204
424
  msgid "Media Taxonomies"
425
  msgstr "Media Taxonomies"
426
 
427
  # @ eml
428
+ #: core/options-pages.php:208 core/options-pages.php:360
429
  msgid "Assign following taxonomies to Media Library:"
430
  msgstr "Ken de volgende taxonomies toe aan de Media Library:"
431
 
432
  # @ eml
433
+ #: core/options-pages.php:226 core/options-pages.php:296
434
+ #: core/options-pages.php:376
435
  msgid "Assign Taxonomy"
436
  msgstr "Toekennen Taxonomie"
437
 
438
  # @ eml
439
+ #: core/options-pages.php:229 core/options-pages.php:383
440
  msgid "Edit Taxonomy"
441
  msgstr "Bewerk Taxonomie"
442
 
443
  # @ eml
444
+ #: core/options-pages.php:232 core/options-pages.php:300
445
  msgid "Delete Taxonomy"
446
  msgstr "Verwijder Taxonomie"
447
 
448
  # @ eml
449
+ #: core/options-pages.php:237 core/options-pages.php:305
450
  msgid "Labels"
451
  msgstr "Labels"
452
 
453
  # @ eml
454
+ #: core/options-pages.php:239 core/options-pages.php:307
455
  msgid "Singular"
456
  msgstr "Enkelvoud"
457
 
458
  # @ eml
459
+ #: core/options-pages.php:240 core/options-pages.php:308
460
  msgid "Plural"
461
  msgstr "Meervoud"
462
 
463
  # @ eml
464
+ #: core/options-pages.php:241 core/options-pages.php:309
465
  msgid "Menu Name"
466
  msgstr "Menu Naam"
467
 
468
+ #: core/options-pages.php:256 core/options-pages.php:324
469
+ msgid "Taxonomy Name"
470
+ msgstr ""
 
 
471
 
472
  # @ eml
473
+ #: core/options-pages.php:257 core/options-pages.php:325
474
  msgid "Hierarchical"
475
  msgstr "Hiërarchisch"
476
 
477
+ #: core/options-pages.php:258 core/options-pages.php:326
478
+ msgid "Column in List View"
479
+ msgstr ""
 
480
 
481
+ #: core/options-pages.php:259 core/options-pages.php:278
482
+ #: core/options-pages.php:327 core/options-pages.php:388
483
+ msgid "Filter in List View"
484
+ msgstr ""
 
485
 
486
+ #: core/options-pages.php:260 core/options-pages.php:279
487
+ #: core/options-pages.php:328 core/options-pages.php:389
488
+ msgid "Filter in Grid View / Media Popup"
489
+ msgstr ""
490
+
491
+ #: core/options-pages.php:261 core/options-pages.php:280
492
+ #: core/options-pages.php:329 core/options-pages.php:390
493
+ msgid "Edit in Media Popup"
494
+ msgstr ""
495
 
496
  # @ eml
497
+ #: core/options-pages.php:262 core/options-pages.php:330
498
  msgid "Show in Nav Menu"
499
  msgstr "Toon in Nav Menu"
500
 
501
  # @ eml
502
+ #: core/options-pages.php:263 core/options-pages.php:331
503
  msgid "Remember terms order (sort)"
504
  msgstr "Onthoudt termen volgorde (sorteer)"
505
 
506
+ #: core/options-pages.php:264 core/options-pages.php:332
507
+ msgid "Rewrite Slug"
508
+ msgstr ""
509
+
510
+ #: core/options-pages.php:265 core/options-pages.php:333
511
+ msgid "Slug with Front"
512
+ msgstr ""
513
 
514
  # @ eml
515
+ #: core/options-pages.php:345
516
  msgid "Add New Taxonomy"
517
  msgstr "Voeg Nieuwe Taxonomie Toe"
518
 
519
  # @ eml
520
+ #: core/options-pages.php:356
521
  msgid "Non-Media Taxonomies"
522
  msgstr "Niet-Media Taxonomies"
523
 
524
+ #: core/options-pages.php:415
525
+ msgid "Options"
526
+ msgstr ""
527
+
528
+ #: core/options-pages.php:425 core/options-pages.php:428
529
+ msgid "Taxonomy archive pages"
530
+ msgstr ""
531
+
532
+ #: core/options-pages.php:429
533
+ msgid "Turn on media taxonomy archive pages on the front-end"
534
+ msgstr ""
535
+
536
+ #: core/options-pages.php:430
537
+ msgid ""
538
+ "Re-save your permalink settings after this option change to make it work."
539
+ msgstr ""
540
+
541
+ #: core/options-pages.php:436
542
+ msgid "Assign all like hierarchical"
543
+ msgstr ""
544
+
545
+ #: core/options-pages.php:439 core/options-pages.php:440
546
+ msgid ""
547
+ "Show non-hierarchical taxonomies like hierarchical in Grid View / Media Popup"
548
+ msgstr ""
549
+
550
+ #: core/options-pages.php:446 core/options-pages.php:449
551
+ msgid "Force filters"
552
+ msgstr ""
553
+
554
+ #: core/options-pages.php:450
555
+ msgid "Show media filters for ANY Media Popup."
556
+ msgstr ""
557
+
558
+ #: core/options-pages.php:451
559
+ msgid ""
560
+ "May be useful for those who need forcing filters for third-party plugins or "
561
+ "themes."
562
+ msgstr ""
563
+
564
  # @ eml
565
+ #: core/options-pages.php:511
566
  msgid "Add New MIME Type"
567
  msgstr "Voeg Nieuw MIME Type Toe"
568
 
569
  # @ eml
570
+ #: core/options-pages.php:529 core/options-pages.php:582
571
  msgid "Extension"
572
  msgstr "Extensie"
573
 
574
  # @ eml
575
+ #: core/options-pages.php:530 core/options-pages.php:583
576
  msgid "MIME Type"
577
  msgstr "MIME Type"
578
 
579
  # @ eml
580
+ #: core/options-pages.php:531 core/options-pages.php:584
581
  msgid "Singular Label"
582
  msgstr "Enkelvoud Label"
583
 
584
  # @ eml
585
+ #: core/options-pages.php:532 core/options-pages.php:585
586
  msgid "Plural Label"
587
  msgstr "Meervoud Label"
588
 
589
  # @ eml
590
+ #: core/options-pages.php:533 core/options-pages.php:561
591
+ #: core/options-pages.php:574 core/options-pages.php:586
592
  msgid "Add Filter"
593
  msgstr "Voeg Filter Toe"
594
 
595
  # @ eml
596
+ #: core/options-pages.php:534 core/options-pages.php:562
597
+ #: core/options-pages.php:575 core/options-pages.php:587
598
  msgid "Allow Upload"
599
  msgstr "Sta Upload Toe"
600
 
601
  # @ eml
602
+ #: core/options-pages.php:576
603
  msgid "Delete MIME Type"
604
  msgstr "Verwijder MIME Type"
605
 
606
  # @ eml
607
+ #: core/options-pages.php:593
608
  msgid "Restore default MIME Types"
609
  msgstr "Herstel default MIME Types"
610
 
611
+ #: core/taxonomies.php:321 core/taxonomies.php:327
612
+ #: enhanced-media-library.php:378
613
+ msgid "Filter by "
614
+ msgstr ""
615
+
616
+ #: core/taxonomies.php:328 enhanced-media-library.php:379
617
+ msgid "All "
618
+ msgstr ""
619
+
620
+ #: core/taxonomies.php:329 enhanced-media-library.php:380
621
+ msgid "Not in "
622
+ msgstr ""
623
+
624
+ #: enhanced-media-library.php:47
625
+ msgid ""
626
+ "Please deactivate and <strong>remove</strong> the old version prior to the "
627
+ "<strong>Enhanced Media Library PRO</strong> activation. All your data will "
628
+ "remain intact."
629
+ msgstr ""
630
+
631
+ #: enhanced-media-library.php:47
632
+ msgid "Return to Plugins"
633
+ msgstr ""
634
+
635
+ #: pro/core/bulk-edit.php:75
636
+ msgid "Remove"
637
+ msgstr ""
638
+
639
+ #: pro/core/bulk-edit.php:79
640
+ msgid "Deselect"
641
+ msgstr ""
642
+
643
+ #: pro/core/bulk-edit.php:86
644
+ msgid "Caption this image&hellip;"
645
+ msgstr ""
646
+
647
+ #: pro/core/bulk-edit.php:90
648
+ msgid "Describe this video&hellip;"
649
+ msgstr ""
650
+
651
+ #: pro/core/bulk-edit.php:92
652
+ msgid "Describe this audio file&hellip;"
653
+ msgstr ""
654
+
655
+ #: pro/core/bulk-edit.php:94
656
+ msgid "Describe this media file&hellip;"
657
+ msgstr ""
658
+
659
+ #: pro/core/bulk-edit.php:103
660
+ msgid "Attachments Details"
661
+ msgstr ""
662
+
663
+ #: pro/core/bulk-edit.php:157
664
+ msgid "Select All"
665
+ msgstr ""
666
+
667
+ #: pro/core/bulk-edit.php:159
668
+ msgid "Edit Selection"
669
+ msgstr ""
670
+
671
+ #: pro/core/bulk-edit.php:162
672
+ msgid "Deselect All"
673
+ msgstr ""
674
+
675
+ #: pro/core/bulk-edit.php:166
676
+ msgid "Delete Selected"
677
+ msgstr ""
678
+
679
+ #: pro/core/options-pages.php:100 pro/core/options-pages.php:101
680
+ msgid "EML PRO Updates"
681
+ msgstr ""
682
+
683
+ #: pro/core/options-pages.php:126 pro/enhanced-media-library-pro.php:168
684
+ msgid "Bulk Edit"
685
+ msgstr ""
686
+
687
+ #: pro/core/options-pages.php:134 pro/core/options-pages.php:137
688
+ msgid "Turn off 'Save Changes' button"
689
+ msgstr ""
690
+
691
+ #: pro/core/options-pages.php:138
692
+ msgid "Save changes on the fly"
693
+ msgstr ""
694
+
695
+ #: pro/core/options-pages.php:139
696
+ msgid ""
697
+ "Any click on a taxonomy checkbox during media files bulk edition will lead "
698
+ "to an <strong style=\"color:red\">immediate saving</strong> of the data. "
699
+ "Please, be careful! You have much greater chance to <strong style=\"color:red"
700
+ "\">accidentally perform wrong re-assigning</strong> of a lot of your media "
701
+ "files / taxonomies with this option turned on."
702
+ msgstr ""
703
+
704
+ #: pro/core/options-pages.php:140
705
+ msgid ""
706
+ "Strongly NOT recommended option if you work with more than hundred of files "
707
+ "at a time."
708
+ msgstr ""
709
+
710
+ #: pro/core/options-pages.php:175
711
+ msgid "Updates"
712
+ msgstr ""
713
+
714
+ #: pro/core/options-pages.php:190
715
+ msgid "Enhanced Media Library PRO License"
716
+ msgstr ""
717
+
718
+ #: pro/core/options-pages.php:215
719
+ msgid ""
720
+ "To unlock updates, please enter your license key below. You can see your "
721
+ "license key in <a href=\"http://www.wpuxsolutions.com/account/\">Your "
722
+ "Account</a>. If you don&#8217;t have a licence key, your are welcome to <a "
723
+ "href=\"http://www.wpuxsolutions.com/pricing/\">purchase it</a>."
724
+ msgstr ""
725
+
726
+ #: pro/core/options-pages.php:219
727
+ msgid "License Key"
728
+ msgstr ""
729
+
730
+ #: pro/core/options-pages.php:226
731
+ msgid "Activate License"
732
+ msgstr ""
733
+
734
+ #: pro/core/options-pages.php:243
735
+ msgid "Your license is active!"
736
+ msgstr ""
737
+
738
+ #: pro/core/update.php:109 pro/core/update.php:114 pro/core/update.php:118
739
+ msgid ""
740
+ "An unexpected error occurred. Something may be wrong with WordPress.org or "
741
+ "this server&#8217;s configuration. If you continue to have problems, please "
742
+ "try the <a href=\"https://wordpress.org/support/\">support forums</a>."
743
+ msgstr ""
744
+
745
+ #: pro/core/update.php:109
746
+ msgid ""
747
+ "(WordPress could not establish a secure connection to WordPress.org. Please "
748
+ "contact your server administrator.)"
749
+ msgstr ""
750
+
751
+ #: pro/core/update.php:184
752
+ #, php-format
753
+ msgid ""
754
+ "To unlock updates, please enter your license key on the <a href=\"%s"
755
+ "\">Updates</a> page. You can see your license key in <a href=\"%s\">Your "
756
+ "Account</a>. If you don&#8217;t have a licence key, your are welcome to <a "
757
+ "href=\"%s\">purchase it</a>."
758
+ msgstr ""
759
+
760
+ #: pro/enhanced-media-library-pro.php:89
761
+ #: pro/enhanced-media-library-pro.php:100
762
+ msgid "Expand Details"
763
+ msgstr ""
764
+
765
+ #: pro/enhanced-media-library-pro.php:90
766
+ #: pro/enhanced-media-library-pro.php:101
767
+ msgid "Collapse Details"
768
+ msgstr ""
769
+
770
+ #: pro/enhanced-media-library-pro.php:93
771
+ msgid "Validation Failed. One or more fields below are required."
772
+ msgstr ""
773
+
774
+ #: pro/enhanced-media-library-pro.php:99
775
+ msgid "The changes you made will be lost if you navigate away from this page"
776
+ msgstr ""
777
+
778
+ #: pro/enhanced-media-library-pro.php:160
779
+ msgid "ALL files belong to this item"
780
+ msgstr ""
781
+
782
+ #: pro/enhanced-media-library-pro.php:161
783
+ msgid "SOME files belong to this item"
784
+ msgstr ""
785
+
786
+ #: pro/enhanced-media-library-pro.php:162
787
+ msgid "NO files belong to this item"
788
+ msgstr ""
789
+
790
+ #: pro/enhanced-media-library-pro.php:163
791
+ msgid "Changes saved."
792
+ msgstr ""
793
+
794
+ #: pro/enhanced-media-library-pro.php:164
795
+ msgid "Something went wrong."
796
+ msgstr ""
797
+
798
+ #: pro/enhanced-media-library-pro.php:165
799
+ msgid "Save Changes"
800
+ msgstr ""
801
+
802
+ #: pro/enhanced-media-library-pro.php:167
803
+ msgid "Edit Media Files"
804
+ msgstr ""
805
+
806
+ #: pro/enhanced-media-library-pro.php:260
807
+ msgid ""
808
+ "<strong>Enhanced Media Library PRO</strong> does not require free version to "
809
+ "be active. Please deactivate and remove the free version of the plugin."
810
+ msgstr ""
811
+
812
  # @ eml
813
  #. Plugin Name of the plugin/theme
814
  msgid "Enhanced Media Library"
815
+ msgstr ""
816
+
817
+ #. Plugin Name of the plugin/theme
818
+ msgid "Enhanced Media Library PRO"
819
+ msgstr ""
820
 
821
  # @ eml
822
  #. Description of the plugin/theme
825
  msgstr ""
826
  "Deze plug-in is handig voor iedereen die veel media bestanden moet beheren."
827
 
828
+ # @ eml
829
+ #~ msgid "Enhanced Media Library Options"
830
+ #~ msgstr "Enhanced Media Library Opties"
831
+
832
+ # @ eml
833
+ #~ msgid "Column in Media Library"
834
+ #~ msgstr "Kolom in Media Library"
835
+
836
+ # @ eml
837
+ #~ msgid "Filter in Media Library"
838
+ #~ msgstr "Filter in Media Library"
839
+
840
+ # @ eml
841
+ #, fuzzy
842
+ #~ msgid "Filter in Media Popup / Grid View"
843
+ #~ msgstr "Filter in Media Uploader"
844
+
845
+ # @ eml
846
+ #~ msgid "Slug"
847
+ #~ msgstr "Slug"
848
+
849
  # @ eml
850
  #~ msgid "http://wordpressuxsolutions.com"
851
  #~ msgstr "http://wordpressuxsolutions.com"
languages/eml-pl_PL.mo CHANGED
Binary file
languages/eml-pl_PL.po CHANGED
@@ -4,261 +4,769 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: Enhanced Media Library 1.1.2\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/enhanced-media-library\n"
7
- "POT-Creation-Date: 2014-09-04 18:35:44+00:00\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2014-09-10 19:55+0100\n"
12
  "Last-Translator: postermania.eu <justfake@icloud.com>\n"
13
  "Language-Team: Paweł Krużel <pawel.kruzel@gmail.com>\n"
14
- "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
15
- "|| n%100>=20) ? 1 : 2);\n"
16
  "Language: pl_PL\n"
17
- "X-Generator: Poedit 1.6.7\n"
 
 
 
 
 
18
  "X-Poedit-SourceCharset: UTF-8\n"
19
 
20
- #: core/options-pages.php:15
21
- msgid "Enhanced Media Library Options"
22
- msgstr "Rozszerzona Biblioteka Mediów - Opcje"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
- #: core/options-pages.php:16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  msgid "Media Settings"
26
  msgstr "Ustawienia Mediów"
27
 
28
- #: core/options-pages.php:24 core/options-pages.php:25
29
- #: core/options-pages.php:119
 
 
 
 
30
  msgid "Taxonomies"
31
  msgstr "Taksonomie"
32
 
33
- #: core/options-pages.php:32 core/options-pages.php:33
34
- #: core/options-pages.php:388
35
  msgid "MIME Types"
36
  msgstr "Typy MIME"
37
 
38
- #: core/options-pages.php:67 core/options-pages.php:161
39
- #: core/options-pages.php:175 core/options-pages.php:239
40
- #: core/options-pages.php:312
41
  msgid "Edit"
42
  msgstr "Edytuj"
43
 
44
- #: core/options-pages.php:68
45
  msgid "Close"
46
  msgstr "Zamknij"
47
 
48
- #: core/options-pages.php:69 core/options-pages.php:176
49
- #: core/options-pages.php:240
50
  msgid "View"
51
  msgstr "Zobacz"
52
 
53
- #: core/options-pages.php:70 core/options-pages.php:177
54
- #: core/options-pages.php:241
55
  msgid "Update"
56
  msgstr "Aktualizuj"
57
 
58
- #: core/options-pages.php:71 core/options-pages.php:178
59
- #: core/options-pages.php:242
60
  msgid "Add New"
61
  msgstr "Dodaj nowy"
62
 
63
- #: core/options-pages.php:72 core/options-pages.php:179
64
- #: core/options-pages.php:243
65
  msgid "New"
66
  msgstr "Nowy"
67
 
68
- #: core/options-pages.php:73
69
  msgid "Name"
70
  msgstr "Nazwa"
71
 
72
- #: core/options-pages.php:74 core/options-pages.php:180
73
- #: core/options-pages.php:244
74
  msgid "Parent"
75
  msgstr "Rodzic"
76
 
77
- #: core/options-pages.php:75 core/options-pages.php:174
78
- #: core/options-pages.php:238
79
  msgid "All"
80
  msgstr "Wszystkie"
81
 
82
- #: core/options-pages.php:76 core/options-pages.php:181
83
- #: core/options-pages.php:245
84
  msgid "Search"
85
  msgstr "Szukaj"
86
 
87
- #: core/options-pages.php:78
88
  msgid ""
89
- "Taxonomy will be deleted permanently! Your media files will remain intacted, "
90
- "but all the connections with this taxonomy and its terms will be lost."
91
  msgstr ""
92
- "Taksonomia zostanie trwale usunięta. Pliki mediów pozostaną nietknięte, ale "
93
- "wszystkie ich połączenia z tą taksonomią i warunki zostaną utracone."
94
 
95
- #: core/options-pages.php:79
96
  msgid "There is already a taxonomy with the same name. Please chose other one."
97
  msgstr "Istnieje już taksonomia o takiej nazwie. Wybierz inną nazwę."
98
 
99
- #: core/options-pages.php:80 core/options-pages.php:226
100
  msgid "New Taxonomy"
101
  msgstr "Nowa taksonomia"
102
 
103
- #: core/options-pages.php:81
104
  msgid "Please choose Singular and Plural names for all your new taxomonies."
105
- msgstr ""
106
- "Proszę wybrać nazwy w liczbie pojedynczej oraz mnogiej dla nowej taksonomii"
107
 
108
- #: core/options-pages.php:82
109
  msgid "Please choose Singilar name for all your new taxomonies."
110
  msgstr "Proszę wybrać nazwę w liczbie pojedynczej dla nowej taksonomii"
111
 
112
- #: core/options-pages.php:83
113
  msgid "Please choose Plural Name for all your new taxomonies."
114
  msgstr "Prosze wybrać nazwę w liczbie mnogiej dla nowej taksonomii"
115
 
116
- #: core/options-pages.php:85
117
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
118
  msgstr ""
119
- "Ostrzeżenie! Wszystkie niestandardowe typy MIME będą usunięte przez tę "
120
- "operację. "
121
 
122
- #: core/options-pages.php:86
123
  msgid "Please fill into all fields."
124
  msgstr "Proszę wypełnić wszystkie pola"
125
 
126
- #: core/options-pages.php:87
127
  msgid "Duplicate extensions or MIME types. Please chose other one."
128
  msgstr ""
129
- "Duplikat rozszerzeń lub typów MIME. Proszę wybrać inny typ lub rozszerzenie "
130
- "pliku"
131
 
132
- #: core/options-pages.php:111 core/options-pages.php:379
133
  msgid "You do not have sufficient permissions to access this page."
134
  msgstr "Nie masz wystarczających uprawnień dostępu do tej strony."
135
 
136
- #: core/options-pages.php:135
137
  msgid "Media Taxonomies"
138
  msgstr "Taksonomie mediów"
139
 
140
- #: core/options-pages.php:139 core/options-pages.php:288
141
  msgid "Assign following taxonomies to Media Library:"
142
  msgstr "Przypisz następujące taksonomie do biblioteki mediów:"
143
 
144
- #: core/options-pages.php:158 core/options-pages.php:224
145
- #: core/options-pages.php:305
146
  msgid "Assign Taxonomy"
147
  msgstr "Przypisz taksonomię"
148
 
149
- #: core/options-pages.php:161 core/options-pages.php:312
150
  msgid "Edit Taxonomy"
151
  msgstr "Edytuj taksonomię"
152
 
153
- #: core/options-pages.php:164 core/options-pages.php:228
154
  msgid "Delete Taxonomy"
155
  msgstr "Usuń taksonomię"
156
 
157
- #: core/options-pages.php:169 core/options-pages.php:233
158
  msgid "Labels"
159
  msgstr "Etykiety"
160
 
161
- #: core/options-pages.php:171 core/options-pages.php:235
162
  msgid "Singular"
163
  msgstr "Liczba pojedyncza"
164
 
165
- #: core/options-pages.php:172 core/options-pages.php:236
166
  msgid "Plural"
167
  msgstr "Liczba mnoga"
168
 
169
- #: core/options-pages.php:173 core/options-pages.php:237
170
  msgid "Menu Name"
171
  msgstr "Nazwa w menu"
172
 
173
- #: core/options-pages.php:186 core/options-pages.php:205
174
- #: core/options-pages.php:250 core/options-pages.php:315
175
- msgid "Settings"
176
- msgstr "Ustawienia"
177
 
178
- #: core/options-pages.php:188 core/options-pages.php:252
179
  msgid "Hierarchical"
180
  msgstr "Hierachicznie"
181
 
182
- #: core/options-pages.php:189 core/options-pages.php:253
183
- msgid "Column in Media Library"
184
- msgstr "Kolumna w bibliotece mediów"
185
 
186
- #: core/options-pages.php:190 core/options-pages.php:207
187
- #: core/options-pages.php:254 core/options-pages.php:317
188
- msgid "Filter in Media Library"
189
- msgstr "Filtr w bibliotece mediów"
190
 
191
- #: core/options-pages.php:191 core/options-pages.php:208
192
- #: core/options-pages.php:255 core/options-pages.php:318
193
- msgid "Filter in Media Popup / Grid View"
194
- msgstr "Filtr w wyskakującym oknie mediów / widoku siatki"
195
 
196
- #: core/options-pages.php:192 core/options-pages.php:256
 
 
 
 
 
197
  msgid "Show in Nav Menu"
198
  msgstr "Pokaż w menu nawigacyjnym"
199
 
200
- #: core/options-pages.php:193 core/options-pages.php:257
201
  msgid "Remember terms order (sort)"
202
  msgstr "Pamiętaj kolejność (sortowanie)"
203
 
204
- #: core/options-pages.php:194 core/options-pages.php:258
205
- #, fuzzy
206
- msgid "Slug"
207
- msgstr "Slug"
208
 
209
- #: core/options-pages.php:271
 
 
 
 
210
  msgid "Add New Taxonomy"
211
  msgstr "Dodaj nową taksonomię"
212
 
213
- #: core/options-pages.php:284
214
  msgid "Non-Media Taxonomies"
215
  msgstr "Pozostałe taksonomie"
216
 
217
- #: core/options-pages.php:389
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  msgid "Add New MIME Type"
219
  msgstr "Dodaj nowy typ MIME"
220
 
221
- #: core/options-pages.php:407 core/options-pages.php:464
222
  msgid "Extension"
223
  msgstr "Rozszerzenie"
224
 
225
- #: core/options-pages.php:408 core/options-pages.php:465
226
  msgid "MIME Type"
227
  msgstr "Typ MIME"
228
 
229
- #: core/options-pages.php:409 core/options-pages.php:466
230
  msgid "Singular Label"
231
  msgstr "Etykieta dla liczby pojedynczej"
232
 
233
- #: core/options-pages.php:410 core/options-pages.php:467
234
  msgid "Plural Label"
235
  msgstr "Etykieta dla liczby mnogiej"
236
 
237
- #: core/options-pages.php:411 core/options-pages.php:441
238
- #: core/options-pages.php:456 core/options-pages.php:468
239
  msgid "Add Filter"
240
  msgstr "Dodaj filtr"
241
 
242
- #: core/options-pages.php:412 core/options-pages.php:442
243
- #: core/options-pages.php:457 core/options-pages.php:469
244
  msgid "Allow Upload"
245
  msgstr "Zezwól na przesyłanie"
246
 
247
- #: core/options-pages.php:458
248
  msgid "Delete MIME Type"
249
  msgstr "Usuń typ MIME"
250
 
251
- #: core/options-pages.php:475
252
  msgid "Restore default MIME Types"
253
  msgstr "Przywróć domyślne typy MIME"
254
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  #. Plugin Name of the plugin/theme
256
  msgid "Enhanced Media Library"
257
  msgstr "Rozszerzona Biblioteka Mediów"
258
 
 
 
 
 
259
  #. Description of the plugin/theme
260
- msgid ""
261
- "This plugin will be handy for those who need to manage a lot of media files."
262
  msgstr ""
263
  "Wtyczka ta będzie przydatna tym, którzy muszą zarządzać wieloma plikami "
264
  "multimedialnymi."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  msgstr ""
5
  "Project-Id-Version: Enhanced Media Library 1.1.2\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/enhanced-media-library\n"
7
+ "POT-Creation-Date: 2015-03-04 00:13+0200\n"
8
+ "PO-Revision-Date: 2015-03-05 04:58+0200\n"
 
 
 
9
  "Last-Translator: postermania.eu <justfake@icloud.com>\n"
10
  "Language-Team: Paweł Krużel <pawel.kruzel@gmail.com>\n"
 
 
11
  "Language: pl_PL\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n"
16
+ "%100>=20) ? 1 : 2);\n"
17
+ "X-Generator: Poedit 1.7.4\n"
18
  "X-Poedit-SourceCharset: UTF-8\n"
19
 
20
+ #: core/class-eml-media-list-table.php:39
21
+ #, php-format
22
+ msgctxt "uploaded files"
23
+ msgid "All (%s)"
24
+ msgid_plural "All (%s)"
25
+ msgstr[0] ""
26
+ msgstr[1] ""
27
+ msgstr[2] ""
28
+
29
+ #: core/class-eml-media-list-table.php:50
30
+ #, php-format
31
+ msgctxt "detached files"
32
+ msgid "Unattached (%s)"
33
+ msgid_plural "Unattached (%s)"
34
+ msgstr[0] ""
35
+ msgstr[1] ""
36
+ msgstr[2] ""
37
+
38
+ #: core/class-eml-media-list-table.php:52 enhanced-media-library.php:377
39
+ msgid "All Uncategorized"
40
+ msgstr ""
41
+
42
+ #: core/class-eml-media-list-table.php:55
43
+ #, php-format
44
+ msgctxt "uploaded files"
45
+ msgid "Trash (%s)"
46
+ msgid_plural "Trash (%s)"
47
+ msgstr[0] ""
48
+ msgstr[1] ""
49
+ msgstr[2] ""
50
+
51
+ #: core/class-eml-media-list-table.php:75
52
+ msgid "Filter"
53
+ msgstr ""
54
+
55
+ #: core/class-eml-media-list-table.php:77 enhanced-media-library.php:381
56
+ msgid "Reset All Filters"
57
+ msgstr ""
58
+
59
+ #: core/class-eml-media-list-table.php:81
60
+ msgid "Empty Trash"
61
+ msgstr ""
62
+
63
+ #: core/eml-upload.php:19
64
+ msgid "You do not have permission to upload files."
65
+ msgstr ""
66
+
67
+ #: core/eml-upload.php:39 core/eml-upload.php:212
68
+ msgid "Overview"
69
+ msgstr ""
70
+
71
+ #: core/eml-upload.php:41
72
+ msgid ""
73
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with the most "
74
+ "recent uploads listed first."
75
+ msgstr ""
76
+
77
+ #: core/eml-upload.php:42 core/eml-upload.php:216
78
+ msgid ""
79
+ "You can view your media in a simple visual grid or a list with columns. Switch "
80
+ "between these views using the icons to the left above the media."
81
+ msgstr ""
82
+
83
+ #: core/eml-upload.php:43
84
+ msgid ""
85
+ "To delete media items, click the Bulk Select button at the top of the screen. Select "
86
+ "any items you wish to delete, then click the Delete Selected button. Clicking the "
87
+ "Cancel Selection button takes you back to viewing your media."
88
+ msgstr ""
89
+
90
+ #: core/eml-upload.php:48
91
+ msgid "Attachment Details"
92
+ msgstr ""
93
+
94
+ #: core/eml-upload.php:50
95
+ msgid ""
96
+ "Clicking an item will display an Attachment Details dialog, which allows you to "
97
+ "preview media and make quick edits. Any changes you make to the attachment details "
98
+ "will be automatically saved."
99
+ msgstr ""
100
 
101
+ #: core/eml-upload.php:51
102
+ msgid ""
103
+ "Use the arrow buttons at the top of the dialog, or the left and right arrow keys on "
104
+ "your keyboard, to navigate between media items quickly."
105
+ msgstr ""
106
+
107
+ #: core/eml-upload.php:52
108
+ msgid ""
109
+ "You can also delete individual items and access the extended edit screen from the "
110
+ "details dialog."
111
+ msgstr ""
112
+
113
+ #: core/eml-upload.php:56 core/eml-upload.php:232
114
+ msgid "For more information:"
115
+ msgstr ""
116
+
117
+ #: core/eml-upload.php:57 core/eml-upload.php:233
118
+ msgid ""
119
+ "<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank"
120
+ "\">Documentation on Media Library</a>"
121
+ msgstr ""
122
+
123
+ #: core/eml-upload.php:58 core/eml-upload.php:234
124
+ msgid "<a href=\"https://wordpress.org/support/\" target=\"_blank\">Support Forums</a>"
125
+ msgstr ""
126
+
127
+ #: core/eml-upload.php:61 core/eml-upload.php:203
128
+ msgid "Media Library"
129
+ msgstr ""
130
+
131
+ #: core/eml-upload.php:71 core/eml-upload.php:245
132
+ msgctxt "file"
133
+ msgid "Add New"
134
+ msgstr ""
135
+
136
+ #: core/eml-upload.php:76
137
+ msgid ""
138
+ "The grid view for the Media Library requires JavaScript. <a href=\"upload.php?"
139
+ "mode=list\">Switch to the list view</a>."
140
+ msgstr ""
141
+
142
+ #: core/eml-upload.php:124
143
+ msgid "You are not allowed to edit this post."
144
+ msgstr ""
145
+
146
+ #: core/eml-upload.php:161
147
+ msgid "You are not allowed to move this post to the trash."
148
+ msgstr ""
149
+
150
+ #: core/eml-upload.php:164
151
+ msgid "Error in moving to trash."
152
+ msgstr ""
153
+
154
+ #: core/eml-upload.php:173
155
+ msgid "You are not allowed to move this post out of the trash."
156
+ msgstr ""
157
+
158
+ #: core/eml-upload.php:176
159
+ msgid "Error in restoring from trash."
160
+ msgstr ""
161
+
162
+ #: core/eml-upload.php:185
163
+ msgid "You are not allowed to delete this post."
164
+ msgstr ""
165
+
166
+ #: core/eml-upload.php:188
167
+ msgid "Error in deleting."
168
+ msgstr ""
169
+
170
+ #: core/eml-upload.php:208
171
+ msgctxt "items per page (screen options)"
172
+ msgid "Media items"
173
+ msgstr ""
174
+
175
+ #: core/eml-upload.php:214
176
+ msgid ""
177
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with the most "
178
+ "recent uploads listed first. You can use the Screen Options tab to customize the "
179
+ "display of this screen."
180
+ msgstr ""
181
+
182
+ #: core/eml-upload.php:215
183
+ msgid ""
184
+ "You can narrow the list by file type/status using the text link filters at the top of "
185
+ "the screen. You also can refine the list by date using the dropdown menu above the "
186
+ "media table."
187
+ msgstr ""
188
+
189
+ #: core/eml-upload.php:220
190
+ msgid "Available Actions"
191
+ msgstr ""
192
+
193
+ #: core/eml-upload.php:222
194
+ msgid ""
195
+ "Hovering over a row reveals action links: Edit, Delete Permanently, and View. "
196
+ "Clicking Edit or on the media file&#8217;s name displays a simple screen to edit that "
197
+ "individual file&#8217;s metadata. Clicking Delete Permanently will delete the file "
198
+ "from the media library (as well as from any posts to which it is currently attached). "
199
+ "View will take you to the display page for that file."
200
+ msgstr ""
201
+
202
+ #: core/eml-upload.php:226
203
+ msgid "Attaching Files"
204
+ msgstr ""
205
+
206
+ #: core/eml-upload.php:228
207
+ msgid ""
208
+ "If a media file has not been attached to any post, you will see that in the Attached "
209
+ "To column, and can click on Attach File to launch a small popup that will allow you "
210
+ "to search for a post and attach the file."
211
+ msgstr ""
212
+
213
+ #: core/eml-upload.php:248
214
+ #, php-format
215
+ msgid "Search results for &#8220;%s&#8221;"
216
+ msgstr ""
217
+
218
+ #: core/eml-upload.php:254 core/eml-upload.php:279
219
+ msgid "Media attachment updated."
220
+ msgstr ""
221
+
222
+ #: core/eml-upload.php:259
223
+ #, php-format
224
+ msgid "Reattached %d attachment."
225
+ msgid_plural "Reattached %d attachments."
226
+ msgstr[0] ""
227
+ msgstr[1] ""
228
+ msgstr[2] ""
229
+
230
+ #: core/eml-upload.php:264
231
+ #, php-format
232
+ msgid "Media attachment permanently deleted."
233
+ msgid_plural "%d media attachments permanently deleted."
234
+ msgstr[0] ""
235
+ msgstr[1] ""
236
+ msgstr[2] ""
237
+
238
+ #: core/eml-upload.php:269
239
+ #, php-format
240
+ msgid "Media attachment moved to the trash."
241
+ msgid_plural "%d media attachments moved to the trash."
242
+ msgstr[0] ""
243
+ msgstr[1] ""
244
+ msgstr[2] ""
245
+
246
+ #: core/eml-upload.php:270 core/eml-upload.php:282
247
+ msgid "Undo"
248
+ msgstr ""
249
+
250
+ #: core/eml-upload.php:275
251
+ #, php-format
252
+ msgid "Media attachment restored from the trash."
253
+ msgid_plural "%d media attachments restored from the trash."
254
+ msgstr[0] ""
255
+ msgstr[1] ""
256
+ msgstr[2] ""
257
+
258
+ #: core/eml-upload.php:280
259
+ msgid "Media permanently deleted."
260
+ msgstr ""
261
+
262
+ #: core/eml-upload.php:281
263
+ msgid "Error saving media attachment."
264
+ msgstr ""
265
+
266
+ #: core/eml-upload.php:282
267
+ msgid "Media moved to the trash."
268
+ msgstr ""
269
+
270
+ #: core/eml-upload.php:283
271
+ msgid "Media restored from the trash."
272
+ msgstr ""
273
+
274
+ #: core/mime-types.php:107
275
+ #, php-format
276
+ msgid " <span class=\"count\">(%s)</span>"
277
+ msgid_plural " <span class=\"count\">(%s)</span>"
278
+ msgstr[0] ""
279
+ msgstr[1] ""
280
+ msgstr[2] ""
281
+
282
+ #: core/options-pages.php:67 core/options-pages.php:68 core/options-pages.php:77
283
  msgid "Media Settings"
284
  msgstr "Ustawienia Mediów"
285
 
286
+ #: core/options-pages.php:78 core/options-pages.php:254 core/options-pages.php:276
287
+ #: core/options-pages.php:322 core/options-pages.php:386
288
+ msgid "Settings"
289
+ msgstr "Ustawienia"
290
+
291
+ #: core/options-pages.php:85 core/options-pages.php:86 core/options-pages.php:188
292
  msgid "Taxonomies"
293
  msgstr "Taksonomie"
294
 
295
+ #: core/options-pages.php:94 core/options-pages.php:95 core/options-pages.php:510
 
296
  msgid "MIME Types"
297
  msgstr "Typy MIME"
298
 
299
+ #: core/options-pages.php:132 core/options-pages.php:229 core/options-pages.php:243
300
+ #: core/options-pages.php:311 core/options-pages.php:383
 
301
  msgid "Edit"
302
  msgstr "Edytuj"
303
 
304
+ #: core/options-pages.php:133 pro/enhanced-media-library-pro.php:166
305
  msgid "Close"
306
  msgstr "Zamknij"
307
 
308
+ #: core/options-pages.php:134 core/options-pages.php:244 core/options-pages.php:312
 
309
  msgid "View"
310
  msgstr "Zobacz"
311
 
312
+ #: core/options-pages.php:135 core/options-pages.php:245 core/options-pages.php:313
 
313
  msgid "Update"
314
  msgstr "Aktualizuj"
315
 
316
+ #: core/options-pages.php:136 core/options-pages.php:246 core/options-pages.php:314
 
317
  msgid "Add New"
318
  msgstr "Dodaj nowy"
319
 
320
+ #: core/options-pages.php:137 core/options-pages.php:247 core/options-pages.php:315
 
321
  msgid "New"
322
  msgstr "Nowy"
323
 
324
+ #: core/options-pages.php:138
325
  msgid "Name"
326
  msgstr "Nazwa"
327
 
328
+ #: core/options-pages.php:139 core/options-pages.php:248 core/options-pages.php:316
 
329
  msgid "Parent"
330
  msgstr "Rodzic"
331
 
332
+ #: core/options-pages.php:140 core/options-pages.php:242 core/options-pages.php:310
 
333
  msgid "All"
334
  msgstr "Wszystkie"
335
 
336
+ #: core/options-pages.php:141 core/options-pages.php:249 core/options-pages.php:317
 
337
  msgid "Search"
338
  msgstr "Szukaj"
339
 
340
+ #: core/options-pages.php:143
341
  msgid ""
342
+ "Taxonomy will be deleted permanently! Your media files will remain intacted, but all "
343
+ "the connections with this taxonomy and its terms will be lost."
344
  msgstr ""
345
+ "Taksonomia zostanie trwale usunięta. Pliki mediów pozostaną nietknięte, ale wszystkie "
346
+ "ich połączenia z tą taksonomią i warunki zostaną utracone."
347
 
348
+ #: core/options-pages.php:144
349
  msgid "There is already a taxonomy with the same name. Please chose other one."
350
  msgstr "Istnieje już taksonomia o takiej nazwie. Wybierz inną nazwę."
351
 
352
+ #: core/options-pages.php:145 core/options-pages.php:298
353
  msgid "New Taxonomy"
354
  msgstr "Nowa taksonomia"
355
 
356
+ #: core/options-pages.php:146
357
  msgid "Please choose Singular and Plural names for all your new taxomonies."
358
+ msgstr "Proszę wybrać nazwy w liczbie pojedynczej oraz mnogiej dla nowej taksonomii"
 
359
 
360
+ #: core/options-pages.php:147
361
  msgid "Please choose Singilar name for all your new taxomonies."
362
  msgstr "Proszę wybrać nazwę w liczbie pojedynczej dla nowej taksonomii"
363
 
364
+ #: core/options-pages.php:148
365
  msgid "Please choose Plural Name for all your new taxomonies."
366
  msgstr "Prosze wybrać nazwę w liczbie mnogiej dla nowej taksonomii"
367
 
368
+ #: core/options-pages.php:150
369
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
370
  msgstr ""
371
+ "Ostrzeżenie! Wszystkie niestandardowe typy MIME będą usunięte przez tę operację. "
 
372
 
373
+ #: core/options-pages.php:151
374
  msgid "Please fill into all fields."
375
  msgstr "Proszę wypełnić wszystkie pola"
376
 
377
+ #: core/options-pages.php:152
378
  msgid "Duplicate extensions or MIME types. Please chose other one."
379
  msgstr ""
380
+ "Duplikat rozszerzeń lub typów MIME. Proszę wybrać inny typ lub rozszerzenie pliku"
 
381
 
382
+ #: core/options-pages.php:180 core/options-pages.php:501 pro/core/options-pages.php:170
383
  msgid "You do not have sufficient permissions to access this page."
384
  msgstr "Nie masz wystarczających uprawnień dostępu do tej strony."
385
 
386
+ #: core/options-pages.php:204
387
  msgid "Media Taxonomies"
388
  msgstr "Taksonomie mediów"
389
 
390
+ #: core/options-pages.php:208 core/options-pages.php:360
391
  msgid "Assign following taxonomies to Media Library:"
392
  msgstr "Przypisz następujące taksonomie do biblioteki mediów:"
393
 
394
+ #: core/options-pages.php:226 core/options-pages.php:296 core/options-pages.php:376
 
395
  msgid "Assign Taxonomy"
396
  msgstr "Przypisz taksonomię"
397
 
398
+ #: core/options-pages.php:229 core/options-pages.php:383
399
  msgid "Edit Taxonomy"
400
  msgstr "Edytuj taksonomię"
401
 
402
+ #: core/options-pages.php:232 core/options-pages.php:300
403
  msgid "Delete Taxonomy"
404
  msgstr "Usuń taksonomię"
405
 
406
+ #: core/options-pages.php:237 core/options-pages.php:305
407
  msgid "Labels"
408
  msgstr "Etykiety"
409
 
410
+ #: core/options-pages.php:239 core/options-pages.php:307
411
  msgid "Singular"
412
  msgstr "Liczba pojedyncza"
413
 
414
+ #: core/options-pages.php:240 core/options-pages.php:308
415
  msgid "Plural"
416
  msgstr "Liczba mnoga"
417
 
418
+ #: core/options-pages.php:241 core/options-pages.php:309
419
  msgid "Menu Name"
420
  msgstr "Nazwa w menu"
421
 
422
+ #: core/options-pages.php:256 core/options-pages.php:324
423
+ msgid "Taxonomy Name"
424
+ msgstr ""
 
425
 
426
+ #: core/options-pages.php:257 core/options-pages.php:325
427
  msgid "Hierarchical"
428
  msgstr "Hierachicznie"
429
 
430
+ #: core/options-pages.php:258 core/options-pages.php:326
431
+ msgid "Column in List View"
432
+ msgstr ""
433
 
434
+ #: core/options-pages.php:259 core/options-pages.php:278 core/options-pages.php:327
435
+ #: core/options-pages.php:388
436
+ msgid "Filter in List View"
437
+ msgstr ""
438
 
439
+ #: core/options-pages.php:260 core/options-pages.php:279 core/options-pages.php:328
440
+ #: core/options-pages.php:389
441
+ msgid "Filter in Grid View / Media Popup"
442
+ msgstr ""
443
 
444
+ #: core/options-pages.php:261 core/options-pages.php:280 core/options-pages.php:329
445
+ #: core/options-pages.php:390
446
+ msgid "Edit in Media Popup"
447
+ msgstr ""
448
+
449
+ #: core/options-pages.php:262 core/options-pages.php:330
450
  msgid "Show in Nav Menu"
451
  msgstr "Pokaż w menu nawigacyjnym"
452
 
453
+ #: core/options-pages.php:263 core/options-pages.php:331
454
  msgid "Remember terms order (sort)"
455
  msgstr "Pamiętaj kolejność (sortowanie)"
456
 
457
+ #: core/options-pages.php:264 core/options-pages.php:332
458
+ msgid "Rewrite Slug"
459
+ msgstr ""
 
460
 
461
+ #: core/options-pages.php:265 core/options-pages.php:333
462
+ msgid "Slug with Front"
463
+ msgstr ""
464
+
465
+ #: core/options-pages.php:345
466
  msgid "Add New Taxonomy"
467
  msgstr "Dodaj nową taksonomię"
468
 
469
+ #: core/options-pages.php:356
470
  msgid "Non-Media Taxonomies"
471
  msgstr "Pozostałe taksonomie"
472
 
473
+ #: core/options-pages.php:415
474
+ msgid "Options"
475
+ msgstr ""
476
+
477
+ #: core/options-pages.php:425 core/options-pages.php:428
478
+ msgid "Taxonomy archive pages"
479
+ msgstr ""
480
+
481
+ #: core/options-pages.php:429
482
+ msgid "Turn on media taxonomy archive pages on the front-end"
483
+ msgstr ""
484
+
485
+ #: core/options-pages.php:430
486
+ msgid "Re-save your permalink settings after this option change to make it work."
487
+ msgstr ""
488
+
489
+ #: core/options-pages.php:436
490
+ msgid "Assign all like hierarchical"
491
+ msgstr ""
492
+
493
+ #: core/options-pages.php:439 core/options-pages.php:440
494
+ msgid "Show non-hierarchical taxonomies like hierarchical in Grid View / Media Popup"
495
+ msgstr ""
496
+
497
+ #: core/options-pages.php:446 core/options-pages.php:449
498
+ msgid "Force filters"
499
+ msgstr ""
500
+
501
+ #: core/options-pages.php:450
502
+ msgid "Show media filters for ANY Media Popup."
503
+ msgstr ""
504
+
505
+ #: core/options-pages.php:451
506
+ msgid ""
507
+ "May be useful for those who need forcing filters for third-party plugins or themes."
508
+ msgstr ""
509
+
510
+ #: core/options-pages.php:511
511
  msgid "Add New MIME Type"
512
  msgstr "Dodaj nowy typ MIME"
513
 
514
+ #: core/options-pages.php:529 core/options-pages.php:582
515
  msgid "Extension"
516
  msgstr "Rozszerzenie"
517
 
518
+ #: core/options-pages.php:530 core/options-pages.php:583
519
  msgid "MIME Type"
520
  msgstr "Typ MIME"
521
 
522
+ #: core/options-pages.php:531 core/options-pages.php:584
523
  msgid "Singular Label"
524
  msgstr "Etykieta dla liczby pojedynczej"
525
 
526
+ #: core/options-pages.php:532 core/options-pages.php:585
527
  msgid "Plural Label"
528
  msgstr "Etykieta dla liczby mnogiej"
529
 
530
+ #: core/options-pages.php:533 core/options-pages.php:561 core/options-pages.php:574
531
+ #: core/options-pages.php:586
532
  msgid "Add Filter"
533
  msgstr "Dodaj filtr"
534
 
535
+ #: core/options-pages.php:534 core/options-pages.php:562 core/options-pages.php:575
536
+ #: core/options-pages.php:587
537
  msgid "Allow Upload"
538
  msgstr "Zezwól na przesyłanie"
539
 
540
+ #: core/options-pages.php:576
541
  msgid "Delete MIME Type"
542
  msgstr "Usuń typ MIME"
543
 
544
+ #: core/options-pages.php:593
545
  msgid "Restore default MIME Types"
546
  msgstr "Przywróć domyślne typy MIME"
547
 
548
+ #: core/taxonomies.php:321 core/taxonomies.php:327 enhanced-media-library.php:378
549
+ msgid "Filter by "
550
+ msgstr ""
551
+
552
+ #: core/taxonomies.php:328 enhanced-media-library.php:379
553
+ msgid "All "
554
+ msgstr ""
555
+
556
+ #: core/taxonomies.php:329 enhanced-media-library.php:380
557
+ msgid "Not in "
558
+ msgstr ""
559
+
560
+ #: enhanced-media-library.php:47
561
+ msgid ""
562
+ "Please deactivate and <strong>remove</strong> the old version prior to the "
563
+ "<strong>Enhanced Media Library PRO</strong> activation. All your data will remain "
564
+ "intact."
565
+ msgstr ""
566
+
567
+ #: enhanced-media-library.php:47
568
+ msgid "Return to Plugins"
569
+ msgstr ""
570
+
571
+ #: pro/core/bulk-edit.php:75
572
+ msgid "Remove"
573
+ msgstr ""
574
+
575
+ #: pro/core/bulk-edit.php:79
576
+ msgid "Deselect"
577
+ msgstr ""
578
+
579
+ #: pro/core/bulk-edit.php:86
580
+ msgid "Caption this image&hellip;"
581
+ msgstr ""
582
+
583
+ #: pro/core/bulk-edit.php:90
584
+ msgid "Describe this video&hellip;"
585
+ msgstr ""
586
+
587
+ #: pro/core/bulk-edit.php:92
588
+ msgid "Describe this audio file&hellip;"
589
+ msgstr ""
590
+
591
+ #: pro/core/bulk-edit.php:94
592
+ msgid "Describe this media file&hellip;"
593
+ msgstr ""
594
+
595
+ #: pro/core/bulk-edit.php:103
596
+ msgid "Attachments Details"
597
+ msgstr ""
598
+
599
+ #: pro/core/bulk-edit.php:157
600
+ msgid "Select All"
601
+ msgstr ""
602
+
603
+ #: pro/core/bulk-edit.php:159
604
+ msgid "Edit Selection"
605
+ msgstr ""
606
+
607
+ #: pro/core/bulk-edit.php:162
608
+ msgid "Deselect All"
609
+ msgstr ""
610
+
611
+ #: pro/core/bulk-edit.php:166
612
+ msgid "Delete Selected"
613
+ msgstr ""
614
+
615
+ #: pro/core/options-pages.php:100 pro/core/options-pages.php:101
616
+ msgid "EML PRO Updates"
617
+ msgstr ""
618
+
619
+ #: pro/core/options-pages.php:126 pro/enhanced-media-library-pro.php:168
620
+ msgid "Bulk Edit"
621
+ msgstr ""
622
+
623
+ #: pro/core/options-pages.php:134 pro/core/options-pages.php:137
624
+ msgid "Turn off 'Save Changes' button"
625
+ msgstr ""
626
+
627
+ #: pro/core/options-pages.php:138
628
+ msgid "Save changes on the fly"
629
+ msgstr ""
630
+
631
+ #: pro/core/options-pages.php:139
632
+ msgid ""
633
+ "Any click on a taxonomy checkbox during media files bulk edition will lead to an "
634
+ "<strong style=\"color:red\">immediate saving</strong> of the data. Please, be "
635
+ "careful! You have much greater chance to <strong style=\"color:red\">accidentally "
636
+ "perform wrong re-assigning</strong> of a lot of your media files / taxonomies with "
637
+ "this option turned on."
638
+ msgstr ""
639
+
640
+ #: pro/core/options-pages.php:140
641
+ msgid ""
642
+ "Strongly NOT recommended option if you work with more than hundred of files at a time."
643
+ msgstr ""
644
+
645
+ #: pro/core/options-pages.php:175
646
+ msgid "Updates"
647
+ msgstr ""
648
+
649
+ #: pro/core/options-pages.php:190
650
+ msgid "Enhanced Media Library PRO License"
651
+ msgstr ""
652
+
653
+ #: pro/core/options-pages.php:215
654
+ msgid ""
655
+ "To unlock updates, please enter your license key below. You can see your license key "
656
+ "in <a href=\"http://www.wpuxsolutions.com/account/\">Your Account</a>. If you "
657
+ "don&#8217;t have a licence key, your are welcome to <a href=\"http://www."
658
+ "wpuxsolutions.com/pricing/\">purchase it</a>."
659
+ msgstr ""
660
+
661
+ #: pro/core/options-pages.php:219
662
+ msgid "License Key"
663
+ msgstr ""
664
+
665
+ #: pro/core/options-pages.php:226
666
+ msgid "Activate License"
667
+ msgstr ""
668
+
669
+ #: pro/core/options-pages.php:243
670
+ msgid "Your license is active!"
671
+ msgstr ""
672
+
673
+ #: pro/core/update.php:109 pro/core/update.php:114 pro/core/update.php:118
674
+ msgid ""
675
+ "An unexpected error occurred. Something may be wrong with WordPress.org or this "
676
+ "server&#8217;s configuration. If you continue to have problems, please try the <a "
677
+ "href=\"https://wordpress.org/support/\">support forums</a>."
678
+ msgstr ""
679
+
680
+ #: pro/core/update.php:109
681
+ msgid ""
682
+ "(WordPress could not establish a secure connection to WordPress.org. Please contact "
683
+ "your server administrator.)"
684
+ msgstr ""
685
+
686
+ #: pro/core/update.php:184
687
+ #, php-format
688
+ msgid ""
689
+ "To unlock updates, please enter your license key on the <a href=\"%s\">Updates</a> "
690
+ "page. You can see your license key in <a href=\"%s\">Your Account</a>. If you "
691
+ "don&#8217;t have a licence key, your are welcome to <a href=\"%s\">purchase it</a>."
692
+ msgstr ""
693
+
694
+ #: pro/enhanced-media-library-pro.php:89 pro/enhanced-media-library-pro.php:100
695
+ msgid "Expand Details"
696
+ msgstr ""
697
+
698
+ #: pro/enhanced-media-library-pro.php:90 pro/enhanced-media-library-pro.php:101
699
+ msgid "Collapse Details"
700
+ msgstr ""
701
+
702
+ #: pro/enhanced-media-library-pro.php:93
703
+ msgid "Validation Failed. One or more fields below are required."
704
+ msgstr ""
705
+
706
+ #: pro/enhanced-media-library-pro.php:99
707
+ msgid "The changes you made will be lost if you navigate away from this page"
708
+ msgstr ""
709
+
710
+ #: pro/enhanced-media-library-pro.php:160
711
+ msgid "ALL files belong to this item"
712
+ msgstr ""
713
+
714
+ #: pro/enhanced-media-library-pro.php:161
715
+ msgid "SOME files belong to this item"
716
+ msgstr ""
717
+
718
+ #: pro/enhanced-media-library-pro.php:162
719
+ msgid "NO files belong to this item"
720
+ msgstr ""
721
+
722
+ #: pro/enhanced-media-library-pro.php:163
723
+ msgid "Changes saved."
724
+ msgstr ""
725
+
726
+ #: pro/enhanced-media-library-pro.php:164
727
+ msgid "Something went wrong."
728
+ msgstr ""
729
+
730
+ #: pro/enhanced-media-library-pro.php:165
731
+ msgid "Save Changes"
732
+ msgstr ""
733
+
734
+ #: pro/enhanced-media-library-pro.php:167
735
+ msgid "Edit Media Files"
736
+ msgstr ""
737
+
738
+ #: pro/enhanced-media-library-pro.php:260
739
+ msgid ""
740
+ "<strong>Enhanced Media Library PRO</strong> does not require free version to be "
741
+ "active. Please deactivate and remove the free version of the plugin."
742
+ msgstr ""
743
+
744
  #. Plugin Name of the plugin/theme
745
  msgid "Enhanced Media Library"
746
  msgstr "Rozszerzona Biblioteka Mediów"
747
 
748
+ #. Plugin Name of the plugin/theme
749
+ msgid "Enhanced Media Library PRO"
750
+ msgstr "Rozszerzona Biblioteka Mediów PRO"
751
+
752
  #. Description of the plugin/theme
753
+ msgid "This plugin will be handy for those who need to manage a lot of media files."
 
754
  msgstr ""
755
  "Wtyczka ta będzie przydatna tym, którzy muszą zarządzać wieloma plikami "
756
  "multimedialnymi."
757
+
758
+ #~ msgid "Enhanced Media Library Options"
759
+ #~ msgstr "Rozszerzona Biblioteka Mediów - Opcje"
760
+
761
+ #~ msgid "Column in Media Library"
762
+ #~ msgstr "Kolumna w bibliotece mediów"
763
+
764
+ #~ msgid "Filter in Media Library"
765
+ #~ msgstr "Filtr w bibliotece mediów"
766
+
767
+ #~ msgid "Filter in Media Popup / Grid View"
768
+ #~ msgstr "Filtr w wyskakującym oknie mediów / widoku siatki"
769
+
770
+ #, fuzzy
771
+ #~ msgid "Slug"
772
+ #~ msgstr "Slug"
languages/eml.pot CHANGED
@@ -1,261 +1,584 @@
1
- # Copyright (C) 2014 Enhanced Media Library PRO
2
  # This file is distributed under the same license as the Enhanced Media Library PRO package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Enhanced Media Library PRO 2.0.2\n"
6
- "Report-Msgid-Bugs-To: http://wordpress.org/tag/enhanced-media-library\n"
7
- "POT-Creation-Date: 2014-11-19 21:29:51+00:00\n"
 
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
12
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
- "Language-Team: LANGUAGE <LL@li.org>\n"
 
 
 
 
 
14
 
15
- #: core/options-pages.php:54 core/options-pages.php:55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  msgid "Media Settings"
17
  msgstr ""
18
 
19
- #: core/options-pages.php:63 core/options-pages.php:64
20
- #: core/options-pages.php:158
 
 
 
 
 
 
21
  msgid "Taxonomies"
22
  msgstr ""
23
 
24
- #: core/options-pages.php:71 core/options-pages.php:72
25
- #: core/options-pages.php:431
26
  msgid "MIME Types"
27
  msgstr ""
28
 
29
- #: core/options-pages.php:106 core/options-pages.php:200
30
- #: core/options-pages.php:214 core/options-pages.php:280
31
- #: core/options-pages.php:355
32
  msgid "Edit"
33
  msgstr ""
34
 
35
- #: core/options-pages.php:107 pro/enhanced-media-library-pro.php:138
36
  msgid "Close"
37
  msgstr ""
38
 
39
- #: core/options-pages.php:108 core/options-pages.php:215
40
- #: core/options-pages.php:281
41
  msgid "View"
42
  msgstr ""
43
 
44
- #: core/options-pages.php:109 core/options-pages.php:216
45
- #: core/options-pages.php:282
46
  msgid "Update"
47
  msgstr ""
48
 
49
- #: core/options-pages.php:110 core/options-pages.php:217
50
- #: core/options-pages.php:283
51
  msgid "Add New"
52
  msgstr ""
53
 
54
- #: core/options-pages.php:111 core/options-pages.php:218
55
- #: core/options-pages.php:284
56
  msgid "New"
57
  msgstr ""
58
 
59
- #: core/options-pages.php:112
60
  msgid "Name"
61
  msgstr ""
62
 
63
- #: core/options-pages.php:113 core/options-pages.php:219
64
- #: core/options-pages.php:285
65
  msgid "Parent"
66
  msgstr ""
67
 
68
- #: core/options-pages.php:114 core/options-pages.php:213
69
- #: core/options-pages.php:279
70
  msgid "All"
71
  msgstr ""
72
 
73
- #: core/options-pages.php:115 core/options-pages.php:220
74
- #: core/options-pages.php:286
75
  msgid "Search"
76
  msgstr ""
77
 
78
- #: core/options-pages.php:117
79
  msgid ""
80
  "Taxonomy will be deleted permanently! Your media files will remain intacted, "
81
  "but all the connections with this taxonomy and its terms will be lost."
82
  msgstr ""
83
 
84
- #: core/options-pages.php:118
85
  msgid "There is already a taxonomy with the same name. Please chose other one."
86
  msgstr ""
87
 
88
- #: core/options-pages.php:119 core/options-pages.php:267
89
  msgid "New Taxonomy"
90
  msgstr ""
91
 
92
- #: core/options-pages.php:120
93
  msgid "Please choose Singular and Plural names for all your new taxomonies."
94
  msgstr ""
95
 
96
- #: core/options-pages.php:121
97
  msgid "Please choose Singilar name for all your new taxomonies."
98
  msgstr ""
99
 
100
- #: core/options-pages.php:122
101
  msgid "Please choose Plural Name for all your new taxomonies."
102
  msgstr ""
103
 
104
- #: core/options-pages.php:124
105
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
106
  msgstr ""
107
 
108
- #: core/options-pages.php:125
109
  msgid "Please fill into all fields."
110
  msgstr ""
111
 
112
- #: core/options-pages.php:126
113
  msgid "Duplicate extensions or MIME types. Please chose other one."
114
  msgstr ""
115
 
116
- #: core/options-pages.php:150 core/options-pages.php:422
117
- #: pro/core/options-pages.php:132 pro/core/options-pages.php:202
118
  msgid "You do not have sufficient permissions to access this page."
119
  msgstr ""
120
 
121
- #: core/options-pages.php:174
122
  msgid "Media Taxonomies"
123
  msgstr ""
124
 
125
- #: core/options-pages.php:178 core/options-pages.php:331
126
  msgid "Assign following taxonomies to Media Library:"
127
  msgstr ""
128
 
129
- #: core/options-pages.php:197 core/options-pages.php:265
130
- #: core/options-pages.php:348
131
  msgid "Assign Taxonomy"
132
  msgstr ""
133
 
134
- #: core/options-pages.php:200 core/options-pages.php:355
135
  msgid "Edit Taxonomy"
136
  msgstr ""
137
 
138
- #: core/options-pages.php:203 core/options-pages.php:269
139
  msgid "Delete Taxonomy"
140
  msgstr ""
141
 
142
- #: core/options-pages.php:208 core/options-pages.php:274
143
  msgid "Labels"
144
  msgstr ""
145
 
146
- #: core/options-pages.php:210 core/options-pages.php:276
147
  msgid "Singular"
148
  msgstr ""
149
 
150
- #: core/options-pages.php:211 core/options-pages.php:277
151
  msgid "Plural"
152
  msgstr ""
153
 
154
- #: core/options-pages.php:212 core/options-pages.php:278
155
  msgid "Menu Name"
156
  msgstr ""
157
 
158
- #: core/options-pages.php:225 core/options-pages.php:246
159
- #: core/options-pages.php:291 core/options-pages.php:358
160
- msgid "Settings"
161
- msgstr ""
162
-
163
- #: core/options-pages.php:227 core/options-pages.php:293
164
  msgid "Taxonomy Name"
165
  msgstr ""
166
 
167
- #: core/options-pages.php:228 core/options-pages.php:294
168
  msgid "Hierarchical"
169
  msgstr ""
170
 
171
- #: core/options-pages.php:229
172
  msgid "Column in List View"
173
  msgstr ""
174
 
175
- #: core/options-pages.php:230
 
176
  msgid "Filter in List View"
177
  msgstr ""
178
 
179
- #: core/options-pages.php:231
 
180
  msgid "Filter in Grid View / Media Popup"
181
  msgstr ""
182
 
183
- #: core/options-pages.php:232 core/options-pages.php:298
 
 
 
 
 
184
  msgid "Show in Nav Menu"
185
  msgstr ""
186
 
187
- #: core/options-pages.php:233 core/options-pages.php:299
188
  msgid "Remember terms order (sort)"
189
  msgstr ""
190
 
191
- #: core/options-pages.php:234 core/options-pages.php:300
192
  msgid "Rewrite Slug"
193
  msgstr ""
194
 
195
- #: core/options-pages.php:235 core/options-pages.php:301
196
  msgid "Slug with Front"
197
  msgstr ""
198
 
199
- #: core/options-pages.php:248 core/options-pages.php:296
200
- #: core/options-pages.php:360
201
- msgid "Filter in Media Library"
202
  msgstr ""
203
 
204
- #: core/options-pages.php:249 core/options-pages.php:297
205
- #: core/options-pages.php:361
206
- msgid "Filter in Media Popup / Grid View"
207
  msgstr ""
208
 
209
- #: core/options-pages.php:295
210
- msgid "Column in Media Library"
211
  msgstr ""
212
 
213
- #: core/options-pages.php:314
214
- msgid "Add New Taxonomy"
215
  msgstr ""
216
 
217
- #: core/options-pages.php:327
218
- msgid "Non-Media Taxonomies"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  msgstr ""
220
 
221
- #: core/options-pages.php:432
222
  msgid "Add New MIME Type"
223
  msgstr ""
224
 
225
- #: core/options-pages.php:450 core/options-pages.php:507
226
  msgid "Extension"
227
  msgstr ""
228
 
229
- #: core/options-pages.php:451 core/options-pages.php:508
230
  msgid "MIME Type"
231
  msgstr ""
232
 
233
- #: core/options-pages.php:452 core/options-pages.php:509
234
  msgid "Singular Label"
235
  msgstr ""
236
 
237
- #: core/options-pages.php:453 core/options-pages.php:510
238
  msgid "Plural Label"
239
  msgstr ""
240
 
241
- #: core/options-pages.php:454 core/options-pages.php:484
242
- #: core/options-pages.php:499 core/options-pages.php:511
243
  msgid "Add Filter"
244
  msgstr ""
245
 
246
- #: core/options-pages.php:455 core/options-pages.php:485
247
- #: core/options-pages.php:500 core/options-pages.php:512
248
  msgid "Allow Upload"
249
  msgstr ""
250
 
251
- #: core/options-pages.php:501
252
  msgid "Delete MIME Type"
253
  msgstr ""
254
 
255
- #: core/options-pages.php:518
256
  msgid "Restore default MIME Types"
257
  msgstr ""
258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  #: pro/core/bulk-edit.php:75
260
  msgid "Remove"
261
  msgstr ""
@@ -284,40 +607,39 @@ msgstr ""
284
  msgid "Attachments Details"
285
  msgstr ""
286
 
287
- #: pro/core/bulk-edit.php:155
288
  msgid "Select All"
289
  msgstr ""
290
 
291
- #: pro/core/bulk-edit.php:157
292
  msgid "Edit Selection"
293
  msgstr ""
294
 
295
- #: pro/core/bulk-edit.php:160
296
  msgid "Deselect All"
297
  msgstr ""
298
 
299
- #: pro/core/bulk-edit.php:164
300
  msgid "Delete Selected"
301
  msgstr ""
302
 
303
- #: pro/core/options-pages.php:101 pro/core/options-pages.php:102
304
- #: pro/core/options-pages.php:137 pro/enhanced-media-library-pro.php:140
305
- msgid "Bulk Edit"
306
  msgstr ""
307
 
308
- #: pro/core/options-pages.php:109 pro/core/options-pages.php:110
309
- msgid "EML Updates"
310
  msgstr ""
311
 
312
- #: pro/core/options-pages.php:154 pro/core/options-pages.php:157
313
  msgid "Turn off 'Save Changes' button"
314
  msgstr ""
315
 
316
- #: pro/core/options-pages.php:158
317
  msgid "Save changes on the fly"
318
  msgstr ""
319
 
320
- #: pro/core/options-pages.php:159
321
  msgid ""
322
  "Any click on a taxonomy checkbox during media files bulk edition will lead "
323
  "to an <strong style=\"color:red\">immediate saving</strong> of the data. "
@@ -326,37 +648,37 @@ msgid ""
326
  "files / taxonomies with this option turned on."
327
  msgstr ""
328
 
329
- #: pro/core/options-pages.php:160
330
  msgid ""
331
  "Strongly NOT recommended option if you work with more than hundred of files "
332
  "at a time."
333
  msgstr ""
334
 
335
- #: pro/core/options-pages.php:207
336
  msgid "Updates"
337
  msgstr ""
338
 
339
- #: pro/core/options-pages.php:222
340
  msgid "Enhanced Media Library PRO License"
341
  msgstr ""
342
 
343
- #: pro/core/options-pages.php:247
344
  msgid ""
345
  "To unlock updates, please enter your license key below. You can see your "
346
- "license key in <a href=\"http://wordpressuxsolutions.com/account/\">Your "
347
  "Account</a>. If you don&#8217;t have a licence key, your are welcome to <a "
348
- "href=\"http://wordpressuxsolutions.com/pricing/\">purchase it</a>."
349
  msgstr ""
350
 
351
- #: pro/core/options-pages.php:251
352
  msgid "License Key"
353
  msgstr ""
354
 
355
- #: pro/core/options-pages.php:258
356
  msgid "Activate License"
357
  msgstr ""
358
 
359
- #: pro/core/options-pages.php:275
360
  msgid "Your license is active!"
361
  msgstr ""
362
 
@@ -374,6 +696,7 @@ msgid ""
374
  msgstr ""
375
 
376
  #: pro/core/update.php:184
 
377
  msgid ""
378
  "To unlock updates, please enter your license key on the <a href=\"%s"
379
  "\">Updates</a> page. You can see your license key in <a href=\"%s\">Your "
@@ -381,32 +704,60 @@ msgid ""
381
  "href=\"%s\">purchase it</a>."
382
  msgstr ""
383
 
384
- #: pro/enhanced-media-library-pro.php:132
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  msgid "ALL files belong to this item"
386
  msgstr ""
387
 
388
- #: pro/enhanced-media-library-pro.php:133
389
  msgid "SOME files belong to this item"
390
  msgstr ""
391
 
392
- #: pro/enhanced-media-library-pro.php:134
393
  msgid "NO files belong to this item"
394
  msgstr ""
395
 
396
- #: pro/enhanced-media-library-pro.php:135
397
  msgid "Changes saved."
398
  msgstr ""
399
 
400
- #: pro/enhanced-media-library-pro.php:136
401
  msgid "Something went wrong."
402
  msgstr ""
403
 
404
- #: pro/enhanced-media-library-pro.php:137
405
  msgid "Save Changes"
406
  msgstr ""
407
 
408
- #: pro/enhanced-media-library-pro.php:139
409
- msgid "Edit Uploaded Files"
 
 
 
 
 
 
 
 
 
 
410
  msgstr ""
411
 
412
  #. Plugin Name of the plugin/theme
1
+ # Copyright (C) 2015 Enhanced Media Library PRO
2
  # This file is distributed under the same license as the Enhanced Media Library PRO package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Enhanced Media Library PRO\n"
6
+ "POT-Creation-Date: 2015-03-04 00:13+0200\n"
7
+ "Last-Translator: \n"
8
+ "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "X-Generator: Poedit 1.7.4\n"
13
+ "X-Poedit-Basepath: ..\n"
14
+ "X-Poedit-SourceCharset: UTF-8\n"
15
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
16
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
17
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
18
+ "X-Poedit-SearchPath-0: .\n"
19
+ "X-Poedit-SearchPathExcluded-0: *.js\n"
20
 
21
+ #: core/class-eml-media-list-table.php:39
22
+ #, php-format
23
+ msgctxt "uploaded files"
24
+ msgid "All (%s)"
25
+ msgid_plural "All (%s)"
26
+ msgstr[0] ""
27
+ msgstr[1] ""
28
+
29
+ #: core/class-eml-media-list-table.php:50
30
+ #, php-format
31
+ msgctxt "detached files"
32
+ msgid "Unattached (%s)"
33
+ msgid_plural "Unattached (%s)"
34
+ msgstr[0] ""
35
+ msgstr[1] ""
36
+
37
+ #: core/class-eml-media-list-table.php:52 enhanced-media-library.php:377
38
+ msgid "All Uncategorized"
39
+ msgstr ""
40
+
41
+ #: core/class-eml-media-list-table.php:55
42
+ #, php-format
43
+ msgctxt "uploaded files"
44
+ msgid "Trash (%s)"
45
+ msgid_plural "Trash (%s)"
46
+ msgstr[0] ""
47
+ msgstr[1] ""
48
+
49
+ #: core/class-eml-media-list-table.php:75
50
+ msgid "Filter"
51
+ msgstr ""
52
+
53
+ #: core/class-eml-media-list-table.php:77 enhanced-media-library.php:381
54
+ msgid "Reset All Filters"
55
+ msgstr ""
56
+
57
+ #: core/class-eml-media-list-table.php:81
58
+ msgid "Empty Trash"
59
+ msgstr ""
60
+
61
+ #: core/eml-upload.php:19
62
+ msgid "You do not have permission to upload files."
63
+ msgstr ""
64
+
65
+ #: core/eml-upload.php:39 core/eml-upload.php:212
66
+ msgid "Overview"
67
+ msgstr ""
68
+
69
+ #: core/eml-upload.php:41
70
+ msgid ""
71
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with "
72
+ "the most recent uploads listed first."
73
+ msgstr ""
74
+
75
+ #: core/eml-upload.php:42 core/eml-upload.php:216
76
+ msgid ""
77
+ "You can view your media in a simple visual grid or a list with columns. "
78
+ "Switch between these views using the icons to the left above the media."
79
+ msgstr ""
80
+
81
+ #: core/eml-upload.php:43
82
+ msgid ""
83
+ "To delete media items, click the Bulk Select button at the top of the "
84
+ "screen. Select any items you wish to delete, then click the Delete Selected "
85
+ "button. Clicking the Cancel Selection button takes you back to viewing your "
86
+ "media."
87
+ msgstr ""
88
+
89
+ #: core/eml-upload.php:48
90
+ msgid "Attachment Details"
91
+ msgstr ""
92
+
93
+ #: core/eml-upload.php:50
94
+ msgid ""
95
+ "Clicking an item will display an Attachment Details dialog, which allows you "
96
+ "to preview media and make quick edits. Any changes you make to the "
97
+ "attachment details will be automatically saved."
98
+ msgstr ""
99
+
100
+ #: core/eml-upload.php:51
101
+ msgid ""
102
+ "Use the arrow buttons at the top of the dialog, or the left and right arrow "
103
+ "keys on your keyboard, to navigate between media items quickly."
104
+ msgstr ""
105
+
106
+ #: core/eml-upload.php:52
107
+ msgid ""
108
+ "You can also delete individual items and access the extended edit screen "
109
+ "from the details dialog."
110
+ msgstr ""
111
+
112
+ #: core/eml-upload.php:56 core/eml-upload.php:232
113
+ msgid "For more information:"
114
+ msgstr ""
115
+
116
+ #: core/eml-upload.php:57 core/eml-upload.php:233
117
+ msgid ""
118
+ "<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank"
119
+ "\">Documentation on Media Library</a>"
120
+ msgstr ""
121
+
122
+ #: core/eml-upload.php:58 core/eml-upload.php:234
123
+ msgid ""
124
+ "<a href=\"https://wordpress.org/support/\" target=\"_blank\">Support Forums</"
125
+ "a>"
126
+ msgstr ""
127
+
128
+ #: core/eml-upload.php:61 core/eml-upload.php:203
129
+ msgid "Media Library"
130
+ msgstr ""
131
+
132
+ #: core/eml-upload.php:71 core/eml-upload.php:245
133
+ msgctxt "file"
134
+ msgid "Add New"
135
+ msgstr ""
136
+
137
+ #: core/eml-upload.php:76
138
+ msgid ""
139
+ "The grid view for the Media Library requires JavaScript. <a href=\"upload."
140
+ "php?mode=list\">Switch to the list view</a>."
141
+ msgstr ""
142
+
143
+ #: core/eml-upload.php:124
144
+ msgid "You are not allowed to edit this post."
145
+ msgstr ""
146
+
147
+ #: core/eml-upload.php:161
148
+ msgid "You are not allowed to move this post to the trash."
149
+ msgstr ""
150
+
151
+ #: core/eml-upload.php:164
152
+ msgid "Error in moving to trash."
153
+ msgstr ""
154
+
155
+ #: core/eml-upload.php:173
156
+ msgid "You are not allowed to move this post out of the trash."
157
+ msgstr ""
158
+
159
+ #: core/eml-upload.php:176
160
+ msgid "Error in restoring from trash."
161
+ msgstr ""
162
+
163
+ #: core/eml-upload.php:185
164
+ msgid "You are not allowed to delete this post."
165
+ msgstr ""
166
+
167
+ #: core/eml-upload.php:188
168
+ msgid "Error in deleting."
169
+ msgstr ""
170
+
171
+ #: core/eml-upload.php:208
172
+ msgctxt "items per page (screen options)"
173
+ msgid "Media items"
174
+ msgstr ""
175
+
176
+ #: core/eml-upload.php:214
177
+ msgid ""
178
+ "All the files you&#8217;ve uploaded are listed in the Media Library, with "
179
+ "the most recent uploads listed first. You can use the Screen Options tab to "
180
+ "customize the display of this screen."
181
+ msgstr ""
182
+
183
+ #: core/eml-upload.php:215
184
+ msgid ""
185
+ "You can narrow the list by file type/status using the text link filters at "
186
+ "the top of the screen. You also can refine the list by date using the "
187
+ "dropdown menu above the media table."
188
+ msgstr ""
189
+
190
+ #: core/eml-upload.php:220
191
+ msgid "Available Actions"
192
+ msgstr ""
193
+
194
+ #: core/eml-upload.php:222
195
+ msgid ""
196
+ "Hovering over a row reveals action links: Edit, Delete Permanently, and "
197
+ "View. Clicking Edit or on the media file&#8217;s name displays a simple "
198
+ "screen to edit that individual file&#8217;s metadata. Clicking Delete "
199
+ "Permanently will delete the file from the media library (as well as from any "
200
+ "posts to which it is currently attached). View will take you to the display "
201
+ "page for that file."
202
+ msgstr ""
203
+
204
+ #: core/eml-upload.php:226
205
+ msgid "Attaching Files"
206
+ msgstr ""
207
+
208
+ #: core/eml-upload.php:228
209
+ msgid ""
210
+ "If a media file has not been attached to any post, you will see that in the "
211
+ "Attached To column, and can click on Attach File to launch a small popup "
212
+ "that will allow you to search for a post and attach the file."
213
+ msgstr ""
214
+
215
+ #: core/eml-upload.php:248
216
+ #, php-format
217
+ msgid "Search results for &#8220;%s&#8221;"
218
+ msgstr ""
219
+
220
+ #: core/eml-upload.php:254 core/eml-upload.php:279
221
+ msgid "Media attachment updated."
222
+ msgstr ""
223
+
224
+ #: core/eml-upload.php:259
225
+ #, php-format
226
+ msgid "Reattached %d attachment."
227
+ msgid_plural "Reattached %d attachments."
228
+ msgstr[0] ""
229
+ msgstr[1] ""
230
+
231
+ #: core/eml-upload.php:264
232
+ #, php-format
233
+ msgid "Media attachment permanently deleted."
234
+ msgid_plural "%d media attachments permanently deleted."
235
+ msgstr[0] ""
236
+ msgstr[1] ""
237
+
238
+ #: core/eml-upload.php:269
239
+ #, php-format
240
+ msgid "Media attachment moved to the trash."
241
+ msgid_plural "%d media attachments moved to the trash."
242
+ msgstr[0] ""
243
+ msgstr[1] ""
244
+
245
+ #: core/eml-upload.php:270 core/eml-upload.php:282
246
+ msgid "Undo"
247
+ msgstr ""
248
+
249
+ #: core/eml-upload.php:275
250
+ #, php-format
251
+ msgid "Media attachment restored from the trash."
252
+ msgid_plural "%d media attachments restored from the trash."
253
+ msgstr[0] ""
254
+ msgstr[1] ""
255
+
256
+ #: core/eml-upload.php:280
257
+ msgid "Media permanently deleted."
258
+ msgstr ""
259
+
260
+ #: core/eml-upload.php:281
261
+ msgid "Error saving media attachment."
262
+ msgstr ""
263
+
264
+ #: core/eml-upload.php:282
265
+ msgid "Media moved to the trash."
266
+ msgstr ""
267
+
268
+ #: core/eml-upload.php:283
269
+ msgid "Media restored from the trash."
270
+ msgstr ""
271
+
272
+ #: core/mime-types.php:107
273
+ #, php-format
274
+ msgid " <span class=\"count\">(%s)</span>"
275
+ msgid_plural " <span class=\"count\">(%s)</span>"
276
+ msgstr[0] ""
277
+ msgstr[1] ""
278
+
279
+ #: core/options-pages.php:67 core/options-pages.php:68
280
+ #: core/options-pages.php:77
281
  msgid "Media Settings"
282
  msgstr ""
283
 
284
+ #: core/options-pages.php:78 core/options-pages.php:254
285
+ #: core/options-pages.php:276 core/options-pages.php:322
286
+ #: core/options-pages.php:386
287
+ msgid "Settings"
288
+ msgstr ""
289
+
290
+ #: core/options-pages.php:85 core/options-pages.php:86
291
+ #: core/options-pages.php:188
292
  msgid "Taxonomies"
293
  msgstr ""
294
 
295
+ #: core/options-pages.php:94 core/options-pages.php:95
296
+ #: core/options-pages.php:510
297
  msgid "MIME Types"
298
  msgstr ""
299
 
300
+ #: core/options-pages.php:132 core/options-pages.php:229
301
+ #: core/options-pages.php:243 core/options-pages.php:311
302
+ #: core/options-pages.php:383
303
  msgid "Edit"
304
  msgstr ""
305
 
306
+ #: core/options-pages.php:133 pro/enhanced-media-library-pro.php:166
307
  msgid "Close"
308
  msgstr ""
309
 
310
+ #: core/options-pages.php:134 core/options-pages.php:244
311
+ #: core/options-pages.php:312
312
  msgid "View"
313
  msgstr ""
314
 
315
+ #: core/options-pages.php:135 core/options-pages.php:245
316
+ #: core/options-pages.php:313
317
  msgid "Update"
318
  msgstr ""
319
 
320
+ #: core/options-pages.php:136 core/options-pages.php:246
321
+ #: core/options-pages.php:314
322
  msgid "Add New"
323
  msgstr ""
324
 
325
+ #: core/options-pages.php:137 core/options-pages.php:247
326
+ #: core/options-pages.php:315
327
  msgid "New"
328
  msgstr ""
329
 
330
+ #: core/options-pages.php:138
331
  msgid "Name"
332
  msgstr ""
333
 
334
+ #: core/options-pages.php:139 core/options-pages.php:248
335
+ #: core/options-pages.php:316
336
  msgid "Parent"
337
  msgstr ""
338
 
339
+ #: core/options-pages.php:140 core/options-pages.php:242
340
+ #: core/options-pages.php:310
341
  msgid "All"
342
  msgstr ""
343
 
344
+ #: core/options-pages.php:141 core/options-pages.php:249
345
+ #: core/options-pages.php:317
346
  msgid "Search"
347
  msgstr ""
348
 
349
+ #: core/options-pages.php:143
350
  msgid ""
351
  "Taxonomy will be deleted permanently! Your media files will remain intacted, "
352
  "but all the connections with this taxonomy and its terms will be lost."
353
  msgstr ""
354
 
355
+ #: core/options-pages.php:144
356
  msgid "There is already a taxonomy with the same name. Please chose other one."
357
  msgstr ""
358
 
359
+ #: core/options-pages.php:145 core/options-pages.php:298
360
  msgid "New Taxonomy"
361
  msgstr ""
362
 
363
+ #: core/options-pages.php:146
364
  msgid "Please choose Singular and Plural names for all your new taxomonies."
365
  msgstr ""
366
 
367
+ #: core/options-pages.php:147
368
  msgid "Please choose Singilar name for all your new taxomonies."
369
  msgstr ""
370
 
371
+ #: core/options-pages.php:148
372
  msgid "Please choose Plural Name for all your new taxomonies."
373
  msgstr ""
374
 
375
+ #: core/options-pages.php:150
376
  msgid "Warning! All your custom MIME Types will be deleted by this operation."
377
  msgstr ""
378
 
379
+ #: core/options-pages.php:151
380
  msgid "Please fill into all fields."
381
  msgstr ""
382
 
383
+ #: core/options-pages.php:152
384
  msgid "Duplicate extensions or MIME types. Please chose other one."
385
  msgstr ""
386
 
387
+ #: core/options-pages.php:180 core/options-pages.php:501
388
+ #: pro/core/options-pages.php:170
389
  msgid "You do not have sufficient permissions to access this page."
390
  msgstr ""
391
 
392
+ #: core/options-pages.php:204
393
  msgid "Media Taxonomies"
394
  msgstr ""
395
 
396
+ #: core/options-pages.php:208 core/options-pages.php:360
397
  msgid "Assign following taxonomies to Media Library:"
398
  msgstr ""
399
 
400
+ #: core/options-pages.php:226 core/options-pages.php:296
401
+ #: core/options-pages.php:376
402
  msgid "Assign Taxonomy"
403
  msgstr ""
404
 
405
+ #: core/options-pages.php:229 core/options-pages.php:383
406
  msgid "Edit Taxonomy"
407
  msgstr ""
408
 
409
+ #: core/options-pages.php:232 core/options-pages.php:300
410
  msgid "Delete Taxonomy"
411
  msgstr ""
412
 
413
+ #: core/options-pages.php:237 core/options-pages.php:305
414
  msgid "Labels"
415
  msgstr ""
416
 
417
+ #: core/options-pages.php:239 core/options-pages.php:307
418
  msgid "Singular"
419
  msgstr ""
420
 
421
+ #: core/options-pages.php:240 core/options-pages.php:308
422
  msgid "Plural"
423
  msgstr ""
424
 
425
+ #: core/options-pages.php:241 core/options-pages.php:309
426
  msgid "Menu Name"
427
  msgstr ""
428
 
429
+ #: core/options-pages.php:256 core/options-pages.php:324
 
 
 
 
 
430
  msgid "Taxonomy Name"
431
  msgstr ""
432
 
433
+ #: core/options-pages.php:257 core/options-pages.php:325
434
  msgid "Hierarchical"
435
  msgstr ""
436
 
437
+ #: core/options-pages.php:258 core/options-pages.php:326
438
  msgid "Column in List View"
439
  msgstr ""
440
 
441
+ #: core/options-pages.php:259 core/options-pages.php:278
442
+ #: core/options-pages.php:327 core/options-pages.php:388
443
  msgid "Filter in List View"
444
  msgstr ""
445
 
446
+ #: core/options-pages.php:260 core/options-pages.php:279
447
+ #: core/options-pages.php:328 core/options-pages.php:389
448
  msgid "Filter in Grid View / Media Popup"
449
  msgstr ""
450
 
451
+ #: core/options-pages.php:261 core/options-pages.php:280
452
+ #: core/options-pages.php:329 core/options-pages.php:390
453
+ msgid "Edit in Media Popup"
454
+ msgstr ""
455
+
456
+ #: core/options-pages.php:262 core/options-pages.php:330
457
  msgid "Show in Nav Menu"
458
  msgstr ""
459
 
460
+ #: core/options-pages.php:263 core/options-pages.php:331
461
  msgid "Remember terms order (sort)"
462
  msgstr ""
463
 
464
+ #: core/options-pages.php:264 core/options-pages.php:332
465
  msgid "Rewrite Slug"
466
  msgstr ""
467
 
468
+ #: core/options-pages.php:265 core/options-pages.php:333
469
  msgid "Slug with Front"
470
  msgstr ""
471
 
472
+ #: core/options-pages.php:345
473
+ msgid "Add New Taxonomy"
 
474
  msgstr ""
475
 
476
+ #: core/options-pages.php:356
477
+ msgid "Non-Media Taxonomies"
 
478
  msgstr ""
479
 
480
+ #: core/options-pages.php:415
481
+ msgid "Options"
482
  msgstr ""
483
 
484
+ #: core/options-pages.php:425 core/options-pages.php:428
485
+ msgid "Taxonomy archive pages"
486
  msgstr ""
487
 
488
+ #: core/options-pages.php:429
489
+ msgid "Turn on media taxonomy archive pages on the front-end"
490
+ msgstr ""
491
+
492
+ #: core/options-pages.php:430
493
+ msgid ""
494
+ "Re-save your permalink settings after this option change to make it work."
495
+ msgstr ""
496
+
497
+ #: core/options-pages.php:436
498
+ msgid "Assign all like hierarchical"
499
+ msgstr ""
500
+
501
+ #: core/options-pages.php:439 core/options-pages.php:440
502
+ msgid ""
503
+ "Show non-hierarchical taxonomies like hierarchical in Grid View / Media Popup"
504
+ msgstr ""
505
+
506
+ #: core/options-pages.php:446 core/options-pages.php:449
507
+ msgid "Force filters"
508
+ msgstr ""
509
+
510
+ #: core/options-pages.php:450
511
+ msgid "Show media filters for ANY Media Popup."
512
+ msgstr ""
513
+
514
+ #: core/options-pages.php:451
515
+ msgid ""
516
+ "May be useful for those who need forcing filters for third-party plugins or "
517
+ "themes."
518
  msgstr ""
519
 
520
+ #: core/options-pages.php:511
521
  msgid "Add New MIME Type"
522
  msgstr ""
523
 
524
+ #: core/options-pages.php:529 core/options-pages.php:582
525
  msgid "Extension"
526
  msgstr ""
527
 
528
+ #: core/options-pages.php:530 core/options-pages.php:583
529
  msgid "MIME Type"
530
  msgstr ""
531
 
532
+ #: core/options-pages.php:531 core/options-pages.php:584
533
  msgid "Singular Label"
534
  msgstr ""
535
 
536
+ #: core/options-pages.php:532 core/options-pages.php:585
537
  msgid "Plural Label"
538
  msgstr ""
539
 
540
+ #: core/options-pages.php:533 core/options-pages.php:561
541
+ #: core/options-pages.php:574 core/options-pages.php:586
542
  msgid "Add Filter"
543
  msgstr ""
544
 
545
+ #: core/options-pages.php:534 core/options-pages.php:562
546
+ #: core/options-pages.php:575 core/options-pages.php:587
547
  msgid "Allow Upload"
548
  msgstr ""
549
 
550
+ #: core/options-pages.php:576
551
  msgid "Delete MIME Type"
552
  msgstr ""
553
 
554
+ #: core/options-pages.php:593
555
  msgid "Restore default MIME Types"
556
  msgstr ""
557
 
558
+ #: core/taxonomies.php:321 core/taxonomies.php:327
559
+ #: enhanced-media-library.php:378
560
+ msgid "Filter by "
561
+ msgstr ""
562
+
563
+ #: core/taxonomies.php:328 enhanced-media-library.php:379
564
+ msgid "All "
565
+ msgstr ""
566
+
567
+ #: core/taxonomies.php:329 enhanced-media-library.php:380
568
+ msgid "Not in "
569
+ msgstr ""
570
+
571
+ #: enhanced-media-library.php:47
572
+ msgid ""
573
+ "Please deactivate and <strong>remove</strong> the old version prior to the "
574
+ "<strong>Enhanced Media Library PRO</strong> activation. All your data will "
575
+ "remain intact."
576
+ msgstr ""
577
+
578
+ #: enhanced-media-library.php:47
579
+ msgid "Return to Plugins"
580
+ msgstr ""
581
+
582
  #: pro/core/bulk-edit.php:75
583
  msgid "Remove"
584
  msgstr ""
607
  msgid "Attachments Details"
608
  msgstr ""
609
 
610
+ #: pro/core/bulk-edit.php:157
611
  msgid "Select All"
612
  msgstr ""
613
 
614
+ #: pro/core/bulk-edit.php:159
615
  msgid "Edit Selection"
616
  msgstr ""
617
 
618
+ #: pro/core/bulk-edit.php:162
619
  msgid "Deselect All"
620
  msgstr ""
621
 
622
+ #: pro/core/bulk-edit.php:166
623
  msgid "Delete Selected"
624
  msgstr ""
625
 
626
+ #: pro/core/options-pages.php:100 pro/core/options-pages.php:101
627
+ msgid "EML PRO Updates"
 
628
  msgstr ""
629
 
630
+ #: pro/core/options-pages.php:126 pro/enhanced-media-library-pro.php:168
631
+ msgid "Bulk Edit"
632
  msgstr ""
633
 
634
+ #: pro/core/options-pages.php:134 pro/core/options-pages.php:137
635
  msgid "Turn off 'Save Changes' button"
636
  msgstr ""
637
 
638
+ #: pro/core/options-pages.php:138
639
  msgid "Save changes on the fly"
640
  msgstr ""
641
 
642
+ #: pro/core/options-pages.php:139
643
  msgid ""
644
  "Any click on a taxonomy checkbox during media files bulk edition will lead "
645
  "to an <strong style=\"color:red\">immediate saving</strong> of the data. "
648
  "files / taxonomies with this option turned on."
649
  msgstr ""
650
 
651
+ #: pro/core/options-pages.php:140
652
  msgid ""
653
  "Strongly NOT recommended option if you work with more than hundred of files "
654
  "at a time."
655
  msgstr ""
656
 
657
+ #: pro/core/options-pages.php:175
658
  msgid "Updates"
659
  msgstr ""
660
 
661
+ #: pro/core/options-pages.php:190
662
  msgid "Enhanced Media Library PRO License"
663
  msgstr ""
664
 
665
+ #: pro/core/options-pages.php:215
666
  msgid ""
667
  "To unlock updates, please enter your license key below. You can see your "
668
+ "license key in <a href=\"http://www.wpuxsolutions.com/account/\">Your "
669
  "Account</a>. If you don&#8217;t have a licence key, your are welcome to <a "
670
+ "href=\"http://www.wpuxsolutions.com/pricing/\">purchase it</a>."
671
  msgstr ""
672
 
673
+ #: pro/core/options-pages.php:219
674
  msgid "License Key"
675
  msgstr ""
676
 
677
+ #: pro/core/options-pages.php:226
678
  msgid "Activate License"
679
  msgstr ""
680
 
681
+ #: pro/core/options-pages.php:243
682
  msgid "Your license is active!"
683
  msgstr ""
684
 
696
  msgstr ""
697
 
698
  #: pro/core/update.php:184
699
+ #, php-format
700
  msgid ""
701
  "To unlock updates, please enter your license key on the <a href=\"%s"
702
  "\">Updates</a> page. You can see your license key in <a href=\"%s\">Your "
704
  "href=\"%s\">purchase it</a>."
705
  msgstr ""
706
 
707
+ #: pro/enhanced-media-library-pro.php:89
708
+ #: pro/enhanced-media-library-pro.php:100
709
+ msgid "Expand Details"
710
+ msgstr ""
711
+
712
+ #: pro/enhanced-media-library-pro.php:90
713
+ #: pro/enhanced-media-library-pro.php:101
714
+ msgid "Collapse Details"
715
+ msgstr ""
716
+
717
+ #: pro/enhanced-media-library-pro.php:93
718
+ msgid "Validation Failed. One or more fields below are required."
719
+ msgstr ""
720
+
721
+ #: pro/enhanced-media-library-pro.php:99
722
+ msgid "The changes you made will be lost if you navigate away from this page"
723
+ msgstr ""
724
+
725
+ #: pro/enhanced-media-library-pro.php:160
726
  msgid "ALL files belong to this item"
727
  msgstr ""
728
 
729
+ #: pro/enhanced-media-library-pro.php:161
730
  msgid "SOME files belong to this item"
731
  msgstr ""
732
 
733
+ #: pro/enhanced-media-library-pro.php:162
734
  msgid "NO files belong to this item"
735
  msgstr ""
736
 
737
+ #: pro/enhanced-media-library-pro.php:163
738
  msgid "Changes saved."
739
  msgstr ""
740
 
741
+ #: pro/enhanced-media-library-pro.php:164
742
  msgid "Something went wrong."
743
  msgstr ""
744
 
745
+ #: pro/enhanced-media-library-pro.php:165
746
  msgid "Save Changes"
747
  msgstr ""
748
 
749
+ #: pro/enhanced-media-library-pro.php:167
750
+ msgid "Edit Media Files"
751
+ msgstr ""
752
+
753
+ #: pro/enhanced-media-library-pro.php:260
754
+ msgid ""
755
+ "<strong>Enhanced Media Library PRO</strong> does not require free version to "
756
+ "be active. Please deactivate and remove the free version of the plugin."
757
+ msgstr ""
758
+
759
+ #. Plugin Name of the plugin/theme
760
+ msgid "Enhanced Media Library"
761
  msgstr ""
762
 
763
  #. Plugin Name of the plugin/theme
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === Enhanced Media Library ===
2
  Contributors: webbistro
3
  Tags: media library, taxonomy, taxonomies, mime, mime type, attachment, media category, media categories, media tag, media tags, media taxonomy, media taxonomies, media filter, media organizer, file types, media types, media uploader, custom, media management, attachment management, files management, ux, user experience, wp-admin, admin, categories, category, filter, image, images, media, upload
4
- Requires at least: 3.5
5
- Tested up to: 4.1
6
- Stable tag: 2.0.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -40,7 +40,7 @@ This plugin will be handy for those who need to manage a lot of media files.
40
 
41
  > * The free version of Enhanced Media Library does NOT support bulk features.
42
  > * The PRO version requires at least WordPress 4.0
43
- > * [Learn more &raquo;](http://wordpressuxsolutions.com/plugins/enhanced-media-library/)
44
 
45
  = Bulk Attachment for Media Taxonomies (PRO only) =
46
 
@@ -51,13 +51,20 @@ This plugin will be handy for those who need to manage a lot of media files.
51
 
52
  = Bulk selection/deletion of media files (PRO only) =
53
 
54
- * select/deselect all media files (within a category) with a single click
55
- * delete all media files (within a category) right in media popup window
 
 
 
 
 
 
 
56
 
57
 
58
  = Useful Links =
59
 
60
- * [Where to start? (The complete beginners guide)](http://wordpressuxsolutions.com/documents/enhanced-media-library/eml-where-to-start/)
61
 
62
 
63
 
@@ -81,7 +88,9 @@ This plugin will be handy for those who need to manage a lot of media files.
81
 
82
  Try to just re-save permalinks settings. Go to Settings >> Permalinks and push "Save Changes" button.
83
 
84
- = Why Media Popup of some themes/plugins does not show taxonomy filters? =
 
 
85
 
86
  EML adds its filters to ANY media popup that already contains native WordPress filters. We chose NOT to force adding filters to ANY media popup because there are a lot of cases when filters are not acceptable and theme's/plugin's author did not add them intentionally.
87
 
@@ -118,7 +127,37 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
118
  == Changelog ==
119
 
120
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  = 2.0.3 =
 
122
 
123
  = Improvements (PRO only) =
124
  * Bulk Edit added to the List View of Media Library
@@ -135,13 +174,15 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
135
 
136
  &nbsp;
137
  = 2.0.2.3 (PRO only) =
 
138
 
139
  = Bugfixes =
140
- * Fixed the bug with ACF < 5.0 compatibility
141
 
142
 
143
  &nbsp;
144
  = 2.0.2.2 =
 
145
 
146
  = Bugfixes =
147
  * Minor JS bug of v2.0 fixed [Support Request](https://wordpress.org/support/topic/upload-hangs-2)
@@ -149,6 +190,7 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
149
 
150
  &nbsp;
151
  = 2.0.2.1 =
 
152
 
153
  = Bugfixes =
154
  * Minor JS bug of v2.0.2 fixed
@@ -156,6 +198,7 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
156
 
157
  &nbsp;
158
  = 2.0.2 =
 
159
 
160
  = Improvements =
161
  * Taxonomy Settings: you can now rewrite taxonomy slug and permalinks front base
@@ -166,6 +209,7 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
166
 
167
  &nbsp;
168
  = 2.0.1 =
 
169
 
170
  = Bugfixes =
171
  * Front-end: scripts conflict fixed, update if EML breaks your front-end features
@@ -174,15 +218,16 @@ Right now it is possible via WP_Query ([example of the code](http://wordpress.or
174
 
175
  &nbsp;
176
  = 2.0 =
 
177
 
178
  = New =
179
- * [PRO vesrion](http://wordpressuxsolutions.com/plugins/enhanced-media-library/) with long-awaited bulk edit feature is finally released!
180
 
181
  = Improvements =
182
  * Media Popup: Filters reset automatically as soon as new media files upload process started
183
  * Media Popup: Selection resets automatically as soon as filter is changed
184
  * Media Popup: WordPress 4.0 date filter added
185
- * Compatibility: general compatibility with other plugins improved, please [let me know](http://wordpressuxsolutions.com/support/create-new-ticket/) if you have any issue with EML and other plugins
186
 
187
  = Bugfixes =
188
  * Media Popup: No delay or glitches anymore when checking media taxonomy checkboxes [Support Request](https://wordpress.org/support/topic/any-way-to-bulk-edit-images/page/2#post-6051963)
1
  === Enhanced Media Library ===
2
  Contributors: webbistro
3
  Tags: media library, taxonomy, taxonomies, mime, mime type, attachment, media category, media categories, media tag, media tags, media taxonomy, media taxonomies, media filter, media organizer, file types, media types, media uploader, custom, media management, attachment management, files management, ux, user experience, wp-admin, admin, categories, category, filter, image, images, media, upload
4
+ Requires at least: 4.0
5
+ Tested up to: 4.1.1
6
+ Stable tag: 2.0.4
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
40
 
41
  > * The free version of Enhanced Media Library does NOT support bulk features.
42
  > * The PRO version requires at least WordPress 4.0
43
+ > * [Learn more &raquo;](http://wpuxsolutions.com/plugins/enhanced-media-library/)
44
 
45
  = Bulk Attachment for Media Taxonomies (PRO only) =
46
 
51
 
52
  = Bulk selection/deletion of media files (PRO only) =
53
 
54
+ * Select/deselect all media files (within a category) with a single click
55
+ * Delete all media files (within a category) right in media popup window
56
+
57
+ = Compatiblity with Other Plugins =
58
+
59
+ * Advanced Custom Fields / Advanced Custom Fields PRO
60
+ * WooCommerce
61
+
62
+ Please let us know if you find any issue with the plugins from the list above or others.
63
 
64
 
65
  = Useful Links =
66
 
67
+ * [Where to start? (The complete beginners guide)](http://wpuxsolutions.com/documents/enhanced-media-library/eml-where-to-start/)
68
 
69
 
70
 
88
 
89
  Try to just re-save permalinks settings. Go to Settings >> Permalinks and push "Save Changes" button.
90
 
91
+ = Why Media Popup of some theme/plugin does not show taxonomy filters? =
92
+
93
+ **UPD:** Since EML 2.0.4 there is an option 'Force filters' (see Media Settings > Taxonomies) that allows forcing media filters for ANY Media Popup regardless of what was intended by the author of a third-party plugin or theme.
94
 
95
  EML adds its filters to ANY media popup that already contains native WordPress filters. We chose NOT to force adding filters to ANY media popup because there are a lot of cases when filters are not acceptable and theme's/plugin's author did not add them intentionally.
96
 
127
  == Changelog ==
128
 
129
 
130
+ = 2.0.4 =
131
+ *Release Date - March 05, 2015*
132
+
133
+ = New =
134
+ * Filters by 'All Uncategorized', 'All Media Categories', 'Not in Media Category' added to both List and Grid views and to Media Popup
135
+ * New Media Taxonomy option: 'Edit in Media Popup' - Allows to show/hide taxonomy checkboxes in Media Popup per taxonomy
136
+ * New Media Taxonomy option: 'Taxonomy archive pages' - Turn on/off taxonomy archive pages on the front-end
137
+ * New Media Taxonomy option: 'Assign all like hierarchical' - Allows editing of non-hierarchical taxonomies like hierarchical (checkbox list) in Grid View / Media Popup
138
+ * New Media Taxonomy option: 'Force filters' - Shows media filters for ANY Media Popup. May be useful for those who need to force filters for third-party plugins or themes.
139
+
140
+ = Improvements =
141
+ * Admin Menu: All Media Settings including native 'Settings > Media' are now under common 'Media Settings' admin menu
142
+ * Bulk Edit options are now on 'Media Settings > Taxonomies' admin page
143
+ * CSS: Media taxonomies column extended for Media Popup, and few more minor CSS improvements
144
+ * Taxonomy Saving: Saving changes on the fly displays changes more correctly now (PRO only)
145
+ * Taxonomy Saving: Improved media taxonomies saving mechanism (better compatibility with other plugins, etc.)
146
+ * Numerous minor code and performance improvements
147
+
148
+ = Bugfixes =
149
+ * Taxonomy Saving: Fixed a big issue with incorrect bulk saving for media taxonomies (wrong clean-up for non-heirarchical taxonomies, PRO only)
150
+ * Taxonomy slug: Bug with the incorrect saving of a taxonomy slug fixed [Support Request](https://wordpress.org/support/topic/not-work-slug)
151
+ * Meta Slider plugin compatibility ensured [Support Request](https://wordpress.org/support/topic/filter-not-appearing-when-adding-slides-to-meta-slider)
152
+ * Localization: small localization bug fixed (PRO only)
153
+ * CSS: Admin notices layout fixed for the Grid View (PRO only)
154
+ * CSS: Incorrect checkbox styling for mobile devices fixed
155
+ * CSS: Few more minor CSS fixes
156
+
157
+
158
+ &nbsp;
159
  = 2.0.3 =
160
+ *Release Date - December 19, 2014*
161
 
162
  = Improvements (PRO only) =
163
  * Bulk Edit added to the List View of Media Library
174
 
175
  &nbsp;
176
  = 2.0.2.3 (PRO only) =
177
+ *Release Date - November 27, 2014*
178
 
179
  = Bugfixes =
180
+ * ACF: Fixed the bug with ACF < 5.0 compatibility
181
 
182
 
183
  &nbsp;
184
  = 2.0.2.2 =
185
+ *Release Date - November 23, 2014*
186
 
187
  = Bugfixes =
188
  * Minor JS bug of v2.0 fixed [Support Request](https://wordpress.org/support/topic/upload-hangs-2)
190
 
191
  &nbsp;
192
  = 2.0.2.1 =
193
+ *Release Date - November 20, 2014*
194
 
195
  = Bugfixes =
196
  * Minor JS bug of v2.0.2 fixed
198
 
199
  &nbsp;
200
  = 2.0.2 =
201
+ *Release Date - November 19, 2014*
202
 
203
  = Improvements =
204
  * Taxonomy Settings: you can now rewrite taxonomy slug and permalinks front base
209
 
210
  &nbsp;
211
  = 2.0.1 =
212
+ *Release Date - November 16, 2014*
213
 
214
  = Bugfixes =
215
  * Front-end: scripts conflict fixed, update if EML breaks your front-end features
218
 
219
  &nbsp;
220
  = 2.0 =
221
+ *Release Date - November 15, 2014*
222
 
223
  = New =
224
+ * [PRO vesrion](http://wpuxsolutions.com/plugins/enhanced-media-library/) with long-awaited bulk edit feature is finally released!
225
 
226
  = Improvements =
227
  * Media Popup: Filters reset automatically as soon as new media files upload process started
228
  * Media Popup: Selection resets automatically as soon as filter is changed
229
  * Media Popup: WordPress 4.0 date filter added
230
+ * Compatibility: general compatibility with other plugins improved, please [let me know](http://wpuxsolutions.com/support/create-new-ticket/) if you have any issue with EML and other plugins
231
 
232
  = Bugfixes =
233
  * Media Popup: No delay or glitches anymore when checking media taxonomy checkboxes [Support Request](https://wordpress.org/support/topic/any-way-to-bulk-edit-images/page/2#post-6051963)
wpml-config.xml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ <wpml-config>
2
+ <taxonomies>
3
+ <taxonomy translate="1">media_category</taxonomy>
4
+ </taxonomies>
5
+ </wpml-config>