WordPress.org

Make WordPress Core

Ticket #15318: 15318.ms.themes.patch

File 15318.ms.themes.patch, 6.9 KB (added by ocean90, 8 years ago)
  • wp-admin/includes/class-wp-ms-themes-list-table.php

     
    250250        }
    251251
    252252        function display_rows() {
     253                foreach ( $this->items as $key => $theme )
     254                        $this->single_row( $key, $theme );
     255        }
     256
     257        function single_row( $key, $theme ) {
    253258                global $status, $page, $s;
    254259
    255260                $context = $status;
    256                
     261
    257262                if ( $this->is_site_themes )
    258263                        $url = "site-themes.php?id={$this->site_id}&";
    259264                else
    260265                        $url = 'themes.php?';
    261266
    262                 foreach ( $this->items as $key => $theme ) {
    263                         // preorder
    264                         $actions = array(
    265                                 'enable' => '',
    266                                 'disable' => '',
    267                                 'edit' => ''
    268                         );
    269                        
    270                         $theme_key = esc_html( $theme['Stylesheet'] );
     267                // preorder
     268                $actions = array(
     269                        'enable' => '',
     270                        'disable' => '',
     271                        'edit' => ''
     272                );
    271273
    272                         if ( empty( $theme['enabled'] ) )
    273                                         $actions['enable'] = '<a href="' . wp_nonce_url($url . 'action=enable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'enable-theme_' . $theme_key) . '" title="' . __('Enable this theme') . '" class="edit">' . __('Enable') . '</a>';
    274                         else
    275                                         $actions['disable'] = '<a href="' . wp_nonce_url($url . 'action=disable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'disable-theme_' . $theme_key) . '" title="' . __('Disable this theme') . '">' . __('Disable') . '</a>';
    276                        
    277                         if ( current_user_can('edit_themes') )
    278                                 $actions['edit'] = '<a href="theme-editor.php?theme=' . $theme['Name'] . '" title="' . __('Open this theme in the Theme Editor') . '" class="edit">' . __('Edit') . '</a>';
     274                $theme_key = esc_html( $theme['Stylesheet'] );
    279275
    280                         $actions = apply_filters( 'theme_action_links', array_filter( $actions ), $theme_key, $theme, $context );
    281                         $actions = apply_filters( "theme_action_links_$theme_key", $actions, $theme_key, $theme, $context );
     276                if ( empty( $theme['enabled'] ) )
     277                        $actions['enable'] = '<a href="' . wp_nonce_url($url . 'action=enable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'enable-theme_' . $theme_key) . '" title="' . __('Enable this theme') . '" class="edit">' . __('Enable') . '</a>';
     278                else
     279                        $actions['disable'] = '<a href="' . wp_nonce_url($url . 'action=disable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'disable-theme_' . $theme_key) . '" title="' . __('Disable this theme') . '">' . __('Disable') . '</a>';
    282280
    283                         $class = empty( $theme['enabled'] ) ? 'inactive' : 'active';
    284                         $checkbox = "<input type='checkbox' name='checked[]' value='" . esc_attr( $theme_key ) . "' />";
     281                if ( current_user_can('edit_themes') )
     282                        $actions['edit'] = '<a href="theme-editor.php?theme=' . $theme['Name'] . '" title="' . __('Open this theme in the Theme Editor') . '" class="edit">' . __('Edit') . '</a>';
    285283
    286                         $description = '<p>' . $theme['Description'] . '</p>';
    287                         $theme_name = $theme['Name'];
     284                $actions = apply_filters( 'theme_action_links', array_filter( $actions ), $theme_key, $theme, $context );
     285                $actions = apply_filters( "theme_action_links_$theme_key", $actions, $theme_key, $theme, $context );
    288286
     287                $class = empty( $theme['enabled'] ) ? 'inactive' : 'active';
     288                $checkbox_id = md5($theme['Name']) . "_checkbox";
     289                $checkbox = "<input type='checkbox' name='checked[]' value='" . esc_attr( $theme_key ) . "' id='" . $checkbox_id . "' /><label class='screen-reader-text' for='" . $checkbox_id . "' >" . __('Select') . " " . $theme['Name'] . "</label>";
    289290
    290                         $id = sanitize_title( $theme_name );
     291                $description = '<p>' . $theme['Description'] . '</p>';
     292                $theme_name = $theme['Name'];
    291293
    292                         echo "
    293                 <tr id='$id' class='$class'>
    294                         <th scope='row' class='check-column'>$checkbox</th>
    295                         <td class='theme-title'><strong>$theme_name</strong></td>
    296                         <td class='desc'>$description</td>
    297                 </tr>
    298                 <tr class='$class second'>
    299                         <td></td>
    300                         <td class='theme-title'>";
     294                $id = sanitize_title( $theme_name );
    301295
    302                         echo $this->row_actions( $actions, true );
     296                echo "<tr id='$id' class='$class'>";
    303297
    304                         echo "</td>
    305                         <td class='desc'>";
    306                         $theme_meta = array();
    307                         if ( !empty( $theme['Version'] ) )
    308                                 $theme_meta[] = sprintf( __( 'Version %s' ), $theme['Version'] );
    309                         if ( !empty( $theme['Author'] ) ) {
    310                                 $author = $theme['Author'];
    311                                 if ( !empty( $theme['Author URI'] ) )
    312                                         $author = '<a href="' . $theme['Author URI'] . '" title="' . __( 'Visit author homepage' ) . '">' . $theme['Author'] . '</a>';
    313                                 $theme_meta[] = sprintf( __( 'By %s' ), $author );
     298                list( $columns, $hidden ) = $this->get_column_info();
     299
     300                foreach ( $columns as $column_name => $column_display_name ) {
     301                        $style = '';
     302                        if ( in_array( $column_name, $hidden ) )
     303                                $style = ' style="display:none;"';
     304
     305                        switch ( $column_name ) {
     306                                case 'cb':
     307                                        echo "<th scope='row' class='check-column'>$checkbox</th>";
     308                                        break;
     309                                case 'name':
     310                                        echo "<td class='theme-title'$style><strong>$theme_name</strong>";
     311                                        echo $this->row_actions( $actions, true );
     312                                        echo "</td>";
     313                                        break;
     314                                case 'description':
     315                                        echo "<td class='column-description desc'$style>
     316                                                <div class='theme-description'>$description</div>
     317                                                <div class='$class second theme-version-author-uri'>";
     318
     319                                        $theme_meta = array();
     320                                        if ( !empty( $theme['Version'] ) )
     321                                                $theme_meta[] = sprintf( __( 'Version %s' ), $theme['Version'] );
     322                                        if ( !empty( $theme['Author'] ) ) {
     323                                                $author = $theme['Author'];
     324                                                if ( !empty( $theme['Author URI'] ) )
     325                                                        $author = '<a href="' . $theme['Author URI'] . '" title="' . __( 'Visit author homepage' ) . '">' . $theme['Author'] . '</a>';
     326                                                $theme_meta[] = sprintf( __( 'By %s' ), $author );
     327                                        }
     328                                        if ( !empty( $theme['Theme URI'] ) )
     329                                                $theme_meta[] = '<a href="' . $theme['Theme URI'] . '" title="' . __( 'Visit theme homepage' ) . '">' . __( 'Visit Theme Site' ) . '</a>';
     330
     331                                        $theme_meta = apply_filters( 'theme_row_meta', $theme_meta, $theme_key, $theme, $status );
     332                                        echo implode( ' | ', $theme_meta );
     333
     334                                        echo "</div></td>";
     335                                        break; 
     336                                        break;
     337                                default:
     338                                        echo "<td class='$column_name column-$column_name'$style>";
     339                                        do_action( 'manage_themes_custom_column', $column_name, $theme_key, $theme );
     340                                        echo "</td>";
    314341                        }
    315                         if ( !empty( $theme['Theme URI'] ) )
    316                                 $theme_meta[] = '<a href="' . $theme['Theme URI'] . '" title="' . __( 'Visit theme homepage' ) . '">' . __( 'Visit Theme Site' ) . '</a>';
     342                }
    317343
    318                         $theme_meta = apply_filters( 'theme_row_meta', $theme_meta, $theme_key, $theme, $status );
    319                         echo implode( ' | ', $theme_meta );
    320                         echo "</td>
    321                 </tr>\n";
     344                echo "</tr>";
    322345
    323                         do_action( 'after_theme_row', $theme_key, $theme, $status );
    324                         do_action( "after_theme_row_$theme_key", $theme_key, $theme, $status );
    325                 }
     346                do_action( 'after_theme_row', $theme_key, $theme, $status );
     347                do_action( "after_theme_row_$theme_key", $theme_key, $theme, $status );
    326348        }
    327349}
     350
    328351?>