diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css index 9a1a7fa650..35400b51be 100644 --- a/src/wp-admin/css/common.css +++ b/src/wp-admin/css/common.css @@ -1788,58 +1788,116 @@ div.action-links { margin: 6px 0 0; } -/* Header on thickbox */ -#plugin-information-header { - margin: 0; - padding: 0 5px; - font-weight: 600; - position: relative; - border-bottom: 1px solid #dfdfdf; - height: 2.5em; - background-color: #f9f9f9; -} -#plugin-information ul#sidemenu { - font-weight: normal; - margin: 0 5px; - position: absolute; - left: 0; - bottom: -1px; -} - -/* Install sidemenu */ +/* Plugin install thickbox */ #plugin-information { + background: #fcfcfc; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; height: auto; + padding: 0; } -#plugin-information p.action-button { - width: 100%; - padding-bottom: 0; - margin-bottom: 0; - margin-top: 10px; - -webkit-border-top-left-radius: 3px; - border-top-left-radius: 3px; - -webkit-border-bottom-left-radius: 3px; - border-bottom-left-radius: 3px; -} - -#plugin-information .action-button a { - background-color: #2ea2cc; - color: #fff; - text-align: center; +#plugin-information-title { + padding: 0 36px 0 16px; + font-size: 18px; font-weight: 600; - text-decoration: none; - display: block; - line-height: 2em; + line-height: 36px; + top: 0; + right: 0; + left: 0; + height: 36px; + border-bottom: 1px solid #ddd; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } -#plugin-information h2 { - clear: none !important; - margin-right: 200px; +#plugin-information-tabs { + padding: 0 16px; + position: absolute; + top: 56px; + right: 0; + left: 0; + height: 36px; + z-index: 1; +} + +#plugin-information-tabs a { + position: relative; + float: left; + padding: 8px 10px 9px; + margin: 0; + height: 18px; + line-height: 18px; + font-size: 14px; + text-decoration: none; + transition: none; +} + +#plugin-information-tabs a.current { + margin: -1px -1px 0; + background: #fff; + border: 1px solid #ddd; + border-bottom: none; + color: #333; +} + +#plugin-information-tabs a:active, +#plugin-information-tabs a:focus { + outline: none; +} + +#plugin-information-content { + background: #fff; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + position: absolute; + top: 90px; + right: 0; + bottom: 44px; + left: 0; + overflow: auto; +} + +#section-holder { + margin: 0; + padding: 10px 26px; + position: absolute; + top: 0; + right: 250px; + bottom: 0; + left: 0; +} + +#section-holder .updated { + margin: 16px 0; } #plugin-information .fyi { - margin: 0 10px 50px; - width: 210px; + background: #f3f3f3; + border: 1px solid #ddd; + border-top: 0; + color: #666; + padding: 16px; + position: absolute; + top: 0; + right: 0; + width: 217px; +} + +#plugin-information .fyi strong { + color: #464646; +} + +#plugin-information .fyi h3 { + font-weight: bold; + text-transform: uppercase; + font-size: 12px; + color: #666; + margin: 24px 0 8px; } #plugin-information .fyi h2 { @@ -1848,35 +1906,34 @@ div.action-links { margin-right: 0; } -#plugin-information .fyi h2.mainheader { - padding: 5px; - -webkit-border-top-left-radius: 3px; - border-top-left-radius: 3px; - background-color: #cee1ef; -} - #plugin-information .fyi ul { - padding: 10px 5px 10px 7px; + padding: 0; margin: 0; list-style: none; - -webkit-border-bottom-left-radius: 3px; - border-bottom-left-radius: 3px; - background-color: #eaf3fa; } #plugin-information .fyi li { - margin-right: 0; + margin: 0 0 10px; } -#plugin-information #section-holder { - padding: 10px; +#plugin-information-footer { + padding: 8px 16px; + position: absolute; + right: 0; + bottom: 0; + left: 0; } #plugin-information .section ul, #plugin-information .section ol { - margin-left: 16px; - list-style-type: square; - list-style-image: none; + list-style-type: disc; + margin-left: 24px; +} + +#plugin-information .section, +#plugin-information .section p { + font-size: 14px; + line-height: 1.7; } #plugin-information #section-screenshots ol { @@ -1886,21 +1943,17 @@ div.action-links { #plugin-information #section-screenshots li img { vertical-align: text-top; + margin-top: 16px; max-width: 100%; width: auto; height: auto; + -webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 ); + box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.3 ); } #plugin-information #section-screenshots li p { font-style: italic; padding-left: 20px; - padding-bottom: 2em; -} - -#plugin-information #section-screenshots ol, -#plugin-information .updated, -#plugin-information pre { - margin-right: 215px; } #plugin-information pre { @@ -1909,15 +1962,78 @@ div.action-links { border: 1px solid #ccc; } -#plugin-information pre, -#plugin-information code { - background-color: #ededff; -} - .plugin-version-author-uri { font-size: 13px; } +@media screen and ( max-width: 782px ) { + #plugin-information-content { + overflow: auto; + bottom: 62px; + } + + #plugin-information .fyi { + border: 1px solid #ddd; + position: static; + width: auto; + margin: 26px 26px 16px; + } + + #section-holder { + position: static; + } + + #plugin-information .fyi h3, + #plugin-information .fyi small { + display: none; + } + + #plugin-information-footer { + padding: 12px 16px; + height: 37px; + } +} + +/* Thickbox for Plugin Install screen */ +body.plugin-install-php #TB_window, +body.index-php #TB_window { + background: #fcfcfc url( ../images/spinner.gif ) no-repeat center; +} + +@media print, + (-o-min-device-pixel-ratio: 5/4), + (-webkit-min-device-pixel-ratio: 1.25), + (min-resolution: 120dpi) { + + body.plugin-install-php #TB_window, + body.index-php #TB_window { + background: #fcfcfc url( ../images/spinner-2x.gif ) no-repeat center; + } +} + +body.plugin-install-php #TB_title, +body.index-php #TB_title { + float: left; + height: 1px; +} + +body.plugin-install-php #TB_ajaxWindowTitle, +body.index-php #TB_ajaxWindowTitle { + display: none; +} + +body.plugin-install-php .tb-close-icon, +body.index-php .tb-close-icon { + line-height: 36px; + width: 36px; + height: 36px; +} + +body.plugin-install-php .tb-close-icon:before, +body.index-php .tb-close-icon:before { + line-height: 36px; +} + /* @todo: move this. */ img { border: none; diff --git a/src/wp-admin/includes/plugin-install.php b/src/wp-admin/includes/plugin-install.php index 53362d2002..33d8acac44 100644 --- a/src/wp-admin/includes/plugin-install.php +++ b/src/wp-admin/includes/plugin-install.php @@ -312,8 +312,8 @@ function install_plugin_information() { $api = plugins_api( 'plugin_information', array( 'slug' => wp_unslash( $_REQUEST['plugin'] ), 'is_ssl' => is_ssl() ) ); - if ( is_wp_error($api) ) - wp_die($api); + if ( is_wp_error( $api ) ) + wp_die( $api ); $plugins_allowedtags = array( 'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ), @@ -334,13 +334,17 @@ function install_plugin_information() { ); //Sanitize HTML - foreach ( (array)$api->sections as $section_name => $content ) + foreach ( (array)$api->sections as $section_name => $content ) { $api->sections[$section_name] = wp_kses($content, $plugins_allowedtags); + } + foreach ( array( 'version', 'author', 'requires', 'tested', 'homepage', 'downloaded', 'slug' ) as $key ) { if ( isset( $api->$key ) ) $api->$key = wp_kses( $api->$key, $plugins_allowedtags ); } + $_tab = esc_attr( $tab ); + $section = isset( $_REQUEST['section'] ) ? wp_unslash( $_REQUEST['section'] ) : 'description'; //Default to the Description tab, Do not translate, API returns English. if ( empty( $section ) || ! isset( $api->sections[ $section ] ) ) { $section_titles = array_keys( (array) $api->sections ); @@ -348,8 +352,10 @@ function install_plugin_information() { } iframe_header( __('Plugin Install') ); - echo "