First pass at 3.4 pointers. Add pointer to the customize link for the current theme on themes.php. Support multiple pointers per page. Props scribu. see #20554
git-svn-id: http://core.svn.wordpress.org/trunk@20774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
eefdd33f6c
commit
e44a0c3930
|
@ -1707,36 +1707,40 @@ final class WP_Internal_Pointers {
|
||||||
'index.php' => 'wp330_toolbar',
|
'index.php' => 'wp330_toolbar',
|
||||||
'post-new.php' => 'wp330_media_uploader',
|
'post-new.php' => 'wp330_media_uploader',
|
||||||
'post.php' => 'wp330_media_uploader',
|
'post.php' => 'wp330_media_uploader',
|
||||||
'themes.php' => 'wp330_saving_widgets',
|
'themes.php' => array( 'wp330_saving_widgets', 'wp340_customize_current_theme_link' ),
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check if screen related pointer is registered
|
// Check if screen related pointer is registered
|
||||||
if ( empty( $registered_pointers[ $hook_suffix ] ) )
|
if ( empty( $registered_pointers[ $hook_suffix ] ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$pointer = $registered_pointers[ $hook_suffix ];
|
$pointers = (array) $registered_pointers[ $hook_suffix ];
|
||||||
|
|
||||||
$caps_required = array(
|
$caps_required = array(
|
||||||
'wp330_media_uploader' => array( 'upload_files' ),
|
'wp330_media_uploader' => array( 'upload_files' ),
|
||||||
'wp330_saving_widgets' => array( 'edit_theme_options', 'switch_themes' ),
|
'wp330_saving_widgets' => array( 'edit_theme_options', 'switch_themes' ),
|
||||||
|
'wp340_customize_current_theme_link' => array( 'edit_theme_options' ),
|
||||||
);
|
);
|
||||||
|
|
||||||
if ( isset( $caps_required[ $pointer ] ) ) {
|
|
||||||
foreach ( $caps_required[ $pointer ] as $cap ) {
|
|
||||||
if ( ! current_user_can( $cap ) )
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get dismissed pointers
|
// Get dismissed pointers
|
||||||
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
|
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
|
||||||
|
|
||||||
// Pointer has been dismissed
|
$got_pointers = false;
|
||||||
if ( in_array( $pointer, $dismissed ) )
|
foreach ( array_diff( $pointers, $dismissed ) as $pointer ) {
|
||||||
return;
|
if ( isset( $caps_required[ $pointer ] ) ) {
|
||||||
|
foreach ( $caps_required[ $pointer ] as $cap ) {
|
||||||
|
if ( ! current_user_can( $cap ) )
|
||||||
|
continue 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Bind pointer print function
|
// Bind pointer print function
|
||||||
add_action( 'admin_print_footer_scripts', array( 'WP_Internal_Pointers', 'pointer_' . $pointer ) );
|
add_action( 'admin_print_footer_scripts', array( 'WP_Internal_Pointers', 'pointer_' . $pointer ) );
|
||||||
|
$got_pointers = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! $got_pointers )
|
||||||
|
return;
|
||||||
|
|
||||||
// Add pointers script and style to queue
|
// Add pointers script and style to queue
|
||||||
wp_enqueue_style( 'wp-pointer' );
|
wp_enqueue_style( 'wp-pointer' );
|
||||||
|
@ -1824,6 +1828,22 @@ final class WP_Internal_Pointers {
|
||||||
) );
|
) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Print 'New Feature: Current Theme Customize Link' for 3.4.0.
|
||||||
|
*
|
||||||
|
* @since 3.4.0
|
||||||
|
*/
|
||||||
|
public static function pointer_wp340_customize_current_theme_link() {
|
||||||
|
$content = '<h3>' . __( 'New Feature: Customizer' ) . '</h3>';
|
||||||
|
$content .= '<p>' . __( 'Click Customize to change the header, background, title and menus of the current theme, all in one place.' ) . '</p>';
|
||||||
|
$content .= '<p>' . __( 'Click the Customize links in the Available Themes list below to customize, preview, and optionally activate the selected theme.' ) . '</p>';
|
||||||
|
|
||||||
|
WP_Internal_Pointers::print_js( 'wp340_customize_current_theme_link', '#customize-current-theme-link', array(
|
||||||
|
'content' => $content,
|
||||||
|
'position' => array( 'edge' => 'top', 'align' => is_rtl() ? 'right' : 'left' ),
|
||||||
|
) );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prevents new users from seeing existing 'new feature' pointers.
|
* Prevents new users from seeing existing 'new feature' pointers.
|
||||||
*
|
*
|
||||||
|
|
|
@ -140,7 +140,7 @@ $customize_title = sprintf( __( 'Customize “%s”' ), $ct->display('Na
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="theme-options">
|
<div class="theme-options">
|
||||||
<a href="<?php echo wp_customize_url( $ct->get_stylesheet() ); ?>" class="load-customize hide-if-no-customize" title="<?php echo esc_attr( $customize_title ); ?>"><?php _e( 'Customize' )?></a>
|
<a id="customize-current-theme-link" href="<?php echo wp_customize_url( $ct->get_stylesheet() ); ?>" class="load-customize hide-if-no-customize" title="<?php echo esc_attr( $customize_title ); ?>"><?php _e( 'Customize' )?></a>
|
||||||
<span><?php _e( 'Options:' )?></span>
|
<span><?php _e( 'Options:' )?></span>
|
||||||
<?php
|
<?php
|
||||||
// Pretend you didn't see this.
|
// Pretend you didn't see this.
|
||||||
|
|
Loading…
Reference in New Issue