2010-01-30 00:21:33 +01:00
< ? php
2010-04-04 15:29:35 +02:00
/**
* My Sites dashboard .
*
* @ package WordPress
* @ subpackage Multisite
* @ since 3.0 . 0
*/
2020-02-06 07:33:11 +01:00
require_once __DIR__ . '/admin.php' ;
2010-01-30 00:21:33 +01:00
2017-12-01 00:11:00 +01:00
if ( ! is_multisite () ) {
2010-04-01 23:21:27 +02:00
wp_die ( __ ( 'Multisite support is not enabled.' ) );
2017-12-01 00:11:00 +01:00
}
2010-01-30 00:21:33 +01:00
2017-12-01 00:11:00 +01:00
if ( ! current_user_can ( 'read' ) ) {
2016-06-29 17:16:29 +02:00
wp_die ( __ ( 'Sorry, you are not allowed to access this page.' ) );
2017-12-01 00:11:00 +01:00
}
2010-01-30 00:21:33 +01:00
2010-04-01 23:21:27 +02:00
$action = isset ( $_POST [ 'action' ] ) ? $_POST [ 'action' ] : 'splash' ;
2010-01-30 00:21:33 +01:00
2011-08-04 05:09:27 +02:00
$blogs = get_blogs_of_user ( $current_user -> ID );
2010-01-30 00:21:33 +01:00
$updated = false ;
2020-05-12 20:32:08 +02:00
if ( 'updateblogsettings' === $action && isset ( $_POST [ 'primary_blog' ] ) ) {
2010-04-01 23:21:27 +02:00
check_admin_referer ( 'update-my-sites' );
2016-10-19 08:02:29 +02:00
$blog = get_site ( ( int ) $_POST [ 'primary_blog' ] );
2010-04-01 23:21:27 +02:00
if ( $blog && isset ( $blog -> domain ) ) {
2021-05-24 21:59:57 +02:00
update_user_meta ( $current_user -> ID , 'primary_blog' , ( int ) $_POST [ 'primary_blog' ] );
2010-04-01 23:21:27 +02:00
$updated = true ;
} else {
2010-05-03 22:26:11 +02:00
wp_die ( __ ( 'The primary site you chose does not exist.' ) );
2010-04-01 23:21:27 +02:00
}
2010-01-30 00:21:33 +01:00
}
2021-07-22 15:53:00 +02:00
// Used in the HTML title tag.
2017-12-01 00:11:00 +01:00
$title = __ ( 'My Sites' );
2010-01-30 00:21:33 +01:00
$parent_file = 'index.php' ;
2010-05-27 23:20:23 +02:00
2017-12-01 00:11:00 +01:00
get_current_screen () -> add_help_tab (
array (
'id' => 'overview' ,
'title' => __ ( 'Overview' ),
'content' =>
'<p>' . __ ( 'This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. They can use the links under each site to visit either the front end or the dashboard for that site.' ) . '</p>' ,
)
);
2011-11-02 21:54:56 +01:00
get_current_screen () -> set_help_sidebar (
2017-12-01 00:11:00 +01:00
'<p><strong>' . __ ( 'For more information:' ) . '</strong></p>' .
2022-09-20 10:19:10 +02:00
'<p>' . __ ( '<a href="https://codex.wordpress.org/Dashboard_My_Sites_Screen">Documentation on My Sites</a>' ) . '</p>' .
2023-02-23 11:38:21 +01:00
'<p>' . __ ( '<a href="https://wordpress.org/support/forums/">Support forums</a>' ) . '</p>'
2010-05-27 23:20:23 +02:00
);
2020-02-06 07:33:11 +01:00
require_once ABSPATH . 'wp-admin/admin-header.php' ;
2010-01-30 00:21:33 +01:00
2023-08-17 23:03:19 +02:00
if ( $updated ) {
wp_admin_notice (
'<strong>' . __ ( 'Settings saved.' ) . '</strong>' ,
array (
'type' => 'success' ,
'dismissible' => true ,
'id' => 'message' ,
)
);
}
?>
2010-01-30 00:21:33 +01:00
< div class = " wrap " >
2017-12-01 00:11:00 +01:00
< h1 class = " wp-heading-inline " >
< ? php
2015-10-09 05:50:24 +02:00
echo esc_html ( $title );
2017-12-01 00:11:00 +01:00
?>
</ h1 >
2015-10-09 05:50:24 +02:00
2016-12-09 19:57:42 +01:00
< ? php
2020-04-05 05:02:11 +02:00
if ( in_array ( get_site_option ( 'registration' ), array ( 'all' , 'blog' ), true ) ) {
2015-10-09 05:50:24 +02:00
/** This filter is documented in wp-login.php */
$sign_up_url = apply_filters ( 'wp_signup_location' , network_site_url ( 'wp-signup.php' ) );
printf ( ' <a href="%s" class="page-title-action">%s</a>' , esc_url ( $sign_up_url ), esc_html_x ( 'Add New' , 'site' ) );
}
2011-11-17 19:52:58 +01:00
if ( empty ( $blogs ) ) :
2023-08-17 23:03:19 +02:00
wp_admin_notice (
'<strong>' . __ ( 'You must be a member of at least one site to use this page.' ) . '</strong>' ,
array (
'type' => 'error' ,
'dismissible' => true ,
)
);
2023-02-23 23:13:23 +01:00
?>
< ? php
2011-11-17 19:52:58 +01:00
else :
2018-08-17 03:51:36 +02:00
?>
2016-12-09 19:57:42 +01:00
< hr class = " wp-header-end " >
2015-01-16 05:16:24 +01:00
< form id = " myblogs " method = " post " >
2010-01-30 00:21:33 +01:00
< ? php
choose_primary_blog ();
2013-11-20 04:36:09 +01:00
/**
2015-07-03 22:47:49 +02:00
* Fires before the sites list on the My Sites screen .
2013-11-20 04:36:09 +01:00
*
* @ since 3.0 . 0
*/
2010-01-30 00:21:33 +01:00
do_action ( 'myblogs_allblogs_options' );
2010-04-01 23:21:27 +02:00
?>
< br clear = " all " />
2015-07-03 22:47:49 +02:00
< ul class = " my-sites striped " >
2010-04-01 23:21:27 +02:00
< ? php
2013-11-20 04:36:09 +01:00
/**
2023-06-14 16:08:18 +02:00
* Filters the settings HTML markup in the Global Settings section on the My Sites screen .
2013-11-20 04:36:09 +01:00
*
* By default , the Global Settings section is hidden . Passing a non - empty
* string to this filter will enable the section , and allow new settings
* to be added , either globally or for specific sites .
*
2017-08-01 22:44:43 +02:00
* @ since MU ( 3.0 . 0 )
2013-11-20 04:36:09 +01:00
*
* @ param string $settings_html The settings HTML markup . Default empty .
2019-12-06 23:23:04 +01:00
* @ param string $context Context of the setting ( global or site - specific ) . Default 'global' .
2013-11-20 04:36:09 +01:00
*/
2010-01-30 00:21:33 +01:00
$settings_html = apply_filters ( 'myblogs_options' , '' , 'global' );
2020-05-12 20:32:08 +02:00
if ( $settings_html ) {
2015-07-03 22:47:49 +02:00
echo '<h3>' . __ ( 'Global Settings' ) . '</h3>' ;
2010-01-30 00:21:33 +01:00
echo $settings_html ;
}
2020-05-12 20:32:08 +02:00
2010-01-30 00:21:33 +01:00
reset ( $blogs );
2015-07-03 22:47:49 +02:00
foreach ( $blogs as $user_blog ) {
2017-10-09 17:22:46 +02:00
switch_to_blog ( $user_blog -> userblog_id );
2017-12-01 00:11:00 +01:00
echo '<li>' ;
2015-07-03 22:47:49 +02:00
echo " <h3> { $user_blog -> blogname } </h3> " ;
2017-10-09 17:22:46 +02:00
2017-12-01 00:11:00 +01:00
$actions = " <a href=' " . esc_url ( home_url () ) . " '> " . __ ( 'Visit' ) . '</a>' ;
2017-10-09 17:22:46 +02:00
if ( current_user_can ( 'read' ) ) {
$actions .= " | <a href=' " . esc_url ( admin_url () ) . " '> " . __ ( 'Dashboard' ) . '</a>' ;
}
2015-07-03 22:47:49 +02:00
/**
2016-05-22 20:01:30 +02:00
* Filters the row links displayed for each site on the My Sites screen .
2015-07-03 22:47:49 +02:00
*
2017-08-01 22:44:43 +02:00
* @ since MU ( 3.0 . 0 )
2015-07-03 22:47:49 +02:00
*
2017-10-09 17:22:46 +02:00
* @ param string $actions The HTML site link markup .
2015-07-03 22:47:49 +02:00
* @ param object $user_blog An object containing the site data .
*/
2017-10-09 17:22:46 +02:00
$actions = apply_filters ( 'myblogs_blog_actions' , $actions , $user_blog );
2020-05-12 20:32:08 +02:00
2017-10-09 17:22:46 +02:00
echo " <p class='my-sites-actions'> " . $actions . '</p>' ;
2015-07-03 22:47:49 +02:00
/** This filter is documented in wp-admin/my-sites.php */
echo apply_filters ( 'myblogs_options' , '' , $user_blog );
2020-05-12 20:32:08 +02:00
2017-12-01 00:11:00 +01:00
echo '</li>' ;
2017-10-09 17:22:46 +02:00
restore_current_blog ();
2017-12-01 00:11:00 +01:00
}
?>
2015-07-03 22:47:49 +02:00
</ ul >
2015-07-04 06:01:26 +02:00
< ? php
if ( count ( $blogs ) > 1 || has_action ( 'myblogs_allblogs_options' ) || has_filter ( 'myblogs_options' ) ) {
2017-12-01 00:11:00 +01:00
?>
< input type = " hidden " name = " action " value = " updateblogsettings " />
< ? php
2015-07-04 06:01:26 +02:00
wp_nonce_field ( 'update-my-sites' );
submit_button ();
}
?>
2010-01-30 00:21:33 +01:00
</ form >
2011-11-17 19:52:58 +01:00
< ? php endif ; ?>
2010-01-30 00:21:33 +01:00
</ div >
< ? php
2020-02-06 07:33:11 +01:00
require_once ABSPATH . 'wp-admin/admin-footer.php' ;