Ticket #43986: 43986-final.diff
File 43986-final.diff, 10.1 KB (added by , 6 years ago) |
---|
-
src/wp-admin/css/list-tables.css
diff --git src/wp-admin/css/list-tables.css src/wp-admin/css/list-tables.css index 8d78983993..dce42a4ea4 100644
div.action-links, 1510 1510 content: "\f158"; 1511 1511 } 1512 1512 1513 .plugin-card .column-compatibility .compatibility-incompatible:before { 1514 color: #f00; 1515 } 1516 1513 1517 .plugin-card .compatibility-compatible:before { 1514 1518 content: "\f147"; 1515 1519 } 1516 1520 1521 .plugin-card .column-compatibility .compatibility-compatible:before { 1522 color: #008000; 1523 } 1524 1525 .plugin-card .notice-error.incompatible { 1526 margin: 12px 20px 0 20px; 1527 padding: 12px 20px; 1528 border-left: 5px solid #dc3232; 1529 } 1530 1531 .plugin-card .notice-error.incompatible a { 1532 text-decoration: underline; 1533 } 1534 1517 1535 .plugin-icon { 1518 1536 position: absolute; 1519 1537 top: 20px; -
src/wp-admin/includes/class-wp-plugin-install-list-table.php
diff --git src/wp-admin/includes/class-wp-plugin-install-list-table.php src/wp-admin/includes/class-wp-plugin-install-list-table.php index a19729b1d4..b63259ace2 100644
class WP_Plugin_Install_List_Table extends WP_List_Table { 496 496 $author = ' <cite>' . sprintf( __( 'By %s' ), $author ) . '</cite>'; 497 497 } 498 498 499 $wp_version = get_bloginfo( 'version' ); 500 501 $tested_php = ! empty( $plugin['requires_php'] ); 502 $compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $plugin['requires_php'] ) ), $plugin['requires_php'], '>=' ) ); 503 $tested_wp = ( empty( $plugin['tested'] ) || version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '<=' ) ); 504 $compatible_wp = ( empty( $plugin['requires'] ) || version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '>=' ) ); 505 $can_install = ( ! $tested_php || $compatible_php ) && $compatible_wp; 506 499 507 $action_links = array(); 500 508 501 509 if ( current_user_can( 'install_plugins' ) || current_user_can( 'update_plugins' ) ) { … … class WP_Plugin_Install_List_Table extends WP_List_Table { 504 512 switch ( $status['status'] ) { 505 513 case 'install': 506 514 if ( $status['url'] ) { 507 $action_links[] = sprintf( 508 '<a class="install-now button" data-slug="%s" href="%s" aria-label="%s" data-name="%s">%s</a>', 509 esc_attr( $plugin['slug'] ), 510 esc_url( $status['url'] ), 511 /* translators: %s: plugin name and version */ 512 esc_attr( sprintf( __( 'Install %s now' ), $name ) ), 513 esc_attr( $name ), 514 __( 'Install Now' ) 515 ); 515 if ( $can_install ) { 516 $action_links[] = sprintf( 517 '<a class="install-now button" data-slug="%s" href="%s" aria-label="%s" data-name="%s">%s</a>', 518 esc_attr( $plugin['slug'] ), 519 esc_url( $status['url'] ), 520 /* translators: %s: plugin name and version */ 521 esc_attr( sprintf( __( 'Install %s now' ), $name ) ), 522 esc_attr( $name ), 523 __( 'Install Now' ) 524 ); 525 } else { 526 $action_links[] = sprintf( 527 '<button type="button" class="button button-disabled" disabled="disabled">%s</button>', 528 _x( 'Cannot Install', 'plugin' ) 529 ); 530 } 516 531 } 517 532 break; 518 533 … … class WP_Plugin_Install_List_Table extends WP_List_Table { 610 625 $last_updated_timestamp = strtotime( $plugin['last_updated'] ); 611 626 ?> 612 627 <div class="plugin-card plugin-card-<?php echo sanitize_html_class( $plugin['slug'] ); ?>"> 628 <?php 629 if ( ! $can_install ) { 630 // Remove style section for commit. 631 echo '<style> 632 .plugin-card .notice-error.incompatible { 633 margin: 12px 20px 0 20px; 634 padding: 12px 20px; 635 border-left: 5px solid #dc3232; 636 } 637 .plugin-card .notice-error.incompatible a { 638 text-decoration: underline; 639 } 640 .plugin-card .column-compatibility .compatibility-incompatible:before { color: #f00; } 641 .plugin-card .column-compatibility .compatibility-compatible:before { color: #008000; } 642 </style>'; 643 // End remove for commit. 644 645 echo '<div class="notice-error notice-alt incompatible">'; 646 if ( ! $compatible_wp && ! $compatible_php & $tested_php ) { 647 print __( 'This plugin doesn’t work with your versions of WordPress and PHP.' ) . ' '; 648 printf( 649 /* translators: Link to update-core.php and link to ServeHappy page */ 650 __( '%1$sPlease update WordPress%2$s, and then %3$slearn more about updating PHP.%4$s' ), 651 '<a href="' . self_admin_url( 'update-core.php' ) . '">', 652 '</a>', 653 '<a href="https://wordpress.org/support/upgrade-php/">', 654 '</a>' 655 ); 656 } elseif ( ! $compatible_wp ) { 657 print __( 'This plugin doesn’t work with your version of WordPress.' ) . ' '; 658 printf( 659 /* translators: Link to update-core.php */ 660 __( '%sPlease update WordPress.%s' ), 661 '<a href="' . self_admin_url( 'update-core.php' ) . '">', 662 '</a>' 663 ); 664 } elseif ( ! $compatible_php && $tested_php ) { 665 print __( 'This plugin doesn’t work with your version of PHP.' ) . ' '; 666 printf( 667 /* translators: Link to servehappy page */ 668 __( '%sLearn more about updating PHP.%s' ), 669 '<a href="https://wordpress.org/support/upgrade-php/">', 670 '</a>' 671 ); 672 } 673 echo '</div>'; 674 } ?> 613 675 <div class="plugin-card-top"> 614 676 <div class="name column-name"> 615 677 <h3> … … class WP_Plugin_Install_List_Table extends WP_List_Table { 623 685 <?php 624 686 if ( $action_links ) { 625 687 echo '<ul class="plugin-action-buttons"><li>' . implode( '</li><li>', $action_links ) . '</li></ul>'; 626 } 627 ?> 688 } ?> 628 689 </div> 629 690 <div class="desc column-description"> 630 691 <p><?php echo $description; ?></p> … … class WP_Plugin_Install_List_Table extends WP_List_Table { 641 702 'number' => $plugin['num_ratings'], 642 703 ) 643 704 ); 644 ?>705 ?> 645 706 <span class="num-ratings" aria-hidden="true">(<?php echo number_format_i18n( $plugin['num_ratings'] ); ?>)</span> 646 707 </div> 647 708 <div class="column-updated"> … … class WP_Plugin_Install_List_Table extends WP_List_Table { 665 726 </div> 666 727 <div class="column-compatibility"> 667 728 <?php 668 $wp_version = get_bloginfo( 'version' ); 669 670 if ( ! empty( $plugin['tested'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) { 729 if ( ! $tested_wp ) { 671 730 echo '<span class="compatibility-untested">' . __( 'Untested with your version of WordPress' ) . '</span>'; 672 } elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' )) {731 } elseif ( ! $compatible_wp ) { 673 732 echo '<span class="compatibility-incompatible">' . __( '<strong>Incompatible</strong> with your version of WordPress' ) . '</span>'; 674 733 } else { 675 734 echo '<span class="compatibility-compatible">' . __( '<strong>Compatible</strong> with your version of WordPress' ) . '</span>'; 676 } 677 ?> 735 } ?> 678 736 </div> 679 737 </div> 680 738 </div> -
src/wp-admin/includes/plugin-install.php
diff --git src/wp-admin/includes/plugin-install.php src/wp-admin/includes/plugin-install.php index f765fb286e..a22e707e38 100644
if ( ! empty( $api->contributors ) ) { 753 753 <?php 754 754 $wp_version = get_bloginfo( 'version' ); 755 755 756 if ( ! empty( $api->tested ) && version_compare( substr( $wp_version, 0, strlen( $api->tested ) ), $api->tested, '>' ) ) { 757 echo '<div class="notice notice-warning notice-alt"><p>' . __( '<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress.' ) . '</p></div>'; 758 } elseif ( ! empty( $api->requires ) && version_compare( substr( $wp_version, 0, strlen( $api->requires ) ), $api->requires, '<' ) ) { 759 echo '<div class="notice notice-warning notice-alt"><p>' . __( '<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress.' ) . '</p></div>'; 756 $tested_php = ! empty( $api->requires_php ); 757 $compatible_php = ( ! $tested_php || version_compare( substr( PHP_VERSION, 0, strlen( $api->requires_php ) ), $api->requires_php, '>=' ) ); 758 $tested_wp = ( empty( $api->tested ) || version_compare( substr( $wp_version, 0, strlen( $api->tested ) ), $api->tested, '<=' ) ); 759 $compatible_wp = ( empty( $api->requires ) || version_compare( substr( $wp_version, 0, strlen( $api->requires ) ), $api->requires, '>=' ) ); 760 $can_install = ( ! $tested_php || $compatible_php ) && $compatible_wp; 761 762 if ( ! $tested_wp ) { 763 echo '<div class="notice notice-warning notice-alt"><p>' . __( '<strong>Warning:</strong> This plugin <strong>has not been tested</strong> with your current version of WordPress.' ) . '</p></div>'; 764 } elseif ( ! $compatible_wp ) { 765 echo '<div class="notice notice-error notice-alt"><p>' . __( '<strong>Error:</strong> This plugin <strong>has not been marked as compatible</strong> with your version of WordPress.' ) . '</p></div>'; 766 } 767 if ( ! $compatible_php && $tested_php ) { 768 echo '<div class="notice notice-error notice-alt"><p>' . sprintf( 769 /* translators: Upgrading PHP page URL */ 770 __( '<strong>Error:</strong> This plugin <strong>requires a newer version of PHP</strong>, so unfortunately you cannot install it. <a href="%s">Click here to learn more about upgrading PHP.</a>' ), 771 esc_url( __( 'https://wordpress.org/support/upgrade-php/' ) ) 772 ) . '</p></div>'; 760 773 } 761 774 762 775 foreach ( (array) $api->sections as $section_name => $content ) { … … if ( ! empty( $api->contributors ) ) { 779 792 $status = install_plugin_install_status( $api ); 780 793 switch ( $status['status'] ) { 781 794 case 'install': 782 if ( $ status['url']) {795 if ( $can_install ) { 783 796 echo '<a data-slug="' . esc_attr( $api->slug ) . '" id="plugin_install_from_iframe" class="button button-primary right" href="' . $status['url'] . '" target="_parent">' . __( 'Install Now' ) . '</a>'; 797 } else { 798 printf( 799 '<button type="button" class="button button-primary button-disabled right" disabled="disabled">%s</button>', 800 _x( 'Cannot Install', 'plugin' ) 801 ); 784 802 } 785 803 break; 786 804 case 'update_available':