Make WordPress Core

Changeset 37972


Ignore:
Timestamp:
07/05/2016 03:21:44 PM (10 years ago)
Author:
ocean90
Message:

Dashboard: Don't add a "Configure" link to the toggle button.

The HTML for the toggle gets appended to the widget name which is later used for the widget title and the screen reader text of the toggle button. Storing the original widget name in the arguments allows us to use the name without the HTML for the screen reader text and doesn't require further changes by plugin developers.

Props nicholas_io, swissspidy.
Fixes #35021.

Location:
trunk/src/wp-admin/includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/dashboard.php

    r37674 r37972  
    148148        $screen = get_current_screen();
    149149        global $wp_dashboard_control_callbacks;
     150
     151        $private_callback_args = array( '__widget_basename' => $widget_name );
     152
     153        if ( is_null( $callback_args ) ) {
     154                $callback_args = $private_callback_args;
     155        } else if ( is_array( $callback_args ) ) {
     156                $callback_args = array_merge( $callback_args, $private_callback_args );
     157        }
    150158
    151159        if ( $control_callback && current_user_can( 'edit_dashboard' ) && is_callable( $control_callback ) ) {
  • trunk/src/wp-admin/includes/screen.php

    r37534 r37972  
    118118                                if ( 'submitdiv' == $box['id'] || 'linksubmitdiv' == $box['id'] )
    119119                                        continue;
    120                                 $box_id = $box['id'];
    121                                 echo '<label for="' . $box_id . '-hide">';
    122                                 echo '<input class="hide-postbox-tog" name="' . $box_id . '-hide" type="checkbox" id="' . $box_id . '-hide" value="' . $box_id . '"' . (! in_array($box_id, $hidden) ? ' checked="checked"' : '') . ' />';
    123                                 echo "{$box['title']}</label>\n";
     120
     121                                $widget_title = $box['title'];
     122
     123                                if ( isset( $box['args']['__widget_basename'] ) ) {
     124                                        $widget_title = $box['args']['__widget_basename'];
     125                                }
     126
     127                                printf(
     128                                        '<label for="%1$s-hide"><input class="hide-postbox-tog" name="%1$s-hide" type="checkbox" id="%1$s-hide" value="%1$s" %2$s />%3$s</label>',
     129                                        esc_attr( $box['id'] ),
     130                                        checked( in_array( $box['id'], $hidden ), false, false ),
     131                                        $widget_title
     132                                );
    124133                        }
    125134                }
  • trunk/src/wp-admin/includes/template.php

    r37737 r37972  
    10281028                                        echo '<div id="' . $box['id'] . '" class="postbox ' . postbox_classes($box['id'], $page) . $hidden_class . '" ' . '>' . "\n";
    10291029                                        if ( 'dashboard_browser_nag' != $box['id'] ) {
     1030                                                $widget_title = $box[ 'title' ];
     1031
     1032                                                if ( is_array( $box[ 'args' ] ) && isset( $box[ 'args' ][ '__widget_basename' ] ) ) {
     1033                                                        $widget_title = esc_html( $box[ 'args' ][ '__widget_basename' ] );
     1034                                                        // Do not pass this parameter to the user callback function.
     1035                                                        unset( $box[ 'args' ][ '__widget_basename' ] );
     1036                                                }
     1037
    10301038                                                echo '<button type="button" class="handlediv button-link" aria-expanded="true">';
    1031                                                 echo '<span class="screen-reader-text">' . sprintf( __( 'Toggle panel: %s' ), $box['title'] ) . '</span>';
     1039                                                echo '<span class="screen-reader-text">' . sprintf( __( 'Toggle panel: %s' ), $widget_title ) . '</span>';
    10321040                                                echo '<span class="toggle-indicator" aria-hidden="true"></span>';
    10331041                                                echo '</button>';
Note: See TracChangeset for help on using the changeset viewer.