Make WordPress Core


Ignore:
Timestamp:
11/13/2010 04:57:25 PM (14 years ago)
Author:
scribu
Message:

Add 'manage_plugin_custom_column' action and properly hide plugin columns. See #15318

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/class-wp-plugins-list-table.php

    r16347 r16348  
    393393        $checkbox_id = md5($plugin_data['Name']) . "_checkbox";
    394394        $checkbox = in_array( $status, array( 'mustuse', 'dropins' ) ) ? '' : "<input type='checkbox' name='checked[]' value='" . esc_attr( $plugin_file ) . "' id='" . $checkbox_id . "' /><label class='screen-reader-text' for='" . $checkbox_id . "' >" . __('Select') . " " . $plugin_data['Name'] . "</label>";
    395         if ( 'dropins' != $status ) {
     395        if ( 'dropins' != $context ) {
    396396            $description = '<p>' . $plugin_data['Description'] . '</p>';
    397397            $plugin_name = $plugin_data['Name'];
     
    400400        $id = sanitize_title( $plugin_name );
    401401
    402 
    403         echo "
    404     <tr id='$id' class='$class'>
    405         <th scope='row' class='check-column'>$checkbox</th>
    406         <td class='plugin-title'>
    407             <strong>$plugin_name</strong>
    408         ";
    409        
    410         echo $this->row_actions( $actions, true );
    411 
    412         echo "
    413         </td>
    414         <td class='column-description desc'>
    415             <div class='plugin-description'>
    416                 $description
    417             </div>
    418             <div class='$class second plugin-version-author-uri'>
    419                 ";
     402        echo "<tr id='$id' class='$class'>";
     403
     404        list( $columns, $hidden ) = $this->get_column_info();
     405
     406        foreach ( $columns as $column_name => $column_display_name ) {
     407            $style = '';
     408            if ( in_array( $column_name, $hidden ) )
     409                $style = ' style="display:none;"';
     410
     411            switch ( $column_name ) {
     412                case 'cb':
     413                    echo "<th scope='row' class='check-column'>$checkbox</th>";
     414                    break;
     415                case 'name':
     416                    echo "<td class='plugin-title'$style><strong>$plugin_name</strong>";
     417                    echo $this->row_actions( $actions, true );
     418                    echo "</td>";
     419                    break;
     420                case 'description':
     421                    echo "<td class='column-description desc'$style>
     422                        <div class='plugin-description'>$description</div>
     423                        <div class='$class second plugin-version-author-uri'>";
     424
     425                    $plugin_meta = array();
     426                    if ( !empty( $plugin_data['Version'] ) )
     427                        $plugin_meta[] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
     428                    if ( !empty( $plugin_data['Author'] ) ) {
     429                        $author = $plugin_data['Author'];
     430                        if ( !empty( $plugin_data['AuthorURI'] ) )
     431                            $author = '<a href="' . $plugin_data['AuthorURI'] . '" title="' . __( 'Visit author homepage' ) . '">' . $plugin_data['Author'] . '</a>';
     432                        $plugin_meta[] = sprintf( __( 'By %s' ), $author );
     433                    }
     434                    if ( ! empty( $plugin_data['PluginURI'] ) )
     435                        $plugin_meta[] = '<a href="' . $plugin_data['PluginURI'] . '" title="' . __( 'Visit plugin site' ) . '">' . __( 'Visit plugin site' ) . '</a>';
    420436   
    421                 $plugin_meta = array();
    422                 if ( !empty( $plugin_data['Version'] ) )
    423                     $plugin_meta[] = sprintf( __( 'Version %s' ), $plugin_data['Version'] );
    424                 if ( !empty( $plugin_data['Author'] ) ) {
    425                     $author = $plugin_data['Author'];
    426                     if ( !empty( $plugin_data['AuthorURI'] ) )
    427                         $author = '<a href="' . $plugin_data['AuthorURI'] . '" title="' . __( 'Visit author homepage' ) . '">' . $plugin_data['Author'] . '</a>';
    428                     $plugin_meta[] = sprintf( __( 'By %s' ), $author );
    429                 }
    430                 if ( ! empty( $plugin_data['PluginURI'] ) )
    431                     $plugin_meta[] = '<a href="' . $plugin_data['PluginURI'] . '" title="' . __( 'Visit plugin site' ) . '">' . __( 'Visit plugin site' ) . '</a>';
    432    
    433                 $plugin_meta = apply_filters( 'plugin_row_meta', $plugin_meta, $plugin_file, $plugin_data, $status );
    434                 echo implode( ' | ', $plugin_meta );
    435 
    436                 echo "
    437             </div>
    438         </td>
    439     </tr>
    440 ";
     437                    $plugin_meta = apply_filters( 'plugin_row_meta', $plugin_meta, $plugin_file, $plugin_data, $status );
     438                    echo implode( ' | ', $plugin_meta );
     439
     440                    echo "</div></td>";
     441                    break;
     442                default:
     443                    echo "<td class='$column_name'$style>";
     444                    do_action( 'manage_plugin_custom_column', $column_name, $plugin_file, $plugin_data );
     445                    echo "</td>";
     446            }
     447        }
     448
     449        echo "</tr>";
    441450
    442451        do_action( 'after_plugin_row', $plugin_file, $plugin_data, $status );
Note: See TracChangeset for help on using the changeset viewer.