diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index b7c31dd51e..11773e03c5 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -1811,7 +1811,8 @@ div.action-links { } #plugin-information-title { - padding: 0 76px 0 20px; + margin-right: 56px; /* avoid collisions with the close icon */ + padding: 0 20px; font-size: 22px; font-weight: 600; line-height: 56px; @@ -1824,6 +1825,79 @@ div.action-links { white-space: nowrap; } +#plugin-information-title.with-banner { + margin-right: 0; + height: 250px; + bottom: 250px; + background-size: 100% auto; +} + +@media only screen and (max-width: 800px) { + #plugin-information-title.with-banner { + height: 100px; + bottom: 100px; + } +} + +#plugin-information-title h2 { + font-family: "Helvetica Neue", sans-serif; + padding:0; + margin: 0; + max-width: 760px; +} + +#plugin-information-title.with-banner h2 { + font-size: 30px; + line-height: 50px; + font-weight: bold; + max-width: 760px; + position: absolute; + left: 20px; + top: 145px; + padding: 0 15px; + margin: 0; + color: #fff; + background: rgba( 30, 30, 30, 0.9 ); + text-shadow: 0 1px 3px rgba( 0, 0, 0, 0.4 ); + -webkit-box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 ); + -moz-box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 ); + box-shadow: 0 0 30px rgba( 255, 255, 255, 0.1 ); + -webkit-border-radius: 8px; + border-radius: 8px; +} + +@media only screen and (max-width: 800px) { + #plugin-information-title.with-banner h2 { + top: 12px; + font-size: 20px; + line-height: 40px; + } +} + +#plugin-information-title div.vignette { + display: none; +} + +#plugin-information-title.with-banner div.vignette { + display: block; + top: 0; + height: 215px; + width: 830px; + margin: 0 -20px; + background: transparent; + -webkit-box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 ); + -moz-box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 ); + box-shadow: inset 0 0 50px 4px rgba( 0, 0, 0, 0.2 ), inset 0 -1px 0 rgba( 0, 0, 0, 0.1 ); +} + +@media only screen and (max-width: 800px) { + #plugin-information-title.with-banner div.vignette { + height: 65px; + bottom: 65px; + width: 800%; + } +} + #plugin-information-tabs { padding: 0 16px; position: absolute; @@ -1834,6 +1908,17 @@ div.action-links { z-index: 1; } +#plugin-information-tabs.with-banner { + top: 215px; + background: rgba( 255, 255, 255, 0.85 ); +} + +@media only screen and (max-width: 800px) { + #plugin-information-tabs.with-banner { + top: 65px; + } +} + #plugin-information-tabs a { position: relative; float: left; @@ -1871,6 +1956,16 @@ div.action-links { left: 0; } +#plugin-information-content.with-banner { + top:249px; +} + +@media only screen and (max-width: 800px) { + #plugin-information-content.with-banner { + top:99px; + } +} + #section-holder { margin: 0; padding: 10px 26px; @@ -1887,6 +1982,7 @@ div.action-links { } #plugin-information .fyi { + display: block; background: #f3f3f3; border-left: 1px solid #ddd; color: #666; @@ -1927,6 +2023,49 @@ div.action-links { margin: 0 0 10px; } +#plugin-information .counter-label { + float: left; + margin-right: 5px; +} + +#plugin-information .counter-back { + height: 17px; + width: 92px; + background-color: #ececec; + float: left; +} + +#plugin-information .counter-bar { + height: 17px; + background-color: #fddb5a; + float: left; +} + +#plugin-information .counter-count { + margin-left: 5px; +} + +#plugin-information .fyi ul.contributors { + margin-top: 10px; +} + +#plugin-information .fyi ul.contributors li { + display: inline-block; + margin-right: 8px; + vertical-align: middle; +} + +#plugin-information .fyi ul.contributors li { + display: inline-block; + margin-right: 8px; + vertical-align: middle; +} + +#plugin-information .fyi ul.contributors li img { + vertical-align: middle; + margin-right: 4px; +} + #plugin-information-footer { padding: 15px 16px; position: absolute; @@ -2053,11 +2192,22 @@ body.import-php .tb-close-icon, body.plugins-php .tb-close-icon, body.update-core-php .tb-close-icon, body.index-php .tb-close-icon { + background: rgba( 255, 255, 255, .5); + color: #444; line-height: 48px; width: 48px; height: 48px; } +body.plugin-install-php .tb-close-icon:hover, +body.import-php .tb-close-icon:hover, +body.plugins-php .tb-close-icon:hover, +body.update-core-php .tb-close-icon:hover, +body.index-php .tb-close-icon:hover { + background: #0074a2; + color: #fff; +} + body.plugin-install-php .tb-close-icon:before, body.import-php .tb-close-icon:before, body.plugins-php .tb-close-icon:before, diff --git a/src/wp-admin/includes/plugin-install.php b/src/wp-admin/includes/plugin-install.php index bbf7c3e6b3..24e57238ea 100644 --- a/src/wp-admin/includes/plugin-install.php +++ b/src/wp-admin/includes/plugin-install.php @@ -311,7 +311,7 @@ function install_plugin_install_status($api, $loop = false) { function install_plugin_information() { global $tab; - $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl() ) ); + $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl(), 'fields' => array( 'banners' => true, 'reviews' => true ) ) ); if ( is_wp_error( $api ) ) wp_die( $api ); @@ -331,6 +331,7 @@ function install_plugin_information() { 'faq' => _x('FAQ', 'Plugin installer section title'), 'screenshots' => _x('Screenshots', 'Plugin installer section title'), 'changelog' => _x('Changelog', 'Plugin installer section title'), + 'reviews' => _x('Reviews', 'Plugin installer section title'), 'other_notes' => _x('Other Notes', 'Plugin installer section title') ); @@ -354,10 +355,32 @@ function install_plugin_information() { iframe_header( __('Plugin Install') ); - echo "
{$api->name}
"; - echo "
\n"; + $_with_banner = ''; + + if ( !empty( $api->banners ) && ( !empty( $api->banners['low'] ) || !empty( $api->banners['high'] ) ) ) { + $_with_banner = 'with-banner'; + $low = ( !empty( $api->banners['low'] ) ) ? $api->banners['low'] : $api->banners['high']; + $high = ( !empty( $api->banners['high'] ) ) ? $api->banners['high'] : $api->banners['low']; + ?> + +

