WassUp Real Time Analytics - Version 1.8.5

Version Description

Download this release

Release Info

Developer michelem
Plugin Icon 128x128 WassUp Real Time Analytics
Version 1.8.5
Comparing to
See all releases

Code changes from version 1.8.4 to 1.8.5

Files changed (5) hide show
  1. css/wassup.css +8 -8
  2. lib/main.php +7 -6
  3. lib/upgrade.php +25 -7
  4. readme.txt +8 -3
  5. wassup.php +2 -2
css/wassup.css CHANGED
@@ -8,16 +8,16 @@
8
  padding: 1px 7px 3px;
9
  font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
10
  font-size: 13px;
11
- border:1px solid #d6d7d6;
12
- background: #efebef ; */
13
  /* background: #efebef url("images/menu-shadow-rtl.png") left top repeat-y; */
14
  -moz-border-radius: 5px 5px 0 0;
15
  -webkit-border-top-left-radius: 5px;
16
  -webkit-border-top-right-radius: 5px;
17
  -khtml-border-top-left-radius: 5px;
18
  -khtml-border-top-right-radius: 5px;
19
- border-top-right-radius: 5px;
20
- border-top-left-radius: 5px;
21
  }
22
  #wassup-wrap table { border-collapse: collapse; padding: 2px; }
23
  #wassup-wrap h2 {
@@ -137,9 +137,9 @@
137
  }
