WordPress.org

Make WordPress Core

Ticket #41309: 41309.select.diff

File 41309.select.diff, 4.4 KB (added by xkon, 3 years ago)

Select box instead of ul list

  • src/wp-admin/css/common.css

     
    35533553        text-decoration: none;
    35543554}
    35553555
     3556#templateselector {
     3557        margin-bottom: 20px;
     3558        margin-top: 20px;
     3559}
     3560
    35563561/* =Media Queries
    35573562-------------------------------------------------------------- */
    35583563
     
    35933598        width: device-width;
    35943599}
    35953600
     3601@media screen and ( min-width: 782px ) {
     3602        #templateselector {
     3603                display: none;
     3604        }
     3605}
     3606
     3607@media screen and ( max-width: 520px) {
     3608        #templateselector,
     3609        .fileedit-sub {
     3610                text-align: right;
     3611        }
     3612
     3613        #templateselector select,
     3614        .fileedit-sub select#theme {
     3615                display:block;
     3616                clear:left;
     3617        }
     3618}
     3619
    35963620@media screen and ( max-width: 782px ) {
    35973621        html.wp-toolbar {
    35983622                padding-top: 46px;
     
    37243748        #templateside {
    37253749                float: none;
    37263750                width: auto;
     3751                display: none;
    37273752        }
    37283753
    37293754        #templateside li {
  • src/wp-admin/theme-editor.php

     
    191191if ( $theme->errors() )
    192192        echo '<div class="error"><p><strong>' . __( 'This theme is broken.' ) . '</strong> ' . $theme->errors()->get_error_message() . '</p></div>';
    193193?>
     194    <!-- custom Template selection div -->
     195    <div id="templateselector" class="templateselector alignright">
     196            <strong><label for="templateselect"><?php _e('Select template or style to edit:'); ?> </label></strong>
     197            <select name="templateselect" id="templateselect">
     198            <?php
     199                if ( $allowed_files ) :
     200                    $previous_file_type = '';
     201
     202                foreach ( $allowed_files as $filename => $absolute_filename ) :
     203                    $file_type = substr( $filename, strrpos( $filename, '.' ) );
     204
     205                    if ( $file_type !== $previous_file_type ) {
     206
     207                        switch ( $file_type ) {
     208
     209                            case '.php':
     210                                if ( $has_templates || $theme->parent() ) :
     211                                    echo "\t<optgroup label=\"" . __( 'Templates' ) . "\">";
     212                                endif;
     213                                break;
     214
     215                            case '.css':
     216                                echo "\t<optgroup label=\"" . __( 'Styles' ) . "\">";
     217                                break;
     218                        }
     219                    }
     220
     221                    $file_description = get_file_description( $filename );
     222                    $previous_file_type = $file_type;
     223                ?>
     224                <option value="<?php echo urlencode( $filename ) ?>&amp;theme=<?php echo urlencode( $stylesheet ) ?>"><?php echo $file_description; ?></option>
     225            <?php
     226                endforeach;
     227            ?>
     228                </optgroup>
     229            <?php endif; ?>
     230            </select>
     231            <?php submit_button( __( 'Select' ), 'submit', 'selectmytemplate', false ); ?>
     232    </div>
     233    <!-- end of custom Template selection div -->
    194234        <div id="templateside">
    195235<?php
    196236if ( $allowed_files ) :
     
    289329jQuery(document).ready(function($){
    290330        $('#template').submit(function(){ $('#scrollto').val( $('#newcontent').scrollTop() ); });
    291331        $('#newcontent').scrollTop( $('#scrollto').val() );
     332
     333        // Redirect to selected template page
     334        $('#selectmytemplate').on('click', function() {
     335            var url = $('#templateselect').val(); // get the selected value
     336        if (url) { // require a URL
     337            window.location = '?file=' + url; // redirect
     338        }
     339        return false;
     340    });
     341
     342        // Mark the current file as selected
     343    var getUrlParameter = function getUrlParameter(sParam) {
     344        var sPageURL = decodeURIComponent(window.location.search.substring(1)),
     345            sURLVariables = sPageURL.split('&'),
     346            sParameterName,
     347            i;
     348
     349        for (i = 0; i < sURLVariables.length; i++) {
     350            sParameterName = sURLVariables[i].split('=');
     351
     352            if (sParameterName[0] === sParam) {
     353                return sParameterName[1] === undefined ? true : sParameterName[1];
     354            }
     355        }
     356    };
     357    var currentFile = getUrlParameter('file');
     358    $('#templateselect option[value*="'+currentFile+'"]').prop('selected', true);
     359
    292360});
    293361</script>
    294362<?php