PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.1-beta.2
Jetpack – WP Security, Backup, Speed, & Growth v16.1-beta.2
16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-stats-admin / src / class-dashboard.php
jetpack / jetpack_vendor / automattic / jetpack-stats-admin / src Last commit date
class-admin-post-list-column.php 1 month ago class-dashboard.php 9 months ago class-main.php 3 weeks ago class-notices.php 8 months ago class-odyssey-assets.php 3 weeks ago class-odyssey-config-data.php 2 months ago class-rest-controller.php 2 months ago class-wp-dashboard-odyssey-widget.php 2 years ago class-wpcom-client.php 3 months ago
class-dashboard.php
143 lines
1 <?php
2 /**
3 * A class that adds a stats dashboard to wp-admin.
4 *
5 * @package automattic/jetpack-stats-admin
6 */
7
8 namespace Automattic\Jetpack\Stats_Admin;
9
10 use Automattic\Jetpack\Stats\Options as Stats_Options;
11
12 /**
13 * Responsible for adding a stats dashboard to wp-admin.
14 *
15 * @package jetpack-stats-admin
16 */
17 class Dashboard {
18 /**
19 * Whether the class has been initialized
20 *
21 * @var boolean
22 */
23 private static $initialized = false;
24
25 /**
26 * Priority for the dashboard menu
27 * For Jetpack sites: Jetpack uses 998 and 'Admin_Menu' uses 1000, so we need to use 999.
28 * For simple site: the value is overriden in a child class with value 100000 to wait for all menus to be registered.
29 *
30 * @var int
31 */
32 protected $menu_priority = 999;
33
34 /**
35 * Init Stats dashboard.
36 */
37 public static function init() {
38 if ( ! self::$initialized ) {
39 self::$initialized = true;
40 ( new self() )->init_hooks();
41 }
42 }
43
44 /**
45 * Initialize the hooks.
46 */
47 public function init_hooks() {
48 self::$initialized = true;
49 // Jetpack uses 998 and 'Admin_Menu' uses 1000.
50 add_action( 'admin_menu', array( $this, 'add_wp_admin_menu' ), $this->menu_priority );
51 }
52
53 /**
54 * Add a "Stats" top-level admin menu.
55 *
56 * @return void
57 */
58 public function add_wp_admin_menu() {
59 /**
60 * Disable this menu for dashboard.wordpress.com because older versions of Jetpack need to fetch the old Stats UI.
61 *
62 * If this menu is registered, it will conflict with the back-end and break non-odyssey Stats.
63 */
64 if ( defined( 'IS_WPCOM' ) && IS_WPCOM && 120742 === get_current_blog_id() ) {
65 return;
66 }
67
68 $page_suffix = add_menu_page(
69 __( 'Stats', 'jetpack-stats-admin' ),
70 _x( 'Stats', 'product name shown in menu', 'jetpack-stats-admin' ),
71 'view_stats',
72 'stats',
73 array( $this, 'render' ),
74 'dashicons-chart-bar',
75 2
76 );
77
78 if ( $page_suffix ) {
79 add_action( 'load-' . $page_suffix, array( $this, 'admin_init' ) );
80 }
81 }
82
83 /**
84 * Override render funtion
85 */
86 public function render() {
87 // Record the number of views of the stats dashboard on the initial several loads for the purpose of showing feedback notice.
88 $views = intval( Stats_Options::get_option( 'views' ) ) + 1;
89 if ( $views <= Notices::VIEWS_TO_SHOW_FEEDBACK ) {
90 Stats_Options::set_option( 'views', $views );
91 }
92
93 ?>
94 <div id="wpcom" class="jp-stats-dashboard" style="min-height: calc(100vh - 100px);">
95 <div class="hide-if-js"><?php esc_html_e( 'Your Jetpack Stats dashboard requires JavaScript to function properly.', 'jetpack-stats-admin' ); ?></div>
96 <div class="hide-if-no-js" style="height: 100%">
97 <img
98 class="jp-stats-dashboard-loading-spinner"
99 width="32"
100 height="32"
101 style="position: absolute; left: 50%; top: 50%;"
102 alt=<?php echo esc_attr( __( 'Loading', 'jetpack-stats-admin' ) ); ?>
103 src="//en.wordpress.com/i/loading/loading-64.gif"
104 />
105 </div>
106 </div>
107 <script>
108 jQuery(document).ready(function($) {
109 // Load SVG sprite.
110 $.get("https://widgets.wp.com/odyssey-stats/common/gridicons-506499ddac13811fee8e.svg", function(data) {
111 var div = document.createElement("div");
112 div.innerHTML = new XMLSerializer().serializeToString(data.documentElement);
113 div.style = 'display: none';
114 document.body.insertBefore(div, document.body.childNodes[0]);
115 });
116 // we intercept on all anchor tags and change it to hashbang style.
117 $("#wpcom").on('click', 'a', function (e) {
118 const link = e && e.currentTarget && e.currentTarget.attributes && e.currentTarget.attributes.href && e.currentTarget.attributes.href.value;
119 if( link && link.startsWith( '/stats' ) ) {
120 location.hash = `#!${link}`;
121 return false;
122 }
123 });
124 });
125 </script>
126 <?php
127 }
128
129 /**
130 * Initialize the admin resources.
131 */
132 public function admin_init() {
133 add_action( 'admin_enqueue_scripts', array( $this, 'load_admin_scripts' ) );
134 }
135
136 /**
137 * Load the admin scripts.
138 */
139 public function load_admin_scripts() {
140 ( new Odyssey_Assets() )->load_admin_scripts( 'jp-stats-dashboard', 'build.min', array( 'config_variable_name' => 'jetpackStatsOdysseyAppConfigData' ) );
141 }
142 }
143