Version Description
- Urgent bugfix upgrade. DO NOT UPGRADE when your site busy! Read installation instructions for safe upgrade instructions.
=
Download this release
Release Info
Developer | michelem |
Plugin | WassUp Real Time Analytics |
Version | 1.9.2 |
Comparing to | |
See all releases |
Code changes from version 1.9.1 to 1.9.2
- README.md +0 -257
- css/wassup.css +0 -2
- img/loadingAnimation.gif +0 -0
- js/thickbox/loadingAnimation.gif +0 -0
- js/thickbox/thickbox.js +0 -1
- language/wassup.pot +699 -691
- lib/action.php +3 -9
- lib/akismet.class.php +6 -13
- lib/compatibility.php +21 -15
- lib/main.php +10 -16
- lib/settings.php +9 -13
- lib/uadetector.class.php +3 -10
- lib/upgrade.php +8 -15
- lib/wassup.class.php +23 -27
- lib/wassupadmin.php +35 -31
- readme.txt +47 -42
- wassup.php +405 -303
- widgets/widget_functions.php +6 -13
- widgets/widgets.php +3 -10
README.md
DELETED
@@ -1,257 +0,0 @@
|
|
1 |
-
# WassUp Real Time Analytics for WordPress
|
2 |
-
Contributors: michelem, helened
|
3 |
-
Donate link: [donate](https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=michele%40befree%2eit&item_name=WassUp&no_shipping=0&no_note=1&tax=0¤cy_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8)
|
4 |
-
Tags: analytics, counter, online, seo, statistics, stats, tracker, traffic, trends, user, visitor, web
|
5 |
-
Requires at least: WordPress 4.0
|
6 |
-
Tested up to: 4.6.1
|
7 |
-
Stable tag: 1.9.1
|
8 |
-
License: GPLv2 or later
|
9 |
-
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
-
|
11 |
-
#### Analyze your website traffic with accurate, real-time stats, live views, visitor counts, top stats, IP geolocation, customizable tracking, and more.
|
12 |
-
-----
|
13 |
-
## Description
|
14 |
-
|
15 |
-
WassUp is a Wordpress plugin to analyze your visitors traffic with accurate, real-time stats, lots of detailed chronological information, customizable tracking, live views, visitor and pageview counts, top stats, charts, IP geolocation, map, two aside widgets, and a dashboard widget.
|
16 |
-
|
17 |
-
Wassup does in-depth visitor tracking and shows you incredible details about your site's latest hits...more than you can get from almost any other single plugin. It is very useful for SEO and statistics maniacs who want to see accurate, up-to-date stats displayed in a straightforward, easy to understand manner.
|
18 |
-
|
19 |
-
The aim of WassUp is the timely knowledge of what your visitors do when they surf your site. It is not intended to show grouped statistics over preset, long-term time periods like visitors per month, pageviews per quarter, and so on (there are many others tools to better gain that, like Google Analytics). WassUp's flexible, easy-to-read views are the best for learning the details about your visitors' latest activities. With it's customizable filters and search capability, you can drill deeply into the data to learn even more about specific visitors, visitor types, etc.
|
20 |
-
|
21 |
-
### Detailed Specs:
|
22 |
-
#### WassUp comes with 4 admin screen panels for viewing your visitors' activities and for customizing those views
|
23 |
-
* There is a fancy "Visitors Details" screen that lets you to see almost everything about your visitors and what they do on your site and that includes search capability, view filters, plus a chart and top stats summary.
|
24 |
-
* There is an ajax "Spy View" screen (like Digg Spy) that lets you monitor your visitors live, with optional geolocation on a Google!maps world map.
|
25 |
-
* There is a "Current Visitors Online" screen that shows a summary of your online visitors in real-time.
|
26 |
-
* There is an "Options" panel with lots of customizable settings for WassUp.
|
27 |
-
|
28 |
-
There is a nice Dashboard widget that shows a line chart of hits over time (24 hours default) and a count of current visitors online and their latest activities.
|
29 |
-
|
30 |
-
#### WassUp comes with two useful sidebar Widgets that lets you display your site's latest data to your visitors
|
31 |
-
* The "Online" widget shows counts of current visitors online and includes options to display logged-in usernames and country flags.
|
32 |
-
* The "Top Stats" widgets lets you display trending or timed top items about your site based on the latest stats. You can list top search engine keywords, top external referrers, top url requests, top articles, top browsers, top OSes, and more.
|
33 |
-
* The widgets are fully customizable.
|
34 |
-
|
35 |
-
#### WassUp's advanced tracking features can:
|
36 |
-
* Distinguish registered users from anonymous visitors, and administrators from other registered users.
|
37 |
-
* Identify and label new browsers, robots, and feed readers, heuristically.
|
38 |
-
* Track page requests that generate 404 (not found) redirects.
|
39 |
-
* Detect some spiders that pretend to be regular visitors/browsers.
|
40 |
-
* Expose spam and malware activity such as hack attempts, script injection, and xss exploit attempts.¹
|
41 |
-
|
42 |
-
WassUp works with two anti-spam functions to detect and omit (if you want) referrers spammers and comment spammers. It can also detect and omit malware activity such as unauthorized users' login attempts, script injection, and xss exploit attempts.
|
43 |
-
|
44 |
-
For people with database size limitations, WassUp has a few options to manage the database table growth: you can empty it; you can delete old records automatically; and you can set a warning notice for when it exceeds a preset size limit.
|
45 |
-
|
46 |
-
#### WassUp gives a detailed chronology of your hits with a lot of information for each single user session:
|
47 |
-
* ip / hostname
|
48 |
-
* referrer
|
49 |
-
* spider
|
50 |
-
* search engines used
|
51 |
-
* keywords
|
52 |
-
* SERP (search engine result page)
|
53 |
-
* operating system / language / browser
|
54 |
-
* pages viewed (chronologically and per user session)
|
55 |
-
* complete user agent
|
56 |
-
* name of user logged in
|
57 |
-
* name of comment's author
|
58 |
-
* spam and hack attempts
|
59 |
-
|
60 |
-
#### Wassup admin console has flexible view filters that show:
|
61 |
-
* records by time period
|
62 |
-
* record count per page
|
63 |
-
* records by entry type (spider, users logged in, comment authors, search engine, referrer)
|
64 |
-
* search by keyword
|
65 |
-
* expand/collapse informations (with ajax support)
|
66 |
-
* usage chart (Google!chart)
|
67 |
-
* top stats lists with aggregate data (top queries, requests, os, browsers)
|
68 |
-
|
69 |
-
#### There are many options to customize how WassUp tracks and displays data:
|
70 |
-
* Enable/Disable recording (tracking)
|
71 |
-
* Screen refresh frequency (minutes)
|
72 |
-
* Screen resolution (browser width)
|
73 |
-
* User permission levels
|
74 |
-
* Top stats selections
|
75 |
-
* Record or not logged-in users
|
76 |
-
* Record or not spiders and bots
|
77 |
-
* Record or not exploit attempts
|
78 |
-
* Record or not comment spammers
|
79 |
-
* Record or not referrer spammers
|
80 |
-
* registered users to exclude from recording
|
81 |
-
* IP or hostname to exclude from recording
|
82 |
-
* Email alert for table growth
|
83 |
-
* Auto delete of old records
|
84 |
-
|
85 |
-
### IMPORTANT NOTICES
|
86 |
-
* To run Wassup in Wordpress 2.2 - 3.7, you must install the full copy of Wassup with backward-compatibility features available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
|
87 |
-
* WassUp is incompatible with static page caching plugins such as "WP Super-Cache"
|
88 |
-
* ¹WassUp is NOT a security plugin. It does not block unwanted visitors nor protect your site from malware attempts. You need a separate security plugin for that
|
89 |
-
|
90 |
-
## Screenshots
|
91 |
-
1. Wassup - Visitor Details view.
|
92 |
-
2. Wassup - SPY Visitors view.
|
93 |
-
|
94 |
-
You can find more screenshots at [http://www.wpwp.org](http://www.wpwp.org)
|
95 |
-
|
96 |
-
## Installation
|
97 |
-
|
98 |
-
### Installation
|
99 |
-
A. If your Wordpress setup is up-to-date, you can install this plugin automatically from Wordpress admin panel:
|
100 |
-
1. Navigate to Plugins >> `Add New`
|
101 |
-
2. Type "WassUp" plugin name in the "Search Plugins" box.
|
102 |
-
3. Locate "Wassup Real-Time Analytics" and click `Install Now`
|
103 |
-
4. Activate it and you are done!
|
104 |
-
|
105 |
-
B. If you prefer to install the plugin manually or you are running an older version of Wordpress, download the latest full release of WassUp (Real-Time Analytics) plugin directly from [gitHub.com/michelem09/wassup/releases/](https://github.com/michelem09/wassup/releases/) and save onto your local computer
|
106 |
-
|
107 |
-
* If available, use Wordpress' `Upload Plugin` option in the plugins panel to complete your install:
|
108 |
-
1. Navigate to Plugins panel >> `Add New` >> `Upload Plugin`
|
109 |
-
2. Click `Browse`, then find and select the plugin zip file that you downloaded
|
110 |
-
3. Click `Install Now`
|
111 |
-
4. Activate WassUp plugin and you are done!
|
112 |
-
|
113 |
-
* Otherwise, unpack the plugin's zip or gz file with your preferred unzip/untar program or use the command line: `tar xzvf wassup.tar.gz` (linux), then follow these steps to complete your install:
|
114 |
-
1. Upload the entire "wassup" folder into your `/wp-content/plugins` directory on your Wordpress host using their Cpanel File manager or an ftp client software
|
115 |
-
2. Login to Wordpress admin panel and navigate to Plugins page
|
116 |
-
3. Activate WassUp plugin and you are done!
|
117 |
-
|
118 |
-
-----
|
119 |
-
### Upgrading**
|
120 |
-
|
121 |
-
Check your current visitors count under WassUp >>Current Visitors Online panel. If your site is busy, STOP! Don't upgrade. Wait until there are no visitors or follow the "Safe Upgrade Instructions" below.
|
122 |
-
|
123 |
-
A. If your Wordpress setup is up-to-date, you can upgrade this plugin automatically from Wordpress admin panel:
|
124 |
-
|
125 |
-
1. Navigate to "Plugins" page, and under WassUp plugin name, click the `Update Now` link.
|
126 |
-
|
127 |
-
B. If you prefer to manually upgrade OR you are running an older version of Wordpress, follow these instructions:
|
128 |
-
|
129 |
-
1. Deactivate WassUp plugin under Wordpress admin panel >>Plugins page
|
130 |
-
2. Manually delete the "wassup" folder from your plugins directory (`/wp-content/plugins/`) on your Wordpress host using their CPanel File manager or with an ftp client software. Do NOT click the `delete` link in Wordpress.
|
131 |
-
3. Download the latest full release of Wassup Real-Time Analytics directly from [gitHub.com/michelem09/wassup/releases/](https://github.com/michelem09/wassup/releases/) and save onto your local computer.
|
132 |
-
4. Then follow the manual install instructions in section B:i-iv above.
|
133 |
-
|
134 |
-
|
135 |
-
### **IMPORTANT Safe Upgrade Instructions
|
136 |
-
|
137 |
-
To safely upgrade WassUp when your site is busy, you must manually stop visitor recording beforehand, do the upgrade, then manually resume recording afterwards:
|
138 |
-
|
139 |
-
1. In WordPress admin panel, navigate to WassUp >>Options >>[Genernal Setup] tab. Uncheck the box for "Enable statistics recording" and save.
|
140 |
-
1. Navigate to Plugins page and click the "Update Now" link under "WassUp" plugin name or follow the manual upgrade instructions above
|
141 |
-
1. After the upgrade is done, go back to WassUp >>Options >>[General Setup] tab, and check the box for "Enable statistics recording" and save.
|
142 |
-
|
143 |
-
### Usage
|
144 |
-
When you activate this plugin (as described in "Installation"), it works "as is". You don't have anything to do. Wait for visitors to hit your site and start seeing details (click the dashboard and go to WassUp page)
|
145 |
-
|
146 |
-
### Compatibility Notice
|
147 |
-
* WassUp is incompatible with the following static page caching plugins: WP Super Cache, WP Cache, and WP Hyper Cache.
|
148 |
-
|
149 |
-
|
150 |
-
## Upgrade Notice
|
151 |
-
|
152 |
-
### v1.9.1
|
153 |
-
* Critical security, compatibility and bugfix upgrade.
|
154 |
-
64MB memory is now required for Wassup! See [codex document "Editing wp-config.php"](https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP) to increase memory allocated to Wordpress before upgrading.
|
155 |
-
DO NOT UPGRADE when your site busy! Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
|
156 |
-
|
157 |
-
## Changelog
|
158 |
-
### v1.9.1: Critical security, compatibility, and bugfix upgrade
|
159 |
-
* patched security loopholes (xss vulnerability) in the 'Top stats' widget and in `wassupURI::add_siteurl` method
|
160 |
-
* revised plugin code to improve prevention of XSS attacks via it's interface and widgets
|
161 |
-
* revised plugin code to comply with the latest requirements for inclusion in Wordpress.org plugin repository
|
162 |
-
* revised 'readme.txt' to comply with Wordpress.org plugin repository guidelines.
|
163 |
-
* new module, 'wassupadmin.php' for WassUp admin panels and dashboard widget
|
164 |
-
* new module, 'compatibility.php' to check for Wordpress and PHP compatibility and to load compatibility modules from `/lib/compat-lib/` subfolder when available
|
165 |
-
* removed backward compatibility folder, modules, and javascripts from Wordpress's copy of Wassup package to comply with Wordpress plugin repository requirements.
|
166 |
-
Wassup's backward-compatibility feature remains in the full copy of Wassup available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
|
167 |
-
* removed obsolete files 'badhosts.txt', 'badhosts-intl.txt'
|
168 |
-
* updated Google!Maps API link to use a common API key for Wassup-Spy (required by Google since 2016-06-22).
|
169 |
-
* updated WassUp 'wp-cron' scheduled tasks to terminate (and restart) at reset-to-default, recording stop/start, and at plugin deactivate/reactivate events.
|
170 |
-
* updated Wassup table export to omit all known spam/malware records from export by default...to avoid propagation of malware code when exported records are imported into other applications.
|
171 |
-
* updated `wassup_Akismet` class to abort remote requests with timeout error after 5 seconds to avoid plugin slowdown due to slow server response.
|
172 |
-
* updated 'UADetector' and 'wDetector' classes to improve browser and os detection (Microsoft Edge, Win10).
|
173 |
-
* updated translation template, 'wassup.pot'.
|
174 |
-
* fixed problem with login page hits not being recorded.
|
175 |
-
* fixed errors caused by disabled 'set_time_limit' function in some configurations.
|
176 |
-
* fixed a 'preg_match' error that affected 404 and spam detection.
|
177 |
-
* fixed a "script timeout" calculation/test error in Visitor-details.
|
178 |
-
* fixed incorrect Wassup menu "href" values in network admin panels.
|
179 |
-
* fixed a MySQL timezone/offset calculation error in some queries.
|
180 |
-
* fixed a scheduled task validation error that caused some wp-cron tasks to fail.
|
181 |
-
* miscellaneous minor bugfixes.
|
182 |
-
* miscellaneous minor text changes
|
183 |
-
* minor css changes for small screen devices.
|
184 |
-
|
185 |
-
### v1.9: Important compatibility and feature improvement upgrade.
|
186 |
-
* new caching of MySQL expensive queries to improve plugin performance
|
187 |
-
* new options for improved MySQL table management
|
188 |
-
* new multisite network compatibility feature added
|
189 |
-
* new and improved aside widgets with multi-widget capability
|
190 |
-
* new tracking filters to exclude some automated requests and to add wildcard filtering by hostnames and ip
|
191 |
-
* new "FAQ" and "Donate" panels in Wassup-Options submenu
|
192 |
-
* new "top stats" popup-window in Visitor Details panel
|
193 |
-
* updated code for Wordpress 4.x, PHP 5.6-mysqli compatibility, and Akismet 3.0 plugin compatibility
|
194 |
-
* updated plugin security with more input validation, deprecated functions removal, and escaped output
|
195 |
-
* updated javascripts libraries, `jquery.js`,`jquery-ui.js` and added jquery-migrate.js and wassup.js
|
196 |
-
* updated css and validated as 100% W3C CSS3 compliant
|
197 |
-
* updated browser and os detection for new agents (Win10)
|
198 |
-
* updated translation template (wassup.pot)
|
199 |
-
* updated "readme.txt"
|
200 |
-
* fixed search engine referrer data to substitute "not provided" for missing keywords from secure searches (https-to-http omission)
|
201 |
-
* fixed a fatal error in Wassup-options caused by disabled PHP functions in some host configurations
|
202 |
-
* fixed a bug in Wassup-options that caused table export to fail
|
203 |
-
* fixed an activation failure problem in `upgrade.php` that occurred in some host configurations
|
204 |
-
* 3 new classes added to code: `wassupDb` for MySQL table operations and caching, `wassupURI` to format and clean urls/links for safe output, and `Wassup_Widget` a base widget for building Wassup widgets
|
205 |
-
* minor text changes
|
206 |
-
* minor bugfixes
|
207 |
-
|
208 |
-
### v1.8.6
|
209 |
-
* Removed deprecated Wordpress methods, minor text changes.
|
210 |
-
|
211 |
-
### v1.8.5
|
212 |
-
* Changes to GEOIP API for Map geolocation, minor CSS changes.
|
213 |
-
|
214 |
-
### v1.8.4
|
215 |
-
* Migrated to Google Maps API v3
|
216 |
-
* New locales: English (United Kingdom) [complete], Persian [partial], Sinhalese [partial], Vietnamese [partial]
|
217 |
-
* New donate button in WassUp menu
|
218 |
-
* fixed CSS for WassUp menu.
|
219 |
-
|
220 |
-
### v1.8.3.1
|
221 |
-
* Security fix for xss attempts via useragent string.
|
222 |
-
|
223 |
-
### v1.8.3
|
224 |
-
* bugfixes, improved tracking, changes for Wordpress compatibility.
|
225 |
-
|
226 |
-
### v1.8.2
|
227 |
-
* bugfixes, improved browser/agent detection.
|
228 |
-
|
229 |
-
### v1.8.1
|
230 |
-
* bugfix and minor changes.
|
231 |
-
|
232 |
-
### v1.8: Important feature improvement upgrade.
|
233 |
-
* new table `wassup_meta` for caching and stats collection.
|
234 |
-
* new admin interface style.
|
235 |
-
* new GEOIP API [freegeoip.net](http://freegeoip.net) for map geolocation in SPY view. Thanks to [@AlexandreFiori](http://twitter.com/alexandrefiori) for giving us access to his API.
|
236 |
-
* bugfixes, security fixes, and changes for Wordpress compatibility.
|
237 |
-
|
238 |
-
|
239 |
-
## Infos
|
240 |
-
### Plugin Home
|
241 |
-
* [http://www.wpwp.org](http://www.wpwp.org "http://www.wpwp.org")
|
242 |
-
|
243 |
-
### Plugin Development
|
244 |
-
* For pre-release bugfixes and other changes to WassUp, you can download the development version of Wassup from GitHub:
|
245 |
-
[https://github.com/michelem09/wassup](https://github.com/michelem09/wassup "https://github.com/michelem09/wassup")
|
246 |
-
* For the latest browsers, os, and spider detection updates, you can download the `uadetector.class.php` module separately on GitHub:
|
247 |
-
[https://github.com/hdunk/uadetector.class.php](https://github.com/hdunk/uadetector.class.php "https://github.com/hdunk/uadetector.class.php")
|
248 |
-
|
249 |
-
### Developers Home
|
250 |
-
* Michele M: [http://www.michelem.org](http://www.michelem.org "http://www.michelem.org")
|
251 |
-
* Helene D: [http://helenesit.com](http://helenesit.com "http://helenesit.com")
|
252 |
-
|
253 |
-
### Credits
|
254 |
-
* [Jquery](http://www.jquery.com) for the amazing Ajax framework
|
255 |
-
* [FAMFAMFAM](http://www.famfamfam.com/) for the flags icons
|
256 |
-
* Thanks to [@AlexandreFiori](http://twitter.com/alexandrefiori) for access to his GeoIP API at [freegeoip.net](http://freegeoip.net)
|
257 |
-
* A big thanks to [Helene D.](http://helenesit.com/) for her help to improve WassUp!
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/wassup.css
CHANGED
@@ -97,8 +97,6 @@ div.main-tabs{margin:10px auto 3px;padding:3px;color:#445;background-color:#e1df
|
|
97 |
#wassup-wrap .sum-det .det1{padding-left:10px;text-indent:-5px;font-size:14px;}
|
98 |
#wassup-wrap .det3{padding-left:20px;}
|
99 |
#wassup-wrap .det1 span{color:#00284a;}
|
100 |
-
#wassup-wrap span.malware{color:#777;}
|
101 |
-
#wassup-wrap ul.useragent >li span.malware{color:inherit;}
|
102 |
#wassup-wrap .det1 a{font-weight:bold;border-bottom:1px solid !important;}
|
103 |
#wassup-wrap .det2 a,#wassup-wrap .det2 a:link, #wassup-wrap .sum-det span.det2 a{color:#02a !important;}
|
104 |
#wassup-wrap .det2 a:hover, #wassup-wrap .sum-det span.det2 a:hover {color:#d54d22 !important;}
|
97 |
#wassup-wrap .sum-det .det1{padding-left:10px;text-indent:-5px;font-size:14px;}
|
98 |
#wassup-wrap .det3{padding-left:20px;}
|
99 |
#wassup-wrap .det1 span{color:#00284a;}
|
|
|
|
|
100 |
#wassup-wrap .det1 a{font-weight:bold;border-bottom:1px solid !important;}
|
101 |
#wassup-wrap .det2 a,#wassup-wrap .det2 a:link, #wassup-wrap .sum-det span.det2 a{color:#02a !important;}
|
102 |
#wassup-wrap .det2 a:hover, #wassup-wrap .sum-det span.det2 a:hover {color:#d54d22 !important;}
|
img/loadingAnimation.gif
CHANGED
Binary file
|
js/thickbox/loadingAnimation.gif
CHANGED
Binary file
|
js/thickbox/thickbox.js
CHANGED
@@ -314,4 +314,3 @@
|
|
314 |
}
|
315 |
}
|
316 |
}(jQuery));
|
317 |
-
|
314 |
}
|
315 |
}
|
316 |
}(jQuery));
|
|
language/wassup.pot
CHANGED
@@ -8,7 +8,7 @@ msgid ""
|
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: WassUp 1.9.1\n"
|
10 |
"Report-Msgid-Bugs-To: michele@befree.it\n"
|
11 |
-
"POT-Creation-Date: 2016-10-
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -17,226 +17,221 @@ msgstr ""
|
|
17 |
"Content-Type: text/plain; charset=CHARSET\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
-
#: wassup.php:
|
21 |
#, php-format
|
22 |
msgid "File %s does not exist!"
|
23 |
msgstr ""
|
24 |
|
25 |
-
#: wassup.php:
|
26 |
-
msgid ""
|
27 |
-
"Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups"
|
28 |
-
msgstr ""
|
29 |
-
|
30 |
-
#: wassup.php:153
|
31 |
msgid "Sorry! \"Network Activation\" is DISABLED for subdomain networks."
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: wassup.php:
|
35 |
#, php-format
|
36 |
msgid "%s must be activated on each subdomain site separately."
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: wassup.php:
|
40 |
msgid ""
|
41 |
"Activate plugin on your parent domain (main site) to set default options for "
|
42 |
"your network."
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: wassup.php:
|
46 |
msgid "Back to Plugins"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: wassup.php:
|
50 |
msgid "Database created/upgraded successfully"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: wassup.php:
|
54 |
msgid ""
|
55 |
"An error occurred during the upgrade. WassUp table structure may not have "
|
56 |
"been updated properly."
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: wassup.php:
|
60 |
msgid "activation successful"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: wassup.php:
|
64 |
msgid "activation successful. No upgrade necessary."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: wassup.php:
|
68 |
#, php-format
|
69 |
msgid "%s: database upgrade failed!"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: wassup.php:
|
73 |
#, php-format
|
74 |
msgid "%s: plugin install/upgrade failed!"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: wassup.php:
|
78 |
msgid "Bad request!"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: wassup.php:
|
82 |
msgid "Export ERROR: nonce failure!"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: wassup.php:
|
86 |
msgid "Export ERROR: login required!"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: wassup.php:
|
90 |
msgid "Export failed due to script interruption or timeout error!"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: wassup.php:
|
94 |
msgid "ERROR: Nothing to Export."
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: wassup.php:
|
98 |
-
#: lib\uadetector.class.php:
|
99 |
msgid "Unknown Spider"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: wassup.php:
|
103 |
msgid "Unknown Browser"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: wassup.php:
|
107 |
msgid "Spoofer bot"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: wassup.php:
|
111 |
#, php-format
|
112 |
msgid "%s WassUp Plugin table has reached maximum size!"
|
113 |
msgstr ""
|
114 |
|
115 |
-
#: wassup.php:
|
116 |
msgid "ALERT"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: wassup.php:
|
120 |
msgid "Hi"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: wassup.php:
|
124 |
msgid ""
|
125 |
"you have received this email because your WassUp Database table at your "
|
126 |
"Wordpress blog"
|
127 |
msgstr ""
|
128 |
|
129 |
-
#: wassup.php:
|
130 |
msgid "has reached the maximum value set in the options menu"
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: wassup.php:
|
134 |
msgid ""
|
135 |
"This is only a reminder, please take the actions you want in the WassUp "
|
136 |
"options menu"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: wassup.php:
|
140 |
msgid "This alert now will be removed and you will be able to set a new one"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: wassup.php:
|
144 |
msgid ""
|
145 |
"Thank you for using WassUp plugin. Check if there is a new version available "
|
146 |
"here:"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: wassup.php:
|
150 |
msgid "Have a nice day!"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: wassup.php:
|
154 |
msgid "encrypted search"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: wassup.php:
|
158 |
msgid "Feed Reader"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: wassup.php:
|
162 |
msgid "feed reader"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: wassup.php:
|
166 |
msgid "timestamp"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: wassup.php:
|
170 |
msgid "If above timestamp is not current time, this page is cached"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: wassup.php:
|
174 |
msgid "Visitors Online"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: wassup.php:
|
178 |
-
#: widgets\widgets.php:
|
179 |
msgid "No Data"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: lib\action.php:
|
183 |
msgid "Missing or invalid action parameter!"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: lib\action.php:
|
187 |
msgid "Login required!"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: lib\action.php:
|
191 |
msgid "Missing or invalid whash parameter!"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: lib\action.php:
|
195 |
msgid "invalid hash parameter!"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: lib\action.php:
|
199 |
msgid "Nothing to do"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: lib\action.php:
|
203 |
msgid "An error occurred during delete of"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: lib\action.php:
|
207 |
msgid "Error"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: lib\action.php:
|
211 |
#, php-format
|
212 |
msgid "%d records deleted!"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: lib\action.php:
|
216 |
msgid "ERROR: bad date parameter"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: lib\action.php:
|
220 |
msgid "Error: Nothing to do!"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: lib\akismet.class.php:
|
224 |
msgid "Timed out waiting for server response."
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: lib\akismet.class.php:
|
228 |
msgid "The response could not be retrieved."
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: lib\akismet.class.php:
|
232 |
msgid "Could not connect to Akismet server."
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: lib\akismet.class.php:
|
236 |
msgid "Your Akismet API key is not valid."
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: lib\compatibility.php:
|
240 |
msgid "Sorry, WassUp requires WordPress 2.2 or higher to work"
|
241 |
msgstr ""
|
242 |
|
@@ -244,1073 +239,1082 @@ msgstr ""
|
|
244 |
msgid "WARNING! WassUp's backward compatibility modules are missing."
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: lib\compatibility.php:86 lib\compatibility.php:
|
248 |
#, php-format
|
249 |
msgid ""
|
250 |
"Download and install the full version of Wassup with compatibility library "
|
251 |
"included directly from %s."
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: lib\compatibility.php:
|
|
|
|
|
|
|
|
|
|
|
255 |
msgid "WARNING! WassUp's PHP compatibility module is missing."
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: lib\main.php:
|
259 |
-
#: lib\settings.php:
|
260 |
-
#: lib\settings.php:
|
261 |
msgid "Next"
|
262 |
msgstr ""
|
263 |
|
264 |
-
#: lib\main.php:
|
265 |
msgid "Previous"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: lib\main.php:
|
269 |
#, php-format
|
270 |
msgid "You must specify the %s"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: lib\main.php:
|
274 |
msgid "number of pages"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: lib\main.php:
|
278 |
#, php-format
|
279 |
msgid "You must specify the %s to show per page"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: lib\main.php:
|
283 |
msgid "limit of items"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: lib\main.php:
|
287 |
msgid "Pages"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: lib\main.php:
|
291 |
msgid "Raw data"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: lib\main.php:
|
295 |
msgid "Visitor type"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: lib\main.php:
|
299 |
msgid "Logged-in user"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: lib\main.php:
|
303 |
msgid "Spammer/Hacker"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: lib\main.php:
|
307 |
msgid "Spammer"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: lib\main.php:
|
311 |
msgid "Comment author"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: lib\main.php:
|
315 |
msgid "Feed"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: lib\main.php:
|
319 |
-
#: lib\wassup.class.php:
|
320 |
-
#: lib\compat-lib\compat_php.php:
|
321 |
msgid "Spider"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: lib\main.php:
|
325 |
msgid "Regular visitor"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: lib\main.php:
|
329 |
msgid "IP"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: lib\main.php:
|
333 |
msgid "Hostname"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: lib\main.php:
|
337 |
msgid "Url Requested"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: lib\main.php:
|
341 |
msgid "Post/page ID"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: lib\main.php:
|
345 |
msgid "none or deleted post"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: lib\main.php:
|
349 |
-
#: widgets\widgets.php:
|
350 |
msgid "Title"
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: lib\main.php:
|
354 |
-
#: lib\compat-lib\compat_php.php:
|
355 |
msgid "Referrer"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: lib\main.php:
|
359 |
msgid "Search Engine"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: lib\main.php:
|
363 |
-
#: lib\wassupadmin.php:
|
364 |
msgid "Search"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: lib\main.php:
|
368 |
msgid "Page"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: lib\main.php:
|
372 |
msgid "User Agent"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: lib\main.php:
|
376 |
msgid "Browser"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: lib\main.php:
|
380 |
msgid "OS"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: lib\main.php:
|
384 |
msgid "Locale/Language"
|
385 |
msgstr ""
|
386 |
|
387 |
-
#: lib\main.php:
|
388 |
msgid "Screen Resolution"
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: lib\main.php:
|
392 |
msgid "Username"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: lib\main.php:
|
396 |
msgid "Comment Author"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: lib\main.php:
|
400 |
-
#: lib\wassupadmin.php:
|
401 |
-
#: lib\compat-lib\compat_php.php:
|
402 |
msgid "Spam"
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: lib\main.php:
|
406 |
msgid "comment spam"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: lib\main.php:
|
410 |
msgid "referrer spam"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: lib\main.php:
|
414 |
msgid "hack/malware attempt"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: lib\main.php:
|
418 |
msgid "not spam"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: lib\main.php:
|
422 |
msgid "End timestamp"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: lib\main.php:
|
426 |
msgid "Timestamp"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: lib\main.php:
|
430 |
-
#: lib\main.php:
|
431 |
-
#: lib\settings.php:
|
432 |
-
#: lib\settings.php:
|
433 |
-
#: lib\settings.php:
|
434 |
-
#: lib\settings.php:
|
435 |
-
#: lib\settings.php:
|
436 |
-
#: lib\settings.php:
|
437 |
-
#: lib\wassupadmin.php:
|
438 |
msgid "unknown"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: lib\main.php:
|
442 |
#, php-format
|
443 |
msgid "%d URLs visited in session"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: lib\main.php:
|
447 |
msgid "Direct hit"
|
448 |
msgstr ""
|
449 |
|
450 |
-
#: lib\main.php:
|
451 |
msgid "Spam/Malware"
|
452 |
msgstr ""
|
453 |
|
454 |
-
#: lib\main.php:
|
455 |
msgid "Feedreader"
|
456 |
msgstr ""
|
457 |
|
458 |
-
#: lib\main.php:
|
459 |
msgid "Logged user"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#: lib\main.php:
|
463 |
msgid "Country"
|
464 |
msgstr ""
|
465 |
|
466 |
-
#: lib\main.php:
|
467 |
msgid "Language"
|
468 |
msgstr ""
|
469 |
|
470 |
-
#: lib\main.php:
|
471 |
msgid "Country:"
|
472 |
msgstr ""
|
473 |
|
474 |
-
#: lib\main.php:
|
475 |
msgid "URL Request:"
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: lib\main.php:
|
479 |
msgid "No visitor activity"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: lib\main.php:
|
483 |
-
#: lib\main.php:
|
484 |
#, php-format
|
485 |
msgid "City: %s"
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: lib\main.php:
|
489 |
msgid "Country: unknown, City: unknown"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: lib\main.php:
|
493 |
msgid "Print"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: lib\main.php:
|
497 |
#, php-format
|
498 |
msgid "Top Stats for Period: %s"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: lib\main.php:
|
502 |
msgid "TOP QUERY"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: lib\main.php:
|
506 |
msgid "not provided"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: lib\main.php:
|
510 |
msgid "TOP REFERRER"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: lib\main.php:
|
514 |
msgid "TOP REQUEST"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: lib\main.php:
|
518 |
msgid "TOP BROWSER"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: lib\main.php:
|
522 |
msgid "TOP OS"
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: lib\main.php:
|
526 |
msgid "TOP LOCALE"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: lib\main.php:
|
530 |
msgid "TOP VISITOR"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: lib\main.php:
|
534 |
msgid "TOP ARTICLE"
|
535 |
msgstr ""
|
536 |
|
537 |
-
#: lib\main.php:
|
538 |
msgid "This report excludes spam and spider records"
|
539 |
msgstr ""
|
540 |
|
541 |
-
#: lib\main.php:
|
542 |
msgid "This report excludes spider records"
|
543 |
msgstr ""
|
544 |
|
545 |
-
#: lib\main.php:
|
546 |
msgid "This report excludes spam records"
|
547 |
msgstr ""
|
548 |
|
549 |
-
#: lib\main.php:
|
550 |
msgid "Last 1 Hour"
|
551 |
msgstr ""
|
552 |
|
553 |
-
#: lib\main.php:
|
554 |
msgid "Last 6 Hours"
|
555 |
msgstr ""
|
556 |
|
557 |
-
#: lib\main.php:
|
558 |
msgid "Last 12 Hours"
|
559 |
msgstr ""
|
560 |
|
561 |
-
#: lib\main.php:
|
562 |
msgid "Last 7 Days"
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: lib\main.php:
|
566 |
msgid "Last 2 Weeks"
|
567 |
msgstr ""
|
568 |
|
569 |
-
#: lib\main.php:
|
570 |
msgid "Last Month"
|
571 |
msgstr ""
|
572 |
|
573 |
-
#: lib\main.php:
|
574 |
msgid "Last 3 Months"
|
575 |
msgstr ""
|
576 |
|
577 |
-
#: lib\main.php:
|
578 |
msgid "Last 6 Months"
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: lib\main.php:
|
582 |
msgid "Last Year"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: lib\main.php:
|
586 |
msgid "All Time"
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: lib\main.php:
|
590 |
msgid "Last 24 Hours"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: lib\settings.php:
|
594 |
msgid ""
|
595 |
"ATTENTION! Your WassUp table have reached the maximum value you set, I "
|
596 |
"disabled the alert, you can re-enable it here."
|
597 |
msgstr ""
|
598 |
|
599 |
-
#: lib\settings.php:
|
600 |
msgid "IMPORTANT"
|
601 |
msgstr ""
|
602 |
|
603 |
-
#: lib\settings.php:
|
604 |
msgid "table empty or does not exist!"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: lib\settings.php:
|
608 |
msgid "Visitors Online or Top Stats"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: lib\settings.php:
|
612 |
msgid "Widgets menu"
|
613 |
msgstr ""
|
614 |
|
615 |
-
#: lib\settings.php:
|
616 |
#, php-format
|
617 |
msgid ""
|
618 |
"You can add a sidebar Widget with some useful statistics information by "
|
619 |
"activating the %s widget from the %s."
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: lib\settings.php:
|
623 |
msgid "Select the options you want for WassUp plugin"
|
624 |
msgstr ""
|
625 |
|
626 |
-
#: lib\settings.php:
|
627 |
-
#: lib\settings.php:
|
628 |
-
#: lib\settings.php:
|
629 |
-
#: lib\settings.php:
|
630 |
msgid "General Setup"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: lib\settings.php:
|
634 |
msgid "Filters & Exclusions"
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: lib\settings.php:
|
638 |
msgid "Manage Files & Data"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: lib\settings.php:
|
642 |
msgid "Uninstall"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: lib\settings.php:
|
646 |
msgid "Donate"
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: lib\settings.php:
|
650 |
msgid "Networkwide Settings"
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: lib\settings.php:
|
654 |
msgid "Multisite settings that applies to all subsites in the network."
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: lib\settings.php:
|
658 |
msgid "Network Statistics Recording"
|
659 |
msgstr ""
|
660 |
|
661 |
-
#: lib\settings.php:
|
662 |
msgid ""
|
663 |
"Enables Wassup visitor tracking on all subsites in network. Do NOT disable "
|
664 |
"unless upgrading plugin."
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: lib\settings.php:
|
668 |
msgid "Enable Statistics Recording for network."
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: lib\settings.php:
|
672 |
msgid ""
|
673 |
"Can be overridden on individual subsites to disable statistics recording."
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: lib\settings.php:
|
677 |
msgid "Network Subsites Options"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#: lib\settings.php:
|
681 |
msgid "Show Wassup's Main menu and options panel to subsite administrators."
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: lib\settings.php:
|
685 |
msgid ""
|
686 |
"Uncheck to hide Wassup Main menu and options panel from all users except "
|
687 |
"Network administrator (super-admin). Dashboard submenu \"Wassup-stats\" and "
|
688 |
"dashboard widget display are unaffected."
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: lib\settings.php:
|
692 |
msgid "Site Settings"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: lib\settings.php:
|
696 |
msgid "Main site settings / Default settings for new network subsites."
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: lib\settings.php:
|
700 |
msgid "Statistics Recording"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: lib\settings.php:
|
704 |
msgid ""
|
705 |
"By default, Wassup collects and stores incoming visitor hits and checks each "
|
706 |
"new record for spam and malware activity."
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: lib\settings.php:
|
710 |
msgid "Enable statistics recording"
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: lib\settings.php:
|
714 |
msgid "Do NOT disable unless upgrading or troubleshooting plugin problems."
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: lib\settings.php:
|
718 |
msgid "Do NOT disable unless troubleshooting plugin problems."
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: lib\settings.php:
|
722 |
msgid "Enable spam and malware detection on new records"
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: lib\settings.php:
|
726 |
msgid ""
|
727 |
"For identification of incoming spam/malware hits only. Does NOT stop attacks "
|
728 |
"nor protect your site."
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: lib\settings.php:
|
732 |
msgid "User Permissions"
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: lib\settings.php:
|
736 |
msgid ""
|
737 |
"Gives selected users read-only access to Wassup-stats dashboard submenu "
|
738 |
"panels and the ability to view the dashboard widget."
|
739 |
msgstr ""
|
740 |
|
741 |
-
#: lib\settings.php:
|
742 |
msgid ""
|
743 |
"Only administrators have full access to Wassup main admin menu and Wassup-"
|
744 |
"options panels to delete data and edit plugin settings."
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: lib\settings.php:
|
748 |
msgid "Set minimum user level that can view WassUp stats"
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: lib\settings.php:
|
752 |
msgid "default administrator"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: lib\settings.php:
|
756 |
msgid "Screen resolution"
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: lib\settings.php:
|
760 |
msgid ""
|
761 |
"Adjusts chart size and resets the max-width/truncation point of long texts."
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: lib\settings.php:
|
765 |
msgid "Your default screen resolution (in pixels)"
|
766 |
msgstr ""
|
767 |
|
768 |
-
#: lib\settings.php:
|
769 |
msgid "Dashboard Widget"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: lib\settings.php:
|
773 |
msgid "Enable widget/small chart in admin dashboard"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: lib\settings.php:
|
777 |
msgid "Spy Visitors Settings"
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: lib\settings.php:
|
781 |
msgid "Display a GEO IP Map in the spy visitors view"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: lib\settings.php:
|
785 |
msgid "key"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: lib\settings.php:
|
789 |
msgid "signup for your key"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: lib\settings.php:
|
793 |
msgid ""
|
794 |
"Use your own key to avoid map denial when Wassup API total usage exceeds "
|
795 |
"Google!Maps limits."
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: lib\settings.php:
|
799 |
msgid "Visitor Detail Settings"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: lib\settings.php:
|
803 |
msgid "Show visitor details from the last"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: lib\settings.php:
|
807 |
msgid "Time format 12/24 Hour"
|
808 |
msgstr ""
|
809 |
|
810 |
-
#: lib\settings.php:
|
811 |
msgid "Filter visitor details for"
|
812 |
msgstr ""
|
813 |
|
814 |
-
#: lib\settings.php:
|
815 |
msgid "Display line chart in detail view"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: lib\settings.php:
|
819 |
msgid "Line chart type - how many axes?"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: lib\settings.php:
|
823 |
msgid "Set how many minutes wait for automatic page refresh"
|
824 |
msgstr ""
|
825 |
|
826 |
-
#: lib\settings.php:
|
827 |
msgid "minutes"
|
828 |
msgstr ""
|
829 |
|
830 |
-
#: lib\settings.php:
|
831 |
msgid "default 3, 0=no refresh"
|
832 |
msgstr ""
|
833 |
|
834 |
-
#: lib\settings.php:
|
835 |
msgid "Number of items per page"
|
836 |
msgstr ""
|
837 |
|
838 |
-
#: lib\settings.php:
|
839 |
msgid "Top Stats Lists"
|
840 |
msgstr ""
|
841 |
|
842 |
-
#: lib\settings.php:
|
843 |
msgid "Customize Top stats by selected criteria below."
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: lib\settings.php:
|
847 |
msgid ""
|
848 |
"Stats are in descending order from highest count and known spam and malware "
|
849 |
"attempts are excluded from counts."
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: lib\settings.php:
|
853 |
msgid "List limit of top items"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: lib\settings.php:
|
857 |
msgid "default 10"
|
858 |
msgstr ""
|
859 |
|
860 |
-
#: lib\settings.php:
|
861 |
msgid "Choose one or more items to list in Top Stats"
|
862 |
msgstr ""
|
863 |
|
864 |
-
#: lib\settings.php:
|
865 |
msgid "over 5 selections may cause horizontal scrolling"
|
866 |
msgstr ""
|
867 |
|
868 |
-
#: lib\settings.php:
|
869 |
msgid "Top Searches"
|
870 |
msgstr ""
|
871 |
|
872 |
-
#: lib\settings.php:
|
873 |
msgid "Top Referrers"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: lib\settings.php:
|
877 |
msgid "Top Articles"
|
878 |
msgstr ""
|
879 |
|
880 |
-
#: lib\settings.php:
|
881 |
msgid "Top Requests"
|
882 |
msgstr ""
|
883 |
|
884 |
-
#: lib\settings.php:
|
885 |
msgid "Top Browsers"
|
886 |
msgstr ""
|
887 |
|
888 |
-
#: lib\settings.php:
|
889 |
msgid "Top OS"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: lib\settings.php:
|
893 |
msgid "Top Locales"
|
894 |
msgstr ""
|
895 |
|
896 |
-
#: lib\settings.php:
|
897 |
msgid "Top Visitors"
|
898 |
msgstr ""
|
899 |
|
900 |
-
#: lib\settings.php:
|
901 |
msgid "Exclude the following website domains from Top Referrers"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: lib\settings.php:
|
905 |
msgid "applies to top stats view and widgets"
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: lib\settings.php:
|
909 |
msgid "comma separated value"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: lib\settings.php:
|
913 |
msgid "List whole domains only. Wildcards and partial domains will be ignored."
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: lib\settings.php:
|
917 |
msgid "Don't list your website domain defined in WordPress"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: lib\settings.php:
|
921 |
msgid "Exclude site front page from Top Articles"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: lib\settings.php:
|
925 |
msgid "Exclude all spider records from Top Stats"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: lib\settings.php:
|
929 |
-
#: lib\settings.php:
|
930 |
msgid "Save Settings"
|
931 |
msgstr ""
|
932 |
|
933 |
-
#: lib\settings.php:
|
934 |
-
#: lib\settings.php:
|
935 |
msgid "Reset"
|
936 |
msgstr ""
|
937 |
|
938 |
-
#: lib\settings.php:
|
939 |
-
#: lib\settings.php:
|
940 |
msgid "Reset to Default"
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: lib\settings.php:
|
944 |
-
#: lib\settings.php:
|
945 |
-
#: lib\wassupadmin.php:
|
946 |
-
#: widgets\widget_functions.php:
|
947 |
msgid "Top"
|
948 |
msgstr ""
|
949 |
|
950 |
-
#: lib\settings.php:
|
951 |
msgid "Recording Filters and Exclusions"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: lib\settings.php:
|
955 |
msgid ""
|
956 |
"Use the filter checkboxes and exclusion input fields below to customize "
|
957 |
"Wassup's statistics recording so that only the data that you need for your "
|
958 |
"site analyses are stored."
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: lib\settings.php:
|
962 |
msgid "Visitor Type Filters:"
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: lib\settings.php:
|
966 |
msgid "Checkbox to enable recording by type of \"visitor\""
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: lib\settings.php:
|
970 |
msgid "Record regular visitors"
|
971 |
msgstr ""
|
972 |
|
973 |
-
#: lib\settings.php:
|
974 |
msgid "Record logged in users"
|
975 |
msgstr ""
|
976 |
|
977 |
-
#: lib\settings.php:
|
978 |
msgid "Record logged in administrators"
|
979 |
msgstr ""
|
980 |
|
981 |
-
#: lib\settings.php:
|
982 |
msgid "Record spiders and bots"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: lib\settings.php:
|
986 |
msgid "Spam and Malware Filters:"
|
987 |
msgstr ""
|
988 |
|
989 |
-
#: lib\settings.php:
|
990 |
msgid "Checkbox to enable recording of each type of \"spam\""
|
991 |
msgstr ""
|
992 |
|
993 |
-
#: lib\settings.php:
|
994 |
msgid "Record Akismet comment spam attempts"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: lib\settings.php:
|
998 |
msgid "checks IP for previous spam comments"
|
999 |
msgstr ""
|
1000 |
|
1001 |
-
#: lib\settings.php:
|
1002 |
msgid "Record referrer spam attempts"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
-
#: lib\settings.php:
|
1006 |
msgid "Record admin break-in/hacker attempts"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
-
#: lib\settings.php:
|
1010 |
-
msgid "Record attack/exploit attempts
|
1011 |
msgstr ""
|
1012 |
|
1013 |
-
#: lib\settings.php:
|
|
|
|
|
|
|
|
|
1014 |
msgid "Recording Exceptions"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
-
#: lib\settings.php:
|
1018 |
msgid ""
|
1019 |
"You can exclude a single visitor (by IP, hostname or username) or you can "
|
1020 |
"exclude a specific URL request from being stored in WassUp records."
|
1021 |
msgstr ""
|
1022 |
|
1023 |
-
#: lib\settings.php:
|
1024 |
msgid ""
|
1025 |
"Note that recording exceptions lower overall statistics counts and excessive "
|
1026 |
"exclusions can affect page load speed on slow host servers."
|
1027 |
msgstr ""
|
1028 |
|
1029 |
-
#: lib\settings.php:
|
1030 |
msgid "Exclude by IP"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
-
#: lib\settings.php:
|
1034 |
msgid "Enter source IPs to omit from recording"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
-
#: lib\settings.php:
|
1038 |
msgid "comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)."
|
1039 |
msgstr ""
|
1040 |
|
1041 |
-
#: lib\settings.php:
|
1042 |
msgid ""
|
1043 |
"A single wildcard (*) can be placed after the last '.' in the IP ('::' in "
|
1044 |
"IPv6) for range exclusions (ex: 10.10.100.*, 192.168.*)."
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: lib\settings.php:
|
1048 |
msgid "Exclude by Hostname"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
-
#: lib\settings.php:
|
1052 |
msgid "Enter source hostnames to omit from recording"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
-
#: lib\settings.php:
|
1056 |
msgid "comma separated value (ex: host1.domain.com, host2.domain.net, etc...)."
|
1057 |
msgstr ""
|
1058 |
|
1059 |
-
#: lib\settings.php:
|
1060 |
msgid ""
|
1061 |
"A single wildcard (*) can be placed before the first '.' for domain network "
|
1062 |
"exclusions (ex: *.spamdomain.com, *.hackers.malware.net)."
|
1063 |
msgstr ""
|
1064 |
|
1065 |
-
#: lib\settings.php:
|
1066 |
msgid "Exclude by Username"
|
1067 |
msgstr ""
|
1068 |
|
1069 |
-
#: lib\settings.php:
|
1070 |
msgid "Enter usernames to omit from recording"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
-
#: lib\settings.php:
|
1074 |
msgid ""
|
1075 |
"comma separated value, enter a registered user's login name (ex: bobmarley, "
|
1076 |
"enyabrennan, etc.)"
|
1077 |
msgstr ""
|
1078 |
|
1079 |
-
#: lib\settings.php:
|
1080 |
msgid "Exclude by URL request"
|
1081 |
msgstr ""
|
1082 |
|
1083 |
-
#: lib\settings.php:
|
1084 |
msgid "Enter URLs of page/post/feed to omit from recording"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
-
#: lib\settings.php:
|
1088 |
msgid ""
|
1089 |
"comma separated value, don't enter entire url, only the last path or some "
|
1090 |
"word to exclude (ex: /category/wordpress, 2007, etc...)"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: lib\settings.php:
|
1094 |
-
#: lib\settings.php:
|
1095 |
msgid "Prev"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
-
#: lib\settings.php:
|
1099 |
msgid "Table Management Options"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
-
#: lib\settings.php:
|
1103 |
msgid "Select actions for table growth"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
-
#: lib\settings.php:
|
1107 |
msgid ""
|
1108 |
"WassUp table grows very fast, especially if your site is frequently visited. "
|
1109 |
"I recommend you delete old records sometimes."
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: lib\settings.php:
|
1113 |
msgid ""
|
1114 |
"You can delete all Wassup records now (Empty Table), you can set an "
|
1115 |
"automatic delete option to delete selected old records daily, and you can "
|
1116 |
"manually delete selected old records once (Delete NOW)."
|
1117 |
msgstr ""
|
1118 |
|
1119 |
-
#: lib\settings.php:
|
1120 |
msgid "If you haven't database space problems, you can leave the table as is."
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: lib\settings.php:
|
1124 |
msgid "Current WassUp table usage is"
|
1125 |
msgstr ""
|
1126 |
|
1127 |
-
#: lib\settings.php:
|
1128 |
msgid "records"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
-
#: lib\settings.php:
|
1132 |
msgid "Alert me"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
-
#: lib\settings.php:
|
1136 |
msgid "email to"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: lib\settings.php:
|
1140 |
msgid "when table reaches"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
-
#: lib\settings.php:
|
1144 |
msgid "Delete old records"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: lib\settings.php:
|
1148 |
#, php-format
|
1149 |
msgid ""
|
1150 |
"Before deleting, you can save Wassup data in SQL 'export' format onto your "
|
1151 |
"local computer by clicking %s below."
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: lib\settings.php:
|
1155 |
msgid "export table"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: lib\settings.php:
|
1159 |
msgid "Reload this screen after export to view export messages."
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: lib\settings.php:
|
1163 |
msgid "Automatically delete"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: lib\settings.php:
|
1167 |
msgid "records older than"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: lib\settings.php:
|
1171 |
msgid "daily"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: lib\settings.php:
|
1175 |
msgid "Manually delete"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: lib\settings.php:
|
1179 |
msgid "once"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: lib\settings.php:
|
1183 |
msgid "Delete all records up to record ID#"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: lib\settings.php:
|
1187 |
msgid "Last exported record ID#:"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: lib\settings.php:
|
1191 |
msgid "Empty table"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: lib\settings.php:
|
1195 |
msgid "export table in SQL format"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: lib\settings.php:
|
1199 |
msgid "Delete NOW"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: lib\settings.php:
|
1203 |
msgid "Action is NOT undoable!"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: lib\settings.php:
|
1207 |
msgid "Table Export Options"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: lib\settings.php:
|
1211 |
msgid ""
|
1212 |
"By default, known spam/malware records are omitted from Wassup's export data "
|
1213 |
"to reduce the risk of malware code becoming active and causing damage when "
|
1214 |
"records are imported into other applications."
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: lib\settings.php:
|
1218 |
msgid "Include spam records in exported data"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: lib\settings.php:
|
1222 |
msgid ""
|
1223 |
"Security NOTICE: Wassup is not configured to identify spam/malware, so all "
|
1224 |
"records are exported, including spam."
|
1225 |
msgstr ""
|
1226 |
|
1227 |
-
#: lib\settings.php:
|
1228 |
msgid ""
|
1229 |
"Security NOTICE: Enabling this could expose your computer or website to "
|
1230 |
"malware when spam records are imported."
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: lib\settings.php:
|
1234 |
msgid "Omit record ID from exported fields"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: lib\settings.php:
|
1238 |
msgid ""
|
1239 |
"Check this box when importing data into another Wassup table that already "
|
1240 |
"has records (appending data)."
|
1241 |
msgstr ""
|
1242 |
|
1243 |
-
#: lib\settings.php:
|
1244 |
msgid "Table Optimization"
|
1245 |
msgstr ""
|
1246 |
|
1247 |
-
#: lib\settings.php:
|
1248 |
msgid ""
|
1249 |
"By default, WassUp tables are automatically optimized weekly and after each "
|
1250 |
"bulk deletion. This helps keep WassUp running fast, but it can sometimes "
|
1251 |
"cause slowdowns especially when there is a corrupt record in the table."
|
1252 |
msgstr ""
|
1253 |
|
1254 |
-
#: lib\settings.php:
|
1255 |
msgid "You can cancel automatic optimization by unchecking the box below."
|
1256 |
msgstr ""
|
1257 |
|
1258 |
-
#: lib\settings.php:
|
1259 |
msgid "Login as network admin to cancel automatic optimization below."
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: lib\settings.php:
|
1263 |
msgid "Login as network admin to enable automatic optimization below."
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: lib\settings.php:
|
1267 |
msgid "Your table engine does NOT support the \"optimize\" command."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: lib\settings.php:
|
1271 |
msgid "Enable automatic table optimization"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
-
#: lib\settings.php:
|
1275 |
msgid "is overdue"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
-
#: lib\settings.php:
|
1279 |
msgid "today"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
-
#: lib\settings.php:
|
1283 |
#, php-format
|
1284 |
msgid "%d days"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
-
#: lib\settings.php:
|
1288 |
msgid "1 week"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
-
#: lib\settings.php:
|
1292 |
#, php-format
|
1293 |
msgid "Next scheduled optimization is: %s (approximately)"
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: lib\settings.php:
|
1297 |
#, php-format
|
1298 |
msgid "Next scheduled optimization is: %s"
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: lib\settings.php:
|
1302 |
msgid "never"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: lib\settings.php:
|
1306 |
msgid "Data Storage Methods"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
-
#: lib\settings.php:
|
1310 |
msgid "Delayed Insert"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
-
#: lib\settings.php:
|
1314 |
msgid ""
|
1315 |
"When possible, WassUp uses the \"Delayed insert\" method of saving records "
|
1316 |
"in MySQL to store new visitor records. This method helps keep Wassup running "
|
@@ -1319,292 +1323,292 @@ msgid ""
|
|
1319 |
"disable it on shared servers."
|
1320 |
msgstr ""
|
1321 |
|
1322 |
-
#: lib\settings.php:
|
1323 |
msgid "You can turn off \"delayed insert\" by unchecking the box below."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: lib\settings.php:
|
1327 |
msgid "This method is unavailable for your storage engine type."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: lib\settings.php:
|
1331 |
msgid "This method is disabled on your host server."
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: lib\settings.php:
|
1335 |
msgid "Store new visitor records with \"delayed insert\""
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: lib\settings.php:
|
1339 |
msgid "Server Settings and Memory Resources"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: lib\settings.php:
|
1343 |
#, php-format
|
1344 |
msgid ""
|
1345 |
"For information only. Some values may be adjustable in startup files: %s"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
-
#: lib\settings.php:
|
1349 |
msgid "\"wp_config.php\", \"php.ini\" and \"my.ini\""
|
1350 |
msgstr ""
|
1351 |
|
1352 |
-
#: lib\settings.php:
|
1353 |
-
#: lib\settings.php:
|
1354 |
msgid "Version"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
-
#: lib\settings.php:
|
1358 |
msgid "Table name"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
-
#: lib\settings.php:
|
1362 |
msgid "Table Charset/collation"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
-
#: lib\settings.php:
|
1366 |
msgid "Table engine"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
-
#: lib\settings.php:
|
1370 |
msgid "Upgrade date"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: lib\settings.php:
|
1374 |
msgid "network"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
-
#: lib\settings.php:
|
1378 |
-
#: lib\settings.php:
|
1379 |
msgid "on"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: lib\settings.php:
|
1383 |
-
#: lib\settings.php:
|
1384 |
msgid "off"
|
1385 |
msgstr ""
|
1386 |
|
1387 |
-
#: lib\settings.php:
|
1388 |
msgid "Character set"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
-
#: lib\settings.php:
|
1392 |
msgid "not set"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
-
#: lib\settings.php:
|
1396 |
msgid "Memory Allocation"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
-
#: lib\settings.php:
|
1400 |
msgid "no limit/unknown"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
-
#: lib\settings.php:
|
1404 |
msgid "Timezone"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: lib\settings.php:
|
1408 |
msgid "Time Offset"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
-
#: lib\settings.php:
|
1412 |
msgid "hours"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
-
#: lib\settings.php:
|
1416 |
msgid "Host Timezone"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: lib\settings.php:
|
1420 |
msgid "Host Server"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
-
#: lib\settings.php:
|
1424 |
msgid "Browser Client"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
-
#: lib\settings.php:
|
1428 |
msgid "Safe Mode"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
-
#: lib\settings.php:
|
1432 |
msgid "File Open Restrictions"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
-
#: lib\settings.php:
|
1436 |
msgid "URL File Open"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
-
#: lib\settings.php:
|
1440 |
msgid "Disabled functions"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
-
#: lib\settings.php:
|
1444 |
msgid "none"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
-
#: lib\settings.php:
|
1448 |
msgid "not applicable/safe mode set"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
-
#: lib\settings.php:
|
1452 |
msgid "unlimited/up to server maximum"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
-
#: lib\settings.php:
|
1456 |
msgid "Memory Usage"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
-
#: lib\settings.php:
|
1460 |
msgid "Script Timeout Limit"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
-
#: lib\settings.php:
|
1464 |
-
#: lib\settings.php:
|
1465 |
msgid "seconds"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
-
#: lib\settings.php:
|
1469 |
msgid "unlimited"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
-
#: lib\settings.php:
|
1473 |
msgid "Browser Capabilities File"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
-
#: lib\settings.php:
|
1477 |
msgid "not installed"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
-
#: lib\settings.php:
|
1481 |
msgid "installed"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
-
#: lib\settings.php:
|
1485 |
msgid "as modified in Wordpress"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
-
#: lib\settings.php:
|
1489 |
msgid "Storage Engine"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
-
#: lib\settings.php:
|
1493 |
msgid "Charset/collation"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
-
#: lib\settings.php:
|
1497 |
msgid "Max User Connections"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
-
#: lib\settings.php:
|
1501 |
msgid "possibly too small"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
-
#: lib\settings.php:
|
1505 |
msgid "Allocation"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
-
#: lib\settings.php:
|
1509 |
msgid "possibly too big, reduces available RAM."
|
1510 |
msgstr ""
|
1511 |
|
1512 |
-
#: lib\settings.php:
|
1513 |
msgid "on demand"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
-
#: lib\settings.php:
|
1517 |
msgid "Cached Query Limit"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: lib\settings.php:
|
1521 |
-
#: lib\settings.php:
|
1522 |
-
#: lib\settings.php:
|
1523 |
msgid "disabled"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#: lib\settings.php:
|
1527 |
msgid "Wait Timeout"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
-
#: lib\settings.php:
|
1531 |
msgid "rows"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
-
#: lib\settings.php:
|
1535 |
msgid "not available"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
-
#: lib\settings.php:
|
1539 |
msgid "may be different from PHP offset"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
-
#: lib\settings.php:
|
1543 |
msgid "Want to uninstall WassUp?"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
-
#: lib\settings.php:
|
1547 |
msgid ""
|
1548 |
"No problem. Before you deactivate this plugin, check the box below to "
|
1549 |
"cleanup any data that was collected by WassUp that could be left behind."
|
1550 |
msgstr ""
|
1551 |
|
1552 |
-
#: lib\settings.php:
|
1553 |
msgid "Permanently remove WassUp data and settings."
|
1554 |
msgstr ""
|
1555 |
|
1556 |
-
#: lib\settings.php:
|
1557 |
msgid "WARNING"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#: lib\settings.php:
|
1561 |
msgid ""
|
1562 |
"All WassUp data and settings will be DELETED upon deactivation of this "
|
1563 |
"plugin."
|
1564 |
msgstr ""
|
1565 |
|
1566 |
-
#: lib\settings.php:
|
1567 |
#, php-format
|
1568 |
msgid ""
|
1569 |
"This action cannot be undone. Before uninstalling WassUp, you should backup "
|
1570 |
"your Wordpress database first. WassUp data is stored in the table %s."
|
1571 |
msgstr ""
|
1572 |
|
1573 |
-
#: lib\settings.php:
|
1574 |
#, php-format
|
1575 |
msgid "To help improve this plugin, we would appreciate your feedback at %s."
|
1576 |
msgstr ""
|
1577 |
|
1578 |
-
#: lib\settings.php:
|
1579 |
msgid "Frequently Asked Questions"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
-
#: lib\settings.php:
|
1583 |
msgid "How do I add WassUp's chart to my admin dashboard?"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
-
#: lib\settings.php:
|
1587 |
#, php-format
|
1588 |
msgid ""
|
1589 |
"Check the box for \"Enable widget/small chart in admin dashboard\" under %s "
|
1590 |
"tab."
|
1591 |
msgstr ""
|
1592 |
|
1593 |
-
#: lib\settings.php:
|
1594 |
-
#: lib\settings.php:
|
1595 |
-
#: lib\settings.php:
|
1596 |
-
#: lib\settings.php:
|
1597 |
-
#: lib\settings.php:
|
1598 |
-
#: lib\settings.php:
|
1599 |
#: lib\wassupadmin.php:892
|
1600 |
msgid "Options"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
-
#: lib\settings.php:
|
1604 |
msgid "How do I display WassUp widgets on my site?"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
-
#: lib\settings.php:
|
1608 |
msgid ""
|
1609 |
"From Wordpress widgets panel, drag the \"WassUp Online\" widget or the "
|
1610 |
"\"Wassup Top Stats\" widget from the list of available widgets on the left "
|
@@ -1612,86 +1616,86 @@ msgid ""
|
|
1612 |
"Customizer to add Wassup widgets interactively."
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: lib\settings.php:
|
1616 |
msgid ""
|
1617 |
"My Wordpress theme is not widget ready. Is it possible to display WassUp "
|
1618 |
"widgets on my site?"
|
1619 |
msgstr ""
|
1620 |
|
1621 |
-
#: lib\settings.php:
|
1622 |
msgid ""
|
1623 |
"Yes. Insert the template tag \"wassup_sidebar()\" into your theme's "
|
1624 |
"\"sidebar.php\" file to display Wassup widgets as a single combined widget "
|
1625 |
"on your site."
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#: lib\settings.php:
|
1629 |
msgid "How do I view the real-time visitor geolocation map in WassUp?"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
-
#: lib\settings.php:
|
1633 |
#, php-format
|
1634 |
msgid ""
|
1635 |
"Check the box for \"Display a GEO IP Map in spy visitors view\" in %s tab "
|
1636 |
"and save, then navigate to %s panel to see the map."
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: lib\settings.php:
|
1640 |
#: lib\wassupadmin.php:889
|
1641 |
msgid "SPY Visitors"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#: lib\settings.php:
|
1645 |
msgid ""
|
1646 |
"The map has vanished and I get a message like: \"Google has disabled use of "
|
1647 |
"the Maps API for this application\". How do I fix this?"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: lib\settings.php:
|
1651 |
msgid ""
|
1652 |
"Wassup-spy total daily map views has likely exceeded the Google!maps usage "
|
1653 |
"limit for Wassup plugin."
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#: lib\settings.php:
|
1657 |
#, php-format
|
1658 |
msgid ""
|
1659 |
"To fix, sign up for a free %s for your site's sole usage and enter the key "
|
1660 |
"under \"Spy Visitors settings\" in %s tab."
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: lib\settings.php:
|
1664 |
msgid "Key"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: lib\settings.php:
|
1668 |
msgid "How do I exclude a visitor from being recorded?"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: lib\settings.php:
|
1672 |
#, php-format
|
1673 |
msgid ""
|
1674 |
"Navigate to %s tab and enter a visitor's username, IP address, or hostname "
|
1675 |
"into the appropriate text area for that \"Recording Exclusion\" type."
|
1676 |
msgstr ""
|
1677 |
|
1678 |
-
#: lib\settings.php:
|
1679 |
msgid ""
|
1680 |
"How do I stop (temporarily) WassUp from recording new visits on my site?"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: lib\settings.php:
|
1684 |
#, php-format
|
1685 |
msgid "Uncheck the box for \"Enable statistics recording\" under %s tab."
|
1686 |
msgstr ""
|
1687 |
|
1688 |
-
#: lib\settings.php:
|
1689 |
msgid ""
|
1690 |
"In Wordpress multisite, how do I stop (temporarily) WassUp from recording "
|
1691 |
"new visits on all sites in the network?"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: lib\settings.php:
|
1695 |
#, php-format
|
1696 |
msgid ""
|
1697 |
"If plugin is \"network activated\", login as network admin, go to the "
|
@@ -1699,7 +1703,7 @@ msgid ""
|
|
1699 |
"Statistics Recording for network\" and save."
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: lib\settings.php:
|
1703 |
#, php-format
|
1704 |
msgid ""
|
1705 |
"If plugin is NOT \"network activated\", login as network admin, go to the "
|
@@ -1707,39 +1711,39 @@ msgid ""
|
|
1707 |
"the box for \"Enable Statistics Recording for network\" and save."
|
1708 |
msgstr ""
|
1709 |
|
1710 |
-
#: lib\settings.php:
|
1711 |
msgid ""
|
1712 |
"No data is being displayed; or \"Visitor Details\" panel show 0 records for "
|
1713 |
"the last 24 hours. How do I fix this?"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
-
#: lib\settings.php:
|
1717 |
#, php-format
|
1718 |
msgid ""
|
1719 |
"Check the box for \"Enable statistics recording\" setting under %s tab and "
|
1720 |
"save."
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: lib\settings.php:
|
1724 |
#, php-format
|
1725 |
msgid "Click the [Reset to Default] button under %s tab."
|
1726 |
msgstr ""
|
1727 |
|
1728 |
-
#: lib\settings.php:
|
1729 |
#, php-format
|
1730 |
msgid ""
|
1731 |
"Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save."
|
1732 |
msgstr ""
|
1733 |
|
1734 |
-
#: lib\settings.php:
|
1735 |
msgid "Manage File & Data"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: lib\settings.php:
|
1739 |
msgid "Deactivate and Re-activate Wassup from Wordpress Plugins panel."
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#: lib\settings.php:
|
1743 |
#, php-format
|
1744 |
msgid ""
|
1745 |
"If you have access to MySql/phpMyAdmin on your host server, run the MySql "
|
@@ -1747,20 +1751,20 @@ msgid ""
|
|
1747 |
"table name may be different in other Wordpress setups."
|
1748 |
msgstr ""
|
1749 |
|
1750 |
-
#: lib\settings.php:
|
1751 |
msgid ""
|
1752 |
"As a last resort, uninstall WassUp cleanly (delete data and files) and "
|
1753 |
"reinstall it."
|
1754 |
msgstr ""
|
1755 |
|
1756 |
-
#: lib\settings.php:
|
1757 |
msgid ""
|
1758 |
"My popular web site is hosted on a shared server with restrictive database "
|
1759 |
"size limits. How do I prevent WassUp's table from growing too big for my "
|
1760 |
"allocated quota?"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: lib\settings.php:
|
1764 |
#, php-format
|
1765 |
msgid ""
|
1766 |
"Navigate to %s tab and enable the setting for \"Auto Delete\" of old records "
|
@@ -1768,13 +1772,13 @@ msgid ""
|
|
1768 |
"exceeded."
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: lib\settings.php:
|
1772 |
msgid ""
|
1773 |
"WassUp visitor counts are much lower than actual for my website. Why is "
|
1774 |
"there a discrepancy and how do I fix it?"
|
1775 |
msgstr ""
|
1776 |
|
1777 |
-
#: lib\settings.php:
|
1778 |
msgid ""
|
1779 |
"Low visitor count is likely caused by page caching on your website. WassUp "
|
1780 |
"is incompatible with static page caching plugins such as WP Supercache, WP "
|
@@ -1782,60 +1786,60 @@ msgid ""
|
|
1782 |
"different (javascript-based) statistics plugin."
|
1783 |
msgstr ""
|
1784 |
|
1785 |
-
#: lib\settings.php:
|
1786 |
msgid "Is there any caching plugin that works with WassUp?"
|
1787 |
msgstr ""
|
1788 |
|
1789 |
-
#: lib\settings.php:
|
1790 |
#, php-format
|
1791 |
msgid "%s is the only caching plugin verified to work with WassUp."
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: lib\settings.php:
|
1795 |
msgid "How can I make Wassup run faster?"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: lib\settings.php:
|
1799 |
#, php-format
|
1800 |
msgid ""
|
1801 |
"Keep Wassup table size small by setting automatic delete of old records or "
|
1802 |
"do manual delete periodically under %s tab."
|
1803 |
msgstr ""
|
1804 |
|
1805 |
-
#: lib\settings.php:
|
1806 |
msgid ""
|
1807 |
"If using the \"Top Stats\" widget on your site, set refresh frequency to 15 "
|
1808 |
"minutes or higher."
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: lib\settings.php:
|
1812 |
#, php-format
|
1813 |
msgid ""
|
1814 |
"Reduce the number of recording exclusions (by ip/hostname/username/url) "
|
1815 |
"under %s tab."
|
1816 |
msgstr ""
|
1817 |
|
1818 |
-
#: lib\settings.php:
|
1819 |
#, php-format
|
1820 |
msgid ""
|
1821 |
"Delete the file(s) %s from the plugin subfolder 'lib' to stop Wassup from "
|
1822 |
"doing remote server queries for spam identification."
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: lib\settings.php:
|
1826 |
#, php-format
|
1827 |
msgid ""
|
1828 |
"As a last resort, stop all spam/malware detection on new hits by unchecking "
|
1829 |
"\"Enable Spam and malware detection on records\" under %s tab."
|
1830 |
msgstr ""
|
1831 |
|
1832 |
-
#: lib\settings.php:
|
1833 |
msgid ""
|
1834 |
"Why does WassUp stats sometimes show more page views than actual pages "
|
1835 |
"clicked by a person?"
|
1836 |
msgstr ""
|
1837 |
|
1838 |
-
#: lib\settings.php:
|
1839 |
msgid ""
|
1840 |
"\"Phantom\" page views can occur when a user's browser does automatic feed "
|
1841 |
"retrieval, link pre-fetching, a page refresh, or automatically adds your "
|
@@ -1844,11 +1848,11 @@ msgid ""
|
|
1844 |
"from user link clicks."
|
1845 |
msgstr ""
|
1846 |
|
1847 |
-
#: lib\settings.php:
|
1848 |
msgid "How do I upgrade WassUp safely when my site has frequent visitors?"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
-
#: lib\settings.php:
|
1852 |
#, php-format
|
1853 |
msgid ""
|
1854 |
"To upgrade WassUp when your site is busy, you must first disable statistics "
|
@@ -1857,11 +1861,11 @@ msgid ""
|
|
1857 |
"active."
|
1858 |
msgstr ""
|
1859 |
|
1860 |
-
#: lib\settings.php:
|
1861 |
msgid "An unspecified error occurred during plugin upgrade. What do I do next?"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
-
#: lib\settings.php:
|
1865 |
msgid ""
|
1866 |
"Wait a few minutes. Do NOT re-attempt to upgrade nor try to activate the "
|
1867 |
"plugin again! An activation error with no explanation is probably due to "
|
@@ -1871,18 +1875,18 @@ msgid ""
|
|
1871 |
"and verify that Wassup plugin has activated."
|
1872 |
msgstr ""
|
1873 |
|
1874 |
-
#: lib\settings.php:
|
1875 |
msgid "How do I uninstall WassUp cleanly?"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
-
#: lib\settings.php:
|
1879 |
msgid ""
|
1880 |
"From a single Wordpress site: navigate to Wordpress Plugins panel and "
|
1881 |
"deactivate WassUp plugin. Then, on the same page, click the \"delete\" link "
|
1882 |
"below WassUp name. This deletes both data and files permanently."
|
1883 |
msgstr ""
|
1884 |
|
1885 |
-
#: lib\settings.php:
|
1886 |
msgid ""
|
1887 |
"From Wordpress multisite Network admin panel: navigate to Plugins panel and "
|
1888 |
"deactivate WassUp plugin. If the plugin is not \"network activated\", "
|
@@ -1893,7 +1897,7 @@ msgid ""
|
|
1893 |
"the network."
|
1894 |
msgstr ""
|
1895 |
|
1896 |
-
#: lib\settings.php:
|
1897 |
#, php-format
|
1898 |
msgid ""
|
1899 |
"From a subsite in Wordpress multisite: navigate to %s tab and check the box "
|
@@ -1902,7 +1906,7 @@ msgid ""
|
|
1902 |
"subsite's data permanently. No files are deleted (not needed)."
|
1903 |
msgstr ""
|
1904 |
|
1905 |
-
#: lib\settings.php:
|
1906 |
#, php-format
|
1907 |
msgid ""
|
1908 |
"From a Wordpress 2.x site: navigate to %s tab and check the box for "
|
@@ -1914,62 +1918,62 @@ msgid ""
|
|
1914 |
"your host server."
|
1915 |
msgstr ""
|
1916 |
|
1917 |
-
#: lib\settings.php:
|
1918 |
#, php-format
|
1919 |
msgid "Visit the %s to find more answers to your WassUp questions."
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: lib\settings.php:
|
1923 |
msgid "Plugin Forum"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
-
#: lib\settings.php:
|
1927 |
msgid "How you can donate"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#: lib\settings.php:
|
1931 |
msgid ""
|
1932 |
"If you like this plugin, please consider making a donation to help keep it's "
|
1933 |
"development active."
|
1934 |
msgstr ""
|
1935 |
|
1936 |
-
#: lib\settings.php:
|
1937 |
#, php-format
|
1938 |
msgid "Donate by %s"
|
1939 |
msgstr ""
|
1940 |
|
1941 |
-
#: lib\settings.php:
|
1942 |
#, php-format
|
1943 |
msgid "Donate %s"
|
1944 |
msgstr ""
|
1945 |
|
1946 |
-
#: lib\settings.php:
|
1947 |
msgid "Send your bitcoin donation to this address"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: lib\uadetector.class.php:
|
1951 |
msgid "Script Injection Bot"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
-
#: lib\uadetector.class.php:
|
1955 |
msgid "Unknown Feedreader"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
-
#: lib\upgrade.php:
|
1959 |
msgid "COMPATIBILITY WARNING: non-MySQL database type detected!"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: lib\upgrade.php:
|
1963 |
msgid ""
|
1964 |
"WassUp uses complex MySQL queries that may not run on a different database "
|
1965 |
"type."
|
1966 |
msgstr ""
|
1967 |
|
1968 |
-
#: lib\upgrade.php:
|
1969 |
msgid "WassUp cannot generate accurate statistics with page caching enabled."
|
1970 |
msgstr ""
|
1971 |
|
1972 |
-
#: lib\upgrade.php:
|
1973 |
msgid ""
|
1974 |
"If your cache plugin stores whole Wordpress pages/posts as static HTML, then "
|
1975 |
"WassUp won't run properly. Please deactivate your cache plugin and remove "
|
@@ -1977,337 +1981,337 @@ msgid ""
|
|
1977 |
"plugin."
|
1978 |
msgstr ""
|
1979 |
|
1980 |
-
#: lib\upgrade.php:
|
1981 |
#, php-format
|
1982 |
msgid ""
|
1983 |
"WARNING: Insufficient memory: %s found! A minimum allocation of %s is "
|
1984 |
"recommended for WassUp and Wordpress."
|
1985 |
msgstr ""
|
1986 |
|
1987 |
-
#: lib\upgrade.php:
|
1988 |
#, php-format
|
1989 |
msgid "See %s for information about increasing Wordpress memory."
|
1990 |
msgstr ""
|
1991 |
|
1992 |
-
#: lib\upgrade.php:
|
1993 |
msgid "IMPORTANT: Wassup Widget has changed and must be re-installed."
|
1994 |
msgstr ""
|
1995 |
|
1996 |
-
#: lib\upgrade.php:
|
1997 |
msgid "Welcome to WassUP"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
-
#: lib\upgrade.php:
|
2001 |
#, php-format
|
2002 |
msgid "An error occurred during the install of table %s."
|
2003 |
msgstr ""
|
2004 |
|
2005 |
-
#: lib\wassup.class.php:
|
2006 |
msgid "Administrator"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
-
#: lib\wassup.class.php:
|
2010 |
msgid "Editor"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
-
#: lib\wassup.class.php:
|
2014 |
msgid "Author"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
-
#: lib\wassup.class.php:
|
2018 |
msgid "Contributor"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
-
#: lib\wassup.class.php:
|
2022 |
msgid "Subscriber"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
-
#: lib\wassup.class.php:
|
2026 |
msgid "One - 2 lines chart 1 axis"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
-
#: lib\wassup.class.php:
|
2030 |
msgid "Two - 2 lines chart 2 axes"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
-
#: lib\wassup.class.php:
|
2034 |
msgid "Everything"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
-
#: lib\wassup.class.php:
|
2038 |
msgid "No spider"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
-
#: lib\wassup.class.php:
|
2042 |
msgid "No Spam"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
-
#: lib\wassup.class.php:
|
2046 |
msgid "No Spam, No Spider"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
-
#: lib\wassup.class.php:
|
2050 |
msgid "Users logged in"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
-
#: lib\wassup.class.php:
|
2054 |
-
#: lib\compat-lib\compat_php.php:
|
2055 |
-
#: widgets\widgets.php:
|
2056 |
msgid "Comment authors"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: lib\wassup.class.php:
|
2060 |
msgid "Referrer from search engine"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: lib\wassup.class.php:
|
2064 |
msgid "Referrer from ext link"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: lib\wassup.class.php:
|
2068 |
msgid "Don't delete anything"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
-
#: lib\wassup.class.php:
|
2072 |
-
#: lib\compat-lib\compat_php.php:
|
2073 |
msgid "24 hours"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
-
#: lib\wassup.class.php:
|
2077 |
-
#: lib\compat-lib\compat_php.php:
|
2078 |
msgid "7 days"
|
2079 |
msgstr ""
|
2080 |
|
2081 |
-
#: lib\wassup.class.php:
|
2082 |
-
#: lib\compat-lib\compat_php.php:
|
2083 |
msgid "2 weeks"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: lib\wassup.class.php:
|
2087 |
-
#: lib\compat-lib\compat_php.php:
|
2088 |
msgid "1 month"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
-
#: lib\wassup.class.php:
|
2092 |
-
#: lib\compat-lib\compat_php.php:
|
2093 |
msgid "3 months"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: lib\wassup.class.php:
|
2097 |
-
#: lib\compat-lib\compat_php.php:
|
2098 |
msgid "6 months"
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: lib\wassup.class.php:
|
2102 |
-
#: lib\compat-lib\compat_php.php:
|
2103 |
msgid "1 year"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: lib\wassup.class.php:
|
2107 |
msgid "All"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: lib\wassup.class.php:
|
2111 |
msgid "Spider and spam"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: lib\wassup.class.php:
|
2115 |
msgid "IP Address"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: lib\wassup.class.php:
|
2119 |
msgid "URL Request"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: lib\wassup.class.php:
|
2123 |
msgid "1 hour"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: lib\wassup.class.php:
|
2127 |
msgid "6 hours"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: lib\wassup.class.php:
|
2131 |
msgid "12 hours"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: lib\wassup.class.php:
|
2135 |
msgid "all time"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: lib\wassup.class.php:
|
2139 |
msgid ""
|
2140 |
"Permission denied! Sorry, you must be an 'administrator' to change settings."
|
2141 |
msgstr ""
|
2142 |
|
2143 |
-
#: lib\wassup.class.php:
|
2144 |
msgid "Nothing to do!"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
-
#: lib\wassup.class.php:
|
2148 |
msgid "not required"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
-
#: lib\wassup.class.php:
|
2152 |
-
#: lib\compat-lib\compat_php.php:
|
2153 |
msgid "Wassup options updated successfully"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
-
#: lib\wassup.class.php:
|
2157 |
msgid "error"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
-
#: lib\wassup.class.php:
|
2161 |
msgid "warning"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
-
#: lib\wassup.class.php:
|
2165 |
msgid "updated"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
-
#: lib\wassup.class.php:
|
2169 |
msgid "upgraded"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
-
#: lib\wassup.class.php:
|
2173 |
msgid "deleted"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
-
#: lib\wassup.class.php:
|
2177 |
msgid "ERROR"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: lib\wassup.class.php:
|
2181 |
#, php-format
|
2182 |
msgid "%s error!"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
-
#: lib\wassup.class.php:
|
2186 |
#, php-format
|
2187 |
msgid "%s encountered an error."
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: lib\wassup.class.php:
|
2191 |
msgid "Wassup auto-delete notice"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: lib\wassup.class.php:
|
2195 |
#, php-format
|
2196 |
msgid "Auto-delete deleted %d old %s records today."
|
2197 |
msgstr ""
|
2198 |
|
2199 |
-
#: lib\wassup.class.php:
|
2200 |
#, php-format
|
2201 |
msgid "Error with TABLE %s: Not found"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: lib\wassup.class.php:
|
2205 |
#, php-format
|
2206 |
msgid "Error with \"SHOW CREATE TABLE\" for %s."
|
2207 |
msgstr ""
|
2208 |
|
2209 |
-
#: lib\wassup.class.php:
|
2210 |
#, php-format
|
2211 |
msgid "Table structure of table %s"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: lib\wassup.class.php:
|
2215 |
#, php-format
|
2216 |
msgid "Data contents of table %s"
|
2217 |
msgstr ""
|
2218 |
|
2219 |
-
#: lib\wassup.class.php:
|
2220 |
#, php-format
|
2221 |
msgid "Error getting table structure of %s: %s"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: lib\wassup.class.php:
|
2225 |
#, php-format
|
2226 |
msgid "Error getting table structure of %s"
|
2227 |
msgstr ""
|
2228 |
|
2229 |
-
#: lib\wassup.class.php:
|
2230 |
#, php-format
|
2231 |
msgid "Error with table %s: %s"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
-
#: lib\wassup.class.php:
|
2235 |
#, php-format
|
2236 |
msgid "Error with table %s: No data"
|
2237 |
msgstr ""
|
2238 |
|
2239 |
-
#: lib\wassup.class.php:
|
2240 |
#, php-format
|
2241 |
msgid "Error exporting data from table %s: %s"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: lib\wassup.class.php:
|
2245 |
#, php-format
|
2246 |
msgid "End of data contents of table %s"
|
2247 |
msgstr ""
|
2248 |
|
2249 |
-
#: lib\wassup.class.php:
|
2250 |
#, php-format
|
2251 |
msgid "Interrupted data contents of table %s"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
-
#: lib\wassup.class.php:
|
2255 |
#, php-format
|
2256 |
msgid "End time: %d"
|
2257 |
msgstr ""
|
2258 |
|
2259 |
-
#: lib\wassup.class.php:
|
2260 |
-
#: lib\compat-lib\compat_php.php:
|
2261 |
#, php-format
|
2262 |
msgid "%d out of %d records exported."
|
2263 |
msgstr ""
|
2264 |
|
2265 |
-
#: lib\wassup.class.php:
|
2266 |
-
#: lib\compat-lib\compat_php.php:
|
2267 |
#, php-format
|
2268 |
msgid "Last record ID: %d"
|
2269 |
msgstr ""
|
2270 |
|
2271 |
-
#: lib\wassup.class.php:
|
2272 |
-
#: lib\compat-lib\compat_php.php:
|
2273 |
msgid "direct hit"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: lib\wassup.class.php:
|
2277 |
-
#: lib\compat-lib\compat_php.php:
|
2278 |
msgid "from your site"
|
2279 |
msgstr ""
|
2280 |
|
2281 |
-
#: lib\wassupadmin.php:
|
2282 |
msgid "paused"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
-
#: lib\wassupadmin.php:
|
2286 |
msgid "Sorry, delete failed!"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
-
#: lib\wassupadmin.php:
|
2290 |
msgid "Delete record failed!"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
-
#: lib\wassupadmin.php:
|
2294 |
msgid "Hide Search"
|
2295 |
msgstr ""
|
2296 |
|
2297 |
-
#: lib\wassupadmin.php:
|
2298 |
msgid "Collapse All"
|
2299 |
msgstr ""
|
2300 |
|
2301 |
-
#: lib\wassupadmin.php:
|
2302 |
-
#: lib\wassupadmin.php:
|
2303 |
msgid "Expand All"
|
2304 |
msgstr ""
|
2305 |
|
2306 |
-
#: lib\wassupadmin.php:
|
2307 |
msgid "Expand Chronology"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
-
#: lib\wassupadmin.php:
|
2311 |
msgid "Collapse Chronology"
|
2312 |
msgstr ""
|
2313 |
|
@@ -2424,532 +2428,536 @@ msgstr ""
|
|
2424 |
msgid "Exec time"
|
2425 |
msgstr ""
|
2426 |
|
2427 |
-
#: lib\wassupadmin.php:
|
2428 |
msgid "Legend"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
-
#: lib\wassupadmin.php:
|
2432 |
msgid "Logged-in Users"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
-
#: lib\wassupadmin.php:
|
2436 |
msgid "Comment Authors"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
-
#: lib\wassupadmin.php:
|
2440 |
msgid "Spiders/bots"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
-
#: lib\wassupadmin.php:
|
2444 |
-
#: lib\compat-lib\compat_php.php:
|
2445 |
msgid "Visitors online"
|
2446 |
msgstr ""
|
2447 |
|
2448 |
-
#: lib\wassupadmin.php:
|
2449 |
msgid "From your site"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
-
#: lib\wassupadmin.php:
|
2453 |
msgid "LOGGED IN USER"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: lib\wassupadmin.php:
|
2457 |
msgid "ADMINISTRATOR"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
-
#: lib\wassupadmin.php:
|
2461 |
msgid "COMMENT AUTHOR"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
-
#: lib\wassupadmin.php:
|
2465 |
msgid "show raw table"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
-
#: lib\wassupadmin.php:
|
2469 |
msgid "Show the items as raw table"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
-
#: lib\wassupadmin.php:
|
2473 |
msgid "Comments Authors"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
-
#: lib\wassupadmin.php:
|
2477 |
msgid "Pause"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
-
#: lib\wassupadmin.php:
|
2481 |
msgid "Play"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
-
#: lib\wassupadmin.php:
|
2485 |
msgid "Show map"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
-
#: lib\wassupadmin.php:
|
2489 |
msgid "Show ip geo location on map"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
-
#: lib\wassupadmin.php:
|
2493 |
msgid "Spy items by"
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: lib\wassupadmin.php:
|
2497 |
msgid "WassUp recording is disabled"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: lib\wassupadmin.php:
|
2501 |
msgid "WassUp recording is disabled for network."
|
2502 |
msgstr ""
|
2503 |
|
2504 |
-
#: lib\wassupadmin.php:
|
2505 |
msgid "Show details from the last"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
-
#: lib\wassupadmin.php:
|
2509 |
msgid "Items per page"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
-
#: lib\wassupadmin.php:
|
2513 |
msgid "Filter items for"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
-
#: lib\wassupadmin.php:
|
2517 |
msgid "Visits"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
-
#: lib\wassupadmin.php:
|
2521 |
msgid "Pageviews"
|
2522 |
msgstr ""
|
2523 |
|
2524 |
-
#: lib\wassupadmin.php:
|
2525 |
msgid "Pages/Visits"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
-
#: lib\wassupadmin.php:
|
2529 |
msgid "Spams"
|
2530 |
msgstr ""
|
2531 |
|
2532 |
-
#: lib\wassupadmin.php:
|
2533 |
msgid "Spam/Malware Options"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
-
#: lib\wassupadmin.php:
|
2537 |
msgid "Enable Spam and Malware Check on Records"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
-
#: lib\wassupadmin.php:
|
|
|
|
|
|
|
|
|
2541 |
msgid "refresh screen"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
-
#: lib\wassupadmin.php:
|
2545 |
#, php-format
|
2546 |
msgid "Auto refresh in %s seconds"
|
2547 |
msgstr ""
|
2548 |
|
2549 |
-
#: lib\wassupadmin.php:
|
2550 |
msgid "hide chart"
|
2551 |
msgstr ""
|
2552 |
|
2553 |
-
#: lib\wassupadmin.php:
|
2554 |
msgid "Hide the chart"
|
2555 |
msgstr ""
|
2556 |
|
2557 |
-
#: lib\wassupadmin.php:
|
2558 |
msgid "Hide chart"
|
2559 |
msgstr ""
|
2560 |
|
2561 |
-
#: lib\wassupadmin.php:
|
2562 |
msgid "show chart"
|
2563 |
msgstr ""
|
2564 |
|
2565 |
-
#: lib\wassupadmin.php:
|
2566 |
msgid "Show the chart"
|
2567 |
msgstr ""
|
2568 |
|
2569 |
-
#: lib\wassupadmin.php:
|
2570 |
msgid "Show chart"
|
2571 |
msgstr ""
|
2572 |
|
2573 |
-
#: lib\wassupadmin.php:
|
2574 |
#, php-format
|
2575 |
msgid "Top Stats for %s"
|
2576 |
msgstr ""
|
2577 |
|
2578 |
-
#: lib\wassupadmin.php:
|
2579 |
msgid "Show top stats"
|
2580 |
msgstr ""
|
2581 |
|
2582 |
-
#: lib\wassupadmin.php:
|
2583 |
#, php-format
|
2584 |
msgid "Top stats for %s in popup"
|
2585 |
msgstr ""
|
2586 |
|
2587 |
-
#: lib\wassupadmin.php:
|
2588 |
#, php-format
|
2589 |
msgid "%s matches found for search"
|
2590 |
msgstr ""
|
2591 |
|
2592 |
-
#: lib\wassupadmin.php:
|
2593 |
#, php-format
|
2594 |
msgid "%s items marked for IP"
|
2595 |
msgstr ""
|
2596 |
|
2597 |
-
#: lib\wassupadmin.php:
|
2598 |
msgid "Filter by marked IP"
|
2599 |
msgstr ""
|
2600 |
|
2601 |
-
#: lib\wassupadmin.php:
|
2602 |
msgid "Records display interrupted."
|
2603 |
msgstr ""
|
2604 |
|
2605 |
-
#: lib\wassupadmin.php:
|
2606 |
msgid "Unable to display records."
|
2607 |
msgstr ""
|
2608 |
|
2609 |
-
#: lib\wassupadmin.php:
|
2610 |
msgid "FEEDREADER"
|
2611 |
msgstr ""
|
2612 |
|
2613 |
-
#: lib\wassupadmin.php:
|
2614 |
msgid "SUBSCRIBER(S)"
|
2615 |
msgstr ""
|
2616 |
|
2617 |
-
#: lib\wassupadmin.php:
|
2618 |
msgid "SPIDER"
|
2619 |
msgstr ""
|
2620 |
|
2621 |
-
#: lib\wassupadmin.php:
|
2622 |
msgid "delete"
|
2623 |
msgstr ""
|
2624 |
|
2625 |
-
#: lib\wassupadmin.php:
|
2626 |
msgid "Delete ALL marked records with this IP"
|
2627 |
msgstr ""
|
2628 |
|
2629 |
-
#: lib\wassupadmin.php:
|
2630 |
msgid "unmark"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
-
#: lib\wassupadmin.php:
|
2634 |
msgid "UnMark IP"
|
2635 |
msgstr ""
|
2636 |
|
2637 |
-
#: lib\wassupadmin.php:
|
2638 |
msgid "Delete this record"
|
2639 |
msgstr ""
|
2640 |
|
2641 |
-
#: lib\wassupadmin.php:
|
2642 |
msgid "mark"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
-
#: lib\wassupadmin.php:
|
2646 |
msgid "Mark IP"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
-
#: lib\wassupadmin.php:
|
2650 |
msgid "SEARCH ENGINE"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
-
#: lib\wassupadmin.php:
|
2654 |
msgid "page"
|
2655 |
msgstr ""
|
2656 |
|
2657 |
-
#: lib\wassupadmin.php:
|
2658 |
msgid "KEYWORDS"
|
2659 |
msgstr ""
|
2660 |
|
2661 |
-
#: lib\wassupadmin.php:
|
2662 |
msgid "Probably SPAM!"
|
2663 |
msgstr ""
|
2664 |
|
2665 |
-
#: lib\wassupadmin.php:
|
2666 |
msgid "Referer Spam"
|
2667 |
msgstr ""
|
2668 |
|
2669 |
-
#: lib\wassupadmin.php:
|
2670 |
msgid "Comment Spam"
|
2671 |
msgstr ""
|
2672 |
|
2673 |
-
#: lib\wassupadmin.php:
|
2674 |
msgid "Probably hack/malware attempt!"
|
2675 |
msgstr ""
|
2676 |
|
2677 |
-
#: lib\wassupadmin.php:
|
2678 |
msgid "BROWSER"
|
2679 |
msgstr ""
|
2680 |
|
2681 |
-
#: lib\wassupadmin.php:
|
2682 |
msgid "RESOLUTION"
|
2683 |
msgstr ""
|
2684 |
|
2685 |
-
#: lib\wassupadmin.php:
|
2686 |
msgid "Graph of visitor hits"
|
2687 |
msgstr ""
|
2688 |
|
2689 |
-
#: lib\wassupadmin.php:
|
2690 |
msgid "Too few records to print chart"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
-
#: lib\wassupadmin.php:
|
2694 |
#, php-format
|
2695 |
msgid "Invalid page request %s"
|
2696 |
msgstr ""
|
2697 |
|
2698 |
-
#: lib\wassupadmin.php:
|
2699 |
msgid "Stats"
|
2700 |
msgstr ""
|
2701 |
|
2702 |
-
#: lib\wassupadmin.php:
|
2703 |
msgid "More"
|
2704 |
msgstr ""
|
2705 |
|
2706 |
-
#: lib\wassupadmin.php:
|
2707 |
-
#: lib\compat-lib\compat_php.php:
|
2708 |
msgid "visitor stats chart"
|
2709 |
msgstr ""
|
2710 |
|
2711 |
-
#: lib\wassupadmin.php:
|
2712 |
msgid "More Stats"
|
2713 |
msgstr ""
|
2714 |
|
2715 |
-
#: lib\wassupadmin.php:
|
2716 |
msgid "Registered users"
|
2717 |
msgstr ""
|
2718 |
|
2719 |
-
#: lib\wassupadmin.php:
|
2720 |
-
#: widgets\widget_functions.php:
|
2721 |
msgid "Visitor online"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
-
#: lib\wassupadmin.php:
|
2725 |
msgid "No online data!"
|
2726 |
msgstr ""
|
2727 |
|
2728 |
-
#: lib\wassupadmin.php:
|
2729 |
-
#: widgets\widget_functions.php:
|
2730 |
msgid "powered by"
|
2731 |
msgstr ""
|
2732 |
|
2733 |
-
#: lib\wassupadmin.php:
|
2734 |
-
#: widgets\widget_functions.php:
|
2735 |
msgid "Real Time Visitors Tracking"
|
2736 |
msgstr ""
|
2737 |
|
2738 |
-
#: lib\compat-lib\compat_widget.php:
|
2739 |
-
#: widgets\widgets.php:
|
2740 |
msgid "Widget style options"
|
2741 |
msgstr ""
|
2742 |
|
2743 |
-
#: lib\compat-lib\compat_widget.php:
|
2744 |
-
#: widgets\widgets.php:
|
2745 |
#, php-format
|
2746 |
msgid "Class attribute for %s list:"
|
2747 |
msgstr ""
|
2748 |
|
2749 |
-
#: lib\compat-lib\compat_widget.php:
|
2750 |
-
#: widgets\widgets.php:
|
2751 |
msgid "Max. chars to display from left"
|
2752 |
msgstr ""
|
2753 |
|
2754 |
-
#: lib\compat-lib\compat_widget.php:
|
2755 |
-
#: widgets\widgets.php:
|
2756 |
msgid "enter \"0\" for theme default/line wrap of long texts"
|
2757 |
msgstr ""
|
2758 |
|
2759 |
-
#: widgets\widgets.php:
|
2760 |
msgid "base widget"
|
2761 |
msgstr ""
|
2762 |
|
2763 |
-
#: widgets\widgets.php:
|
2764 |
msgid "Online"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
-
#: widgets\widgets.php:
|
2768 |
msgid "Show counts of your site's visitors who are currently online."
|
2769 |
msgstr ""
|
2770 |
|
2771 |
-
#: widgets\widgets.php:
|
2772 |
msgid "Online Now"
|
2773 |
msgstr ""
|
2774 |
|
2775 |
-
#: widgets\widgets.php:
|
2776 |
msgid "Show online counts for:"
|
2777 |
msgstr ""
|
2778 |
|
2779 |
-
#: widgets\widgets.php:
|
2780 |
msgid "All current visitors"
|
2781 |
msgstr ""
|
2782 |
|
2783 |
-
#: widgets\widgets.php:
|
2784 |
msgid "Logged-in users"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
-
#: widgets\widgets.php:
|
2788 |
msgid "Regular visitors"
|
2789 |
msgstr ""
|
2790 |
|
2791 |
-
#: widgets\widgets.php:
|
2792 |
msgid "Others"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
-
#: widgets\widgets.php:
|
2796 |
msgid "Online Users Details"
|
2797 |
msgstr ""
|
2798 |
|
2799 |
-
#: widgets\widgets.php:
|
2800 |
msgid "Show online usernames to registered users"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
-
#: widgets\widgets.php:
|
2804 |
msgid "Show country flags of users online"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
-
#: widgets\widgets.php:
|
2808 |
msgid "online counts are automatically cached for 1 minute."
|
2809 |
msgstr ""
|
2810 |
|
2811 |
-
#: widgets\widgets.php:
|
2812 |
msgid "empty results are not displayed."
|
2813 |
msgstr ""
|
2814 |
|
2815 |
-
#: widgets\widgets.php:
|
2816 |
msgid "Top Stats"
|
2817 |
msgstr ""
|
2818 |
|
2819 |
-
#: widgets\widgets.php:
|
2820 |
msgid ""
|
2821 |
"List your site's most popular or trending items from Wassup's latest stats "
|
2822 |
"data."
|
2823 |
msgstr ""
|
2824 |
|
2825 |
-
#: widgets\widgets.php:
|
2826 |
msgid "of first checked item below"
|
2827 |
msgstr ""
|
2828 |
|
2829 |
-
#: widgets\widgets.php:
|
2830 |
msgid "List Top Results for"
|
2831 |
msgstr ""
|
2832 |
|
2833 |
-
#: widgets\widgets.php:
|
2834 |
msgid "Stat item"
|
2835 |
msgstr ""
|
2836 |
|
2837 |
-
#: widgets\widgets.php:
|
2838 |
msgid "max limit"
|
2839 |
msgstr ""
|
2840 |
|
2841 |
-
#: widgets\widgets.php:
|
2842 |
msgid "Titles of posts and pages"
|
2843 |
msgstr ""
|
2844 |
|
2845 |
-
#: widgets\widgets.php:
|
2846 |
msgid "Latest articles"
|
2847 |
msgstr ""
|
2848 |
|
2849 |
-
#: widgets\widgets.php:
|
2850 |
msgid "Search engine searches"
|
2851 |
msgstr ""
|
2852 |
|
2853 |
-
#: widgets\widgets.php:
|
2854 |
msgid "Latest searches"
|
2855 |
msgstr ""
|
2856 |
|
2857 |
-
#: widgets\widgets.php:
|
2858 |
msgid "External links that generated referrals to your site"
|
2859 |
msgstr ""
|
2860 |
|
2861 |
-
#: widgets\widgets.php:
|
2862 |
msgid "Latest referrers"
|
2863 |
msgstr ""
|
2864 |
|
2865 |
-
#: widgets\widgets.php:
|
2866 |
msgid "Latest URL requests"
|
2867 |
msgstr ""
|
2868 |
|
2869 |
-
#: widgets\widgets.php:
|
2870 |
msgid "Client browser software"
|
2871 |
msgstr ""
|
2872 |
|
2873 |
-
#: widgets\widgets.php:
|
2874 |
msgid "Latest browsers"
|
2875 |
msgstr ""
|
2876 |
|
2877 |
-
#: widgets\widgets.php:
|
2878 |
msgid "Client device/operating software"
|
2879 |
msgstr ""
|
2880 |
|
2881 |
-
#: widgets\widgets.php:
|
2882 |
msgid "Latest OS"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
-
#: widgets\widgets.php:
|
2886 |
msgid "Visitors country/language"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
-
#: widgets\widgets.php:
|
2890 |
msgid "Latest locale"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
-
#: widgets\widgets.php:
|
2894 |
msgid "Show counts for each item"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
-
#: widgets\widgets.php:
|
2898 |
msgid "Statistics timeframe"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
-
#: widgets\widgets.php:
|
2902 |
msgid ""
|
2903 |
"select 1-30 days for latest top results, 1-12 hours for trending results"
|
2904 |
msgstr ""
|
2905 |
|
2906 |
-
#: widgets\widgets.php:
|
2907 |
msgid "Refresh statistics every:"
|
2908 |
msgstr ""
|
2909 |
|
2910 |
-
#: widgets\widgets.php:
|
2911 |
msgid "known spammers and spiders are excluded from results."
|
2912 |
msgstr ""
|
2913 |
|
2914 |
-
#: widgets\widgets.php:
|
2915 |
msgid "Trending"
|
2916 |
msgstr ""
|
2917 |
|
2918 |
-
#: widgets\widget_functions.php:
|
2919 |
msgid "Other"
|
2920 |
msgstr ""
|
2921 |
|
2922 |
-
#: widgets\widget_functions.php:
|
2923 |
#, php-format
|
2924 |
msgid "%s articles"
|
2925 |
msgstr ""
|
2926 |
|
2927 |
-
#: widgets\widget_functions.php:
|
2928 |
#, php-format
|
2929 |
msgid "%s searches"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: widgets\widget_functions.php:
|
2933 |
#, php-format
|
2934 |
msgid "%s referrers"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
-
#: widgets\widget_functions.php:
|
2938 |
#, php-format
|
2939 |
msgid "%s requests"
|
2940 |
msgstr ""
|
2941 |
|
2942 |
-
#: widgets\widget_functions.php:
|
2943 |
#, php-format
|
2944 |
msgid "%s browsers"
|
2945 |
msgstr ""
|
2946 |
|
2947 |
-
#: widgets\widget_functions.php:
|
2948 |
#, php-format
|
2949 |
msgid "%s OS"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: widgets\widget_functions.php:
|
2953 |
#, php-format
|
2954 |
msgid "%s locale"
|
2955 |
msgstr ""
|
8 |
msgstr ""
|
9 |
"Project-Id-Version: WassUp 1.9.1\n"
|
10 |
"Report-Msgid-Bugs-To: michele@befree.it\n"
|
11 |
+
"POT-Creation-Date: 2016-10-19 15:20-0400\n"
|
12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
17 |
"Content-Type: text/plain; charset=CHARSET\n"
|
18 |
"Content-Transfer-Encoding: 8bit\n"
|
19 |
|
20 |
+
#: wassup.php:160
|
21 |
#, php-format
|
22 |
msgid "File %s does not exist!"
|
23 |
msgstr ""
|
24 |
|
25 |
+
#: wassup.php:175
|
|
|
|
|
|
|
|
|
|
|
26 |
msgid "Sorry! \"Network Activation\" is DISABLED for subdomain networks."
|
27 |
msgstr ""
|
28 |
|
29 |
+
#: wassup.php:176
|
30 |
#, php-format
|
31 |
msgid "%s must be activated on each subdomain site separately."
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: wassup.php:177
|
35 |
msgid ""
|
36 |
"Activate plugin on your parent domain (main site) to set default options for "
|
37 |
"your network."
|
38 |
msgstr ""
|
39 |
|
40 |
+
#: wassup.php:178
|
41 |
msgid "Back to Plugins"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: wassup.php:241 lib\upgrade.php:710
|
45 |
msgid "Database created/upgraded successfully"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: wassup.php:243
|
49 |
msgid ""
|
50 |
"An error occurred during the upgrade. WassUp table structure may not have "
|
51 |
"been updated properly."
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: wassup.php:247
|
55 |
msgid "activation successful"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: wassup.php:249
|
59 |
msgid "activation successful. No upgrade necessary."
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: wassup.php:276
|
63 |
#, php-format
|
64 |
msgid "%s: database upgrade failed!"
|
65 |
msgstr ""
|
66 |
|
67 |
+
#: wassup.php:287
|
68 |
#, php-format
|
69 |
msgid "%s: plugin install/upgrade failed!"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: wassup.php:469 wassup.php:472 lib\action.php:53
|
73 |
msgid "Bad request!"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: wassup.php:672
|
77 |
msgid "Export ERROR: nonce failure!"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: wassup.php:675 lib\wassup.class.php:1903 lib\compat-lib\compat_php.php:1913
|
81 |
msgid "Export ERROR: login required!"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: wassup.php:718
|
85 |
msgid "Export failed due to script interruption or timeout error!"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: wassup.php:732
|
89 |
msgid "ERROR: Nothing to Export."
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: wassup.php:1028 wassup.php:3310 lib\uadetector.class.php:600
|
93 |
+
#: lib\uadetector.class.php:1431
|
94 |
msgid "Unknown Spider"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: wassup.php:1029
|
98 |
msgid "Unknown Browser"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: wassup.php:1659
|
102 |
msgid "Spoofer bot"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: wassup.php:2093
|
106 |
#, php-format
|
107 |
msgid "%s WassUp Plugin table has reached maximum size!"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: wassup.php:2093
|
111 |
msgid "ALERT"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: wassup.php:2094
|
115 |
msgid "Hi"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: wassup.php:2094
|
119 |
msgid ""
|
120 |
"you have received this email because your WassUp Database table at your "
|
121 |
"Wordpress blog"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: wassup.php:2094
|
125 |
msgid "has reached the maximum value set in the options menu"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: wassup.php:2095
|
129 |
msgid ""
|
130 |
"This is only a reminder, please take the actions you want in the WassUp "
|
131 |
"options menu"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: wassup.php:2095
|
135 |
msgid "This alert now will be removed and you will be able to set a new one"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: wassup.php:2096
|
139 |
msgid ""
|
140 |
"Thank you for using WassUp plugin. Check if there is a new version available "
|
141 |
"here:"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: wassup.php:2096
|
145 |
msgid "Have a nice day!"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: wassup.php:2337 wassup.php:2781
|
149 |
msgid "encrypted search"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: wassup.php:3297 wassup.php:3304
|
153 |
msgid "Feed Reader"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: wassup.php:3305
|
157 |
msgid "feed reader"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: wassup.php:3912
|
161 |
msgid "timestamp"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: wassup.php:3913
|
165 |
msgid "If above timestamp is not current time, this page is cached"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: wassup.php:4094
|
169 |
msgid "Visitors Online"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: wassup.php:4112 lib\compat-lib\compat_widget.php:151 widgets\widgets.php:144
|
173 |
+
#: widgets\widgets.php:335 widgets\widgets.php:549
|
174 |
msgid "No Data"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: lib\action.php:44
|
178 |
msgid "Missing or invalid action parameter!"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: lib\action.php:56
|
182 |
msgid "Login required!"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: lib\action.php:60
|
186 |
msgid "Missing or invalid whash parameter!"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: lib\action.php:70
|
190 |
msgid "invalid hash parameter!"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: lib\action.php:74
|
194 |
msgid "Nothing to do"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: lib\action.php:94
|
198 |
msgid "An error occurred during delete of"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: lib\action.php:99 lib\action.php:110 lib\action.php:113 lib\action.php:116
|
202 |
msgid "Error"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: lib\action.php:103
|
206 |
#, php-format
|
207 |
msgid "%d records deleted!"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: lib\action.php:149
|
211 |
msgid "ERROR: bad date parameter"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: lib\action.php:202
|
215 |
msgid "Error: Nothing to do!"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: lib\akismet.class.php:121
|
219 |
msgid "Timed out waiting for server response."
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: lib\akismet.class.php:123 lib\akismet.class.php:126
|
223 |
msgid "The response could not be retrieved."
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: lib\akismet.class.php:133
|
227 |
msgid "Could not connect to Akismet server."
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: lib\akismet.class.php:187
|
231 |
msgid "Your Akismet API key is not valid."
|
232 |
msgstr ""
|
233 |
|
234 |
+
#: lib\compatibility.php:78
|
235 |
msgid "Sorry, WassUp requires WordPress 2.2 or higher to work"
|
236 |
msgstr ""
|
237 |
|
239 |
msgid "WARNING! WassUp's backward compatibility modules are missing."
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: lib\compatibility.php:86 lib\compatibility.php:95
|
243 |
#, php-format
|
244 |
msgid ""
|
245 |
"Download and install the full version of Wassup with compatibility library "
|
246 |
"included directly from %s."
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: lib\compatibility.php:91
|
250 |
+
msgid ""
|
251 |
+
"Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups"
|
252 |
+
msgstr ""
|
253 |
+
|
254 |
+
#: lib\compatibility.php:94
|
255 |
msgid "WARNING! WassUp's PHP compatibility module is missing."
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: lib\main.php:56 lib\settings.php:316 lib\settings.php:370
|
259 |
+
#: lib\settings.php:1004 lib\settings.php:1020 lib\settings.php:1081
|
260 |
+
#: lib\settings.php:1101
|
261 |
msgid "Next"
|
262 |
msgstr ""
|
263 |
|
264 |
+
#: lib\main.php:58
|
265 |
msgid "Previous"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: lib\main.php:112
|
269 |
#, php-format
|
270 |
msgid "You must specify the %s"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: lib\main.php:112
|
274 |
msgid "number of pages"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: lib\main.php:116
|
278 |
#, php-format
|
279 |
msgid "You must specify the %s to show per page"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: lib\main.php:116
|
283 |
msgid "limit of items"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: lib\main.php:165
|
287 |
msgid "Pages"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: lib\main.php:406
|
291 |
msgid "Raw data"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: lib\main.php:407
|
295 |
msgid "Visitor type"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: lib\main.php:419 widgets\widget_functions.php:210
|
299 |
msgid "Logged-in user"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: lib\main.php:421
|
303 |
msgid "Spammer/Hacker"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: lib\main.php:423 lib\main.php:588
|
307 |
msgid "Spammer"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: lib\main.php:425 lib\main.php:608 widgets\widget_functions.php:220
|
311 |
msgid "Comment author"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: lib\main.php:427 lib\main.php:478 lib\main.php:480
|
315 |
msgid "Feed"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: lib\main.php:429 lib\main.php:483 lib\main.php:595 lib\wassup.class.php:478
|
319 |
+
#: lib\wassup.class.php:534 lib\compat-lib\compat_php.php:491
|
320 |
+
#: lib\compat-lib\compat_php.php:547
|
321 |
msgid "Spider"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: lib\main.php:431 lib\main.php:567 widgets\widget_functions.php:230
|
325 |
msgid "Regular visitor"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: lib\main.php:434
|
329 |
msgid "IP"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: lib\main.php:435 lib\wassupadmin.php:1776
|
333 |
msgid "Hostname"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: lib\main.php:436
|
337 |
msgid "Url Requested"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: lib\main.php:443
|
341 |
msgid "Post/page ID"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: lib\main.php:447
|
345 |
msgid "none or deleted post"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: lib\main.php:449 lib\compat-lib\compat_widget.php:102 widgets\widgets.php:98
|
349 |
+
#: widgets\widgets.php:229 widgets\widgets.php:403
|
350 |
msgid "Title"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: lib\main.php:451 lib\wassupadmin.php:1768 lib\wassupadmin.php:2119
|
354 |
+
#: lib\compat-lib\compat_php.php:2623
|
355 |
msgid "Referrer"
|
356 |
msgstr ""
|
357 |
|
358 |
+
#: lib\main.php:454
|
359 |
msgid "Search Engine"
|
360 |
msgstr ""
|
361 |
|
362 |
+
#: lib\main.php:455 lib\wassupadmin.php:208 lib\wassupadmin.php:211
|
363 |
+
#: lib\wassupadmin.php:1569 lib\wassupadmin.php:1601
|
364 |
msgid "Search"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: lib\main.php:456
|
368 |
msgid "Page"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: lib\main.php:458 lib\wassupadmin.php:1845
|
372 |
msgid "User Agent"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: lib\main.php:461
|
376 |
msgid "Browser"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: lib\main.php:463 lib\wassupadmin.php:1866
|
380 |
msgid "OS"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: lib\main.php:464
|
384 |
msgid "Locale/Language"
|
385 |
msgstr ""
|
386 |
|
387 |
+
#: lib\main.php:465
|
388 |
msgid "Screen Resolution"
|
389 |
msgstr ""
|
390 |
|
391 |
+
#: lib\main.php:468
|
392 |
msgid "Username"
|
393 |
msgstr ""
|
394 |
|
395 |
+
#: lib\main.php:472
|
396 |
msgid "Comment Author"
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: lib\main.php:486 lib\wassup.class.php:480 lib\wassup.class.php:535
|
400 |
+
#: lib\wassupadmin.php:1830 lib\compat-lib\compat_php.php:493
|
401 |
+
#: lib\compat-lib\compat_php.php:548
|
402 |
msgid "Spam"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: lib\main.php:487
|
406 |
msgid "comment spam"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: lib\main.php:488
|
410 |
msgid "referrer spam"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: lib\main.php:489
|
414 |
msgid "hack/malware attempt"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: lib\main.php:490
|
418 |
msgid "not spam"
|
419 |
msgstr ""
|
420 |
|
421 |
+
#: lib\main.php:494
|
422 |
msgid "End timestamp"
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: lib\main.php:495
|
426 |
msgid "Timestamp"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: lib\main.php:503 lib\main.php:581 lib\main.php:730 lib\main.php:732
|
430 |
+
#: lib\main.php:741 lib\main.php:743 lib\settings.php:531 lib\settings.php:535
|
431 |
+
#: lib\settings.php:613 lib\settings.php:631 lib\settings.php:642
|
432 |
+
#: lib\settings.php:699 lib\settings.php:709 lib\settings.php:725
|
433 |
+
#: lib\settings.php:728 lib\settings.php:840 lib\settings.php:849
|
434 |
+
#: lib\settings.php:857 lib\settings.php:874 lib\settings.php:909
|
435 |
+
#: lib\settings.php:919 lib\settings.php:927 lib\settings.php:937
|
436 |
+
#: lib\settings.php:943 lib\settings.php:969 lib\settings.php:974
|
437 |
+
#: lib\wassupadmin.php:1055 lib\wassupadmin.php:1661
|
438 |
msgid "unknown"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: lib\main.php:507
|
442 |
#, php-format
|
443 |
msgid "%d URLs visited in session"
|
444 |
msgstr ""
|
445 |
|
446 |
+
#: lib\main.php:568 lib\wassupadmin.php:1064
|
447 |
msgid "Direct hit"
|
448 |
msgstr ""
|
449 |
|
450 |
+
#: lib\main.php:590
|
451 |
msgid "Spam/Malware"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: lib\main.php:594
|
455 |
msgid "Feedreader"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: lib\main.php:603 lib\main.php:652 lib\main.php:653
|
459 |
msgid "Logged user"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: lib\main.php:632 lib\main.php:633
|
463 |
msgid "Country"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: lib\main.php:643 lib\settings.php:553 lib\wassupadmin.php:1859
|
467 |
msgid "Language"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: lib\main.php:656
|
471 |
msgid "Country:"
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: lib\main.php:656
|
475 |
msgid "URL Request:"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: lib\main.php:699
|
479 |
msgid "No visitor activity"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: lib\main.php:726 lib\main.php:730 lib\main.php:732 lib\main.php:737
|
483 |
+
#: lib\main.php:741 lib\main.php:743
|
484 |
#, php-format
|
485 |
msgid "City: %s"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: lib\main.php:746
|
489 |
msgid "Country: unknown, City: unknown"
|
490 |
msgstr ""
|
491 |
|
492 |
+
#: lib\main.php:1017
|
493 |
msgid "Print"
|
494 |
msgstr ""
|
495 |
|
496 |
+
#: lib\main.php:1019
|
497 |
#, php-format
|
498 |
msgid "Top Stats for Period: %s"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: lib\main.php:1054
|
502 |
msgid "TOP QUERY"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: lib\main.php:1062 lib\wassupadmin.php:1797
|
506 |
msgid "not provided"
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: lib\main.php:1090
|
510 |
msgid "TOP REFERRER"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: lib\main.php:1129
|
514 |
msgid "TOP REQUEST"
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: lib\main.php:1168
|
518 |
msgid "TOP BROWSER"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: lib\main.php:1201
|
522 |
msgid "TOP OS"
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: lib\main.php:1233
|
526 |
msgid "TOP LOCALE"
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: lib\main.php:1267
|
530 |
msgid "TOP VISITOR"
|
531 |
msgstr ""
|
532 |
|
533 |
+
#: lib\main.php:1305
|
534 |
msgid "TOP ARTICLE"
|
535 |
msgstr ""
|
536 |
|
537 |
+
#: lib\main.php:1328
|
538 |
msgid "This report excludes spam and spider records"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: lib\main.php:1330
|
542 |
msgid "This report excludes spider records"
|
543 |
msgstr ""
|
544 |
|
545 |
+
#: lib\main.php:1332
|
546 |
msgid "This report excludes spam records"
|
547 |
msgstr ""
|
548 |
|
549 |
+
#: lib\main.php:1778
|
550 |
msgid "Last 1 Hour"
|
551 |
msgstr ""
|
552 |
|
553 |
+
#: lib\main.php:1787
|
554 |
msgid "Last 6 Hours"
|
555 |
msgstr ""
|
556 |
|
557 |
+
#: lib\main.php:1796
|
558 |
msgid "Last 12 Hours"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: lib\main.php:1805
|
562 |
msgid "Last 7 Days"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: lib\main.php:1819
|
566 |
msgid "Last 2 Weeks"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: lib\main.php:1838
|
570 |
msgid "Last Month"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: lib\main.php:1852
|
574 |
msgid "Last 3 Months"
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: lib\main.php:1866
|
578 |
msgid "Last 6 Months"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: lib\main.php:1874
|
582 |
msgid "Last Year"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: lib\main.php:1882 lib\main.php:1898
|
586 |
msgid "All Time"
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: lib\main.php:1889
|
590 |
msgid "Last 24 Hours"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: lib\settings.php:84
|
594 |
msgid ""
|
595 |
"ATTENTION! Your WassUp table have reached the maximum value you set, I "
|
596 |
"disabled the alert, you can re-enable it here."
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: lib\settings.php:105
|
600 |
msgid "IMPORTANT"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: lib\settings.php:105
|
604 |
msgid "table empty or does not exist!"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: lib\settings.php:107
|
608 |
msgid "Visitors Online or Top Stats"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: lib\settings.php:108
|
612 |
msgid "Widgets menu"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: lib\settings.php:110
|
616 |
#, php-format
|
617 |
msgid ""
|
618 |
"You can add a sidebar Widget with some useful statistics information by "
|
619 |
"activating the %s widget from the %s."
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: lib\settings.php:111
|
623 |
msgid "Select the options you want for WassUp plugin"
|
624 |
msgstr ""
|
625 |
|
626 |
+
#: lib\settings.php:148 lib\settings.php:1028 lib\settings.php:1034
|
627 |
+
#: lib\settings.php:1037 lib\settings.php:1041 lib\settings.php:1043
|
628 |
+
#: lib\settings.php:1044 lib\settings.php:1047 lib\settings.php:1048
|
629 |
+
#: lib\settings.php:1066 lib\settings.php:1070
|
630 |
msgid "General Setup"
|
631 |
msgstr ""
|
632 |
|
633 |
+
#: lib\settings.php:149 lib\settings.php:1039 lib\settings.php:1062
|
634 |
msgid "Filters & Exclusions"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: lib\settings.php:150
|
638 |
msgid "Manage Files & Data"
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: lib\settings.php:153 lib\settings.php:1076 lib\settings.php:1077
|
642 |
msgid "Uninstall"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: lib\settings.php:158 lib\wassupadmin.php:554 lib\wassupadmin.php:900
|
646 |
msgid "Donate"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: lib\settings.php:165
|
650 |
msgid "Networkwide Settings"
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: lib\settings.php:166
|
654 |
msgid "Multisite settings that applies to all subsites in the network."
|
655 |
msgstr ""
|
656 |
|
657 |
+
#: lib\settings.php:168
|
658 |
msgid "Network Statistics Recording"
|
659 |
msgstr ""
|
660 |
|
661 |
+
#: lib\settings.php:169
|
662 |
msgid ""
|
663 |
"Enables Wassup visitor tracking on all subsites in network. Do NOT disable "
|
664 |
"unless upgrading plugin."
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: lib\settings.php:170
|
668 |
msgid "Enable Statistics Recording for network."
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: lib\settings.php:171
|
672 |
msgid ""
|
673 |
"Can be overridden on individual subsites to disable statistics recording."
|
674 |
msgstr ""
|
675 |
|
676 |
+
#: lib\settings.php:173
|
677 |
msgid "Network Subsites Options"
|
678 |
msgstr ""
|
679 |
|
680 |
+
#: lib\settings.php:174
|
681 |
msgid "Show Wassup's Main menu and options panel to subsite administrators."
|
682 |
msgstr ""
|
683 |
|
684 |
+
#: lib\settings.php:175
|
685 |
msgid ""
|
686 |
"Uncheck to hide Wassup Main menu and options panel from all users except "
|
687 |
"Network administrator (super-admin). Dashboard submenu \"Wassup-stats\" and "
|
688 |
"dashboard widget display are unaffected."
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: lib\settings.php:178
|
692 |
msgid "Site Settings"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: lib\settings.php:179
|
696 |
msgid "Main site settings / Default settings for new network subsites."
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: lib\settings.php:182
|
700 |
msgid "Statistics Recording"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: lib\settings.php:183
|
704 |
msgid ""
|
705 |
"By default, Wassup collects and stores incoming visitor hits and checks each "
|
706 |
"new record for spam and malware activity."
|
707 |
msgstr ""
|
708 |
|
709 |
+
#: lib\settings.php:184
|
710 |
msgid "Enable statistics recording"
|
711 |
msgstr ""
|
712 |
|
713 |
+
#: lib\settings.php:186
|
714 |
msgid "Do NOT disable unless upgrading or troubleshooting plugin problems."
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: lib\settings.php:187
|
718 |
msgid "Do NOT disable unless troubleshooting plugin problems."
|
719 |
msgstr ""
|
720 |
|
721 |
+
#: lib\settings.php:190
|
722 |
msgid "Enable spam and malware detection on new records"
|
723 |
msgstr ""
|
724 |
|
725 |
+
#: lib\settings.php:191
|
726 |
msgid ""
|
727 |
"For identification of incoming spam/malware hits only. Does NOT stop attacks "
|
728 |
"nor protect your site."
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: lib\settings.php:195
|
732 |
msgid "User Permissions"
|
733 |
msgstr ""
|
734 |
|
735 |
+
#: lib\settings.php:196
|
736 |
msgid ""
|
737 |
"Gives selected users read-only access to Wassup-stats dashboard submenu "
|
738 |
"panels and the ability to view the dashboard widget."
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: lib\settings.php:197
|
742 |
msgid ""
|
743 |
"Only administrators have full access to Wassup main admin menu and Wassup-"
|
744 |
"options panels to delete data and edit plugin settings."
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: lib\settings.php:198
|
748 |
msgid "Set minimum user level that can view WassUp stats"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: lib\settings.php:202
|
752 |
msgid "default administrator"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: lib\settings.php:207
|
756 |
msgid "Screen resolution"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: lib\settings.php:208
|
760 |
msgid ""
|
761 |
"Adjusts chart size and resets the max-width/truncation point of long texts."
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: lib\settings.php:209
|
765 |
msgid "Your default screen resolution (in pixels)"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: lib\settings.php:214
|
769 |
msgid "Dashboard Widget"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: lib\settings.php:215
|
773 |
msgid "Enable widget/small chart in admin dashboard"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: lib\settings.php:217
|
777 |
msgid "Spy Visitors Settings"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: lib\settings.php:232
|
781 |
msgid "Display a GEO IP Map in the spy visitors view"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: lib\settings.php:233
|
785 |
msgid "key"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: lib\settings.php:233
|
789 |
msgid "signup for your key"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: lib\settings.php:234
|
793 |
msgid ""
|
794 |
"Use your own key to avoid map denial when Wassup API total usage exceeds "
|
795 |
"Google!Maps limits."
|
796 |
msgstr ""
|
797 |
|
798 |
+
#: lib\settings.php:240
|
799 |
msgid "Visitor Detail Settings"
|
800 |
msgstr ""
|
801 |
|
802 |
+
#: lib\settings.php:241
|
803 |
msgid "Show visitor details from the last"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: lib\settings.php:246
|
807 |
msgid "Time format 12/24 Hour"
|
808 |
msgstr ""
|
809 |
|
810 |
+
#: lib\settings.php:250
|
811 |
msgid "Filter visitor details for"
|
812 |
msgstr ""
|
813 |
|
814 |
+
#: lib\settings.php:255
|
815 |
msgid "Display line chart in detail view"
|
816 |
msgstr ""
|
817 |
|
818 |
+
#: lib\settings.php:256
|
819 |
msgid "Line chart type - how many axes?"
|
820 |
msgstr ""
|
821 |
|
822 |
+
#: lib\settings.php:257
|
823 |
msgid "Set how many minutes wait for automatic page refresh"
|
824 |
msgstr ""
|
825 |
|
826 |
+
#: lib\settings.php:258 lib\settings.php:962 widgets\widgets.php:459
|
827 |
msgid "minutes"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: lib\settings.php:259
|
831 |
msgid "default 3, 0=no refresh"
|
832 |
msgstr ""
|
833 |
|
834 |
+
#: lib\settings.php:261
|
835 |
msgid "Number of items per page"
|
836 |
msgstr ""
|
837 |
|
838 |
+
#: lib\settings.php:266
|
839 |
msgid "Top Stats Lists"
|
840 |
msgstr ""
|
841 |
|
842 |
+
#: lib\settings.php:267
|
843 |
msgid "Customize Top stats by selected criteria below."
|
844 |
msgstr ""
|
845 |
|
846 |
+
#: lib\settings.php:267
|
847 |
msgid ""
|
848 |
"Stats are in descending order from highest count and known spam and malware "
|
849 |
"attempts are excluded from counts."
|
850 |
msgstr ""
|
851 |
|
852 |
+
#: lib\settings.php:274
|
853 |
msgid "List limit of top items"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: lib\settings.php:276
|
857 |
msgid "default 10"
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: lib\settings.php:278
|
861 |
msgid "Choose one or more items to list in Top Stats"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: lib\settings.php:278
|
865 |
msgid "over 5 selections may cause horizontal scrolling"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: lib\settings.php:281
|
869 |
msgid "Top Searches"
|
870 |
msgstr ""
|
871 |
|
872 |
+
#: lib\settings.php:282
|
873 |
msgid "Top Referrers"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: lib\settings.php:283
|
877 |
msgid "Top Articles"
|
878 |
msgstr ""
|
879 |
|
880 |
+
#: lib\settings.php:286
|
881 |
msgid "Top Requests"
|
882 |
msgstr ""
|
883 |
|
884 |
+
#: lib\settings.php:287
|
885 |
msgid "Top Browsers"
|
886 |
msgstr ""
|
887 |
|
888 |
+
#: lib\settings.php:288
|
889 |
msgid "Top OS"
|
890 |
msgstr ""
|
891 |
|
892 |
+
#: lib\settings.php:291
|
893 |
msgid "Top Locales"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: lib\settings.php:292
|
897 |
msgid "Top Visitors"
|
898 |
msgstr ""
|
899 |
|
900 |
+
#: lib\settings.php:297
|
901 |
msgid "Exclude the following website domains from Top Referrers"
|
902 |
msgstr ""
|
903 |
|
904 |
+
#: lib\settings.php:297 lib\settings.php:305
|
905 |
msgid "applies to top stats view and widgets"
|
906 |
msgstr ""
|
907 |
|
908 |
+
#: lib\settings.php:300
|
909 |
msgid "comma separated value"
|
910 |
msgstr ""
|
911 |
|
912 |
+
#: lib\settings.php:300
|
913 |
msgid "List whole domains only. Wildcards and partial domains will be ignored."
|
914 |
msgstr ""
|
915 |
|
916 |
+
#: lib\settings.php:301
|
917 |
msgid "Don't list your website domain defined in WordPress"
|
918 |
msgstr ""
|
919 |
|
920 |
+
#: lib\settings.php:305
|
921 |
msgid "Exclude site front page from Top Articles"
|
922 |
msgstr ""
|
923 |
|
924 |
+
#: lib\settings.php:312
|
925 |
msgid "Exclude all spider records from Top Stats"
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: lib\settings.php:315 lib\settings.php:369 lib\settings.php:520
|
929 |
+
#: lib\settings.php:1019 lib\wassupadmin.php:1537
|
930 |
msgid "Save Settings"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: lib\settings.php:315 lib\settings.php:369 lib\settings.php:520
|
934 |
+
#: lib\settings.php:1019
|
935 |
msgid "Reset"
|
936 |
msgstr ""
|
937 |
|
938 |
+
#: lib\settings.php:315 lib\settings.php:369 lib\settings.php:520
|
939 |
+
#: lib\settings.php:1019
|
940 |
msgid "Reset to Default"
|
941 |
msgstr ""
|
942 |
|
943 |
+
#: lib\settings.php:316 lib\settings.php:370 lib\settings.php:1004
|
944 |
+
#: lib\settings.php:1020 lib\settings.php:1081 lib\settings.php:1101
|
945 |
+
#: lib\wassupadmin.php:981 widgets\widgets.php:577
|
946 |
+
#: widgets\widget_functions.php:396
|
947 |
msgid "Top"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: lib\settings.php:320
|
951 |
msgid "Recording Filters and Exclusions"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: lib\settings.php:321
|
955 |
msgid ""
|
956 |
"Use the filter checkboxes and exclusion input fields below to customize "
|
957 |
"Wassup's statistics recording so that only the data that you need for your "
|
958 |
"site analyses are stored."
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: lib\settings.php:323
|
962 |
msgid "Visitor Type Filters:"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: lib\settings.php:324
|
966 |
msgid "Checkbox to enable recording by type of \"visitor\""
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: lib\settings.php:326
|
970 |
msgid "Record regular visitors"
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: lib\settings.php:327
|
974 |
msgid "Record logged in users"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: lib\settings.php:328
|
978 |
msgid "Record logged in administrators"
|
979 |
msgstr ""
|
980 |
|
981 |
+
#: lib\settings.php:329
|
982 |
msgid "Record spiders and bots"
|
983 |
msgstr ""
|
984 |
|
985 |
+
#: lib\settings.php:332
|
986 |
msgid "Spam and Malware Filters:"
|
987 |
msgstr ""
|
988 |
|
989 |
+
#: lib\settings.php:333
|
990 |
msgid "Checkbox to enable recording of each type of \"spam\""
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: lib\settings.php:335 lib\wassupadmin.php:1533
|
994 |
msgid "Record Akismet comment spam attempts"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: lib\settings.php:335
|
998 |
msgid "checks IP for previous spam comments"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: lib\settings.php:336 lib\wassupadmin.php:1534
|
1002 |
msgid "Record referrer spam attempts"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: lib\settings.php:337 lib\wassupadmin.php:1536
|
1006 |
msgid "Record admin break-in/hacker attempts"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
+
#: lib\settings.php:338
|
1010 |
+
msgid "Record attack/exploit attempts"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: lib\settings.php:338
|
1014 |
+
msgid "or"
|
1015 |
+
msgstr ""
|
1016 |
+
|
1017 |
+
#: lib\settings.php:341
|
1018 |
msgid "Recording Exceptions"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: lib\settings.php:342
|
1022 |
msgid ""
|
1023 |
"You can exclude a single visitor (by IP, hostname or username) or you can "
|
1024 |
"exclude a specific URL request from being stored in WassUp records."
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: lib\settings.php:343
|
1028 |
msgid ""
|
1029 |
"Note that recording exceptions lower overall statistics counts and excessive "
|
1030 |
"exclusions can affect page load speed on slow host servers."
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: lib\settings.php:345
|
1034 |
msgid "Exclude by IP"
|
1035 |
msgstr ""
|
1036 |
|
1037 |
+
#: lib\settings.php:346
|
1038 |
msgid "Enter source IPs to omit from recording"
|
1039 |
msgstr ""
|
1040 |
|
1041 |
+
#: lib\settings.php:349
|
1042 |
msgid "comma separated value (ex: 127.0.0.1, 10.0.0.1, etc...)."
|
1043 |
msgstr ""
|
1044 |
|
1045 |
+
#: lib\settings.php:349
|
1046 |
msgid ""
|
1047 |
"A single wildcard (*) can be placed after the last '.' in the IP ('::' in "
|
1048 |
"IPv6) for range exclusions (ex: 10.10.100.*, 192.168.*)."
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: lib\settings.php:351
|
1052 |
msgid "Exclude by Hostname"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: lib\settings.php:352
|
1056 |
msgid "Enter source hostnames to omit from recording"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: lib\settings.php:355
|
1060 |
msgid "comma separated value (ex: host1.domain.com, host2.domain.net, etc...)."
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: lib\settings.php:355
|
1064 |
msgid ""
|
1065 |
"A single wildcard (*) can be placed before the first '.' for domain network "
|
1066 |
"exclusions (ex: *.spamdomain.com, *.hackers.malware.net)."
|
1067 |
msgstr ""
|
1068 |
|
1069 |
+
#: lib\settings.php:357
|
1070 |
msgid "Exclude by Username"
|
1071 |
msgstr ""
|
1072 |
|
1073 |
+
#: lib\settings.php:358
|
1074 |
msgid "Enter usernames to omit from recording"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
+
#: lib\settings.php:361
|
1078 |
msgid ""
|
1079 |
"comma separated value, enter a registered user's login name (ex: bobmarley, "
|
1080 |
"enyabrennan, etc.)"
|
1081 |
msgstr ""
|
1082 |
|
1083 |
+
#: lib\settings.php:363
|
1084 |
msgid "Exclude by URL request"
|
1085 |
msgstr ""
|
1086 |
|
1087 |
+
#: lib\settings.php:364
|
1088 |
msgid "Enter URLs of page/post/feed to omit from recording"
|
1089 |
msgstr ""
|
1090 |
|
1091 |
+
#: lib\settings.php:367
|
1092 |
msgid ""
|
1093 |
"comma separated value, don't enter entire url, only the last path or some "
|
1094 |
"word to exclude (ex: /category/wordpress, 2007, etc...)"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: lib\settings.php:370 lib\settings.php:1004 lib\settings.php:1020
|
1098 |
+
#: lib\settings.php:1081 lib\settings.php:1101
|
1099 |
msgid "Prev"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: lib\settings.php:374
|
1103 |
msgid "Table Management Options"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: lib\settings.php:381
|
1107 |
msgid "Select actions for table growth"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: lib\settings.php:382
|
1111 |
msgid ""
|
1112 |
"WassUp table grows very fast, especially if your site is frequently visited. "
|
1113 |
"I recommend you delete old records sometimes."
|
1114 |
msgstr ""
|
1115 |
|
1116 |
+
#: lib\settings.php:383
|
1117 |
msgid ""
|
1118 |
"You can delete all Wassup records now (Empty Table), you can set an "
|
1119 |
"automatic delete option to delete selected old records daily, and you can "
|
1120 |
"manually delete selected old records once (Delete NOW)."
|
1121 |
msgstr ""
|
1122 |
|
1123 |
+
#: lib\settings.php:384
|
1124 |
msgid "If you haven't database space problems, you can leave the table as is."
|
1125 |
msgstr ""
|
1126 |
|
1127 |
+
#: lib\settings.php:385
|
1128 |
msgid "Current WassUp table usage is"
|
1129 |
msgstr ""
|
1130 |
|
1131 |
+
#: lib\settings.php:388
|
1132 |
msgid "records"
|
1133 |
msgstr ""
|
1134 |
|
1135 |
+
#: lib\settings.php:391
|
1136 |
msgid "Alert me"
|
1137 |
msgstr ""
|
1138 |
|
1139 |
+
#: lib\settings.php:391
|
1140 |
msgid "email to"
|
1141 |
msgstr ""
|
1142 |
|
1143 |
+
#: lib\settings.php:391
|
1144 |
msgid "when table reaches"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
+
#: lib\settings.php:392
|
1148 |
msgid "Delete old records"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
+
#: lib\settings.php:396
|
1152 |
#, php-format
|
1153 |
msgid ""
|
1154 |
"Before deleting, you can save Wassup data in SQL 'export' format onto your "
|
1155 |
"local computer by clicking %s below."
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: lib\settings.php:396
|
1159 |
msgid "export table"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: lib\settings.php:397
|
1163 |
msgid "Reload this screen after export to view export messages."
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: lib\settings.php:398
|
1167 |
msgid "Automatically delete"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: lib\settings.php:400 lib\settings.php:405
|
1171 |
msgid "records older than"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: lib\settings.php:401
|
1175 |
msgid "daily"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: lib\settings.php:403
|
1179 |
msgid "Manually delete"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: lib\settings.php:406
|
1183 |
msgid "once"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: lib\settings.php:412
|
1187 |
msgid "Delete all records up to record ID#"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: lib\settings.php:413
|
1191 |
msgid "Last exported record ID#:"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: lib\settings.php:415
|
1195 |
msgid "Empty table"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
+
#: lib\settings.php:416
|
1199 |
msgid "export table in SQL format"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
+
#: lib\settings.php:419
|
1203 |
msgid "Delete NOW"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: lib\settings.php:419
|
1207 |
msgid "Action is NOT undoable!"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: lib\settings.php:422
|
1211 |
msgid "Table Export Options"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: lib\settings.php:424
|
1215 |
msgid ""
|
1216 |
"By default, known spam/malware records are omitted from Wassup's export data "
|
1217 |
"to reduce the risk of malware code becoming active and causing damage when "
|
1218 |
"records are imported into other applications."
|
1219 |
msgstr ""
|
1220 |
|
1221 |
+
#: lib\settings.php:425
|
1222 |
msgid "Include spam records in exported data"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
+
#: lib\settings.php:426
|
1226 |
msgid ""
|
1227 |
"Security NOTICE: Wassup is not configured to identify spam/malware, so all "
|
1228 |
"records are exported, including spam."
|
1229 |
msgstr ""
|
1230 |
|
1231 |
+
#: lib\settings.php:427
|
1232 |
msgid ""
|
1233 |
"Security NOTICE: Enabling this could expose your computer or website to "
|
1234 |
"malware when spam records are imported."
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: lib\settings.php:428
|
1238 |
msgid "Omit record ID from exported fields"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
+
#: lib\settings.php:429
|
1242 |
msgid ""
|
1243 |
"Check this box when importing data into another Wassup table that already "
|
1244 |
"has records (appending data)."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: lib\settings.php:431
|
1248 |
msgid "Table Optimization"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
+
#: lib\settings.php:436
|
1252 |
msgid ""
|
1253 |
"By default, WassUp tables are automatically optimized weekly and after each "
|
1254 |
"bulk deletion. This helps keep WassUp running fast, but it can sometimes "
|
1255 |
"cause slowdowns especially when there is a corrupt record in the table."
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: lib\settings.php:445
|
1259 |
msgid "You can cancel automatic optimization by unchecking the box below."
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: lib\settings.php:447
|
1263 |
msgid "Login as network admin to cancel automatic optimization below."
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: lib\settings.php:448
|
1267 |
msgid "Login as network admin to enable automatic optimization below."
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: lib\settings.php:450
|
1271 |
msgid "Your table engine does NOT support the \"optimize\" command."
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: lib\settings.php:460
|
1275 |
msgid "Enable automatic table optimization"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
+
#: lib\settings.php:468
|
1279 |
msgid "is overdue"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: lib\settings.php:470
|
1283 |
msgid "today"
|
1284 |
msgstr ""
|
1285 |
|
1286 |
+
#: lib\settings.php:473
|
1287 |
#, php-format
|
1288 |
msgid "%d days"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: lib\settings.php:474
|
1292 |
msgid "1 week"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
+
#: lib\settings.php:480
|
1296 |
#, php-format
|
1297 |
msgid "Next scheduled optimization is: %s (approximately)"
|
1298 |
msgstr ""
|
1299 |
|
1300 |
+
#: lib\settings.php:482
|
1301 |
#, php-format
|
1302 |
msgid "Next scheduled optimization is: %s"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
+
#: lib\settings.php:482
|
1306 |
msgid "never"
|
1307 |
msgstr ""
|
1308 |
|
1309 |
+
#: lib\settings.php:486
|
1310 |
msgid "Data Storage Methods"
|
1311 |
msgstr ""
|
1312 |
|
1313 |
+
#: lib\settings.php:489
|
1314 |
msgid "Delayed Insert"
|
1315 |
msgstr ""
|
1316 |
|
1317 |
+
#: lib\settings.php:491
|
1318 |
msgid ""
|
1319 |
"When possible, WassUp uses the \"Delayed insert\" method of saving records "
|
1320 |
"in MySQL to store new visitor records. This method helps keep Wassup running "
|
1323 |
"disable it on shared servers."
|
1324 |
msgstr ""
|
1325 |
|
1326 |
+
#: lib\settings.php:492
|
1327 |
msgid "You can turn off \"delayed insert\" by unchecking the box below."
|
1328 |
msgstr ""
|
1329 |
|
1330 |
+
#: lib\settings.php:496
|
1331 |
msgid "This method is unavailable for your storage engine type."
|
1332 |
msgstr ""
|
1333 |
|
1334 |
+
#: lib\settings.php:508
|
1335 |
msgid "This method is disabled on your host server."
|
1336 |
msgstr ""
|
1337 |
|
1338 |
+
#: lib\settings.php:517
|
1339 |
msgid "Store new visitor records with \"delayed insert\""
|
1340 |
msgstr ""
|
1341 |
|
1342 |
+
#: lib\settings.php:524
|
1343 |
msgid "Server Settings and Memory Resources"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
+
#: lib\settings.php:525
|
1347 |
#, php-format
|
1348 |
msgid ""
|
1349 |
"For information only. Some values may be adjustable in startup files: %s"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: lib\settings.php:525
|
1353 |
msgid "\"wp_config.php\", \"php.ini\" and \"my.ini\""
|
1354 |
msgstr ""
|
1355 |
|
1356 |
+
#: lib\settings.php:526 lib\settings.php:537 lib\settings.php:645
|
1357 |
+
#: lib\settings.php:840
|
1358 |
msgid "Version"
|
1359 |
msgstr ""
|
1360 |
|
1361 |
+
#: lib\settings.php:528
|
1362 |
msgid "Table name"
|
1363 |
msgstr ""
|
1364 |
|
1365 |
+
#: lib\settings.php:529
|
1366 |
msgid "Table Charset/collation"
|
1367 |
msgstr ""
|
1368 |
|
1369 |
+
#: lib\settings.php:533
|
1370 |
msgid "Table engine"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: lib\settings.php:535
|
1374 |
msgid "Upgrade date"
|
1375 |
msgstr ""
|
1376 |
|
1377 |
+
#: lib\settings.php:543
|
1378 |
msgid "network"
|
1379 |
msgstr ""
|
1380 |
|
1381 |
+
#: lib\settings.php:546 lib\settings.php:559 lib\settings.php:655
|
1382 |
+
#: lib\settings.php:666 lib\settings.php:670 lib\settings.php:950
|
1383 |
msgid "on"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
+
#: lib\settings.php:548 lib\settings.php:657 lib\settings.php:664
|
1387 |
+
#: lib\settings.php:671 lib\settings.php:948
|
1388 |
msgid "off"
|
1389 |
msgstr ""
|
1390 |
|
1391 |
+
#: lib\settings.php:552
|
1392 |
msgid "Character set"
|
1393 |
msgstr ""
|
1394 |
|
1395 |
+
#: lib\settings.php:556 lib\settings.php:733
|
1396 |
msgid "not set"
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: lib\settings.php:564 lib\settings.php:685
|
1400 |
msgid "Memory Allocation"
|
1401 |
msgstr ""
|
1402 |
|
1403 |
+
#: lib\settings.php:589
|
1404 |
msgid "no limit/unknown"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
+
#: lib\settings.php:593 lib\settings.php:749 lib\settings.php:976
|
1408 |
msgid "Timezone"
|
1409 |
msgstr ""
|
1410 |
|
1411 |
+
#: lib\settings.php:594 lib\settings.php:752
|
1412 |
msgid "Time Offset"
|
1413 |
msgstr ""
|
1414 |
|
1415 |
+
#: lib\settings.php:606 lib\settings.php:755 lib\settings.php:757
|
1416 |
msgid "hours"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: lib\settings.php:607
|
1420 |
msgid "Host Timezone"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
+
#: lib\settings.php:615
|
1424 |
msgid "Host Server"
|
1425 |
msgstr ""
|
1426 |
|
1427 |
+
#: lib\settings.php:633
|
1428 |
msgid "Browser Client"
|
1429 |
msgstr ""
|
1430 |
|
1431 |
+
#: lib\settings.php:651
|
1432 |
msgid "Safe Mode"
|
1433 |
msgstr ""
|
1434 |
|
1435 |
+
#: lib\settings.php:661
|
1436 |
msgid "File Open Restrictions"
|
1437 |
msgstr ""
|
1438 |
|
1439 |
+
#: lib\settings.php:668
|
1440 |
msgid "URL File Open"
|
1441 |
msgstr ""
|
1442 |
|
1443 |
+
#: lib\settings.php:673
|
1444 |
msgid "Disabled functions"
|
1445 |
msgstr ""
|
1446 |
|
1447 |
+
#: lib\settings.php:680
|
1448 |
msgid "none"
|
1449 |
msgstr ""
|
1450 |
|
1451 |
+
#: lib\settings.php:682
|
1452 |
msgid "not applicable/safe mode set"
|
1453 |
msgstr ""
|
1454 |
|
1455 |
+
#: lib\settings.php:696 lib\settings.php:871
|
1456 |
msgid "unlimited/up to server maximum"
|
1457 |
msgstr ""
|
1458 |
|
1459 |
+
#: lib\settings.php:704
|
1460 |
msgid "Memory Usage"
|
1461 |
msgstr ""
|
1462 |
|
1463 |
+
#: lib\settings.php:711
|
1464 |
msgid "Script Timeout Limit"
|
1465 |
msgstr ""
|
1466 |
|
1467 |
+
#: lib\settings.php:716 lib\settings.php:717 lib\settings.php:718
|
1468 |
+
#: lib\settings.php:720 lib\settings.php:941 lib\settings.php:964
|
1469 |
msgid "seconds"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
+
#: lib\settings.php:723
|
1473 |
msgid "unlimited"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
+
#: lib\settings.php:731
|
1477 |
msgid "Browser Capabilities File"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
+
#: lib\settings.php:737
|
1481 |
msgid "not installed"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
+
#: lib\settings.php:738
|
1485 |
msgid "installed"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
+
#: lib\settings.php:760
|
1489 |
msgid "as modified in Wordpress"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
+
#: lib\settings.php:842
|
1493 |
msgid "Storage Engine"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: lib\settings.php:851
|
1497 |
msgid "Charset/collation"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
+
#: lib\settings.php:860
|
1501 |
msgid "Max User Connections"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
+
#: lib\settings.php:866
|
1505 |
msgid "possibly too small"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
+
#: lib\settings.php:876
|
1509 |
msgid "Allocation"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
+
#: lib\settings.php:882
|
1513 |
msgid "possibly too big, reduces available RAM."
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
#: lib\settings.php:889
|
1517 |
msgid "on demand"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
+
#: lib\settings.php:891
|
1521 |
msgid "Cached Query Limit"
|
1522 |
msgstr ""
|
1523 |
|
1524 |
+
#: lib\settings.php:894 lib\settings.php:897 lib\settings.php:907
|
1525 |
+
#: lib\settings.php:917 lib\settings.php:925 lib\settings.php:934
|
1526 |
+
#: lib\settings.php:955 lib\settings.php:973
|
1527 |
msgid "disabled"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
+
#: lib\settings.php:939
|
1531 |
msgid "Wait Timeout"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
+
#: lib\settings.php:958
|
1535 |
msgid "rows"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
+
#: lib\settings.php:972
|
1539 |
msgid "not available"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
+
#: lib\settings.php:999
|
1543 |
msgid "may be different from PHP offset"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
+
#: lib\settings.php:1009
|
1547 |
msgid "Want to uninstall WassUp?"
|
1548 |
msgstr ""
|
1549 |
|
1550 |
+
#: lib\settings.php:1010
|
1551 |
msgid ""
|
1552 |
"No problem. Before you deactivate this plugin, check the box below to "
|
1553 |
"cleanup any data that was collected by WassUp that could be left behind."
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: lib\settings.php:1011
|
1557 |
msgid "Permanently remove WassUp data and settings."
|
1558 |
msgstr ""
|
1559 |
|
1560 |
+
#: lib\settings.php:1013
|
1561 |
msgid "WARNING"
|
1562 |
msgstr ""
|
1563 |
|
1564 |
+
#: lib\settings.php:1013
|
1565 |
msgid ""
|
1566 |
"All WassUp data and settings will be DELETED upon deactivation of this "
|
1567 |
"plugin."
|
1568 |
msgstr ""
|
1569 |
|
1570 |
+
#: lib\settings.php:1015
|
1571 |
#, php-format
|
1572 |
msgid ""
|
1573 |
"This action cannot be undone. Before uninstalling WassUp, you should backup "
|
1574 |
"your Wordpress database first. WassUp data is stored in the table %s."
|
1575 |
msgstr ""
|
1576 |
|
1577 |
+
#: lib\settings.php:1017
|
1578 |
#, php-format
|
1579 |
msgid "To help improve this plugin, we would appreciate your feedback at %s."
|
1580 |
msgstr ""
|
1581 |
|
1582 |
+
#: lib\settings.php:1025
|
1583 |
msgid "Frequently Asked Questions"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
#: lib\settings.php:1027
|
1587 |
msgid "How do I add WassUp's chart to my admin dashboard?"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: lib\settings.php:1028
|
1591 |
#, php-format
|
1592 |
msgid ""
|
1593 |
"Check the box for \"Enable widget/small chart in admin dashboard\" under %s "
|
1594 |
"tab."
|
1595 |
msgstr ""
|
1596 |
|
1597 |
+
#: lib\settings.php:1028 lib\settings.php:1034 lib\settings.php:1037
|
1598 |
+
#: lib\settings.php:1039 lib\settings.php:1041 lib\settings.php:1043
|
1599 |
+
#: lib\settings.php:1044 lib\settings.php:1047 lib\settings.php:1048
|
1600 |
+
#: lib\settings.php:1049 lib\settings.php:1054 lib\settings.php:1060
|
1601 |
+
#: lib\settings.php:1062 lib\settings.php:1066 lib\settings.php:1070
|
1602 |
+
#: lib\settings.php:1076 lib\settings.php:1077 lib\wassupadmin.php:455
|
1603 |
#: lib\wassupadmin.php:892
|
1604 |
msgid "Options"
|
1605 |
msgstr ""
|
1606 |
|
1607 |
+
#: lib\settings.php:1029
|
1608 |
msgid "How do I display WassUp widgets on my site?"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
+
#: lib\settings.php:1030
|
1612 |
msgid ""
|
1613 |
"From Wordpress widgets panel, drag the \"WassUp Online\" widget or the "
|
1614 |
"\"Wassup Top Stats\" widget from the list of available widgets on the left "
|
1616 |
"Customizer to add Wassup widgets interactively."
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: lib\settings.php:1031
|
1620 |
msgid ""
|
1621 |
"My Wordpress theme is not widget ready. Is it possible to display WassUp "
|
1622 |
"widgets on my site?"
|
1623 |
msgstr ""
|
1624 |
|
1625 |
+
#: lib\settings.php:1032
|
1626 |
msgid ""
|
1627 |
"Yes. Insert the template tag \"wassup_sidebar()\" into your theme's "
|
1628 |
"\"sidebar.php\" file to display Wassup widgets as a single combined widget "
|
1629 |
"on your site."
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: lib\settings.php:1033
|
1633 |
msgid "How do I view the real-time visitor geolocation map in WassUp?"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: lib\settings.php:1034
|
1637 |
#, php-format
|
1638 |
msgid ""
|
1639 |
"Check the box for \"Display a GEO IP Map in spy visitors view\" in %s tab "
|
1640 |
"and save, then navigate to %s panel to see the map."
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: lib\settings.php:1034 lib\wassupadmin.php:452 lib\wassupadmin.php:539
|
1644 |
#: lib\wassupadmin.php:889
|
1645 |
msgid "SPY Visitors"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: lib\settings.php:1035
|
1649 |
msgid ""
|
1650 |
"The map has vanished and I get a message like: \"Google has disabled use of "
|
1651 |
"the Maps API for this application\". How do I fix this?"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
+
#: lib\settings.php:1036
|
1655 |
msgid ""
|
1656 |
"Wassup-spy total daily map views has likely exceeded the Google!maps usage "
|
1657 |
"limit for Wassup plugin."
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: lib\settings.php:1037
|
1661 |
#, php-format
|
1662 |
msgid ""
|
1663 |
"To fix, sign up for a free %s for your site's sole usage and enter the key "
|
1664 |
"under \"Spy Visitors settings\" in %s tab."
|
1665 |
msgstr ""
|
1666 |
|
1667 |
+
#: lib\settings.php:1037
|
1668 |
msgid "Key"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: lib\settings.php:1038
|
1672 |
msgid "How do I exclude a visitor from being recorded?"
|
1673 |
msgstr ""
|
1674 |
|
1675 |
+
#: lib\settings.php:1039
|
1676 |
#, php-format
|
1677 |
msgid ""
|
1678 |
"Navigate to %s tab and enter a visitor's username, IP address, or hostname "
|
1679 |
"into the appropriate text area for that \"Recording Exclusion\" type."
|
1680 |
msgstr ""
|
1681 |
|
1682 |
+
#: lib\settings.php:1040
|
1683 |
msgid ""
|
1684 |
"How do I stop (temporarily) WassUp from recording new visits on my site?"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
+
#: lib\settings.php:1041
|
1688 |
#, php-format
|
1689 |
msgid "Uncheck the box for \"Enable statistics recording\" under %s tab."
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: lib\settings.php:1042
|
1693 |
msgid ""
|
1694 |
"In Wordpress multisite, how do I stop (temporarily) WassUp from recording "
|
1695 |
"new visits on all sites in the network?"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
+
#: lib\settings.php:1043
|
1699 |
#, php-format
|
1700 |
msgid ""
|
1701 |
"If plugin is \"network activated\", login as network admin, go to the "
|
1703 |
"Statistics Recording for network\" and save."
|
1704 |
msgstr ""
|
1705 |
|
1706 |
+
#: lib\settings.php:1044
|
1707 |
#, php-format
|
1708 |
msgid ""
|
1709 |
"If plugin is NOT \"network activated\", login as network admin, go to the "
|
1711 |
"the box for \"Enable Statistics Recording for network\" and save."
|
1712 |
msgstr ""
|
1713 |
|
1714 |
+
#: lib\settings.php:1046
|
1715 |
msgid ""
|
1716 |
"No data is being displayed; or \"Visitor Details\" panel show 0 records for "
|
1717 |
"the last 24 hours. How do I fix this?"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: lib\settings.php:1047
|
1721 |
#, php-format
|
1722 |
msgid ""
|
1723 |
"Check the box for \"Enable statistics recording\" setting under %s tab and "
|
1724 |
"save."
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: lib\settings.php:1048
|
1728 |
#, php-format
|
1729 |
msgid "Click the [Reset to Default] button under %s tab."
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: lib\settings.php:1049
|
1733 |
#, php-format
|
1734 |
msgid ""
|
1735 |
"Navigate to %s tab and uncheck the \"MySQL Delayed Insert\" setting and save."
|
1736 |
msgstr ""
|
1737 |
|
1738 |
+
#: lib\settings.php:1049 lib\settings.php:1054 lib\settings.php:1060
|
1739 |
msgid "Manage File & Data"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
+
#: lib\settings.php:1050
|
1743 |
msgid "Deactivate and Re-activate Wassup from Wordpress Plugins panel."
|
1744 |
msgstr ""
|
1745 |
|
1746 |
+
#: lib\settings.php:1051
|
1747 |
#, php-format
|
1748 |
msgid ""
|
1749 |
"If you have access to MySql/phpMyAdmin on your host server, run the MySql "
|
1751 |
"table name may be different in other Wordpress setups."
|
1752 |
msgstr ""
|
1753 |
|
1754 |
+
#: lib\settings.php:1052
|
1755 |
msgid ""
|
1756 |
"As a last resort, uninstall WassUp cleanly (delete data and files) and "
|
1757 |
"reinstall it."
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: lib\settings.php:1053
|
1761 |
msgid ""
|
1762 |
"My popular web site is hosted on a shared server with restrictive database "
|
1763 |
"size limits. How do I prevent WassUp's table from growing too big for my "
|
1764 |
"allocated quota?"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: lib\settings.php:1054
|
1768 |
#, php-format
|
1769 |
msgid ""
|
1770 |
"Navigate to %s tab and enable the setting for \"Auto Delete\" of old records "
|
1772 |
"exceeded."
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: lib\settings.php:1055
|
1776 |
msgid ""
|
1777 |
"WassUp visitor counts are much lower than actual for my website. Why is "
|
1778 |
"there a discrepancy and how do I fix it?"
|
1779 |
msgstr ""
|
1780 |
|
1781 |
+
#: lib\settings.php:1056
|
1782 |
msgid ""
|
1783 |
"Low visitor count is likely caused by page caching on your website. WassUp "
|
1784 |
"is incompatible with static page caching plugins such as WP Supercache, WP "
|
1786 |
"different (javascript-based) statistics plugin."
|
1787 |
msgstr ""
|
1788 |
|
1789 |
+
#: lib\settings.php:1057
|
1790 |
msgid "Is there any caching plugin that works with WassUp?"
|
1791 |
msgstr ""
|
1792 |
|
1793 |
+
#: lib\settings.php:1058
|
1794 |
#, php-format
|
1795 |
msgid "%s is the only caching plugin verified to work with WassUp."
|
1796 |
msgstr ""
|
1797 |
|
1798 |
+
#: lib\settings.php:1059
|
1799 |
msgid "How can I make Wassup run faster?"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
+
#: lib\settings.php:1060
|
1803 |
#, php-format
|
1804 |
msgid ""
|
1805 |
"Keep Wassup table size small by setting automatic delete of old records or "
|
1806 |
"do manual delete periodically under %s tab."
|
1807 |
msgstr ""
|
1808 |
|
1809 |
+
#: lib\settings.php:1061
|
1810 |
msgid ""
|
1811 |
"If using the \"Top Stats\" widget on your site, set refresh frequency to 15 "
|
1812 |
"minutes or higher."
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: lib\settings.php:1062
|
1816 |
#, php-format
|
1817 |
msgid ""
|
1818 |
"Reduce the number of recording exclusions (by ip/hostname/username/url) "
|
1819 |
"under %s tab."
|
1820 |
msgstr ""
|
1821 |
|
1822 |
+
#: lib\settings.php:1065
|
1823 |
#, php-format
|
1824 |
msgid ""
|
1825 |
"Delete the file(s) %s from the plugin subfolder 'lib' to stop Wassup from "
|
1826 |
"doing remote server queries for spam identification."
|
1827 |
msgstr ""
|
1828 |
|
1829 |
+
#: lib\settings.php:1066
|
1830 |
#, php-format
|
1831 |
msgid ""
|
1832 |
"As a last resort, stop all spam/malware detection on new hits by unchecking "
|
1833 |
"\"Enable Spam and malware detection on records\" under %s tab."
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: lib\settings.php:1067
|
1837 |
msgid ""
|
1838 |
"Why does WassUp stats sometimes show more page views than actual pages "
|
1839 |
"clicked by a person?"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
+
#: lib\settings.php:1068
|
1843 |
msgid ""
|
1844 |
"\"Phantom\" page views can occur when a user's browser does automatic feed "
|
1845 |
"retrieval, link pre-fetching, a page refresh, or automatically adds your "
|
1848 |
"from user link clicks."
|
1849 |
msgstr ""
|
1850 |
|
1851 |
+
#: lib\settings.php:1069
|
1852 |
msgid "How do I upgrade WassUp safely when my site has frequent visitors?"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: lib\settings.php:1070
|
1856 |
#, php-format
|
1857 |
msgid ""
|
1858 |
"To upgrade WassUp when your site is busy, you must first disable statistics "
|
1861 |
"active."
|
1862 |
msgstr ""
|
1863 |
|
1864 |
+
#: lib\settings.php:1071
|
1865 |
msgid "An unspecified error occurred during plugin upgrade. What do I do next?"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: lib\settings.php:1072
|
1869 |
msgid ""
|
1870 |
"Wait a few minutes. Do NOT re-attempt to upgrade nor try to activate the "
|
1871 |
"plugin again! An activation error with no explanation is probably due to "
|
1875 |
"and verify that Wassup plugin has activated."
|
1876 |
msgstr ""
|
1877 |
|
1878 |
+
#: lib\settings.php:1073
|
1879 |
msgid "How do I uninstall WassUp cleanly?"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
+
#: lib\settings.php:1074
|
1883 |
msgid ""
|
1884 |
"From a single Wordpress site: navigate to Wordpress Plugins panel and "
|
1885 |
"deactivate WassUp plugin. Then, on the same page, click the \"delete\" link "
|
1886 |
"below WassUp name. This deletes both data and files permanently."
|
1887 |
msgstr ""
|
1888 |
|
1889 |
+
#: lib\settings.php:1075
|
1890 |
msgid ""
|
1891 |
"From Wordpress multisite Network admin panel: navigate to Plugins panel and "
|
1892 |
"deactivate WassUp plugin. If the plugin is not \"network activated\", "
|
1897 |
"the network."
|
1898 |
msgstr ""
|
1899 |
|
1900 |
+
#: lib\settings.php:1076
|
1901 |
#, php-format
|
1902 |
msgid ""
|
1903 |
"From a subsite in Wordpress multisite: navigate to %s tab and check the box "
|
1906 |
"subsite's data permanently. No files are deleted (not needed)."
|
1907 |
msgstr ""
|
1908 |
|
1909 |
+
#: lib\settings.php:1077
|
1910 |
#, php-format
|
1911 |
msgid ""
|
1912 |
"From a Wordpress 2.x site: navigate to %s tab and check the box for "
|
1918 |
"your host server."
|
1919 |
msgstr ""
|
1920 |
|
1921 |
+
#: lib\settings.php:1079
|
1922 |
#, php-format
|
1923 |
msgid "Visit the %s to find more answers to your WassUp questions."
|
1924 |
msgstr ""
|
1925 |
|
1926 |
+
#: lib\settings.php:1079
|
1927 |
msgid "Plugin Forum"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
+
#: lib\settings.php:1084
|
1931 |
msgid "How you can donate"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
+
#: lib\settings.php:1085
|
1935 |
msgid ""
|
1936 |
"If you like this plugin, please consider making a donation to help keep it's "
|
1937 |
"development active."
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: lib\settings.php:1087
|
1941 |
#, php-format
|
1942 |
msgid "Donate by %s"
|
1943 |
msgstr ""
|
1944 |
|
1945 |
+
#: lib\settings.php:1088
|
1946 |
#, php-format
|
1947 |
msgid "Donate %s"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
+
#: lib\settings.php:1090
|
1951 |
msgid "Send your bitcoin donation to this address"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
+
#: lib\uadetector.class.php:452 lib\uadetector.class.php:775
|
1955 |
msgid "Script Injection Bot"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
+
#: lib\uadetector.class.php:601
|
1959 |
msgid "Unknown Feedreader"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
+
#: lib\upgrade.php:131
|
1963 |
msgid "COMPATIBILITY WARNING: non-MySQL database type detected!"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
+
#: lib\upgrade.php:131
|
1967 |
msgid ""
|
1968 |
"WassUp uses complex MySQL queries that may not run on a different database "
|
1969 |
"type."
|
1970 |
msgstr ""
|
1971 |
|
1972 |
+
#: lib\upgrade.php:133
|
1973 |
msgid "WassUp cannot generate accurate statistics with page caching enabled."
|
1974 |
msgstr ""
|
1975 |
|
1976 |
+
#: lib\upgrade.php:133
|
1977 |
msgid ""
|
1978 |
"If your cache plugin stores whole Wordpress pages/posts as static HTML, then "
|
1979 |
"WassUp won't run properly. Please deactivate your cache plugin and remove "
|
1981 |
"plugin."
|
1982 |
msgstr ""
|
1983 |
|
1984 |
+
#: lib\upgrade.php:140
|
1985 |
#, php-format
|
1986 |
msgid ""
|
1987 |
"WARNING: Insufficient memory: %s found! A minimum allocation of %s is "
|
1988 |
"recommended for WassUp and Wordpress."
|
1989 |
msgstr ""
|
1990 |
|
1991 |
+
#: lib\upgrade.php:143
|
1992 |
#, php-format
|
1993 |
msgid "See %s for information about increasing Wordpress memory."
|
1994 |
msgstr ""
|
1995 |
|
1996 |
+
#: lib\upgrade.php:150
|
1997 |
msgid "IMPORTANT: Wassup Widget has changed and must be re-installed."
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: lib\upgrade.php:337
|
2001 |
msgid "Welcome to WassUP"
|
2002 |
msgstr ""
|
2003 |
|
2004 |
+
#: lib\upgrade.php:357 lib\upgrade.php:400
|
2005 |
#, php-format
|
2006 |
msgid "An error occurred during the install of table %s."
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: lib\wassup.class.php:446 lib\compat-lib\compat_php.php:459
|
2010 |
msgid "Administrator"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: lib\wassup.class.php:447 lib\compat-lib\compat_php.php:460
|
2014 |
msgid "Editor"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
+
#: lib\wassup.class.php:448 lib\compat-lib\compat_php.php:461
|
2018 |
msgid "Author"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: lib\wassup.class.php:449 lib\compat-lib\compat_php.php:462
|
2022 |
msgid "Contributor"
|
2023 |
msgstr ""
|
2024 |
|
2025 |
+
#: lib\wassup.class.php:450 lib\compat-lib\compat_php.php:463
|
2026 |
msgid "Subscriber"
|
2027 |
msgstr ""
|
2028 |
|
2029 |
+
#: lib\wassup.class.php:456 lib\compat-lib\compat_php.php:469
|
2030 |
msgid "One - 2 lines chart 1 axis"
|
2031 |
msgstr ""
|
2032 |
|
2033 |
+
#: lib\wassup.class.php:457 lib\compat-lib\compat_php.php:470
|
2034 |
msgid "Two - 2 lines chart 2 axes"
|
2035 |
msgstr ""
|
2036 |
|
2037 |
+
#: lib\wassup.class.php:477 lib\compat-lib\compat_php.php:490
|
2038 |
msgid "Everything"
|
2039 |
msgstr ""
|
2040 |
|
2041 |
+
#: lib\wassup.class.php:479 lib\compat-lib\compat_php.php:492
|
2042 |
msgid "No spider"
|
2043 |
msgstr ""
|
2044 |
|
2045 |
+
#: lib\wassup.class.php:481 lib\compat-lib\compat_php.php:494
|
2046 |
msgid "No Spam"
|
2047 |
msgstr ""
|
2048 |
|
2049 |
+
#: lib\wassup.class.php:482 lib\compat-lib\compat_php.php:495
|
2050 |
msgid "No Spam, No Spider"
|
2051 |
msgstr ""
|
2052 |
|
2053 |
+
#: lib\wassup.class.php:483 lib\compat-lib\compat_php.php:496
|
2054 |
msgid "Users logged in"
|
2055 |
msgstr ""
|
2056 |
|
2057 |
+
#: lib\wassup.class.php:484 lib\wassupadmin.php:1040 lib\wassupadmin.php:2135
|
2058 |
+
#: lib\compat-lib\compat_php.php:497 lib\compat-lib\compat_php.php:2639
|
2059 |
+
#: widgets\widgets.php:236 widgets\widget_functions.php:221
|
2060 |
msgid "Comment authors"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: lib\wassup.class.php:485 lib\compat-lib\compat_php.php:498
|
2064 |
msgid "Referrer from search engine"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: lib\wassup.class.php:486 lib\compat-lib\compat_php.php:499
|
2068 |
msgid "Referrer from ext link"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: lib\wassup.class.php:519 lib\compat-lib\compat_php.php:532
|
2072 |
msgid "Don't delete anything"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: lib\wassup.class.php:520 lib\wassup.class.php:556
|
2076 |
+
#: lib\compat-lib\compat_php.php:533 lib\compat-lib\compat_php.php:569
|
2077 |
msgid "24 hours"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
+
#: lib\wassup.class.php:521 lib\wassup.class.php:557
|
2081 |
+
#: lib\compat-lib\compat_php.php:534 lib\compat-lib\compat_php.php:570
|
2082 |
msgid "7 days"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: lib\wassup.class.php:522 lib\wassup.class.php:558
|
2086 |
+
#: lib\compat-lib\compat_php.php:535 lib\compat-lib\compat_php.php:571
|
2087 |
msgid "2 weeks"
|
2088 |
msgstr ""
|
2089 |
|
2090 |
+
#: lib\wassup.class.php:523 lib\wassup.class.php:559
|
2091 |
+
#: lib\compat-lib\compat_php.php:536 lib\compat-lib\compat_php.php:572
|
2092 |
msgid "1 month"
|
2093 |
msgstr ""
|
2094 |
|
2095 |
+
#: lib\wassup.class.php:524 lib\wassup.class.php:560
|
2096 |
+
#: lib\compat-lib\compat_php.php:537 lib\compat-lib\compat_php.php:573
|
2097 |
msgid "3 months"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: lib\wassup.class.php:525 lib\wassup.class.php:561
|
2101 |
+
#: lib\compat-lib\compat_php.php:538 lib\compat-lib\compat_php.php:574
|
2102 |
msgid "6 months"
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: lib\wassup.class.php:526 lib\wassup.class.php:562
|
2106 |
+
#: lib\compat-lib\compat_php.php:539 lib\compat-lib\compat_php.php:575
|
2107 |
msgid "1 year"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
+
#: lib\wassup.class.php:533 lib\compat-lib\compat_php.php:546
|
2111 |
msgid "All"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
+
#: lib\wassup.class.php:536 lib\compat-lib\compat_php.php:549
|
2115 |
msgid "Spider and spam"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
+
#: lib\wassup.class.php:546 lib\compat-lib\compat_php.php:559
|
2119 |
msgid "IP Address"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
+
#: lib\wassup.class.php:547 lib\compat-lib\compat_php.php:560
|
2123 |
msgid "URL Request"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
+
#: lib\wassup.class.php:553 lib\compat-lib\compat_php.php:566
|
2127 |
msgid "1 hour"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: lib\wassup.class.php:554 lib\compat-lib\compat_php.php:567
|
2131 |
msgid "6 hours"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
+
#: lib\wassup.class.php:555 lib\compat-lib\compat_php.php:568
|
2135 |
msgid "12 hours"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
+
#: lib\wassup.class.php:563 lib\compat-lib\compat_php.php:576
|
2139 |
msgid "all time"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
+
#: lib\wassup.class.php:656 lib\compat-lib\compat_php.php:669
|
2143 |
msgid ""
|
2144 |
"Permission denied! Sorry, you must be an 'administrator' to change settings."
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: lib\wassup.class.php:659 lib\compat-lib\compat_php.php:672
|
2148 |
msgid "Nothing to do!"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: lib\wassup.class.php:687 lib\compat-lib\compat_php.php:700
|
2152 |
msgid "not required"
|
2153 |
msgstr ""
|
2154 |
|
2155 |
+
#: lib\wassup.class.php:789 lib\wassupadmin.php:673
|
2156 |
+
#: lib\compat-lib\compat_php.php:802
|
2157 |
msgid "Wassup options updated successfully"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
+
#: lib\wassup.class.php:1032 lib\compat-lib\compat_php.php:1045
|
2161 |
msgid "error"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
+
#: lib\wassup.class.php:1033 lib\compat-lib\compat_php.php:1046
|
2165 |
msgid "warning"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
+
#: lib\wassup.class.php:1034 lib\compat-lib\compat_php.php:1047
|
2169 |
msgid "updated"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
+
#: lib\wassup.class.php:1035 lib\compat-lib\compat_php.php:1048
|
2173 |
msgid "upgraded"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: lib\wassup.class.php:1036 lib\compat-lib\compat_php.php:1049
|
2177 |
msgid "deleted"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
+
#: lib\wassup.class.php:1706 lib\compat-lib\compat_php.php:1716
|
2181 |
msgid "ERROR"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
+
#: lib\wassup.class.php:1766 lib\compat-lib\compat_php.php:1776
|
2185 |
#, php-format
|
2186 |
msgid "%s error!"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
+
#: lib\wassup.class.php:1767 lib\compat-lib\compat_php.php:1777
|
2190 |
#, php-format
|
2191 |
msgid "%s encountered an error."
|
2192 |
msgstr ""
|
2193 |
|
2194 |
+
#: lib\wassup.class.php:1874 lib\compat-lib\compat_php.php:1884
|
2195 |
msgid "Wassup auto-delete notice"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
+
#: lib\wassup.class.php:1875 lib\compat-lib\compat_php.php:1885
|
2199 |
#, php-format
|
2200 |
msgid "Auto-delete deleted %d old %s records today."
|
2201 |
msgstr ""
|
2202 |
|
2203 |
+
#: lib\wassup.class.php:1911 lib\compat-lib\compat_php.php:1921
|
2204 |
#, php-format
|
2205 |
msgid "Error with TABLE %s: Not found"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: lib\wassup.class.php:1946 lib\compat-lib\compat_php.php:1956
|
2209 |
#, php-format
|
2210 |
msgid "Error with \"SHOW CREATE TABLE\" for %s."
|
2211 |
msgstr ""
|
2212 |
|
2213 |
+
#: lib\wassup.class.php:1953 lib\compat-lib\compat_php.php:1963
|
2214 |
#, php-format
|
2215 |
msgid "Table structure of table %s"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
+
#: lib\wassup.class.php:1959 lib\compat-lib\compat_php.php:1969
|
2219 |
#, php-format
|
2220 |
msgid "Data contents of table %s"
|
2221 |
msgstr ""
|
2222 |
|
2223 |
+
#: lib\wassup.class.php:1967 lib\compat-lib\compat_php.php:1977
|
2224 |
#, php-format
|
2225 |
msgid "Error getting table structure of %s: %s"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: lib\wassup.class.php:1970 lib\compat-lib\compat_php.php:1980
|
2229 |
#, php-format
|
2230 |
msgid "Error getting table structure of %s"
|
2231 |
msgstr ""
|
2232 |
|
2233 |
+
#: lib\wassup.class.php:1976 lib\compat-lib\compat_php.php:1986
|
2234 |
#, php-format
|
2235 |
msgid "Error with table %s: %s"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: lib\wassup.class.php:1978 lib\compat-lib\compat_php.php:1988
|
2239 |
#, php-format
|
2240 |
msgid "Error with table %s: No data"
|
2241 |
msgstr ""
|
2242 |
|
2243 |
+
#: lib\wassup.class.php:2059 lib\compat-lib\compat_php.php:2069
|
2244 |
#, php-format
|
2245 |
msgid "Error exporting data from table %s: %s"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: lib\wassup.class.php:2115 lib\compat-lib\compat_php.php:2125
|
2249 |
#, php-format
|
2250 |
msgid "End of data contents of table %s"
|
2251 |
msgstr ""
|
2252 |
|
2253 |
+
#: lib\wassup.class.php:2117 lib\compat-lib\compat_php.php:2127
|
2254 |
#, php-format
|
2255 |
msgid "Interrupted data contents of table %s"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
+
#: lib\wassup.class.php:2126 lib\compat-lib\compat_php.php:2136
|
2259 |
#, php-format
|
2260 |
msgid "End time: %d"
|
2261 |
msgstr ""
|
2262 |
|
2263 |
+
#: lib\wassup.class.php:2127 lib\wassup.class.php:2132
|
2264 |
+
#: lib\compat-lib\compat_php.php:2137 lib\compat-lib\compat_php.php:2142
|
2265 |
#, php-format
|
2266 |
msgid "%d out of %d records exported."
|
2267 |
msgstr ""
|
2268 |
|
2269 |
+
#: lib\wassup.class.php:2127 lib\wassup.class.php:2132
|
2270 |
+
#: lib\compat-lib\compat_php.php:2137 lib\compat-lib\compat_php.php:2142
|
2271 |
#, php-format
|
2272 |
msgid "Last record ID: %d"
|
2273 |
msgstr ""
|
2274 |
|
2275 |
+
#: lib\wassup.class.php:2276 lib\wassup.class.php:2309 lib\wassupadmin.php:1770
|
2276 |
+
#: lib\compat-lib\compat_php.php:2284 lib\compat-lib\compat_php.php:2317
|
2277 |
msgid "direct hit"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: lib\wassup.class.php:2287 lib\wassup.class.php:2290
|
2281 |
+
#: lib\compat-lib\compat_php.php:2295 lib\compat-lib\compat_php.php:2298
|
2282 |
msgid "from your site"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
+
#: lib\wassupadmin.php:152
|
2286 |
msgid "paused"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
+
#: lib\wassupadmin.php:193
|
2290 |
msgid "Sorry, delete failed!"
|
2291 |
msgstr ""
|
2292 |
|
2293 |
+
#: lib\wassupadmin.php:196
|
2294 |
msgid "Delete record failed!"
|
2295 |
msgstr ""
|
2296 |
|
2297 |
+
#: lib\wassupadmin.php:206 lib\wassupadmin.php:213 lib\wassupadmin.php:1568
|
2298 |
msgid "Hide Search"
|
2299 |
msgstr ""
|
2300 |
|
2301 |
+
#: lib\wassupadmin.php:218 lib\wassupadmin.php:262
|
2302 |
msgid "Collapse All"
|
2303 |
msgstr ""
|
2304 |
|
2305 |
+
#: lib\wassupadmin.php:220 lib\wassupadmin.php:264 lib\wassupadmin.php:979
|
2306 |
+
#: lib\wassupadmin.php:1609
|
2307 |
msgid "Expand All"
|
2308 |
msgstr ""
|
2309 |
|
2310 |
+
#: lib\wassupadmin.php:223
|
2311 |
msgid "Expand Chronology"
|
2312 |
msgstr ""
|
2313 |
|
2314 |
+
#: lib\wassupadmin.php:225 lib\wassupadmin.php:1610
|
2315 |
msgid "Collapse Chronology"
|
2316 |
msgstr ""
|
2317 |
|
2428 |
msgid "Exec time"
|
2429 |
msgstr ""
|
2430 |
|
2431 |
+
#: lib\wassupadmin.php:1010 lib\wassupadmin.php:1197
|
2432 |
msgid "Legend"
|
2433 |
msgstr ""
|
2434 |
|
2435 |
+
#: lib\wassupadmin.php:1010 lib\wassupadmin.php:1039 lib\wassupadmin.php:1197
|
2436 |
msgid "Logged-in Users"
|
2437 |
msgstr ""
|
2438 |
|
2439 |
+
#: lib\wassupadmin.php:1010
|
2440 |
msgid "Comment Authors"
|
2441 |
msgstr ""
|
2442 |
|
2443 |
+
#: lib\wassupadmin.php:1010 lib\wassupadmin.php:1197
|
2444 |
msgid "Spiders/bots"
|
2445 |
msgstr ""
|
2446 |
|
2447 |
+
#: lib\wassupadmin.php:1038 lib\wassupadmin.php:2082
|
2448 |
+
#: lib\compat-lib\compat_php.php:2586 widgets\widget_functions.php:201
|
2449 |
msgid "Visitors online"
|
2450 |
msgstr ""
|
2451 |
|
2452 |
+
#: lib\wassupadmin.php:1066
|
2453 |
msgid "From your site"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
+
#: lib\wassupadmin.php:1088 lib\wassupadmin.php:1679
|
2457 |
msgid "LOGGED IN USER"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
+
#: lib\wassupadmin.php:1093 lib\wassupadmin.php:1686
|
2461 |
msgid "ADMINISTRATOR"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
+
#: lib\wassupadmin.php:1108 lib\wassupadmin.php:1707
|
2465 |
msgid "COMMENT AUTHOR"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: lib\wassupadmin.php:1129 lib\wassupadmin.php:1762
|
2469 |
msgid "show raw table"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
+
#: lib\wassupadmin.php:1129 lib\wassupadmin.php:1762
|
2473 |
msgid "Show the items as raw table"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
+
#: lib\wassupadmin.php:1197
|
2477 |
msgid "Comments Authors"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
+
#: lib\wassupadmin.php:1201
|
2481 |
msgid "Pause"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
+
#: lib\wassupadmin.php:1202
|
2485 |
msgid "Play"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
+
#: lib\wassupadmin.php:1213
|
2489 |
msgid "Show map"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
+
#: lib\wassupadmin.php:1213
|
2493 |
msgid "Show ip geo location on map"
|
2494 |
msgstr ""
|
2495 |
|
2496 |
+
#: lib\wassupadmin.php:1219
|
2497 |
msgid "Spy items by"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
+
#: lib\wassupadmin.php:1266
|
2501 |
msgid "WassUp recording is disabled"
|
2502 |
msgstr ""
|
2503 |
|
2504 |
+
#: lib\wassupadmin.php:1268
|
2505 |
msgid "WassUp recording is disabled for network."
|
2506 |
msgstr ""
|
2507 |
|
2508 |
+
#: lib\wassupadmin.php:1465
|
2509 |
msgid "Show details from the last"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
+
#: lib\wassupadmin.php:1474
|
2513 |
msgid "Items per page"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
+
#: lib\wassupadmin.php:1484
|
2517 |
msgid "Filter items for"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
+
#: lib\wassupadmin.php:1498
|
2521 |
msgid "Visits"
|
2522 |
msgstr ""
|
2523 |
|
2524 |
+
#: lib\wassupadmin.php:1499
|
2525 |
msgid "Pageviews"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: lib\wassupadmin.php:1500
|
2529 |
msgid "Pages/Visits"
|
2530 |
msgstr ""
|
2531 |
|
2532 |
+
#: lib\wassupadmin.php:1516
|
2533 |
msgid "Spams"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
+
#: lib\wassupadmin.php:1526
|
2537 |
msgid "Spam/Malware Options"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
+
#: lib\wassupadmin.php:1532
|
2541 |
msgid "Enable Spam and Malware Check on Records"
|
2542 |
msgstr ""
|
2543 |
|
2544 |
+
#: lib\wassupadmin.php:1535
|
2545 |
+
msgid "Record attack/exploit attempts (libwww-perl agent)"
|
2546 |
+
msgstr ""
|
2547 |
+
|
2548 |
+
#: lib\wassupadmin.php:1544
|
2549 |
msgid "refresh screen"
|
2550 |
msgstr ""
|
2551 |
|
2552 |
+
#: lib\wassupadmin.php:1546
|
2553 |
#, php-format
|
2554 |
msgid "Auto refresh in %s seconds"
|
2555 |
msgstr ""
|
2556 |
|
2557 |
+
#: lib\wassupadmin.php:1551
|
2558 |
msgid "hide chart"
|
2559 |
msgstr ""
|
2560 |
|
2561 |
+
#: lib\wassupadmin.php:1551
|
2562 |
msgid "Hide the chart"
|
2563 |
msgstr ""
|
2564 |
|
2565 |
+
#: lib\wassupadmin.php:1551
|
2566 |
msgid "Hide chart"
|
2567 |
msgstr ""
|
2568 |
|
2569 |
+
#: lib\wassupadmin.php:1553
|
2570 |
msgid "show chart"
|
2571 |
msgstr ""
|
2572 |
|
2573 |
+
#: lib\wassupadmin.php:1553
|
2574 |
msgid "Show the chart"
|
2575 |
msgstr ""
|
2576 |
|
2577 |
+
#: lib\wassupadmin.php:1553
|
2578 |
msgid "Show chart"
|
2579 |
msgstr ""
|
2580 |
|
2581 |
+
#: lib\wassupadmin.php:1564
|
2582 |
#, php-format
|
2583 |
msgid "Top Stats for %s"
|
2584 |
msgstr ""
|
2585 |
|
2586 |
+
#: lib\wassupadmin.php:1564
|
2587 |
msgid "Show top stats"
|
2588 |
msgstr ""
|
2589 |
|
2590 |
+
#: lib\wassupadmin.php:1566
|
2591 |
#, php-format
|
2592 |
msgid "Top stats for %s in popup"
|
2593 |
msgstr ""
|
2594 |
|
2595 |
+
#: lib\wassupadmin.php:1574
|
2596 |
#, php-format
|
2597 |
msgid "%s matches found for search"
|
2598 |
msgstr ""
|
2599 |
|
2600 |
+
#: lib\wassupadmin.php:1578
|
2601 |
#, php-format
|
2602 |
msgid "%s items marked for IP"
|
2603 |
msgstr ""
|
2604 |
|
2605 |
+
#: lib\wassupadmin.php:1579
|
2606 |
msgid "Filter by marked IP"
|
2607 |
msgstr ""
|
2608 |
|
2609 |
+
#: lib\wassupadmin.php:1643
|
2610 |
msgid "Records display interrupted."
|
2611 |
msgstr ""
|
2612 |
|
2613 |
+
#: lib\wassupadmin.php:1646
|
2614 |
msgid "Unable to display records."
|
2615 |
msgstr ""
|
2616 |
|
2617 |
+
#: lib\wassupadmin.php:1713
|
2618 |
msgid "FEEDREADER"
|
2619 |
msgstr ""
|
2620 |
|
2621 |
+
#: lib\wassupadmin.php:1715
|
2622 |
msgid "SUBSCRIBER(S)"
|
2623 |
msgstr ""
|
2624 |
|
2625 |
+
#: lib\wassupadmin.php:1718
|
2626 |
msgid "SPIDER"
|
2627 |
msgstr ""
|
2628 |
|
2629 |
+
#: lib\wassupadmin.php:1752 lib\wassupadmin.php:1757
|
2630 |
msgid "delete"
|
2631 |
msgstr ""
|
2632 |
|
2633 |
+
#: lib\wassupadmin.php:1752
|
2634 |
msgid "Delete ALL marked records with this IP"
|
2635 |
msgstr ""
|
2636 |
|
2637 |
+
#: lib\wassupadmin.php:1754
|
2638 |
msgid "unmark"
|
2639 |
msgstr ""
|
2640 |
|
2641 |
+
#: lib\wassupadmin.php:1754
|
2642 |
msgid "UnMark IP"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#: lib\wassupadmin.php:1757
|
2646 |
msgid "Delete this record"
|
2647 |
msgstr ""
|
2648 |
|
2649 |
+
#: lib\wassupadmin.php:1759
|
2650 |
msgid "mark"
|
2651 |
msgstr ""
|
2652 |
|
2653 |
+
#: lib\wassupadmin.php:1759
|
2654 |
msgid "Mark IP"
|
2655 |
msgstr ""
|
2656 |
|
2657 |
+
#: lib\wassupadmin.php:1802
|
2658 |
msgid "SEARCH ENGINE"
|
2659 |
msgstr ""
|
2660 |
|
2661 |
+
#: lib\wassupadmin.php:1802
|
2662 |
msgid "page"
|
2663 |
msgstr ""
|
2664 |
|
2665 |
+
#: lib\wassupadmin.php:1803
|
2666 |
msgid "KEYWORDS"
|
2667 |
msgstr ""
|
2668 |
|
2669 |
+
#: lib\wassupadmin.php:1826
|
2670 |
msgid "Probably SPAM!"
|
2671 |
msgstr ""
|
2672 |
|
2673 |
+
#: lib\wassupadmin.php:1828
|
2674 |
msgid "Referer Spam"
|
2675 |
msgstr ""
|
2676 |
|
2677 |
+
#: lib\wassupadmin.php:1832
|
2678 |
msgid "Comment Spam"
|
2679 |
msgstr ""
|
2680 |
|
2681 |
+
#: lib\wassupadmin.php:1840
|
2682 |
msgid "Probably hack/malware attempt!"
|
2683 |
msgstr ""
|
2684 |
|
2685 |
+
#: lib\wassupadmin.php:1867
|
2686 |
msgid "BROWSER"
|
2687 |
msgstr ""
|
2688 |
|
2689 |
+
#: lib\wassupadmin.php:1870
|
2690 |
msgid "RESOLUTION"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
+
#: lib\wassupadmin.php:1940
|
2694 |
msgid "Graph of visitor hits"
|
2695 |
msgstr ""
|
2696 |
|
2697 |
+
#: lib\wassupadmin.php:1942
|
2698 |
msgid "Too few records to print chart"
|
2699 |
msgstr ""
|
2700 |
|
2701 |
+
#: lib\wassupadmin.php:1951
|
2702 |
#, php-format
|
2703 |
msgid "Invalid page request %s"
|
2704 |
msgstr ""
|
2705 |
|
2706 |
+
#: lib\wassupadmin.php:2016 lib\compat-lib\compat_php.php:2520
|
2707 |
msgid "Stats"
|
2708 |
msgstr ""
|
2709 |
|
2710 |
+
#: lib\wassupadmin.php:2016 lib\compat-lib\compat_php.php:2520
|
2711 |
msgid "More"
|
2712 |
msgstr ""
|
2713 |
|
2714 |
+
#: lib\wassupadmin.php:2018 lib\wassupadmin.php:2053
|
2715 |
+
#: lib\compat-lib\compat_php.php:2522 lib\compat-lib\compat_php.php:2557
|
2716 |
msgid "visitor stats chart"
|
2717 |
msgstr ""
|
2718 |
|
2719 |
+
#: lib\wassupadmin.php:2048 lib\compat-lib\compat_php.php:2552
|
2720 |
msgid "More Stats"
|
2721 |
msgstr ""
|
2722 |
|
2723 |
+
#: lib\wassupadmin.php:2129 lib\compat-lib\compat_php.php:2633
|
2724 |
msgid "Registered users"
|
2725 |
msgstr ""
|
2726 |
|
2727 |
+
#: lib\wassupadmin.php:2139 lib\compat-lib\compat_php.php:2643
|
2728 |
+
#: widgets\widget_functions.php:200
|
2729 |
msgid "Visitor online"
|
2730 |
msgstr ""
|
2731 |
|
2732 |
+
#: lib\wassupadmin.php:2144 lib\compat-lib\compat_php.php:2648
|
2733 |
msgid "No online data!"
|
2734 |
msgstr ""
|
2735 |
|
2736 |
+
#: lib\wassupadmin.php:2148 lib\compat-lib\compat_php.php:2652
|
2737 |
+
#: widgets\widget_functions.php:105
|
2738 |
msgid "powered by"
|
2739 |
msgstr ""
|
2740 |
|
2741 |
+
#: lib\wassupadmin.php:2148 lib\compat-lib\compat_php.php:2652
|
2742 |
+
#: widgets\widget_functions.php:105
|
2743 |
msgid "Real Time Visitors Tracking"
|
2744 |
msgstr ""
|
2745 |
|
2746 |
+
#: lib\compat-lib\compat_widget.php:105 widgets\widgets.php:101
|
2747 |
+
#: widgets\widgets.php:249 widgets\widgets.php:463
|
2748 |
msgid "Widget style options"
|
2749 |
msgstr ""
|
2750 |
|
2751 |
+
#: lib\compat-lib\compat_widget.php:107 widgets\widgets.php:103
|
2752 |
+
#: widgets\widgets.php:251 widgets\widgets.php:465
|
2753 |
#, php-format
|
2754 |
msgid "Class attribute for %s list:"
|
2755 |
msgstr ""
|
2756 |
|
2757 |
+
#: lib\compat-lib\compat_widget.php:109 widgets\widgets.php:105
|
2758 |
+
#: widgets\widgets.php:253 widgets\widgets.php:467
|
2759 |
msgid "Max. chars to display from left"
|
2760 |
msgstr ""
|
2761 |
|
2762 |
+
#: lib\compat-lib\compat_widget.php:110 widgets\widgets.php:106
|
2763 |
+
#: widgets\widgets.php:254 widgets\widgets.php:468
|
2764 |
msgid "enter \"0\" for theme default/line wrap of long texts"
|
2765 |
msgstr ""
|
2766 |
|
2767 |
+
#: widgets\widgets.php:57
|
2768 |
msgid "base widget"
|
2769 |
msgstr ""
|
2770 |
|
2771 |
+
#: widgets\widgets.php:201
|
2772 |
msgid "Online"
|
2773 |
msgstr ""
|
2774 |
|
2775 |
+
#: widgets\widgets.php:202
|
2776 |
msgid "Show counts of your site's visitors who are currently online."
|
2777 |
msgstr ""
|
2778 |
|
2779 |
+
#: widgets\widgets.php:212
|
2780 |
msgid "Online Now"
|
2781 |
msgstr ""
|
2782 |
|
2783 |
+
#: widgets\widgets.php:232
|
2784 |
msgid "Show online counts for:"
|
2785 |
msgstr ""
|
2786 |
|
2787 |
+
#: widgets\widgets.php:234
|
2788 |
msgid "All current visitors"
|
2789 |
msgstr ""
|
2790 |
|
2791 |
+
#: widgets\widgets.php:235 widgets\widget_functions.php:211
|
2792 |
msgid "Logged-in users"
|
2793 |
msgstr ""
|
2794 |
|
2795 |
+
#: widgets\widgets.php:237 widgets\widget_functions.php:231
|
2796 |
msgid "Regular visitors"
|
2797 |
msgstr ""
|
2798 |
|
2799 |
+
#: widgets\widgets.php:238 widgets\widget_functions.php:241
|
2800 |
msgid "Others"
|
2801 |
msgstr ""
|
2802 |
|
2803 |
+
#: widgets\widgets.php:242
|
2804 |
msgid "Online Users Details"
|
2805 |
msgstr ""
|
2806 |
|
2807 |
+
#: widgets\widgets.php:244
|
2808 |
msgid "Show online usernames to registered users"
|
2809 |
msgstr ""
|
2810 |
|
2811 |
+
#: widgets\widgets.php:245
|
2812 |
msgid "Show country flags of users online"
|
2813 |
msgstr ""
|
2814 |
|
2815 |
+
#: widgets\widgets.php:258
|
2816 |
msgid "online counts are automatically cached for 1 minute."
|
2817 |
msgstr ""
|
2818 |
|
2819 |
+
#: widgets\widgets.php:259 widgets\widgets.php:473
|
2820 |
msgid "empty results are not displayed."
|
2821 |
msgstr ""
|
2822 |
|
2823 |
+
#: widgets\widgets.php:370
|
2824 |
msgid "Top Stats"
|
2825 |
msgstr ""
|
2826 |
|
2827 |
+
#: widgets\widgets.php:371
|
2828 |
msgid ""
|
2829 |
"List your site's most popular or trending items from Wassup's latest stats "
|
2830 |
"data."
|
2831 |
msgstr ""
|
2832 |
|
2833 |
+
#: widgets\widgets.php:404
|
2834 |
msgid "of first checked item below"
|
2835 |
msgstr ""
|
2836 |
|
2837 |
+
#: widgets\widgets.php:406
|
2838 |
msgid "List Top Results for"
|
2839 |
msgstr ""
|
2840 |
|
2841 |
+
#: widgets\widgets.php:410
|
2842 |
msgid "Stat item"
|
2843 |
msgstr ""
|
2844 |
|
2845 |
+
#: widgets\widgets.php:411
|
2846 |
msgid "max limit"
|
2847 |
msgstr ""
|
2848 |
|
2849 |
+
#: widgets\widgets.php:413
|
2850 |
msgid "Titles of posts and pages"
|
2851 |
msgstr ""
|
2852 |
|
2853 |
+
#: widgets\widgets.php:413
|
2854 |
msgid "Latest articles"
|
2855 |
msgstr ""
|
2856 |
|
2857 |
+
#: widgets\widgets.php:419
|
2858 |
msgid "Search engine searches"
|
2859 |
msgstr ""
|
2860 |
|
2861 |
+
#: widgets\widgets.php:419
|
2862 |
msgid "Latest searches"
|
2863 |
msgstr ""
|
2864 |
|
2865 |
+
#: widgets\widgets.php:425
|
2866 |
msgid "External links that generated referrals to your site"
|
2867 |
msgstr ""
|
2868 |
|
2869 |
+
#: widgets\widgets.php:425
|
2870 |
msgid "Latest referrers"
|
2871 |
msgstr ""
|
2872 |
|
2873 |
+
#: widgets\widgets.php:431
|
2874 |
msgid "Latest URL requests"
|
2875 |
msgstr ""
|
2876 |
|
2877 |
+
#: widgets\widgets.php:437
|
2878 |
msgid "Client browser software"
|
2879 |
msgstr ""
|
2880 |
|
2881 |
+
#: widgets\widgets.php:437
|
2882 |
msgid "Latest browsers"
|
2883 |
msgstr ""
|
2884 |
|
2885 |
+
#: widgets\widgets.php:443
|
2886 |
msgid "Client device/operating software"
|
2887 |
msgstr ""
|
2888 |
|
2889 |
+
#: widgets\widgets.php:443
|
2890 |
msgid "Latest OS"
|
2891 |
msgstr ""
|
2892 |
|
2893 |
+
#: widgets\widgets.php:449
|
2894 |
msgid "Visitors country/language"
|
2895 |
msgstr ""
|
2896 |
|
2897 |
+
#: widgets\widgets.php:449
|
2898 |
msgid "Latest locale"
|
2899 |
msgstr ""
|
2900 |
|
2901 |
+
#: widgets\widgets.php:456
|
2902 |
msgid "Show counts for each item"
|
2903 |
msgstr ""
|
2904 |
|
2905 |
+
#: widgets\widgets.php:457
|
2906 |
msgid "Statistics timeframe"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
+
#: widgets\widgets.php:458
|
2910 |
msgid ""
|
2911 |
"select 1-30 days for latest top results, 1-12 hours for trending results"
|
2912 |
msgstr ""
|
2913 |
|
2914 |
+
#: widgets\widgets.php:459
|
2915 |
msgid "Refresh statistics every:"
|
2916 |
msgstr ""
|
2917 |
|
2918 |
+
#: widgets\widgets.php:472
|
2919 |
msgid "known spammers and spiders are excluded from results."
|
2920 |
msgstr ""
|
2921 |
|
2922 |
+
#: widgets\widgets.php:576
|
2923 |
msgid "Trending"
|
2924 |
msgstr ""
|
2925 |
|
2926 |
+
#: widgets\widget_functions.php:240
|
2927 |
msgid "Other"
|
2928 |
msgstr ""
|
2929 |
|
2930 |
+
#: widgets\widget_functions.php:397
|
2931 |
#, php-format
|
2932 |
msgid "%s articles"
|
2933 |
msgstr ""
|
2934 |
|
2935 |
+
#: widgets\widget_functions.php:398
|
2936 |
#, php-format
|
2937 |
msgid "%s searches"
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: widgets\widget_functions.php:399
|
2941 |
#, php-format
|
2942 |
msgid "%s referrers"
|
2943 |
msgstr ""
|
2944 |
|
2945 |
+
#: widgets\widget_functions.php:400
|
2946 |
#, php-format
|
2947 |
msgid "%s requests"
|
2948 |
msgstr ""
|
2949 |
|
2950 |
+
#: widgets\widget_functions.php:401
|
2951 |
#, php-format
|
2952 |
msgid "%s browsers"
|
2953 |
msgstr ""
|
2954 |
|
2955 |
+
#: widgets\widget_functions.php:402
|
2956 |
#, php-format
|
2957 |
msgid "%s OS"
|
2958 |
msgstr ""
|
2959 |
|
2960 |
+
#: widgets\widget_functions.php:403
|
2961 |
#, php-format
|
2962 |
msgid "%s locale"
|
2963 |
msgstr ""
|
lib/action.php
CHANGED
@@ -5,28 +5,22 @@
|
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage action.php
|
7 |
*/
|
8 |
-
//-------------------------------------------------
|
9 |
-
//# No direct requests for this plugin module
|
10 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
11 |
//abort if this is direct uri request for file
|
12 |
-
if(
|
13 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
14 |
//try track this uri request
|
15 |
if(!headers_sent()){
|
16 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
17 |
-
header('Location: /?p=404page&
|
18 |
exit;
|
19 |
}else{
|
20 |
//'wp_die' may be undefined here
|
21 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
22 |
}
|
23 |
-
exit;
|
24 |
//abort if no WordPress
|
25 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
26 |
//show escaped bad request on exit
|
27 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
28 |
}
|
29 |
-
unset($wfile); //to free memory
|
30 |
//-------------------------------------------------
|
31 |
/**
|
32 |
* Wassup ajax action handler function.
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage action.php
|
7 |
*/
|
|
|
|
|
|
|
8 |
//abort if this is direct uri request for file
|
9 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
10 |
//try track this uri request
|
11 |
if(!headers_sent()){
|
12 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
13 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
14 |
exit;
|
15 |
}else{
|
16 |
//'wp_die' may be undefined here
|
17 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
18 |
}
|
|
|
19 |
//abort if no WordPress
|
20 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
21 |
//show escaped bad request on exit
|
22 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
23 |
}
|
|
|
24 |
//-------------------------------------------------
|
25 |
/**
|
26 |
* Wassup ajax action handler function.
|
lib/akismet.class.php
CHANGED
@@ -5,28 +5,22 @@
|
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage akismet.class.php module
|
7 |
*/
|
8 |
-
//-------------------------------------------------
|
9 |
-
//# No direct requests for this plugin module
|
10 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
11 |
//abort if this is direct uri request for file
|
12 |
-
if(
|
13 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
14 |
//try track this uri request
|
15 |
if(!headers_sent()){
|
16 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
17 |
-
header('Location: /?p=404page&
|
18 |
exit;
|
19 |
}else{
|
20 |
//'wp_die' may be undefined here
|
21 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
22 |
}
|
23 |
-
exit;
|
24 |
//abort if no WordPress
|
25 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
26 |
//show escaped bad request on exit
|
27 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
28 |
}
|
29 |
-
unset($wfile);
|
30 |
//-------------------------------------------------
|
31 |
//Classes and constants renamed for compatibility with Akismet v3.0 -Helene D. @since v1.9
|
32 |
/**
|
@@ -112,14 +106,14 @@ class wassup_AkismetHttpClient extends wassup_AkismetObject {
|
|
112 |
"\r\n".$request;
|
113 |
$response="";
|
114 |
@fwrite($this->con,$request);
|
115 |
-
//
|
116 |
stream_set_timeout($this->con,5);
|
117 |
$info=stream_get_meta_data($this->con);
|
118 |
while(!feof($this->con) && !$info['timed_out']){
|
119 |
$response .= @fgets($this->con,$responseLength);
|
120 |
-
$info=stream_get_meta_data($this->con);
|
121 |
}
|
122 |
-
//
|
123 |
if(!empty($response)){
|
124 |
$response=explode("\r\n\r\n",$response,2);
|
125 |
return $response[1];
|
@@ -195,7 +189,6 @@ class wassup_Akismet extends wassup_AkismetObject {
|
|
195 |
}
|
196 |
/** Query Akismet server to check if comment is spam or not */
|
197 |
function isSpam() {
|
198 |
-
//v1.9.1 bugfix: removed 'set_time_limit' code (since v1.9) because it has no effect on remote requests
|
199 |
$response=$this->http->getResponse($this->_getQueryString(), 'comment-check');
|
200 |
return ($response=="true");
|
201 |
}
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage akismet.class.php module
|
7 |
*/
|
|
|
|
|
|
|
8 |
//abort if this is direct uri request for file
|
9 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
10 |
//try track this uri request
|
11 |
if(!headers_sent()){
|
12 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
13 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
14 |
exit;
|
15 |
}else{
|
16 |
//'wp_die' may be undefined here
|
17 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
18 |
}
|
|
|
19 |
//abort if no WordPress
|
20 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
21 |
//show escaped bad request on exit
|
22 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
23 |
}
|
|
|
24 |
//-------------------------------------------------
|
25 |
//Classes and constants renamed for compatibility with Akismet v3.0 -Helene D. @since v1.9
|
26 |
/**
|
106 |
"\r\n".$request;
|
107 |
$response="";
|
108 |
@fwrite($this->con,$request);
|
109 |
+
//don't wait for slow server @since v1.9.1
|
110 |
stream_set_timeout($this->con,5);
|
111 |
$info=stream_get_meta_data($this->con);
|
112 |
while(!feof($this->con) && !$info['timed_out']){
|
113 |
$response .= @fgets($this->con,$responseLength);
|
114 |
+
$info=stream_get_meta_data($this->con);
|
115 |
}
|
116 |
+
//timeout error message @since v1.9.1
|
117 |
if(!empty($response)){
|
118 |
$response=explode("\r\n\r\n",$response,2);
|
119 |
return $response[1];
|
189 |
}
|
190 |
/** Query Akismet server to check if comment is spam or not */
|
191 |
function isSpam() {
|
|
|
192 |
$response=$this->http->getResponse($this->_getQueryString(), 'comment-check');
|
193 |
return ($response=="true");
|
194 |
}
|
lib/compatibility.php
CHANGED
@@ -10,16 +10,12 @@
|
|
10 |
* @since: v1.9.1
|
11 |
* @author: helened <http://helenesit.com>
|
12 |
*/
|
13 |
-
//-------------------------------------------------
|
14 |
-
//# No direct requests for this plugin module
|
15 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
16 |
//abort if this is direct uri request for file
|
17 |
-
if(
|
18 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
19 |
//try track this uri request
|
20 |
if(!headers_sent()){
|
21 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
22 |
-
header('Location: /?p=404page&
|
23 |
exit;
|
24 |
}else{
|
25 |
//'wp_die' may be undefined here
|
@@ -28,8 +24,8 @@ if((!empty($_SERVER['PHP_SELF']) && preg_match('#'.preg_quote($_SERVER['PHP_SELF
|
|
28 |
exit;
|
29 |
//abort if no WordPress
|
30 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
31 |
-
//
|
32 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
33 |
}
|
34 |
//-------------------------------------------------
|
35 |
/**
|
@@ -46,10 +42,14 @@ function wassup_load_compat_modules(){
|
|
46 |
if(version_compare($wp_version,'3.1','<')){
|
47 |
if(file_exists($wassup_compatlib.'/compat_wp.php')){
|
48 |
require_once($wassup_compatlib.'/compat_wp.php');
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
50 |
}else{
|
51 |
$is_compatible=false;
|
52 |
-
//wp_die("Missing file $wassup_compatlib/compat_wp.php"); //debug
|
53 |
}
|
54 |
}elseif(version_compare($wp_version,'4.5','<')){
|
55 |
if(file_exists($wassup_compatlib.'/compat_functions.php')){
|
@@ -62,7 +62,6 @@ function wassup_load_compat_modules(){
|
|
62 |
require_once($wassup_compatlib.'/compat_php.php');
|
63 |
}else{
|
64 |
$is_compatible=false;
|
65 |
-
//wp_die("Missing file $wassup_compatlib/compat_php.php"); //debug
|
66 |
}
|
67 |
}
|
68 |
}
|
@@ -81,9 +80,16 @@ function wassup_show_compat_message(){
|
|
81 |
$php_vers=phpversion();
|
82 |
$wassup_compatlib=WASSUPDIR.'/lib/compat-lib';
|
83 |
$download_link='<a href="https://github.com/michelem09/wassup/releases/tag/v'.WASSUPVERSION.'">GitHub</a>';
|
84 |
-
if(version_compare($wp_version,'3.1','<')
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
}elseif(version_compare($php_vers,'5.2','<') && !file_exists($wassup_compatlib.'/compat_php.php')){
|
88 |
$msg= __("WARNING! WassUp's PHP compatibility module is missing.","wassup");
|
89 |
$msg .= ' '.sprintf(__('Download and install the full version of Wassup with compatibility library included directly from %s.','wassup'),$download_link);
|
@@ -95,4 +101,4 @@ function wassup_show_compat_message(){
|
|
95 |
echo '<div '.$mstyle.'>'.$msg.'</div>';
|
96 |
}
|
97 |
}
|
98 |
-
|
10 |
* @since: v1.9.1
|
11 |
* @author: helened <http://helenesit.com>
|
12 |
*/
|
|
|
|
|
|
|
13 |
//abort if this is direct uri request for file
|
14 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
15 |
//try track this uri request
|
16 |
if(!headers_sent()){
|
17 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
18 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
19 |
exit;
|
20 |
}else{
|
21 |
//'wp_die' may be undefined here
|
24 |
exit;
|
25 |
//abort if no WordPress
|
26 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
27 |
+
//show escaped bad request on exit
|
28 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
29 |
}
|
30 |
//-------------------------------------------------
|
31 |
/**
|
42 |
if(version_compare($wp_version,'3.1','<')){
|
43 |
if(file_exists($wassup_compatlib.'/compat_wp.php')){
|
44 |
require_once($wassup_compatlib.'/compat_wp.php');
|
45 |
+
//New in v1.9.2: added multisite compatibility check
|
46 |
+
if(function_exists('is_multisite') && is_multisite()){
|
47 |
+
$is_compatible=false;
|
48 |
+
}else{
|
49 |
+
include_once($wassup_compatlib.'/compat_functions.php');
|
50 |
+
}
|
51 |
}else{
|
52 |
$is_compatible=false;
|
|
|
53 |
}
|
54 |
}elseif(version_compare($wp_version,'4.5','<')){
|
55 |
if(file_exists($wassup_compatlib.'/compat_functions.php')){
|
62 |
require_once($wassup_compatlib.'/compat_php.php');
|
63 |
}else{
|
64 |
$is_compatible=false;
|
|
|
65 |
}
|
66 |
}
|
67 |
}
|
80 |
$php_vers=phpversion();
|
81 |
$wassup_compatlib=WASSUPDIR.'/lib/compat-lib';
|
82 |
$download_link='<a href="https://github.com/michelem09/wassup/releases/tag/v'.WASSUPVERSION.'">GitHub</a>';
|
83 |
+
if(version_compare($wp_version,'3.1','<')){
|
84 |
+
if(!file_exists($wassup_compatlib.'/compat_wp.php')){
|
85 |
+
$msg= __("WARNING! WassUp's backward compatibility modules are missing.","wassup");
|
86 |
+
$msg .= ' '.sprintf(__('Download and install the full version of Wassup with compatibility library included directly from %s.','wassup'),$download_link);
|
87 |
+
}
|
88 |
+
//New in v1.9.2: added multisite compatibility message
|
89 |
+
//WassUp works only in WP3.1 or higher for multisite
|
90 |
+
if(function_exists('is_multisite') && is_multisite()){
|
91 |
+
$msg =__("Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups","wassup");
|
92 |
+
}
|
93 |
}elseif(version_compare($php_vers,'5.2','<') && !file_exists($wassup_compatlib.'/compat_php.php')){
|
94 |
$msg= __("WARNING! WassUp's PHP compatibility module is missing.","wassup");
|
95 |
$msg .= ' '.sprintf(__('Download and install the full version of Wassup with compatibility library included directly from %s.','wassup'),$download_link);
|
101 |
echo '<div '.$mstyle.'>'.$msg.'</div>';
|
102 |
}
|
103 |
}
|
104 |
+
?>
|
lib/main.php
CHANGED
@@ -5,29 +5,22 @@
|
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage main.php module
|
7 |
*/
|
8 |
-
//-------------------------------------------------
|
9 |
-
//# No direct requests for this plugin module
|
10 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
11 |
//abort if this is direct uri request for file
|
12 |
-
if(
|
13 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
14 |
//try track this uri request
|
15 |
if(!headers_sent()){
|
16 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
17 |
-
header('Location: /?p=404page&
|
18 |
exit;
|
19 |
}else{
|
20 |
//'wp_die' may be undefined here
|
21 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
22 |
}
|
23 |
-
exit;
|
24 |
//abort if no WordPress
|
25 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
26 |
//show escaped bad request on exit
|
27 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
28 |
}
|
29 |
-
unset($wfile); //to free memory
|
30 |
-
|
31 |
//-------------------------------------------------
|
32 |
if(!class_exists('wassup_pagination')){
|
33 |
/**
|
@@ -235,11 +228,12 @@ class wDetector{
|
|
235 |
$browser="";
|
236 |
$version="";
|
237 |
$match=array();
|
238 |
-
if(
|
239 |
-
$browser="IE";
|
240 |
-
}elseif(preg_match("#^Mozilla\/[0-9.\s]+\(Windows\s(?:NT|Phone)\s[0-9.]+.+\).+(?:\sChrome|Safari)\/[0-9.]+.+\sEdge\/([0-9\.]+)#",$useragent,$match)){
|
241 |
$browser="Edge";
|
242 |
$version=$match[1];
|
|
|
|
|
|
|
243 |
}elseif(preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s(?:.*)Opera\s([0-9\.]+)/",$useragent,$match)){
|
244 |
$browser = "Opera";
|
245 |
}elseif(preg_match("/^Opera\/([0-9\.]+)/",$useragent,$match)){
|
@@ -317,7 +311,7 @@ class wDetector{
|
|
317 |
}elseif(preg_match("/^SonyEricsson([0-9a-zA-Z\-.]+)\/([a-zA-Z0-9\.]+)/i",$useragent,$match)){
|
318 |
$browser="SonyEricsson";
|
319 |
}
|
320 |
-
if(empty($version) && !empty($match[1]) && preg_match("/^\d+(\.\d+)?/",$match[1],$pcs)>0){
|
321 |
$version=$pcs[0];
|
322 |
}
|
323 |
$this->browser=$browser;
|
@@ -641,7 +635,7 @@ function wassup_spiaView ($from_date="",$rows=0,$spytype="",$spy_datasource="")
|
|
641 |
$flag='<img src="'.WASSUPURL.'/img/flags/'.$locale.'.png" title="'.$flag_title.'" />';
|
642 |
//update language/locale code when different from geoip country code (not us)
|
643 |
if(empty($cv->language) || ($cv->language =="us" && $locale!="us")){
|
644 |
-
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `language`='%s' WHERE `wassup_id`='%s' AND `language`='%s'",$locale,$cv->wassup_id,$cv->language);
|
645 |
}
|
646 |
}
|
647 |
}
|
@@ -2070,7 +2064,7 @@ function wFetchAPIData($api_url) {
|
|
2070 |
global $wdebug_mode;
|
2071 |
$wassup_agent=apply_filters('http_headers_useragent',"WassUp/".WASSUPVERSION." - www.wpwp.org");
|
2072 |
$apidata=array();
|
2073 |
-
//
|
2074 |
//try Wordpress 'wp_remote_get' for api results
|
2075 |
if(function_exists('wp_remote_get')){
|
2076 |
$opts=array('user-agent'=>"$wassup_agent",'timeout'=>5);
|
5 |
* @package WassUp Real-time Analytics
|
6 |
* @subpackage main.php module
|
7 |
*/
|
|
|
|
|
|
|
8 |
//abort if this is direct uri request for file
|
9 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
10 |
//try track this uri request
|
11 |
if(!headers_sent()){
|
12 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
13 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
14 |
exit;
|
15 |
}else{
|
16 |
//'wp_die' may be undefined here
|
17 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
18 |
}
|
|
|
19 |
//abort if no WordPress
|
20 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
21 |
//show escaped bad request on exit
|
22 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
23 |
}
|
|
|
|
|
24 |
//-------------------------------------------------
|
25 |
if(!class_exists('wassup_pagination')){
|
26 |
/**
|
228 |
$browser="";
|
229 |
$version="";
|
230 |
$match=array();
|
231 |
+
if(strpos($useragent,' Gecko/')>0 && preg_match("#^Mozilla\/[0-9.\s]+\(Windows\s(?:NT|Phone)\s[0-9.]+.+\).+(?:\sChrome|Safari)\/[0-9.]+.+\sEdge\/([0-9\.]+)#",$useragent,$match)){
|
|
|
|
|
232 |
$browser="Edge";
|
233 |
$version=$match[1];
|
234 |
+
}elseif(preg_match("#^Mozilla\/[0-9.\s]+\(Windows\sNT\s[0-9.]+;.+;\s?rv\:([0-9.]+)\)#",$useragent,$match)){
|
235 |
+
$browser="IE";
|
236 |
+
$version=$match[1];
|
237 |
}elseif(preg_match("/^Mozilla(?:.*)compatible;\sMSIE\s(?:.*)Opera\s([0-9\.]+)/",$useragent,$match)){
|
238 |
$browser = "Opera";
|
239 |
}elseif(preg_match("/^Opera\/([0-9\.]+)/",$useragent,$match)){
|
311 |
}elseif(preg_match("/^SonyEricsson([0-9a-zA-Z\-.]+)\/([a-zA-Z0-9\.]+)/i",$useragent,$match)){
|
312 |
$browser="SonyEricsson";
|
313 |
}
|
314 |
+
if(empty($version) && !empty($match[1]) && preg_match("/^\d+(\.\d+)?/",$match[1],$pcs)>0){
|
315 |
$version=$pcs[0];
|
316 |
}
|
317 |
$this->browser=$browser;
|
635 |
$flag='<img src="'.WASSUPURL.'/img/flags/'.$locale.'.png" title="'.$flag_title.'" />';
|
636 |
//update language/locale code when different from geoip country code (not us)
|
637 |
if(empty($cv->language) || ($cv->language =="us" && $locale!="us")){
|
638 |
+
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `language`='%s' WHERE `wassup_id`='%s' AND `language`='%s'",$locale,$cv->wassup_id,$cv->language);
|
639 |
}
|
640 |
}
|
641 |
}
|
2064 |
global $wdebug_mode;
|
2065 |
$wassup_agent=apply_filters('http_headers_useragent',"WassUp/".WASSUPVERSION." - www.wpwp.org");
|
2066 |
$apidata=array();
|
2067 |
+
//timeout now set in http/curl settings, not via 'set_time_limit' which does not apply to remote requests @since v1.9.1
|
2068 |
//try Wordpress 'wp_remote_get' for api results
|
2069 |
if(function_exists('wp_remote_get')){
|
2070 |
$opts=array('user-agent'=>"$wassup_agent",'timeout'=>5);
|
lib/settings.php
CHANGED
@@ -6,28 +6,22 @@
|
|
6 |
* @subpackage settings.php
|
7 |
* @author helened (http://helenesit.com)
|
8 |
*/
|
9 |
-
//-------------------------------------------------
|
10 |
-
//# No direct requests for this plugin module
|
11 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
12 |
//abort if this is direct uri request for file
|
13 |
-
if(
|
14 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
15 |
//try track this uri request
|
16 |
if(!headers_sent()){
|
17 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
18 |
-
header('Location: /?p=404page&
|
19 |
exit;
|
20 |
}else{
|
21 |
//'wp_die' may be undefined here
|
22 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
23 |
}
|
24 |
-
exit;
|
25 |
//abort if no WordPress
|
26 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
27 |
//show escaped bad request on exit
|
28 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
29 |
}
|
30 |
-
unset($wfile); //to free memory
|
31 |
//-------------------------------------------------
|
32 |
/**
|
33 |
* Form to change Wassup's wp_option settings and to show plugin info.
|
@@ -46,9 +40,9 @@ function wassup_optionsView($tab=0) {
|
|
46 |
$adminemail = get_bloginfo('admin_email');
|
47 |
$wassup_table=$wassup_options->wassup_table;
|
48 |
$wassup_network_settings=array();
|
49 |
-
//bugfix in v1.9.1: fix wassup-options links for multisite network admin screens
|
50 |
$multisite_whereis="";
|
51 |
$is_shared_table=false;
|
|
|
52 |
if(is_multisite()){
|
53 |
$wassup_network_settings=get_site_option('wassup_network_settings');
|
54 |
if(!empty($wassup_network_settings['wassup_table'])){
|
@@ -66,9 +60,11 @@ function wassup_optionsView($tab=0) {
|
|
66 |
$wassup_options->wassup_remind_flag=$site_settings['wassup_remind_flag'];
|
67 |
|
68 |
}
|
|
|
69 |
if(is_network_admin()) $options_link=network_admin_url('admin.php?page=wassup-options');
|
70 |
else $options_link=admin_url('admin.php?page=wassup-options');
|
71 |
}else{
|
|
|
72 |
$options_link=admin_url('admin.php?page=wassup-options');
|
73 |
}
|
74 |
$wassup_meta_table = $wassup_table . "_meta";
|
@@ -224,7 +220,7 @@ function wassup_optionsView($tab=0) {
|
|
224 |
$disabled=' disabled="DISABLED" style="color:#99a;"';
|
225 |
$api_key="";
|
226 |
if ($wassup_options->wassup_geoip_map == 1) {
|
227 |
-
//
|
228 |
if(!empty($wassup_options->wassup_googlemaps_key)) $api_key=esc_attr(strip_tags(html_entity_decode($wassup_options->wassup_googlemaps_key)));
|
229 |
$disabled="";
|
230 |
} else {
|
@@ -339,7 +335,7 @@ function wassup_optionsView($tab=0) {
|
|
339 |
<input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_options->wassup_spam == 1) echo $checked; ?> /> <?php _e('Record Akismet comment spam attempts','wassup');?> (<?php _e('checks IP for previous spam comments','wassup');?>)<br />
|
340 |
<input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_options->wassup_refspam == 1) echo $checked; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?><br />
|
341 |
<input type="checkbox" name="wassup_hack" value="1" <?php if($wassup_options->wassup_hack == 1) echo $checked; ?> /> <?php _e("Record admin break-in/hacker attempts", "wassup") ?><br />
|
342 |
-
<input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_options->wassup_attack == 1) echo $checked; ?> /> <?php
|
343 |
</span>
|
344 |
</p><br />
|
345 |
<h3><?php _e('Recording Exceptions','wassup');?></h3>
|
@@ -444,7 +440,7 @@ function wassup_optionsView($tab=0) {
|
|
444 |
if($tengine !="myisam" && $tengine !="archive"){
|
445 |
$is_optimizable_table=wassupDb::is_optimizable_table($wassup_table);
|
446 |
}
|
447 |
-
//
|
448 |
if(!$is_shared_table){
|
449 |
echo __("You can cancel automatic optimization by unchecking the box below.","wassup");
|
450 |
}elseif($is_optimizable_table){
|
6 |
* @subpackage settings.php
|
7 |
* @author helened (http://helenesit.com)
|
8 |
*/
|
|
|
|
|
|
|
9 |
//abort if this is direct uri request for file
|
10 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
11 |
//try track this uri request
|
12 |
if(!headers_sent()){
|
13 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
14 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
15 |
exit;
|
16 |
}else{
|
17 |
//'wp_die' may be undefined here
|
18 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
19 |
}
|
|
|
20 |
//abort if no WordPress
|
21 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
22 |
//show escaped bad request on exit
|
23 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
24 |
}
|
|
|
25 |
//-------------------------------------------------
|
26 |
/**
|
27 |
* Form to change Wassup's wp_option settings and to show plugin info.
|
40 |
$adminemail = get_bloginfo('admin_email');
|
41 |
$wassup_table=$wassup_options->wassup_table;
|
42 |
$wassup_network_settings=array();
|
|
|
43 |
$multisite_whereis="";
|
44 |
$is_shared_table=false;
|
45 |
+
//different wassup-options links for single-site/ multisite @since v1.9.1
|
46 |
if(is_multisite()){
|
47 |
$wassup_network_settings=get_site_option('wassup_network_settings');
|
48 |
if(!empty($wassup_network_settings['wassup_table'])){
|
60 |
$wassup_options->wassup_remind_flag=$site_settings['wassup_remind_flag'];
|
61 |
|
62 |
}
|
63 |
+
//wassup-options link for multisite network admin
|
64 |
if(is_network_admin()) $options_link=network_admin_url('admin.php?page=wassup-options');
|
65 |
else $options_link=admin_url('admin.php?page=wassup-options');
|
66 |
}else{
|
67 |
+
//wassup-options link for single-site
|
68 |
$options_link=admin_url('admin.php?page=wassup-options');
|
69 |
}
|
70 |
$wassup_meta_table = $wassup_table . "_meta";
|
220 |
$disabled=' disabled="DISABLED" style="color:#99a;"';
|
221 |
$api_key="";
|
222 |
if ($wassup_options->wassup_geoip_map == 1) {
|
223 |
+
//Api key now required for accessing Google!Maps v3 - 2016/06/22
|
224 |
if(!empty($wassup_options->wassup_googlemaps_key)) $api_key=esc_attr(strip_tags(html_entity_decode($wassup_options->wassup_googlemaps_key)));
|
225 |
$disabled="";
|
226 |
} else {
|
335 |
<input type="checkbox" name="wassup_spam" value="1" <?php if($wassup_options->wassup_spam == 1) echo $checked; ?> /> <?php _e('Record Akismet comment spam attempts','wassup');?> (<?php _e('checks IP for previous spam comments','wassup');?>)<br />
|
336 |
<input type="checkbox" name="wassup_refspam" value="1" <?php if($wassup_options->wassup_refspam == 1) echo $checked; ?> /> <?php _e('Record referrer spam attempts','wassup'); ?><br />
|
337 |
<input type="checkbox" name="wassup_hack" value="1" <?php if($wassup_options->wassup_hack == 1) echo $checked; ?> /> <?php _e("Record admin break-in/hacker attempts", "wassup") ?><br />
|
338 |
+
<input type="checkbox" name="wassup_attack" value="1" <?php if($wassup_options->wassup_attack == 1) echo $checked; ?> /> <?php echo __("Record attack/exploit attempts", "wassup").' (libwww-perl '.__("or","wassup").' xss in user-agent)';?><br />
|
339 |
</span>
|
340 |
</p><br />
|
341 |
<h3><?php _e('Recording Exceptions','wassup');?></h3>
|
440 |
if($tengine !="myisam" && $tengine !="archive"){
|
441 |
$is_optimizable_table=wassupDb::is_optimizable_table($wassup_table);
|
442 |
}
|
443 |
+
//table optimization and delayed insert options for multisite subsites that are NOT network activated only @since v1.9.1
|
444 |
if(!$is_shared_table){
|
445 |
echo __("You can cancel automatic optimization by unchecking the box below.","wassup");
|
446 |
}elseif($is_optimizable_table){
|
lib/uadetector.class.php
CHANGED
@@ -25,29 +25,22 @@
|
|
25 |
* a) "Name" field is best for statistics collection
|
26 |
* b) "Emulation" field is best for UI customizations.
|
27 |
*/
|
28 |
-
//-------------------------------------------------
|
29 |
-
//# No direct requests for this plugin module
|
30 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
31 |
//abort if this is direct uri request for file
|
32 |
-
if(
|
33 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
34 |
//try track this uri request
|
35 |
if(!headers_sent()){
|
36 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
37 |
-
header('Location: /?p=404page&
|
38 |
exit;
|
39 |
}else{
|
40 |
//'wp_die' may be undefined here
|
41 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
42 |
}
|
43 |
-
exit;
|
44 |
//abort if no WordPress
|
45 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
46 |
//show escaped bad request on exit
|
47 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
48 |
}
|
49 |
-
unset($wfile); //to free memory
|
50 |
-
|
51 |
//-------------------------------------------------
|
52 |
class UADetector {
|
53 |
var $name=''; //browser or spider name, not null
|
25 |
* a) "Name" field is best for statistics collection
|
26 |
* b) "Emulation" field is best for UI customizations.
|
27 |
*/
|
|
|
|
|
|
|
28 |
//abort if this is direct uri request for file
|
29 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
30 |
//try track this uri request
|
31 |
if(!headers_sent()){
|
32 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
33 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
34 |
exit;
|
35 |
}else{
|
36 |
//'wp_die' may be undefined here
|
37 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
38 |
}
|
|
|
39 |
//abort if no WordPress
|
40 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
41 |
//show escaped bad request on exit
|
42 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
43 |
}
|
|
|
|
|
44 |
//-------------------------------------------------
|
45 |
class UADetector {
|
46 |
var $name=''; //browser or spider name, not null
|
lib/upgrade.php
CHANGED
@@ -9,29 +9,22 @@
|
|
9 |
*
|
10 |
* This module is loaded once by the 'wassup_install' hook function when plugin is installed/upgraded.
|
11 |
*/
|
12 |
-
//-------------------------------------------------
|
13 |
-
//# No direct requests for this plugin module
|
14 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
15 |
//abort if this is direct uri request for file
|
16 |
-
if(
|
17 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
18 |
//try track this uri request
|
19 |
if(!headers_sent()){
|
20 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
21 |
-
header('Location: /?p=404page&
|
22 |
exit;
|
23 |
}else{
|
24 |
//'wp_die' may be undefined here
|
25 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
26 |
}
|
27 |
-
exit;
|
28 |
//abort if no WordPress
|
29 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
30 |
//show escaped bad request on exit
|
31 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
32 |
}
|
33 |
-
unset($wfile); //to free memory
|
34 |
-
|
35 |
//-------------------------------------------------
|
36 |
function log_me($message) {
|
37 |
if ( WP_DEBUG === true ) {
|
@@ -330,7 +323,7 @@ function wassup_createTable($wtable="",$withcharset=true) {
|
|
330 |
$logged_user = (!empty($current_user->user_login)? $current_user->user_login: "");
|
331 |
$screen_res="";
|
332 |
$sessionhash=$wassup_options->whash;
|
333 |
-
if(isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
334 |
$screen_res=esc_attr(trim($_COOKIE['wassup_screen_res'.$sessionhash]));
|
335 |
if($screen_res == "x") $screen_res="";
|
336 |
}
|
@@ -487,7 +480,7 @@ function wassup_updateTable($wtable=""){
|
|
487 |
$dbtask_keys=array();
|
488 |
//Since Wordpress 3.1, 'wassup_createTable' no longer upgrades "wp_wassup" table structure because of an ALTER TABLE error in the "dbDelta" function. @since v1.8.3
|
489 |
//Do table structure upgrades
|
490 |
-
//
|
491 |
if($stimeout >180){
|
492 |
// Upgrade from version < v1.8.4:
|
493 |
// -add 'spam' field to table - v1.3.9
|
@@ -557,7 +550,7 @@ function wassup_updateTable($wtable=""){
|
|
557 |
//}
|
558 |
// Upgrade from v1.9:
|
559 |
// -remove all Wassup 1.9 scheduled actions from wp-cron
|
560 |
-
if(!empty($from_version) &&
|
561 |
remove_action('wassup_scheduled_optimize',array('wassupDb','scheduled_dbtask'));
|
562 |
remove_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'));
|
563 |
remove_action('wassup_scheduled_cleanup','wassup_temp_cleanup');
|
@@ -641,7 +634,7 @@ function wassup_updateTable($wtable=""){
|
|
641 |
//increase mysql session timeout to 10 minutes for index rebuild
|
642 |
if(is_numeric($mtimeout) && $mtimeout< 600) $result=$wpdb->query("SET wait_timeout=600");
|
643 |
$result=false;
|
644 |
-
//
|
645 |
$wkey=$wpdb->get_results(sprintf("SHOW INDEX FROM `%s` WHERE Column_name='wassup_id'",$wassup_table));
|
646 |
if(empty($wkey)) $result=$wpdb->query(sprintf("ALTER TABLE `%s` ADD KEY idx_wassup (wassup_id(32))",$wassup_table));
|
647 |
if($wdebug_mode && !empty($result) && is_wp_error($result)){
|
@@ -668,7 +661,7 @@ function wassup_updateTable($wtable=""){
|
|
668 |
|
669 |
//Do retroactive data updates by version#
|
670 |
//Retroactive data updates are run separately from table structure upgrades (via wp_cron). @since v1.9
|
671 |
-
//
|
672 |
$low_priority="LOW_PRIORITY";
|
673 |
if(version_compare($wp_version,'3.0','<')) $low_priority="";
|
674 |
else add_action('wassup_upgrade_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
9 |
*
|
10 |
* This module is loaded once by the 'wassup_install' hook function when plugin is installed/upgraded.
|
11 |
*/
|
|
|
|
|
|
|
12 |
//abort if this is direct uri request for file
|
13 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
14 |
//try track this uri request
|
15 |
if(!headers_sent()){
|
16 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
17 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
18 |
exit;
|
19 |
}else{
|
20 |
//'wp_die' may be undefined here
|
21 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
22 |
}
|
|
|
23 |
//abort if no WordPress
|
24 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
25 |
//show escaped bad request on exit
|
26 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
27 |
}
|
|
|
|
|
28 |
//-------------------------------------------------
|
29 |
function log_me($message) {
|
30 |
if ( WP_DEBUG === true ) {
|
323 |
$logged_user = (!empty($current_user->user_login)? $current_user->user_login: "");
|
324 |
$screen_res="";
|
325 |
$sessionhash=$wassup_options->whash;
|
326 |
+
if(isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
327 |
$screen_res=esc_attr(trim($_COOKIE['wassup_screen_res'.$sessionhash]));
|
328 |
if($screen_res == "x") $screen_res="";
|
329 |
}
|
480 |
$dbtask_keys=array();
|
481 |
//Since Wordpress 3.1, 'wassup_createTable' no longer upgrades "wp_wassup" table structure because of an ALTER TABLE error in the "dbDelta" function. @since v1.8.3
|
482 |
//Do table structure upgrades
|
483 |
+
//skip some upgrade checks when script timeout is small number @since v1.9.1
|
484 |
if($stimeout >180){
|
485 |
// Upgrade from version < v1.8.4:
|
486 |
// -add 'spam' field to table - v1.3.9
|
550 |
//}
|
551 |
// Upgrade from v1.9:
|
552 |
// -remove all Wassup 1.9 scheduled actions from wp-cron
|
553 |
+
if(!empty($from_version) && $from_version=="1.9"){
|
554 |
remove_action('wassup_scheduled_optimize',array('wassupDb','scheduled_dbtask'));
|
555 |
remove_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'));
|
556 |
remove_action('wassup_scheduled_cleanup','wassup_temp_cleanup');
|
634 |
//increase mysql session timeout to 10 minutes for index rebuild
|
635 |
if(is_numeric($mtimeout) && $mtimeout< 600) $result=$wpdb->query("SET wait_timeout=600");
|
636 |
$result=false;
|
637 |
+
//rebuild wassup_id index first, in case of script timeout @since v1.9.1
|
638 |
$wkey=$wpdb->get_results(sprintf("SHOW INDEX FROM `%s` WHERE Column_name='wassup_id'",$wassup_table));
|
639 |
if(empty($wkey)) $result=$wpdb->query(sprintf("ALTER TABLE `%s` ADD KEY idx_wassup (wassup_id(32))",$wassup_table));
|
640 |
if($wdebug_mode && !empty($result) && is_wp_error($result)){
|
661 |
|
662 |
//Do retroactive data updates by version#
|
663 |
//Retroactive data updates are run separately from table structure upgrades (via wp_cron). @since v1.9
|
664 |
+
//LOW_PRIORITY in update is strictly for separate cron/ajax processes only..otherwise it will cause long waits when site is busy @since v1.9.1
|
665 |
$low_priority="LOW_PRIORITY";
|
666 |
if(version_compare($wp_version,'3.0','<')) $low_priority="";
|
667 |
else add_action('wassup_upgrade_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
lib/wassup.class.php
CHANGED
@@ -10,28 +10,25 @@
|
|
10 |
* @subpackage wassup.class.php module
|
11 |
* @author helened <http://helenesit.com>
|
12 |
*/
|
13 |
-
//-------------------------------------------------
|
14 |
-
//# No direct requests for this plugin module
|
15 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
16 |
//abort if this is direct uri request for file
|
17 |
-
|
18 |
-
|
|
|
19 |
//try track this uri request
|
20 |
if(!headers_sent()){
|
21 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
22 |
-
header('Location: /?p=404page&
|
23 |
exit;
|
24 |
}else{
|
25 |
//'wp_die' may be undefined here
|
26 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
27 |
}
|
28 |
-
exit;
|
29 |
//abort if no WordPress
|
30 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
31 |
//show escaped bad request on exit
|
32 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
33 |
}
|
34 |
-
unset($wfile);
|
35 |
//-------------------------------------------------
|
36 |
if (!class_exists('wassupOptions')) {
|
37 |
/**
|
@@ -77,8 +74,8 @@ class wassupOptions {
|
|
77 |
var $wassup_remind_mb = "100";
|
78 |
var $wassup_remind_flag = "1";
|
79 |
var $delayed_insert = "1"; //for use of "Delayed" option in MySQL INSERT command
|
80 |
-
var $export_spam = "0"; //
|
81 |
-
var $export_omit_recid="0"; //
|
82 |
|
83 |
/* chart/map display settings */
|
84 |
var $wassup_dashboard_chart = 0;
|
@@ -639,7 +636,7 @@ class wassupOptions {
|
|
639 |
if(function_exists('sanitize_text_field')) $text=sanitize_text_field($input);
|
640 |
else $text=strip_tags(html_entity_decode(wp_kses($input,array())));
|
641 |
//only alphanumeric chars allowed with few exceptions
|
642 |
-
//
|
643 |
$cleantext=preg_replace('/([^0-9a-z\-_\.,\:*#@\'" ]+)/i','',$text);
|
644 |
return $cleantext;
|
645 |
}
|
@@ -772,7 +769,7 @@ class wassupOptions {
|
|
772 |
}else{
|
773 |
wp_clear_scheduled_hook('wassup_scheduled_purge');
|
774 |
}
|
775 |
-
//
|
776 |
$this->export_spam=(!empty($_POST['export_spam'])?"1":"0");
|
777 |
$this->export_omit_recid=(!empty($_POST['export_omit_recid'])?"1":"0");
|
778 |
//save optimization timestamp and delayed_insert boolean values @since v1.9
|
@@ -807,7 +804,7 @@ class wassupOptions {
|
|
807 |
public function getHostTimezone($getoffset=false){
|
808 |
global $wdebug_mode;
|
809 |
$hostTZ=false;
|
810 |
-
$hostTimezone=array();
|
811 |
$is_nix_server=true;
|
812 |
//cannot use 'date' for timezone on Windows
|
813 |
if(defined('PHP_OS') && preg_match('/^win/i',PHP_OS)>0){
|
@@ -1018,17 +1015,16 @@ class wassupOptions {
|
|
1018 |
return true;
|
1019 |
} //end _options2class
|
1020 |
|
1021 |
-
/** display a system notice or message in admin panel. */
|
1022 |
public function showMessage($message="") {
|
1023 |
global $wp_version,$current_user;
|
1024 |
-
if(empty($message)
|
1025 |
-
//
|
1026 |
-
if(!is_object($current_user) || empty($current_user->ID)) wp_get_current_user();
|
1027 |
$wassup_user_settings = get_user_option('_wassup_settings',$current_user->ID);
|
1028 |
if(!empty($wassup_user_settings['ualert_message'])){
|
1029 |
$message=$wassup_user_settings['ualert_message'];
|
1030 |
-
|
1031 |
-
}elseif(!empty($this->wassup_alert_message)){
|
1032 |
$message=$this->wassup_alert_message;
|
1033 |
}
|
1034 |
}
|
@@ -1724,7 +1720,7 @@ class wassupDb{
|
|
1724 |
$wassup_meta_table='`'.$wassup_settings['wassup_table'].'_meta`';
|
1725 |
if(strpos($db_sql,$wassup_table)>0){
|
1726 |
$timestamp=time();
|
1727 |
-
$last_optimized=self::get_wassupmeta($wassup_table,'_optimize');
|
1728 |
if(empty($last_optimized) || ($timestamp - $last_optimized)>24*3600){
|
1729 |
//save timestamp to prevent repeat of optimize
|
1730 |
$expire=time()+7*24*3600;
|
@@ -1926,14 +1922,14 @@ class wassupDb{
|
|
1926 |
$stimer_start=time();
|
1927 |
$row_count=0;
|
1928 |
$last_recid=0;
|
1929 |
-
//
|
1930 |
$exclude_id=false;
|
1931 |
if(isset($_REQUEST['omit_recid'])){
|
1932 |
$exclude_id=true;
|
1933 |
}elseif(!empty($wassup_options->export_omit_recid)){
|
1934 |
$exclude_id=true;
|
1935 |
}
|
1936 |
-
//
|
1937 |
if(empty($wassup_options->export_spam)){
|
1938 |
if(empty($condition)) $condition=" WHERE `spam`='0'";
|
1939 |
else $condition .=" AND `spam`='0'";
|
@@ -2187,7 +2183,7 @@ class wassupURI {
|
|
2187 |
}
|
2188 |
return self::cleanURL($outputurl);
|
2189 |
}else{
|
2190 |
-
return self::cleanURL($inputurl);
|
2191 |
}
|
2192 |
}
|
2193 |
/** Return the url and "path" for wordpress site's "home". */
|
@@ -2231,7 +2227,7 @@ class wassupURI {
|
|
2231 |
$request=strtolower($urlrequested);
|
2232 |
if(strlen($request)>60) $tooltip=' title="'.self::cleanURL($request).'" ';
|
2233 |
else $tooltip="";
|
2234 |
-
//
|
2235 |
if(!empty($spam) || self::is_xss($urlrequested)){
|
2236 |
$urllink='<span class="malware"'.$tooltip.'>';
|
2237 |
if($chars >0) $urllink .=stringShortener("$urlrequested",round($chars*.9,0));
|
@@ -2276,7 +2272,7 @@ class wassupURI {
|
|
2276 |
//referrer from site or site-admin
|
2277 |
if(stristr($referer,$wpurl)==$referer || stristr($referer,$siteurl)==$referer){
|
2278 |
//direct hit when referrer == request
|
2279 |
-
if(!empty($wrec->urlrequested) && $ref == $siteurl.$wrec->urlrequested){
|
2280 |
$referrerlink='<span>'.__("direct hit","wassup").'</span>';
|
2281 |
}elseif($spam==2 || self::is_xss($ref)){
|
2282 |
//show spam referrers w/o link
|
@@ -2296,7 +2292,7 @@ class wassupURI {
|
|
2296 |
//external referrer
|
2297 |
}else{
|
2298 |
$favicon_img="";
|
2299 |
-
//
|
2300 |
if($spam==2 || self::is_xss($ref)){
|
2301 |
$referrerlink='<span class="malware"'.$tooltip.'>'.stringShortener($referer,round($chars*.9,0)).'</span>';
|
2302 |
}elseif($spam >0 || strpos($ref,'http')===false || strpos($ref,'http')>0 || preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php/i',$ref)>0){
|
10 |
* @subpackage wassup.class.php module
|
11 |
* @author helened <http://helenesit.com>
|
12 |
*/
|
|
|
|
|
|
|
13 |
//abort if this is direct uri request for file
|
14 |
+
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
15 |
+
if((!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile)) ||
|
16 |
+
(!empty($_SERVER['PHP_SELF']) && preg_match('#'.str_replace('#','\#',preg_quote($_SERVER['PHP_SELF'])).'$#',$wfile)>0)){
|
17 |
//try track this uri request
|
18 |
if(!headers_sent()){
|
19 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
20 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename($wfile));
|
21 |
exit;
|
22 |
}else{
|
23 |
//'wp_die' may be undefined here
|
24 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
25 |
}
|
|
|
26 |
//abort if no WordPress
|
27 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
28 |
//show escaped bad request on exit
|
29 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
30 |
}
|
31 |
+
unset($wfile); //to free memory
|
32 |
//-------------------------------------------------
|
33 |
if (!class_exists('wassupOptions')) {
|
34 |
/**
|
74 |
var $wassup_remind_mb = "100";
|
75 |
var $wassup_remind_flag = "1";
|
76 |
var $delayed_insert = "1"; //for use of "Delayed" option in MySQL INSERT command
|
77 |
+
var $export_spam = "0"; //since v1.9.1: no spam in exported data
|
78 |
+
var $export_omit_recid="0"; //since v1.9.1
|
79 |
|
80 |
/* chart/map display settings */
|
81 |
var $wassup_dashboard_chart = 0;
|
636 |
if(function_exists('sanitize_text_field')) $text=sanitize_text_field($input);
|
637 |
else $text=strip_tags(html_entity_decode(wp_kses($input,array())));
|
638 |
//only alphanumeric chars allowed with few exceptions
|
639 |
+
//allow email '@' char in search field
|
640 |
$cleantext=preg_replace('/([^0-9a-z\-_\.,\:*#@\'" ]+)/i','',$text);
|
641 |
return $cleantext;
|
642 |
}
|
769 |
}else{
|
770 |
wp_clear_scheduled_hook('wassup_scheduled_purge');
|
771 |
}
|
772 |
+
//save export options
|
773 |
$this->export_spam=(!empty($_POST['export_spam'])?"1":"0");
|
774 |
$this->export_omit_recid=(!empty($_POST['export_omit_recid'])?"1":"0");
|
775 |
//save optimization timestamp and delayed_insert boolean values @since v1.9
|
804 |
public function getHostTimezone($getoffset=false){
|
805 |
global $wdebug_mode;
|
806 |
$hostTZ=false;
|
807 |
+
$hostTimezone=array();
|
808 |
$is_nix_server=true;
|
809 |
//cannot use 'date' for timezone on Windows
|
810 |
if(defined('PHP_OS') && preg_match('/^win/i',PHP_OS)>0){
|
1015 |
return true;
|
1016 |
} //end _options2class
|
1017 |
|
1018 |
+
/** display a system notice or user message in admin panel. */
|
1019 |
public function showMessage($message="") {
|
1020 |
global $wp_version,$current_user;
|
1021 |
+
if(empty($message)){
|
1022 |
+
//prioritize user alerts and show anytime
|
1023 |
+
if(!is_object($current_user) || empty($current_user->ID)) $user=wp_get_current_user();
|
1024 |
$wassup_user_settings = get_user_option('_wassup_settings',$current_user->ID);
|
1025 |
if(!empty($wassup_user_settings['ualert_message'])){
|
1026 |
$message=$wassup_user_settings['ualert_message'];
|
1027 |
+
}elseif(!empty($this->wassup_alert_message) && (empty($_GET['page']) || stristr($_GET['page'],'wassup')!==false)){
|
|
|
1028 |
$message=$this->wassup_alert_message;
|
1029 |
}
|
1030 |
}
|
1720 |
$wassup_meta_table='`'.$wassup_settings['wassup_table'].'_meta`';
|
1721 |
if(strpos($db_sql,$wassup_table)>0){
|
1722 |
$timestamp=time();
|
1723 |
+
$last_optimized=self::get_wassupmeta($wassup_table,'_optimize');
|
1724 |
if(empty($last_optimized) || ($timestamp - $last_optimized)>24*3600){
|
1725 |
//save timestamp to prevent repeat of optimize
|
1726 |
$expire=time()+7*24*3600;
|
1922 |
$stimer_start=time();
|
1923 |
$row_count=0;
|
1924 |
$last_recid=0;
|
1925 |
+
//omit recid from export @since v1.9.1
|
1926 |
$exclude_id=false;
|
1927 |
if(isset($_REQUEST['omit_recid'])){
|
1928 |
$exclude_id=true;
|
1929 |
}elseif(!empty($wassup_options->export_omit_recid)){
|
1930 |
$exclude_id=true;
|
1931 |
}
|
1932 |
+
//omit `spam` records from export @since v1.9.1
|
1933 |
if(empty($wassup_options->export_spam)){
|
1934 |
if(empty($condition)) $condition=" WHERE `spam`='0'";
|
1935 |
else $condition .=" AND `spam`='0'";
|
2183 |
}
|
2184 |
return self::cleanURL($outputurl);
|
2185 |
}else{
|
2186 |
+
return self::cleanURL($inputurl); //security fix
|
2187 |
}
|
2188 |
}
|
2189 |
/** Return the url and "path" for wordpress site's "home". */
|
2227 |
$request=strtolower($urlrequested);
|
2228 |
if(strlen($request)>60) $tooltip=' title="'.self::cleanURL($request).'" ';
|
2229 |
else $tooltip="";
|
2230 |
+
//no link for spam, 404, wp-admin, wp-login or any possible unidentified spam @since v1.9.1
|
2231 |
if(!empty($spam) || self::is_xss($urlrequested)){
|
2232 |
$urllink='<span class="malware"'.$tooltip.'>';
|
2233 |
if($chars >0) $urllink .=stringShortener("$urlrequested",round($chars*.9,0));
|
2272 |
//referrer from site or site-admin
|
2273 |
if(stristr($referer,$wpurl)==$referer || stristr($referer,$siteurl)==$referer){
|
2274 |
//direct hit when referrer == request
|
2275 |
+
if(!empty($wrec->urlrequested) && ($ref == $siteurl.$wrec->urlrequested || $ref == rtrim($siteurl.$wrec->urlrequested,'/'))){
|
2276 |
$referrerlink='<span>'.__("direct hit","wassup").'</span>';
|
2277 |
}elseif($spam==2 || self::is_xss($ref)){
|
2278 |
//show spam referrers w/o link
|
2292 |
//external referrer
|
2293 |
}else{
|
2294 |
$favicon_img="";
|
2295 |
+
//no link for spam or wp-admin
|
2296 |
if($spam==2 || self::is_xss($ref)){
|
2297 |
$referrerlink='<span class="malware"'.$tooltip.'>'.stringShortener($referer,round($chars*.9,0)).'</span>';
|
2298 |
}elseif($spam >0 || strpos($ref,'http')===false || strpos($ref,'http')>0 || preg_match('/\/wp\-(?:admin|content|includes)\/|\/wp\-login\.php/i',$ref)>0){
|
lib/wassupadmin.php
CHANGED
@@ -7,26 +7,23 @@
|
|
7 |
* @since: v1.9
|
8 |
* @author: helened <http://helenesit.com>
|
9 |
*/
|
10 |
-
//-------------------------------------------------
|
11 |
-
//# No direct requests for this plugin module
|
12 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
13 |
//abort if this is direct uri request for file
|
14 |
-
|
15 |
-
|
|
|
16 |
//try track this uri request
|
17 |
if(!headers_sent()){
|
18 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
19 |
-
header('Location: /?p=404page&
|
20 |
exit;
|
21 |
}else{
|
22 |
//'wp_die' may be undefined here
|
23 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
24 |
}
|
25 |
-
exit;
|
26 |
//abort if no WordPress
|
27 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
28 |
//show escaped bad request on exit
|
29 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
30 |
}
|
31 |
unset($wfile); //to free memory
|
32 |
//-------------------------------------------------
|
@@ -148,17 +145,19 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
148 |
if($wrefresh < 0 || $wrefresh >180){
|
149 |
$wrefresh=3; //3 minutes default;
|
150 |
}
|
151 |
-
//
|
152 |
?>
|
153 |
<script type='text/javascript'>
|
154 |
//<![CDATA[
|
155 |
var paused=" *<?php _e('paused','wassup'); ?>* ";
|
156 |
-
<?php
|
157 |
-
if($wrefresh >0){
|
158 |
-
?>
|
159 |
var selftimerID=0;
|
160 |
function wassupReload<?php echo $wnonce;?>(wassuploc){if(wassuploc!=="") location.href=wassuploc;}
|
161 |
function wSelfRefresh(){<?php echo $refresh_loc;?>}
|
|
|
|
|
|
|
|
|
|
|
162 |
selftimerID=setTimeout('wSelfRefresh()',<?php echo ($wrefresh*60000)+2000;?>);
|
163 |
addLoadEvent(function(){ActivateCountDown("CountDownPanel",<?php echo ($wrefresh*60);?>);});
|
164 |
<?php
|
@@ -172,7 +171,7 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
172 |
echo "\n";
|
173 |
//only administrators can delete
|
174 |
if(current_user_can('manage_options')){
|
175 |
-
//
|
176 |
$action_param['_wpnonce']=wp_create_nonce('wassupdeleteID-'.$current_user->ID);
|
177 |
//format 'action_param' for ajax post data
|
178 |
$postparams="";
|
@@ -237,7 +236,8 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
237 |
}
|
238 |
else{
|
239 |
if(_currentSeconds < 1) timeleft=1000;
|
240 |
-
selftimerID=setTimeout('wSelfRefresh()',timeleft);
|
|
|
241 |
$(this).css('color','#555');
|
242 |
}
|
243 |
});
|
@@ -282,9 +282,10 @@ function wassup_embeded_scripts($wassuppage="") {
|
|
282 |
}elseif($wassuppage=="wassup-spia" || $wassuppage=="wassup-spy"){
|
283 |
// GEO IP Map
|
284 |
//google!Maps map init and marker javascripts in document head @since v1.9
|
285 |
-
if($wassup_user_settings['spy_map']==1 || !empty($_GET['map'])){
|
286 |
-
//
|
287 |
-
|
|
|
288 |
if(!empty($wassup_options->wassup_googlemaps_key)) $apikey=$wassup_options->wassup_googlemaps_key;
|
289 |
echo '<script src="https://maps.googleapis.com/maps/api/js?key='.esc_attr($apikey).'" type="text/javascript"></script>';
|
290 |
} //end if spy_map
|
@@ -607,7 +608,7 @@ function WassUp() {
|
|
607 |
//add a select condition for subsite in multisite
|
608 |
$multisite_whereis="";
|
609 |
if(is_multisite()){
|
610 |
-
//
|
611 |
$network_settings=get_site_option('wassup_network_settings');
|
612 |
if(!empty($network_settings['wassup_table'])){
|
613 |
$multisite_whereis=sprintf(" AND `subsite_id`=%d",$GLOBALS['current_blog']->blog_id);
|
@@ -727,7 +728,7 @@ function WassUp() {
|
|
727 |
$wassup_options->wassup_optimize=$last_week;
|
728 |
$wassup_options->saveSettings();
|
729 |
}
|
730 |
-
//
|
731 |
if(!empty($network_settings['wassup_table']) && !empty($site_settings['wassup_optimize'])){
|
732 |
if($site_settings['wassup_optimize'] >$last_week){
|
733 |
$site_settings['wassup_optimize']=$last_week;
|
@@ -748,7 +749,7 @@ function WassUp() {
|
|
748 |
$wassup_settings=get_option('wassup_settings');
|
749 |
//form input validated and saved in wassupOptions::saveFormChanges() @since v1.9
|
750 |
$admin_message=$wassup_options->saveFormChanges();
|
751 |
-
//
|
752 |
if(empty($wassup_options->wassup_active)) wassup_cron_terminate();
|
753 |
elseif(empty($wassup_settings['wassup_active']) && (!is_multisite() || !empty($network_settings['wassup_active']))) wassup_cron_startup();
|
754 |
if(isset($_POST['submit-options'])) $tab=1;
|
@@ -758,7 +759,7 @@ function WassUp() {
|
|
758 |
if (!empty($_POST['wassup_uninstall'])) {
|
759 |
$wassup_options->wassup_uninstall="1";
|
760 |
$wassup_options->wassup_active="0"; //disable recording now
|
761 |
-
//
|
762 |
wassup_cron_terminate();
|
763 |
} else {
|
764 |
$wassup_options->wassup_uninstall = "0";
|
@@ -768,7 +769,7 @@ function WassUp() {
|
|
768 |
}
|
769 |
$tab=4;
|
770 |
} elseif (isset($_POST['reset-to-default'])) {
|
771 |
-
//
|
772 |
wassup_cron_terminate(); //stop wp-cron
|
773 |
$wassup_options->loadDefaults();
|
774 |
if ($wassup_options->saveSettings()) {
|
@@ -914,8 +915,8 @@ function WassUp() {
|
|
914 |
function wassup_page_contents($args=array()){
|
915 |
global $wpdb, $wp_version, $current_user, $wassup_options, $wdebug_mode;
|
916 |
if(!empty($args) && is_array($args)) extract($args);
|
917 |
-
if($wdebug_mode){
|
918 |
-
$mode_reset
|
919 |
//don't check for 'strict' php5 standards (part of E_ALL since PHP 5.4)
|
920 |
if (defined('PHP_VERSION') && version_compare(PHP_VERSION, 5.4, '<')) @error_reporting(E_ALL);
|
921 |
else @error_reporting(E_ALL ^ E_STRICT); //E_STRICT=php5 only
|
@@ -973,7 +974,6 @@ function wassup_page_contents($args=array()){
|
|
973 |
}else{
|
974 |
$wassupmenulink='admin.php?page='.$_GET['page'];
|
975 |
}
|
976 |
-
//v1.9.1 bugfix: use 'network_admin_url' for network admin links in multisite
|
977 |
$wassuppageurl=wassupURI::get_admin_url($wassupmenulink);
|
978 |
$expcol='
|
979 |
<table width="100%" class="toggle"><tbody><tr>
|
@@ -1269,7 +1269,6 @@ function wassup_page_contents($args=array()){
|
|
1269 |
<p style="color:red;font-weight:bold;"><?php _e("WassUp recording is disabled for network.", "wassup");?></p><?php
|
1270 |
}
|
1271 |
}
|
1272 |
-
//v1.9.1 bugfix: pagination url fixed for 'ml' param and moved below
|
1273 |
$remove_it=array(); //for GET param cleanup
|
1274 |
$stickyFilters=""; //filters that remain in effect after page reloads
|
1275 |
$timenow=current_time('timestamp');
|
@@ -1448,7 +1447,7 @@ function wassup_page_contents($args=array()){
|
|
1448 |
if(!empty($ipsearch)) $wsearch=$ipsearch;
|
1449 |
//Clear non-sticky filter parameters from URL before applying new filters
|
1450 |
$URLQuery=trim(html_entity_decode($_SERVER['QUERY_STRING']));
|
1451 |
-
//
|
1452 |
if(!empty($remove_it)){
|
1453 |
$newURL=remove_query_arg($remove_it,$_SERVER['REQUEST_URI']);
|
1454 |
if(!empty($newURL) && $newURL !=$_SERVER['REQUEST_URI'] && preg_match('/[^\?]+\?([A-Za-z\-_]+.*)/',$newURL,$pcs)>0){
|
@@ -1586,7 +1585,7 @@ function wassup_page_contents($args=array()){
|
|
1586 |
<div class="search-ip" <?php if (empty($wsearch)) echo 'style="display: none;"'; ?>>
|
1587 |
<form id="wassup-ip-search" class="wassup-search" action="" method="get">
|
1588 |
<input type="hidden" name="page" value="<?php echo $_GET['page'];?>"/><?php
|
1589 |
-
if(isset($_GET['ml'])){ //
|
1590 |
echo "\n";?>
|
1591 |
<input type="hidden" name="ml" value="<?php echo $_GET['ml'];?>"/><?php
|
1592 |
}
|
@@ -1635,7 +1634,7 @@ function wassup_page_contents($args=array()){
|
|
1635 |
//monitor for script timeout limit and extend, if needed @since v1.9
|
1636 |
if((time()-$stimer_start) >($stimeout-7)){
|
1637 |
//extend timeout if more than 80% done
|
1638 |
-
if($witems > $witemstot) $percen=($rkcount/$witemstot)*100;
|
1639 |
else $percen=($rkcount/$witems)*100;
|
1640 |
if($rkcount>0 && $percen >80 && $stimeout >=180 && $can_set_timelimit){
|
1641 |
@set_time_limit($stimeout);
|
@@ -1768,8 +1767,13 @@ function wassup_page_contents($args=array()){
|
|
1768 |
echo wassupURI::url_link($rk->urlrequested,$char_len,$rk->malware_type);?></span>
|
1769 |
<span class="det2"><strong><?php
|
1770 |
_e('Referrer','wassup');
|
1771 |
-
if(empty($rk->
|
1772 |
-
|
|
|
|
|
|
|
|
|
|
|
1773 |
<strong><?php _e('Hostname','wassup');?>:</strong> <?php echo esc_attr($hostname); ?></span>
|
1774 |
</div>
|
1775 |
</div> <!-- /sum-nav -->
|
7 |
* @since: v1.9
|
8 |
* @author: helened <http://helenesit.com>
|
9 |
*/
|
|
|
|
|
|
|
10 |
//abort if this is direct uri request for file
|
11 |
+
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
12 |
+
if((!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile)) ||
|
13 |
+
(!empty($_SERVER['PHP_SELF']) && preg_match('#'.str_replace('#','\#',preg_quote($_SERVER['PHP_SELF'])).'$#',$wfile)>0)){
|
14 |
//try track this uri request
|
15 |
if(!headers_sent()){
|
16 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
17 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename($wfile));
|
18 |
exit;
|
19 |
}else{
|
20 |
//'wp_die' may be undefined here
|
21 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
22 |
}
|
|
|
23 |
//abort if no WordPress
|
24 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
25 |
//show escaped bad request on exit
|
26 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
27 |
}
|
28 |
unset($wfile); //to free memory
|
29 |
//-------------------------------------------------
|
145 |
if($wrefresh < 0 || $wrefresh >180){
|
146 |
$wrefresh=3; //3 minutes default;
|
147 |
}
|
148 |
+
//embed refresh javascripts
|
149 |
?>
|
150 |
<script type='text/javascript'>
|
151 |
//<![CDATA[
|
152 |
var paused=" *<?php _e('paused','wassup'); ?>* ";
|
|
|
|
|
|
|
153 |
var selftimerID=0;
|
154 |
function wassupReload<?php echo $wnonce;?>(wassuploc){if(wassuploc!=="") location.href=wassuploc;}
|
155 |
function wSelfRefresh(){<?php echo $refresh_loc;?>}
|
156 |
+
<?php
|
157 |
+
//start countdown for refresh
|
158 |
+
//v1.9.2 bugfix: moved wrefresh test so 'wassupReload' function is unaffected when wrefresh=0
|
159 |
+
if($wrefresh >0){
|
160 |
+
?>
|
161 |
selftimerID=setTimeout('wSelfRefresh()',<?php echo ($wrefresh*60000)+2000;?>);
|
162 |
addLoadEvent(function(){ActivateCountDown("CountDownPanel",<?php echo ($wrefresh*60);?>);});
|
163 |
<?php
|
171 |
echo "\n";
|
172 |
//only administrators can delete
|
173 |
if(current_user_can('manage_options')){
|
174 |
+
//add nonce to query vars to validate deleteID @since v1.9.1.
|
175 |
$action_param['_wpnonce']=wp_create_nonce('wassupdeleteID-'.$current_user->ID);
|
176 |
//format 'action_param' for ajax post data
|
177 |
$postparams="";
|
236 |
}
|
237 |
else{
|
238 |
if(_currentSeconds < 1) timeleft=1000;
|
239 |
+
selftimerID=setTimeout('wSelfRefresh()',timeleft);
|
240 |
+
tickerID=window.setInterval("CountDownTick()",1000);
|
241 |
$(this).css('color','#555');
|
242 |
}
|
243 |
});
|
282 |
}elseif($wassuppage=="wassup-spia" || $wassuppage=="wassup-spy"){
|
283 |
// GEO IP Map
|
284 |
//google!Maps map init and marker javascripts in document head @since v1.9
|
285 |
+
if($wassup_user_settings['spy_map']== 1 || !empty($_GET['map'])){
|
286 |
+
//check for api key for Google!maps
|
287 |
+
//$apikey="AIzaSyCu_plin97TltY8Zk6KualGCmRjdF-OXDo";
|
288 |
+
$apikey=base64_decode(urldecode("QUl6YVN5Q3VfcGxpbjk3VGx0WThaazZLdWFsR0NtUmpkRi1PWERv"));
|
289 |
if(!empty($wassup_options->wassup_googlemaps_key)) $apikey=$wassup_options->wassup_googlemaps_key;
|
290 |
echo '<script src="https://maps.googleapis.com/maps/api/js?key='.esc_attr($apikey).'" type="text/javascript"></script>';
|
291 |
} //end if spy_map
|
608 |
//add a select condition for subsite in multisite
|
609 |
$multisite_whereis="";
|
610 |
if(is_multisite()){
|
611 |
+
//use table name/optimize setting from network/main site @since v1.9.1
|
612 |
$network_settings=get_site_option('wassup_network_settings');
|
613 |
if(!empty($network_settings['wassup_table'])){
|
614 |
$multisite_whereis=sprintf(" AND `subsite_id`=%d",$GLOBALS['current_blog']->blog_id);
|
728 |
$wassup_options->wassup_optimize=$last_week;
|
729 |
$wassup_options->saveSettings();
|
730 |
}
|
731 |
+
//reset optimize in main site when plugin is network-activated @since v1.9.1
|
732 |
if(!empty($network_settings['wassup_table']) && !empty($site_settings['wassup_optimize'])){
|
733 |
if($site_settings['wassup_optimize'] >$last_week){
|
734 |
$site_settings['wassup_optimize']=$last_week;
|
749 |
$wassup_settings=get_option('wassup_settings');
|
750 |
//form input validated and saved in wassupOptions::saveFormChanges() @since v1.9
|
751 |
$admin_message=$wassup_options->saveFormChanges();
|
752 |
+
//after save, stop scheduled wp-cron tasks when wassup_active is changed to "0" and restart if changed to "1" @since v1.9.1
|
753 |
if(empty($wassup_options->wassup_active)) wassup_cron_terminate();
|
754 |
elseif(empty($wassup_settings['wassup_active']) && (!is_multisite() || !empty($network_settings['wassup_active']))) wassup_cron_startup();
|
755 |
if(isset($_POST['submit-options'])) $tab=1;
|
759 |
if (!empty($_POST['wassup_uninstall'])) {
|
760 |
$wassup_options->wassup_uninstall="1";
|
761 |
$wassup_options->wassup_active="0"; //disable recording now
|
762 |
+
//for uninstall, stop all wassup wp-cron tasks @since v1.9.1
|
763 |
wassup_cron_terminate();
|
764 |
} else {
|
765 |
$wassup_options->wassup_uninstall = "0";
|
769 |
}
|
770 |
$tab=4;
|
771 |
} elseif (isset($_POST['reset-to-default'])) {
|
772 |
+
//for reset-to-default, stop and restart scheduled wassup wp-cron tasks @since v1.9.1
|
773 |
wassup_cron_terminate(); //stop wp-cron
|
774 |
$wassup_options->loadDefaults();
|
775 |
if ($wassup_options->saveSettings()) {
|
915 |
function wassup_page_contents($args=array()){
|
916 |
global $wpdb, $wp_version, $current_user, $wassup_options, $wdebug_mode;
|
917 |
if(!empty($args) && is_array($args)) extract($args);
|
918 |
+
if ($wdebug_mode) {
|
919 |
+
$mode_reset=ini_get('display_errors');
|
920 |
//don't check for 'strict' php5 standards (part of E_ALL since PHP 5.4)
|
921 |
if (defined('PHP_VERSION') && version_compare(PHP_VERSION, 5.4, '<')) @error_reporting(E_ALL);
|
922 |
else @error_reporting(E_ALL ^ E_STRICT); //E_STRICT=php5 only
|
974 |
}else{
|
975 |
$wassupmenulink='admin.php?page='.$_GET['page'];
|
976 |
}
|
|
|
977 |
$wassuppageurl=wassupURI::get_admin_url($wassupmenulink);
|
978 |
$expcol='
|
979 |
<table width="100%" class="toggle"><tbody><tr>
|
1269 |
<p style="color:red;font-weight:bold;"><?php _e("WassUp recording is disabled for network.", "wassup");?></p><?php
|
1270 |
}
|
1271 |
}
|
|
|
1272 |
$remove_it=array(); //for GET param cleanup
|
1273 |
$stickyFilters=""; //filters that remain in effect after page reloads
|
1274 |
$timenow=current_time('timestamp');
|
1447 |
if(!empty($ipsearch)) $wsearch=$ipsearch;
|
1448 |
//Clear non-sticky filter parameters from URL before applying new filters
|
1449 |
$URLQuery=trim(html_entity_decode($_SERVER['QUERY_STRING']));
|
1450 |
+
//'remove_query_arg' function replaces "preg_replace" to remove args from query string @since v1.9.1
|
1451 |
if(!empty($remove_it)){
|
1452 |
$newURL=remove_query_arg($remove_it,$_SERVER['REQUEST_URI']);
|
1453 |
if(!empty($newURL) && $newURL !=$_SERVER['REQUEST_URI'] && preg_match('/[^\?]+\?([A-Za-z\-_]+.*)/',$newURL,$pcs)>0){
|
1585 |
<div class="search-ip" <?php if (empty($wsearch)) echo 'style="display: none;"'; ?>>
|
1586 |
<form id="wassup-ip-search" class="wassup-search" action="" method="get">
|
1587 |
<input type="hidden" name="page" value="<?php echo $_GET['page'];?>"/><?php
|
1588 |
+
if(isset($_GET['ml'])){ //'ml' query param is hidden input field @since v1.9.1
|
1589 |
echo "\n";?>
|
1590 |
<input type="hidden" name="ml" value="<?php echo $_GET['ml'];?>"/><?php
|
1591 |
}
|
1634 |
//monitor for script timeout limit and extend, if needed @since v1.9
|
1635 |
if((time()-$stimer_start) >($stimeout-7)){
|
1636 |
//extend timeout if more than 80% done
|
1637 |
+
if($witems > $witemstot) $percen=($rkcount/$witemstot)*100;
|
1638 |
else $percen=($rkcount/$witems)*100;
|
1639 |
if($rkcount>0 && $percen >80 && $stimeout >=180 && $can_set_timelimit){
|
1640 |
@set_time_limit($stimeout);
|
1767 |
echo wassupURI::url_link($rk->urlrequested,$char_len,$rk->malware_type);?></span>
|
1768 |
<span class="det2"><strong><?php
|
1769 |
_e('Referrer','wassup');
|
1770 |
+
if(empty($rk->referrer)){
|
1771 |
+
$referrer=__("direct hit","wassup");
|
1772 |
+
}elseif(empty($rk->searchengine)){
|
1773 |
+
$referrer=wassupURI::referrer_link($rk,$char_len);
|
1774 |
+
}else{
|
1775 |
+
$referrer=wassupURI::se_link($rk,$char_len);
|
1776 |
+
}?>: </strong><?php echo $referrer;?><br />
|
1777 |
<strong><?php _e('Hostname','wassup');?>:</strong> <?php echo esc_attr($hostname); ?></span>
|
1778 |
</div>
|
1779 |
</div> <!-- /sum-nav -->
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
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¤cy_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8
|
4 |
Tags: analytics, counter, online, seo, statistics, stats, tracker, traffic, trends, user, visitor, web
|
5 |
-
Requires at least: 4.0
|
6 |
Tested up to: 4.6.1
|
7 |
-
Stable tag: 1.9.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -40,7 +40,7 @@ There is a nice Dashboard widget that shows a line chart of hits over time (24 h
|
|
40 |
* Identify and label new browsers, robots, and feed readers, heuristically.
|
41 |
* Track page requests that generate 404 (not found) redirects.
|
42 |
* Detect some spiders that pretend to be regular visitors/browsers.
|
43 |
-
* Expose spam and malware activity such as hack attempts, script injection, and xss exploit attempts
|
44 |
|
45 |
WassUp works with two anti-spam functions to detect and omit (if you want) referrers spammers and comment spammers. It can also detect and omit malware activity such as unauthorized users' login attempts, script injection, and xss exploit attempts.
|
46 |
|
@@ -69,7 +69,7 @@ For people with database size limitations, WassUp has a few options to manage th
|
|
69 |
* usage chart (Google!chart)
|
70 |
* top stats lists with aggregate data (top queries, requests, os, browsers)
|
71 |
|
72 |
-
= There are many options to customize how
|
73 |
* Enable/Disable recording (tracking)
|
74 |
* Screen refresh frequency (minutes)
|
75 |
* Screen resolution (browser width)
|
@@ -82,14 +82,21 @@ For people with database size limitations, WassUp has a few options to manage th
|
|
82 |
* Record or not referrer spammers
|
83 |
* registered users to exclude from recording
|
84 |
* IP or hostname to exclude from recording
|
85 |
-
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
|
88 |
= _____________________________________ =
|
89 |
= IMPORTANT NOTICES =
|
90 |
-
*
|
|
|
91 |
* WassUp is incompatible with static page caching plugins such as "WP Super-Cache"
|
92 |
-
*
|
93 |
|
94 |
== Frequently Asked Questions ==
|
95 |
|
@@ -222,63 +229,61 @@ When you activate this plugin (as described in "Installation"), it works "as is"
|
|
222 |
* WassUp is incompatible with the following static page caching plugins: [WP Super Cache], [WP Cache] and [WP Hyper Cache].
|
223 |
|
224 |
== Upgrade Notice ==
|
225 |
-
= 1.9.
|
226 |
-
*
|
227 |
-
64MB memory is now required for Wassup! See [codex document "Editing wp-config.php"](https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP) to increase memory allocated to Wordpress before upgrading.
|
228 |
-
DO NOT UPGRADE when your site busy! Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
|
229 |
|
230 |
== Changelog ==
|
231 |
-
=
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
232 |
= Critical security, compatibility, and bugfix upgrade =
|
233 |
-
* patched security loopholes (xss vulnerability) in the 'Top stats' widget and in `wassupURI::add_siteurl` method
|
234 |
-
*
|
235 |
-
*
|
236 |
-
*
|
237 |
* new module, 'wassupadmin.php' for WassUp admin panels and dashboard widget
|
238 |
* new module, 'compatibility.php' to check for Wordpress and PHP compatibility and to load compatibility modules from `/lib/compat-lib/` subfolder when available
|
239 |
-
* removed backward compatibility
|
240 |
Wassup's backward-compatibility feature remains in the full copy of Wassup available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
|
241 |
-
*
|
242 |
* updated Google!Maps API link to use a common API key for Wassup-Spy (required by Google since 2016-06-22).
|
243 |
* updated WassUp 'wp-cron' scheduled tasks to terminate (and restart) at reset-to-default, recording stop/start, and at plugin deactivate/reactivate events.
|
244 |
* updated Wassup table export to omit all known spam/malware records from export by default...to avoid propagation of malware code when exported records are imported into other applications.
|
245 |
-
* updated `wassup_Akismet` class to abort remote requests with timeout error after 5 seconds to avoid plugin slowdown due to slow server response.
|
246 |
-
* updated 'UADetector' and 'wDetector' classes to improve browser and os detection (Microsoft Edge, Win10).
|
247 |
* updated translation template, 'wassup.pot'.
|
248 |
* fixed problem with login page hits not being recorded.
|
249 |
* fixed errors caused by disabled 'set_time_limit' function in some configurations.
|
250 |
-
*
|
251 |
-
*
|
252 |
-
* fixed incorrect Wassup menu "href" values in network admin panels.
|
253 |
-
* fixed a MySQL timezone/offset calculation error in some queries.
|
254 |
-
* fixed a scheduled task validation error that caused some wp-cron tasks to fail.
|
255 |
-
* miscellaneous minor bugfixes.
|
256 |
-
* miscellaneous minor text changes
|
257 |
* minor css changes for small screen devices.
|
258 |
|
259 |
= v1.9 =
|
260 |
= Important compatibility and feature improvement upgrade =
|
261 |
-
*
|
262 |
-
*
|
263 |
-
*
|
264 |
-
* new
|
265 |
-
* new
|
266 |
* new "FAQ" and "Donate" panels in Wassup-Options submenu
|
267 |
* new "top stats" popup-window in Visitor Details panel
|
268 |
-
* updated code for Wordpress 4
|
269 |
-
* updated
|
270 |
-
* updated javascripts libraries, `jquery.js`,`jquery-ui.js` and added jquery-migrate.js and wassup.js
|
271 |
* updated css and validated as 100% W3C CSS3 compliant
|
272 |
* updated browser and os detection for new agents (Win10)
|
273 |
* updated translation template (wassup.pot)
|
274 |
* updated "readme.txt"
|
275 |
-
* fixed search engine referrer data to substitute "not provided" for missing keywords from secure searches (https-to-http omission)
|
276 |
-
* fixed a fatal error in Wassup-options caused by disabled PHP functions in some host configurations
|
277 |
-
* fixed a bug in Wassup-options that caused table export to fail
|
278 |
-
* fixed an activation failure problem in `upgrade.php` that occurred in some host configurations
|
279 |
* 3 new classes added to code: `wassupDb` for MySQL table operations and caching, `wassupURI` to format and clean urls/links for safe output, and `Wassup_Widget` a base widget for building Wassup widgets
|
280 |
-
* minor text changes
|
281 |
-
* minor bugfixes
|
282 |
|
283 |
= v1.8.6 =
|
284 |
* Removed deprecated Wordpress methods, minor text changes.
|
2 |
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¤cy_code=EUR&lc=IT&bn=PP%2dDonationsBF&charset=UTF%2d8
|
4 |
Tags: analytics, counter, online, seo, statistics, stats, tracker, traffic, trends, user, visitor, web
|
5 |
+
Requires at least: 4.0
|
6 |
Tested up to: 4.6.1
|
7 |
+
Stable tag: 1.9.2
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
40 |
* Identify and label new browsers, robots, and feed readers, heuristically.
|
41 |
* Track page requests that generate 404 (not found) redirects.
|
42 |
* Detect some spiders that pretend to be regular visitors/browsers.
|
43 |
+
* Expose spam and malware activity such as hack attempts, script injection, and xss exploit attempts.
|
44 |
|
45 |
WassUp works with two anti-spam functions to detect and omit (if you want) referrers spammers and comment spammers. It can also detect and omit malware activity such as unauthorized users' login attempts, script injection, and xss exploit attempts.
|
46 |
|
69 |
* usage chart (Google!chart)
|
70 |
* top stats lists with aggregate data (top queries, requests, os, browsers)
|
71 |
|
72 |
+
= There are many options to customize how data is tracked and displayed: =
|
73 |
* Enable/Disable recording (tracking)
|
74 |
* Screen refresh frequency (minutes)
|
75 |
* Screen resolution (browser width)
|
82 |
* Record or not referrer spammers
|
83 |
* registered users to exclude from recording
|
84 |
* IP or hostname to exclude from recording
|
85 |
+
|
86 |
+
= There are tools to monitor and control Wassup's table growth: =
|
87 |
+
* Empty table, manually
|
88 |
+
* Delete old records, manually
|
89 |
+
* Setup automatic delete of old records
|
90 |
+
* Send an e-mail notice when table exceeds a preset size limit
|
91 |
+
* Export table in SQL format
|
92 |
+
* Database and server settings infos.
|
93 |
|
94 |
= _____________________________________ =
|
95 |
= IMPORTANT NOTICES =
|
96 |
+
* Wassup is compatible with Wordpress 4.0+ and PHP 5.2+
|
97 |
+
* To run Wassup with Wordpress 2.2 - 3.9 or with PHP 4.3 - 5.1, you must install the full copy of Wassup with backward-compatibility feature available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
|
98 |
* WassUp is incompatible with static page caching plugins such as "WP Super-Cache"
|
99 |
+
* WassUp is NOT a security plugin. It does not block unwanted visitors nor protect your site from malware attempts. You need a separate security plugin for that
|
100 |
|
101 |
== Frequently Asked Questions ==
|
102 |
|
229 |
* WassUp is incompatible with the following static page caching plugins: [WP Super Cache], [WP Cache] and [WP Hyper Cache].
|
230 |
|
231 |
== Upgrade Notice ==
|
232 |
+
= 1.9.2 =
|
233 |
+
* Urgent bugfix upgrade. DO NOT UPGRADE when your site busy! Read [installation instructions](http://wordpress.org/plugins/wassup/installation/) for safe upgrade instructions.
|
|
|
|
|
234 |
|
235 |
== Changelog ==
|
236 |
+
= v1.9.2 =
|
237 |
+
= Urgent bugfix upgrade =
|
238 |
+
* fixed fatal error on `wassup_options::is_recording_active` that occurred in some configurations
|
239 |
+
* fixed erroneous 'hack attempt' labels that occurred on sites without permalinks
|
240 |
+
* fixed a refresh timer bug that disabled dropdown selections in Visitor Details when refresh setting is 0.
|
241 |
+
* fixed a debug_mode bug that caused error notices to show as output for Wassup ajax action
|
242 |
+
* new functions(2) to reset error display in debug_mode
|
243 |
+
* improved spider detection.
|
244 |
+
* updated "compatibility.php" module for multisite compatibility tests
|
245 |
+
* miscellaneous minor bug fixes
|
246 |
+
* miscellaneous minor code changes.
|
247 |
+
|
248 |
+
= v1.9.1 =
|
249 |
= Critical security, compatibility, and bugfix upgrade =
|
250 |
+
* patched security loopholes (xss vulnerability) in the 'Top stats' widget and in `wassupURI::add_siteurl` method (in Visitor Details/Online)
|
251 |
+
* improved security against xss attacks on interface and widgets.
|
252 |
+
* improved compliance with the latest Wordpress.org plugin repository guidelines.
|
253 |
+
* improved browser/os detection.
|
254 |
* new module, 'wassupadmin.php' for WassUp admin panels and dashboard widget
|
255 |
* new module, 'compatibility.php' to check for Wordpress and PHP compatibility and to load compatibility modules from `/lib/compat-lib/` subfolder when available
|
256 |
+
* removed backward compatibility modules ('/lib/compat-lib/') and features from Wordpress repository.
|
257 |
Wassup's backward-compatibility feature remains in the full copy of Wassup available at [http://github.com/michelem09/wassup/](http://github.com/michelem09/wassup/)
|
258 |
+
* deleted obsolete files ('badhosts.txt','badhosts-intl.txt') and javascripts
|
259 |
* updated Google!Maps API link to use a common API key for Wassup-Spy (required by Google since 2016-06-22).
|
260 |
* updated WassUp 'wp-cron' scheduled tasks to terminate (and restart) at reset-to-default, recording stop/start, and at plugin deactivate/reactivate events.
|
261 |
* updated Wassup table export to omit all known spam/malware records from export by default...to avoid propagation of malware code when exported records are imported into other applications.
|
|
|
|
|
262 |
* updated translation template, 'wassup.pot'.
|
263 |
* fixed problem with login page hits not being recorded.
|
264 |
* fixed errors caused by disabled 'set_time_limit' function in some configurations.
|
265 |
+
* miscellaneous bugfixes.
|
266 |
+
* miscellaneous text changes
|
|
|
|
|
|
|
|
|
|
|
267 |
* minor css changes for small screen devices.
|
268 |
|
269 |
= v1.9 =
|
270 |
= Important compatibility and feature improvement upgrade =
|
271 |
+
* improved MySQL performance and table management
|
272 |
+
* improved tracking filters.
|
273 |
+
* improved security with more input validation, deprecated function removal and escaped output.
|
274 |
+
* new multisite network capability.
|
275 |
+
* new multi-widget capability in widgets.
|
276 |
* new "FAQ" and "Donate" panels in Wassup-Options submenu
|
277 |
* new "top stats" popup-window in Visitor Details panel
|
278 |
+
* updated code for Wordpress 4/PHP 5.6-mysqli compatibility
|
279 |
+
* updated internal javascripts libaries.
|
|
|
280 |
* updated css and validated as 100% W3C CSS3 compliant
|
281 |
* updated browser and os detection for new agents (Win10)
|
282 |
* updated translation template (wassup.pot)
|
283 |
* updated "readme.txt"
|
|
|
|
|
|
|
|
|
284 |
* 3 new classes added to code: `wassupDb` for MySQL table operations and caching, `wassupURI` to format and clean urls/links for safe output, and `Wassup_Widget` a base widget for building Wassup widgets
|
285 |
+
* miscellaneous minor text changes
|
286 |
+
* miscellaneous minor bugfixes
|
287 |
|
288 |
= v1.8.6 =
|
289 |
* Removed deprecated Wordpress methods, minor text changes.
|
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 website traffic with accurate, real-time stats, live views, visitor counts, top stats, IP geolocation, customizable tracking, and more. For Wordpress 2.2+
|
6 |
-
Version: 1.9.
|
7 |
Author: Michele Marcucci, Helene Duncker
|
8 |
Author URI: http://www.michelem.org/
|
9 |
Text Domain: wassup
|
@@ -24,23 +24,22 @@ Disclaimer:
|
|
24 |
//# No direct requests for plugin file "wassup.php"
|
25 |
$wassupfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
26 |
//abort if this is direct request for file
|
27 |
-
if((!empty($_SERVER['
|
28 |
-
(!empty($_SERVER['
|
29 |
//try track this uri request for "wassup.php"
|
30 |
if(!headers_sent()){
|
31 |
//can't track 403-forbidden, so use 404 instead
|
32 |
//location value triggers redirect to WordPress' 404 error page so Wassup can track this attempt to access itself (original uri request is lost)
|
33 |
-
header('Location: /?p=404page&
|
34 |
exit;
|
35 |
}else{
|
36 |
//'wp_die' is undefined here
|
37 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
38 |
}
|
39 |
-
exit;
|
40 |
//abort if no WordPress
|
41 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
42 |
//'wp_die' is undefined here
|
43 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�
|
44 |
}
|
45 |
//-------------------------------------------------
|
46 |
//### Setup and startup functions
|
@@ -51,13 +50,27 @@ if((!empty($_SERVER['PHP_SELF']) && preg_match('#'.preg_quote($_SERVER['PHP_SELF
|
|
51 |
function wassup_init($init_settings=false){
|
52 |
global $wp_version,$wassup_options,$wdebug_mode;
|
53 |
//define wassup globals & constants
|
54 |
-
|
55 |
-
|
|
|
|
|
56 |
//turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
|
57 |
-
|
58 |
if(defined('WP_DEBUG') && WP_DEBUG==true) $wdebug_mode=true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
//load language translation
|
60 |
-
//v1.9.1 bugfix: current_locale now defined before referenced
|
61 |
if(empty($GLOBALS['locale']) || strlen($GLOBALS['locale'])>5) $current_locale=get_locale();
|
62 |
else $current_locale=$GLOBALS['locale'];
|
63 |
if(!empty($current_locale)){
|
@@ -93,7 +106,15 @@ function wassup_init($init_settings=false){
|
|
93 |
}else{
|
94 |
//Load existing wassup wp_option settings, if any
|
95 |
$wassup_settings=get_option('wassup_settings');
|
96 |
-
if(count($wassup_settings)>1 && !empty($wassup_settings['wassup_version'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
}
|
98 |
}else{
|
99 |
if(function_exists('is_network_admin') && is_network_admin()){
|
@@ -102,6 +123,10 @@ function wassup_init($init_settings=false){
|
|
102 |
add_action('admin_notices','wassup_show_compat_message');
|
103 |
}
|
104 |
}
|
|
|
|
|
|
|
|
|
105 |
return $is_compatible;
|
106 |
} //end wassup_init
|
107 |
|
@@ -118,9 +143,12 @@ function wassup_init($init_settings=false){
|
|
118 |
*/
|
119 |
function wassup_install($network_wide=false) {
|
120 |
global $wpdb,$wp_version,$wassup_options;
|
121 |
-
|
|
|
|
|
|
|
122 |
if(!defined('WASSUPURL')){
|
123 |
-
if(!wassup_init()){
|
124 |
wassup_show_compat_message();
|
125 |
exit(1);
|
126 |
}
|
@@ -133,23 +161,17 @@ function wassup_install($network_wide=false) {
|
|
133 |
exit(1);
|
134 |
}
|
135 |
//initialize/update wassup_settings in wp_options
|
136 |
-
$
|
137 |
-
|
138 |
-
|
|
|
139 |
if(is_multisite()){
|
140 |
-
//
|
141 |
-
if(version_compare($wp_version,'3.1','<')){
|
142 |
-
echo __("Sorry, WassUp requires WordPress 3.1 or higher to work in multisite setups","wassup");
|
143 |
-
exit(1);
|
144 |
-
}
|
145 |
-
//network-wide settings for multisite @since v1.9
|
146 |
if(is_network_admin()){
|
147 |
$network_wide=true;
|
148 |
-
//
|
149 |
if(is_subdomain_install()){
|
150 |
-
//
|
151 |
-
//echo $err;
|
152 |
-
//exit(1);
|
153 |
$err = __("Sorry! \"Network Activation\" is DISABLED for subdomain networks.","wassup");
|
154 |
$err .= ' '.sprintf(__("%s must be activated on each subdomain site separately.","wassup"),'<strong>Wassup Plugin</strong>');
|
155 |
$err .=' <br/>'.__("Activate plugin on your parent domain (main site) to set default options for your network.","wassup");
|
@@ -169,7 +191,7 @@ function wassup_install($network_wide=false) {
|
|
169 |
//set table names
|
170 |
//reset Wassup table name if wpdb prefix has changed @since v1.9
|
171 |
if(empty($wassup_options->wassup_table) || !wassupDb::table_exists($wassup_options->wassup_table)){
|
172 |
-
if($network_wide){
|
173 |
if(empty($wassup_network_settings['wassup_table']) || !wassupDb::table_exists($wassup_network_settings['wassup_table'])) $wassup_table=$wpdb->base_prefix . "wassup";
|
174 |
else $wassup_table= $wassup_network_settings['wassup_table'];
|
175 |
}else{
|
@@ -180,15 +202,16 @@ function wassup_install($network_wide=false) {
|
|
180 |
}
|
181 |
$wassup_meta_table=$wassup_table."_meta";
|
182 |
$wassup_options->wassup_table=$wassup_table;
|
183 |
-
|
|
|
184 |
$active_status=1;
|
185 |
if(!empty($wassup_settings)){
|
186 |
//save current 'wassup_active' setting prior to upgrade for later restore
|
187 |
$active_status=$wassup_settings['wassup_active'];
|
188 |
-
if($network_wide && !empty($wassup_network_settings['wassup_active'])){
|
189 |
$wassup_network_settings['wassup_active']="0";
|
190 |
update_site_option('wassup_network_settings',$wassup_network_settings);
|
191 |
-
}elseif(!empty($active_status)){
|
192 |
$wassup_options->wassup_active="0";
|
193 |
$wassup_options->saveSettings();
|
194 |
}
|
@@ -205,7 +228,7 @@ function wassup_install($network_wide=false) {
|
|
205 |
//increase script timeout to 16 minutes to prevent activation failure due to script timeout (browser timeout can still occur)
|
206 |
$stimeout=ini_get("max_execution_time");
|
207 |
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 990){
|
208 |
-
//
|
209 |
$disabled_funcs=ini_get('disable_functions');
|
210 |
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
211 |
@set_time_limit(990);
|
@@ -241,7 +264,7 @@ function wassup_install($network_wide=false) {
|
|
241 |
update_site_option('wassup_network_settings',$wassup_network_settings);
|
242 |
}
|
243 |
//update site settings
|
244 |
-
//
|
245 |
if(empty($wassup_options->wassup_upgraded) || ((int)time() - (int)$wassup_options->wassup_upgraded) >180){
|
246 |
wassup_settings_install($wassup_table);
|
247 |
}
|
@@ -307,7 +330,7 @@ function wassup_uninstall($network_wide=false){
|
|
307 |
foreach($subsite_ids as $subsite_id){
|
308 |
if($network_wide) switch_to_blog($subsite_id);
|
309 |
$wassup_settings = get_option('wassup_settings');
|
310 |
-
//first, stop recording (when plugin still running)
|
311 |
if(!$network_wide && !empty($wassup_settings['wassup_active'])){
|
312 |
$wassup_settings['wassup_active']="0";
|
313 |
update_option('wassup_settings',$wassup_settings);
|
@@ -359,7 +382,9 @@ function wassup_uninstall($network_wide=false){
|
|
359 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $table_meta_name");
|
360 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $table_tmp_name");
|
361 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $wassup_table");
|
362 |
-
}
|
|
|
|
|
363 |
//"if exists" in wpdb::query caused error in early versions of Wordpress
|
364 |
if($wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",like_escape($table_meta_name)))==$table_meta_name){
|
365 |
$dropped=$wpdb->query("DROP TABLE $table_meta_name");
|
@@ -367,9 +392,7 @@ function wassup_uninstall($network_wide=false){
|
|
367 |
if($wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",like_escape($table_tmp_name)))==$table_tmp_name){
|
368 |
$dropped=$wpdb->query("DROP TABLE $table_tmp_name");
|
369 |
}
|
370 |
-
|
371 |
-
$dropped=$wpdb->query("DROP TABLE $wassup_table");
|
372 |
-
}
|
373 |
}
|
374 |
//delete settings from wp_option and wp_usermeta tables
|
375 |
delete_option('wassup_settings');
|
@@ -391,7 +414,7 @@ function wassup_uninstall($network_wide=false){
|
|
391 |
}
|
392 |
} //end wassup_uninstall
|
393 |
|
394 |
-
/** Stop Wassup wp-
|
395 |
function wassup_deactivate(){
|
396 |
global $wp_version;
|
397 |
//wp-ajax action may persist, so remove it
|
@@ -420,43 +443,43 @@ function wassup_deactivate(){
|
|
420 |
function wassup_start(){
|
421 |
//startup wassup
|
422 |
add_action('init','wassup_preload',11);
|
423 |
-
add_action('login_init','wassup_preload',11); //separate action
|
424 |
add_action('admin_init','wassup_admin_preload',11);
|
425 |
add_action('plugins_loaded','wassup_load');
|
426 |
}
|
427 |
|
428 |
/**
|
429 |
* Perform plugin tasks for before http headers are sent.
|
430 |
-
* -block obvious sql injection attempts on Wassup
|
431 |
* -initialize new network subsite settings (via 'wassup_init'), if any
|
432 |
* -add hooks for wp_ajax, wp_login, and wp_cron actions
|
433 |
* -start wassup tracking
|
434 |
*/
|
435 |
function wassup_preload(){
|
436 |
-
global $wp_version,$wassup_options,$wdebug_mode;
|
437 |
-
|
438 |
//block any obvious sql injection attempts involving WassUp
|
439 |
$request_uri=$_SERVER['REQUEST_URI'];
|
440 |
if(!$request_uri) $request_uri=$_SERVER['SCRIPT_NAME']; // IIS
|
441 |
-
|
|
|
442 |
$error_msg="";
|
443 |
-
|
444 |
-
|
445 |
-
if(
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
}
|
453 |
//abort bad requests
|
454 |
if(!empty($error_msg)){
|
455 |
if($wdebug_mode){
|
456 |
-
wp_die($error_msg.' :'.esc_attr(preg_replace('/(�
|
457 |
}
|
458 |
//redirect bad requests to 404 error page
|
459 |
-
if(!headers_sent()) header('Location: /?p=404page&
|
460 |
else wp_die($error_msg);
|
461 |
exit;
|
462 |
}
|
@@ -470,9 +493,19 @@ function wassup_preload(){
|
|
470 |
return;
|
471 |
}
|
472 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
//reset wassup user settings at login @since v1.9
|
474 |
add_action('wp_login',array($wassup_options,'resetUserSettings'),9,2);
|
475 |
-
//
|
476 |
if(!function_exists('wassup_action_handler')){
|
477 |
require_once(WASSUPDIR .'/lib/action.php');
|
478 |
}
|
@@ -483,7 +516,7 @@ function wassup_preload(){
|
|
483 |
wassup_compat_preload();
|
484 |
}
|
485 |
//Start visitor tracking
|
486 |
-
if($wassup_options->is_recording_active()){
|
487 |
//add actions for wp-cron scheduled tasks - @since v1.9
|
488 |
if(!has_action('wassup_scheduled_dbtasks')) add_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
489 |
if(!is_multisite() || is_main_site() || !$wassup_options->network_activated_plugin()){
|
@@ -496,6 +529,10 @@ function wassup_preload(){
|
|
496 |
}
|
497 |
wassupPrepend();
|
498 |
}
|
|
|
|
|
|
|
|
|
499 |
} // end wassup_preload
|
500 |
|
501 |
/**
|
@@ -509,20 +546,23 @@ function wassup_load() {
|
|
509 |
if(!wassup_init()) return; //nothing to do
|
510 |
}
|
511 |
//load widgets and visitor tracking footer scripts
|
512 |
-
if
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
if(
|
520 |
-
require_once(WASSUPDIR.'/lib/wassupadmin.php');
|
|
|
521 |
}
|
522 |
-
wassup_admin_load();
|
523 |
}
|
524 |
-
}
|
|
|
525 |
//-------------------------------------------------
|
|
|
|
|
526 |
/**
|
527 |
* Perform plugin admin tasks for before http headers are sent.
|
528 |
* - run 'initialize settings' for new network subsites, if needed
|
@@ -564,9 +604,6 @@ function wassup_admin_preload() {
|
|
564 |
add_action('admin_enqueue_scripts','wassup_add_scripts',12);
|
565 |
} //end wassup_admin_preload
|
566 |
|
567 |
-
//* New in v1.9.1: new admin module 'wassupadmin.php'
|
568 |
-
//* wassup_admin_load() function moved to 'wassupadmin.php' module
|
569 |
-
|
570 |
/**
|
571 |
* Loads javascript and css files for Wassup admin pages.
|
572 |
* - Enqueues "spia.js", "jquery-ui.js" (various), "jquery-migrate.js" (also queues "jquery.js")
|
@@ -666,7 +703,7 @@ function export_wassup(){
|
|
666 |
}elseif(!empty($multisite_whereis)){
|
667 |
$wherecondition="WHERE `id`>0 ".$multisite_whereis;
|
668 |
}
|
669 |
-
//
|
670 |
if(empty($wassup_options->export_spam)){
|
671 |
if(empty($wherecondition)) $wherecondition="WHERE `spam`='0'";
|
672 |
else $wherecondition .=" AND `spam`='0'";
|
@@ -677,7 +714,6 @@ function export_wassup(){
|
|
677 |
$exportdata=false;
|
678 |
$numrecords=$wpdb->get_var(sprintf("SELECT COUNT(`wassup_id`) FROM `%s` %s",esc_attr($wassup_table),$wherecondition));
|
679 |
if(!is_numeric($numrecords)) $numrecords=0;
|
680 |
-
//$result=$wpdb->get_var(sprintf("SELECT MAX(`id`) FROM `%s` %s",esc_attr($wassup_table),$wherecondition)); //last id not used here
|
681 |
if($numrecords > 0){
|
682 |
//save "failed export" message beforehand in case of script interruption @since v1.9
|
683 |
$wassup_user_settings['ualert_message']=__("Export failed due to script interruption or timeout error!","wassup");
|
@@ -685,7 +721,7 @@ function export_wassup(){
|
|
685 |
if($numrecords > 10000){
|
686 |
//Could take a long time, so increase script execution time-limit to 11 min
|
687 |
//TODO 'safe_mode' deprecated in PHP 5.3
|
688 |
-
if(
|
689 |
$timeout=ini_get('max_execution_time');
|
690 |
if(is_numeric($timeout) && $stimeout>0 && $timeout<(11*60)) @set_time_limit(11*60);
|
691 |
}
|
@@ -714,6 +750,29 @@ function export_wassup(){
|
|
714 |
}
|
715 |
} //end export_wassup
|
716 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
717 |
if (!function_exists('microtime_float')) {
|
718 |
function microtime_float() { //replicates microtime(true) from PHP5
|
719 |
list($usec, $sec) = explode(" ", microtime());
|
@@ -727,7 +786,7 @@ function wassupPrepend() {
|
|
727 |
global $wpdb,$wp_version,$wassup_options,$current_user,$wscreen_res,$wdebug_mode;
|
728 |
if(empty($wassup_options)) $wassup_options=new wassupOptions;
|
729 |
//wassup must be active for recording to begin
|
730 |
-
if(!$wassup_options->is_recording_active()){ //do nothing
|
731 |
return;
|
732 |
}
|
733 |
$wassup_table=$wassup_options->wassup_table;
|
@@ -799,7 +858,7 @@ function wassupPrepend() {
|
|
799 |
$timenow=current_time('timestamp');
|
800 |
//check if user is logged-in
|
801 |
$logged_user="";
|
802 |
-
if(empty($current_user->user_login)) wp_get_current_user();
|
803 |
if(!empty($current_user->user_login)){
|
804 |
$logged_user=$current_user->user_login;
|
805 |
//for recent successful login.. undo hack attempt label
|
@@ -810,47 +869,57 @@ function wassupPrepend() {
|
|
810 |
//retroactively undo "hack attempt" label
|
811 |
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `username`='%s', `spam`='0' WHERE `wassup_id`='%s' AND `spam`!='0' AND `timestamp`>'%d'",$logged_user,$wsession_id,$timenow-90);
|
812 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
813 |
}
|
814 |
//Track visitor
|
815 |
-
//New in v1.9.
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
|
|
|
|
|
|
835 |
}elseif(!is_admin()){
|
836 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
837 |
}else{
|
838 |
-
//
|
839 |
add_action('admin_footer','wassupAppend',15);
|
840 |
}
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
add_action('admin_footer','wassupAppend',15);
|
845 |
-
}else{
|
846 |
-
//'shutdown' is 1-priority so runs before other shutdown actions
|
847 |
-
add_action('shutdown','wassupAppend',1);
|
848 |
}
|
849 |
-
}
|
850 |
-
//New in v1.9.1: add tracking to login page separately since 'shutdown' hook doesn't appear to run on login page
|
851 |
-
if(empty($logged_user) && stristr($urlRequested,'login.php')!==FALSE){
|
852 |
-
add_action('login_footer','wassupAppend',15);
|
853 |
-
}
|
854 |
//do retroactive update, if any
|
855 |
if(!empty($wassup_dbtask)){
|
856 |
$args=array('dbtasks'=>$wassup_dbtask);
|
@@ -868,7 +937,7 @@ function wassupAppend($req_code=0) {
|
|
868 |
if(!wassup_init()) return; //nothing to do
|
869 |
}
|
870 |
//wassup must be active for recording to begin
|
871 |
-
if(!$wassup_options->is_recording_active()){ //nothing to do
|
872 |
return;
|
873 |
}
|
874 |
//load additional wassup modules as needed
|
@@ -885,34 +954,24 @@ function wassupAppend($req_code=0) {
|
|
885 |
$fileRequested="";
|
886 |
if(preg_match("#(^/[0-9a-z\-/\._]+\.(3gp|avi|bmp|flv|gif|gifv|ico|img|jpe?g|mkv|mov|mpa|mpe?g|mp[234]|ogg|oma|omg|png|pdf|pp[st]x?|psd|svg|swf|tiff|vob|wav|webm|wma|wmv))(?:[?\#&]|$)#i",$_SERVER['REQUEST_URI'],$pcs)>0){
|
887 |
$is_media=true;
|
888 |
-
if(
|
889 |
}
|
890 |
$debug_output="";
|
891 |
-
if
|
892 |
-
|
893 |
-
|
894 |
$wdebug_mode=false;
|
|
|
895 |
}else{
|
896 |
-
|
897 |
-
|
898 |
-
//don't check for 'strict' php5 standards (part of E_ALL since PHP 5.4)
|
899 |
-
if (defined('PHP_VERSION') && version_compare(PHP_VERSION, 5.4, '<')) @error_reporting(E_ALL);
|
900 |
-
else @error_reporting(E_ALL ^ E_STRICT); //E_STRICT=php5 only
|
901 |
-
@ini_set('display_errors','On');
|
902 |
-
//Debug: Output open comment tag to hide PHP errors from visitors
|
903 |
-
if(headers_sent()){
|
904 |
-
echo "\n<!-- *WassUp DEBUG On\n"; //hide errors
|
905 |
echo date('H:i:s');
|
906 |
}else{
|
907 |
-
$debug_output="\n<!-- *WassUp DEBUG On\n"; //hide errors
|
908 |
-
$debug_output.=date('H:i:s');
|
909 |
}
|
|
|
910 |
}
|
911 |
-
} else {
|
912 |
-
//do only fatal error reporting
|
913 |
-
// note: this won't work if PHP in safe mode
|
914 |
-
$errlvl = @error_reporting();
|
915 |
-
if (!empty($errlvl)) @error_reporting(E_ERROR);
|
916 |
} //end if $wdebug_mode
|
917 |
$error_msg="";
|
918 |
$wassup_table = $wassup_options->wassup_table;
|
@@ -993,7 +1052,7 @@ function wassupAppend($req_code=0) {
|
|
993 |
}
|
994 |
} //end else agenttype
|
995 |
$os=$ua->os;
|
996 |
-
//
|
997 |
if(empty($wscreen_res) && !empty($ua->resolution)){
|
998 |
if(preg_match('/^\d+x\d+$/',$ua->resolution)>0){
|
999 |
$wscreen_res=str_replace('x',' x ',$ua->resolution);
|
@@ -1005,8 +1064,16 @@ function wassupAppend($req_code=0) {
|
|
1005 |
$language=$ua->language;
|
1006 |
}
|
1007 |
if($wdebug_mode){
|
1008 |
-
if(
|
1009 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1010 |
}
|
1011 |
} //end if $ua->name
|
1012 |
//Set visitor identifier fields: username, wassup_id, ipAddress, hostname
|
@@ -1069,8 +1136,8 @@ function wassupAppend($req_code=0) {
|
|
1069 |
if (empty($ipAddress)) $ipAddress = $_SERVER['REMOTE_ADDR'];
|
1070 |
if (empty($IP)) $IP = wassup_clientIP($ipAddress);
|
1071 |
if (empty($hostname)) $hostname = "unknown";
|
1072 |
-
if
|
1073 |
-
//
|
1074 |
//$logged_user=$cookieUser;
|
1075 |
if(!empty($cookieUser) && strpos($urlRequested,'loggedout')>0){
|
1076 |
$logged_user=$cookieUser;
|
@@ -1100,7 +1167,7 @@ function wassupAppend($req_code=0) {
|
|
1100 |
}
|
1101 |
//assign a wassup_id for visit and write cookie
|
1102 |
if(empty($wassup_id) || $session_timeout || (!empty($wscreen_res) && empty($cookie_data[2]))){
|
1103 |
-
//
|
1104 |
if(empty($wassup_id) || $session_timeout){
|
1105 |
$args=array('ipAddress'=>$ipAddress,
|
1106 |
'hostname'=>$hostname,
|
@@ -1123,7 +1190,7 @@ function wassupAppend($req_code=0) {
|
|
1123 |
//this must be done before headers sent
|
1124 |
if(!headers_sent()){
|
1125 |
if (defined('COOKIE_DOMAIN')) {
|
1126 |
-
$cookiedomain = preg_replace('
|
1127 |
if(defined('COOKIEPATH')){
|
1128 |
$cookiepath=COOKIEPATH;
|
1129 |
}else{
|
@@ -1131,7 +1198,7 @@ function wassupAppend($req_code=0) {
|
|
1131 |
}
|
1132 |
} else {
|
1133 |
$cookieurl = parse_url(get_option('home'));
|
1134 |
-
$cookiedomain = preg_replace('/^www
|
1135 |
$cookiepath = $cookieurl['path'];
|
1136 |
}
|
1137 |
if(!empty($logged_user)) $cookieUser=$logged_user;
|
@@ -1162,14 +1229,18 @@ function wassupAppend($req_code=0) {
|
|
1162 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
1163 |
}
|
1164 |
if($wdebug_mode){
|
1165 |
-
if(headers_sent()){
|
1166 |
-
|
1167 |
-
|
|
|
|
|
|
|
|
|
1168 |
}
|
1169 |
}
|
1170 |
$hackercheck=true; //for malware checking
|
1171 |
-
//
|
1172 |
-
if(preg_match('/(document\.write
|
1173 |
$spam=3;
|
1174 |
$hackercheck=false;
|
1175 |
//no malware checks on logged-in users unless 404 activity
|
@@ -1189,7 +1260,7 @@ function wassupAppend($req_code=0) {
|
|
1189 |
if ((!is_admin() && stristr($urlRequested,"/wp-admin/")===false && stristr($urlRequested,"/wp-includes/")===false) || $req_code!=200 || $hackercheck){
|
1190 |
//Get single post/page id, if archive has only 1 post
|
1191 |
if(empty($article_id) && isset($GLOBALS['posts'])){
|
1192 |
-
if((is_archive() || is_search()) && count($GLOBALS['posts'])==1 && !empty($GLOBALS['posts'][0]->ID)){
|
1193 |
$article_id=$GLOBALS['posts'][0]->ID;
|
1194 |
}
|
1195 |
}
|
@@ -1199,7 +1270,7 @@ function wassupAppend($req_code=0) {
|
|
1199 |
//TODO: exclude page requests by post_id
|
1200 |
//#5 Exclude urls on exclusion list
|
1201 |
if (empty($wassup_options->wassup_exclude_url) || preg_match('#(?:^|\s*,)\s*((?:'.str_replace('#','\#',preg_quote($blogurl)).')?'.str_replace('#','\#',preg_quote($urlRequested)).')\s*(?:,|$)#i',$wassup_options->wassup_exclude_url)==0){
|
1202 |
-
//url matching may be affected by html-encoding, url-encoding, query parameters, and labels on the url - so
|
1203 |
$exclude_visit = false;
|
1204 |
if (!empty($wassup_options->wassup_exclude_url)) {
|
1205 |
$exclude_list = explode(',',str_replace(', ',',',$wassup_options->wassup_exclude_url));
|
@@ -1259,8 +1330,12 @@ function wassupAppend($req_code=0) {
|
|
1259 |
if (stristr($urlRequested,"/wp-content/themes") === FALSE || stristr($urlRequested,"comment") !== FALSE || $req_code==404) {
|
1260 |
//#10 Exclude for logged-in users
|
1261 |
if ($wassup_options->wassup_loggedin == 1 || !is_user_logged_in()) {
|
1262 |
-
|
1263 |
-
|
|
|
|
|
|
|
|
|
1264 |
// Check for duplicates, previous spam check, and screen resolution and get previous settings to prevent redundant checks on same visitor.
|
1265 |
// Dup==same wassup_id and URL, and timestamp<180 secs
|
1266 |
$wpageviews=0;
|
@@ -1273,8 +1348,16 @@ function wassupAppend($req_code=0) {
|
|
1273 |
}
|
1274 |
$wpdb->query("SET wait_timeout=7");
|
1275 |
if($wdebug_mode){
|
1276 |
-
if(headers_sent())
|
1277 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1278 |
}
|
1279 |
//get recent hits with same wassup_id
|
1280 |
$recent_hit=$wpdb->get_results(sprintf("SELECT SQL_NO_CACHE `wassup_id`, `ip`, `timestamp`, `urlrequested`, `screen_res`, `username`, `browser`, `os`, `spider`, `feed`, `spam`, `language`, `agent`, `referrer` FROM `$wassup_tmp_table` WHERE `wassup_id`='%s' AND `timestamp` >'%d' %s ORDER BY `timestamp` DESC",esc_sql($wassup_id),$timenow-183,$multisite_whereis));
|
@@ -1293,7 +1376,7 @@ function wassupAppend($req_code=0) {
|
|
1293 |
}
|
1294 |
//retrieve previous spam check results
|
1295 |
$spamresult=$recent_hit[0]->spam;
|
1296 |
-
//
|
1297 |
if((int)$spamresult==3 && !empty($logged_user)){
|
1298 |
//if(strpos($recent_hit[0]->urlrequested,'wp-login.php')>0 || (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'],'wp-login.php')>0))){
|
1299 |
$spamresult=0;
|
@@ -1302,40 +1385,17 @@ function wassupAppend($req_code=0) {
|
|
1302 |
//retroactively update screen_res
|
1303 |
//...queue the update because of "delayed insert"
|
1304 |
if (empty($recent_hit[0]->screen_res) && !empty($wscreen_res)) {
|
1305 |
-
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `screen_res`='%s' WHERE `wassup_id`='%s'",$wscreen_res,$recent_hit[0]->wassup_id);
|
1306 |
}
|
1307 |
}else{
|
1308 |
$recent_hit=array();
|
1309 |
} //end if recent_hit
|
1310 |
-
if($wdebug_mode){ //debug
|
1311 |
-
if(empty($recent_hit)) {
|
1312 |
-
if(headers_sent()) echo "\nNo Recent visit data found in wassup_tmp.";
|
1313 |
-
else $debug_output .= "<br />\nNo Recent visit data found in wassup_tmp.\n"; //debug
|
1314 |
-
}else{
|
1315 |
-
$safe_debug=array_map('htmlentities',(array)$recent_hit[0]);
|
1316 |
-
if(headers_sent()){
|
1317 |
-
echo "\n".date('H:i:s').' Recent data lookup results: $recent_hit[0]=';
|
1318 |
-
print_r($safe_debug);
|
1319 |
-
if($dup_urlrequest==1) echo "\nDuplicate record!";
|
1320 |
-
}else{
|
1321 |
-
$debug_output .="\n".date('H:i:s').' Recent data lookup results: $recent_hit[0]=';
|
1322 |
-
$debug_output .=print_r($safe_debug,true);
|
1323 |
-
if($dup_urlrequest==1) $debug_output .="\nDuplicate record!\n";
|
1324 |
-
if($recent_hit[0]->agent != $userAgent){
|
1325 |
-
$debug_output .="\nUser Agents NOT Identical:";
|
1326 |
-
$debug_output .="\n\tCurrent user agent: ".strip_tags(esc_attr(htmlspecialchars(html_entity_decode($userAgent))));
|
1327 |
-
$debug_output .="\n\tPrevious user agent:".strip_tags(esc_attr(htmlspecialchars(html_entity_decode($recent_hit[0]->agent))))."\n";
|
1328 |
-
}
|
1329 |
-
}
|
1330 |
-
}
|
1331 |
-
} //end if debug_mode
|
1332 |
//done duplicate check...restore normal timeout
|
1333 |
if(!empty($mtimeout)){
|
1334 |
$wpdb->query("SET wait_timeout=$mtimeout");
|
1335 |
}else{
|
1336 |
$wpdb->query("SET wait_timeout=90");
|
1337 |
}
|
1338 |
-
|
1339 |
//#12 Exclude duplicates
|
1340 |
if($dup_urlrequest == 0){
|
1341 |
//get previously recorded settings for this visitor to avoid redundant tests
|
@@ -1358,27 +1418,28 @@ function wassupAppend($req_code=0) {
|
|
1358 |
}
|
1359 |
//#13 Exclude admin (ajax?) requests with same session cookie as recent hit but does not show as a logged user request (ex: /wp-admin/post.php hit from edit link in website page?)
|
1360 |
if((!is_admin() && stristr($urlRequested,"/wp-admin/")===false) || empty($recent_hit) || ((empty($recent_hit[0]->username) || $recent_hit[0]->username != $cookieUser) && stristr($recent_hit[0]->urlrequested,"/wp-admin/")===false)){
|
1361 |
-
//check for xss attempts
|
1362 |
-
if($hackercheck &&
|
1363 |
-
if(
|
1364 |
-
$spam=3;
|
1365 |
-
}elseif(!empty($referrer) && empty($logged_user)){
|
1366 |
if(wassupURI::is_xss($referrer)){
|
1367 |
$spam=3;
|
1368 |
}
|
1369 |
}
|
1370 |
}
|
1371 |
//#14 Exclude 404 hits unless 1st visit or malware attempt
|
1372 |
-
if($req_code == 200 || empty($recent_hit) || ($hackercheck && (stristr($urlRequested,"/wp-")!==FALSE ||
|
1373 |
//identify hackers/malware
|
1374 |
if($hackercheck && $spam==0){
|
1375 |
$pcs=array();
|
|
|
|
|
|
|
1376 |
//non-admin users trying to access root files, password or ids or upgrade script are up to no good
|
1377 |
-
|
1378 |
$pcs=array();
|
1379 |
if(preg_match('#\.\./\.\./(etc/passwd|\.\./\.\./)#i',$urlRequested)>0){
|
1380 |
$spam=3;
|
1381 |
-
}elseif(preg_match('#[\[&\?/\-_](code|dir|document_root\]?|id|page|thisdir)\=(
|
1382 |
if(!empty($pcs[2])) $spam=3;
|
1383 |
elseif($req_code==404) $spam=3;
|
1384 |
}elseif(preg_match('#\/wp\-admin.*[^0-9a-z_](install(\-helper)?|update(\-core)?|upgrade)\.php([^0-9a-z\-_]|$)#i',$urlRequested)>0){
|
@@ -1442,31 +1503,23 @@ function wassupAppend($req_code=0) {
|
|
1442 |
elseif(wIsAttack($urlRequested)) $spam=3;
|
1443 |
//regular visitor querying userid/author or other non-page item by id number is likely malware
|
1444 |
}elseif(preg_match('#[?&]([0-9a-z\-_]+)\=(\-)?\d+$#i',$urlRequested,$pcs)>0){
|
1445 |
-
if($
|
1446 |
-
$spam=3;
|
1447 |
-
}elseif(!empty($pcs[2])){
|
1448 |
-
$spam=3;
|
1449 |
-
}elseif(preg_match('#(code|dir|document_root|id|path|thisdir)#',$pcs[1])>0){
|
1450 |
-
$spam=3;
|
1451 |
-
}elseif(wIsAttack($urlRequested)){
|
1452 |
$spam=3;
|
|
|
|
|
|
|
|
|
|
|
|
|
1453 |
}
|
1454 |
//regular visitor attempts to access "upload" page is likely malware
|
1455 |
}elseif(preg_match('#[?&][0-9a-z\-_]*(page\=upload)(?:[^0-9a-z\-_]|$)#i',$urlRequested)>0){
|
1456 |
$spam=3;
|
1457 |
-
}elseif(wIsAttack($urlRequested)){
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
if(!empty($referrer) && $referrer != $blogurl.$urlRequested){
|
1463 |
-
if(wIsAttack($referrer)){
|
1464 |
-
$spam=3;
|
1465 |
-
}
|
1466 |
-
}
|
1467 |
-
//TODO check userAgent string for attack codes
|
1468 |
-
//if(empty($spam) && !empty($userAgent)){
|
1469 |
-
//}
|
1470 |
}
|
1471 |
} //end if empty logged_user
|
1472 |
//retroactively update recent visitor records as spam/malware
|
@@ -1484,8 +1537,16 @@ function wassupAppend($req_code=0) {
|
|
1484 |
list($browser,$os)=wGetBrowser($userAgent);
|
1485 |
if(!empty($browser)) $agent=$browser;
|
1486 |
if ($wdebug_mode){
|
1487 |
-
if(
|
1488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1489 |
}
|
1490 |
}
|
1491 |
}
|
@@ -1495,8 +1556,16 @@ function wassupAppend($req_code=0) {
|
|
1495 |
if(empty($agent) || preg_match($spider_hosts,$hostname)>0 || stristr($agent,'unknown')!==false){
|
1496 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1497 |
if($wdebug_mode){
|
1498 |
-
if(
|
1499 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
}
|
1501 |
//it's a browser
|
1502 |
if($spidertype == "B" && $urlRequested != "/robots.txt"){
|
@@ -1517,13 +1586,24 @@ function wassupAppend($req_code=0) {
|
|
1517 |
if(strlen($agent)<5 || empty($os) || preg_match("#\s?([a-z]+(?:bot|crawler|google|spider|reader|agent))[^a-z]#i",$userAgent)>0 || strstr($urlRequested,"robots.txt")!==FALSE || is_feed()){
|
1518 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1519 |
if($wdebug_mode){
|
1520 |
-
if(
|
1521 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1522 |
}
|
1523 |
-
}elseif(preg_match('
|
|
|
|
|
|
|
1524 |
//obsolete browser is likely a spider
|
1525 |
if($pcs[2]<8 || ($pcs[2]<30 && $pcs[1]!="msie")){
|
1526 |
-
list($spider,$spidertype,$feed)
|
1527 |
}
|
1528 |
}
|
1529 |
//it's a browser
|
@@ -1657,22 +1737,38 @@ function wassupAppend($req_code=0) {
|
|
1657 |
//get language/locale
|
1658 |
if(empty($language) && !empty($recent_hit[0]->language)) $language=$recent_hit[0]->language;
|
1659 |
if($wdebug_mode){
|
1660 |
-
if(headers_sent())
|
1661 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1662 |
}
|
1663 |
if(preg_match('/\.[a-z]{2,3}$/i',$hostname) >0 || preg_match('/[a-z\-_]+\.[a-z]{2,3}[^a-z]/i',$referrer) >0 || strlen($language)>2){
|
1664 |
//get language/locale info from hostname or referrer data
|
1665 |
$language=wGetLocale($language,$hostname,$referrer);
|
1666 |
}
|
1667 |
if($wdebug_mode){
|
1668 |
-
if(
|
1669 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1670 |
}
|
1671 |
// get search engine and search keywords from referrer
|
1672 |
$searchengine="";
|
1673 |
$search_phrase="";
|
1674 |
$searchpage="";
|
1675 |
-
$searchlocale="";
|
1676 |
//don't check own blog for search engine data
|
1677 |
if (!empty($referrer) && $spam == "0" && stristr($referrer,$blogurl)!=$referrer && !$wdebug_mode) {
|
1678 |
$ref=(is_string($referrer)?$referrer:mb_convert_encoding(strip_tags($_SERVER['HTTP_REFERER']),"HTML-ENTITIES","auto"));
|
@@ -1684,7 +1780,7 @@ function wassupAppend($req_code=0) {
|
|
1684 |
$searchengine="Google";
|
1685 |
if($pcs[2]!="com" && $pcs[2]!="co"){
|
1686 |
$searchlocale=$pcs[2];
|
1687 |
-
$searchengine .=" ".strtoupper($searchlocale);
|
1688 |
}
|
1689 |
//get the query keywords - will always be empty, until Google changes its policy
|
1690 |
if(empty($pcs[4])) $search_phrase="_notprovided_";
|
@@ -1824,7 +1920,12 @@ function wassupAppend($req_code=0) {
|
|
1824 |
}
|
1825 |
}
|
1826 |
if($wdebug_mode){
|
1827 |
-
if(headers_sent()){
|
|
|
|
|
|
|
|
|
|
|
1828 |
if(!empty($wassup_recid)){
|
1829 |
echo "\nWassUp record data:";
|
1830 |
print_r($wassup_rec);
|
@@ -1844,72 +1945,72 @@ function wassupAppend($req_code=0) {
|
|
1844 |
}
|
1845 |
} //end if prefetch
|
1846 |
}elseif($wdebug_mode){
|
1847 |
-
if(headers_sent()) echo "\n #18 Excluded by: wp-content/plugins (after 404)";
|
1848 |
else $debug_output .="\n #18 Excluded by: wp-content/plugins (after 404)";
|
1849 |
} //end if !wp-content/plugins
|
1850 |
}elseif($wdebug_mode){
|
1851 |
-
if(headers_sent()) echo "\n #17 Excluded by: wassup_spam";
|
1852 |
else $debug_output .="\n #17 Excluded by: wassup_spam";
|
1853 |
} //end if $spam == 0
|
1854 |
}elseif($wdebug_mode){
|
1855 |
-
if(headers_sent()) echo "\n #16 Excluded by: wassup_spider";
|
1856 |
else $debug_output .="\n #16 Excluded by: wassup_spider";
|
1857 |
} //end if wassup_spider
|
1858 |
}elseif($wdebug_mode){
|
1859 |
-
if(headers_sent()) echo "\n #15 Excluded by: wassup_hack";
|
1860 |
else $debug_output .="\n #15 Excluded by: wassup_hack";
|
1861 |
} //end if wassup_hack
|
1862 |
}elseif($wdebug_mode){
|
1863 |
-
if(headers_sent()) echo "\n #14 Excluded by: is_404";
|
1864 |
else $debug_output .="\n #14 Excluded by: is_404";
|
1865 |
} //end if !is_404
|
1866 |
}elseif($wdebug_mode){
|
1867 |
-
if(headers_sent()) echo "\n #13 Excluded by: !wp-admin (ajax)";
|
1868 |
else $debug_output .="\n #13 Excluded by: !wp_admin (ajax)";
|
1869 |
} //end if !wp_admin (ajax) && recent_hit
|
1870 |
}elseif($wdebug_mode){
|
1871 |
-
if(headers_sent()) echo "\n #12 Excluded by: dup_urlrequest";
|
1872 |
else $debug_output .="\n #12 Excluded by: dup_urlrequest";
|
1873 |
} //end if dup_urlrequest == 0
|
1874 |
}elseif($wdebug_mode){
|
1875 |
-
if(headers_sent()) echo "\n #11 Excluded by: wassup_attack";
|
1876 |
else $debug_output .="\n #11 Excluded by: wassup_attack";
|
1877 |
} //end if wassup_attack
|
1878 |
}elseif($wdebug_mode){
|
1879 |
-
if(headers_sent()) echo "\n #10 Excluded by: wassup_loggedin";
|
1880 |
else $debug_output .="\n #10 Excluded by: wassup_loggedin";
|
1881 |
} //end if wassup_loggedin
|
1882 |
}elseif($wdebug_mode){
|
1883 |
-
if(headers_sent()) echo "\n #9 Excluded by: wp-content/themes";
|
1884 |
else $debug_output .="\n #9 Excluded by: wp-content/themes";
|
1885 |
} //end if !themes
|
1886 |
}elseif($wdebug_mode){
|
1887 |
-
if(headers_sent()) echo "\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
1888 |
else $debug_output .="\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
1889 |
} //end if !plugins
|
1890 |
}elseif($wdebug_mode){
|
1891 |
-
if(headers_sent()) echo "\n #7 Excluded by: exclude_host (or IP wilcard)";
|
1892 |
else $debug_output .="\n #7 Excluded by: exclude_host (or IP wildcard)";
|
1893 |
} //end if wassup_exclude_host
|
1894 |
}elseif($wdebug_mode){
|
1895 |
-
if(headers_sent()) echo "\n #6 Excluded by: wassup_exclude";
|
1896 |
else $debug_output .="\n #6 Excluded by: wassup_exclude";
|
1897 |
} //end if wassup_exclude
|
1898 |
}elseif($wdebug_mode){
|
1899 |
-
if(headers_sent()) echo "\n #5 Excluded by: exclude_url";
|
1900 |
else $debug_output .="\n #5 Excluded by: exclude_url";
|
1901 |
} //end if wassup_exclude_url
|
1902 |
}elseif($wdebug_mode){
|
1903 |
-
if(headers_sent()) echo "\n #4 Excluded by: exclude_user";
|
1904 |
else $debug_output .="\n #4 Excluded by: exclude_user";
|
1905 |
} //end if wassup_exclude_user
|
1906 |
}elseif($wdebug_mode){
|
1907 |
-
if(headers_sent()) echo "\n #3 Excluded by: is_admin";
|
1908 |
else $debug_output .="\n #3 Excluded by: is_admin";
|
1909 |
} //end if !is_admin
|
1910 |
} //end if wp-cron.php?doing_wp_cron===FALSE //#2
|
1911 |
}elseif($wdebug_mode){
|
1912 |
-
if(headers_sent()) echo "\n #1 Excluded by: is_admin_login";
|
1913 |
else $debug_output .="\n #1 Excluded by: is_admin_login";
|
1914 |
} //end if !is_admin_login
|
1915 |
|
@@ -1925,7 +2026,7 @@ function wassupAppend($req_code=0) {
|
|
1925 |
}
|
1926 |
if(is_numeric($result)) $in_temp=(int)$result;
|
1927 |
if($wdebug_mode){
|
1928 |
-
if(headers_sent()) echo "\nin_temp=".$result;
|
1929 |
else $debug_output .="\nin_temp=".$result;
|
1930 |
}
|
1931 |
//add new temp record
|
@@ -2018,7 +2119,7 @@ function wassupAppend($req_code=0) {
|
|
2018 |
if(((int)$timestamp)%141 == 0 && (!is_multisite() || is_main_site() || !$wassup_options->network_activated_plugin())){
|
2019 |
//Optimize table when optimize timestamp is older than current time
|
2020 |
if(!empty($wassup_options->wassup_optimize) && is_numeric($wassup_options->wassup_optimize) && $now >(int)$wassup_options->wassup_optimize){
|
2021 |
-
$optimize_sql=sprintf("OPTIMIZE TABLE `%s`",$wassup_table);
|
2022 |
if(version_compare($wp_version,'3.0','<')){
|
2023 |
$wassup_dbtask[]=$optimize_sql;
|
2024 |
}else{
|
@@ -2039,21 +2140,21 @@ function wassupAppend($req_code=0) {
|
|
2039 |
wp_schedule_single_event(time()+40,'wassup_scheduled_dbtasks',$args);
|
2040 |
}
|
2041 |
if($wdebug_mode){
|
2042 |
-
if(headers_sent()){
|
2043 |
echo "\nWassup scheduled tasks:";
|
2044 |
print_r($wassup_dbtask);
|
2045 |
}
|
2046 |
}
|
2047 |
}
|
2048 |
if($wdebug_mode){ //close comment tag to hide debug data from visitors
|
2049 |
-
if(headers_sent()){
|
2050 |
echo "\n--> \n";
|
2051 |
}else{
|
2052 |
$debug_output .= "<br />\n--> \n";
|
2053 |
//add debug output to wp_footer output - TODO
|
2054 |
$expire=time()+180;
|
2055 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
2056 |
-
update_wassupmeta($wassup_key,'_debug_output',$expire,$debug_output);
|
2057 |
}
|
2058 |
//restore normal mode
|
2059 |
@ini_set('display_errors',$mode_reset);
|
@@ -2086,7 +2187,7 @@ function wassup_insert_rec($wTable,$wassup_rec,$delayed=false){
|
|
2086 |
}else{
|
2087 |
if(!empty($wassup_options->delayed_insert)) $delayed=true;
|
2088 |
$insert_id=wassupDb::table_insert($wTable,$wassup_rec,$delayed);
|
2089 |
-
//
|
2090 |
if(!empty($insert_id) && is_wp_error($insert_id) && $delayed){
|
2091 |
$insert_id=wassupDb::table_insert($wTable,$wassup_rec,false);
|
2092 |
//always bypass delayed insert
|
@@ -2191,16 +2292,16 @@ function wGetQueryVars($urlstring){
|
|
2191 |
if (!empty($urlstring)) {
|
2192 |
$wtab=parse_url($urlstring);
|
2193 |
if(key_exists("query",$wtab)){
|
2194 |
-
//
|
2195 |
parse_str($wtab["query"],$qvar);
|
2196 |
}else{ //for partial urls
|
2197 |
-
//
|
2198 |
if(preg_match('/([^#]+)#.*/',$urlstring,$pcs)>0) $query=$pcs[1];
|
2199 |
else $query=$urlstring;
|
2200 |
$i=0;
|
2201 |
while($query){
|
2202 |
$pcs=array();
|
2203 |
-
//
|
2204 |
if(preg_match('/(?:[^?]*\?)?([^=&]+)(=[^&]+)?/',$query,$pcs)>0){
|
2205 |
$name=$pcs[1];
|
2206 |
if(empty($pcs[2])) $qvar[$name]=true;
|
@@ -3797,7 +3898,7 @@ function wassup_foot() {
|
|
3797 |
$sessionhash=$wassup_options->whash;
|
3798 |
if(empty($wscreen_res) && !isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
3799 |
$ua=(!empty($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:"");
|
3800 |
-
if(strpos($ua,'MSIE')>0 || strpos($ua,'rv:11')>0 || strpos($ua,'Edge/')>0 || stristr($_SERVER['REQUEST_URI'],'login.php')!==false){
|
3801 |
echo "\n";?>
|
3802 |
<script language=javascript>
|
3803 |
//<![CDATA[
|
@@ -3811,7 +3912,7 @@ function wassup_foot() {
|
|
3811 |
//Output a comment with a current timestamp to verify that page is not cached (i.e. visit is being recorded).
|
3812 |
echo "\n<!-- <p class=\"small\"> WassUp ".WASSUPVERSION." ".__("timestamp","wassup").": ".date('Y-m-d h:i:sA T')." (".gmdate('h:iA',time()+(get_option('gmt_offset')*3600)).")<br />\n";
|
3813 |
echo __("If above timestamp is not current time, this page is cached","wassup").".</p> -->\n";
|
3814 |
-
//
|
3815 |
if($wdebug_mode){
|
3816 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
3817 |
$debug_output=wassupDb::get_wassupmeta($wassup_key,'_debug_output');
|
@@ -3874,7 +3975,7 @@ function wassup_temp_cleanup($dbtasks=array()){
|
|
3874 |
if(!defined('WASSUPURL')){
|
3875 |
if(!wassup_init()) return; //nothing to do
|
3876 |
}
|
3877 |
-
if($wassup_options->is_recording_active()){
|
3878 |
//do scheduled cleanup
|
3879 |
if(empty($dbtasks)){
|
3880 |
wassupDb::temp_cleanup();
|
@@ -3891,7 +3992,7 @@ function wassup_auto_cleanup(){
|
|
3891 |
if(!wassup_init()) return; //nothing to do
|
3892 |
}
|
3893 |
//check that user can do auto delete
|
3894 |
-
if($wassup_options->is_recording_active()){
|
3895 |
if(!empty($wassup_options->delete_auto) && $wassup_options->delete_auto!="never"){
|
3896 |
//check last auto delete timestamp to ensure purge occurs only once a day
|
3897 |
$wassup_table=$wassup_options->wassup_table;
|
@@ -3982,15 +4083,15 @@ function wassup_sidebar($before_widget='',$after_widget='',$before_title='',$aft
|
|
3982 |
if(!function_exists('wassup_widget_get_cache')){
|
3983 |
include_once(WASSUPDIR.'/widgets/widget_functions.php');
|
3984 |
}
|
3985 |
-
if(empty($before_widget)|| empty($after_widget)|| strpos($before_widget,'>')===false || strpos($after_widget,'</')===false){
|
3986 |
$before_widget='<div id="wassup_sidebar" class="widget wassup-widget">';
|
3987 |
$after_widget='</div>';
|
3988 |
}
|
3989 |
-
if(empty($before_title)|| empty($after_title)|| strpos($before_title,'>')===false || strpos($after_title,'</')===false){
|
3990 |
$before_title='<h2 class="widget-title wassup-widget-title">';
|
3991 |
$after_title='</h2>';
|
3992 |
}
|
3993 |
-
if($wtitle!="")$title=$wtitle;
|
3994 |
else $title=__("Visitors Online","wassup");
|
3995 |
if($wulclass!="" && preg_match('/([^a-z0-9\-_]+)/',$wulclass)>0) $wulclass=""; //no special chars allowed
|
3996 |
if($wulclass!="") $ulclass=' class="'.$wulclass.'"';
|
@@ -4000,18 +4101,20 @@ function wassup_sidebar($before_widget='',$after_widget='',$before_title='',$aft
|
|
4000 |
//check for cached 'wassup_sidebar' html
|
4001 |
$widget_html=wassup_widget_get_cache('wassup_sidebar',$cache_key);
|
4002 |
if(empty($widget_html)){
|
4003 |
-
//
|
4004 |
-
if(!$wassup_options->is_recording_active()){
|
4005 |
-
|
4006 |
-
|
|
|
|
|
|
|
4007 |
'.$before_title.$title.$after_title;
|
4008 |
-
|
4009 |
<p class="small">'.__("No Data","wassup").'</p>'.wassup_widget_foot_meta().$after_widget;
|
4010 |
-
|
4011 |
-
|
4012 |
-
|
4013 |
-
|
4014 |
-
$instance=array(
|
4015 |
'title'=>"",
|
4016 |
'ulclass'=>$wulclass,
|
4017 |
'chars'=>$chars,
|
@@ -4024,61 +4127,60 @@ function wassup_sidebar($before_widget='',$after_widget='',$before_title='',$aft
|
|
4024 |
'top_referrers'=>(int)$wreflimit,
|
4025 |
'top_browsers'=>(int)$wtopbrlimit,
|
4026 |
'top_os'=>(int)$wtoposlimit,
|
4027 |
-
|
4028 |
-
|
4029 |
-
|
4030 |
-
|
4031 |
-
|
4032 |
-
|
4033 |
'.$before_title.$title.$after_title;
|
4034 |
-
|
4035 |
<ul'.$ulclass.'>
|
4036 |
'.$html.'
|
4037 |
</ul>'.wassup_widget_foot_meta().$after_widget;
|
4038 |
-
|
4039 |
-
|
4040 |
-
|
4041 |
-
|
4042 |
-
|
4043 |
-
|
4044 |
-
|
4045 |
-
|
4046 |
-
|
4047 |
-
|
4048 |
-
|
4049 |
-
|
4050 |
-
|
4051 |
-
|
4052 |
-
|
4053 |
'.$title.'
|
4054 |
<ul'.$ulclass.'>'.$html.'
|
4055 |
</ul>';
|
4056 |
-
|
4057 |
-
|
4058 |
-
|
4059 |
-
|
4060 |
-
|
4061 |
-
|
4062 |
-
|
4063 |
-
|
4064 |
-
|
4065 |
-
|
4066 |
-
|
4067 |
-
|
4068 |
-
|
4069 |
-
|
4070 |
-
|
4071 |
-
|
4072 |
-
|
4073 |
-
echo $widget_html;
|
4074 |
-
echo "\n".'</div>';
|
4075 |
-
}
|
4076 |
} //end wassup_sidebar
|
4077 |
//-------------------------------------------------
|
4078 |
//## Add essential hooks after functions have been defined
|
4079 |
//uninstall hook for complete plugin removal from WordPress
|
4080 |
register_activation_hook($wassupfile,'wassup_install');
|
4081 |
-
if(function_exists('register_uninstall_hook'))
|
|
|
|
|
4082 |
unset($wassupfile); //to free memory
|
4083 |
wassup_start(); //start WassUp
|
4084 |
?>
|
3 |
Plugin Name: WassUp Real Time Analytics
|
4 |
Plugin URI: http://www.wpwp.org
|
5 |
Description: Analyze your website traffic with accurate, real-time stats, live views, visitor counts, top stats, IP geolocation, customizable tracking, and more. For Wordpress 2.2+
|
6 |
+
Version: 1.9.2
|
7 |
Author: Michele Marcucci, Helene Duncker
|
8 |
Author URI: http://www.michelem.org/
|
9 |
Text Domain: wassup
|
24 |
//# No direct requests for plugin file "wassup.php"
|
25 |
$wassupfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
26 |
//abort if this is direct request for file
|
27 |
+
if((!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wassupfile)) ||
|
28 |
+
(!empty($_SERVER['PHP_SELF']) && preg_match('#'.str_replace('#','\#',preg_quote($_SERVER['PHP_SELF'])).'$#',$wassupfile)>0)){
|
29 |
//try track this uri request for "wassup.php"
|
30 |
if(!headers_sent()){
|
31 |
//can't track 403-forbidden, so use 404 instead
|
32 |
//location value triggers redirect to WordPress' 404 error page so Wassup can track this attempt to access itself (original uri request is lost)
|
33 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename($wassupfile));
|
34 |
exit;
|
35 |
}else{
|
36 |
//'wp_die' is undefined here
|
37 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
38 |
}
|
|
|
39 |
//abort if no WordPress
|
40 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
41 |
//'wp_die' is undefined here
|
42 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
43 |
}
|
44 |
//-------------------------------------------------
|
45 |
//### Setup and startup functions
|
50 |
function wassup_init($init_settings=false){
|
51 |
global $wp_version,$wassup_options,$wdebug_mode;
|
52 |
//define wassup globals & constants
|
53 |
+
if(!defined('WASSUPVERSION')){ //v1.9.2 bugfix
|
54 |
+
define('WASSUPVERSION','1.9.2');
|
55 |
+
define('WASSUPDIR',dirname(preg_replace('/\\\\/','/',__FILE__)));
|
56 |
+
}
|
57 |
//turn on debugging (global)...Use cautiously! Will display errors from all plugins, not just WassUp
|
58 |
+
$wdebug_mode=false;
|
59 |
if(defined('WP_DEBUG') && WP_DEBUG==true) $wdebug_mode=true;
|
60 |
+
if($wdebug_mode){
|
61 |
+
//New in v1.9.2: turn off debug mode if this is ajax action request
|
62 |
+
if((!empty($_REQUEST['action']) && isset($_REQUEST['wajax'])) || (defined('DOING_AJAX') && DOING_AJAX)){
|
63 |
+
$wdebug_mode=false;
|
64 |
+
@wassup_disable_errors();
|
65 |
+
}else{
|
66 |
+
if(headers_sent()){
|
67 |
+
//an error was likely displayed to screen
|
68 |
+
echo "\n".'<!-- wassup_init start -->';
|
69 |
+
}
|
70 |
+
wassup_enable_errors();
|
71 |
+
}
|
72 |
+
}
|
73 |
//load language translation
|
|
|
74 |
if(empty($GLOBALS['locale']) || strlen($GLOBALS['locale'])>5) $current_locale=get_locale();
|
75 |
else $current_locale=$GLOBALS['locale'];
|
76 |
if(!empty($current_locale)){
|
106 |
}else{
|
107 |
//Load existing wassup wp_option settings, if any
|
108 |
$wassup_settings=get_option('wassup_settings');
|
109 |
+
if(count($wassup_settings)>1 && !empty($wassup_settings['wassup_version']) && $wassup_settings['wassup_version']==WASSUPVERSION){
|
110 |
+
$wassup_options=new wassupOptions;
|
111 |
+
}else{ //v1.9.2 bugfix
|
112 |
+
//'else' shouldn't happen unless 'wassup_settings' wp_option record is corrupted or deleted/locked by another application
|
113 |
+
$wassup_options=new wassupOptions(true);
|
114 |
+
//New in v1.9.2: corruption maybe caused by a 'wassup_install' interrupt or time out before update is done, so try re-save settings
|
115 |
+
//$wassup_options->wassup_version=WASSUPVERSION;
|
116 |
+
$wassup_options->saveSettings();
|
117 |
+
}
|
118 |
}
|
119 |
}else{
|
120 |
if(function_exists('is_network_admin') && is_network_admin()){
|
123 |
add_action('admin_notices','wassup_show_compat_message');
|
124 |
}
|
125 |
}
|
126 |
+
if($wdebug_mode && headers_sent()){
|
127 |
+
//an error message was likely displayed to screen
|
128 |
+
echo "\n".'<!-- wassup_init end -->'."\n";
|
129 |
+
}
|
130 |
return $is_compatible;
|
131 |
} //end wassup_init
|
132 |
|
143 |
*/
|
144 |
function wassup_install($network_wide=false) {
|
145 |
global $wpdb,$wp_version,$wassup_options;
|
146 |
+
|
147 |
+
$wassup_settings=get_option('wassup_settings'); //save old settings
|
148 |
+
$wassup_network_settings=array();
|
149 |
+
//first check Wordpress compatibility via 'wassup_init'
|
150 |
if(!defined('WASSUPURL')){
|
151 |
+
if(!wassup_init(true)){
|
152 |
wassup_show_compat_message();
|
153 |
exit(1);
|
154 |
}
|
161 |
exit(1);
|
162 |
}
|
163 |
//initialize/update wassup_settings in wp_options
|
164 |
+
if(empty($wassup_options) || empty($wassup_options->wassup_version) || $wassup_options->wassup_version != WASSUPVERSION){
|
165 |
+
$wassup_options=new wassupOptions(true);
|
166 |
+
}
|
167 |
+
//network-wide settings for multisite @since v1.9
|
168 |
if(is_multisite()){
|
169 |
+
//New in v1.9.2: moved multisite compatibility check to 'compatibility.php' module
|
|
|
|
|
|
|
|
|
|
|
170 |
if(is_network_admin()){
|
171 |
$network_wide=true;
|
172 |
+
//no network activation in subdomain networks, subdomain sites must activate Wassup separately @TODO
|
173 |
if(is_subdomain_install()){
|
174 |
+
//long error message is NOT displaying for network activation error in WordPress 4.6.1, so use 'wp_die' instead of 'echo/exit' @since v1.9.1
|
|
|
|
|
175 |
$err = __("Sorry! \"Network Activation\" is DISABLED for subdomain networks.","wassup");
|
176 |
$err .= ' '.sprintf(__("%s must be activated on each subdomain site separately.","wassup"),'<strong>Wassup Plugin</strong>');
|
177 |
$err .=' <br/>'.__("Activate plugin on your parent domain (main site) to set default options for your network.","wassup");
|
191 |
//set table names
|
192 |
//reset Wassup table name if wpdb prefix has changed @since v1.9
|
193 |
if(empty($wassup_options->wassup_table) || !wassupDb::table_exists($wassup_options->wassup_table)){
|
194 |
+
if($network_wide){
|
195 |
if(empty($wassup_network_settings['wassup_table']) || !wassupDb::table_exists($wassup_network_settings['wassup_table'])) $wassup_table=$wpdb->base_prefix . "wassup";
|
196 |
else $wassup_table= $wassup_network_settings['wassup_table'];
|
197 |
}else{
|
202 |
}
|
203 |
$wassup_meta_table=$wassup_table."_meta";
|
204 |
$wassup_options->wassup_table=$wassup_table;
|
205 |
+
|
206 |
+
//turn off 'wassup_active' setting and cancel all scheduled Wassup wp-cron jobs for upgrades only
|
207 |
$active_status=1;
|
208 |
if(!empty($wassup_settings)){
|
209 |
//save current 'wassup_active' setting prior to upgrade for later restore
|
210 |
$active_status=$wassup_settings['wassup_active'];
|
211 |
+
if($network_wide && !empty($wassup_network_settings['wassup_active'])){
|
212 |
$wassup_network_settings['wassup_active']="0";
|
213 |
update_site_option('wassup_network_settings',$wassup_network_settings);
|
214 |
+
}elseif(!empty($active_status)){
|
215 |
$wassup_options->wassup_active="0";
|
216 |
$wassup_options->saveSettings();
|
217 |
}
|
228 |
//increase script timeout to 16 minutes to prevent activation failure due to script timeout (browser timeout can still occur)
|
229 |
$stimeout=ini_get("max_execution_time");
|
230 |
if(is_numeric($stimeout) && $stimeout>0 && $stimeout < 990){
|
231 |
+
//check for 'set_time_limit' in disabled functions before changing script timeout
|
232 |
$disabled_funcs=ini_get('disable_functions');
|
233 |
if((empty($disabled_funcs) || strpos($disabled_funcs,'set_time_limit')===false) && !ini_get('safe_mode')){
|
234 |
@set_time_limit(990);
|
264 |
update_site_option('wassup_network_settings',$wassup_network_settings);
|
265 |
}
|
266 |
//update site settings
|
267 |
+
//check the upgrade timestamp to prevent repeat of 'wassup_settings_install()' (runs in 'upgrade.php')
|
268 |
if(empty($wassup_options->wassup_upgraded) || ((int)time() - (int)$wassup_options->wassup_upgraded) >180){
|
269 |
wassup_settings_install($wassup_table);
|
270 |
}
|
330 |
foreach($subsite_ids as $subsite_id){
|
331 |
if($network_wide) switch_to_blog($subsite_id);
|
332 |
$wassup_settings = get_option('wassup_settings');
|
333 |
+
//first, stop recording (when plugin is still running)
|
334 |
if(!$network_wide && !empty($wassup_settings['wassup_active'])){
|
335 |
$wassup_settings['wassup_active']="0";
|
336 |
update_option('wassup_settings',$wassup_settings);
|
382 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $table_meta_name");
|
383 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $table_tmp_name");
|
384 |
$dropped=$wpdb->query("DROP TABLE IF EXISTS $wassup_table");
|
385 |
+
}
|
386 |
+
//New in v1.9.2: make sure tables were dropped (for backward compatibility)
|
387 |
+
if($wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",like_escape($wassup_table)))==$wassup_table){
|
388 |
//"if exists" in wpdb::query caused error in early versions of Wordpress
|
389 |
if($wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",like_escape($table_meta_name)))==$table_meta_name){
|
390 |
$dropped=$wpdb->query("DROP TABLE $table_meta_name");
|
392 |
if($wpdb->get_var(sprintf("SHOW TABLES LIKE '%s'",like_escape($table_tmp_name)))==$table_tmp_name){
|
393 |
$dropped=$wpdb->query("DROP TABLE $table_tmp_name");
|
394 |
}
|
395 |
+
$dropped=$wpdb->query("DROP TABLE $wassup_table");
|
|
|
|
|
396 |
}
|
397 |
//delete settings from wp_option and wp_usermeta tables
|
398 |
delete_option('wassup_settings');
|
414 |
}
|
415 |
} //end wassup_uninstall
|
416 |
|
417 |
+
/** Stop Wassup wp-cron and wp-ajax on deactivation. @since v1.9 */
|
418 |
function wassup_deactivate(){
|
419 |
global $wp_version;
|
420 |
//wp-ajax action may persist, so remove it
|
443 |
function wassup_start(){
|
444 |
//startup wassup
|
445 |
add_action('init','wassup_preload',11);
|
446 |
+
add_action('login_init','wassup_preload',11); //separate action
|
447 |
add_action('admin_init','wassup_admin_preload',11);
|
448 |
add_action('plugins_loaded','wassup_load');
|
449 |
}
|
450 |
|
451 |
/**
|
452 |
* Perform plugin tasks for before http headers are sent.
|
453 |
+
* -block obvious xss and sql injection attempts on Wassup itself
|
454 |
* -initialize new network subsite settings (via 'wassup_init'), if any
|
455 |
* -add hooks for wp_ajax, wp_login, and wp_cron actions
|
456 |
* -start wassup tracking
|
457 |
*/
|
458 |
function wassup_preload(){
|
459 |
+
global $wp_version,$current_user,$wassup_options,$wdebug_mode;
|
|
|
460 |
//block any obvious sql injection attempts involving WassUp
|
461 |
$request_uri=$_SERVER['REQUEST_URI'];
|
462 |
if(!$request_uri) $request_uri=$_SERVER['SCRIPT_NAME']; // IIS
|
463 |
+
//v1.9.2 bugfix: removed referrer from test..could cause non-wassup request redirect
|
464 |
+
if(stristr($request_uri,'wassup')!==false && strstr($request_uri,'err=wassup403')===false){
|
465 |
$error_msg="";
|
466 |
+
//v1.9.2 bugfix: don't test logged-in user requests
|
467 |
+
if(!is_user_logged_in()){
|
468 |
+
if(preg_match('/(<|<?|�*60;?|%3C)scr(ipt|[^0-9a-z\-_])/i',$request_uri)>0){
|
469 |
+
$error_msg=__('Bad request!','wassup');
|
470 |
+
if($wdebug_mode) $error_msg .=" xss not allowed.";
|
471 |
+
}elseif(preg_match('/[&?][^=]+=\-[19]+|(select|update|delete|alter|drop|union|create)[ %&][^w]+wp_/i',str_replace(array('\\','\','"','%22','"','"',''','\'','`','`'),'',$request_uri))>0){
|
472 |
+
$error_msg=__('Bad request!','wassup');
|
473 |
+
if($wdebug_mode) $error_msg .=" special chars not allowed.";
|
474 |
+
}
|
475 |
}
|
476 |
//abort bad requests
|
477 |
if(!empty($error_msg)){
|
478 |
if($wdebug_mode){
|
479 |
+
wp_die($error_msg.' :'.esc_attr(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','---',$_SERVER['REQUEST_URI'])));
|
480 |
}
|
481 |
//redirect bad requests to 404 error page
|
482 |
+
if(!headers_sent()) header('Location: /?p=404page&werr=wassup403');
|
483 |
else wp_die($error_msg);
|
484 |
exit;
|
485 |
}
|
493 |
return;
|
494 |
}
|
495 |
}
|
496 |
+
if($wdebug_mode && headers_sent()){
|
497 |
+
//an error message was likely displayed to screen
|
498 |
+
echo "\n".'<!-- wassup_preload start -->';
|
499 |
+
}
|
500 |
+
//v1.9.2 bugfix: fix for object error seen in support forum, but redundant to fix already in 'wassup_init'
|
501 |
+
if(empty($wassup_options)){
|
502 |
+
if(!class_exists('wassupOptions')) require_once(WASSUPDIR.'/lib/wassup.class.php');
|
503 |
+
$wassup_options=new wassupOptions;
|
504 |
+
if(empty($wassup_options)) return; //nothing to do
|
505 |
+
}
|
506 |
//reset wassup user settings at login @since v1.9
|
507 |
add_action('wp_login',array($wassup_options,'resetUserSettings'),9,2);
|
508 |
+
//assign action handler for wp-ajax operations @since v1.9.1
|
509 |
if(!function_exists('wassup_action_handler')){
|
510 |
require_once(WASSUPDIR .'/lib/action.php');
|
511 |
}
|
516 |
wassup_compat_preload();
|
517 |
}
|
518 |
//Start visitor tracking
|
519 |
+
if(!empty($wassup_options) && $wassup_options->is_recording_active()){
|
520 |
//add actions for wp-cron scheduled tasks - @since v1.9
|
521 |
if(!has_action('wassup_scheduled_dbtasks')) add_action('wassup_scheduled_dbtasks',array('wassupDb','scheduled_dbtask'),10,1);
|
522 |
if(!is_multisite() || is_main_site() || !$wassup_options->network_activated_plugin()){
|
529 |
}
|
530 |
wassupPrepend();
|
531 |
}
|
532 |
+
if($wdebug_mode && headers_sent()){
|
533 |
+
//an error message was likely displayed to screen
|
534 |
+
echo "\n".'<!-- wassup_preload end -->'."\n";
|
535 |
+
}
|
536 |
} // end wassup_preload
|
537 |
|
538 |
/**
|
546 |
if(!wassup_init()) return; //nothing to do
|
547 |
}
|
548 |
//load widgets and visitor tracking footer scripts
|
549 |
+
if(!empty($wassup_options)){ //v1.9.2 bugfix
|
550 |
+
if($wassup_options->is_recording_active()){
|
551 |
+
add_action("widgets_init",'wassup_widget_init',9);
|
552 |
+
if(is_admin()) add_action('admin_footer','wassup_foot');
|
553 |
+
else add_action('wp_footer','wassup_foot');
|
554 |
+
}
|
555 |
+
//load admin interface
|
556 |
+
if(is_admin()){
|
557 |
+
if(!function_exists('wassup_admin_load')) require_once(WASSUPDIR.'/lib/wassupadmin.php');
|
558 |
+
wassup_admin_load();
|
559 |
}
|
|
|
560 |
}
|
561 |
+
} //end wassup_load
|
562 |
+
|
563 |
//-------------------------------------------------
|
564 |
+
//### Admin functions
|
565 |
+
// WassUp admin panels and menus display functions are in a separate module, "wassupadmin.php" @since v1.9.1
|
566 |
/**
|
567 |
* Perform plugin admin tasks for before http headers are sent.
|
568 |
* - run 'initialize settings' for new network subsites, if needed
|
604 |
add_action('admin_enqueue_scripts','wassup_add_scripts',12);
|
605 |
} //end wassup_admin_preload
|
606 |
|
|
|
|
|
|
|
607 |
/**
|
608 |
* Loads javascript and css files for Wassup admin pages.
|
609 |
* - Enqueues "spia.js", "jquery-ui.js" (various), "jquery-migrate.js" (also queues "jquery.js")
|
703 |
}elseif(!empty($multisite_whereis)){
|
704 |
$wherecondition="WHERE `id`>0 ".$multisite_whereis;
|
705 |
}
|
706 |
+
//omit spam records from export @since v1.9.1
|
707 |
if(empty($wassup_options->export_spam)){
|
708 |
if(empty($wherecondition)) $wherecondition="WHERE `spam`='0'";
|
709 |
else $wherecondition .=" AND `spam`='0'";
|
714 |
$exportdata=false;
|
715 |
$numrecords=$wpdb->get_var(sprintf("SELECT COUNT(`wassup_id`) FROM `%s` %s",esc_attr($wassup_table),$wherecondition));
|
716 |
if(!is_numeric($numrecords)) $numrecords=0;
|
|
|
717 |
if($numrecords > 0){
|
718 |
//save "failed export" message beforehand in case of script interruption @since v1.9
|
719 |
$wassup_user_settings['ualert_message']=__("Export failed due to script interruption or timeout error!","wassup");
|
721 |
if($numrecords > 10000){
|
722 |
//Could take a long time, so increase script execution time-limit to 11 min
|
723 |
//TODO 'safe_mode' deprecated in PHP 5.3
|
724 |
+
if(!ini_get('safe_mode')){
|
725 |
$timeout=ini_get('max_execution_time');
|
726 |
if(is_numeric($timeout) && $stimeout>0 && $timeout<(11*60)) @set_time_limit(11*60);
|
727 |
}
|
750 |
}
|
751 |
} //end export_wassup
|
752 |
|
753 |
+
/** Turns off all error notices except fatal errors. */
|
754 |
+
function wassup_disable_errors(){
|
755 |
+
ini_set('error_reporting',E_ERROR);
|
756 |
+
//error_reporting(0); //same as above
|
757 |
+
ini_set('display_errors','Off');
|
758 |
+
}
|
759 |
+
/** Turns on all error notices */
|
760 |
+
function wassup_enable_errors(){
|
761 |
+
global $wp_version;
|
762 |
+
ini_set('display_errors','On');
|
763 |
+
//don't use 'strict standards' in old Wordpress versions (part of E_ALL since PHP 5.4)
|
764 |
+
$php_vers=phpversion();
|
765 |
+
if(version_compare($php_vers,'5.0','>=')){
|
766 |
+
if(version_compare($wp_version,'4.0','>=')){
|
767 |
+
ini_set('error_reporting',E_ALL);
|
768 |
+
}else{
|
769 |
+
ini_set('error_reporting',E_ALL & ~E_STRICT & ~E_DEPRECATED);
|
770 |
+
}
|
771 |
+
}else{
|
772 |
+
ini_set('error_reporting',E_ALL);
|
773 |
+
}
|
774 |
+
} //end wassup_enable_errors
|
775 |
+
|
776 |
if (!function_exists('microtime_float')) {
|
777 |
function microtime_float() { //replicates microtime(true) from PHP5
|
778 |
list($usec, $sec) = explode(" ", microtime());
|
786 |
global $wpdb,$wp_version,$wassup_options,$current_user,$wscreen_res,$wdebug_mode;
|
787 |
if(empty($wassup_options)) $wassup_options=new wassupOptions;
|
788 |
//wassup must be active for recording to begin
|
789 |
+
if(empty($wassup_options) || !$wassup_options->is_recording_active()){ //do nothing
|
790 |
return;
|
791 |
}
|
792 |
$wassup_table=$wassup_options->wassup_table;
|
858 |
$timenow=current_time('timestamp');
|
859 |
//check if user is logged-in
|
860 |
$logged_user="";
|
861 |
+
if(empty($current_user->user_login)) $user=wp_get_current_user();
|
862 |
if(!empty($current_user->user_login)){
|
863 |
$logged_user=$current_user->user_login;
|
864 |
//for recent successful login.. undo hack attempt label
|
869 |
//retroactively undo "hack attempt" label
|
870 |
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `username`='%s', `spam`='0' WHERE `wassup_id`='%s' AND `spam`!='0' AND `timestamp`>'%d'",$logged_user,$wsession_id,$timenow-90);
|
871 |
}
|
872 |
+
//New in v1.9.2: timeout logged-in users after 10 mins to trigger save into temp for online counts
|
873 |
+
if($wassup_timer > 5361){ //for 1st save/cookie reset
|
874 |
+
$session_timeout=true;
|
875 |
+
}elseif($wassup_timer < 4801){ //timeout after ~10 mins
|
876 |
+
$session_timeout=true; //...for save to temp
|
877 |
+
}
|
878 |
}
|
879 |
//Track visitor
|
880 |
+
//New in v1.9.2: Exclude for logged-in user in admin area (unless session_timeout is set)
|
881 |
+
if(!is_admin() || empty($logged_user) || $session_timeout || $req_code !=200 || empty($wassup_id)){
|
882 |
+
//use 'send_headers' hook for feed, media, and files except when request is wp-admin which doesn't run this hook
|
883 |
+
if(is_feed() || preg_match('#[=/?&](feed|atom)#',$urlRequested)>0){
|
884 |
+
if(is_feed() && !headers_sent()){
|
885 |
+
add_action('send_headers','wassupAppend');
|
886 |
+
}else{
|
887 |
+
wassupAppend($req_code);
|
888 |
+
}
|
889 |
+
}elseif(preg_match("/(\.(3gp|7z|f4[pv]|mp[34])(?:[?&#]|$))/i",$urlRequested)>0){
|
890 |
+
//this is audio, video, or archive file request
|
891 |
+
if(!is_admin() && !headers_sent()){
|
892 |
+
add_action('send_headers','wassupAppend');
|
893 |
+
}else{
|
894 |
+
wassupAppend($req_code);
|
895 |
+
}
|
896 |
+
}elseif(preg_match("/([^?#&]+\.([a-z]{1,4}))(?:[?&#]|$)/i",$urlRequested)>0 && basename($urlRequested)!="robots.txt"){
|
897 |
+
//this is multimedia or specific file request
|
898 |
+
if(!is_admin() && !headers_sent()){
|
899 |
+
add_action('send_headers','wassupAppend');
|
900 |
+
}else{
|
901 |
+
wassupAppend($req_code);
|
902 |
+
}
|
903 |
}elseif(!is_admin()){
|
904 |
+
//use 'send_headers' hook for cookie write or 404 and shutdown hook for all others
|
905 |
+
if(empty($wassup_id) || $session_timeout || $req_code!=200){
|
906 |
+
if(!headers_sent()){
|
907 |
+
add_action('send_headers','wassupAppend',15);
|
908 |
+
}else{
|
909 |
+
add_action('shutdown','wassupAppend',1);
|
910 |
+
}
|
911 |
+
}else{
|
912 |
+
add_action('shutdown','wassupAppend',1);
|
913 |
+
}
|
914 |
}else{
|
915 |
+
//use 'admin_footer' hook for admin area hits @since v1.9.1
|
916 |
add_action('admin_footer','wassupAppend',15);
|
917 |
}
|
918 |
+
//add tracking for login page separately since 'shutdown' hook doesn't seem to run on login page @since v1.9.1
|
919 |
+
if(empty($logged_user) && stristr($urlRequested,'login.php')!==FALSE){
|
920 |
+
add_action('login_footer','wassupAppend',15);
|
|
|
|
|
|
|
|
|
921 |
}
|
922 |
+
} //end if !is_admin
|
|
|
|
|
|
|
|
|
923 |
//do retroactive update, if any
|
924 |
if(!empty($wassup_dbtask)){
|
925 |
$args=array('dbtasks'=>$wassup_dbtask);
|
937 |
if(!wassup_init()) return; //nothing to do
|
938 |
}
|
939 |
//wassup must be active for recording to begin
|
940 |
+
if(empty($wassup_options) || !$wassup_options->is_recording_active()){ //nothing to do
|
941 |
return;
|
942 |
}
|
943 |
//load additional wassup modules as needed
|
954 |
$fileRequested="";
|
955 |
if(preg_match("#(^/[0-9a-z\-/\._]+\.(3gp|avi|bmp|flv|gif|gifv|ico|img|jpe?g|mkv|mov|mpa|mpe?g|mp[234]|ogg|oma|omg|png|pdf|pp[st]x?|psd|svg|swf|tiff|vob|wav|webm|wma|wmv))(?:[?\#&]|$)#i",$_SERVER['REQUEST_URI'],$pcs)>0){
|
956 |
$is_media=true;
|
957 |
+
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
958 |
}
|
959 |
$debug_output="";
|
960 |
+
if($wdebug_mode){
|
961 |
+
if($is_media || is_feed() || (!is_page() && !is_home() && !is_single() && !is_archive())){
|
962 |
+
//turn off error display for media, feed, and any non-html requests
|
963 |
$wdebug_mode=false;
|
964 |
+
@wassup_disable_errors();
|
965 |
}else{
|
966 |
+
if(is_admin() || headers_sent()){
|
967 |
+
echo "\n".'<!-- *WassUp DEBUG On '."\n"; //hide errors
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
968 |
echo date('H:i:s');
|
969 |
}else{
|
970 |
+
$debug_output="\n".'<!-- *WassUp DEBUG On '."\n"; //hide errors
|
971 |
+
$debug_output .=date('H:i:s');
|
972 |
}
|
973 |
+
wassup_enable_errors();
|
974 |
}
|
|
|
|
|
|
|
|
|
|
|
975 |
} //end if $wdebug_mode
|
976 |
$error_msg="";
|
977 |
$wassup_table = $wassup_options->wassup_table;
|
1052 |
}
|
1053 |
} //end else agenttype
|
1054 |
$os=$ua->os;
|
1055 |
+
//check for screen resolution
|
1056 |
if(empty($wscreen_res) && !empty($ua->resolution)){
|
1057 |
if(preg_match('/^\d+x\d+$/',$ua->resolution)>0){
|
1058 |
$wscreen_res=str_replace('x',' x ',$ua->resolution);
|
1064 |
$language=$ua->language;
|
1065 |
}
|
1066 |
if($wdebug_mode){
|
1067 |
+
if(is_admin() || headers_sent()){
|
1068 |
+
if(!empty($debug_output)){
|
1069 |
+
echo $debug_output;
|
1070 |
+
echo "\nwassupappend-debug#1";
|
1071 |
+
$debug_output="";
|
1072 |
+
}
|
1073 |
+
echo "\nUAdetecter results: \$ua=".serialize($ua);
|
1074 |
+
}else{
|
1075 |
+
$debug_output .="\nUAdetecter results: \$ua=".serialize($ua);
|
1076 |
+
}
|
1077 |
}
|
1078 |
} //end if $ua->name
|
1079 |
//Set visitor identifier fields: username, wassup_id, ipAddress, hostname
|
1136 |
if (empty($ipAddress)) $ipAddress = $_SERVER['REMOTE_ADDR'];
|
1137 |
if (empty($IP)) $IP = wassup_clientIP($ipAddress);
|
1138 |
if (empty($hostname)) $hostname = "unknown";
|
1139 |
+
if(empty($logged_user)){
|
1140 |
+
//only one use for username in cookie...to omit admin logout information
|
1141 |
//$logged_user=$cookieUser;
|
1142 |
if(!empty($cookieUser) && strpos($urlRequested,'loggedout')>0){
|
1143 |
$logged_user=$cookieUser;
|
1167 |
}
|
1168 |
//assign a wassup_id for visit and write cookie
|
1169 |
if(empty($wassup_id) || $session_timeout || (!empty($wscreen_res) && empty($cookie_data[2]))){
|
1170 |
+
//reset wassup_id for timeout/new visit only
|
1171 |
if(empty($wassup_id) || $session_timeout){
|
1172 |
$args=array('ipAddress'=>$ipAddress,
|
1173 |
'hostname'=>$hostname,
|
1190 |
//this must be done before headers sent
|
1191 |
if(!headers_sent()){
|
1192 |
if (defined('COOKIE_DOMAIN')) {
|
1193 |
+
$cookiedomain = preg_replace('#^(https?\://)?(www\d?\.)?#','',strtolower(COOKIE_DOMAIN));
|
1194 |
if(defined('COOKIEPATH')){
|
1195 |
$cookiepath=COOKIEPATH;
|
1196 |
}else{
|
1198 |
}
|
1199 |
} else {
|
1200 |
$cookieurl = parse_url(get_option('home'));
|
1201 |
+
$cookiedomain = preg_replace('/^www\d?\./i','',$cookieurl['host']);
|
1202 |
$cookiepath = $cookieurl['path'];
|
1203 |
}
|
1204 |
if(!empty($logged_user)) $cookieUser=$logged_user;
|
1229 |
if(ini_get('allow_url_fopen')) $fileRequested=$blogurl.$pcs[1];
|
1230 |
}
|
1231 |
if($wdebug_mode){
|
1232 |
+
if(is_admin() || headers_sent()){
|
1233 |
+
if(!empty($debug_output)){
|
1234 |
+
echo $debug_output;
|
1235 |
+
echo "\nwassupappend-debug#2";
|
1236 |
+
$debug_output="";
|
1237 |
+
}
|
1238 |
+
echo "\n\$req_code=$req_code";
|
1239 |
}
|
1240 |
}
|
1241 |
$hackercheck=true; //for malware checking
|
1242 |
+
//do early check for xss code on url and label as spam/malware for temp record, even if spam detection is disabled @since v1.9.1
|
1243 |
+
if(preg_match('/(document\.write(?:ln)?|(?:<|<|�*60;?|%3C)scr(?:ipt|[^0-9a-z\-_])|[0t;];script|[ +;0]src=|[ +;]href=|%20href=)([^0-9a-z]|http[:s]|ftp[:s])/',$urlRequested)>0){
|
1244 |
$spam=3;
|
1245 |
$hackercheck=false;
|
1246 |
//no malware checks on logged-in users unless 404 activity
|
1260 |
if ((!is_admin() && stristr($urlRequested,"/wp-admin/")===false && stristr($urlRequested,"/wp-includes/")===false) || $req_code!=200 || $hackercheck){
|
1261 |
//Get single post/page id, if archive has only 1 post
|
1262 |
if(empty($article_id) && isset($GLOBALS['posts'])){
|
1263 |
+
if((is_archive() || is_search()) && count($GLOBALS['posts'])==1 && !empty($GLOBALS['posts'][0]->ID)){
|
1264 |
$article_id=$GLOBALS['posts'][0]->ID;
|
1265 |
}
|
1266 |
}
|
1270 |
//TODO: exclude page requests by post_id
|
1271 |
//#5 Exclude urls on exclusion list
|
1272 |
if (empty($wassup_options->wassup_exclude_url) || preg_match('#(?:^|\s*,)\s*((?:'.str_replace('#','\#',preg_quote($blogurl)).')?'.str_replace('#','\#',preg_quote($urlRequested)).')\s*(?:,|$)#i',$wassup_options->wassup_exclude_url)==0){
|
1273 |
+
//url matching may be affected by html-encoding, url-encoding, query parameters, and labels on the url - so do those exclusions separately
|
1274 |
$exclude_visit = false;
|
1275 |
if (!empty($wassup_options->wassup_exclude_url)) {
|
1276 |
$exclude_list = explode(',',str_replace(', ',',',$wassup_options->wassup_exclude_url));
|
1330 |
if (stristr($urlRequested,"/wp-content/themes") === FALSE || stristr($urlRequested,"comment") !== FALSE || $req_code==404) {
|
1331 |
//#10 Exclude for logged-in users
|
1332 |
if ($wassup_options->wassup_loggedin == 1 || !is_user_logged_in()) {
|
1333 |
+
//check user agent string for attack code
|
1334 |
+
if($spam==0 && wassupURI::is_xss($userAgent)){
|
1335 |
+
$spam=3;
|
1336 |
+
}
|
1337 |
+
//#11 Exclude for wassup_attack (via libwww-perl or xss in user agent)
|
1338 |
+
if ($wassup_options->wassup_attack==1 || (stristr($userAgent,"libwww-perl")===FALSE && $spam==0)) {
|
1339 |
// Check for duplicates, previous spam check, and screen resolution and get previous settings to prevent redundant checks on same visitor.
|
1340 |
// Dup==same wassup_id and URL, and timestamp<180 secs
|
1341 |
$wpageviews=0;
|
1348 |
}
|
1349 |
$wpdb->query("SET wait_timeout=7");
|
1350 |
if($wdebug_mode){
|
1351 |
+
if(is_admin() || headers_sent()){
|
1352 |
+
if(!empty($debug_output)){
|
1353 |
+
echo $debug_output;
|
1354 |
+
echo "\nwassupappend-debug#3";
|
1355 |
+
$debug_output="";
|
1356 |
+
}
|
1357 |
+
echo "\nSet MySQL wait_timeout=7 from ".$mtimeout;
|
1358 |
+
}else{
|
1359 |
+
$debug_output .="\nSet MySQL wait_timeout=7 from ".$mtimeout;
|
1360 |
+
}
|
1361 |
}
|
1362 |
//get recent hits with same wassup_id
|
1363 |
$recent_hit=$wpdb->get_results(sprintf("SELECT SQL_NO_CACHE `wassup_id`, `ip`, `timestamp`, `urlrequested`, `screen_res`, `username`, `browser`, `os`, `spider`, `feed`, `spam`, `language`, `agent`, `referrer` FROM `$wassup_tmp_table` WHERE `wassup_id`='%s' AND `timestamp` >'%d' %s ORDER BY `timestamp` DESC",esc_sql($wassup_id),$timenow-183,$multisite_whereis));
|
1376 |
}
|
1377 |
//retrieve previous spam check results
|
1378 |
$spamresult=$recent_hit[0]->spam;
|
1379 |
+
//don't use hack-attempt label from recent hit when user is logged-in
|
1380 |
if((int)$spamresult==3 && !empty($logged_user)){
|
1381 |
//if(strpos($recent_hit[0]->urlrequested,'wp-login.php')>0 || (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'],'wp-login.php')>0))){
|
1382 |
$spamresult=0;
|
1385 |
//retroactively update screen_res
|
1386 |
//...queue the update because of "delayed insert"
|
1387 |
if (empty($recent_hit[0]->screen_res) && !empty($wscreen_res)) {
|
1388 |
+
$wassup_dbtask[]=sprintf("UPDATE `$wassup_table` SET `screen_res`='%s' WHERE `wassup_id`='%s'",$wscreen_res,$recent_hit[0]->wassup_id);
|
1389 |
}
|
1390 |
}else{
|
1391 |
$recent_hit=array();
|
1392 |
} //end if recent_hit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1393 |
//done duplicate check...restore normal timeout
|
1394 |
if(!empty($mtimeout)){
|
1395 |
$wpdb->query("SET wait_timeout=$mtimeout");
|
1396 |
}else{
|
1397 |
$wpdb->query("SET wait_timeout=90");
|
1398 |
}
|
|
|
1399 |
//#12 Exclude duplicates
|
1400 |
if($dup_urlrequest == 0){
|
1401 |
//get previously recorded settings for this visitor to avoid redundant tests
|
1418 |
}
|
1419 |
//#13 Exclude admin (ajax?) requests with same session cookie as recent hit but does not show as a logged user request (ex: /wp-admin/post.php hit from edit link in website page?)
|
1420 |
if((!is_admin() && stristr($urlRequested,"/wp-admin/")===false) || empty($recent_hit) || ((empty($recent_hit[0]->username) || $recent_hit[0]->username != $cookieUser) && stristr($recent_hit[0]->urlrequested,"/wp-admin/")===false)){
|
1421 |
+
//check for xss attempts on referrer
|
1422 |
+
if($spam==0 && $hackercheck && empty($logged_user)){
|
1423 |
+
if(!empty($referrer) && $referrer != $blogurl.$urlRequested){
|
|
|
|
|
1424 |
if(wassupURI::is_xss($referrer)){
|
1425 |
$spam=3;
|
1426 |
}
|
1427 |
}
|
1428 |
}
|
1429 |
//#14 Exclude 404 hits unless 1st visit or malware attempt
|
1430 |
+
if($req_code == 200 || empty($recent_hit) || ($hackercheck && $spam==0 && (stristr($urlRequested,"/wp-")!==FALSE || preg_match('#\.(php\d?|aspx?|bat|cgi|dll|exe|ini|js|jsp|msi|sh)([^0-9a-z.\-_]|$)|([\\\.]{2}|\/\.|root[^a-z0-9\-_]|[^a-z0-9\-_]passw|\=admin[^a-z0-9\-_]|\=\-\d+|(bin|etc)\/)|[\*\,\'"\:\(\)$`]|[^0-9a-z](src|href|style)[ +]?=|&\#?([0-9]{2,4}|lt|gt|quot);|(?:<|%3c|<?|�*60;?|�*3c;?)[jpsv]|(?:user|author|admin|id)\=\-?\d+|(administrator|base64|bin|code|config|cookie|delete|document|drop|drupal|eval|exec|exit|function|iframe|insert|install|java|joomla|load|null|repair|script|select|setting|setup|shell|system|table|union|upgrade|update|upload|where|window|wordpress)#i',$urlRequested)>0))){
|
1431 |
//identify hackers/malware
|
1432 |
if($hackercheck && $spam==0){
|
1433 |
$pcs=array();
|
1434 |
+
//xss attempt
|
1435 |
+
if(!empty($logged_user) && wassupURI::is_xss($urlRequested)){
|
1436 |
+
$spam=3;
|
1437 |
//non-admin users trying to access root files, password or ids or upgrade script are up to no good
|
1438 |
+
}elseif(!$is_admin_login){
|
1439 |
$pcs=array();
|
1440 |
if(preg_match('#\.\./\.\./(etc/passwd|\.\./\.\./)#i',$urlRequested)>0){
|
1441 |
$spam=3;
|
1442 |
+
}elseif(preg_match('#[\[&\?/\-_](code|dir|document_root\]?|id|page|thisdir)\=([a-t]+tp\://.+|[/\\\\\'"\-&\#%]|0+[e\+\-\*x]|[a-z]:)#i',$urlRequested,$pcs)>0){
|
1443 |
if(!empty($pcs[2])) $spam=3;
|
1444 |
elseif($req_code==404) $spam=3;
|
1445 |
}elseif(preg_match('#\/wp\-admin.*[^0-9a-z_](install(\-helper)?|update(\-core)?|upgrade)\.php([^0-9a-z\-_]|$)#i',$urlRequested)>0){
|
1503 |
elseif(wIsAttack($urlRequested)) $spam=3;
|
1504 |
//regular visitor querying userid/author or other non-page item by id number is likely malware
|
1505 |
}elseif(preg_match('#[?&]([0-9a-z\-_]+)\=(\-)?\d+$#i',$urlRequested,$pcs)>0){
|
1506 |
+
if(!empty($pcs[2])){
|
|
|
|
|
|
|
|
|
|
|
|
|
1507 |
$spam=3;
|
1508 |
+
}elseif($req_code == 404){
|
1509 |
+
if(preg_match('#(code|dir|document_root|path|thisdir)#',$pcs[1])>0){
|
1510 |
+
$spam=3;
|
1511 |
+
}elseif(wIsAttack($urlRequested)){
|
1512 |
+
$spam=3;
|
1513 |
+
}
|
1514 |
}
|
1515 |
//regular visitor attempts to access "upload" page is likely malware
|
1516 |
}elseif(preg_match('#[?&][0-9a-z\-_]*(page\=upload)(?:[^0-9a-z\-_]|$)#i',$urlRequested)>0){
|
1517 |
$spam=3;
|
1518 |
+
}elseif($req_code==404 && wIsAttack($urlRequested)){
|
1519 |
+
$spam=3;
|
1520 |
+
//lastly check for attack in referrer string
|
1521 |
+
}elseif(!empty($referrer) && $referrer != $blogurl.$urlRequested){
|
1522 |
+
if(wIsAttack($referrer)) $spam=3;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1523 |
}
|
1524 |
} //end if empty logged_user
|
1525 |
//retroactively update recent visitor records as spam/malware
|
1537 |
list($browser,$os)=wGetBrowser($userAgent);
|
1538 |
if(!empty($browser)) $agent=$browser;
|
1539 |
if ($wdebug_mode){
|
1540 |
+
if(is_admin() || headers_sent()){
|
1541 |
+
if(!empty($debug_output)){
|
1542 |
+
echo $debug_output;
|
1543 |
+
echo "\nwassupappend-debug#4";
|
1544 |
+
$debug_output="";
|
1545 |
+
}
|
1546 |
+
echo "\n".date('H:i:s.u').' wGetBrowser results: $browser='.$browser.' $os='.$os;
|
1547 |
+
}else{
|
1548 |
+
$debug_output .= "\n".date('H:i:s.u').' wGetBrowser results: $browser='.$browser.' $os='.$os;
|
1549 |
+
}
|
1550 |
}
|
1551 |
}
|
1552 |
}
|
1556 |
if(empty($agent) || preg_match($spider_hosts,$hostname)>0 || stristr($agent,'unknown')!==false){
|
1557 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1558 |
if($wdebug_mode){
|
1559 |
+
if(is_admin() || headers_sent()){
|
1560 |
+
if(!empty($debug_output)){
|
1561 |
+
echo $debug_output;
|
1562 |
+
echo "\nwassupappend-debug#5";
|
1563 |
+
$debug_output="";
|
1564 |
+
}
|
1565 |
+
echo "\n".date('H:i:s.u').' wGetSpider results: $spider='.$spider.' $spidertype='.$spidertype.' $feed='.$feed;
|
1566 |
+
}else{
|
1567 |
+
$debug_output .= "\n".date('H:i:s.u').' wGetSpider results: $spider='.$spider.' $spidertype='.$spidertype.' $feed='.$feed;
|
1568 |
+
}
|
1569 |
}
|
1570 |
//it's a browser
|
1571 |
if($spidertype == "B" && $urlRequested != "/robots.txt"){
|
1586 |
if(strlen($agent)<5 || empty($os) || preg_match("#\s?([a-z]+(?:bot|crawler|google|spider|reader|agent))[^a-z]#i",$userAgent)>0 || strstr($urlRequested,"robots.txt")!==FALSE || is_feed()){
|
1587 |
list($spider,$spidertype,$feed) = wGetSpider($userAgent,$hostname,$browser);
|
1588 |
if($wdebug_mode){
|
1589 |
+
if(is_admin() || headers_sent()){
|
1590 |
+
if(!empty($debug_output)){
|
1591 |
+
echo $debug_output;
|
1592 |
+
echo "\nwassupappend-debug#6";
|
1593 |
+
$debug_output="";
|
1594 |
+
}
|
1595 |
+
echo "\n".date('H:i:s.u').' wGetSpider results: $spider='.$spider.' $spidertype='.$spidertype.' $feed='.$feed;
|
1596 |
+
}else{
|
1597 |
+
$debug_output .="\n".date('H:i:s.u').' wGetSpider results: $spider='.$spider.' $spidertype='.$spidertype.' $feed='.$feed;
|
1598 |
+
}
|
1599 |
}
|
1600 |
+
}elseif(!empty($browser) && preg_match('#^(Google Chrome|Netscape|Mozilla|Mozilla Firefox)([0-9./ ]|$)#i',$browser)>0){
|
1601 |
+
//New in v1.9.2: old browser name is likely spider
|
1602 |
+
list($spider,$spidertype,$feed)=wGetSpider($userAgent,$hostname,$browser);
|
1603 |
+
}elseif(preg_match('#(msie|firefox|chrome)[\/ ](\d+)#i',$userAgent,$pcs)>0){
|
1604 |
//obsolete browser is likely a spider
|
1605 |
if($pcs[2]<8 || ($pcs[2]<30 && $pcs[1]!="msie")){
|
1606 |
+
list($spider,$spidertype,$feed)=wGetSpider($userAgent,$hostname,$browser);
|
1607 |
}
|
1608 |
}
|
1609 |
//it's a browser
|
1737 |
//get language/locale
|
1738 |
if(empty($language) && !empty($recent_hit[0]->language)) $language=$recent_hit[0]->language;
|
1739 |
if($wdebug_mode){
|
1740 |
+
if(is_admin() || headers_sent()){
|
1741 |
+
if(!empty($debug_output)){
|
1742 |
+
echo $debug_output;
|
1743 |
+
echo "\nwassupappend-debug#7";
|
1744 |
+
$debug_output="";
|
1745 |
+
}
|
1746 |
+
echo "\n language=$language";
|
1747 |
+
}else{
|
1748 |
+
$debug_output .= "\n language=$language";
|
1749 |
+
}
|
1750 |
}
|
1751 |
if(preg_match('/\.[a-z]{2,3}$/i',$hostname) >0 || preg_match('/[a-z\-_]+\.[a-z]{2,3}[^a-z]/i',$referrer) >0 || strlen($language)>2){
|
1752 |
//get language/locale info from hostname or referrer data
|
1753 |
$language=wGetLocale($language,$hostname,$referrer);
|
1754 |
}
|
1755 |
if($wdebug_mode){
|
1756 |
+
if(is_admin() || headers_sent()){
|
1757 |
+
if(!empty($debug_output)){
|
1758 |
+
echo $debug_output;
|
1759 |
+
echo "\nwassupappend-debug#8";
|
1760 |
+
$debug_output="";
|
1761 |
+
}
|
1762 |
+
echo "\n...language=$language (after geoip/wgetlocale)";
|
1763 |
+
}else{
|
1764 |
+
$debug_output .= " ...language=$language (after geoip/wgetlocale)";
|
1765 |
+
}
|
1766 |
}
|
1767 |
// get search engine and search keywords from referrer
|
1768 |
$searchengine="";
|
1769 |
$search_phrase="";
|
1770 |
$searchpage="";
|
1771 |
+
$searchlocale="";
|
1772 |
//don't check own blog for search engine data
|
1773 |
if (!empty($referrer) && $spam == "0" && stristr($referrer,$blogurl)!=$referrer && !$wdebug_mode) {
|
1774 |
$ref=(is_string($referrer)?$referrer:mb_convert_encoding(strip_tags($_SERVER['HTTP_REFERER']),"HTML-ENTITIES","auto"));
|
1780 |
$searchengine="Google";
|
1781 |
if($pcs[2]!="com" && $pcs[2]!="co"){
|
1782 |
$searchlocale=$pcs[2];
|
1783 |
+
$searchengine .=" ".strtoupper($searchlocale);
|
1784 |
}
|
1785 |
//get the query keywords - will always be empty, until Google changes its policy
|
1786 |
if(empty($pcs[4])) $search_phrase="_notprovided_";
|
1920 |
}
|
1921 |
}
|
1922 |
if($wdebug_mode){
|
1923 |
+
if(is_admin() || headers_sent()){
|
1924 |
+
if(!empty($debug_output)){
|
1925 |
+
echo $debug_output;
|
1926 |
+
echo "\nwassupappend-debug#9";
|
1927 |
+
$debug_output="";
|
1928 |
+
}
|
1929 |
if(!empty($wassup_recid)){
|
1930 |
echo "\nWassUp record data:";
|
1931 |
print_r($wassup_rec);
|
1945 |
}
|
1946 |
} //end if prefetch
|
1947 |
}elseif($wdebug_mode){
|
1948 |
+
if(is_admin() || headers_sent()) echo "\n #18 Excluded by: wp-content/plugins (after 404)";
|
1949 |
else $debug_output .="\n #18 Excluded by: wp-content/plugins (after 404)";
|
1950 |
} //end if !wp-content/plugins
|
1951 |
}elseif($wdebug_mode){
|
1952 |
+
if(is_admin() || headers_sent()) echo "\n #17 Excluded by: wassup_spam";
|
1953 |
else $debug_output .="\n #17 Excluded by: wassup_spam";
|
1954 |
} //end if $spam == 0
|
1955 |
}elseif($wdebug_mode){
|
1956 |
+
if(is_admin() || headers_sent()) echo "\n #16 Excluded by: wassup_spider";
|
1957 |
else $debug_output .="\n #16 Excluded by: wassup_spider";
|
1958 |
} //end if wassup_spider
|
1959 |
}elseif($wdebug_mode){
|
1960 |
+
if(is_admin() || headers_sent()) echo "\n #15 Excluded by: wassup_hack";
|
1961 |
else $debug_output .="\n #15 Excluded by: wassup_hack";
|
1962 |
} //end if wassup_hack
|
1963 |
}elseif($wdebug_mode){
|
1964 |
+
if(is_admin() || headers_sent()) echo "\n #14 Excluded by: is_404";
|
1965 |
else $debug_output .="\n #14 Excluded by: is_404";
|
1966 |
} //end if !is_404
|
1967 |
}elseif($wdebug_mode){
|
1968 |
+
if(is_admin() || headers_sent()) echo "\n #13 Excluded by: !wp-admin (ajax)";
|
1969 |
else $debug_output .="\n #13 Excluded by: !wp_admin (ajax)";
|
1970 |
} //end if !wp_admin (ajax) && recent_hit
|
1971 |
}elseif($wdebug_mode){
|
1972 |
+
if(is_admin() || headers_sent()) echo "\n #12 Excluded by: dup_urlrequest";
|
1973 |
else $debug_output .="\n #12 Excluded by: dup_urlrequest";
|
1974 |
} //end if dup_urlrequest == 0
|
1975 |
}elseif($wdebug_mode){
|
1976 |
+
if(is_admin() || headers_sent()) echo "\n #11 Excluded by: wassup_attack";
|
1977 |
else $debug_output .="\n #11 Excluded by: wassup_attack";
|
1978 |
} //end if wassup_attack
|
1979 |
}elseif($wdebug_mode){
|
1980 |
+
if(is_admin() || headers_sent()) echo "\n #10 Excluded by: wassup_loggedin";
|
1981 |
else $debug_output .="\n #10 Excluded by: wassup_loggedin";
|
1982 |
} //end if wassup_loggedin
|
1983 |
}elseif($wdebug_mode){
|
1984 |
+
if(is_admin() || headers_sent()) echo "\n #9 Excluded by: wp-content/themes";
|
1985 |
else $debug_output .="\n #9 Excluded by: wp-content/themes";
|
1986 |
} //end if !themes
|
1987 |
}elseif($wdebug_mode){
|
1988 |
+
if(is_admin() || headers_sent()) echo "\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
1989 |
else $debug_output .="\n #8 Excluded by: wp-content/plugins (or hostname wildcard)";
|
1990 |
} //end if !plugins
|
1991 |
}elseif($wdebug_mode){
|
1992 |
+
if(is_admin() || headers_sent()) echo "\n #7 Excluded by: exclude_host (or IP wilcard)";
|
1993 |
else $debug_output .="\n #7 Excluded by: exclude_host (or IP wildcard)";
|
1994 |
} //end if wassup_exclude_host
|
1995 |
}elseif($wdebug_mode){
|
1996 |
+
if(is_admin() || headers_sent()) echo "\n #6 Excluded by: wassup_exclude";
|
1997 |
else $debug_output .="\n #6 Excluded by: wassup_exclude";
|
1998 |
} //end if wassup_exclude
|
1999 |
}elseif($wdebug_mode){
|
2000 |
+
if(is_admin() || headers_sent()) echo "\n #5 Excluded by: exclude_url";
|
2001 |
else $debug_output .="\n #5 Excluded by: exclude_url";
|
2002 |
} //end if wassup_exclude_url
|
2003 |
}elseif($wdebug_mode){
|
2004 |
+
if(is_admin() || headers_sent()) echo "\n #4 Excluded by: exclude_user";
|
2005 |
else $debug_output .="\n #4 Excluded by: exclude_user";
|
2006 |
} //end if wassup_exclude_user
|
2007 |
}elseif($wdebug_mode){
|
2008 |
+
if(is_admin() || headers_sent()) echo "\n #3 Excluded by: is_admin";
|
2009 |
else $debug_output .="\n #3 Excluded by: is_admin";
|
2010 |
} //end if !is_admin
|
2011 |
} //end if wp-cron.php?doing_wp_cron===FALSE //#2
|
2012 |
}elseif($wdebug_mode){
|
2013 |
+
if(is_admin() || headers_sent()) echo "\n #1 Excluded by: is_admin_login";
|
2014 |
else $debug_output .="\n #1 Excluded by: is_admin_login";
|
2015 |
} //end if !is_admin_login
|
2016 |
|
2026 |
}
|
2027 |
if(is_numeric($result)) $in_temp=(int)$result;
|
2028 |
if($wdebug_mode){
|
2029 |
+
if(is_admin() || headers_sent()) echo "\nin_temp=".$result;
|
2030 |
else $debug_output .="\nin_temp=".$result;
|
2031 |
}
|
2032 |
//add new temp record
|
2119 |
if(((int)$timestamp)%141 == 0 && (!is_multisite() || is_main_site() || !$wassup_options->network_activated_plugin())){
|
2120 |
//Optimize table when optimize timestamp is older than current time
|
2121 |
if(!empty($wassup_options->wassup_optimize) && is_numeric($wassup_options->wassup_optimize) && $now >(int)$wassup_options->wassup_optimize){
|
2122 |
+
$optimize_sql=sprintf("OPTIMIZE TABLE `%s`",$wassup_table);
|
2123 |
if(version_compare($wp_version,'3.0','<')){
|
2124 |
$wassup_dbtask[]=$optimize_sql;
|
2125 |
}else{
|
2140 |
wp_schedule_single_event(time()+40,'wassup_scheduled_dbtasks',$args);
|
2141 |
}
|
2142 |
if($wdebug_mode){
|
2143 |
+
if(is_admin() || headers_sent()){
|
2144 |
echo "\nWassup scheduled tasks:";
|
2145 |
print_r($wassup_dbtask);
|
2146 |
}
|
2147 |
}
|
2148 |
}
|
2149 |
if($wdebug_mode){ //close comment tag to hide debug data from visitors
|
2150 |
+
if(is_admin() || headers_sent()){
|
2151 |
echo "\n--> \n";
|
2152 |
}else{
|
2153 |
$debug_output .= "<br />\n--> \n";
|
2154 |
//add debug output to wp_footer output - TODO
|
2155 |
$expire=time()+180;
|
2156 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
2157 |
+
wassupDb::update_wassupmeta($wassup_key,'_debug_output',$expire,$debug_output); //v1.9.2 bugfix
|
2158 |
}
|
2159 |
//restore normal mode
|
2160 |
@ini_set('display_errors',$mode_reset);
|
2187 |
}else{
|
2188 |
if(!empty($wassup_options->delayed_insert)) $delayed=true;
|
2189 |
$insert_id=wassupDb::table_insert($wTable,$wassup_rec,$delayed);
|
2190 |
+
//try regular insert when delayed insert fails on MySql server
|
2191 |
if(!empty($insert_id) && is_wp_error($insert_id) && $delayed){
|
2192 |
$insert_id=wassupDb::table_insert($wTable,$wassup_rec,false);
|
2193 |
//always bypass delayed insert
|
2292 |
if (!empty($urlstring)) {
|
2293 |
$wtab=parse_url($urlstring);
|
2294 |
if(key_exists("query",$wtab)){
|
2295 |
+
//use 'parse_str' when possible
|
2296 |
parse_str($wtab["query"],$qvar);
|
2297 |
}else{ //for partial urls
|
2298 |
+
//remove any anchor links from end of url
|
2299 |
if(preg_match('/([^#]+)#.*/',$urlstring,$pcs)>0) $query=$pcs[1];
|
2300 |
else $query=$urlstring;
|
2301 |
$i=0;
|
2302 |
while($query){
|
2303 |
$pcs=array();
|
2304 |
+
//exclude 1st part of url up to and including the "?"
|
2305 |
if(preg_match('/(?:[^?]*\?)?([^=&]+)(=[^&]+)?/',$query,$pcs)>0){
|
2306 |
$name=$pcs[1];
|
2307 |
if(empty($pcs[2])) $qvar[$name]=true;
|
3898 |
$sessionhash=$wassup_options->whash;
|
3899 |
if(empty($wscreen_res) && !isset($_COOKIE['wassup_screen_res'.$sessionhash])){
|
3900 |
$ua=(!empty($_SERVER['HTTP_USER_AGENT'])?$_SERVER['HTTP_USER_AGENT']:"");
|
3901 |
+
if(strpos($ua,'MSIE')>0 || strpos($ua,'rv:11')>0 || strpos($ua,'Edge/')>0 || stristr($_SERVER['REQUEST_URI'],'login.php')!==false){
|
3902 |
echo "\n";?>
|
3903 |
<script language=javascript>
|
3904 |
//<![CDATA[
|
3912 |
//Output a comment with a current timestamp to verify that page is not cached (i.e. visit is being recorded).
|
3913 |
echo "\n<!-- <p class=\"small\"> WassUp ".WASSUPVERSION." ".__("timestamp","wassup").": ".date('Y-m-d h:i:sA T')." (".gmdate('h:iA',time()+(get_option('gmt_offset')*3600)).")<br />\n";
|
3914 |
echo __("If above timestamp is not current time, this page is cached","wassup").".</p> -->\n";
|
3915 |
+
//output any debug_output stored in wassup_meta @since v1.9.1
|
3916 |
if($wdebug_mode){
|
3917 |
$wassup_key=wassup_clientIP($_SERVER['REMOTE_ADDR']);
|
3918 |
$debug_output=wassupDb::get_wassupmeta($wassup_key,'_debug_output');
|
3975 |
if(!defined('WASSUPURL')){
|
3976 |
if(!wassup_init()) return; //nothing to do
|
3977 |
}
|
3978 |
+
if(!empty($wassup_options) && $wassup_options->is_recording_active()){
|
3979 |
//do scheduled cleanup
|
3980 |
if(empty($dbtasks)){
|
3981 |
wassupDb::temp_cleanup();
|
3992 |
if(!wassup_init()) return; //nothing to do
|
3993 |
}
|
3994 |
//check that user can do auto delete
|
3995 |
+
if(!empty($wassup_options) && $wassup_options->is_recording_active()){
|
3996 |
if(!empty($wassup_options->delete_auto) && $wassup_options->delete_auto!="never"){
|
3997 |
//check last auto delete timestamp to ensure purge occurs only once a day
|
3998 |
$wassup_table=$wassup_options->wassup_table;
|
4083 |
if(!function_exists('wassup_widget_get_cache')){
|
4084 |
include_once(WASSUPDIR.'/widgets/widget_functions.php');
|
4085 |
}
|
4086 |
+
if(empty($before_widget) || empty($after_widget) || strpos($before_widget,'>')===false || strpos($after_widget,'</')===false){
|
4087 |
$before_widget='<div id="wassup_sidebar" class="widget wassup-widget">';
|
4088 |
$after_widget='</div>';
|
4089 |
}
|
4090 |
+
if(empty($before_title) || empty($after_title) || strpos($before_title,'>')===false || strpos($after_title,'</')===false){
|
4091 |
$before_title='<h2 class="widget-title wassup-widget-title">';
|
4092 |
$after_title='</h2>';
|
4093 |
}
|
4094 |
+
if($wtitle!="") $title=$wtitle;
|
4095 |
else $title=__("Visitors Online","wassup");
|
4096 |
if($wulclass!="" && preg_match('/([^a-z0-9\-_]+)/',$wulclass)>0) $wulclass=""; //no special chars allowed
|
4097 |
if($wulclass!="") $ulclass=' class="'.$wulclass.'"';
|
4101 |
//check for cached 'wassup_sidebar' html
|
4102 |
$widget_html=wassup_widget_get_cache('wassup_sidebar',$cache_key);
|
4103 |
if(empty($widget_html)){
|
4104 |
+
//show widget stats only when WassUp is active
|
4105 |
+
if(empty($wassup_options) || !$wassup_options->is_recording_active()){
|
4106 |
+
return; //nothing to do
|
4107 |
+
}
|
4108 |
+
//base widget info
|
4109 |
+
$widget_html="\n".$before_widget;
|
4110 |
+
if(!empty($title)) $widget_html.='
|
4111 |
'.$before_title.$title.$after_title;
|
4112 |
+
$widget_html .='
|
4113 |
<p class="small">'.__("No Data","wassup").'</p>'.wassup_widget_foot_meta().$after_widget;
|
4114 |
+
//calculate widget users online and top stats data
|
4115 |
+
$online_html="";
|
4116 |
+
$top_html="";
|
4117 |
+
$instance=array(
|
|
|
4118 |
'title'=>"",
|
4119 |
'ulclass'=>$wulclass,
|
4120 |
'chars'=>$chars,
|
4127 |
'top_referrers'=>(int)$wreflimit,
|
4128 |
'top_browsers'=>(int)$wtopbrlimit,
|
4129 |
'top_os'=>(int)$wtoposlimit,
|
4130 |
+
);
|
4131 |
+
//get online counts
|
4132 |
+
$html=wassup_widget_get_online_counts($instance);
|
4133 |
+
if(!empty($html)){
|
4134 |
+
$online_html= "\n".$before_widget;
|
4135 |
+
if(!empty($title)) $online_html.='
|
4136 |
'.$before_title.$title.$after_title;
|
4137 |
+
$online_html .='
|
4138 |
<ul'.$ulclass.'>
|
4139 |
'.$html.'
|
4140 |
</ul>'.wassup_widget_foot_meta().$after_widget;
|
4141 |
+
}
|
4142 |
+
//get top stats
|
4143 |
+
if($instance['top_searches']>0 || $instance['top_referrers']>0 || $instance['top_browsers']>0 || $instance['top_os']>0){
|
4144 |
+
$to_date=current_time('timestamp');
|
4145 |
+
$from_date=$to_date-24*60*60;
|
4146 |
+
$i=0;
|
4147 |
+
foreach(array('searches','referrers','browsers','os') AS $item){
|
4148 |
+
$html="";
|
4149 |
+
$limit=$instance['top_'.$item];
|
4150 |
+
if($limit >0) $html=wassup_widget_get_topstat($item,$limit,$chars,$from_date);
|
4151 |
+
if(!empty($html)){
|
4152 |
+
$title=$before_title.wassup_widget_stat_gettext($item).$after_title;
|
4153 |
+
if($i>0) $top_html .="\n".$after_widget;
|
4154 |
+
$top_html .="\n".$before_widget;
|
4155 |
+
$top_html .='
|
4156 |
'.$title.'
|
4157 |
<ul'.$ulclass.'>'.$html.'
|
4158 |
</ul>';
|
4159 |
+
$i++;
|
4160 |
+
}
|
4161 |
+
} //end foreach
|
4162 |
+
//append footer meta to end of widget
|
4163 |
+
if(!empty($top_html)) $top_html .=wassup_widget_foot_meta().$after_widget;
|
4164 |
+
} //end if top_searches>0
|
4165 |
+
//cache the new sidebar widget data
|
4166 |
+
if(!empty($top_html) || !empty($online_html)){
|
4167 |
+
$widget_html=$top_html.$online_html;
|
4168 |
+
$refresh=1;
|
4169 |
+
$cacheid=wassup_widget_save_cache($widget_html,'wassup_sidebar',$cache_key,$refresh);
|
4170 |
+
}
|
4171 |
+
} //end if widget_html
|
4172 |
+
echo "\n".'<div class="wassup_sidebar">'."\n";
|
4173 |
+
echo wassup_widget_css(true); //true==embed widget style
|
4174 |
+
echo $widget_html;
|
4175 |
+
echo "\n".'</div>';
|
|
|
|
|
|
|
4176 |
} //end wassup_sidebar
|
4177 |
//-------------------------------------------------
|
4178 |
//## Add essential hooks after functions have been defined
|
4179 |
//uninstall hook for complete plugin removal from WordPress
|
4180 |
register_activation_hook($wassupfile,'wassup_install');
|
4181 |
+
if(function_exists('register_uninstall_hook')){
|
4182 |
+
register_uninstall_hook($wassupfile,'wassup_uninstall');
|
4183 |
+
}
|
4184 |
unset($wassupfile); //to free memory
|
4185 |
wassup_start(); //start WassUp
|
4186 |
?>
|
widgets/widget_functions.php
CHANGED
@@ -7,29 +7,22 @@
|
|
7 |
* @since: v1.9
|
8 |
* @author: Helene D. <http://helenesit.com>
|
9 |
*/
|
10 |
-
//-------------------------------------------------
|
11 |
-
//# No direct requests for this plugin module
|
12 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
13 |
//abort if this is direct uri request for file
|
14 |
-
if(
|
15 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
16 |
//try track this uri request
|
17 |
if(!headers_sent()){
|
18 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
19 |
-
header('Location: /?p=404page&
|
20 |
exit;
|
21 |
}else{
|
22 |
//'wp_die' may be undefined here
|
23 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
24 |
}
|
25 |
-
exit;
|
26 |
//abort if no WordPress
|
27 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
28 |
//show escaped bad request on exit
|
29 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
30 |
}
|
31 |
-
unset($wfile); //to free memory
|
32 |
-
|
33 |
//-------------------------------------------------
|
34 |
/**
|
35 |
* Retrieve widget html from Wassup cache using widget_id as 'wassup key' indentifier.
|
@@ -101,9 +94,9 @@ function wassup_widget_css($embed=false){
|
|
101 |
|
102 |
/** Embeds form styles in admin head for widget control styling */
|
103 |
function wassup_widget_form_css(){
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
}
|
108 |
|
109 |
/** Returns html for wassup tag line to add to widget footer. */
|
7 |
* @since: v1.9
|
8 |
* @author: Helene D. <http://helenesit.com>
|
9 |
*/
|
|
|
|
|
|
|
10 |
//abort if this is direct uri request for file
|
11 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
12 |
//try track this uri request
|
13 |
if(!headers_sent()){
|
14 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
15 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
16 |
exit;
|
17 |
}else{
|
18 |
//'wp_die' may be undefined here
|
19 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
20 |
}
|
|
|
21 |
//abort if no WordPress
|
22 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
23 |
//show escaped bad request on exit
|
24 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
25 |
}
|
|
|
|
|
26 |
//-------------------------------------------------
|
27 |
/**
|
28 |
* Retrieve widget html from Wassup cache using widget_id as 'wassup key' indentifier.
|
94 |
|
95 |
/** Embeds form styles in admin head for widget control styling */
|
96 |
function wassup_widget_form_css(){
|
97 |
+
if(function_exists('wassup_compat_widget_form_css')){
|
98 |
+
wassup_compat_widget_form_css(); //@since v1.9.1
|
99 |
+
}
|
100 |
}
|
101 |
|
102 |
/** Returns html for wassup tag line to add to widget footer. */
|
widgets/widgets.php
CHANGED
@@ -7,29 +7,22 @@
|
|
7 |
* @since: v1.9
|
8 |
* @author: Helene D. <http://helenesit.com>
|
9 |
*/
|
10 |
-
//-------------------------------------------------
|
11 |
-
//# No direct requests for this plugin module
|
12 |
-
$wfile=preg_replace('/\\\\/','/',__FILE__); //for windows
|
13 |
//abort if this is direct uri request for file
|
14 |
-
if(
|
15 |
-
(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath($wfile))){
|
16 |
//try track this uri request
|
17 |
if(!headers_sent()){
|
18 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
19 |
-
header('Location: /?p=404page&
|
20 |
exit;
|
21 |
}else{
|
22 |
//'wp_die' may be undefined here
|
23 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
24 |
}
|
25 |
-
exit;
|
26 |
//abort if no WordPress
|
27 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
28 |
//show escaped bad request on exit
|
29 |
-
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37
|
30 |
}
|
31 |
-
unset($wfile); //to free memory
|
32 |
-
|
33 |
//-------------------------------------------------
|
34 |
if(!defined('WASSUPURL')){
|
35 |
if(!wassup_init()) exit; //nothing to do
|
7 |
* @since: v1.9
|
8 |
* @author: Helene D. <http://helenesit.com>
|
9 |
*/
|
|
|
|
|
|
|
10 |
//abort if this is direct uri request for file
|
11 |
+
if(!empty($_SERVER['SCRIPT_FILENAME']) && realpath($_SERVER['SCRIPT_FILENAME'])===realpath(preg_replace('/\\\\/','/',__FILE__))){
|
|
|
12 |
//try track this uri request
|
13 |
if(!headers_sent()){
|
14 |
//triggers redirect to 404 error page so Wassup can track this attempt to access itself (original request_uri is lost)
|
15 |
+
header('Location: /?p=404page&werr=wassup403'.'&wf='.basename(__FILE__));
|
16 |
exit;
|
17 |
}else{
|
18 |
//'wp_die' may be undefined here
|
19 |
die('<strong>Sorry. Unable to display requested page.</strong>');
|
20 |
}
|
|
|
21 |
//abort if no WordPress
|
22 |
}elseif(!defined('ABSPATH') || empty($GLOBALS['wp_version'])){
|
23 |
//show escaped bad request on exit
|
24 |
+
die("Bad Request: ".htmlspecialchars(preg_replace('/(�*37;?|&?#0*37;?|�*38;?#0*37;?|%)(?:[01][0-9A-F]|7F)/i','',$_SERVER['REQUEST_URI'])));
|
25 |
}
|
|
|
|
|
26 |
//-------------------------------------------------
|
27 |
if(!defined('WASSUPURL')){
|
28 |
if(!wassup_init()) exit; //nothing to do
|