You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
4.8 KiB

<?php
/**
* Class WP_Statistics_Network_Admin
*/
class WP_Statistics_Network_Admin {
/**
* This function adds the primary menu to WordPress network.
*/
static function menu() {
global $WP_Statistics;
// Get the read/write capabilities required to view/manage the plugin as set by the user.
$read_cap = wp_statistics_validate_capability(
$WP_Statistics->get_option( 'read_capability', 'manage_options' )
);
$manage_cap = wp_statistics_validate_capability(
$WP_Statistics->get_option( 'manage_capability', 'manage_options' )
);
// Add the top level menu.
add_menu_page(
__( 'Statistics', 'wp-statistics' ),
__( 'Statistics', 'wp-statistics' ),
$read_cap,
WP_Statistics::$reg['main-file'],
'WP_Statistics_Network_Admin::overview',
'dashicons-chart-pie'
);
// Add the sub items.
add_submenu_page(
WP_Statistics::$reg['main-file'],
__( 'Overview', 'wp-statistics' ),
__( 'Overview', 'wp-statistics' ),
$read_cap,
WP_Statistics::$reg['main-file'],
'WP_Statistics_Network_Admin::overview'
);
$count = 0;
$sites = $WP_Statistics->get_wp_sites_list();
foreach ( $sites as $blog_id ) {
$details = get_blog_details( $blog_id );
add_submenu_page(
WP_Statistics::$reg['main-file'],
$details->blogname,
$details->blogname,
$manage_cap,
'wp_statistics_blogid_' . $blog_id,
'WP_Statistics_Network_Admin::goto_blog'
);
$count ++;
if ( $count > 15 ) {
break;
}
}
}
/**
* Network Overview
*/
static function overview() {
global $WP_Statistics;
?>
<div id="wrap">
<br/>
<table class="widefat wp-list-table" style="width: auto;">
<thead>
<tr>
<th style='text-align: left'><?php _e( 'Site', 'wp-statistics' ); ?></th>
<th style='text-align: left'><?php _e( 'Options', 'wp-statistics' ); ?></th>
</tr>
</thead>
<tbody>
<?php
$i = 0;
$options = array(
__( 'Overview', 'wp-statistics' ) => WP_Statistics::$page['overview'],
__( 'Hits', 'wp-statistics' ) => WP_Statistics::$page['hits'],
__( 'Online', 'wp-statistics' ) => WP_Statistics::$page['online'],
__( 'Referrers', 'wp-statistics' ) => WP_Statistics::$page['referrers'],
__( 'Search Words', 'wp-statistics' ) => WP_Statistics::$page['words'],
__( 'Searched Phrases', 'wp-statistics' ) => WP_Statistics::$page['searched-phrases'],
__( 'Searches', 'wp-statistics' ) => WP_Statistics::$page['searches'],
__( 'Pages', 'wp-statistics' ) => WP_Statistics::$page['pages'],
__( 'Visitors', 'wp-statistics' ) => WP_Statistics::$page['visitors'],
__( 'Countries', 'wp-statistics' ) => WP_Statistics::$page['countries'],
__( 'Browsers', 'wp-statistics' ) => WP_Statistics::$page['browser'],
__( 'Top Visitors Today', 'wp-statistics' ) => WP_Statistics::$page['top-visitors'],
__( 'Exclusions', 'wp-statistics' ) => WP_Statistics::$page['exclusions'],
__( 'Optimization', 'wp-statistics' ) => WP_Statistics::$page['optimization'],
__( 'Settings', 'wp-statistics' ) => WP_Statistics::$page['settings'],
);
$sites = $WP_Statistics->get_wp_sites_list();
foreach ( $sites as $blog_id ) {
$details = get_blog_details( $blog_id );
$url = get_admin_url( $blog_id, '/' ) . 'admin.php?page=';
$alternate = '';
if ( $i % 2 == 0 ) {
$alternate = ' class="alternate"';
}
?>
<tr<?php echo $alternate; ?>>
<td style='text-align: left'>
<?php echo $details->blogname; ?>
</td>
<td style='text-align: left'>
<?php
$options_len = count( $options );
$j = 0;
foreach ( $options as $key => $value ) {
echo '<a href="' . $url . $value . '">' . $key . '</a>';
$j ++;
if ( $j < $options_len ) {
echo ' - ';
}
}
?>
</td>
</tr>
<?php
$i ++;
}
?>
</tbody>
</table>
</div>
<?php
}
/**
* Goto Network Blog
*/
static function goto_blog() {
global $plugin_page;
$blog_id = str_replace( 'wp_statistics_blogid_', '', $plugin_page );
$details = get_blog_details( $blog_id );
// Get the admin url for the current site.
$url = get_admin_url( $blog_id ) . '/admin.php?page=' . WP_Statistics::$page['overview'];
echo "<script>window.location.href = '$url';</script>";
}
}