Ticket #5911: 5911-6.diff
| File 5911-6.diff, 22.9 KB (added by , 18 years ago) |
|---|
-
wp-includes/js/swfupload/handlers.js
7 7 jQuery("#media-upload-error").empty(); 8 8 } 9 9 10 // progress and success handlers for m ultimedia multi uploads10 // progress and success handlers for media multi uploads 11 11 function fileQueued(fileObj) { 12 12 // Create a progress bar containing the filename 13 jQuery('#m ultimedia-items').append('<div id="multimedia-item-' + fileObj.id + '" class="multimedia-item"><span class="filename original">' + fileObj.name + '</span><div class="progress"><div class="bar"></div></div></div>');13 jQuery('#media-items').prepend('<div id="media-item-' + fileObj.id + '" class="media-item"><span class="filename original">' + fileObj.name + '</span><div class="progress"><div class="bar"></div></div></div>'); 14 14 15 15 // Disable the submit button 16 jQuery('#insert-m ultimedia').attr('disabled', 'disabled');16 jQuery('#insert-media').attr('disabled', 'disabled'); 17 17 } 18 18 19 19 function uploadStart(fileObj) { return true; } 20 20 21 21 function uploadProgress(fileObj, bytesDone, bytesTotal) { 22 22 // Lengthen the progress bar 23 jQuery('#m ultimedia-item-' + fileObj.id + ' .bar').width(620*bytesDone/bytesTotal);23 jQuery('#media-item-' + fileObj.id + ' .bar').width(620*bytesDone/bytesTotal); 24 24 } 25 25 26 function uploadSuccess(fileObj, serverData) { 27 // if async-upload returned an error message, place it in the multimedia item div and return 28 if ( serverData.match('media-upload-error') ) { 29 jQuery('#multimedia-item-' + fileObj.id).html(serverData); 30 return; 31 } 32 26 function prepareMediaItem(fileObj, serverData) { 33 27 // Move the progress bar to 100% 34 jQuery('#m ultimedia-item-' + fileObj.id + ' .bar').remove();28 jQuery('#media-item-' + fileObj.id + ' .bar').remove(); 35 29 36 30 // Append the HTML returned by the server -- thumbnail and form inputs 37 jQuery('#m ultimedia-item-' + fileObj.id).append(serverData);31 jQuery('#media-item-' + fileObj.id).append(serverData); 38 32 39 33 // Clone the thumbnail as a "pinkynail" -- a tiny image to the left of the filename 40 jQuery('#m ultimedia-item-' + fileObj.id + ' .thumbnail').clone().attr('className', 'pinkynail toggle').prependTo('#multimedia-item-' + fileObj.id);34 jQuery('#media-item-' + fileObj.id + ' .thumbnail').clone().attr('className', 'pinkynail toggle').prependTo('#media-item-' + fileObj.id); 41 35 42 36 // Replace the original filename with the new (unique) one assigned during upload 43 jQuery('#m ultimedia-item-' + fileObj.id + ' .filename.original').replaceWith(jQuery('#multimedia-item-' + fileObj.id + ' .filename.new'));37 jQuery('#media-item-' + fileObj.id + ' .filename.original').replaceWith(jQuery('#media-item-' + fileObj.id + ' .filename.new')); 44 38 45 39 // Bind toggle function to a new mask over the progress bar area 46 jQuery('#m ultimedia-item-' + fileObj.id + ' .progress').clone().empty().addClass('clickmask').bind('click', function(){jQuery(this).siblings('.slidetoggle').slideToggle(150);jQuery(this).siblings('.toggle').toggle();}).appendTo('#multimedia-item-' + fileObj.id);40 jQuery('#media-item-' + fileObj.id + ' .progress').clone().empty().addClass('clickmask').bind('click', function(){jQuery(this).siblings('.slidetoggle').slideToggle(150);jQuery(this).siblings('.toggle').toggle();}).appendTo('#media-item-' + fileObj.id); 47 41 48 42 // Also bind toggle to the links 49 jQuery('#m ultimedia-item-' + fileObj.id + ' a.toggle').bind('click', function(){jQuery(this).siblings('.slidetoggle').slideToggle(150);jQuery(this).parent().eq(0).children('.toggle').toggle();jQuery(this).siblings('a.toggle').focus();return false;});43 jQuery('#media-item-' + fileObj.id + ' a.toggle').bind('click', function(){jQuery(this).siblings('.slidetoggle').slideToggle(150);jQuery(this).parent().eq(0).children('.toggle').toggle();jQuery(this).siblings('a.toggle').focus();return false;}); 50 44 51 45 // Bind AJAX to the new Delete button 52 jQuery('#multimedia-item-' + fileObj.id + ' a.delete').bind('click',function(){jQuery.ajax({url:'admin-ajax.php',type:'post',data:{id:this.id.replace(/[^0-9]/g,''),action:'delete-post',_ajax_nonce:this.href.replace(/^.*wpnonce=/,'')}});jQuery(this).parents(".multimedia-item").eq(0).slideToggle(300, function(){jQuery(this).remove();if(jQuery('.multimedia-item').length==0)jQuery('.insert-gallery').hide();});return false;}); 46 jQuery('#media-item-' + fileObj.id + ' a.delete').bind('click',function(){ 47 // Tell the server to delete it. TODO: handle exceptions 48 jQuery.ajax({url:'admin-ajax.php',type:'post',data:{ 49 id : this.id.replace(/[^0-9]/g,''), 50 action : 'delete-post', 51 _ajax_nonce : this.href.replace(/^.*wpnonce=/,'')} 52 }); 53 // Decrement the counter. 54 jQuery('#attachments-count').text(jQuery('#attachments-count').text()-1); 55 // Vanish it. 56 jQuery(this).parents(".media-item").eq(0).slideToggle(300,function(){jQuery(this).remove();if(jQuery('.media-item').length==0)jQuery('.insert-gallery').hide();updateMediaForm();}); 57 return false; 58 }); 53 59 54 // Open this item if it says to start open 55 jQuery('#m ultimedia-item-' + fileObj.id + '.startopen')60 // Open this item if it says to start open (e.g. to display an error) 61 jQuery('#media-item-' + fileObj.id + '.startopen') 56 62 .removeClass('startopen') 57 63 .slideToggle(500) 58 64 .parent().eq(0).children('.toggle').toggle(); 65 } 59 66 60 jQuery('.insert-gallery').show(); 67 function updateMediaForm() { 68 // Just one file, no need for collapsible part 69 if ( jQuery('#computer-form #media-items>*').length == 1 ) { 70 jQuery('#media-items .slidetoggle').slideDown(500).parent().eq(0).children('.toggle').toggle(); 71 jQuery('#computer-form .slidetoggle').siblings().addClass('hidden'); 72 } else { 73 jQuery('#computer-form .slidetoggle').siblings().removeClass('hidden'); 74 } 75 76 // Only show Gallery button when there are at least two files. 77 if ( jQuery('#media-items>*').length > 1 ) 78 jQuery('.insert-gallery').show(); 79 else 80 jQuery('.insert-gallery').hide(); 61 81 } 62 82 83 function uploadSuccess(fileObj, serverData) { 84 // if async-upload returned an error message, place it in the media item div and return 85 if ( serverData.match('media-upload-error') ) { 86 jQuery('#media-item-' + fileObj.id).html(serverData); 87 return; 88 } 89 prepareMediaItem(fileObj, serverData); 90 updateMediaForm(); 91 jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1); 92 } 93 63 94 function uploadComplete(fileObj) { 64 95 // If no more uploads queued, enable the submit button 65 96 if ( swfu.getStats().files_queued == 0 ) 66 jQuery('#insert-m ultimedia').attr('disabled', '');97 jQuery('#insert-media').attr('disabled', ''); 67 98 } 68 99 69 100 -
wp-includes/media.php
85 85 list( $img_src, $width, $height ) = image_downsize($id, $size); 86 86 $hwstring = image_hwstring($width, $height); 87 87 88 $html = '<img src="'.attribute_escape($img_src).'" alt="'.attribute_escape($alt).'" title="'.attribute_escape($title).'" '.$hwstring.'class="align -'.attribute_escape($align).' size-'.attribute_escape($size).' attachment wp-att-'.attribute_escape($id).'" />';88 $html = '<img src="'.attribute_escape($img_src).'" alt="'.attribute_escape($alt).'" title="'.attribute_escape($title).'" '.$hwstring.'class="align'.attribute_escape($align).' size-'.attribute_escape($size).' attachment wp-att-'.attribute_escape($id).'" />'; 89 89 90 90 $html = apply_filters( 'image_send_to_editor', $html, $id, $alt, $title, $align, $url ); 91 91 -
wp-includes/script-loader.php
94 94 $this->add( 'swfupload', '/wp-includes/js/swfupload/swfupload.js', false, '2.0.2'); 95 95 $this->add( 'swfupload-degrade', '/wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js', array('swfupload'), '2.0.2'); 96 96 $this->add( 'swfupload-queue', '/wp-includes/js/swfupload/plugins/swfupload.queue.js', array('swfupload'), '2.0.2'); 97 $this->add( 'swfupload-handlers', '/wp-includes/js/swfupload/handlers.js', array('swfupload'), '2.0.2-2008022 0');97 $this->add( 'swfupload-handlers', '/wp-includes/js/swfupload/handlers.js', array('swfupload'), '2.0.2-20080225'); 98 98 // these error messages came from the sample swfupload js, they might need changing. 99 99 $this->localize( 'swfupload-handlers', 'swfuploadL10n', array( 100 100 'queue_limit_exceeded' => 'You have attempted to queue too many files.', -
wp-admin/includes/media.php
1 1 <?php 2 2 3 function image_upload_tabs() {3 function media_upload_tabs() { 4 4 $_default_tabs = array( 5 'image_upload_handler' => __('From Computer'), // handler function name => tab text 5 'computer' => __('From Computer'), // handler action suffix => tab text 6 'attachments' => __('Attachments'), 7 'library' => __('Media Library'), 6 8 ); 7 9 8 return apply_filters(' image_upload_tabs', $_default_tabs);10 return apply_filters('media_upload_tabs', $_default_tabs); 9 11 } 10 12 11 function the_image_upload_tabs() { 12 $tabs = image_upload_tabs(); 13 function update_attachments_tab($tabs) { 14 global $wpdb; 15 if ( !isset($_REQUEST['post_id']) ) { 16 unset($tabs['attachments']); 17 return $tabs; 18 } 19 if ( intval($_REQUEST['post_id']) ) 20 $attachments = $wpdb->get_var($wpdb->prepare("SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_parent = %d", $_REQUEST['post_id'])); 13 21 22 $tabs['attachments'] = sprintf(__('Attachments (%s)'), "<span id='attachments-count'>$attachments</span>"); 23 24 return $tabs; 25 } 26 add_filter('media_upload_tabs', 'update_attachments_tab'); 27 28 function the_media_upload_tabs() { 29 $tabs = media_upload_tabs(); 30 14 31 if ( !empty($tabs) ) { 15 32 echo "<ul id='media-upload-tabs'>\n"; 16 33 if ( isset($_GET['tab']) && array_key_exists($_GET['tab'], $tabs) ) … … 20 37 foreach ( $tabs as $callback => $text ) { 21 38 if ( ++$i == count($tabs) ) 22 39 $class = ' class="last"'; 23 if ( $callback == $current )24 $disabled = ' disabled="disabled"';25 else26 $disabled = '';27 40 $href = add_query_arg('tab', $callback); 28 41 if ( $callback == $current ) 29 42 $link = $text; 30 43 else 31 44 $link = "<a href='$href'>$text</a>"; 32 echo "\t<li $class>$link</li>\n";45 echo "\t<li id='tab-$callback'$class>$link</li>\n"; 33 46 } 34 47 echo "</ul>\n"; 35 48 } … … 143 156 function media_buttons() { 144 157 global $post_ID, $temp_ID; 145 158 $uploading_iframe_ID = (int) (0 == $post_ID ? $temp_ID : $post_ID); 146 $m ultimedia_upload_iframe_src = "media-upload.php?type=multimedia&post_id=$uploading_iframe_ID";147 $m ultimedia_upload_iframe_src = apply_filters('multimedia_upload_iframe_src', $multimedia_upload_iframe_src);148 echo "<a href='$m ultimedia_upload_iframe_src&TB_iframe=true&height=500&width=640' class='button-secondary thickbox'>" . __('Add media'). '</a>';159 $media_upload_iframe_src = "media-upload.php?type=media&post_id=$uploading_iframe_ID"; 160 $media_upload_iframe_src = apply_filters('media_upload_iframe_src', $media_upload_iframe_src); 161 echo "<a href='$media_upload_iframe_src&TB_iframe=true&height=500&width=640' class='button-secondary thickbox'>" . __('Add media'). '</a>'; 149 162 } 150 163 add_action( 'media_buttons', 'media_buttons' ); 151 164 … … 169 182 wp_admin_css('css/media'); 170 183 } 171 184 172 add_action('media_upload_multimedia', 'multimedia_upload_handler'); 173 add_action('admin_head_image_upload_form', 'media_admin_css'); 185 add_action('media_upload_media', 'media_upload_handler'); 174 186 175 function multimedia_upload_handler() { 176 if ( !current_user_can('upload_files') ) { 177 return new wp_error( 'upload_not_allowed', __('You are not allowed to upload files.') ); 178 } 187 function media_upload_form_handler() { 188 check_admin_referer('media-form'); 179 189 180 // no button click, we're just displaying the form 181 if ( empty($_POST) ) 182 return wp_iframe( 'multimedia_upload_form' ); 183 184 check_admin_referer('multimedia-form'); 185 186 // Insert multimedia button was clicked 190 // Insert media button was clicked 187 191 if ( !empty($_FILES) ) { 188 192 // Upload File button was clicked 189 193 … … 217 221 wp_set_object_terms($attachment_id, array_map('trim', preg_split('/,+/', $attachment[$t])), $t, false); 218 222 } 219 223 220 if ( isset($_POST['insert-m ultimedia']) )224 if ( isset($_POST['insert-media']) ) 221 225 return media_send_to_editor('[gallery]'); 222 226 223 227 if ( isset($_POST['send']) ) { … … 227 231 return media_send_to_editor($html); 228 232 } 229 233 230 wp_iframe( 'multimedia_upload_form', $errors );234 return $errors; 231 235 } 232 236 233 function get_multimedia_items( $post_id, $errors ) { 234 $attachments = get_children("post_parent=$post_id&post_type=attachment&orderby=\"menu_order ASC, ID ASC\""); 237 function media_upload_computer() { 238 if ( !empty($_POST) ) { 239 $return = media_upload_form_handler(); 240 241 if ( is_string($return) ) 242 return $return; 243 if ( is_array($return) ) 244 $errors = $return; 245 } 235 246 247 return wp_iframe( 'media_upload_computer_form', $errors ); 248 } 249 250 function media_upload_attachments() { 251 if ( !empty($_POST) ) { 252 $return = media_upload_form_handler(); 253 254 if ( is_string($return) ) 255 return $return; 256 if ( is_array($return) ) 257 $errors = $return; 258 } 259 260 return wp_iframe( 'media_upload_attachments_form', $errors ); 261 } 262 263 function media_upload_library() { 264 if ( empty($_POST) ) 265 wp_iframe( 'media_upload_library_form', $errors ); 266 } 267 268 function get_media_items( $post_id, $errors ) { 269 if ( $post_id ) 270 $attachments = get_children("post_parent=$post_id&post_type=attachment&orderby=menu_order ASC, ID&order=DESC"); 271 else 272 $attachments = get_paged_attachments(); 273 236 274 if ( empty($attachments) ) 237 275 return ''; 238 276 239 277 foreach ( $attachments as $id => $attachment ) 240 if ( $item = get_m ultimedia_item($id, isset($errors[$id]) ? $errors[$id] : null) )241 $output .= "\n<div id='m ultimedia-item-$id' class='multimedia-item preloaded'><div id='media-upload-error-$id'></div><span class='filename'></span><div class='progress'><div class='bar'></div></div>$item<div class='progress clickmask'></div>\n</div>";278 if ( $item = get_media_item($id, isset($errors[$id]) ? $errors[$id] : null) ) 279 $output .= "\n<div id='media-item-$id' class='media-item preloaded'><div id='media-upload-error-$id'></div><span class='filename'></span><div class='progress'><div class='bar'></div></div>$item<div class='progress clickmask'></div>\n</div>"; 242 280 243 281 return $output; 244 282 } … … 415 453 return $form_fields; 416 454 } 417 455 418 function get_m ultimedia_item( $attachment_id, $errors = null, $send = true ) {456 function get_media_item( $attachment_id, $errors = null, $send = true ) { 419 457 if ( ( $attachment_id = intval($attachment_id) ) && $thumb_url = get_attachment_icon_src( $attachment_id ) ) 420 $thumb_url = $thumb_url[ 1];458 $thumb_url = $thumb_url[0]; 421 459 else 422 460 return false; 423 461 … … 453 491 </tr> 454 492 <tr><td>$post->post_mime_type</td></tr> 455 493 <tr><td>" . mysql2date($post->post_date, get_option('time_format')) . "</td></tr> 456 <tr><td>" . apply_filters('m ultimedia_meta', '', $post) . "</tr></td>\n";494 <tr><td>" . apply_filters('media_meta', '', $post) . "</tr></td>\n"; 457 495 458 496 $defaults = array( 459 497 'input' => 'text', … … 536 574 return $item; 537 575 } 538 576 539 function multimedia_upload_form( $errors = null ) { 540 $flash_action_url = get_option('siteurl') . '/wp-admin/async-upload.php?type=multimedia'; 541 $form_action_url = get_option('siteurl') . '/wp-admin/media-upload.php?type=multimedia'; 577 function media_upload_header() { 578 ?> 579 <div id="media-upload-header"> 580 <h3><?php _e('Add Media'); ?></h3> 581 <?php the_media_upload_tabs(); ?> 582 </div> 583 <?php 584 } 542 585 586 function media_upload_form( $errors = null ) { 587 $flash_action_url = get_option('siteurl') . '/wp-admin/async-upload.php?type=media'; 588 543 589 $post_id = intval($_REQUEST['post_id']); 544 590 545 591 ?> 546 <div id="media-upload-header">547 <h3><?php _e('Add Media'); ?></h3>548 <?php the_image_upload_tabs(); ?>549 </div>550 551 592 <div id="media-upload-error"> 552 593 <?php if (isset($errors['upload_error']) && is_wp_error($errors['upload_error'])) { ?> 553 594 <?php echo $errors['upload_error']->get_error_message(); ?> … … 564 605 post_params : { 565 606 "post_id" : "<?php echo $post_id; ?>", 566 607 "auth_cookie" : "<?php echo $_COOKIE[AUTH_COOKIE]; ?>", 567 "type" : "m ultimedia"608 "type" : "media" 568 609 }, 569 610 swfupload_element_id : "flash-upload-ui", // id of the element displayed when swfupload is available 570 611 degraded_element_id : "html-upload-ui", // when swfupload is unavailable … … 582 623 debug: false, 583 624 }); 584 625 $("#flash-browse-button").bind( "click", function(){swfu.selectFiles();}); 585 var preloaded = $(".multimedia-item.preloaded");586 if ( preloaded.length > 0 ) {587 jQuery('#insert-multimedia').attr('disabled', '');588 preloaded.each(function(){uploadSuccess({id:this.id.replace(/[^0-9]/g, '')},'');});589 }590 626 }); 591 627 //--> 592 628 </script> 593 629 594 <form enctype="multipart/form-data" method="post" action="<?php echo attribute_escape($form_action_url); ?>" class="media-upload-form">595 630 596 631 <div id="flash-upload-ui"> 597 632 <p><input id="flash-browse-button" type="button" value="<?php _e('Choose files to upload'); ?>" class="button" /></p> 598 <p><?php _e('A s each upload completes, you can add titles and descriptions below.'); ?></p>633 <p><?php _e('After a file has been uploaded, you can add titles and descriptions below.'); ?></p> 599 634 </div> 600 635 601 636 <div id="html-upload-ui"> … … 610 645 <input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id; ?>" /> 611 646 <br style="clear:both" /> 612 647 </div> 648 <?php 649 } 613 650 614 <div id="multimedia-items"> 651 function media_upload_computer_form( $errors = null ) { 652 media_upload_header(); 615 653 616 <?php echo get_multimedia_items($post_id, $errors); ?> 654 $post_id = intval($_REQUEST['post_id']); 617 655 618 </div> 656 $form_action_url = get_option('siteurl') . "/wp-admin/media-upload.php?type=media&tab=computer&post_id=$post_id"; 619 657 658 ?> 659 660 <form enctype="multipart/form-data" method="post" action="<?php echo attribute_escape($form_action_url); ?>" class="media-upload-form" id="computer-form"> 661 <?php wp_nonce_field('media-form'); ?> 662 <?php media_upload_form( $errors ); ?> 663 664 <div id="media-items"></div> 620 665 <p class="submit"> 621 <input type="submit" class="submit insert-gallery" name="insert-m ultimedia" value="<?php _e('Insert gallery into post'); ?>" />666 <input type="submit" class="submit insert-gallery" name="insert-media" value="<?php _e('Insert gallery into post'); ?>" /> 622 667 </p> 668 </form> 623 669 624 <?php wp_nonce_field('multimedia-form'); ?> 670 <?php 671 } 625 672 673 function media_upload_attachments_form($errors) { 674 media_upload_header(); 675 676 $post_id = intval($_REQUEST['post_id']); 677 678 $form_action_url = get_option('siteurl') . "/wp-admin/media-upload.php?type=media&tab=attachments&post_id=$post_id"; 679 680 ?> 681 682 <script type="text/javascript"> 683 <!-- 684 jQuery(function($){ 685 var preloaded = $(".media-item.preloaded"); 686 if ( preloaded.length > 0 ) { 687 preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');}); 688 updateMediaForm(); 689 } 690 }); 691 --> 692 </script> 693 694 <form enctype="multipart/form-data" method="post" action="<?php echo attribute_escape($form_action_url); ?>" class="media-upload-form" id="attachments-form"> 695 <?php wp_nonce_field('media-form'); ?> 696 <?php //media_upload_form( $errors ); ?> 697 698 <div id="media-items"> 699 <?php echo get_media_items($post_id, $errors); ?> 700 </div> 701 <p class="submit"> 702 <input type="submit" class="submit insert-gallery" name="insert-media" value="<?php _e('Insert gallery into post'); ?>" /> 703 </p> 704 <input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id; ?>" /> 626 705 </form> 627 628 706 <?php 629 707 } 630 708 631 add_action('admin_head_multimedia_upload_form', 'media_admin_css'); 632 add_filter('async_upload_multimedia', 'get_multimedia_item', 10, 2);633 add_filter('media_upload_multimedia', 'multimedia_upload_handler'); 709 function media_upload_library_form($errors) { 710 media_upload_header(); 711 } 634 712 713 add_filter('async_upload_media', 'get_media_item', 10, 2); 635 714 715 add_filter('media_upload_computer', 'media_upload_computer'); 716 add_action('admin_head_media_upload_computer_form', 'media_admin_css'); 717 718 add_filter('media_upload_attachments', 'media_upload_attachments'); 719 add_action('admin_head_media_upload_attachments_form', 'media_admin_css'); 720 721 add_filter('media_upload_library', 'media_upload_library'); 722 add_action('admin_head_media_upload_library_form', 'media_admin_css'); 723 724 636 725 // Any 'attachment' taxonomy will be included in the description input form for the multi uploader 637 726 // Example: 638 727 /* -
wp-admin/media-upload.php
19 19 wp_die(__("You are not allowed to be here")); 20 20 21 21 // upload type: image, video, file, ..? 22 $type = @strval($_GET['type']); 22 if ( isset($_GET['tab']) ) 23 $tab = strval($_GET['tab']); 24 else 25 $tab = apply_filters('media_upload_default_tab', 'computer'); 23 26 24 27 // let the action code decide how to handle the request 25 do_action("media_upload_ {$type}");28 do_action("media_upload_$tab"); 26 29 27 30 ?> -
wp-admin/css/media.css
84 84 } 85 85 86 86 /* specific to the image upload form */ 87 . media-upload-form fieldset#image-align label, .align .field label {87 .align .field label { 88 88 display: inline; 89 89 padding: 0 0 0 28px; 90 90 margin: 0 0; 91 91 } 92 . media-upload-form fieldset#image-align input, .align .field input {92 .align .field input { 93 93 margin-left: 15px; 94 94 } 95 95 96 #image-align-none-label,.image-align-none-label {96 .image-align-none-label { 97 97 background: url(../images/align-none.png) no-repeat center left; 98 98 } 99 99 100 #image-align-left-label,.image-align-left-label {100 .image-align-left-label { 101 101 background: url(../images/align-left.png) no-repeat center left; 102 102 } 103 103 104 #image-align-center-label,.image-align-center-label {104 .image-align-center-label { 105 105 background: url(../images/align-center.png) no-repeat center left; 106 106 } 107 107 108 #image-align-right-label,.image-align-right-label {108 .image-align-right-label { 109 109 background: url(../images/align-right.png) no-repeat center left; 110 110 } 111 111 … … 125 125 max-height: 40px; 126 126 } 127 127 128 #m ultimedia-items {128 #media-items { 129 129 border: 1px solid #c0c0c0; 130 130 border-bottom: none; 131 131 width: 623px; 132 132 } 133 .m ultimedia-item {133 .media-item { 134 134 border-bottom: 1px solid #d0d0d0; 135 135 width: 623px; 136 136 position: relative; … … 152 152 background-color: #e8e8e8; 153 153 border-right: 3px solid #99d; 154 154 } 155 .m ultimedia-item .thumbnail {155 .media-item .thumbnail { 156 156 max-width: 128px; 157 157 max-height: 128px; 158 158 } 159 .m ultimedia-item .pinkynail {159 .media-item .pinkynail { 160 160 position: absolute; 161 161 top: 2px; 162 162 left: 2px; … … 200 200 color: #246; 201 201 } 202 202 .describe-toggle-on, .describe-toggle-off { 203 display: block; 203 204 line-height: 36px; 204 205 z-index: 2; 205 206 position: absolute; … … 224 225 tr.align td.field { 225 226 text-align: center; 226 227 } 228 229 .hidden { 230 height: 0px; 231 width: 0px; 232 overflow: hidden; 233 border: none; 234 } 235 No newline at end of file