{$api->name}

"; + echo "
\n"; foreach ( (array)$api->sections as $section_name => $content ) { + if ( 'reviews' == $section_name && ( empty( $api->ratings ) || 0 == array_sum( (array) $api->ratings ) ) ) + continue; if ( isset( $plugins_section_titles[ $section_name ] ) ) $title = $plugins_section_titles[ $section_name ]; @@ -374,7 +397,7 @@ function install_plugin_information() { echo "
\n"; ?> -
+
    version ) ) : ?> @@ -394,6 +417,8 @@ function install_plugin_information() {
  • homepage ) ) : ?>
  • +donate_link ) && empty( $api->contributors ) ) : ?> +
rating ) ) : ?> @@ -401,6 +426,46 @@ function install_plugin_information() { $api->rating, 'type' => 'percent', 'number' => $api->num_ratings ) ); ?> num_ratings), number_format_i18n($api->num_ratings) ); ?> + ratings ) && array_sum( (array) $api->ratings ) > 0 ) { + foreach( $api->ratings as $key=>$ratecount ) { + // avoid div-by-zero + $_rating = $api->num_ratings ? ( $ratecount / $api->num_ratings ) : 0; + ?> + + contributors ) ) : ?> +

+
    + contributors as $contrib_username => $contrib_profile ) { + if ( empty( $contrib_username ) && empty( $contrib_profile ) ) + continue; + if ( empty( $contrib_username ) ) + $contrib_username = preg_replace( '/^.+\/(.+)\/?$/', '\1', $contrib_profile ); + $contrib_username = sanitize_user( $contrib_username ); + if ( empty( $contrib_profile ) ) + echo "
  • {$contrib_username}
  • "; + else + echo "
  • {$contrib_username}
  • "; + } + ?> +
+ donate_link ) ) : ?> + + +