PluginProbe
Clicky Analytics / 2.2
Clicky Analytics v2.2
trunk 1.1 1.1.1 1.2 1.2.1 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5 1.5.1 1.5.2 1.6 1.6.1 All 40 releases
clicky-analytics / admin / setup.php

setup.php in Clicky Analytics 2.2, at admin/setup.php

295 lines 13.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Author: Alin Marcu
4 * Author URI: https://deconf.com
5 * Copyright 2013 Alin Marcu
6 * License: GPLv2 or later
7 * License URI: http://www.gnu.org/licenses/gpl-2.0.html
8 */
9
10 // Exit if accessed directly
11 if ( ! defined( 'ABSPATH' ) )
12 exit();
13
14 if ( ! class_exists( 'CAWP_Backend_Setup' ) ) {
15
16 final class CAWP_Backend_Setup {
17
18 private $cawp;
19
20 public function __construct() {
21 $this->cawp = CAWP();
22 /**
23 * Styles & Scripts
24 */
25 add_action( 'admin_enqueue_scripts', array( $this, 'load_styles_scripts' ) );
26 /**
27 * Site Menu
28 */
29 add_action( 'admin_menu', array( $this, 'site_menu' ) );
30 /**
31 * Add Custom Dashboard
32 */
33 add_action( 'admin_menu', array( $this, 'dashboard_menu' ) );
34 /**
35 * Setup link
36 */
37 add_filter( "plugin_action_links_" . plugin_basename( CAWP_DIR . 'cawp.php' ), array( $this, 'setup_link' ) );
38 /**
39 * Updated admin notice
40 */
41 add_action( 'admin_notices', array( $this, 'admin_notice' ) );
42 }
43
44 /**
45 * Add Site Menu
46 */
47 public function site_menu() {
48 global $wp_version;
49 if ( current_user_can( 'manage_options' ) ) {
50 include ( CAWP_DIR . 'admin/settings.php' );
51 add_menu_page( __( "Clicky Analytics", 'clicky-analytics' ), __( "Clicky Analytics", 'clicky-analytics' ), 'manage_options', 'cawp_setup', array( 'CAWP_Settings', 'setup' ), 'dashicons-analytics' );
52 add_submenu_page( 'cawp_setup', __( "Setup", 'clicky-analytics' ), __( "Setup", 'clicky-analytics' ), 'manage_options', 'cawp_setup', array( 'CAWP_Settings', 'setup' ) );
53 add_submenu_page( 'cawp_setup', __( "Settings", 'clicky-analytics' ), __( "Settings", 'clicky-analytics' ), 'manage_options', 'cawp_settings', array( 'CAWP_Settings', 'settings' ) );
54 add_submenu_page( 'cawp_setup', __( "Debug", 'clicky-analytics' ), __( "Debug", 'clicky-analytics' ), 'manage_options', 'cawp_errors_debugging', array( 'CAWP_Settings', 'errors_debugging' ) );
55 }
56 }
57 /**
58 * Add Dashboard Menu
59 */
60 public function dashboard_menu(){
61 if ( current_user_can( 'manage_options' ) && $this->cawp->config->options['sitekey'] && $this->cawp->config->options['siteid'] ) {
62 add_dashboard_page( __( 'Clicky Analytics', 'clicky-analytics' ), __( 'Clicky Analytics', 'clicky' ), 'manage_options', 'clicky_analytics', array( $this, 'dashboard_page' ) );
63 }
64 }
65 /**
66 * Add Custom Dashboard
67 */
68 public function dashboard_page() {
69 $siteid = $this->cawp->config->options['siteid'];
70 $sitekey = $this->cawp->config->options['sitekey'];
71 ?>
72 <br />
73 <iframe id="clicky-analytics" style="margin-left: 20px; width: 100%; height: 1000px;" src="https://clicky.com/stats/wp-iframe?site_id=<?php echo esc_attr($siteid); ?>&sitekey=<?php echo esc_attr($sitekey); ?>"></iframe>
74 <?php
75 }
76 /**
77 * Styles & Scripts conditional loading (based on current URI)
78 *
79 * @param
80 * $hook
81 */
82 public function load_styles_scripts( $hook ) {
83 $new_hook = explode( '_page_', $hook );
84
85 if ( isset( $new_hook[1] ) ) {
86 $new_hook = '_page_' . $new_hook[1];
87 } else {
88 $new_hook = $hook;
89 }
90 /**
91 * CAWP main stylesheet
92 */
93 wp_enqueue_style( 'cawp', CAWP_URL . 'admin/css/cawp' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
94 /**
95 * CAWP UI
96 */
97 if ( CAWP_Tools::get_cache( 'capi_errors' ) ) {
98 $ed_bubble = '!';
99 } else {
100 $ed_bubble = '';
101 }
102
103 wp_enqueue_script( 'cawp-backend-ui', plugins_url( 'js/ui' . CAWP_Tools::script_debug_suffix() . '.js', __FILE__ ), array( 'jquery' ), CAWP_CURRENT_VERSION, true );
104
105 /* @formatter:off */
106 wp_localize_script( 'cawp-backend-ui', 'cawp_ui_data', array(
107 'ajaxurl' => admin_url( 'admin-ajax.php' ),
108 'security' => wp_create_nonce( 'cawp_dismiss_notices' ),
109 'ed_bubble' => $ed_bubble,
110 )
111 );
112 /* @formatter:on */
113
114 $properties = false;
115
116 /**
117 * Main Dashboard Widgets Styles & Scripts
118 */
119 $widgets_hooks = array( 'index.php' );
120
121 if ( in_array( $new_hook, $widgets_hooks ) ) {
122 if ( CAWP_Tools::check_roles( $this->cawp->config->options['access_back'] ) && $this->cawp->config->options['dashboard_widget'] ) {
123
124 wp_enqueue_style( 'cawp-nprogress', CAWP_URL . 'common/nprogress/nprogress' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
125
126 wp_enqueue_style( 'cawp-daterangepicker', CAWP_URL . 'common/daterangepicker/daterangepicker' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
127
128 wp_enqueue_style( 'cawp-backend-item-reports', CAWP_URL . 'admin/css/admin-widgets' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
129
130 wp_register_script( 'googlecharts', 'https://www.gstatic.com/charts/loader.js', array(), null );
131
132 wp_enqueue_script( 'cawp-nprogress', CAWP_URL . 'common/nprogress/nprogress' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
133
134 wp_enqueue_script( 'cawp-moment', CAWP_URL . 'common/daterangepicker/moment' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
135
136 wp_enqueue_script( 'cawp-daterangepicker', CAWP_URL . 'common/daterangepicker/daterangepicker' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
137
138 wp_enqueue_script( 'cawp-backend-dashboard-reports', CAWP_URL . 'common/js/reports' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery', 'googlecharts', 'cawp-nprogress', 'cawp-moment', 'cawp-daterangepicker', 'jquery-ui-core', 'jquery-ui-position' ), CAWP_CURRENT_VERSION, true );
139
140 /* @formatter:off */
141
142 wp_localize_script( 'cawp-backend-dashboard-reports', 'cawpItemData', array(
143 'ajaxurl' => admin_url( 'admin-ajax.php' ),
144 'security' => wp_create_nonce( 'cawp_backend_item_reports' ),
145 'reportList' => array(
146 'visitors' => __( "Visitors", 'clicky-analytics' ),
147 'actions-pageviews' => __( "Pageviews", 'clicky-analytics' ),
148 'time-average' => __( "Time Average", 'clicky-analytics' ),
149 'bounce-rate' => __( "Bounce Rate", 'clicky-analytics' ),
150 'locations' => __( "Locations", 'clicky-analytics' ),
151 'pages' => __( "Pages", 'clicky-analytics' ),
152 'referrers' => __( "Referrers", 'clicky-analytics' ),
153 ),
154 'i18n' => array(
155 __( "A JavaScript Error is blocking plugin resources!", 'clicky-analytics' ), //0
156 __( "Search ...", 'clicky-analytics' ),
157 __( "Download", 'clicky-analytics' ),
158 __( "Clicky Analytics", 'clicky-analytics' ),
159 __( "", 'clicky-analytics' ),
160 __( "Visitors", 'clicky-analytics' ),
161 __( "Pageviews", 'clicky-analytics' ),
162 __( "Time Average", 'clicky-analytics' ),
163 __( "Bounce Rate", 'clicky-analytics' ),
164 __( "Server Errors", 'clicky-analytics' ),
165 __( "Not Found", 'clicky-analytics' ),
166 __( "Invalid response", 'clicky-analytics' ),
167 __( "Processing data, please check again in a few days", 'clicky-analytics' ),
168 __( "This report is unavailable", 'clicky-analytics' ),
169 __( "report generated by", 'clicky-analytics' ), //14
170 __( "This plugin needs an authorization:", 'clicky-analytics' ) . ' <a href="' . menu_page_url( 'cawp_settings', false ) . '">' . __( "authorize the plugin", 'clicky-analytics' ) . '</a>.',
171 ),
172 'colorVariations' => CAWP_Tools::variations( $this->cawp->config->options['theme_color'] ),
173 'mapsApiKey' => apply_filters( 'cawp_maps_api_key', $this->cawp->config->options['maps_api_key'] ),
174 'language' => get_bloginfo( 'language' ),
175 'propertyList' => $properties,
176 'scope' => 'admin-widgets',
177 )
178
179 );
180 /* @formatter:on */
181 }
182 }
183 /**
184 * Posts/Pages List Styles & Scripts
185 */
186 $contentstats_hooks = array( 'edit.php' );
187 if ( in_array( $hook, $contentstats_hooks ) ) {
188 if ( CAWP_Tools::check_roles( $this->cawp->config->options['access_back'] ) && $this->cawp->config->options['backend_item_reports'] ) {
189
190 wp_enqueue_style( 'cawp-nprogress', CAWP_URL . 'common/nprogress/nprogress' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
191
192 wp_enqueue_style( 'cawp-daterangepicker', CAWP_URL . 'common/daterangepicker/daterangepicker' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
193
194 wp_enqueue_style( 'cawp-backend-item-reports', CAWP_URL . 'admin/css/item-reports' . CAWP_Tools::script_debug_suffix() . '.css', null, CAWP_CURRENT_VERSION );
195
196 wp_enqueue_style( "wp-jquery-ui-dialog" );
197
198 wp_register_script( 'googlecharts', 'https://www.gstatic.com/charts/loader.js', array(), null );
199
200 wp_enqueue_script( 'cawp-nprogress', CAWP_URL . 'common/nprogress/nprogress' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
201
202 wp_enqueue_script( 'cawp-moment', CAWP_URL . 'common/daterangepicker/moment' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
203
204 wp_enqueue_script( 'cawp-daterangepicker', CAWP_URL . 'common/daterangepicker/daterangepicker' . CAWP_Tools::script_debug_suffix() . '.js', array( 'jquery' ), CAWP_CURRENT_VERSION );
205
206 wp_enqueue_script( 'cawp-backend-item-reports', CAWP_URL . 'common/js/reports' . CAWP_Tools::script_debug_suffix() . '.js', array( 'cawp-nprogress', 'googlecharts', 'cawp-moment', 'cawp-daterangepicker', 'jquery', 'jquery-ui-dialog' ), CAWP_CURRENT_VERSION, true );
207
208 /* @formatter:off */
209 wp_localize_script( 'cawp-backend-item-reports', 'cawpItemData', array(
210 'ajaxurl' => admin_url( 'admin-ajax.php' ),
211 'security' => wp_create_nonce( 'cawp_backend_item_reports' ),
212 'reportList' => array(
213 'visitors' => __( "Visitors", 'clicky-analytics' ),
214 'actions-pageviews' => __( "Pageviews", 'clicky-analytics' ),
215 'time-average' => __( "Time Average", 'clicky-analytics' ),
216 'bounce-rate' => __( "Bounce Rate", 'clicky-analytics' ),
217 'locations' => __( "Locations", 'clicky-analytics' ),
218 'referrers' => __( "Referrers", 'clicky-analytics' ),
219 ),
220 'i18n' => array(
221 __( "A JavaScript Error is blocking plugin resources!", 'clicky-analytics' ), //0
222 __( "", 'clicky-analytics' ),
223 __( "Download", 'clicky-analytics' ),
224 __( "", 'clicky-analytics' ),
225 __( "", 'clicky-analytics' ),
226 __( "Visitors", 'clicky-analytics' ),
227 __( "Pageviews", 'clicky-analytics' ),
228 __( "Time Average", 'clicky-analytics' ),
229 __( "Bounce Rate", 'clicky-analytics' ),
230 __( "Server Errors", 'clicky-analytics' ),
231 __( "Not Found", 'clicky-analytics' ),
232 __( "Invalid response", 'clicky-analytics' ),
233 __( "Processing data, please check again in a few days", 'clicky-analytics' ),
234 __( "This report is unavailable", 'clicky-analytics' ),
235 __( "report generated by", 'clicky-analytics' ), //14
236 __( "This plugin needs an authorization:", 'clicky-analytics' ) . ' <a href="' . menu_page_url( 'cawp_settings', false ) . '">' . __( "authorize the plugin", 'clicky-analytics' ) . '</a>.',
237 ),
238 'colorVariations' => CAWP_Tools::variations( $this->cawp->config->options['theme_color'] ),
239 'mapsApiKey' => apply_filters( 'cawp_maps_api_key', $this->cawp->config->options['maps_api_key'] ),
240 'language' => get_bloginfo( 'language' ),
241 'propertyList' => false,
242 'scope' => 'admin-item',
243 )
244 );
245 /* @formatter:on */
246 }
247 }
248 /**
249 * Settings Styles & Scripts
250 */
251 $settings_hooks = array( '_page_cawp_setup', '_page_cawp_settings', '_page_cawp_frontend_settings', '_page_cawp_errors_debugging' );
252
253 if ( in_array( $new_hook, $settings_hooks ) ) {
254 wp_enqueue_style( 'wp-color-picker' );
255 wp_enqueue_script( 'wp-color-picker' );
256 wp_enqueue_script( 'wp-color-picker-script-handle', plugins_url( 'js/wp-color-picker-script' . CAWP_Tools::script_debug_suffix() . '.js', __FILE__ ), array( 'wp-color-picker' ), false, true );
257 wp_enqueue_script( 'cawp-settings', plugins_url( 'js/settings' . CAWP_Tools::script_debug_suffix() . '.js', __FILE__ ), array( 'jquery' ), CAWP_CURRENT_VERSION, true );
258 }
259 }
260
261 /**
262 * Add "Settings" link in Plugins List
263 *
264 * @param
265 * $links
266 * @return array
267 */
268 public function setup_link( $links ) {
269 $setup_link = '<a href="' . esc_url( get_admin_url( null, 'admin.php?page=cawp_setup' ) ) . '">' . __( "Settings", 'clicky-analytics' ) . '</a>';
270 array_unshift( $links, $setup_link );
271 return $links;
272 }
273
274 /**
275 * Add an admin notice after a manual or atuomatic update
276 */
277 function admin_notice() {
278 $currentScreen = get_current_screen();
279
280 if ( ! current_user_can( 'manage_options' ) || strpos( $currentScreen->base, '_cawp_' ) === false ) {
281 return;
282 }
283
284 if ( get_option( 'cawp_got_updated' ) ) :
285 ?>
286 <div id="cawp-notice" class="notice is-dismissible">
287 <p><?php echo sprintf( __('Clicky Analytics has been updated to version %s.', 'clicky-analytics' ), CAWP_CURRENT_VERSION).' '.sprintf( __('For details, check out %1$s.', 'clicky-analytics' ), sprintf(' <a href="https://deconf.com/clicky-analytics-dashboard-wordpress/">%s</a>', __('the plugin documentation', 'clicky-analytics') ) ); ?></p>
288 </div>
289 <?php
290 endif;
291
292 }
293 }
294 }
295