138
  div.main-tabs {
139
  margin: 10px auto 3px auto;
140
- padding: 2px 1px 1px;
141
  color: #445;
142
- background-color: #dedade;
143
  -moz-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
144
  -webkit-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
145
  box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
@@ -223,7 +223,7 @@ div.main-tabs {
223
  a.toggle-allcrono { width: 140px !important; }
224
  a.toggle-allcrono:hover, a.toggle-all:hover { background-color: #676767 !important; } */
225
  .sum-rec, .sum {
226
- margin: 0 0 2px;
227
  padding: 1px 0 0 !important;
228
  font-size: 11px;
229
  background-color: #f4f6f6;
@@ -659,7 +659,7 @@ ul.usage-title li { display: inline; list-style-type: none; }
659
  border-radius: 3px;
660
  -webkit-border-radius: 3px;
661
  -moz-border-radius: 3px;
662
- background-color: #dedade;
663
  list-style:none;
664
  -moz-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
665
  -webkit-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
8
  padding: 1px 7px 3px;
9
  font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
10
  font-size: 13px;
11
+ border-top: 3px solid #d6d7d6;
12
+ /* background: #efebef ; */
13
  /* background: #efebef url("images/menu-shadow-rtl.png") left top repeat-y; */
14
  -moz-border-radius: 5px 5px 0 0;
15
  -webkit-border-top-left-radius: 5px;
16
  -webkit-border-top-right-radius: 5px;
17
  -khtml-border-top-left-radius: 5px;
18
  -khtml-border-top-right-radius: 5px;
19
+ border-top-right-radius: 0px;
20
+ border-top-left-radius: 0px;
21
  }
22
  #wassup-wrap table { border-collapse: collapse; padding: 2px; }
23
  #wassup-wrap h2 {
137
  }
138
  div.main-tabs {
139
  margin: 10px auto 3px auto;
140
+ padding: 10px;
141
  color: #445;
142
+ background-color: #E0E0E0;
143
  -moz-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
144
  -webkit-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
145
  box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
223
  a.toggle-allcrono { width: 140px !important; }
224
  a.toggle-allcrono:hover, a.toggle-all:hover { background-color: #676767 !important; } */
225
  .sum-rec, .sum {
226
+ margin: 0 0 12px;
227
  padding: 1px 0 0 !important;
228
  font-size: 11px;
229
  background-color: #f4f6f6;
659
  border-radius: 3px;
660
  -webkit-border-radius: 3px;
661
  -moz-border-radius: 3px;
662
+ background-color: #E0E0E0;
663
  list-style:none;
664
  -moz-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
665
  -webkit-box-shadow: 0 0 3px rgba(24, 24, 30, 0.9);
lib/main.php CHANGED
@@ -800,10 +800,10 @@ function wAdd_GeoMarker($item_id, $lat, $lon, $markerHtml, $marker_icon, $pan=tr
800
  //return a location name formatted for wassup_spiaView from array argument
801
  //@since v1.8
802
  function wGetLocationname($geoip_rec=array()) {
803
- if (!empty($geoip_rec['country_name'])) {
804
- $location = $geoip_rec['country_name'].' ('.strtoupper($geoip_rec['country_code']).') City: '.$geoip_rec['city'];
805
- if ($geoip_rec['country_code'] == "us" && !empty($geoip_rec['region_name'])) {
806
- $location .= ', '.$geoip_rec['region_name'];
807
  }
808
  } else {
809
  $location = "Country: unknown, City: unknown";
@@ -850,7 +850,8 @@ function wGeolocateIP($ip) {
850
 
851
  $wassup_settings=get_option('wassup_settings');
852
  $wassup_agent = apply_filters('http_headers_useragent',"WassUp/".$wassup_settings['wassup_version']." - www.wpwp.org");
853
- $geourl = "http://freegeoip.net/json/$ip";
 
854
  $geoip = array('ip'=>$ip,'latitude'=>"",'longitude'=>"",'city'=>"",'country_code'=>"");
855
  $cache_table = (isset($wassup_settings['wassup_table'])?$wassup_settings['wassup_table']."_meta":$wpdb->prefix."_wassup_meta");
856
  if (!empty($ip)) {
@@ -1939,7 +1940,7 @@ class WassupItems {
1939
  } else {
1940
  $searchString = str_replace(array("%", "_"), array("\\%", "\\_"), trim($Search));
1941
  }
1942
- $searchParam = mysql_real_escape_string($searchString);
1943
 
1944
  // Create the Search portion of MySQL WHERE clause
1945
  $ss = sprintf(" AND (`ip` LIKE '%%%s%%' OR `hostname` LIKE '%%%s%%' OR `urlrequested` LIKE '%%%s%%' OR `agent` LIKE '%%%s%%' OR `referrer` LIKE '%%%s%%' OR `username` LIKE '%s%%' OR `comment_author` LIKE '%s%%')",
800
  //return a location name formatted for wassup_spiaView from array argument
801
  //@since v1.8
802
  function wGetLocationname($geoip_rec=array()) {
803
+ if (!empty($geoip_rec['country'])) {
804
+ $location = $geoip_rec['country'].' ('.strtoupper($geoip_rec['country_code']).') City: '.$geoip_rec['city'];
805
+ if ($geoip_rec['country_code'] == "us" && !empty($geoip_rec['region'])) {
806
+ $location .= ', '.$geoip_rec['region'];
807
  }
808
  } else {
809
  $location = "Country: unknown, City: unknown";
850
 
851
  $wassup_settings=get_option('wassup_settings');
852
  $wassup_agent = apply_filters('http_headers_useragent',"WassUp/".$wassup_settings['wassup_version']." - www.wpwp.org");
853
+ //$geourl = "http://freegeoip.net/json/$ip";
854
+ $geourl = "http://www.telize.com/geoip/$ip";
855
  $geoip = array('ip'=>$ip,'latitude'=>"",'longitude'=>"",'city'=>"",'country_code'=>"");
856
  $cache_table = (isset($wassup_settings['wassup_table'])?$wassup_settings['wassup_table']."_meta":$wpdb->prefix."_wassup_meta");
857
  if (!empty($ip)) {
1940
  } else {
1941
  $searchString = str_replace(array("%", "_"), array("\\%", "\\_"), trim($Search));
1942
  }
1943
+ $searchParam = esc_sql($searchString);
1944
 
1945
  // Create the Search portion of MySQL WHERE clause
1946
  $ss = sprintf(" AND (`ip` LIKE '%%%s%%' OR `hostname` LIKE '%%%s%%' OR `urlrequested` LIKE '%%%s%%' OR `agent` LIKE '%%%s%%' OR `referrer` LIKE '%%%s%%' OR `username` LIKE '%s%%' OR `comment_author` LIKE '%s%%')",
lib/upgrade.php CHANGED
@@ -17,6 +17,17 @@
17
  * @param none
18
  * @return boolean
19
  */
 
 
 
 
 
 
 
 
 
 
 
20
  function wassup_tableInstaller() {
21
  global $wpdb, $wassupversion, $wassup_options;
22
 
@@ -279,14 +290,16 @@ function wUpdateTable() {
279
  //# get the names of all indices
280
  $idx_names = array();
281
  $prev_key = ""; //names listed multiples times per columns in key
 
282
  if ($wrow_count > 1) {
283
- while ($wrow = mysql_fetch_array($wqryresult,MYSQL_ASSOC)) {
284
- if ($wrow["Column_name"]!= "id" && $wrow["Column_name"]!= "meta_id" && $wrow["Key_name"]!= $prev_key) {
285
- $idx_names[] = $wrow["Key_name"];
286
- }
287
- $prev_key = $wrow["Key_name"];
288
- } //end while
289
  } //end if wrow_count
 
290
  mysql_free_result($wqryresult);
291
  //# drop all the indices in $idx_names and drop temp table...
292
  //drop indices
@@ -380,7 +393,12 @@ function wUpdateTable() {
380
  //rebuild indices on 'wp_wassup' - this also optimizes
381
  //...could take a long time, so run in background in case of timeout
382
  ignore_user_abort(1);
383
- $wpdb->query("ALTER TABLE {$wassup_table} ADD KEY idx_wassup (wassup_id(32),`timestamp`)");
 
 
 
 
 
384
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (os)");
385
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (browser)");
386
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (`timestamp`)");
17
  * @param none
18
  * @return boolean
19
  */
20
+
21
+ function log_me($message) {
22
+ if ( WP_DEBUG === true ) {
23
+ if ( is_array($message) || is_object($message) ) {
24
+ error_log( print_r($message, true) );
25
+ } else {
26
+ error_log( $message );
27
+ }
28
+ }
29
+ }
30
+
31
  function wassup_tableInstaller() {
32
  global $wpdb, $wassupversion, $wassup_options;
33
 
290
  //# get the names of all indices
291
  $idx_names = array();
292
  $prev_key = ""; //names listed multiples times per columns in key
293
+
294
  if ($wrow_count > 1) {
295
+ while ($wrow = mysql_fetch_array($wqryresult,MYSQL_ASSOC)) {
296
+ if ($wrow["Column_name"]!= "id" && $wrow["Column_name"]!= "meta_id" && $wrow["Key_name"]!= $prev_key) {
297
+ $idx_names[] = $wrow["Key_name"];
298
+ }
299
+ $prev_key = $wrow["Key_name"];
300
+ } //end while
301
  } //end if wrow_count
302
+
303
  mysql_free_result($wqryresult);
304
  //# drop all the indices in $idx_names and drop temp table...
305
  //drop indices
393
  //rebuild indices on 'wp_wassup' - this also optimizes
394
  //...could take a long time, so run in background in case of timeout
395
  ignore_user_abort(1);
396
+
397
+ // Check if KEY not exists
398
+ if (!$wpdb->get_row("SHOW KEYS FROM {$wassup_table} WHERE Column_name='wassup_id' AND Key_name='idx_wassup'"))
399
+ {
400
+ $wpdb->query("ALTER TABLE {$wassup_table} ADD KEY idx_wassup (wassup_id(32),`timestamp`)");
401
+ }
402
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (os)");
403
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (browser)");
404
  $wpdb->query("ALTER TABLE {$wassup_table} ADD INDEX (`timestamp`)");
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: michelem, helened
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8
4
  Tags: tracker, tracking, statistics, analyze, web, realtime, stats, ajax, visitors, visits, online users, details, seo, admin, spy, visitors, widgets, widget, sidebar, monitor, stalker, detector, webmaster, tool, geolocation, chart, google!charts, spammers, exploits, injection, security, useragent, browser, spider, detection, pageviews
5
  Requires at least: 2.2
6
- Tested up to: 3.8
7
- Stable tag: 1.8.4
8
 
9
  Analyze your visitors traffic with real-time statistics, a lot of chronological information, charts, a sidebar widget.
10
 
@@ -144,11 +144,16 @@ IMPORTANT: WassUp is incompatible with page-based caching plugins such as "WP Su
144
 
145
  == Changelog ==
146
 
 
 
 
 
 
147
  = 1.8.4 =
148
  = Important compatibility, feature improvement upgrade =
149
  * Migrated Google Maps API code to support v3 (https://developers.google.com/maps/documentation/javascript/v2/v2tov3)
150
  * Removed Google Maps API key
151
- * Added some new locales
152
  * Added dashicon to admin menu (dashicons-chart-area)
153
  * Added donate button to WassUp menu
154
  * fixed CSS for WassUp menu
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8
4
  Tags: tracker, tracking, statistics, analyze, web, realtime, stats, ajax, visitors, visits, online users, details, seo, admin, spy, visitors, widgets, widget, sidebar, monitor, stalker, detector, webmaster, tool, geolocation, chart, google!charts, spammers, exploits, injection, security, useragent, browser, spider, detection, pageviews
5
  Requires at least: 2.2
6
+ Tested up to: 4.0
7
+ Stable tag: 1.8.5
8
 
9
  Analyze your visitors traffic with real-time statistics, a lot of chronological information, charts, a sidebar widget.
10
 
144
 
145
  == Changelog ==
146
 
147
+ = 1.8.5 =
148
+ = Important fix for SPY visitors view =
149
+ * Changed main API tool to get GEOIP data
150
+ * Small CSS changes
151
+
152
  = 1.8.4 =
153
  = Important compatibility, feature improvement upgrade =
154
  * Migrated Google Maps API code to support v3 (https://developers.google.com/maps/documentation/javascript/v2/v2tov3)
155
  * Removed Google Maps API key
156
+ * Added some new locales: English (United Kingdom) [complete], Persian [partial], Sinhalese [partial], Vietnamese [partial]
157
  * Added dashicon to admin menu (dashicons-chart-area)
158
  * Added donate button to WassUp menu
159
  * fixed CSS for WassUp menu
wassup.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: WassUp Real Time Analytics
4
  Plugin URI: http://www.wpwp.org
5
  Description: Analyze your visitors traffic with real-time stats, charts, and a lot of chronological information. Includes a sidebar widget of current online visitors and other statistics and an admin dashboard widget with chart. For Wordpress 2.2 or higher. Caution: don't upgrade when your site is busy!
6
- Version: 1.8.4
7
  Author: Michele Marcucci, Helene Duncker
8
  Author URI: http://www.michelem.org/
9
  Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
@@ -23,7 +23,7 @@ if (!defined('ABSPATH')) {
23
  }
24
  //wassup globals & constants
25
  global $wp_version, $current_user, $user_level, $wassup_options;
26
- $wassupversion="1.8.3.1";
27
  $wassup_cookie_value="";
28
  $wdebug_mode=false; //turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
29
  define('WASSUPDIR', dirname(__FILE__)); //new constant in v1.8
3
  Plugin Name: WassUp Real Time Analytics
4
  Plugin URI: http://www.wpwp.org
5
  Description: Analyze your visitors traffic with real-time stats, charts, and a lot of chronological information. Includes a sidebar widget of current online visitors and other statistics and an admin dashboard widget with chart. For Wordpress 2.2 or higher. Caution: don't upgrade when your site is busy!
6
+ Version: 1.8.5
7
  Author: Michele Marcucci, Helene Duncker
8
  Author URI: http://www.michelem.org/
9
  Disclaimer: Use at your own risk. No warranty expressed or implied is provided.
23
  }
24
  //wassup globals & constants
25
  global $wp_version, $current_user, $user_level, $wassup_options;
26
+ $wassupversion="1.8.5";
27
  $wassup_cookie_value="";
28
  $wdebug_mode=false; //turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
29
  define('WASSUPDIR', dirname(__FILE__)); //new constant in v1.8